Outhere

Blade Runner ULTIMATE Pro 1.01 with some mx

Jul 16th, 2020 (edited)
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 198.75 KB | None | 0 0
  1. ' *********************************************************************
  2. ' ** **
  3. ' ** BLADE RUNNER **
  4. ' ** **
  5. ' ** by SLAMT1LT **
  6. ' ** **
  7. ' *********************************************************************
  8.  
  9. ' ** NO OTHER VERSIONS PLEASE, THIS IS A FUTURE PINBALL EXCLUSIVE GAME **
  10. ' ** FUTURE PINBALL MODS ARE PERMITTED **
  11.  
  12. 'Basic DOF (Solenoids) Added By: Outhere on 7/14/2020 With some MX
  13.  
  14. ' MISSIONS
  15. ' --------
  16.  
  17. ' Hit the right NEW CASE targets to spin the mission wheel. When it stops and highlights a character, the
  18. ' main sccop will light to start that mission.
  19.  
  20. ' Shoot the scoop or the left ramp to start the next mission (the left ramp shot will divert the ball into the scoop).
  21.  
  22.  
  23. ' RETIREMENT MISSIONS
  24. ' -------------------
  25.  
  26. ' Only the retirement missions have 2 stages - the hunt and the kill.
  27.  
  28. ' Leon
  29. ' ----
  30.  
  31. ' Stage 1 (Hunt) - Give Leon the test.
  32.  
  33. ' Shot 1: Shoot the left loop and hit the flashing rollover lane to activate the elevator. This will
  34. ' announce Leon as the next subject and take him up to the 1st floor for testing.
  35.  
  36. ' Leon: Stage 2 (Kill) - Fight Leon then kill him
  37.  
  38. ' Zhora: Stage 1 (Hunt) - Use photo to find her
  39. ' Zhora: Stage 2 (Kill) - Fight and kill her
  40.  
  41. ' Pris: Stage 1 (Hunt) - Pris wins over Sebastian
  42. ' Pris: Stage 2 (Kill) - Fight and kill her
  43.  
  44. ' Batty: Fight and then watch him die
  45.  
  46.  
  47. ' CHARACTER MISSIONS
  48. ' ------------------
  49.  
  50. ' Tyrell
  51. ' ------
  52.  
  53. ' Roy meets Tyrell.
  54.  
  55. ' Shot 1: Shoot the left loop and light both rollever lanes to light the elevator and meet with Tyrell.
  56. ' Shot 2,3,4,5: Shoot either ramp to discuss 'longevity' with Dr Tyrell.
  57. ' Shot 6: Shoot the left loop into the bumpers and get a certain amount of hits to kill Tyrell.
  58.  
  59.  
  60. ' J.F. Sebastian
  61. ' --------------
  62.  
  63. ' Roy and Pris convince Sebastian to help them.
  64.  
  65. ' Shot 1,2,3,4: Shoot the centre loop (in either direction).
  66. ' Shot 5,6: Shoot the left loop to access the elevator and speak with Tryell to access his penthouse.
  67.  
  68.  
  69. ' Chew
  70. ' ----
  71.  
  72. ' Roy and Leon visit Chew at his eye shop.
  73.  
  74. ' Shot 1: Shoot the left ramp.
  75. ' Shot 2: Shoot the right ramp.
  76. ' Shot 3: Shoot the center loop.
  77. ' Shot 4: Shoot the left lane target.
  78. ' Shot 5: Shoot any lit shot (all of them are lit).
  79.  
  80.  
  81. ' Rachael
  82. ' -------
  83.  
  84. ' Test Racheal to deterine she's a replicant.
  85.  
  86. ' All Shots: Shoot the left lane target until the mode is complete.
  87.  
  88.  
  89. ' Gaff
  90. ' ----
  91.  
  92. ' Take Deckard to Police HQ.
  93.  
  94. ' Shot 1: Shoot the centre loop.
  95. ' Shot 2: Shoot the centre target to start the spinner.
  96. ' Shot 3: Shoot the left ramp.
  97.  
  98.  
  99. ' SPINNER
  100. ' -------
  101.  
  102. ' activate the spinner by shooting the left and right stand up targets, then the centre target, then the
  103. ' centre lane.
  104.  
  105. ' this will activate the Super Ramps for a limited time.
  106.  
  107.  
  108. ' FIRING RANGE
  109. ' ------------
  110.  
  111. ' complete G-U-N to raise the drop targets. When the first drop target is hit, a timer will start. Knock
  112. ' down all the targets before the timer runs out to advance to the next objective, the Voigt-Kampff test.
  113.  
  114.  
  115. ' VOIGT-KAMPFF TEST
  116. ' -----------------
  117.  
  118. ' complete G-U-N again to raise the drop targets. Same rules as above. When sucessfully completed, advance
  119. ' to the next objevtive - the Photo.
  120.  
  121.  
  122. ' PHOTO ANALYSYS
  123. ' --------------
  124.  
  125. ' same as firing range and voigt-kampff, but ends with an extra ball win.
  126.  
  127.  
  128. ' when firing, vk and photo are completed, the inner wheel will spin and award a random value.
  129.  
  130.  
  131. ' TYRELL CORPORATION
  132. ' ------------------
  133.  
  134. ' make a centre lane loop to light the Tyrell light at the left lane. The ball will be diverted into the top
  135. ' rollover lanes. Light both lanes to activate the elevator at the scoop.
  136.  
  137. ' When the ball lands in the scoop, the elevator will take you 1 floor up. Make it to Tyrell's penthouse to
  138. ' win the extra ball.
  139.  
  140.  
  141. ' SUPER BUMPERS
  142. ' -------------
  143.  
  144. ' hit the bumpers 30 times to activate Super Bumpers. The bumpers will score 10x their normal value for a limited
  145. ' time.
  146.  
  147. ' hit the Super Bumpers 25 times to activate the playfield score multiplier.
  148.  
  149.  
  150. ' THE SNAKE PIT MYSTERY
  151. ' ---------------------
  152.  
  153. ' Shoot the single right stand up target 8 times to light mystery at the right scoop. Shoot the scoop to collect
  154. ' the mystery award.
  155.  
  156.  
  157. ' NEXUS 6
  158. ' -------
  159.  
  160. ' complete the in and out lanes - MORE HUMAN THAN HUMAN - to light the Nexus 6 inserts on both in lanes for a limited
  161. ' time. Get the ball into these lanes to activate the ball saver (MORE LIFE) for a limited time.
  162.  
  163.  
  164. ' LANE TARGET
  165. ' -----------
  166.  
  167. ' shooting the left lane target when the drop targets are down, increases the value of the drop targets when hit.
  168.  
  169.  
  170. ' LEFT RAMP
  171. ' ---------
  172.  
  173. ' Collect Super Ramp value.
  174.  
  175.  
  176. ' RIGHT RAMP
  177. ' ----------
  178.  
  179. ' Collect Super Ramp value.
  180.  
  181.  
  182. ' CENTRE LOOP
  183. ' -----------
  184.  
  185. ' Shooting the centre loop will increase the Super Ramp value.
  186.  
  187.  
  188. ' SKILL SHOT
  189. ' ----------
  190.  
  191. ' make any of the flashing shot from lauch to collect the Skill Shot value.
  192.  
  193.  
  194. ' COMBO
  195. ' -----
  196.  
  197. ' make a ramp or centre lane shot immediatly after any ramp shot to collect the combo value.
  198.  
  199.  
  200. ' UPGRADE SHOP
  201. ' ------------
  202.  
  203. ' At the end of each game, upgrades can by purchased using the money collected during the game. These upgrades
  204. ' will be active for the next game.
  205.  
  206.  
  207.  
  208.  
  209.  
  210. Option Explicit
  211.  
  212.  
  213. '=============================== PHYSICS XML ===========================
  214. '<?xml version="1.0" encoding="utf-8"?>
  215. '<document>
  216. ' <!—Custom Physics for BLADERUNNER -->
  217. ' <physics fps="296" threaded="1"></physics>
  218. ' <ball newtonDamping="0" mass="75" gravity="6800" damping="0.65"></ball>
  219. ' <flipper releaseOmega="18" rotationSpeedChart="{0.0,100.0}[0.0,100.0]" newtonDamping="1" mass="20150" omega="43" moeMethod="0"
  220. ' leftXoff="0" leftYoff="1500" leftZoff="0"
  221. ' rightXoff="0" rightYoff="1500" rightZoff="0"></flipper>
  222. ' <bumper impulse="90.0" impulseRandomness="0" vectorRandomness="6"></bumper>
  223. ' <autoplunger mass="20000.0" force="60000.0"></autoplunger>
  224. ' <diverter mass="10000.0" omega="33.0"></diverter>
  225. ' <gate mass="0.5" gravity="3000.0" damping="1.0"></gate>
  226. ' <kicker impulse="1000.0" vukImpulse="1400.0" impulseRandomness="2" vectorRandomness="1"></kicker>
  227. ' <plunger mass="20000.0" force="30000.0"></plunger>
  228. ' <slingshot impulse="650.0" impulseRandomness="15" vectorRandomness="3"></slingshot>
  229. ' <spindisk mass="10000.0" angularDamp="0.33" linearDamp="0.25"></spindisk>
  230. ' <spinner mass="50000.0" gravity="9800.0" angularDamp="0.5" angularAccel="5.25"
  231. ' spinDampLoose="0.30" spinBackLoose="0.90"
  232. ' spinDampNorm="0.40" spinBackNorm="0.65"
  233. ' spinDampTight="0.70" spinBackTight="0.65"></spinner>
  234. ' <emkicker mass="10000.0" omega="80.0"></emkicker>
  235. ' <varitarget mass="500.0" damping="0.9" tension="3.0" return="15.0"></varitarget>
  236. ' <magnet impulse="10.0" impulseRandomness="2"></magnet>
  237. ' <nudge impulse="240.0" impulseRandomness="25.0" warningLevel="300" leftAngle="60" upAngle="0" rightAngle="320"
  238. ' vectorRandomness="5" visualDistance="3" waitPeriod="300" maxBallVelocity="500.0"></nudge>
  239. ' <defaultMat softnessCoef="0.03" elasticCoef="0.1" staticFriction="0.01" kineticFriction="0.02"></defaultMat>
  240. ' <playfieldMat softnessCoef="0.02" elasticCoef="0.1" staticFriction="0.01" kineticFriction="0.02"></playfieldMat>
  241. ' <metalMat softnessCoef="0.01" elasticCoef="0.15" staticFriction="0.02" kineticFriction="0.02"></metalMat>
  242. ' <woodMat softnessCoef="0.03" elasticCoef="0.15" staticFriction="0.03" kineticFriction="0.02"></woodMat>
  243. ' <plasticMat softnessCoef="0.02" elasticCoef="0.2" staticFriction="0.02" kineticFriction="0.01"></plasticMat>
  244. ' <rubberHardMat softnessCoef="0.08" elasticCoef="0.50" staticFriction="0.04" kineticFriction="0.055"></rubberHardMat>
  245. ' <rubberIntMat softnessCoef="0.1" elasticCoef="0.72" staticFriction="0.05" kineticFriction="0.065"></rubberIntMat>
  246. ' <rubberSoftMat softnessCoef="0.12" elasticCoef="0.90" staticFriction="0.06" kineticFriction="0.075"></rubberSoftMat>
  247. ' <gateMat softnessCoef="0.05" elasticCoef="0.65" staticFriction="0" kineticFriction="0"></gateMat>
  248. ' <kickerMat softnessCoef="0.01" elasticCoef="0.05" staticFriction="0.8" kineticFriction="0.8"></kickerMat>
  249. ' <rampMat softnessCoef="0.01" elasticCoef="0.01" staticFriction="0.01" kineticFriction="0.01"></rampMat>
  250. ' <plungerMat softnessCoef="0.04" elasticCoef="0.55" staticFriction="0.02" kineticFriction="0.02"></plungerMat>
  251. ' <spindiskMat softnessCoef="0.05" elasticCoef="0.5" staticFriction="1.5" kineticFriction="2"></spindiskMat>
  252. '</document>
  253. '=============================== PHYSICS XML ===========================
  254.  
  255.  
  256.  
  257. ' === Ball Rolling FX ===
  258.  
  259. ExecuteGlobal LoadExternalScript ("ZBRrollingballsoundslib.vbs")
  260.  
  261. ZRBrampHeight = 40
  262. ZRBtablewide = 516
  263.  
  264. ZRBsoundballchan = 8
  265. ZRBvolNormLevel = 0.30
  266.  
  267. ZRBrampSoundballchan = -1
  268. ZRBrampVolNormLevel = 0.40
  269.  
  270.  
  271. ' ADD A TIMER...RollingBallUpdateTimer
  272. ' ADD CODE FOR FX....InitTrakedSoundBalls(), AddTrackedBall(PlungerKicker), DeleteTrackedBall(Drain)
  273. ' ADD CODE (TEXTURE SWAP).....xBAM.SetPlayfieldTexture "potc pf2"
  274.  
  275.  
  276. ' === Dynamic Flipper Settings ===
  277.  
  278. Const BAM_VERSION = 0
  279. AddDebugText BAM_VERSION
  280.  
  281.  
  282. Sub BAM_Init()
  283. If BAM_VERSION < 233 then Exit Sub
  284. Set RightFlipperExt = xBAM.Flipper("RightFlipper")
  285. Set LeftFlipperExt = xBAM.Flipper("LeftFlipper")
  286. xBAM.ShadowMap "leftslingshotbulb1", 1000 , 1 , 2.5, 2, 5, 0.5, 0
  287. xBAM.ShadowMap "leftslingshotbulb2", 1000 , 1 , 2.5, 1, 3, 0.5, 0
  288. xBAM.ShadowMap "rightslingshotbulb1", 1000 , 1 , 2.5, 1, 5, 0.5, 0
  289. xBAM.ShadowMap "rightslingshotbulb2", 1000 , 1 , 2.5, 1, 3, 0.5, 0
  290. End Sub
  291.  
  292.  
  293. If BAM_VERSION => 233 then
  294. Dim RightFlipperExt,LeftFlipperExt
  295. Dim omegaCorrectionR
  296. Dim omegaCorrectionL
  297. xBAM.BallSpeedLimit = 3000
  298. End If
  299.  
  300.  
  301. Sub SetLightsParamsInBAM()
  302. xBAM.Lights.EnableNewRenderer = TRUE
  303. xBAM.Lights.MainLightLock = TRUE
  304. ' --- SetMainLightPosition not used because MainLightLock = FALSE
  305. ' xBAM.Lights.SetMainLightPosition 0, 650, 500
  306. xBAM.Lights.SetMainLightProperties 1, 0.3, 1, 0.075
  307. xBAM.Lights.SetMainLightAttenuation 1, 0, 0
  308. xBAM.Lights.SetOtherLightsAttenuation 0.066, 0, 0.333
  309. xBAM.Lights.EnablePostprocessing = FALSE
  310. xBAM.Lights.SetPostprocessing 1, 0, 1, 1
  311. xBAM.Lights.SetPostprocessingForNewRenderer 1, 0, 1, 1, 2.2, 1, 1, 1, 0.2
  312. ' xBAM.Lights.BallReflection = 1
  313. ' xBAM.Lights.BallShininess = 80
  314. xBAM.Lights.BallSpecular = 0.4
  315. End Sub
  316.  
  317.  
  318. SetLightsParamsInBAM()
  319.  
  320.  
  321. Sub OnPreHitFlipperSettings(FlipperExt)
  322. If BAM_VERSION < 233 then Exit Sub
  323. OnPreHitFlipperSettings_bounceControl(FlipperExt)
  324. End Sub
  325.  
  326.  
  327. If BAM_VERSION => 233 then
  328. const MaxOmega = 45 ' Omega at base of flipper. Must be > MinOmega. Default = 45
  329. const MinOmega = 32 ' Omega at tip of flipper. Must be < MaxOmega. Default = 32
  330. End If
  331.  
  332.  
  333. Sub RightFlipper_prehit()
  334. If BAM_VERSION < 233 then Exit Sub
  335. OnPreHitFlipperSettings(RightFlipperExt)
  336. omegaCorrectionR = MaxOmega - (RightFlipperExt.ContactPoint * ((MaxOmega - MinOmega)/1.2))
  337. If RightFlipperExt.ContactPoint < 0.0 then RightFlipperExt.Omega = MaxOmega
  338. If RightFlipperExt.ContactPoint > 1.2 then RightFlipperExt.Omega = MinOmega
  339. If (RightFlipperExt.ContactPoint => 0.0) And (RightFlipperExt.ContactPoint =< 1.2) then
  340. RightFlipperExt.Omega = omegaCorrectionR
  341. End if
  342. End Sub
  343.  
  344.  
  345. Sub LeftFlipper_prehit()
  346. If BAM_VERSION < 233 then Exit Sub
  347. OnPreHitFlipperSettings(LeftFlipperExt)
  348. omegaCorrectionL = MaxOmega - (LeftFlipperExt.ContactPoint * ((MaxOmega - MinOmega)/1.2))
  349. If LeftFlipperExt.ContactPoint < 0.0 then LeftFlipperExt.Omega = MaxOmega
  350. If LeftFlipperExt.ContactPoint > 1.2 then LeftFlipperExt.Omega = MinOmega
  351. If (LeftFlipperExt.ContactPoint => 0.0) And (LeftFlipperExt.ContactPoint =< 1.2) then
  352. LeftFlipperExt.Omega = omegaCorrectionL
  353. End if
  354. End Sub
  355.  
  356.  
  357. Sub OnPreHitFlipperSettings_bounceControl(FlipperExt)
  358. If BAM_VERSION < 233 then Exit Sub
  359. const base_elasticCoef = 0.90 ' very bouncy flipper rubber
  360. const expected_ball_speed_after_hit = 350 ' calc elasticCoef to get desired ball speed after ball hit flipper
  361. const minimum_elasticCoef_to_scale_fast_balls = 0.15 ' we will add this to calculated elastiCoef, so ball after hit will have aditional 5% of speed before hit
  362. const reduction_for_flipper_in_motion = 0.17 ' if flipper is not in starting point, reduce elasticCoef by 20%
  363.  
  364. If FlipperExt.Hit Then
  365. Dim elasticCoef
  366. Dim maxElasticCoef
  367. Dim ballSpeed
  368. ballSpeed = (FlipperExt.BallVSpeed + xBAM.Ball.Speed) * 0.5 ' averge speed of
  369. maxElasticCoef = base_elasticCoef
  370. If FlipperExt.AngleDiff > 1 Then maxElasticCoef = maxElasticCoef - reduction_for_flipper_in_motion
  371. elasticCoef = base_elasticCoef
  372. If ballSpeed > 1 Then elasticCoef = expected_ball_speed_after_hit / ballSpeed
  373. elasticCoef = elasticCoef + minimum_elasticCoef_to_scale_fast_balls
  374. If elasticCoef > maxElasticCoef Then elasticCoef = maxElasticCoef
  375. FlipperExt.SetMaterial elasticCoef
  376. End If
  377. End Sub
  378.  
  379. ' === End of Dynamic Flipper Settings ===
  380.  
  381.  
  382.  
  383. Const constMaxPlayers = 1
  384. Const constBallSaverTime = 5000
  385. Const constMaxMultiplier = 6
  386.  
  387.  
  388. Dim PlayersPlayingGame
  389. Dim CurrentPlayer
  390. Dim BonusPoints(4)
  391. Dim BonusMultiplier(4)
  392. Dim BallsRemaining(4)
  393. Dim ExtraBallsAwards(4)
  394.  
  395. Dim LastSwitchHit
  396. Dim BallsOnPlayfield
  397. Dim BallsInLock
  398.  
  399. Dim bFreePlay
  400. Dim bOnTheFirstBall
  401. Dim bBallInPlungerLane
  402. Dim bBallSaverActive
  403. Dim bMultiBallMode
  404. Dim bEnteringAHighScore
  405. Dim TempL1
  406. Dim IgnoreHit
  407. Dim BF
  408. Dim PlayAtt
  409. Dim SSActive
  410. Dim MagnetActive
  411. Dim QuoteBusy
  412. Dim TrackPlayed
  413. Dim TiltCheck
  414. Dim ShootingMode
  415. Dim LeonMode
  416. Dim ZhoraMode
  417. Dim PrisMode
  418. Dim TyrellMode
  419. Dim SebastianMode
  420. Dim ChewMode
  421. Dim RachaelMode
  422. Dim GaffMode
  423. Dim ReHit
  424. Dim MysterySpin
  425. Dim Spin
  426. Dim TempM1
  427. Dim TempM2
  428. Dim TempM3
  429. Dim TempM4
  430. Dim TempM5
  431. Dim TempM6
  432. Dim TempM7
  433. Dim TempM8
  434. Dim ModeActive
  435. Dim Photo
  436. Dim VK
  437. Dim TempGun
  438. Dim BattyMode
  439. Dim Purge
  440. Dim SnakeHit
  441. Dim Upgrade
  442. Dim BuyIn
  443. Dim BuyInActive
  444. Dim ShopActive
  445. Dim Floor
  446. Dim BumpHit
  447. Dim Time
  448. Dim SebastianHit
  449. Dim GaffHit
  450. Dim PrisHit
  451. Dim RachaelHit
  452. Dim TempS1
  453. Dim ZhoraHit
  454. Dim BSTime
  455. Dim RampValue
  456. Dim JPValue
  457. Dim RampHit
  458. Dim RangeValue
  459. Dim RangeComp
  460. Dim SSValue
  461. Dim TyrellHit
  462. Dim ChewHit
  463. Dim KillLeon
  464. Dim LeonHit
  465. Dim PFScore
  466. Dim PhotoMode
  467. Dim VKMode
  468. Dim BattyHit
  469. Dim VKValue
  470. Dim RangeTime
  471. Dim PhotoValue
  472. Dim AdjPhotoValue
  473. Dim AdjRangeValue
  474. Dim AdjVKValue
  475. Dim AdjRampValue
  476. Dim AdjSRTime
  477. Dim AdjSnakeHit
  478. Dim MissionHit
  479. Dim AdjMissionHit
  480. Dim Ass
  481. Dim BattyReady
  482. Dim SuperSpin
  483. Dim Combo
  484. Dim ComboVal
  485. Dim SuperRamps
  486. Dim SRTime
  487. Dim Batty
  488.  
  489.  
  490. ExecuteGlobal LoadExternalScript("DOFLinx.vbs")
  491.  
  492. DMD.AddFont 1, "dmd05x05p"
  493. DMD.AddFont 2, "dmd06x07p"
  494. DMD.AddFont 3, "dmd08x09p"
  495. DMD.AddFont 4, "dmd08x13p"
  496. DMD.AddFont 5, "dmd09x11po"
  497. DMD.AddFont 6, "dmd09x15po"
  498.  
  499. DMD2.AddFont 1, "dmd05x05p"
  500. DMD2.AddFont 2, "dmd06x07p"
  501. DMD2.AddFont 3, "dmd08x09p"
  502. DMD2.AddFont 4, "dmd08x13p"
  503. DMD2.AddFont 5, "dmd09x11po"
  504. DMD2.AddFont 6, "dmd09x15po"
  505.  
  506.  
  507. Function RandomNumber(ByVal max)
  508. RandomNumber = Int(max * Rnd + 1)
  509. End function
  510.  
  511.  
  512.  
  513.  
  514. Function FormatScore(num)
  515. Dim n, f, s
  516. n = CStr(num)
  517. f = ""
  518.  
  519. do while len(n)>3
  520. if len(f)>0 then
  521. f = Right(n, 3) & "," & f
  522. else
  523. f = Right(n, 3)
  524. end if
  525. n = Left(n, Len(n)-3)
  526. loop
  527. if len(n)>0 then
  528. if len(f) > 0 then
  529. f = n & "," & f
  530. else
  531. f = n
  532. end if
  533. end if
  534. FormatScore = f
  535. End Function
  536.  
  537.  
  538.  
  539.  
  540. nvBallsPerGame = 3
  541.  
  542.  
  543.  
  544.  
  545. ' *********************************************************************
  546. ' ** **
  547. ' ** Future Pinball Defined Script Events **
  548. ' ** **
  549. ' *********************************************************************
  550.  
  551.  
  552.  
  553.  
  554. Sub FuturePinball_BeginPlay()
  555. FF_Init
  556. FF_DOFLinx=1 ' Set this to 0 to manually disable the link to DOFLinx.
  557. ' DOFLinx must be active and set to link for this to make a difference
  558. ' seed the randomiser (rnd(1) function
  559.  
  560. Sub DOFTimer_expired() 'DOFLinx - Table First Loaded Timer Expired
  561. if FF_Active = true then
  562. DOFTimer.enabled=false
  563. FF_ROM "fp_pe_sw_dsa_ult_pro" 'DOFLinx DOF Rom Load
  564. else
  565. DOFWaitCount=DOFWaitCount+1
  566. if DOFWaitCount>=30 then
  567. DOFTimer.enabled=false
  568. end if
  569. end if
  570. End Sub
  571.  
  572. Randomize
  573.  
  574. bFreePlay = FALSE
  575.  
  576. set LastSwitchHit = LeftInLaneTrigger
  577.  
  578. bOnTheFirstBall = FALSE
  579. bEnteringAHighScore = FALSE
  580. RangeTime = 20000
  581. RangeValue = 50
  582. RampValue = 100
  583. VKValue = 150
  584. PhotoValue = 250
  585. MissionHit = 250
  586. SnakeHit = 5
  587. SRTime = 10000
  588.  
  589. BSTime = 12000
  590.  
  591. AdjRangeValue = 50
  592. AdjRampValue = 100
  593. AdjVKValue = 150
  594. AdjPhotoValue = 200
  595. AdjMissionHit = 300
  596. AdjSnakeHit = 5
  597. AdjSRTime = 10000
  598.  
  599. BallsOnPlayfield = 0
  600. BallsInLock = 0
  601. EndOfGame()
  602. End Sub
  603.  
  604.  
  605.  
  606.  
  607.  
  608. Sub FuturePinball_EndPlay()
  609. End Sub
  610.  
  611.  
  612. Sub LightSeqPF_Empty()
  613. LightSeqPF.UpdateInterval = 10
  614. End Sub
  615.  
  616.  
  617.  
  618. Sub FuturePinball_KeyPressed(ByVal KeyCode)
  619.  
  620. FF_Button BUT_CN,BA_OFF,0,0 'DOFLinx - Coin Light - OFF
  621. FF_DEV DV_SR,30 'DOFLinx - STROBE - Coin inserted
  622. FF_Button BUT_ST,BA_FL,1000,50 'DOFLinx - Start Button - Flashing - Coin inserted
  623.  
  624. If (KeyCode = 18) Then
  625. End If
  626.  
  627. If (KeyCode = 19) Then
  628. End If
  629.  
  630. If (KeyCode = 20) Then
  631. End If
  632.  
  633.  
  634.  
  635.  
  636. If (KeyCode = GetKeyCode(InsertCoinKey)) Then
  637. FF_Button BUT_ST,BA_FL,0,0
  638. PlaySound "fx_CoinIn"
  639. nvCredits = nvCredits + 1
  640. If (fpGameInPlay = FALSE) Then
  641. DMD.Text = "[y3][xc][f3]GAME OVER[y21][f1]PRESS START"
  642. AllPlasOff()
  643. PFFlashTimer.Set TRUE, 400
  644. End If
  645. End If
  646.  
  647. If (KeyCode = GetKeyCode(PlungerKey)) Then
  648.  
  649. If (ShopActive = TRUE) Then
  650. ShopActive = FALSE: UpgradeTimer.Enabled = FALSE
  651. PlaySound "fx_7"
  652. Select Case Upgrade
  653. Case 1:
  654. DMD.Text = "[yc][xc][f5][bf]+ BALL SAVER"
  655. BSTime = 15000: DelayEOG.Set TRUE, 1500
  656. Case 2:
  657. DMD.Text = "[yc][xc][f5][bf]+ RANGE VALUE"
  658. AdjRangeValue = 100: DelayEOG.Set TRUE, 1500
  659. Case 3:
  660. DMD.Text = "[yc][xc][f5][bf]+ RAMP VALUE"
  661. AdjRampValue = 200: DelayEOG.Set TRUE, 1500
  662. Case 4:
  663. DMD.Text = "[yc][xc][f5][bf]+ VK VALUE"
  664. AdjVKValue = 250: DelayEOG.Set TRUE, 1500
  665. Case 5:
  666. DMD.Text = "[yc][xc][f5][bf]+ PHOTO VALUE"
  667. AdjPhotoValue = 300: DelayEOG.Set TRUE, 1500
  668. Case 6:
  669. DMD.Text = "[yc][xc][f5][bf]+ MODE VALUE"
  670. AdjMissionHit = 300: DelayEOG.Set TRUE, 1500
  671. Case 7:
  672. DMD.Text = "[yc][xc][f5][bf]+ BUMPER VALUE"
  673. DelayEOG.Set TRUE, 1500
  674. Case 8:
  675. DMD.Text = "[yc][xc][f5][bf]+ MORE TIME"
  676. RangeTime = 25000: DelayEOG.Set TRUE, 1500
  677. Case 9:
  678. DMD.Text = "[yc][xc][f5][bf]+ BALL SAVER"
  679. BSTime = 18000: DelayEOG.Set TRUE, 1500
  680. Case 10:
  681. DMD.Text = "[yc][xc][f5][bf]- MYSTERY HITS"
  682. BSTime = 18000: DelayEOG.Set TRUE, 1500
  683. AdjSnakeHit = 4
  684. Case 11: ' a new game will start, exactly where the last game finished...
  685. DMD.Text ="[y0][xc][f3]NEW GAME[y11][f1]CONTINUE"
  686. TrackPlayed = 0
  687. PlayMusic 1, "Music_BRTrack1", FALSE, 0.6, 1200
  688. PlayMusic 2, "vo_GoodLuck"
  689. nvScore(CurrentPlayer) = 0 'nvScore(CurrentPlayer) - 60000
  690. BallsRemaining(CurrentPlayer) = 5
  691. DelayEOB.Set TRUE, 1500
  692. Case else:
  693. QuoteBusy = TRUE: PlayMusic 2, "vo_NoChoice"
  694. DMD.Text = "[yc][xc][f5][bf]BUY SOMETHING"
  695. UpgradeTimer.Set TRUE, 1800
  696. End Select
  697. End If
  698.  
  699. If (BallsOnPlayfield = 0) Then Exit Sub
  700. Plunger.SolenoidPulse
  701. StartButtonBulb.FlashForMs 200, 50, BulbOff
  702. 'PlaySound "fx_GunShot2"
  703. FF_Sound DV_RS,-1,"fx_GunShot2"
  704. AllPlasOff(): PFFlashTimer.Set TRUE, 400
  705. LightSeqPF.Play SeqBlinking, , 2, 100
  706. End If
  707.  
  708.  
  709.  
  710. If (fpGameInPlay = TRUE) Then
  711.  
  712. If (fpTilted = FALSE) Then
  713.  
  714. If (KeyCode = GetKeyCode(LeftFlipperKey)) Then
  715.  
  716. If (ShopActive = TRUE) Then
  717. Upgrade = Upgrade - 1: PlaySound "fx_18"
  718. If (Upgrade =<0) Then Upgrade = 1
  719. Select Case Upgrade
  720. Case 1:
  721. DMD.Text = "[y0][xc][f3]$3,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  722. OverlayMovie.Frame 251: OverlayMovieHUD.Frame 251 ' vid phone (ball saver + 3)
  723. Case 2:
  724. If (nvScore(CurrentPlayer) < 8000) Then Upgrade = Upgrade - 1: Exit Sub
  725. DMD.Text = "[y0][xc][f3]$8,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  726. OverlayMovie.Frame 243: OverlayMovieHUD.Frame 243 ' gun (firing range)
  727. Case 3:
  728. If (nvScore(CurrentPlayer) < 12000) Then Upgrade = Upgrade - 1: Exit Sub
  729. DMD.Text = "[y0][xc][f3]$12,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  730. OverlayMovie.Frame 244: OverlayMovieHUD.Frame 244 ' spinner (ramps)
  731. Case 4:
  732. If (nvScore(CurrentPlayer) < 16000) Then Upgrade = Upgrade - 1: Exit Sub
  733. DMD.Text = "[y0][xc][f3]$16,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  734. OverlayMovie.Frame 245: OverlayMovieHUD.Frame 245 ' vk
  735. Case 5:
  736. If (nvScore(CurrentPlayer) < 20000) Then Upgrade = Upgrade - 1: Exit Sub
  737. DMD.Text = "[y0][xc][f3]$20,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  738. OverlayMovie.Frame 249: OverlayMovieHUD.Frame 249' photo
  739. Case 6:
  740. If (nvScore(CurrentPlayer) < 24000) Then Upgrade = Upgrade - 1: Exit Sub
  741. DMD.Text = "[y0][xc][f3]$24,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  742. OverlayMovie.Frame 246: OverlayMovieHUD.Frame 246 ' mission (shots)
  743. Case 7:
  744. If (nvScore(CurrentPlayer) < 28000) Then Upgrade = Upgrade - 1: Exit Sub
  745. DMD.Text = "[y0][xc][f3]$28,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  746. OverlayMovie.Frame 879: OverlayMovieHUD.Frame 879 ' general ted (pops)
  747. Case 8:
  748. If (nvScore(CurrentPlayer) < 32000) Then Upgrade = Upgrade - 1: Exit Sub
  749. DMD.Text = "[y0][xc][f3]$32,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  750. OverlayMovie.Frame 250: OverlayMovieHUD.Frame 250 ' unicorn (more time)
  751. Case 9:
  752. If (nvScore(CurrentPlayer) < 36000) Then Upgrade = Upgrade - 1: Exit Sub
  753. DMD.Text = "[y0][xc][f3]$36,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  754. 'OverlayMovie.Frame 599: OverlayMovieHUD.Frame 599 ' drink 2
  755. OverlayMovie.Frame 880: OverlayMovieHUD.Frame 880 ' vid phone (ball saver + 5)
  756. Case 10:
  757. If (nvScore(CurrentPlayer) < 40000) Then Upgrade = Upgrade - 1: Exit Sub
  758. DMD.Text = "[y0][xc][f3]$40,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  759. OverlayMovie.Frame 248: OverlayMovieHUD.Frame 248 ' drink (mystery hits reduced)
  760. Case 11:
  761. If (nvScore(CurrentPlayer) < 44000) Then Upgrade = Upgrade - 1: Exit Sub
  762. DMD.Text = "[y0][xc][f3]$44,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  763. OverlayMovie.Frame 822: OverlayMovieHUD.Frame 822 ' token (continue game)
  764. End Select
  765. Exit Sub
  766. End If
  767.  
  768. If (BuyInActive = TRUE) Then
  769. BuyInActive = FALSE: NoShop = TRUE
  770. PlaySound "fx_Hit9"
  771. StopMusic 4
  772. PlayMusic 2, "vo_TransferComplete", FALSE, 1, 200
  773. MusicResume.Set TRUE, 1000
  774. nvScore(CurrentPlayer) = nvScore(CurrentPlayer) - 2000
  775. DMD.QueueText "[yc][xc][f5]YES", deNone, 600, FALSE
  776. DMD.QueueText "[y0][xc][f3][b]PAYMENT ACCEPTED[/b][y11][f1]NEW SCORE: $ " & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1), deNone, 1800, FALSE
  777. DMD.QueueText "[y0][xc][f3]UPGRADE SHOP[/b][y11][f1]IS NOW CLOSED", deScrollIn, 1300, TRUE, "fx_DoorOpen"
  778. BallsRemaining(CurrentPlayer) = 1
  779. IgnoreHit = TRUE: DelayEOB.Set TRUE, 3800
  780. End If
  781.  
  782. If (BallsOnPlayfield = 0) Then Exit Sub
  783.  
  784. TempL1 = LightRO1.State
  785. LightRO1.State = LightRO2.State
  786. LightRO2.State = TempL1
  787.  
  788. TempS1 = LightSAVE1.State
  789. LightSAVE1.State = LightSAVE2.State
  790. LightSAVE2.State = LightSAVE3.State
  791. LightSAVE3.State = LightSAVE4.State
  792. LightSAVE4.State = TempS1
  793.  
  794. LeftFlipper.SolenoidOn
  795. FF_Sound DV_LF,1000,"Flipper" ' Turn on the left flipper for upto 10 seconds (realistically until thge key is lifted
  796. FF_Flasher DV_FLIL,FL_FL,2,20,100,"Random" 'DOFLinx - Flipper Flasher - Random
  797. End If
  798.  
  799. If (KeyCode = GetKeyCode(RightFlipperKey)) Then
  800.  
  801. If (ShopActive = TRUE) Then
  802. Upgrade = Upgrade + 1: PlaySound "fx_18"
  803. If (Upgrade >10) Then Upgrade = 10
  804.  
  805. Select Case Upgrade
  806. Case 1:
  807. DMD.Text = "[y0][xc][f3]$3,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  808. OverlayMovie.Frame 251: OverlayMovieHUD.Frame 251 ' vid phone (ball saver + 3)
  809. Case 2:
  810. If (nvScore(CurrentPlayer) < 8000) Then Upgrade = Upgrade - 1: Exit Sub
  811. DMD.Text = "[y0][xc][f3]$8,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  812. OverlayMovie.Frame 243: OverlayMovieHUD.Frame 243 ' gun (firing range)
  813. Case 3:
  814. If (nvScore(CurrentPlayer) < 12000) Then Upgrade = Upgrade - 1: Exit Sub
  815. DMD.Text = "[y0][xc][f3]$12,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  816. OverlayMovie.Frame 244: OverlayMovieHUD.Frame 244 ' spinner (ramps)
  817. Case 4:
  818. If (nvScore(CurrentPlayer) < 16000) Then Upgrade = Upgrade - 1: Exit Sub
  819. DMD.Text = "[y0][xc][f3]$16,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  820. OverlayMovie.Frame 245: OverlayMovieHUD.Frame 245 ' vk
  821. Case 5:
  822. If (nvScore(CurrentPlayer) < 20000) Then Upgrade = Upgrade - 1: Exit Sub
  823. DMD.Text = "[y0][xc][f3]$20,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  824. OverlayMovie.Frame 249: OverlayMovieHUD.Frame 249' photo
  825. Case 6:
  826. If (nvScore(CurrentPlayer) < 24000) Then Upgrade = Upgrade - 1: Exit Sub
  827. DMD.Text = "[y0][xc][f3]$24,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  828. OverlayMovie.Frame 246: OverlayMovieHUD.Frame 246 ' mission (shots)
  829. Case 7:
  830. If (nvScore(CurrentPlayer) < 28000) Then Upgrade = Upgrade - 1: Exit Sub
  831. DMD.Text = "[y0][xc][f3]$28,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  832. OverlayMovie.Frame 879: OverlayMovieHUD.Frame 879 ' general ted (pops)
  833. Case 8:
  834. If (nvScore(CurrentPlayer) < 32000) Then Upgrade = Upgrade - 1: Exit Sub
  835. DMD.Text = "[y0][xc][f3]$32,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  836. OverlayMovie.Frame 250: OverlayMovieHUD.Frame 250 ' unicorn (more time)
  837. Case 9:
  838. If (nvScore(CurrentPlayer) < 36000) Then Upgrade = Upgrade - 1: Exit Sub
  839. DMD.Text = "[y0][xc][f3]$36,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  840. 'OverlayMovie.Frame 599: OverlayMovieHUD.Frame 599 ' drink 2
  841. OverlayMovie.Frame 880: OverlayMovieHUD.Frame 880 ' vid phone (ball saver + 5)
  842. Case 10:
  843. If (nvScore(CurrentPlayer) < 40000) Then Upgrade = Upgrade - 1: Exit Sub
  844. DMD.Text = "[y0][xc][f3]$40,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  845. OverlayMovie.Frame 248: OverlayMovieHUD.Frame 248 ' drink (mystery hits reduced)
  846. Case 11:
  847. If (nvScore(CurrentPlayer) < 44000) Then Upgrade = Upgrade - 1: Exit Sub
  848. DMD.Text = "[y0][xc][f3]$44,000[y11][f1]CASH TO SPEND: $" & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  849. OverlayMovie.Frame 822: OverlayMovieHUD.Frame 822 ' token (continue game)
  850. End Select
  851. Exit Sub
  852. End If
  853.  
  854. If (BuyInActive = TRUE) Then
  855. BuyInActive = FALSE
  856. PlaySound "fx_Hit10"
  857. DMD.Text = "[yc][xc][f5][bf]NO"
  858. StopMusic 4
  859. PlayMusic 2, "vo_KnewIt", FALSE, 1, 200
  860. DelayEOB.Set TRUE, 2000
  861. End If
  862.  
  863. If (BallsOnPlayfield = 0) Then Exit Sub
  864.  
  865. TempL1 = LightRO2.State
  866. LightRO2.State = LightRO1.State
  867. LightRO1.State = TempL1
  868.  
  869. TempS1 = LightSAVE4.State
  870. LightSAVE4.State = LightSAVE3.State
  871. LightSAVE3.State = LightSAVE2.State
  872. LightSAVE2.State = LightSAVE1.State
  873. LightSAVE1.State = TempS1
  874.  
  875. RightFlipper.SolenoidOn
  876. FF_Sound DV_RF,1000,"Flipper" ' Turn on the left flipper for upto 10 seconds (realistically until thge key is lifted
  877. FF_Flasher DV_FLOR,FL_FL,2,20,100,"Random" 'DOFLinx - Flipper Flasher - Random
  878. End If
  879.  
  880. If (KeyCode = GetKeyCode(StartGameKey)) Then
  881. If ((PlayersPlayingGame < constMaxPlayers) And (bOnTheFirstBall = TRUE)) Then
  882. If (bFreePlay = TRUE) Then
  883. PlayersPlayingGame = PlayersPlayingGame + 1
  884. nvTotalGamesPlayed = nvTotalGamesPlayed + 1
  885. Else
  886. If (nvCredits > 0) then
  887. PlayersPlayingGame = PlayersPlayingGame + 1
  888. nvTotalGamesPlayed = nvTotalGamesPlayed + 1
  889. nvCredits = nvCredits - 1
  890. Else
  891. PlaySound "fx_7"
  892. End If
  893. End If
  894. End If
  895. End If
  896. End If
  897. Else
  898. If (KeyCode = GetKeyCode(StartGameKey)) Then
  899. If (bFreePlay = TRUE) Then
  900. If (BallsOnPlayfield = 0) Then
  901. ResetForNewGame()
  902. End If
  903. Else
  904. If (nvCredits > 0) Then
  905. If (BallsOnPlayfield = 0) Then
  906. nvCredits = nvCredits - 1
  907. ResetForNewGame()
  908. End If
  909. Else
  910. DMD.Text = "[y0][xc][f3]NO CREDITS[y11][f1][b]INSERT COIN"
  911. PlaySound "fx_7"
  912. End If
  913. End If
  914. End If
  915. End If
  916. End Sub
  917.  
  918.  
  919.  
  920.  
  921.  
  922. Sub FuturePinball_KeyReleased(ByVal KeyCode)
  923.  
  924. If (KeyCode = GetKeyCode(PlungerKey)) Then
  925. End If
  926.  
  927. If (fpGameInPlay = TRUE) Then
  928. If (fpTilted = FALSE) Then
  929. If (KeyCode = GetKeyCode(LeftFlipperKey)) Then
  930. LeftFlipper.SolenoidOff
  931. FF_Dev DV_LF,0 ' Turn the flipper solenoids off
  932. End If
  933. If (KeyCode = GetKeyCode(RightFlipperKey)) Then
  934. RightFlipper.SolenoidOff
  935. FF_Dev DV_RF,0 ' Turn the flipper solenoids off
  936. End If
  937. End If
  938. End If
  939. End Sub
  940.  
  941.  
  942.  
  943.  
  944. Sub FuturePinball_Paused()
  945. PlayMusic 7, "Music_NeonCity", TRUE, 0.8
  946. End Sub
  947.  
  948.  
  949.  
  950. Sub FuturePinball_UnPaused()
  951. StopMusic 7
  952. End Sub
  953.  
  954.  
  955.  
  956. Sub FuturePinball_TiltWarning(ByVal Warnings)
  957. FF_Colour "Red",RGB_FL,150 ' DOFLinx - RGB Lighting - Flash - Red
  958. PlaySound "fx_Nudge": PlaySound "fx_Fizz"
  959. LightSeqPF.StopPlay
  960. LightSeqPF.Play SeqBlinking, , 2, 75
  961. Select Case Warnings
  962. Case 2:
  963. If (QuoteBusy = FALSE) Then
  964. QuoteBusy = TRUE
  965. Select Case RandomNumber(4)
  966. Case 1: PlayMusic 2, "vo_Prove"
  967. Case 2: PlayMusic 2, "vo_ChewTalk"
  968. Case 3: PlayMusic 2, "vo_ChewTalk2"
  969. Case 4:
  970. Select Case RandomNumber(3)
  971. Case 1: PlayMusic 2, "vo_WhatYouDo"
  972. Case 2: PlayMusic 2, "vo_AllowThat"
  973. Case 3: PlayMusic 2, "vo_GoingOn"
  974. End Select
  975. End Select
  976. End If
  977. Case 4:
  978. If (QuoteBusy = FALSE) Then
  979. QuoteBusy = TRUE
  980. If (BR2049 = FALSE) Then EffectMusic 1, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 2000
  981. PlayMusic 2, "vo_AssHole"
  982. End If
  983. End Select
  984. End Sub
  985.  
  986.  
  987.  
  988. Sub FuturePinball_Tilted()
  989. PlaySound "Tilt"
  990. DMD.Text = "[yc][xc][f6][b]T I L T"
  991. DMD2.Text = "[yc][xc][f6][b]T I L T"
  992. QuoteBusy = FALSE
  993. TiltCheck = 0
  994. LightSeqPF.StopPlay
  995. AllPlasOff()
  996. LightSeqPF.Play SeqAllOff
  997. MusicResume.Enabled = FALSE
  998. EffectMusic 1, FadeOutAndPause, 0, 0
  999. PlayMusic 2, "vo_Stop"
  1000. OverlayMovie.Frame 230: OverlayMovieHUD.Frame 230
  1001. BallStopper.Collidable = FALSE
  1002. HoloNeon1.Frame 1
  1003. HoloNeon4.Frame 1
  1004. HoloNeon7.Frame 1
  1005. HoloNeon6.Frame 1
  1006. NeonHotel.Frame 1
  1007. CokeSign.Frame 1
  1008. AtariSign.Frame 1
  1009. LightElevator.State = BulbOff
  1010. If (LeonMode = TRUE) Then
  1011. LeonMode = FALSE: KillLeon = FALSE
  1012. LightLeonMain.State = BulbOff
  1013. End If
  1014. If (ZhoraMode = TRUE) Then
  1015. ZhoraMode = FALSE
  1016. LightZhoraMain.State = BulbOff
  1017. End If
  1018. If (PrisMode = TRUE) Then
  1019. PrisMode = FALSE
  1020. LightPrisMain.State = BulbOff
  1021. End If
  1022. If (TyrellMode = TRUE) Then
  1023. TyrellMode = FALSE
  1024. LightTyrellMain.State = BulbOff
  1025. End If
  1026. If (SebastianMode = TRUE) Then
  1027. SebastianMode = FALSE
  1028. LightSebastianMain.State = BulbOff
  1029. End If
  1030. If (ChewMode = TRUE) Then
  1031. ChewMode = FALSE
  1032. LightChewMain.State = BulbOff
  1033. End If
  1034. If (RachaelMode = TRUE) Then
  1035. RachaelMode = FALSE
  1036. LightRachaelMain.State = BulbOff
  1037. End If
  1038. If (GaffMode = TRUE) Then
  1039. GaffMode = FALSE
  1040. LightGaffMain.State = BulbOff
  1041. End If
  1042. If (ShootingMode = TRUE) Then
  1043. ShootingMode = FALSE
  1044. LightRange.State = BulbOff
  1045. End If
  1046. If (VKMode = TRUE) Then
  1047. VKMode = FALSE
  1048. LightVK.State = BulbOff
  1049. End If
  1050. If (PhotoMode = TRUE) Then
  1051. PhotoMode = FALSE
  1052. LightPhoto.State = BulbOff
  1053. End If
  1054. If (BattyMode = TRUE) Then
  1055. BattyMode = FALSE
  1056. ' game will now reset...
  1057. LightLeonMain.Set BulbOff, "10", 150
  1058. LightZhoraMain.Set BulbOff, "10", 150
  1059. LightPrisMain.Set BulbOff, "10", 150
  1060. LightTyrellMain.Set BulbOff, "10", 150
  1061. LightSebastianMain.Set BulbOff,"10", 150
  1062. LightChewMain.Set BulbOff, "10", 150
  1063. LightRachaelMain.Set BulbOff, "10", 150
  1064. LightGaffMain.Set BulbOff, "10", 150
  1065. RachaelHit = 0
  1066. SebastianHit = 0
  1067. GaffHit = 0
  1068. PrisHit = 0
  1069. ZhoraHit = 0
  1070. LeonHit = 0
  1071. TyrellHit = 0
  1072. ChewHit = 0
  1073. LightRing1.State = BulbOff
  1074. LightRing2.State = BulbOff
  1075. LightRing3.State = BulbOff
  1076. LightRing4.State = BulbOff
  1077. LightRing5.State = BulbOff
  1078. LightRing6.State = BulbOff
  1079. LightRing7.State = BulbOff
  1080. LightRing8.State = BulbOff
  1081. End If
  1082. ModeActive = FALSE
  1083. TakeOffTimer.Enabled = FALSE
  1084. StopMusic 5: StopMusic 6
  1085. RangeTimer.Enabled = FALSE
  1086. If (ModeActive = TRUE) Then
  1087. ModeActive = FALSE
  1088. End If
  1089. BR2049 = FALSE
  1090. SuperRamps = FALSE
  1091. SuperRampsTimer.Enabled = FALSE
  1092. RampValue = AdjRampValue
  1093. LeftFlipper.SolenoidOff
  1094. RightFlipper.SolenoidOff
  1095. FF_Dev DV_LF,0 'DOFLinx - Left Flipper OFF
  1096. FF_Dev DV_RF,0 'DOFLinx - Right Flipper OFF
  1097. TiltRecoveryTimer.Set TRUE, 4500
  1098. End Sub
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104. Sub TiltRecoveryTimer_Expired()
  1105. TiltRecoveryTimer.Enabled = FALSE
  1106. If (BallsOnPlayfield = 0) Then
  1107. BallStopper.Collidable = TRUE
  1108. HoloNeon1.Frame 3
  1109. HoloNeon4.Frame 10
  1110. HoloNeon7.Frame 15
  1111. HoloNeon6.Frame 11
  1112. NeonHotel.Frame 14
  1113. CokeSign.Frame 28
  1114. AtariSign.Frame 32
  1115. MusicResume.Set TRUE, 100
  1116. AllPlasOn()
  1117. LightSeqPF.StopPlay
  1118. QuoteBusy = TRUE: PlayMusic 2, "vo_DataRes"
  1119. EndOfBall()
  1120. Else
  1121. TiltCheck = TiltCheck + 1
  1122. Select Case TiltCheck
  1123. Case 1:
  1124. PopUp1.SolenoidOff
  1125. PlaySound "fx_DropDownR", 0.4
  1126. DiverterPush.SolenoidPulse(2000): PlaySound "fx_Punch2"
  1127. TiltRecoveryTimer.Set TRUE, 4000
  1128. Case 2:
  1129. PlayMusic 2, "vo_NotHelping"
  1130. PlaySound "fx_ScoopExit"
  1131. KickerBump.SolenoidPulse
  1132. TiltRecoveryTimer.Set TRUE, 3000
  1133. DMD.Text = "[y3][xc][f6]SEARCHING..."
  1134. Case 3:
  1135. TiltRecoveryTimer.Set TRUE, 400
  1136. Bumper1.SolenoidPulse
  1137. Case 4:
  1138. TiltRecoveryTimer.Set TRUE, 400
  1139. Bumper2.SolenoidPulse
  1140. Case 5:
  1141. Bumper3.SolenoidPulse
  1142. TiltRecoveryTimer.Set TRUE, 3000
  1143. Case 6:
  1144. DMD.Text = "[y3][xc][f6][b]REPLACING..."
  1145. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_GoingOn"
  1146. BallsOnPlayfield = 0
  1147. TiltRecoveryTimer.Set TRUE, 1500
  1148. End Select
  1149. End If
  1150. End Sub
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156. Sub FuturePinball_MusicFinished(ByVal Channel)
  1157. Select Case Channel
  1158. Case 1:
  1159. TrackPlayed = TrackPlayed + 1
  1160. Select Case TrackPlayed
  1161. Case 1: PlayMusic 1, "Music_BRTrack2", FALSE, 0.6
  1162. 'Case 2: PlayMusic 1, "Music_BRTrack3", FALSE, 0.6
  1163. Case 2: PlayMusic 1, "Music_BRTrack4", FALSE, 0.6
  1164. Case 3: PlayMusic 1, "Music_BRTrack5", FALSE, 0.6
  1165. Case 4: PlayMusic 1, "Music_BRTrack6", FALSE, 0.6
  1166. Case 5: PlayMusic 1, "Music_BRTrack7", FALSE, 0.6
  1167. Case 6: PlayMusic 1, "Music_BRTrack8", FALSE, 0.6
  1168. Case 7: PlayMusic 1, "Music_BRTrack9", FALSE, 0.6: TrackPlayed = 0
  1169. End Select
  1170. Case 2: QuoteTimer.Enabled = FALSE: QuoteBusy = FALSE
  1171. End Select
  1172. End Sub
  1173.  
  1174.  
  1175.  
  1176. Sub FuturePinball_NameEntryComplete(ByVal Position, ByVal Special)
  1177. If (Position = 1) Then
  1178. AllPlasOff()
  1179. LightSeqPF.Play SeqBlinking, ,10, 200
  1180. FlasherL.FlashForMs 5000, 200, BulbOff
  1181. Flasher1.FlashForMs 5000, 200, BulbOff
  1182. FlasherM.FlashForMs 5000, 200, BulbOff
  1183. PlayMusic 1, "Music_HS", FALSE, 0.7
  1184. PlayMusic 2, "vo_TopPerformance", FALSE, 1, 1000
  1185. DMD.QueueText "[f1][y1]WELL PLAYED[f3][y7]HIGHEST SCORE", deFlip, 2000, FALSE
  1186. DMD.QueueText "[yc][xc][f5][b]"& left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deFlip, 2000, FALSE
  1187. DMD.QueueText "[f1][y1]YOU ARE A[f3][y7]BLADE RUNNER", deNone, 1000, TRUE
  1188. GameEndDelay.Set TRUE, 6000
  1189. Exit Sub
  1190. End If
  1191. If (Position = 2) Then
  1192. PlayMusic 2, "vo_Impressed"
  1193. DMD.Text = "[yc][xc][f5][b]2ND PLACE"
  1194. GameEndDelay.Set TRUE, 2000
  1195. Exit Sub
  1196. End If
  1197. If (Position = 3) Then
  1198. PlayMusic 2, "vo_Revel"
  1199. DMD.Text = "[yc][xc][f5][b]3RD PLACE"
  1200. GameEndDelay.Set TRUE, 2000
  1201. Exit Sub
  1202. End If
  1203. If (Position > 9) Then
  1204. Select Case RandomNumber(2)
  1205. Case 1: PlayMusic 2, "vo_BadOne"
  1206. Case 2: PlayMusic 2, "vo_Quit"
  1207. End Select
  1208. DMD.Text = "[yc][xc][f5][b]PLAY BETTER"
  1209. GameEndDelay.Set TRUE, 2000
  1210. Exit Sub
  1211. End If
  1212. If (Special <> 0) Then
  1213. End If
  1214. bEnteringAHighScore = FALSE
  1215. EndOfBallComplete()
  1216. End Sub
  1217.  
  1218.  
  1219.  
  1220. Sub GameEndDelay_Expired()
  1221. GameEndDelay.Enabled = FALSE
  1222. bEnteringAHighScore = FALSE
  1223. EndOfBallComplete()
  1224. End Sub
  1225.  
  1226.  
  1227.  
  1228.  
  1229. ' **************************************************************
  1230. ' ** **
  1231. ' ** GAME IN PLAY FUNCTIONS **
  1232. ' ** **
  1233. ' **************************************************************
  1234.  
  1235.  
  1236. Sub ResetForNewGame()
  1237. Dim i
  1238. InitTrakedSoundBalls()
  1239. BGReflect.Render = TRUE
  1240. BumpAttract.Enabled = FALSE
  1241. AttractTimer.Enabled = FALSE
  1242.  
  1243. StopMusic 3
  1244.  
  1245. AllPlasOn()
  1246.  
  1247. BeginGame()
  1248.  
  1249. nvTotalGamesPlayed = nvTotalGamesPlayed + 1
  1250. CurrentPlayer = 1
  1251. PlayersPlayingGame = 1
  1252. bOnTheFirstBall = TRUE
  1253.  
  1254. SnakeHit = AdjSnakeHit
  1255. SRTime = AdjSRTime
  1256.  
  1257. HoloNeon1.Frame 3
  1258. HoloNeon4.Frame 10
  1259. HoloNeon7.Frame 15
  1260. HoloNeon6.Frame 11
  1261. NeonHotel.Frame 14
  1262. CokeSign.Frame 28
  1263. AtariSign.Frame 31
  1264. Ass = 0
  1265. BattyReady = FALSE
  1266. SSValue = 0
  1267. RangeComp = 0
  1268. RampHit = 0
  1269. Floor = 0
  1270. BuyIn = TRUE
  1271. BuyInActive = FALSE
  1272.  
  1273. LightLeonMain.Set BulbOff, "10", 150
  1274. LightZhoraMain.Set BulbOff, "10", 150
  1275. LightPrisMain.Set BulbOff, "10", 150
  1276. LightTyrellMain.Set BulbOff, "10", 150
  1277. LightSebastianMain.Set BulbOff,"10", 150
  1278. LightChewMain.Set BulbOff, "10", 150
  1279. LightRachaelMain.Set BulbOff, "10", 150
  1280. LightGaffMain.Set BulbOff, "10", 150
  1281.  
  1282. RachaelHit = 0
  1283. SebastianHit = 0
  1284. GaffHit = 0
  1285. PrisHit = 0
  1286. ZhoraHit = 0
  1287. LeonHit = 0
  1288. TyrellHit = 0
  1289. ChewHit = 0
  1290.  
  1291. LightRing1.State = BulbOff
  1292. LightRing2.State = BulbOff
  1293. LightRing3.State = BulbOff
  1294. LightRing4.State = BulbOff
  1295. LightRing5.State = BulbOff
  1296. LightRing6.State = BulbOff
  1297. LightRing7.State = BulbOff
  1298. LightRing8.State = BulbOff
  1299.  
  1300. LightBlade.Set BulbOff, "10", 125
  1301. LightCentre.Set BulbOff, "10", 125
  1302. LightRunner.Set BulbOff, "10", 125
  1303.  
  1304. LightSAVE1.Set BulbOff, "10", 150
  1305. LightSAVE2.Set BulbOff, "10", 150
  1306. LightSAVE3.Set BulbOff, "10", 150
  1307. LightSAVE4.Set BulbOff, "10", 150
  1308.  
  1309. LightLeft1.Set BulbOff, "10", 125
  1310. LightLeft2.Set BulbOff, "10", 125
  1311. LightLeft3.Set BulbOff, "10", 125
  1312.  
  1313. ' the mission arrows...
  1314. LightDT.Set BulbOff, "10", 150
  1315. LightLO3.Set BulbOff, "10", 150
  1316. LightLaneL.Set BulbOff, "10", 150
  1317. LightRampL.Set BulbOff, "10", 150
  1318. LightCentrePurge.Set BulbOff, "10", 150
  1319. LightRampR.Set BulbOff, "10", 150
  1320. LightLaneR.Set BulbOff, "10", 150
  1321. LightRep.Set BulbOff, "10", 150
  1322. LightMode.Set BulbOff, "10", 150
  1323.  
  1324. LightSuperPops.State = BulbOff
  1325. LightTyrell.State = BulbOff
  1326. LightSuperRampL.State = BulbOff
  1327. LightSuperRampR.State = BulbOff
  1328. LightSnakePit.State = BulbOff
  1329.  
  1330. LightSnakePit2.State = BulbOn
  1331.  
  1332. LightNew.State = BulbOff
  1333. LightCase.State = BulbOff
  1334. LightElevator.State = BulbOff
  1335.  
  1336. LightRange.State = BulbOff
  1337. LightVK.State = BulbOff
  1338. LightPhoto.State = BulbOff
  1339.  
  1340. FlashPoliceL.State = BulbOff
  1341. FlashPoliceR.State = BulbOff
  1342.  
  1343. LightNexusL.State = BulbOff
  1344. LightNexusR.State = BulbOff
  1345.  
  1346. LightElevator.State = BulbOff
  1347.  
  1348. For i = 1 To constMaxPlayers
  1349. BonusPoints(i) = 0
  1350. BonusMultiplier(i) = 1
  1351. BallsRemaining(i) = nvBallsPerGame
  1352. ExtraBallsAwards(i) = 0
  1353. Next
  1354.  
  1355. OverlayMovie.Frame 208: OverlayMovieHUD.Frame 208
  1356.  
  1357. bMultiBallMode = FALSE
  1358. EffectMusic 1, FadeOutAndStop, 0, 500
  1359. Select Case RandomNumber(5)
  1360. Case 1: PlayMusic 2, "vo_Deckard": Time = 2000
  1361. Case 2: PlayMusic 2, "vo_Deckard2": Time = 1200
  1362. Case 3: PlayMusic 2, "vo_NeedBladeRunner": Time = 2000
  1363. OverlayMovie.Frame 885: OverlayMovieHUD.Frame 885
  1364. MovieTimer.Set TRUE, 2000
  1365. Case 4,5: PlayMusic 2, "vo_GoodLuck": Time = 1100
  1366. End Select
  1367. FirstBallDelayTimer.Interval = Time
  1368. FirstBallDelayTimer.Enabled = TRUE
  1369. DMD.Text = "[yc][xc][f6]GOOD LUCK"
  1370. DMD2.Text = "[yc][xc][f6]GOOD LUCK"
  1371. End Sub
  1372.  
  1373.  
  1374.  
  1375.  
  1376. Sub FirstBallDelayTimer_Expired()
  1377. FirstBallDelayTimer.Enabled = FALSE
  1378. TrackPlayed = 0
  1379. PlayMusic 1, "Music_BRTrack1", FALSE, 0.6
  1380. ResetForNewPlayerBall()
  1381. CreateNewBall()
  1382. End Sub
  1383.  
  1384.  
  1385.  
  1386.  
  1387. Sub ResetForNewPlayerBall()
  1388.  
  1389. OverlayMovie.UpdateInterval = 400: OverlayMovieHUD.UpdateInterval = 400
  1390. OverlayMovie.Frame 209, 210, 209: OverlayMovieHUD.Frame 209, 210, 209
  1391.  
  1392. QuoteBusy = FALSE
  1393.  
  1394. DT_1.PopDown
  1395. DT_2.PopDown
  1396. DT_3.PopDown
  1397. DT_4.PopDown
  1398.  
  1399. LightLaneL.State = BulbOff
  1400. LightLaneR.State = BulbOff
  1401.  
  1402. 'LightSuperRampL.State = BulbOff
  1403. 'LightSuperRampR.State = BulbOff
  1404.  
  1405. LightSAVE1.State = BulbOff
  1406. LightSAVE2.State = BulbOff
  1407. LightSAVE3.State = BulbOff
  1408. LightSAVE4.State = BulbOff
  1409.  
  1410. LightPurge1.State = BulbOff
  1411. LightPurge2.State = BulbOff
  1412.  
  1413. LightCentrePurge.State = BulbOff
  1414.  
  1415. LightLeft1.State = BulbBlink
  1416. LightLeft2.State = BulbBlink
  1417. LightLeft3.State = BulbBlink
  1418.  
  1419. LightSuperPops.State = BulbOff
  1420.  
  1421. 'LightPhoto.State = BulbOff
  1422. 'LightVK.State = BulbOff
  1423. 'LightRange.State = BulbOff
  1424.  
  1425. LightCentre.State = BulbOff
  1426. LightBlade.State = BulbBlink
  1427. LightRunner.State = BulbBlink
  1428. LightTyrell.State = BulbOff
  1429.  
  1430. LightRO1.State = BulbOff
  1431. LightRO2.State = BulbOff
  1432.  
  1433. LightLO3.State = BulbOff
  1434.  
  1435. LightRampL.State = BulbOff
  1436. LightRampR.State = BulbOff
  1437.  
  1438. LightNexusL.State = BulbOff
  1439. LightNexusR.State = BulbOff
  1440.  
  1441. LightNew.State = BulbBlink
  1442. LightCase.State = BulbBlink
  1443.  
  1444. LightDT.State = BulbOff
  1445.  
  1446. LightRep.State = BulbOff
  1447.  
  1448. MagnetActive = FALSE
  1449.  
  1450. 'RachaelHit = 0
  1451. 'SebastianHit = 0
  1452. 'GaffHit = 0
  1453. 'PrisHit = 0
  1454. 'ZhoraHit = 0
  1455. 'LeonHit = 0
  1456. 'TyrellHit = 0
  1457. 'ChewHit = 0
  1458.  
  1459. SuperSpin = 0
  1460. PFScore = 1
  1461. BumpHit = 0
  1462.  
  1463. LightRing1.State = BulbOff
  1464. LightRing2.State = BulbOff
  1465. LightRing3.State = BulbOff
  1466. LightRing4.State = BulbOff
  1467. LightRing5.State = BulbOff
  1468. LightRing6.State = BulbOff
  1469. LightRing7.State = BulbOff
  1470. LightRing8.State = BulbOff
  1471.  
  1472. ShootAgainLight.State = BulbOff
  1473. SetBonusMultiplier(1)
  1474.  
  1475. If (BallsRemaining(CurrentPlayer) = 1) Then
  1476. 'PlayMusic 2, "vo_AngelsFell"
  1477. DMD.Text = "[y1][xc][f6][b]LAST BALL"
  1478. Else
  1479. If (bOnTheFirstBall = FALSE) Then
  1480. End If
  1481. End If
  1482. End Sub
  1483.  
  1484.  
  1485.  
  1486.  
  1487. Sub CreateNewBall()
  1488. FF_Sound DV_RF,-1, "fx_GunShot2"
  1489. PlungerKicker.CreateBall: AddTrackedBall(PlungerKicker)
  1490. BallsOnPlayfield = BallsOnPlayfield + 1
  1491. PlungerKicker.SolenoidPulse
  1492.  
  1493. End Sub
  1494.  
  1495. 'FF_Sound DV_RS,-1,
  1496.  
  1497. Sub AutoFire_Expired()
  1498. AutoFire.Enabled = FALSE
  1499. FF_Sound DV_RS,-1, "fx_GunShot2"
  1500. FF_DOF "E",132,-1 'DOFLinx DOF MX - Ball Launched
  1501. Plunger.SolenoidPulse
  1502. StartButtonBulb.FlashForMs 200, 50, BulbOff
  1503. AllPlasOff()
  1504. PFFlashTimer.Set TRUE, 400
  1505. LightSeqPF.UpdateInterval = 5
  1506. LightSeqPF.Play SeqUpOn, 20
  1507. 'LightSeqGI.Play SeqBlinking, , 1, 125
  1508. End Sub
  1509.  
  1510.  
  1511. Sub LightSeqPF_Empty()
  1512. LightSeqPF.UpdateInterval = 10
  1513. End Sub
  1514.  
  1515.  
  1516. Sub SetAllLightsForAttractMode()
  1517. ShootAgainLight.State = BulbBlink
  1518. BF = 0
  1519. BumpAttract.Set TRUE, 200
  1520.  
  1521. ' the mission arrows...
  1522. LightDT.Set BulbBlink, "100000000", 150
  1523. LightLO3.Set BulbBlink, "010000000", 150
  1524. LightLaneL.Set BulbBlink, "001000000", 150
  1525. LightRampL.Set BulbBlink, "000100000", 150
  1526. LightCentrePurge.Set BulbBlink, "000010000", 150
  1527. LightRampR.Set BulbBlink, "000001000", 150
  1528. LightLaneR.Set BulbBlink, "000000100", 150
  1529. LightRep.Set BulbBlink, "000000010", 150
  1530. LightMode.Set BulbBlink, "000000001", 150
  1531.  
  1532. LightSuperPops.State = BulbBlink
  1533. LightTyrell.State = BulbBlink
  1534. LightSuperRampL.State = BulbBlink
  1535. LightSuperRampR.State = BulbBlink
  1536.  
  1537. LightSnakePit.State = BulbBlink
  1538.  
  1539. LightNew.State = BulbBlink
  1540. LightCase.State = BulbBlink
  1541.  
  1542. LightElevator.State = BulbBlink
  1543.  
  1544. LightRange.Set BulbBlink, "100", 125
  1545. LightVK.Set BulbBlink, "010", 125
  1546. LightPhoto.Set BulbBlink, "001", 125
  1547.  
  1548. LightRO1.Set BulbBlink, "10", 125
  1549. LightRO2.Set BulbBlink, "01", 125
  1550.  
  1551. LightPurge1.Set BulbBlink, "10", 125
  1552. LightPurge2.Set BulbBlink, "01", 125
  1553.  
  1554. LightLeft1.Set BulbBlink, "100", 150
  1555. LightLeft2.Set BulbBlink, "010", 150
  1556. LightLeft3.Set BulbBlink, "001", 150
  1557.  
  1558. LightBlade.Set BulbBlink, "100", 150
  1559. LightCentre.Set BulbBlink, "010", 150
  1560. LightRunner.Set BulbBlink, "001", 150
  1561.  
  1562. LightLeft1.Set BulbBlink, "100", 150
  1563. LightLeft2.Set BulbBlink, "010", 150
  1564. LightLeft3.Set BulbBlink, "001", 150
  1565.  
  1566. LightSAVE1.Set BulbBlink, "1000", 150
  1567. LightSAVE2.Set BulbBlink, "0100", 150
  1568. LightSAVE3.Set BulbBlink, "0010", 150
  1569. LightSAVE4.Set BulbBlink, "0001", 150
  1570.  
  1571. LightLeonMain.Set BulbBlink, "10000000011111111010100", 150
  1572. LightZhoraMain.Set BulbBlink, "01000000001111111001010", 150
  1573. LightPrisMain.Set BulbBlink, "00100000000111111010100", 150
  1574. LightTyrellMain.Set BulbBlink, "00010000000011111001010", 150
  1575. LightSebastianMain.Set BulbBlink,"00001000000001111010100", 150
  1576. LightChewMain.Set BulbBlink, "00000100000000111001010", 150
  1577. LightRachaelMain.Set BulbBlink, "00000010000000011010100", 150
  1578. LightGaffMain.Set BulbBlink, "00000001000000001001010", 150
  1579.  
  1580. LightRing8.Set BulbBlink,"10", 100
  1581. LightRing7.Set BulbBlink,"10", 100
  1582. LightRing6.Set BulbBlink,"10", 100
  1583. LightRing5.Set BulbBlink,"10", 100
  1584. LightRing4.Set BulbBlink,"10", 100
  1585. LightRing3.Set BulbBlink,"10", 100
  1586. LightRing2.Set BulbBlink,"10", 100
  1587. LightRing1.Set BulbBlink,"10", 100
  1588.  
  1589. LightNexusL.State = BulbBlink
  1590. LightNexusR.State = BulbBlink
  1591.  
  1592. PlayAtt = 0
  1593. AttractTimer.Set TRUE, 4600
  1594. End Sub
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600. Sub BumpAttract_Expired()
  1601. BF = BF + 1
  1602. Select Case BF
  1603. Case 1: Bumper1_Hit()
  1604. Case 2: Bumper2_Hit()
  1605. Case 3: Bumper3_Hit()
  1606. Case 4,5: Bumper1_Hit(): Bumper2_Hit(): Bumper3_Hit()
  1607. Case 6: Bumper1_Hit(): Bumper2_Hit(): Bumper3_Hit(): BF = 0
  1608. End Select
  1609. End Sub
  1610.  
  1611.  
  1612.  
  1613.  
  1614. Sub AttractTimer_Expired()
  1615. PlayAtt = PlayAtt + 1
  1616. Select Case PlayAtt
  1617. Case 1:
  1618. OverlayMovie.UpdateInterval = 64: OverlayMovieHUD.UpdateInterval = 64
  1619. OverlayMovie.Frame 1, 66: OverlayMovieHUD.Frame 1, 66
  1620. LightSeqPF.Play SeqMiddleInVertOn, 25
  1621. AttractTimer.Set TRUE, 15000
  1622. Case 2:
  1623. AttractTimer.Set TRUE, 9000
  1624. PlayMusic 2, "vo_Batty"
  1625. OverlayMovie.UpdateInterval = 1000: OverlayMovieHUD.UpdateInterval = 1000
  1626. OverlayMovie.Frame 68: OverlayMovieHUD.Frame 68
  1627. HoloNeon4.UpdateInterval = 800
  1628. HoloNeon4.Frame 49, 51, 49
  1629. LightSeqPF.Play SeqCircleOutOn, 25
  1630. Case 3:
  1631. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  1632. OverlayMovie.Frame 72, 206: OverlayMovieHUD.Frame 72, 206
  1633. Select Case RandomNumber(3)
  1634. Case 1: PlayMusic 3, "vo_Nexus5", FALSE, 0.6
  1635. Case 2: PlayMusic 3, "vo_Announcement"
  1636. Case 3: PlayMusic 3, "Music_Attention", FALSE, 0.5
  1637. End Select
  1638. AttractTimer.Set TRUE, 10000
  1639. Case 4:
  1640. EffectMusic 3, FadeOutAndStop, 0, 2000
  1641. AttractTimer.Set TRUE, 12000
  1642. PlayMusic 2, "vo_Leon2"
  1643. OverlayMovie.UpdateInterval = 1000: OverlayMovieHUD.UpdateInterval = 1000
  1644. OverlayMovie.Frame 69: OverlayMovieHUD.Frame 69
  1645. LightSeqPF.Play SeqCircleInOn, 25
  1646. Case 5:
  1647. PlayMusic 2, "vo_Zora"
  1648. OverlayMovie.UpdateInterval = 1000
  1649. OverlayMovie.Frame 70: OverlayMovieHUD.Frame 70
  1650. HoloNeon4.Frame 10
  1651. LightSeqPF.Play SeqScrewLeftOn, 25
  1652. AttractTimer.Set TRUE, 9500
  1653. Case 6:
  1654. OverlayMovie.UpdateInterval = 64: OverlayMovieHUD.UpdateInterval = 64
  1655. OverlayMovie.Frame 252, 330: OverlayMovieHUD.Frame 252, 330
  1656. 'MovieTimer.Set TRUE, 5000
  1657. PlaySound "fx_SpinnerFlyBy"
  1658. LightSeqPF.Play SeqRandom, 40, ,3000
  1659. AttractTimer.Set TRUE, 5000
  1660. Case 7:
  1661. PlayMusic 2, "vo_Pris"
  1662. OverlayMovie.UpdateInterval = 1000
  1663. OverlayMovie.Frame 71: OverlayMovieHUD.Frame 71
  1664. LightSeqPF.Play SeqRandomEffect, 100
  1665. AttractTimer.Set TRUE, 9500
  1666. Case 8:
  1667. PlayMusic 2, "vo_Nexus6"
  1668. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  1669. OverlayMovie.Frame 72, 206: OverlayMovieHUD.Frame 72, 206
  1670. LightSeqPF.Play SeqWiperRightOn, 45
  1671. AttractTimer.Set TRUE, 15000
  1672. Case 9:
  1673. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  1674. OverlayMovie.Frame 696, 734: OverlayMovieHUD.Frame 696, 734
  1675. MovieTimer.Set TRUE, 3000
  1676. Case 10:
  1677. OverlayMovie.UpdateInterval = 64: OverlayMovieHUD.UpdateInterval = 64
  1678. OverlayMovie.Frame 1, 66: OverlayMovieHUD.Frame 1, 66
  1679. PlaySound "fx_SpinnerFlyBy4"
  1680. PlayAtt = 9
  1681. End Select
  1682. End Sub
  1683.  
  1684.  
  1685.  
  1686. Sub MusicResume_Expired()
  1687. MusicResume.Enabled = FALSE
  1688. EffectMusic 4, FadeOutAndStop, 0, 500
  1689. If (ModeActive = TRUE) Then
  1690. EffectMusic 5, PlayAndFadeIn, 0.6, 100
  1691. Else
  1692. EffectMusic 1, PlayAndFadeIn, 0.6, 100
  1693. End If
  1694. End Sub
  1695.  
  1696.  
  1697.  
  1698.  
  1699. ' ******************************
  1700. ' ** **
  1701. ' ** DRAIN **
  1702. ' ** **
  1703. ' ******************************
  1704.  
  1705.  
  1706.  
  1707. Sub Drain_Hit()
  1708. FF_Sound DV_LF,-1, "fx_Drain"
  1709. Drain.DestroyBall: DeleteTrackedBall(Drain)
  1710. BallsOnPlayfield = BallsOnPlayfield - 1
  1711. PlaySound "fx_Drain"
  1712. If (fpGameInPlay = TRUE) and (fpTilted = FALSE) Then
  1713. If (bBallSaverActive = TRUE) or (SaveMeTimer.Enabled = TRUE) Then
  1714. AutoFire.Set TRUE, 600
  1715. If (SaveMeTimer.Enabled = TRUE) Then
  1716. DMD.Text = "[y1][xc][f6][bf]RAMP SAVER"
  1717. PlaySound "fx_26"
  1718. Else
  1719. If (QuoteBusy = FALSE) Then
  1720. QuoteBusy = TRUE
  1721. If (BattyMode = TRUE) Then
  1722. PlayMusic 2, "vo_Deckard3"
  1723. Else
  1724. Select Case RandomNumber(2)
  1725. Case 1: PlayMusic 2, "vo_Laugh"
  1726. Case 2: PlayMusic 2, "vo_HumanAgain"
  1727. End Select
  1728. End If
  1729. End If
  1730. End If
  1731. CreateNewBall()
  1732. Else
  1733. If (BallsOnPlayfield = 1) Then
  1734. If (bMultiBallMode = True) then
  1735. bMultiBallMode = False
  1736. End If
  1737. End If
  1738.  
  1739. If (BallsOnPlayfield = 0) Then
  1740. If (ModeActive = TRUE) Then
  1741. ModeActive = FALSE
  1742. MusicResume.Set TRUE, 100
  1743. StopMusic 5
  1744. DMD.FlushQueue
  1745. DMD.QueueText "[y0][xc][f3][b]ASSIGNMENT[y11][f1]INCOMPLETE", deNone, 2000, TRUE
  1746. OverlayMovie.UpdateInterval = 1000: OverlayMovieHUD.UpdateInterval = 1000
  1747. OverlayMovie.Frame 593,594: OverlayMovieHUD.Frame 593,594
  1748. MovieTimer.Set TRUE, 2500
  1749. Else
  1750. OverlayMovie.Frame 211: OverlayMovieHUD.Frame 211
  1751. DMD.FlushQueue
  1752. DMD.QueueText "[yc][xc][f6][b]BALL LOST", deNone, 2000, TRUE
  1753. End If
  1754. If (LeonMode = TRUE) Then
  1755. LeonMode = FALSE: KillLeon = FALSE
  1756. LightLeonMain.State = BulbOff
  1757. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_PartOfTest"
  1758. End If
  1759. If (ZhoraMode = TRUE) Then
  1760. ZhoraMode = FALSE
  1761. LightZhoraMain.State = BulbOff
  1762. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_ForReal"
  1763. End If
  1764. If (PrisMode = TRUE) Then
  1765. PrisMode = FALSE
  1766. LightPrisMain.State = BulbOff
  1767. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_LikeYou"
  1768. End If
  1769. If (TyrellMode = TRUE) Then
  1770. TyrellMode = FALSE
  1771. LightTyrellMain.State = BulbOff
  1772. LightElevator.State = BulbOff
  1773. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Problem"
  1774. End If
  1775. If (SebastianMode = TRUE) Then
  1776. SebastianMode = FALSE
  1777. LightSebastianMain.State = BulbOff
  1778. LightElevator.State = BulbOff
  1779. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_GrowOldTooFast"
  1780. End If
  1781. If (ChewMode = TRUE) Then
  1782. ChewMode = FALSE
  1783. LightChewMain.State = BulbOff
  1784. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_ChewTalk3"
  1785. End If
  1786. If (RachaelMode = TRUE) Then
  1787. RachaelMode = FALSE
  1788. LightRachaelMain.State = BulbOff
  1789. If (QuoteBusy = FALSE) Then
  1790. QuoteBusy = TRUE
  1791. Select Case RandomNumber(2)
  1792. Case 1: PlayMusic 2, "vo_DontThinkSo", FALSE, 0.7
  1793. Case 2: PlayMusic 2, "vo_WontLive"
  1794. OverlayMovie.Frame 884: OverlayMovieHUD.Frame 884
  1795. MovieTimer.Set TRUE, 2000
  1796. End Select
  1797. End If
  1798. End If
  1799. If (GaffMode = TRUE) Then
  1800. GaffMode = FALSE
  1801. LightGaffMain.State = BulbOff
  1802. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Pathetic2", FALSE, 0.7
  1803. End If
  1804. If (BattyMode = TRUE) Then
  1805. BattyMode = FALSE
  1806. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_WhereGoing"
  1807. ' game will now reset...
  1808. LightLeonMain.Set BulbOff, "10", 150
  1809. LightZhoraMain.Set BulbOff, "10", 150
  1810. LightPrisMain.Set BulbOff, "10", 150
  1811. LightTyrellMain.Set BulbOff, "10", 150
  1812. LightSebastianMain.Set BulbOff,"10", 150
  1813. LightChewMain.Set BulbOff, "10", 150
  1814. LightRachaelMain.Set BulbOff, "10", 150
  1815. LightGaffMain.Set BulbOff, "10", 150
  1816. RachaelHit = 0
  1817. SebastianHit = 0
  1818. GaffHit = 0
  1819. PrisHit = 0
  1820. ZhoraHit = 0
  1821. LeonHit = 0
  1822. TyrellHit = 0
  1823. ChewHit = 0
  1824. LightRing1.State = BulbOff
  1825. LightRing2.State = BulbOff
  1826. LightRing3.State = BulbOff
  1827. LightRing4.State = BulbOff
  1828. LightRing5.State = BulbOff
  1829. LightRing6.State = BulbOff
  1830. LightRing7.State = BulbOff
  1831. LightRing8.State = BulbOff
  1832. End If
  1833. TakeOffTimer.Enabled = FALSE
  1834. StopMusic 6
  1835. RangeTimer.Enabled = FALSE
  1836.  
  1837. 'RangeValue = 50
  1838. 'RampValue = 150
  1839.  
  1840. ' for now, reset all mission shots...
  1841. 'RachaelHit = 0
  1842. 'SebastianHit = 0
  1843. 'GaffHit = 0
  1844. 'PrisHit = 0
  1845. 'ZhoraHit = 0
  1846. 'LeonHit = 0
  1847. 'TyrellHit = 0
  1848. 'ChewHit = 0
  1849.  
  1850. If (ShootingMode = TRUE) Then
  1851. ShootingMode = FALSE
  1852. LightRange.State = BulbOff
  1853. End If
  1854. If (VKMode = TRUE) Then
  1855. VKMode = FALSE
  1856. LightVK.State = BulbOff
  1857. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_TestYourself", FALSE, 0.7
  1858. End If
  1859. If (PhotoMode = TRUE) Then
  1860. PhotoMode = FALSE
  1861. LightPhoto.State = BulbOff
  1862. End If
  1863. If (SuperRamps = TRUE) Then
  1864. EffectMusic 5, FadeOutAndStop, 0, 500
  1865. EffectMusic 1, PlayAndFadeIn, 0.6, 500
  1866. SuperRamps = FALSE
  1867. SuperRampsTimer.Enabled = FALSE
  1868. End If
  1869. EndOfBall()
  1870. End If
  1871. End If
  1872. End If
  1873. End Sub
  1874.  
  1875.  
  1876.  
  1877. Sub EndOfBall()
  1878. Dim BonusDelayTime
  1879.  
  1880. 'MusicResume.Enabled = FALSE
  1881.  
  1882. PlaySound "fx_14"
  1883. bOnTheFirstBall = FALSE
  1884.  
  1885. If (fpTilted = FALSE) Then
  1886. Dim AwardPoints
  1887. If (BonusMultiplier(CurrentPlayer) =>2) Then
  1888. AwardPoints = BonusPoints(CurrentPlayer) * BonusMultiplier(CurrentPlayer)
  1889. AddScore(AwardPoints)
  1890. DMD.QueueText " ", deNone, 300, FALSE
  1891. DMD.QueueText "[y0][xc][f3]BONUS X " & BonusMultiplier(CurrentPlayer) & "[y11][f1]$ " & FormatNumber(BonusPoints(CurrentPlayer), 0, -1, 0, -1), deNone, 800, FALSE
  1892. DMD.QueueText "[y0][xc][f3]BONUS X " & BonusMultiplier(CurrentPlayer) & "[b][y11][f1]$ " & FormatNumber(AwardPoints, 0, -1, 0, -1), deNone, 2000, TRUE, "fx_Hit10"
  1893. Else
  1894. AwardPoints = BonusPoints(CurrentPlayer)
  1895. AddScore(AwardPoints)
  1896. DMD.QueueText " ", deNone, 300, FALSE
  1897. DMD.QueueText "[y0][xc][f3]BONUS X " & BonusMultiplier(CurrentPlayer) & "[y11][f1]$ " & FormatNumber(BonusPoints(CurrentPlayer), 0, -1, 0, -1), deNone, 800, FALSE
  1898. DMD.QueueText "[y0][xc][f3]BONUS X " & BonusMultiplier(CurrentPlayer) & "[b][y11][f1]$ " & FormatNumber(BonusPoints(CurrentPlayer), 0, -1, 0, -1), deNone, 2000, TRUE, "fx_Hit10"
  1899. End If
  1900. BonusDelayTime = 3000
  1901. Else
  1902. BonusDelayTime = 200
  1903. End If
  1904.  
  1905. EndOfBallTimer.Interval = BonusDelayTime
  1906. EndOfBallTimer.Enabled = TRUE
  1907. End Sub
  1908.  
  1909.  
  1910.  
  1911.  
  1912. Sub EndOfBallTimer_Expired()
  1913.  
  1914. EndOfBallTimer.Enabled = FALSE
  1915.  
  1916. fpTilted = FALSE
  1917.  
  1918. If (ExtraBallsAwards(CurrentPlayer) > 0) Then
  1919.  
  1920. ExtraBallsAwards(CurrentPlayer) = ExtraBallsAwards(CurrentPlayer) - 1
  1921.  
  1922. If (ExtraBallsAwards(CurrentPlayer) = 0) Then
  1923. ShootAgainLight.State = BulbOff
  1924. End If
  1925. ' shows eyeball....
  1926. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  1927. OverlayMovie.Frame 72, 106: OverlayMovieHUD.Frame 72, 106
  1928. MovieTimer.Set TRUE, 2000
  1929. DMD.Text = "[y1][xc][f6][bf]MORE LIFE"
  1930. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_MoreLife"
  1931. EffectMusic 1, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 2500
  1932. PlayMusic 3, "Music_Cue2", FALSE, 0.7
  1933. ' the mission arrows...
  1934. LightDT.Set BulbOff, "10", 150
  1935. LightLO3.Set BulbOff, "10", 150
  1936. LightLaneL.Set BulbOff, "10", 150
  1937. LightRampL.Set BulbOff, "10", 150
  1938. LightCentrePurge.Set BulbOff, "10", 150
  1939. LightRampR.Set BulbOff, "10", 150
  1940. LightLaneR.Set BulbOff, "10", 150
  1941. LightRep.Set BulbOff, "10", 150
  1942. 'LightMode.Set BulbOff, "10", 150
  1943.  
  1944. FlasherL.FlashForMs 1000, 75, BulbOff
  1945. FlasherM.FlashForMs 1000, 75, BulbOff
  1946. Flasher1.FlashForMs 1000, 75, BulbOff
  1947.  
  1948. CreateNewBall()
  1949. Else
  1950. BallsRemaining(CurrentPlayer) = BallsRemaining(CurrentPlayer) - 1
  1951. If (BallsRemaining(CurrentPlayer) <= 0) Then
  1952. If (BuyIn = TRUE) and (nvScore(CurrentPlayer) > 5000) Then
  1953. BuyIn = FALSE
  1954. DMD.Text = "[y0][xc][f3]CONTINUE GAME?[y11][f1]< YES NO >"
  1955. EffectMusic 1, FadeOutAndPause, 0, 100
  1956. PlayMusic 4, "Music_BackGround9"
  1957. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Continue"
  1958. BuyInActive = TRUE
  1959. Else
  1960. PlayMusic 1, "Music_HSEntry"
  1961. bEnteringAHighScore = TRUE
  1962. EnterHighScore(CurrentPlayer)
  1963. End If
  1964. Else
  1965. AddScore(0)
  1966. EndOfBallComplete()
  1967. End If
  1968. End If
  1969. End Sub
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975. Sub EndOfBallComplete()
  1976. Dim NextPlayer
  1977. If (PlayersPlayingGame > 1) Then
  1978. NextPlayer = CurrentPlayer + 1
  1979. If (NextPlayer > PlayersPlayingGame) Then
  1980. NextPlayer = 1
  1981. End If
  1982. Else
  1983. NextPlayer = CurrentPlayer
  1984. End If
  1985.  
  1986. If ((BallsRemaining(CurrentPlayer) <= 0) and (BallsRemaining(NextPlayer) <= 0)) Then
  1987. ' after buy in and high score entry...add some end of game bonus shit here. Use money to buy
  1988. ' special items and modify the next game (must have at least $5000 to buy the cheapest item)...
  1989. If (nvScore(CurrentPlayer) => 3000) and (NoShop = FALSE) Then
  1990. OverlayMovie.Frame 247: OverlayMovieHUD.Frame 247
  1991. PlayMusic 1, "Music_ComputerShort", TRUE, 0.8
  1992. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_Modified"
  1993. DMD.Text = "[y0][xc][f3]UPGRADE SHOP[y11][f1]MODIFY NEXT GAME"
  1994. UpgradeTimer.Set TRUE, 2000
  1995. ' reset all base values here...
  1996.  
  1997. RangeTime = 20000
  1998. BSTime = 12000
  1999. PhotoValue = 250: AdjPhotoValue = 250
  2000. RangeValue = 50: AdjRangeValue = 50
  2001. VKValue = 150: AdjVKValue = 150
  2002. RampValue = 150: AdjRampValue = 150
  2003. MissionHit = 250: AdjMissionHit = 250
  2004. SnakeHit = 5: AdjSnakeHit = 5
  2005. SRTime = 10000: AdjSRTime = 10000
  2006. Else
  2007. EndOfGame()
  2008. End If
  2009. Else
  2010. CurrentPlayer = NextPlayer
  2011. ResetForNewPlayerBall()
  2012. CreateNewBall()
  2013. End If
  2014. End Sub
  2015.  
  2016.  
  2017.  
  2018. Sub UpgradeTimer_Expired()
  2019. UpgradeTimer.Enabled = FALSE
  2020. Upgrade = 0: ShopActive = TRUE
  2021. DMD.Text = "[y0][xc][f3]CASH: $ " & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1) & "[y11][f1][b]NAVIGATE WITH FLIPPERS"
  2022. End Sub
  2023.  
  2024.  
  2025.  
  2026. Sub DelayEOB_Expired()
  2027. DelayEOB.Enabled = FALSE
  2028. If (IgnoreHit = FALSE) Then
  2029. PlayMusic 1, "Music_HSEntry"
  2030. bEnteringAHighScore = TRUE
  2031. EnterHighScore(CurrentPlayer)
  2032. Else
  2033. IgnoreHit = FALSE
  2034. EndOfBallComplete()
  2035. End If
  2036. End Sub
  2037.  
  2038.  
  2039.  
  2040. Sub DelayEOG_Expired()
  2041. DelayEOG.Enabled = FALSE
  2042. EndOfGame()
  2043. End Sub
  2044.  
  2045.  
  2046. Dim NoShop
  2047.  
  2048.  
  2049. Sub EndOfGame()
  2050. HoloNeon1.Frame 2, 3, 2
  2051. HoloNeon4.Frame 10
  2052. HoloNeon6.Frame 11
  2053. NeonHotel.Frame 14
  2054. HoloNeon7.Frame 15
  2055. CokeSign.UpdateInterval = 200
  2056. CokeSign.Frame 16, 28, 16
  2057. AtariSign.UpdateInterval = 250
  2058. AtariSign.Frame 30, 32, 30
  2059. BGReflect.Render = FALSE
  2060. AllPlasOff()
  2061. MovieTimer.Enabled = FALSE
  2062. NoShop = FALSE
  2063.  
  2064. DMD.FlushQueue
  2065.  
  2066. If (nvCredits =>1) Then
  2067. DMD.QueueText "[y3][xc][f3]GAME OVER[y21][f1]PRESS START", deNone, 4000, FALSE
  2068. DMD2.QueueText "[y3][xc][f3]GAME OVER[y21][f1]PRESS START", deNone, 4000, FALSE
  2069. Else
  2070. DMD.QueueText "[y3][xc][f3]GAME OVER[y21][f1][b]INSERT COIN", deNone, 4000, FALSE
  2071. DMD2.QueueText "[y3][xc][f3]GAME OVER[y21][f1]PRESS START", deNone, 4000, FALSE
  2072. End If
  2073.  
  2074. DMD2.QueueText "[f1][y2]SWAP DISPLAY NAME[y9]WITH HUD FOR CAB", deNone, 1000, TRUE
  2075.  
  2076. DMD.QueueText "[f1][y1]BLADE RUNNER[f3][y7][bf]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollRight, 4000, FALSE
  2077. DMD.QueueText "[f1][y1]REPLICANT[f3][y7][bf]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollLeft, 4000, FALSE
  2078. DMD.QueueText "[f1][y1]CITIZEN[f3][y7][bf]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollRight, 4000, FALSE
  2079. DMD.QueueText "[f1][y1]CREATED BY[f3][y7]SLAMT1LT", deFlip, 3000, FALSE
  2080. DMD.QueueText "[f1][y1]OPTIMIZED FOR[f3][y7]B.A.M.", deNone, 3000, FALSE
  2081.  
  2082. OverlayMovie.Frame 66: OverlayMovieHUD.Frame 66
  2083. PlayMusic 2, "fx_OffWorld", FALSE, 1
  2084. PlayMusic 1, "Music_Attract", TRUE, 0.6
  2085. EndGame()
  2086. LeftFlipper.SolenoidOff
  2087. RightFlipper.SolenoidOff
  2088. FF_Dev DV_RF,0 ' Turn the flipper solenoids off
  2089. FF_Dev DV_LF,0 ' Turn the flipper solenoids off
  2090. SetAllLightsForAttractMode()
  2091. End Sub
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097. ' ***********************************************
  2098. ' ** **
  2099. ' ** PLUNGER LANE/BALL SAVER **
  2100. ' ** **
  2101. ' ***********************************************
  2102.  
  2103.  
  2104.  
  2105. Sub PlungerLaneTrigger_Hit()
  2106. bBallInPlungerLane = TRUE
  2107. StartButtonBulb.State = BulbOn
  2108. set LastSwitchHit = PlungerLaneTrigger
  2109. 'FF_Sound DV_RS,-1,"fx_SlingR"
  2110. End Sub
  2111.  
  2112.  
  2113.  
  2114. Sub PlungerKicker_Hit()
  2115. PlungerKicker.SolenoidPulse
  2116. FF_Sound DV_RF,-1, "fx_GunShot2"
  2117. FF_Sound DV_RS,-1,"fx_BallRelease"
  2118. End Sub
  2119.  
  2120.  
  2121.  
  2122. Sub PlungerLaneExit_Hit()
  2123. MovieTimer.Set TRUE, 100
  2124. NoPlay = FALSE
  2125. bBallInPlungerLane = FALSE
  2126. StartButtonBulb.State = BulbOff
  2127. If (bBallSaverActive = FALSE) Then
  2128. ShootAgainLight.State = BulbBlink
  2129. bBallSaverActive = TRUE
  2130. BallSaverTimer.Set TRUE, BSTime
  2131. ' create skill shot here...
  2132. SSTimer.Set TRUE, 5000
  2133. LightRampL.State = BulbBlink
  2134. LightRampR.State = BulbBlink
  2135. AddScore(0)
  2136. End If
  2137. 'FF_Sound DV_RS,-1,"fx_SlingR"
  2138. End Sub
  2139.  
  2140.  
  2141.  
  2142. Sub BallSaverTimer_Expired()
  2143. If (ExtraBallsAwards(CurrentPlayer) = 0) Then
  2144. ShootAgainLight.State = BulbOff
  2145. Else
  2146. ShootAgainLight.State = BulbOn
  2147. End If
  2148. BallSaverTimer.Enabled = FALSE
  2149. bBallSaverActive = FALSE
  2150. End Sub
  2151.  
  2152.  
  2153.  
  2154. Sub SSTimer_Expired()
  2155. SSTimer.Enabled = FALSE
  2156. If (ModeActive = FALSE) Then
  2157. LightRampL.State = BulbOff
  2158. LightRampR.State = BulbOff
  2159. End If
  2160. 'LightRampL.State = BulbOff
  2161. 'LightRampR.State = BulbOff
  2162. End Sub
  2163.  
  2164.  
  2165. Dim NoPlay,MoveIt
  2166.  
  2167.  
  2168. ' the start of the launch ramp...
  2169.  
  2170. Sub TrigLaunchRamp_Hit()
  2171. If (LastSwitchHit.Name = "TrigLaunchRamp") Then
  2172. If (RampDivertTimer.Enabled = TRUE) Then
  2173. PopUp1.SolenoidPulse(4000)
  2174. If (NoPlay = FALSE) Then NoPlay = TRUE: PlaySound "fx_7"
  2175. MoveIt = 0: RampDivertTimer.Set TRUE, 3000
  2176. End If
  2177. Exit Sub
  2178. End If
  2179. If (NoPlay = FALSE) Then
  2180. PlaySound "fx_HitWireRamp"
  2181. MoveIt = 0: RampDivertTimer.Set TRUE, 3200
  2182. PlaySound "fx_ShellCasing"
  2183. End If
  2184. set LastSwitchHit = TrigLaunchRamp
  2185. End Sub
  2186.  
  2187.  
  2188.  
  2189. Sub RampDivertTimer_Expired()
  2190. MoveIt = MoveIt + 1
  2191. Select Case MoveIt
  2192. Case 1:
  2193. If (QuoteBusy = FALSE) Then
  2194. QuoteBusy = TRUE
  2195. Select Case RandomNumber(5)
  2196. Case 1: PlayMusic 2, "vo_WhatHappened"
  2197. Case 2: PlayMusic 2, "vo_Hello"
  2198. Case 3: PlayMusic 2, "vo_LikeItHere"
  2199. Case 4: PlayMusic 2, "vo_Problem"
  2200. Case 5: PlayMusic 2, "vo_ChewTalk2"
  2201. End Select
  2202. End If
  2203. RampDivertTimer.Set TRUE, 1000
  2204. Case 2:
  2205. RampDivertTimer.Enabled = FALSE
  2206. Bulb24.FlashForMs 1200, 100, BulbOn
  2207. PopUp1.SolenoidOff: PlaySound "fx_Punch"
  2208. DiverterPush.SolenoidPulse(2000): PlaySound "fx_DropDownR", 0.4
  2209. End Select
  2210. End Sub
  2211.  
  2212.  
  2213.  
  2214. Sub Trigger1_Hit()
  2215. RampDivertTimer.Enabled = FALSE
  2216. End Sub
  2217.  
  2218.  
  2219.  
  2220. ' *********************************************************************
  2221. ' ** **
  2222. ' ** Supporting Score Functions **
  2223. ' ** **
  2224. ' *********************************************************************
  2225.  
  2226.  
  2227.  
  2228. Sub AddScore(points)
  2229. If (fpTilted = FALSE) and (fpGameInPlay = TRUE) Then
  2230. If (EndOfBallTimer.Enabled = FALSE) Then Points = Points * PFScore
  2231. nvScore(CurrentPlayer) = nvScore(CurrentPlayer) + Points
  2232. BonusPoints(CurrentPlayer) = BonusPoints(CurrentPlayer) + 1
  2233. If (DMDBusy = FALSE) Then
  2234. Select Case PFScore
  2235. Case 1: DMD.Text = "[xc][y1][f6]$ " & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1): DMD2.Text = "[xc][y1][f6]$ " & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  2236. Case 2: DMD.Text = "[y0][xc][f3]$ " & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1) & "[y11][f1][b]DOUBLE SCORING"
  2237. Case 3: DMD.Text = "[y0][xc][f3]$ " & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1) & "[y11][f1][b]TRIPLE SCORING"
  2238. Case 4: DMD.Text = "[y0][xc][f3]$ " & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1) & "[y11][f1][b]QUADRUPLE SCORING"
  2239. End Select
  2240. End If
  2241. End if
  2242. End Sub
  2243.  
  2244.  
  2245.  
  2246. Sub AddJackpot(points)
  2247. If (fpTilted = False) Then
  2248. If (bMultiBallMode = TRUE) Then
  2249. nvJackpot = nvJackpot + points
  2250. End if
  2251. End if
  2252. End Sub
  2253.  
  2254.  
  2255.  
  2256.  
  2257. Sub IncrementBonusMultiplier()
  2258. Dim NewBonusLevel
  2259. NewBonusLevel = BonusMultiplier(CurrentPlayer) + 1
  2260. SetBonusMultiplier(NewBonusLevel)
  2261. End Sub
  2262.  
  2263.  
  2264.  
  2265.  
  2266. Sub SetBonusMultiplier(Level)
  2267. BonusMultiplier(CurrentPlayer) = Level
  2268. If (BonusMultiplier(CurrentPlayer) => 2) Then
  2269. DMD.QueueText "[xc[y3][f6]BONUS X " & BonusMultiplier(CurrentPlayer), deScrollIn, 1200, TRUE
  2270. End If
  2271. End Sub
  2272.  
  2273.  
  2274.  
  2275.  
  2276. ' *********************************************************************
  2277. ' ** **
  2278. ' ** Table Object Script Events **
  2279. ' ** **
  2280. ' *********************************************************************
  2281.  
  2282.  
  2283.  
  2284. Sub LeftSlingshotRubber_Hit()
  2285. AddScore(5)
  2286. FF_Sound DV_LS,-1,"fx_SlingL" 'DOFLinx Left Slingshot
  2287. FF_Flasher DV_FLOL,FL_FL,2,20,100,"Random" 'DOFLinx - Outer Left Flasher - Random
  2288. FF_DOF "E",110,-1 'DOFLinx DOF MX - Left Slingshot
  2289. PlaySound "fx_Hit4", 0.8
  2290.  
  2291. LeftSlingshotBulb1.FlashForMs 210, 75, BulbOn
  2292. LeftSlingshotBulb2.FlashForMs 210, 75, BulbOn
  2293. End Sub
  2294.  
  2295.  
  2296.  
  2297. Sub RightSlingshotRubber_Hit()
  2298. AddScore(5)
  2299. FF_Sound DV_RS,-1,"fx_SlingR" 'DOFLinx Right Slingshot
  2300. FF_Flasher DV_FLOR,FL_FL,2,20,100,"Random" 'DOFLinx - Outer Right Flasher - Random
  2301. PlaySound "fx_Hit4", 0.8
  2302. FF_DOF "E",111,-1 'DOFLinx DOF MX - Right Slingshot
  2303. RightSlingshotBulb1.FlashForMs 210, 75, BulbOn
  2304. RightSlingshotBulb2.FlashForMs 210, 75, BulbOn
  2305. End Sub
  2306.  
  2307.  
  2308.  
  2309.  
  2310. ' *************************************
  2311. ' ** **
  2312. ' ** IN/OUT LANES **
  2313. ' ** **
  2314. ' *************************************
  2315.  
  2316.  
  2317.  
  2318. Sub LeftInLaneTrigger_Hit()
  2319.  
  2320. If (fpTilted = TRUE) Then Exit Sub
  2321.  
  2322. If (LightNexusL.State = BulbOn) Then
  2323. NexusTimer.Enabled = FALSE
  2324. LightNexusL.State = BulbOff
  2325. LightNexusR.State = BulbOff
  2326. LightSAVE1.FlashForMs 500, 150, BulbOff
  2327. LightSAVE2.FlashForMs 500, 150, BulbOff
  2328. LightSAVE3.FlashForMs 500, 150, BulbOff
  2329. LightSAVE4.FlashForMs 500, 150, BulbOff
  2330. If (QuoteBusy = FALSE) and (BattyMode = FALSE) Then
  2331. QuoteBusy = TRUE
  2332. PlaySound "fx_Phone"
  2333. PlayMusic 2, "vo_Hello2"
  2334. Else
  2335. PlaySound "fx_Hit9"
  2336. End If
  2337. ShootAgainLight.State = BulbBlink
  2338. bBallSaverActive = TRUE
  2339. BallSaverTimer.Set TRUE, BSTime
  2340. AddScore(350)
  2341. Exit Sub
  2342. End If
  2343.  
  2344. If (LightSAVE2.State = BulbOff) Then
  2345. LightSAVE2.State = BulbOn: CheckSAVE()
  2346. Else
  2347. AddScore(5)
  2348. End If
  2349. set LastSwitchHit = LeftInLaneTrigger
  2350. End Sub
  2351.  
  2352.  
  2353.  
  2354. Sub RightInLaneTrigger_Hit()
  2355.  
  2356. If (fpTilted = TRUE) Then Exit Sub
  2357.  
  2358. If (LightNexusR.State = BulbOn) Then
  2359. NexusTimer.Enabled = FALSE
  2360. LightNexusL.State = BulbOff
  2361. LightNexusR.State = BulbOff
  2362. LightSAVE1.FlashForMs 500, 150, BulbOff
  2363. LightSAVE2.FlashForMs 500, 150, BulbOff
  2364. LightSAVE3.FlashForMs 500, 150, BulbOff
  2365. LightSAVE4.FlashForMs 500, 150, BulbOff
  2366. If (QuoteBusy = FALSE) and (BattyMode = FALSE) Then
  2367. QuoteBusy = TRUE
  2368. PlayMusic 2, "vo_WhatGeneration"
  2369. Else
  2370. PlaySound "fx_Hit9"
  2371. End If
  2372. DMD.QueueText "[y0][xc][f3]NEXUS 6[y11][f1]IS LIT", deScrollIn, 1800, TRUE
  2373. ShootAgainLight.State = BulbBlink
  2374. bBallSaverActive = TRUE
  2375. BallSaverTimer.Set TRUE, BSTime
  2376. AddScore(350)
  2377. Exit Sub
  2378. End If
  2379.  
  2380. If (LightSAVE3.State = BulbOff) Then
  2381. LightSAVE3.State = BulbOn: CheckSAVE()
  2382. Else
  2383. AddScore(5)
  2384. End If
  2385. set LastSwitchHit = RightInLaneTrigger
  2386. End Sub
  2387.  
  2388.  
  2389.  
  2390. Sub LeftOutLaneTrigger_Hit()
  2391.  
  2392. If (fpTilted = TRUE) Then Exit Sub
  2393.  
  2394. If (LightSAVE1.State = BulbOff) Then
  2395. LightSAVE1.State = BulbOn: CheckSAVE()
  2396. Else
  2397. AddScore(5)
  2398. End If
  2399. If (bBallSaverActive = FALSE) Then
  2400. If (QuoteBusy = FALSE) Then
  2401. QuoteBusy = TRUE
  2402. If (BattyMode = TRUE) Then
  2403. Select Case RandomNumber(3)
  2404. Case 1: PlayMusic 2, "vo_Irrational"
  2405. Case 2: PlayMusic 2, "vo_LiveInFear2"
  2406. Case 3: PlayMusic 2, "vo_SupposedToBeGood"
  2407. End Select
  2408. Else
  2409. If (BallsRemaining(CurrentPlayer) = 1) Then
  2410. PlayMusic 2, "vo_ThroughHuh"
  2411. OverlayMovie.Frame 884: OverlayMovieHUD.Frame 884
  2412. MovieTimer.Set TRUE, 1500
  2413. Else
  2414. Select Case RandomNumber(12)
  2415. Case 1: PlayMusic 2, "vo_NotGood"
  2416. Case 2: PlayMusic 2, "vo_WhatHappended"
  2417. Case 3: PlayMusic 2, "vo_Charming"
  2418. Case 4: PlayMusic 2, "vo_TreatAFriend"
  2419. Case 5: PlayMusic 2, "vo_SupposedToBeGood"
  2420. Case 6: PlayMusic 2, "vo_KnownBetter"
  2421. Case 7: PlayMusic 2, "vo_WhereGoing"
  2422. Case 8: PlayMusic 2, "vo_Proud"
  2423. Case 9: PlayMusic 2, "vo_Laugh"
  2424. Case 10: PlayMusic 2, "vo_Embarrassing"
  2425. Case 11: PlayMusic 2, "vo_BadJoke"
  2426. Case 12: PlayMusic 2, "vo_NotHelping"
  2427. End Select
  2428. End If
  2429. End If
  2430. End If
  2431. End If
  2432. set LastSwitchHit = LeftOutLaneTrigger
  2433. End Sub
  2434.  
  2435.  
  2436.  
  2437.  
  2438. Sub RightOutLaneTrigger_Hit()
  2439.  
  2440. If (fpTilted = TRUE) Then Exit Sub
  2441.  
  2442. If (LightSAVE4.State = BulbOff) Then
  2443. LightSAVE4.State = BulbOn: CheckSAVE()
  2444. Else
  2445. AddScore(5)
  2446. End If
  2447. set LastSwitchHit = RightOutLaneTrigger
  2448. End Sub
  2449.  
  2450.  
  2451.  
  2452. ' MORE HUMAN THAN HUMAN. Lights Nexus 6 inserts for Ball Saver activation....
  2453.  
  2454.  
  2455. Sub CheckSAVE()
  2456. If (LightSAVE1.State=BulbOn) and (LightSAVE2.State=BulbOn) and (LightSAVE3.State=BulbOn) and (LightSAVE4.State=BulbOn) Then
  2457. LightNexusL.State = BulbOn
  2458. LightNexusR.State = BulbOn
  2459. NexusTimer.Set TRUE, 15000
  2460. AddScore(300)
  2461. DMD.QueueText "[y0][xc][f3]NEXUS 6[y11][f1]IS LIT", deScrollIn, 1800, TRUE
  2462. PlaySound "fx_Phone"
  2463. Else
  2464. AddScore(30)
  2465. PlaySound "fx_Hit6"
  2466. End If
  2467. End Sub
  2468.  
  2469.  
  2470.  
  2471. Sub NexusTimer_Expired()
  2472. NexusTimer.Enabled = FALSE
  2473. LightNexusL.State = BulbOff
  2474. LightNexusR.State = BulbOff
  2475. LightSAVE1.FlashForMs 500, 150, BulbOff
  2476. LightSAVE2.FlashForMs 500, 150, BulbOff
  2477. LightSAVE3.FlashForMs 500, 150, BulbOff
  2478. LightSAVE4.FlashForMs 500, 150, BulbOff
  2479. End Sub
  2480.  
  2481.  
  2482.  
  2483. ' ************************************
  2484. ' ** **
  2485. ' ** KICKER BUMP **
  2486. ' ** **
  2487. ' ************************************
  2488.  
  2489.  
  2490. ' when both rollover lanes are completed, the Tyrell elevator is lit. When the kicker is hit
  2491. ' and the elevater light is on, you will move up a floor towards Tyrell's penthouse suite.
  2492.  
  2493. ' Get to the top to meet him.
  2494.  
  2495. Sub KickerBump_Hit()
  2496. PlaySound "fx_ScoopHitR"
  2497. EffectMusic 4, FadeOutAndStop, 0, 1000 ' stop the background fx...
  2498. AddScore(0)
  2499.  
  2500. If (fpTilted = TRUE) Then KickerBump.DestroyBall: DeleteTrackedBall(KickerBump): BallsOnPlayfield = 0: Exit Sub
  2501.  
  2502. If (LightElevator.State = BulbOn) Then
  2503.  
  2504. If (BattyMode = TRUE) Then
  2505. PlaySound "fx_Door2", 0.8
  2506. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_Laugh"
  2507. LightElevator.FlashForMs 1000, 200, BulbOff
  2508. KickerBump.DestroyBall: DeleteTrackedBall(KickerBump)
  2509. IgnoreHit = TRUE
  2510. AllPlasOff() 'PFFlashTimer.Set TRUE, 1200
  2511. Flasher1.FlashForMs 1200, 75, BulbOff
  2512. CaseScoop.CreateBall: AddTrackedBall(CaseScoop)
  2513. Kicker2Timer.Set TRUE, 1200
  2514. Exit Sub
  2515. End If
  2516.  
  2517. If (SebastianMode = TRUE) and (LightLO3.State = BulbBlink) Then
  2518. SebastianHit = SebastianHit + 1: MissionHit = MissionHit + 250
  2519. AddScore(MissionHit)
  2520. DMD.FlushQueue
  2521. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  2522. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  2523. If (QuoteBusy = FALSE) Then
  2524. QuoteBusy = TRUE
  2525. Select Case SebastianHit
  2526. Case 4: PlayMusic 2, "vo_Check2"
  2527. Case 5: PlayMusic 2, "vo_CheckMate2"
  2528. Case 6: PlayMusic 2, "vo_BroughtFriend"
  2529. End Select
  2530. Else
  2531. QuoteBusy = FALSE
  2532. PlaySound "fx_Hit8"
  2533. End If
  2534. If (SebastianHit = 6) Then
  2535. LightElevator.State = BulbOff
  2536. LightTyrell.State = BulbOff
  2537. LightLO3.State = BulbOff
  2538. ModeActive = FALSE
  2539. SebastianMode = FALSE
  2540. StopMusic 5: MusicResume.Set TRUE, 2000
  2541. OverlayMovie.UpdateInterval = 400: OverlayMovieHUD.UpdateInterval = 400
  2542. OverlayMovie.Frame 591, 592, 591: OverlayMovieHUD.Frame 591, 592, 591
  2543. MovieTimer.Set TRUE, 2000
  2544. AssWin()
  2545. Else
  2546. 'LightElevator.State = BulbOff
  2547. LightTyrell.State = BulbOn
  2548. MovieTimer.Set TRUE, 100
  2549. End If
  2550. KickerBump.DestroyBall: DeleteTrackedBall(KickerBump)
  2551. IgnoreHit = TRUE
  2552. CaseScoop.CreateBall: AddTrackedBall(CaseScoop)
  2553. Kicker2Timer.Set TRUE, 3000
  2554. Exit Sub
  2555. End If
  2556.  
  2557. If (LeonMode = TRUE) and (LeonHit = 0) Then
  2558. LightRep.State = BulbBlink
  2559. LightTyrell.State = BulbOff
  2560. LightElevator.State = BulbOff
  2561. LeonHit = LeonHit + 1: MissionHit = MissionHit + 250
  2562. AddScore(MissionHit)
  2563. EffectMusic 3, FadeOutAndStop, 0, 1000
  2564. PlayMusic 2, "vo_TakeTests", FALSE, 1, 2000
  2565. PlaySound "fx_ElevatorRide"
  2566. CokeSign.UpdateInterval = 2000
  2567. CokeSign.Frame 45, 48
  2568. MoveToKick.Set TRUE, 6200
  2569. PreKick.Set TRUE, 6400
  2570. SignOffTimer.Set TRUE, 6400
  2571. DMD.FlushQueue
  2572. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  2573. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  2574. MovieTimer.Set TRUE, 100
  2575. Exit Sub
  2576. End If
  2577.  
  2578. If (TyrellMode = TRUE) and (LightLO3.State = BulbBlink) Then
  2579. TyrellHit = TyrellHit + 1: MissionHit = MissionHit + 250
  2580. AddScore(MissionHit)
  2581. DMD.FlushQueue
  2582. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  2583. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  2584. If (QuoteBusy = FALSE) Then
  2585. QuoteBusy = TRUE
  2586. Select Case TyrellHit
  2587. Case 1: PlayMusic 2, "vo_ComeSooner": Time = 2000
  2588. Case 2: PlayMusic 2, "vo_MeetMaker": Time = 2500
  2589. Case 3:
  2590. Select Case RandomNumber(2)
  2591. Case 1: PlayMusic 2, "vo_DeathProblem": Time = 5000
  2592. Case 2: PlayMusic 2, "vo_MakerRepair": Time = 2300
  2593. End Select
  2594. Case 4: PlayMusic 2, "vo_WantMoreLife": Time = 3500
  2595. Case 5:
  2596. Select Case RandomNumber(3)
  2597. Case 1: PlayMusic 2, "vo_AlterationFatal": Time = 4500
  2598. Case 2: PlayMusic 2, "vo_CodingSeq": Time = 4000
  2599. Case 3: PlayMusic 2, "vo_AlreadyTried": Time = 6000
  2600. End Select
  2601. Case 6:
  2602. Select Case RandomNumber(3)
  2603. Case 1: PlayMusic 2, "vo_NotToLast": Time = 3500
  2604. Case 2: PlayMusic 2, "vo_Brightly": Time = 6000
  2605. Case 3: PlayMusic 2, "vo_Questionable": Time = 4200
  2606. End Select
  2607. End Select
  2608. Else
  2609. PlaySound "fx_Hit8"
  2610. End If
  2611. MovieTimer.Set TRUE, 100
  2612. If (TyrellHit = 6) Then
  2613. LightElevator.State = BulbOff
  2614. LightTyrell.State = BulbOff
  2615. LightLO3.State = BulbOff
  2616. ModeActive = FALSE: TyrellMode = FALSE
  2617. StopMusic 5: MusicResume.Set TRUE, 2500
  2618. OverlayMovie.UpdateInterval = 400: OverlayMovieHUD.UpdateInterval = 400
  2619. OverlayMovie.Frame 591, 592, 591: OverlayMovieHUD.Frame 591, 592, 591
  2620. MovieTimer.Set TRUE, 2000
  2621. AssWin()
  2622. End If
  2623. KickerBump.DestroyBall: DeleteTrackedBall(KickerBump)
  2624. IgnoreHit = TRUE
  2625. CaseScoop.CreateBall: AddTrackedBall(CaseScoop)
  2626. PreKick.Set TRUE, Time
  2627. Exit Sub
  2628. End If
  2629.  
  2630. ' move up the Tyrell tower. Get to the top floor to win an extra ball...
  2631.  
  2632. Floor = Floor + 1
  2633. LightTyrell.State = BulbOff
  2634. MovieTimer.Set TRUE, 4500
  2635. Select Case Floor
  2636. Case 1:
  2637. OverlayMovie.Frame 234: OverlayMovieHUD.Frame 234 ' ground to 1st floor...
  2638. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_FloorNumber", FALSE, 1, 500
  2639. PlaySound "fx_ElevatorRide"
  2640. CokeSign.UpdateInterval = 2000
  2641. CokeSign.Frame 45, 48
  2642. AddScore(150)
  2643. Case 2:
  2644. OverlayMovie.Frame 235: OverlayMovieHUD.Frame 235 ' 1st to 2nd floor...
  2645. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_AtThisHour", FALSE, 1, 500
  2646. PlaySound "fx_ElevatorRide"
  2647. CokeSign.UpdateInterval = 2000
  2648. CokeSign.Frame 52, 55
  2649. AddScore(250)
  2650. Case 3:
  2651. OverlayMovie.Frame 236: OverlayMovieHUD.Frame 236' 2nd to 3rd floor...
  2652. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_OnYourMind", FALSE, 1, 500
  2653. PlaySound "fx_ElevatorRide"
  2654. CokeSign.UpdateInterval = 2000
  2655. CokeSign.Frame 55, 58
  2656. AddScore(350)
  2657. Case 4:
  2658. OverlayMovie.Frame 237: OverlayMovieHUD.Frame 237 ' 3rd to 4th floor..
  2659. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_BrainStorm", FALSE, 1, 500
  2660. PlaySound "fx_ElevatorRide"
  2661. CokeSign.UpdateInterval = 2000
  2662. CokeSign.Frame 58, 61
  2663. AddScore(450)
  2664. Case 5:
  2665. OverlayMovie.Frame 238: OverlayMovieHUD.Frame 238 ' 4th to penthouse
  2666. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_ComeUp", FALSE, 1, 500
  2667. PlaySound "fx_ElevatorRide"
  2668. PlaySound "fx_Door2"
  2669. CokeSign.UpdateInterval = 2000
  2670. CokeSign.Frame 61, 64
  2671. AddScore(550)
  2672. Case 6:
  2673. OverlayMovie.Frame 238: OverlayMovieHUD.Frame 238 ' penthouse (Extra Ball)
  2674. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_Owl", FALSE, 1, 500
  2675. OverlayMovie.UpdateInterval = 66: OverlayMovieHUD.UpdateInterval = 66
  2676. OverlayMovie.Frame 828, 869: OverlayMovieHUD.Frame 828, 869
  2677. MovieTimer.Set TRUE, 2800
  2678. PlaySound "fx_Combo2"
  2679. CokeSign.Frame 64
  2680. StopMusic 4
  2681. AddScore(1500)
  2682. DMD.Text = "[y1][xc][f6][b]EXTRA BALL"
  2683. AwardEB()
  2684. Floor = 0
  2685. End Select
  2686. AllPlasOff()
  2687. LightSeqPF.Play SeqBlinking, , 2, 200
  2688. LightSeqPF.Play SeqUpOn, 30, 3
  2689. LightElevator.FlashForMs 1000, 200, BulbOff
  2690. MoveToKick.Set TRUE, 6200
  2691. PreKick.Set TRUE, 6500
  2692. SignOffTimer.Set TRUE, 7000
  2693. Else
  2694. 'If (LightSuperPops.State = BulbOn) Then
  2695. ' PlaySound "fx_26", 0.6
  2696. ' KickerBump.SolenoidPulse: PlaySound "fx_ScoopExit"
  2697. ' AddScore(5)
  2698. 'Else
  2699. AllPlasOff() 'PFFlashTimer.Set TRUE, 1200
  2700. Flasher1.FlashForMs 1200, 120, BulbOff
  2701. KickerBump.DestroyBall: DeleteTrackedBall(KickerBump)
  2702. PlaySound "fx_PreKick2"
  2703. IgnoreHit = TRUE
  2704. CaseScoop.CreateBall: AddTrackedBall(CaseScoop)
  2705. Kicker2Timer.Set TRUE, 1000
  2706. AddScore(5)
  2707. 'End If
  2708. End If
  2709. End Sub
  2710.  
  2711.  
  2712.  
  2713. Sub MoveToKick_Expired()
  2714. MoveToKick.Enabled = FALSE
  2715. IgnoreHit = TRUE
  2716. KickerBump.DestroyBall: DeleteTrackedBall(KickerBump)
  2717. CaseScoop.CreateBall: AddTrackedBall(CaseScoop)
  2718. End Sub
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724. ' ************************************
  2725. ' ** **
  2726. ' ** RIGHT SCOOP **
  2727. ' ** **
  2728. ' ************************************
  2729.  
  2730. ' - starts mystery feature when lit
  2731. ' - starts next lit mission
  2732. ' - mission shot during certain cases
  2733. ' - eject point from bumper area and plunger lane
  2734.  
  2735.  
  2736. Sub ReHitKick_Expired()
  2737. ReHitKick.Enabled = FALSE
  2738. ReHit = TRUE
  2739. CaseScoop_Hit()
  2740. End Sub
  2741.  
  2742.  
  2743. Sub CaseScoop_Hit()
  2744. If (IgnoreHit = TRUE) Then IgnoreHit = FALSE: Exit Sub
  2745.  
  2746. If (ReHit = FALSE) Then PlaySound "fx_ScoopHitR"
  2747.  
  2748. ReHit = FALSE
  2749.  
  2750. ' if mystery is lit, we do this first...
  2751.  
  2752. If (LightSnakePit.State = BulbOn) Then
  2753. LightSnakePit.State = BulbOff
  2754. LightSnakePit2.State = BulbOn
  2755.  
  2756. ' Batty will just laugh at you, no mystery when a large Dutchman is chasing your ass...
  2757. If (BattyMode = TRUE) Then
  2758. PlayMusic 2, "vo_HaHaHa"
  2759. Kicker2Timer.Set TRUE, 500
  2760. Exit Sub
  2761. End If
  2762.  
  2763. If (ModeActive = TRUE) Then
  2764. EffectMusic 5, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 6000
  2765. Else
  2766. If (BR2049 = TRUE) Then
  2767. BR2049 = FALSE
  2768. StopMusic 5: MusicResume.Set TRUE, 6000
  2769. Else
  2770. EffectMusic 1, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 6000
  2771. End If
  2772. End If
  2773.  
  2774. PlayMusic 4, "vo_SnakePit"
  2775. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_BuySnakes"
  2776.  
  2777. ' first, show Snake Pit start on LCD...
  2778. OverlayMovie.UpdateInterval = 400: OverlayMovieHUD.UpdateInterval = 400
  2779. OverlayMovie.Frame 217: OverlayMovieHUD.Frame 217
  2780.  
  2781. ' then start the mystery selection...
  2782.  
  2783. MovieTimer.Set TRUE, 8000
  2784. AddScore(50)
  2785.  
  2786. ' spin, spin, spin the wheel of justice....
  2787.  
  2788. DMD.QueueText "[y1][xc][f6][b]MYSTERY", deNone, 3500, FALSE
  2789. DMD.QueueText "[y1][xc][f6]SMALL MONEY", deNone, 200, FALSE, "fx_8"
  2790. DMD.QueueText "[y1][xc][f6]EXTRA BALL", deNone, 200, FALSE
  2791. DMD.QueueText "[y1][xc][f6]BALL SAVER", deNone, 200, FALSE
  2792. DMD.QueueText "[y1][xc][f6]SPECIAL", deNone, 200, FALSE
  2793. DMD.QueueText "[y1][xc][f6]BIG MONEY", deNone, 200, FALSE
  2794. DMD.QueueText "[y1][xc][f6]SUPER RAMPS", deNone, 200, FALSE
  2795. DMD.QueueText "[y1][xc][f6]MONEY SPINNER", deNone, 200, FALSE
  2796. DMD.QueueText "[y1][xc][f6]SUPER POPS", deNone, 200, FALSE
  2797. DMD.QueueText "[y1][xc][f6]ADV MODE", deNone, 200, FALSE
  2798. DMD.QueueText "[y1][xc][f6]EXTRA BALL", deNone, 200, FALSE
  2799. DMD.QueueText "[y1][xc][f6]BALL SAVER", deNone, 200, FALSE
  2800. DMD.QueueText "[y1][xc][f6]SPECIAL", deNone, 200, FALSE
  2801. DMD.QueueText "[y1][xc][f6]BIG MONEY", deNone, 200, FALSE
  2802. DMD.QueueText "[y1][xc][f6]SUPER RAMPS", deNone, 200, FALSE
  2803. DMD.QueueText "[y1][xc][f6]MONEY SPINNER", deNone, 200, FALSE
  2804. DMD.QueueText "[y1][xc][f6]SUPER POPS", deNone, 200, FALSE
  2805. DMD.QueueText "[y1][xc][f6]SMALL MONEY", deNone, 200, FALSE
  2806. DMD.QueueText "[y1][xc][f6]EXTRA BALL", deNone, 200, FALSE
  2807. DMD.QueueText "[y1][xc][f6]BALL SAVER", deNone, 200, FALSE
  2808. DMD.QueueText "[y1][xc][f6]SPECIAL", deNone, 200, FALSE
  2809. DMD.QueueText "[y1][xc][f6]BIG MONEY", deNone, 200, FALSE
  2810. DMD.QueueText "[y1][xc][f6]SUPER RAMPS", deNone, 200, FALSE
  2811. DMD.QueueText "[y1][xc][f6]MONEY SPINNER", deNone, 200, FALSE
  2812. DMD.QueueText "[y1][xc][f6]SUPER POPS", deNone, 200, FALSE
  2813. DMD.QueueText "[y1][xc][f6]ADV MODE", deNone, 200, FALSE
  2814. DMD.QueueText "[y1][xc][f6]EXTRA BALL", deNone, 200, FALSE
  2815. DMD.QueueText "[y1][xc][f6]BALL SAVER", deNone, 200, FALSE
  2816. DMD.QueueText "[y1][xc][f6]SPECIAL", deNone, 200, FALSE
  2817. DMD.QueueText "[y1][xc][f6]BIG MONEY", deNone, 200, FALSE
  2818. DMD.QueueText "[y1][xc][f6]SUPER RAMPS", deNone, 200, FALSE
  2819. DMD.QueueText "[y1][xc][f6]MONEY SPINNER", deNone, 200, FALSE
  2820. DMD.QueueText "[y1][xc][f6]SUPER POPS", deNone, 200, FALSE
  2821.  
  2822. If (LightMode.State = BulbBlink) Then
  2823. ReHitKick.Set TRUE, 8200
  2824. Else
  2825. PreKick.Set TRUE, 7500
  2826. End If
  2827. MysterySpin = 2: MysteryTimer.Set TRUE, 3500
  2828. Exit Sub
  2829. End If
  2830.  
  2831. If (LightMode.State = BulbBlink) Then
  2832.  
  2833. If (BattyReady = TRUE) Then
  2834. LightMode.State = BulbOff
  2835. BattyReady = FALSE
  2836. StartBatty()
  2837. Exit Sub
  2838. End If
  2839.  
  2840. If (BattyMode = TRUE) Then
  2841. BattyMode = FALSE
  2842. AllPlasOff(): LightSeqPF.Play SeqAllOff
  2843. FlasherL.FlashForMs 1000, 75, BulbOff
  2844. FlasherM.FlashForMs 1000, 75, BulbOff
  2845. Flasher1.FlashForMs 1000, 75, BulbOff
  2846. PlayMusic 3, "Music_Cue3", FALSE, 0.7
  2847. StopMusic 1: StopMusic 5: StopMusic 6
  2848. PlayMusic 1, "Music_BRTrack1", FALSE, 0.6, 37000
  2849. QuoteBusy = TRUE: PlayMusic 2, "vo_SeenThings2"
  2850. OverlayMovie.UpdateInterval = 14000: OverlayMovieHUD.UpdateInterval = 14000
  2851. OverlayMovie.Frame 881,883: OverlayMovieHUD.Frame 881,883
  2852. AddScore(10000)
  2853. DMD.FlushQueue
  2854. DMD.QueueText "[y0][xc][f3][b]GAME COMPLETED[/b][y11][f1]GOOD JOB BLADE RUNNER", deNone, 4000, FALSE
  2855. DMD.QueueText "[yc][xc][f6]$10,000", deScrollIn, 2000, FALSE
  2856. DMD.QueueText "[y0][xc][f3]NEW GAME[y11][f1]WILL BEGIN SHORTLY", deFlip, 3000, TRUE
  2857. PreKick.Set TRUE, 37000
  2858. MovieTimer.Set TRUE, 40000
  2859. ' game will now reset...
  2860. LightLeonMain.Set BulbOff, "10", 150
  2861. LightZhoraMain.Set BulbOff, "10", 150
  2862. LightPrisMain.Set BulbOff, "10", 150
  2863. LightTyrellMain.Set BulbOff, "10", 150
  2864. LightSebastianMain.Set BulbOff,"10", 150
  2865. LightChewMain.Set BulbOff, "10", 150
  2866. LightRachaelMain.Set BulbOff, "10", 150
  2867. LightGaffMain.Set BulbOff, "10", 150
  2868. LightMode.State = BulbOff
  2869. RachaelHit = 0
  2870. SebastianHit = 0
  2871. GaffHit = 0
  2872. PrisHit = 0
  2873. ZhoraHit = 0
  2874. LeonHit = 0
  2875. TyrellHit = 0
  2876. ChewHit = 0
  2877. LightRing1.State = BulbOff
  2878. LightRing2.State = BulbOff
  2879. LightRing3.State = BulbOff
  2880. LightRing4.State = BulbOff
  2881. LightRing5.State = BulbOff
  2882. LightRing6.State = BulbOff
  2883. LightRing7.State = BulbOff
  2884. LightRing8.State = BulbOff
  2885. AwardEB()
  2886. Exit Sub
  2887. End If
  2888.  
  2889. If (ComboTimer.Enabled = TRUE) Then
  2890. ComboTimer.Enabled = FALSE
  2891. LightRampL.Set BulbOff, "10", 125
  2892. LightRampR.Set BulbOff, "10", 125
  2893. LightLaneL.Set BulbOff, "10", 125
  2894. LightLaneR.Set BulbOff, "10", 125
  2895. End If
  2896.  
  2897. If (SSTimer.Enabled = TRUE) Then
  2898. SSTimer.Enabled = FALSE
  2899. If (ModeActive = FALSE) Then
  2900. LightRampL.State = BulbOff
  2901. LightRampR.State = BulbOff
  2902. End If
  2903. End If
  2904.  
  2905. If (WheelSpin.Enabled = TRUE) Then
  2906. ReHitKick.Set TRUE, 2000
  2907. 'WheelSpin.Enabled = FALSE
  2908. 'StopMusic 4
  2909. ' return light to their previous state...
  2910. 'LightLeonMain.State = TempM1
  2911. 'LightZhoraMain.State = TempM2
  2912. 'LightPrisMain.State = TempM3
  2913. 'LightTyrellMain.State = TempM4
  2914. 'LightSebastianMain.State = TempM5
  2915. 'LightChewMain.State = TempM6
  2916. 'LightRachaelMain.State = TempM7
  2917. 'LightGaffMain.State = TempM8
  2918. Exit Sub
  2919. End If
  2920.  
  2921. LightMode.State = BulbOff
  2922.  
  2923. 'If (PrisMode = TRUE) Then
  2924. ' PlayMusic 2, "vo_Hello"
  2925. ' Kicker2Timer.Set TRUE, 4000
  2926. 'Exit Sub
  2927. 'End If
  2928.  
  2929. MissionHit = AdjMissionHit
  2930. ModeActive = TRUE
  2931. MusicResume.Enabled = FALSE
  2932. EffectMusic 1, FadeOutAndPause, 0, 0
  2933. StopMusic 4: StopMusic 6
  2934. TakeOffTimer.Enabled = FALSE
  2935. AddScore(750)
  2936.  
  2937. DMD.Text = "[yc][xc][f6]NEW ASSIGNMENT"
  2938.  
  2939. ' Leon mode. Give him the VK test. Shoot left lane and drop the ball in the flashing Tyrell lane.
  2940.  
  2941. If (LightLeonMain.State = BulbBlink) Then
  2942. LightLeonMain.State = BulbOn
  2943. LeonMode = TRUE
  2944. LightRep.State = BulbOff
  2945. LightElevator.State = BulbOff
  2946. 'LeonHit = 0
  2947. 'LightCentre.State = BulbOff
  2948. 'LightCentrePurge.State = BulbOff
  2949. 'LightBlade.State = BulbOff
  2950. 'LightRunner.State = BulbOff
  2951. 'LightPurge1.State = BulbOff
  2952. 'LightPurge2.State = BulbOff
  2953. 'LightSuperRampL.State = BulbOff
  2954. 'LightSuperRampR.State = BulbOff
  2955. 'SuperRampsTimer.Enabled = FALSE
  2956.  
  2957. LightRO1.State = BulbOff
  2958. LightRO2.State = BulbOff
  2959.  
  2960. If (QuoteBusy = FALSE) Then
  2961. QuoteBusy = TRUE
  2962. PlayMusic 2, "vo_UsedToBe"
  2963. PreKick.Set TRUE, 5000
  2964. Else
  2965. PlaySound "fx_25"
  2966. QuoteBusy = FALSE
  2967. PreKick.Set TRUE, 1500
  2968. End If
  2969. PlayMusic 5, "Music_Mode", FALSE, 0.4
  2970. MovieTimer.Set TRUE, 100
  2971.  
  2972. Select Case LeonHit
  2973. Case 0:
  2974. LightTyrell.State = BulbOn ' direct ball into rollover lanes...
  2975. LightLO3.State = BulbBlink
  2976. Select Case RandomNumber(2)
  2977. Case 1: LightRO1.State = BulbBlink
  2978. Case 2: LightRO2.State = BulbBlink
  2979. End Select
  2980. Case 1:
  2981. LightRep.State = BulbBlink
  2982. Case 2,3:
  2983. LightCentrePurge.State = BulbBlink
  2984. Case 4:
  2985. LightRampL.State = BulbBlink
  2986. Case 5,6:
  2987. LightCentrePurge.State = BulbBlink
  2988. KillLeon = TRUE
  2989. End Select
  2990. Exit Sub
  2991. End If
  2992.  
  2993. If (LightZhoraMain.State = BulbBlink) Then
  2994. LightZhoraMain.State = BulbOn
  2995. ZhoraMode = TRUE
  2996.  
  2997. If (QuoteBusy = FALSE) Then
  2998. QuoteBusy = TRUE: PlayMusic 2, "vo_Exploited"
  2999. PreKick.Set TRUE, 3000
  3000. Else
  3001. PlaySound "fx_25"
  3002. QuoteBusy = FALSE
  3003. PreKick.Set TRUE, 1500
  3004. End If
  3005. If (TrackPlayed = 2) Then
  3006. PlayMusic 5, "Music_BRTrack5", TRUE, 0.6
  3007. Else
  3008. PlayMusic 5, "Music_BRTrack4", TRUE, 0.6
  3009. End If
  3010. OverlayMovie.UpdateInterval = 1000
  3011. OverlayMovie.Frame 225: OverlayMovieHUD.Frame 225
  3012.  
  3013. ' the objective here is to use the photo machine to analyse a photo found
  3014. ' in Leon's appartment. Then find and kill Zhora.
  3015.  
  3016. Select Case ZhoraHit
  3017. Case 0,1,2,3,4,5: ' we need the range lane, drop targets and stop range feature if running...
  3018. LightDT.State = BulbBlink
  3019. If (ShootingMode=TRUE) or (VKMode=TRUE) or (PhotoMode=TRUE) Then
  3020. RangeTimer.Enabled = FALSE
  3021. DT_1.PopDown
  3022. DT_2.PopDown
  3023. DT_3.PopDown
  3024. DT_4.PopDown
  3025. End If
  3026. If (ShootingMode = TRUE) Then ShootingMode = FALSE: LightRange.State = BulbOff
  3027. If (VKMode = TRUE) Then VKMode = FALSE: LightVK.State = BulbOff
  3028. If (PhotoMode = TRUE) Then PhotoMode = FALSE: LightPhoto.State = BulbOff
  3029. Case 6:
  3030. KillZhora = TRUE
  3031. LightCentrePurge.State = BulbBlink
  3032. End Select
  3033. Exit Sub
  3034. End If
  3035.  
  3036. If (LightPrisMain.State = BulbBlink) Then
  3037. LightPrisMain.State = BulbOn
  3038. PrisMode = TRUE
  3039. If (QuoteBusy = FALSE) Then
  3040. QuoteBusy = TRUE: PlayMusic 2, "vo_YourName"
  3041. PreKick.Set TRUE, 3000
  3042. Else
  3043. PlaySound "fx_25"
  3044. QuoteBusy = FALSE
  3045. PreKick.Set TRUE, 1500
  3046. End If
  3047.  
  3048. Select Case PrisHit
  3049. Case 0,1,2,3,4: LightRep.State = BulbBlink
  3050. Case 5: LightRampR.State = BulbBlink
  3051. Case 6,7: LightCentrePurge.State = BulbBlink
  3052. End Select
  3053. PlayMusic 5, "Music_Mode", FALSE, 0.4
  3054. OverlayMovie.UpdateInterval = 1000
  3055. OverlayMovie.Frame 224: OverlayMovieHUD.Frame 224
  3056. Exit Sub
  3057. End If
  3058.  
  3059.  
  3060. ' all shots go to the elevator...
  3061.  
  3062. If (LightTyrellMain.State = BulbBlink) Then
  3063. LightTyrellMain.State = BulbOn
  3064. TyrellMode = TRUE
  3065. If (QuoteBusy = FALSE) Then
  3066. QuoteBusy = TRUE: PlayMusic 2, "vo_Moto"
  3067. PreKick.Set TRUE, 3500
  3068. Else
  3069. PlaySound "fx_25"
  3070. QuoteBusy = FALSE
  3071. PreKick.Set TRUE, 1500
  3072. End If
  3073.  
  3074. If (TrackPlayed = 6) Then
  3075. PlayMusic 5, "Music_BRTrack1", TRUE, 0.6
  3076. Else
  3077. PlayMusic 5, "Music_BRTrack8", TRUE, 0.6
  3078. End If
  3079.  
  3080. OverlayMovie.Frame 222: OverlayMovieHUD.Frame 222
  3081.  
  3082. ' get the ball into the elevator and ride up to Tyrell's penthouse...
  3083.  
  3084. LightTyrell.State = BulbOn
  3085. LightLO3.State = BulbBlink
  3086. LightElevator.State = BulbOn
  3087. Exit Sub
  3088. End If
  3089.  
  3090.  
  3091. If (LightSebastianMain.State = BulbBlink) Then
  3092. LightSebastianMain.State = BulbOn
  3093. SebastianMode = TRUE
  3094.  
  3095. If (QuoteBusy = FALSE) Then
  3096. QuoteBusy = TRUE
  3097. PlayMusic 2, "vo_StaysPut"
  3098. PreKick.Set TRUE, 2500
  3099. Else
  3100. PlaySound "fx_25"
  3101. QuoteBusy = FALSE
  3102. PreKick.Set TRUE, 1500
  3103. End If
  3104.  
  3105. PlayMusic 5, "Music_BRTrack9", TRUE, 0.6
  3106. OverlayMovie.Frame 221: OverlayMovieHUD.Frame 221
  3107.  
  3108. Select Case SebastianHit
  3109. Case 0,1,2:
  3110. LightLaneL.State = BulbBlink
  3111. LightLaneR.State = BulbBlink
  3112. MagnetActive = FALSE
  3113. LightCentre.State = BulbOff
  3114. LightBlade.State = BulbOff
  3115. LightRunner.State = BulbOff
  3116. LightPurge1.State = BulbOff
  3117. LightPurge2.State = BulbOff
  3118. LightCentrePurge.State = BulbOff
  3119. Case 3,4,5:
  3120. LightLaneL.State = BulbOff
  3121. LightLaneR.State = BulbOff
  3122. LightTyrell.State = BulbOn
  3123. LightElevator.State = BulbOn
  3124. LightLO3.State = BulbBlink
  3125. End Select
  3126. Exit Sub
  3127. End If
  3128.  
  3129. If (LightChewMain.State = BulbBlink) Then
  3130. LightChewMain.State = BulbOn
  3131. ChewMode = TRUE
  3132. If (QuoteBusy = FALSE) Then
  3133. QuoteBusy = TRUE: PlayMusic 2, "vo_GoAway"
  3134. PreKick.Set TRUE, 3000
  3135. Else
  3136. PlaySound "fx_25"
  3137. QuoteBusy = FALSE
  3138. PreKick.Set TRUE, 1500
  3139. End If
  3140. PlayMusic 5, "Music_MixTrack", TRUE, 0.6
  3141. OverlayMovie.Frame 223: OverlayMovieHUD.Frame 223
  3142. LightRampL.State = BulbBlink
  3143. Exit Sub
  3144. End If
  3145.  
  3146. If (LightRachaelMain.State = BulbBlink) Then
  3147. LightRachaelMain.State = BulbOn
  3148. RachaelMode = TRUE
  3149. If (QuoteBusy = FALSE) Then
  3150. QuoteBusy = TRUE: PlayMusic 2, "vo_MachineOnIt"
  3151. PreKick.Set TRUE, 4200
  3152. Else
  3153. PlaySound "fx_10"
  3154. QuoteBusy = FALSE
  3155. PreKick.Set TRUE, 1500
  3156. End If
  3157. OverlayMovie.Frame 212: OverlayMovieHUD.Frame 212
  3158. PlayMusic 5, "Music_BRTrack3", TRUE, 0.6
  3159. LightDT.State = BulbBlink
  3160. RangeTimer.Enabled = FALSE
  3161. If (ShootingMode = TRUE) Then ShootingMode = FALSE: LightRange.State = BulbOff
  3162. If (VKMode = TRUE) Then VKMode = FALSE: LightVK.State = BulbOff
  3163. If (PhotoMode = TRUE) Then PhotoMode = FALSE: LightPhoto.State = BulbOff
  3164. DT_1.PopDown
  3165. DT_2.PopDown
  3166. DT_3.PopDown
  3167. DT_4.PopDown
  3168. Exit Sub
  3169. End If
  3170.  
  3171. ' all shots are the same...
  3172.  
  3173. If (LightGaffMain.State = BulbBlink) Then
  3174. LightGaffMain.State = BulbOn
  3175. GaffMode = TRUE
  3176. If (QuoteBusy = FALSE) Then
  3177. QuoteBusy = TRUE: PlayMusic 2, "vo_Gaff"
  3178. PreKick.Set TRUE, 2000
  3179. Else
  3180. PlaySound "fx_25"
  3181. QuoteBusy = FALSE
  3182. PreKick.Set TRUE, 1500
  3183. End If
  3184.  
  3185. PlayMusic 5, "Music_BRTrack9", TRUE, 0.6
  3186. OverlayMovie.Frame 215: OverlayMovieHUD.Frame 215
  3187.  
  3188. LightLaneL.State = BulbBlink
  3189. LightLaneR.State = BulbBlink
  3190.  
  3191. MagnetActive = FALSE
  3192. 'LightCentre.State = BulbOff
  3193. 'LightBlade.State = BulbOff
  3194. 'LightRunner.State = BulbOff
  3195. LightPurge1.State = BulbOff
  3196. LightPurge2.State = BulbOff
  3197. LightCentrePurge.State = BulbOff
  3198. Exit Sub
  3199. End If
  3200.  
  3201. PreKick.Set TRUE, 500
  3202. Exit Sub
  3203. End If
  3204.  
  3205. FlasherM.State = BulbOff
  3206. AllPlasOff()
  3207. Flasher1.FlashForMs 300, 100, BulbOff
  3208. PlaySound "fx_Buzzer", 0.8
  3209. Kicker2Timer.Set TRUE, 500
  3210. set LastSwitchHit = CaseScoop
  3211. End Sub
  3212.  
  3213.  
  3214.  
  3215. Sub PreKick_Expired()
  3216. PreKick.Enabled = FALSE
  3217. If (Purge = TRUE) Then
  3218. LightRing1.State = BulbOff
  3219. LightRing2.State = BulbOff
  3220. LightRing3.State = BulbOff
  3221. LightRing4.State = BulbOff
  3222. LightRing5.State = BulbOff
  3223. LightRing6.State = BulbOff
  3224. LightRing7.State = BulbOff
  3225. LightRing8.State = BulbOff
  3226. FlasherPolice1.State = BulbOff
  3227. FlasherPolice2.State = BulbOff
  3228. SuperRamps = TRUE
  3229. CokeSign.Frame 28
  3230. KickerLane.DestroyBall: DeleteTrackedBall(KickerLane)
  3231. CaseScoop.CreateBall: AddTrackedBall(CaseScoop)
  3232. 'PlaySound "fx_SpinnerTakeOff"
  3233. 'MovieTimer.Set TRUE, 100
  3234. 'AllPlasOff()
  3235. Flasher1.FlashForMs 550, 75, BulbOff
  3236. PlaySound "fx_PreKick"
  3237. Kicker2Timer.Set TRUE, 550
  3238. DMD.QueueText "[y0][xc][f3]SUPER RAMPS[y11][f1]ACTIVATED", deScrollIn, 1800, TRUE
  3239. Else
  3240. PlaySound "fx_PreKick"
  3241. AllPlasOff() 'PFFlashTimer.Set TRUE, 550
  3242. Flasher1.FlashForMs 550, 50, BulbOff
  3243. Kicker2Timer.Set TRUE, 550
  3244. End If
  3245. End Sub
  3246.  
  3247.  
  3248.  
  3249. Sub Kicker2Timer_Expired()
  3250. Kicker2Timer.Enabled = FALSE
  3251. CaseScoop.SolenoidPulse
  3252. PlaySound "fx_ScoopExit"
  3253. If (Purge = TRUE) Then
  3254. Purge = FALSE
  3255. PlaySound "fx_Whoosh"
  3256. Else
  3257. PlaySound "fx_GunShot3"
  3258. FlasherL.FlashForMs 200, 200, BulbOff
  3259. Flasher1.FlashForMs 200, 200, BulbOff
  3260. FlasherM.FlashForMs 200, 200, BulbOff
  3261. AllPlasOff(): PFFlashTimer.Set TRUE, 200
  3262. LightSeqPF.Play SeqBlinking, , 1, 200
  3263. End If
  3264. End Sub
  3265.  
  3266.  
  3267.  
  3268.  
  3269.  
  3270.  
  3271. Sub MysteryTimer_Expired()
  3272. MysteryTimer.Set TRUE, 2300
  3273. DMDBusy = TRUE: DMDTimer.Set TRUE, 2300
  3274. MysterySpin = MysterySpin - 1
  3275. If (MysterySpin = 0) Then
  3276. MysteryTimer.Enabled = FALSE
  3277. OverlayMovie.UpdateInterval = 400: OverlayMovieHUD.UpdateInterval = 400
  3278. Select Case RandomNumber(11)
  3279. Case 1,10:
  3280. OverlayMovie.Frame 219, 220, 219: OverlayMovieHUD.Frame 219, 220, 219 ' ball saver...
  3281. DMD.Text = "[yc][xc][f6][bf]BALL SAVER"
  3282. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Radical"
  3283. ShootAgainLight.State = BulbBlink
  3284. bBallSaverActive = TRUE
  3285. BallSaverTimer.Set TRUE, BSTime
  3286. Case 2:
  3287. DMD.Text = "[yc][xc][f6][bf]ADV MODE"
  3288. Ass = Ass + 1
  3289. OverlayMovie.Frame 226, 227, 226: OverlayMovieHUD.Frame 226, 227, 226 ' adv mode...
  3290. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_WhatsThis"
  3291. If (LightTyrellMain.State = BulbOff) Then LightTyrellMain.State = BulbOn: Exit Sub
  3292. If (LightSebastianMain.State = BulbOff) Then LightSebastianMain.State = BulbOn: Exit Sub
  3293. If (LightChewMain.State = BulbOff) Then LightChewMain.State = BulbOn: Exit Sub
  3294. If (LightRachaelMain.State = BulbOff) Then LightRachaelMain.State = BulbOn: Exit Sub
  3295. If (LightGaffMain.State = BulbOff) Then LightGaffMain.State = BulbOn: Exit Sub
  3296. Case 3,11:
  3297. OverlayMovie.Frame 231, 232, 231: OverlayMovieHUD.Frame 231, 232, 231 ' cash...
  3298. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Academic"
  3299. DMD.FlushQueue
  3300. DMD.QueueText "[yc][xc][f6][bf]SMALL CASH", deNone, 1000, FALSE
  3301. Select Case RandomNumber(5)
  3302. Case 1: DMD.QueueText "[yc][xc][f6]$ 100", deFlip, 1000, TRUE: AddScore(100)
  3303. Case 2: DMD.QueueText "[yc][xc][f6]$ 200", deFlip, 1000, TRUE: AddScore(200)
  3304. Case 3: DMD.QueueText "[yc][xc][f6]$ 300", deFlip, 1000, TRUE: AddScore(300)
  3305. Case 4: DMD.QueueText "[yc][xc][f6]$ 400", deFlip, 1000, TRUE: AddScore(400)
  3306. Case 5: DMD.QueueText "[yc][xc][f6]$ 500", deFlip, 1000, TRUE: AddScore(500)
  3307. End Select
  3308. Case 4:
  3309. OverlayMovie.Frame 239, 240, 239: OverlayMovieHUD.Frame 239, 240, 239 ' super pops...
  3310. DMD.Text = "[yc][xc][f6][bf]SUPER POPS"
  3311. SuperPops()
  3312. Case 5:
  3313. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_MoreLife"
  3314. OverlayMovie.Frame 241, 242, 241: OverlayMovieHUD.Frame 241, 242, 241 ' extra ball...
  3315. DMD.Text = "[yc][xc][f6][bf]EXTRA BALL"
  3316. ExtraBallsAwards(CurrentPlayer) = ExtraBallsAwards(CurrentPlayer) + 1
  3317. ShootAgainLight.State = BulbOn
  3318. Case 6:
  3319. If (MoveSpinner.Enabled = FALSE) Then
  3320. DMD.FlushQueue
  3321. MoveSpinner_Expired()
  3322. LightPurge1.State = BulbOff
  3323. LightPurge2.State = BulbOff
  3324. LightSuperRampL.FlashForMs 2000, 125, BulbOn
  3325. LightSuperRampR.FlashForMs 2000, 125, BulbOn
  3326. SuperRamps = TRUE
  3327. Magnet.Collidable = FALSE
  3328. LaneWall.Collidable = TRUE
  3329. Else
  3330. OverlayMovie.Frame 231, 232, 231: OverlayMovieHUD.Frame 231, 232, 231 ' cash...
  3331. DMD.FlushQueue
  3332. DMD.QueueText "[yc][xc][f6][bf]SMALL CASH", deNone, 800, FALSE
  3333. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_KnewIt"
  3334. Select Case RandomNumber(5)
  3335. Case 1: DMD.QueueText "[yc][xc][f6]$ 150", deFlip, 1000, TRUE: AddScore(150)
  3336. Case 2: DMD.QueueText "[yc][xc][f6]$ 160", deFlip, 1000, TRUE: AddScore(160)
  3337. Case 3: DMD.QueueText "[yc][xc][f6]$ 170", deFlip, 1000, TRUE: AddScore(170)
  3338. Case 4: DMD.QueueText "[yc][xc][f6]$ 180", deFlip, 1000, TRUE: AddScore(180)
  3339. Case 5: DMD.QueueText "[yc][xc][f6]$ 190", deFlip, 1000, TRUE: AddScore(190)
  3340. End Select
  3341. End If
  3342. Case 7,9:
  3343. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_NoSuchLuck", FALSE, 1, 2000
  3344. DMD.Text = "[yc][xc][f6][b]MONEY SPIN"
  3345. OverlayMovie.Frame 595, 596, 595: OverlayMovieHUD.Frame 595, 596, 595 ' money spin....
  3346. Select Case RandomNumber(7)
  3347. Case 1: Spin = 12
  3348. Case 2: Spin = 13
  3349. Case 3: Spin = 15
  3350. Case 4: Spin = 16
  3351. Case 5: Spin = 17
  3352. Case 6: Spin = 18
  3353. Case 7: Spin = 19
  3354. End Select
  3355. RingSpin.Set TRUE, 100
  3356. PlayMusic 2, "fx_24", FALSE, 0.6
  3357. LightRing8.Set BulbBlink,"10000000", 100
  3358. LightRing7.Set BulbBlink,"01000000", 100
  3359. LightRing6.Set BulbBlink,"00100000", 100
  3360. LightRing5.Set BulbBlink,"00010000", 100
  3361. LightRing4.Set BulbBlink,"00001000", 100
  3362. LightRing3.Set BulbBlink,"00000100", 100
  3363. LightRing2.Set BulbBlink,"00000010", 100
  3364. LightRing1.Set BulbBlink,"00000001", 100
  3365. Case 8:
  3366. OverlayMovie.Frame 875: OverlayMovieHUD.Frame 875 ' more time...
  3367. DMD.Text = "[yc][xc][f6][bf]+ S/RAMP TIME"
  3368. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Radical"
  3369. SRTime = SRTime + 3000
  3370. End Select
  3371. End If
  3372. End Sub
  3373.  
  3374.  
  3375.  
  3376.  
  3377. Sub AssWin()
  3378. Ass = Ass + 1
  3379. PlayMusic 3, "Music_Cue3", FALSE, 0.7
  3380. 'PlayMusic 3, "Music_Cue2", FALSE, 0.8
  3381. AddScore(2000)
  3382. DMD.QueueText "[y0][xc][f3][b]ASSIGNMENT[y11][f1]COMPLETED", deFlip, 1800, TRUE
  3383. LightSeqGI.StopPlay: LightSeqPF.StopPlay
  3384. PFFlashTimer.Enabled = FALSE
  3385. AllPlasOff(): PFFlashTimer.Set TRUE, 1000
  3386. FlasherL.FlashForMs 1000, 75, BulbOff
  3387. Flasher1.FlashForMs 1000, 75, BulbOff
  3388. CheckAss()
  3389. End Sub
  3390.  
  3391.  
  3392.  
  3393. Sub CheckAss()
  3394. If (Ass = 3) Then
  3395. ' award free spin for 3 assignments completed...
  3396. Select Case RandomNumber(7)
  3397. Case 1: Spin = 12
  3398. Case 2: Spin = 13
  3399. Case 3: Spin = 15
  3400. Case 4: Spin = 16
  3401. Case 5: Spin = 17
  3402. Case 6: Spin = 18
  3403. Case 7: Spin = 19
  3404. End Select
  3405. RingSpin.Set TRUE, 100
  3406. PlayMusic 4, "fx_24", TRUE, 0.6
  3407. LightRing8.Set BulbBlink,"10000000", 100
  3408. LightRing7.Set BulbBlink,"01000000", 100
  3409. LightRing6.Set BulbBlink,"00100000", 100
  3410. LightRing5.Set BulbBlink,"00010000", 100
  3411. LightRing4.Set BulbBlink,"00001000", 100
  3412. LightRing3.Set BulbBlink,"00000100", 100
  3413. LightRing2.Set BulbBlink,"00000010", 100
  3414. LightRing1.Set BulbBlink,"00000001", 100
  3415. Exit Sub
  3416. End If
  3417. If (Ass = 6) Then
  3418. ' batty ready after any 6 assignments are completed...
  3419. BattyReady = TRUE
  3420. LightMode.State = BulbBlink
  3421. End If
  3422. End Sub
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428. ' ***********************************
  3429. ' ** **
  3430. ' ** KICKER RAMP **
  3431. ' ** **
  3432. ' ***********************************
  3433.  
  3434.  
  3435.  
  3436. Sub Kicker3_Hit()
  3437. RampDivertTimer.Enabled = FALSE
  3438. PlaySound "fx_ScoopHitR"
  3439. ReHit = TRUE
  3440. Kicker3.DestroyBall: DeleteTrackedBall(Kicker3)
  3441.  
  3442. If (LeonMode = TRUE) and (KillLeon = TRUE) Then
  3443. ReHit = FALSE: IgnoreHit = TRUE
  3444. CaseScoop.CreateBall: AddTrackedBall(CaseScoop)
  3445. Kicker2Timer.Set TRUE, 5800
  3446. OverlayMovie.Frame 583: OverlayMovieHUD.Frame 583
  3447. Exit Sub
  3448. End If
  3449.  
  3450. If (fpTilted = TRUE) Then BallsOnPlayfield = 0: ReHit = FALSE: Exit Sub
  3451.  
  3452. If (LightSnakePit.State=BulbOff) and (LightMode.State=BulbOff) Then
  3453. AllPlasOff()
  3454. Flasher1.FlashForMs 1000, 125, BulbOff
  3455. PlaySound "fx_PreKick2"
  3456. ReHit = FALSE: IgnoreHit = TRUE
  3457. CaseScoop.CreateBall: AddTrackedBall(CaseScoop)
  3458. Kicker2Timer.Set TRUE, 1000
  3459. Bulb24.State = BulbOn
  3460. Else
  3461. CaseScoop.CreateBall: AddTrackedBall(CaseScoop)
  3462. End If
  3463. End Sub
  3464.  
  3465.  
  3466.  
  3467.  
  3468. Sub TopGate_Hit()
  3469. PlaySound "fx_GateHitL"
  3470. End Sub
  3471.  
  3472.  
  3473.  
  3474.  
  3475. ' *******************************
  3476. ' ** **
  3477. ' ** BUMPERS **
  3478. ' ** **
  3479. ' *******************************
  3480.  
  3481. ' Bumpers can be powered up to Super Pops when hit 30 times, increasing their value by x 10.
  3482.  
  3483. ' Hitting the Super Pops 25 times activates the Playfield Scoring Multiplier (PSX) for 40 seconds.
  3484. ' The PSX value matches the current Bonus X value.
  3485.  
  3486.  
  3487. Sub Bumper1_Hit()
  3488.  
  3489. If (fpTilted = TRUE) Then Exit Sub
  3490.  
  3491. If (SuperPopsActive = FALSE) Then
  3492. BulbBump1.State = BulbOn: FlashB1.State = BulbOn
  3493. BumpText1On.Render = TRUE
  3494. BumpText1Off.Render = FALSE
  3495. BumpFlash.Set TRUE, 150
  3496. End If
  3497.  
  3498. If (fpGameInPlay = FALSE) Then Exit Sub
  3499. FF_Sound DV_BL,-1, "fx_Bumper"
  3500. FF_DOF "E",120,-1 'DOFLinx DOF MX - Bumper 1
  3501. If (SuperPopsActive = TRUE) Then
  3502. PlaySound "fx_BumpHit", 0.5
  3503. AddScore(50)
  3504. BumpHit = BumpHit + 1
  3505. 'If (DMDBusy = FALSE) Then DMD.Text = "[y0][xc][f3]SUPER BUMPS = " & BumpHit & "[y11][f1]$ " & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  3506. If (DMDBusy = FALSE) Then DMD.Text = "[y0][xc][f3]SUPER BUMPS = " & BumpHit & "[y11][f1]PLAYFIELD X AT 25"
  3507. If (BumpHit = 25) Then
  3508. BumpHit = 0
  3509. PFScore = PFScore + 1
  3510. PFXTimer.Set TRUE, 40000
  3511. DMDBusy = TRUE: DMDTimer.Set TRUE, 1500
  3512. DMD.Text = "[yc][xc][f5][bf]SCORING X " & PFScore
  3513. PlaySound "fx_20"
  3514. Exit Sub
  3515. End If
  3516. Else
  3517. BumpHit = BumpHit + 1
  3518. If (BumpHit = 30) Then
  3519. SuperPops()
  3520. Exit Sub
  3521. End If
  3522. AddScore(5)
  3523. 'DMD.Text = "[y0][xc][f3]BUMP HIT = " & BumpHit & "[y11][f1]$ " & FormatNumber(nvScore(CurrentPlayer), 0, -1, 0, -1)
  3524. DMD.Text = "[y0][xc][f3]BUMP HIT = " & BumpHit & "[y11][f1]SUPER POPS AT 30"
  3525. PlaySound "fx_Hit3", 0.4
  3526. BulbBump1.State = BulbOn: FlashB1.State = BulbOn
  3527. BumpText1On.Render = TRUE
  3528. BumpText1Off.Render = FALSE
  3529. BumpFlash.Set TRUE, 150
  3530. End If
  3531. End Sub
  3532.  
  3533.  
  3534. Sub BumpFlash_Expired()
  3535. BumpFlash.Enabled = FALSE
  3536. BulbBump1.State = BulbOff: FlashB1.State = BulbOff
  3537. BumpText1On.Render = FALSE
  3538. BumpText1Off.Render = TRUE
  3539. End Sub
  3540.  
  3541.  
  3542.  
  3543. Sub BumpT_Expired()
  3544. BumpT.Enabled = FALSE
  3545. BRT.SolenoidPulse 10
  3546. End Sub
  3547.  
  3548.  
  3549.  
  3550. Sub Bumper2_Hit()
  3551.  
  3552. If (fpTilted = TRUE) Then Exit Sub
  3553.  
  3554. If (SuperPopsActive = FALSE) Then
  3555. BulbBump2.State = BulbOn: FlashB2.State = BulbOn
  3556. BumpText2On.Render = TRUE
  3557. BumpText2Off.Render = FALSE
  3558. BumpFlash2.Set TRUE, 150
  3559. End If
  3560.  
  3561. If (fpGameInPlay = FALSE) Then Exit Sub
  3562.  
  3563. 'PlaySound "fx_Bumper"
  3564. FF_Sound DV_BR,-1, "fx_Bumper"
  3565. FF_DOF "E",121,-1 'DOFLinx DOF MX - Bumper 2
  3566. PBT1.SolenoidPulse
  3567. PBT2.SolenoidPulse
  3568. PBT3.SolenoidPulse
  3569. PBT4.SolenoidPulse
  3570. BRT.PopDown: BumpT.Set TRUE, 75
  3571.  
  3572. If (SuperPopsActive = TRUE) Then
  3573. PlaySound "fx_BumpHit", 0.5
  3574. AddScore(50)
  3575. BumpHit = BumpHit + 1
  3576. If (DMDBusy = FALSE) Then DMD.Text = "[y0][xc][f3]SUPER BUMPS = " & BumpHit & "[y11][f1]PLAYFIELD X AT 25"
  3577. If (BumpHit = 25) Then
  3578. BumpHit = 0
  3579. PFScore = PFScore + 1
  3580. PFXTimer.Set TRUE, 40000
  3581. DMDBusy = TRUE: DMDTimer.Set TRUE, 1500
  3582. DMD.Text = "[yc][xc][f5][bf]SCORING X " & PFScore
  3583. PlaySound "fx_20"
  3584. Exit Sub
  3585. End If
  3586. Else
  3587. BumpHit = BumpHit + 1
  3588. If (BumpHit = 30) Then
  3589. SuperPops()
  3590. Exit Sub
  3591. End If
  3592. AddScore(5)
  3593. DMD.Text = "[y0][xc][f3]BUMP HIT = " & BumpHit & "[y11][f1]SUPER POPS AT 30"
  3594. PlaySound "fx_Hit3", 0.4
  3595. BulbBump2.State = BulbOn: FlashB2.State = BulbOn
  3596. BumpText2On.Render = TRUE
  3597. BumpText2Off.Render = FALSE
  3598. BumpFlash2.Set TRUE, 150
  3599. End If
  3600. End Sub
  3601.  
  3602.  
  3603. Sub BumpFlash2_Expired()
  3604. BumpFlash2.Enabled = FALSE
  3605. BulbBump2.State = BulbOff: FlashB2.State = BulbOff
  3606. BumpText2On.Render = FALSE
  3607. BumpText2Off.Render = TRUE
  3608. End Sub
  3609.  
  3610.  
  3611.  
  3612. Sub BumpR_Expired()
  3613. BumpR.Enabled = FALSE
  3614. BRR.SolenoidPulse 10
  3615. End Sub
  3616.  
  3617.  
  3618.  
  3619. Sub Bumper3_Hit()
  3620.  
  3621. If (fpTilted = TRUE) Then Exit Sub
  3622.  
  3623. If (SuperPopsActive = FALSE) Then
  3624. BulbBump3.State = BulbOn: FlashB3.State = BulbOn
  3625. BumpText3On.Render = TRUE
  3626. BumpText3Off.Render = FALSE
  3627. BumpFlash3.Set TRUE, 150
  3628. End If
  3629.  
  3630. If (fpGameInPlay = FALSE) Then Exit Sub
  3631.  
  3632. FF_Sound DV_BC,-1, "fx_Bumper"
  3633. FF_DOF "E",122,-1 'DOFLinx DOF MX - Bumper 3
  3634. 'PlaySound "fx_Bumper"
  3635. PBR1.SolenoidPulse
  3636. PBR2.SolenoidPulse
  3637. PBR3.SolenoidPulse
  3638. PBR4.SolenoidPulse
  3639. BRR.PopDown: BumpR.Set TRUE, 75
  3640.  
  3641. If (SuperPopsActive = TRUE) Then
  3642. PlaySound "fx_BumpHit", 0.5
  3643. AddScore(50)
  3644. BumpHit = BumpHit + 1
  3645. If (DMDBusy = FALSE) Then DMD.Text = "[y0][xc][f3]SUPER BUMPS = " & BumpHit & "[y11][f1]PLAYFIELD X AT 25"
  3646. If (BumpHit = 25) Then
  3647. BumpHit = 0
  3648. PFScore = PFScore + 1
  3649. PFXTimer.Set TRUE, 40000
  3650. DMDBusy = TRUE: DMDTimer.Set TRUE, 1500
  3651. DMD.Text = "[yc][xc][f5][bf]SCORING X " & PFScore
  3652. PlaySound "fx_20"
  3653. Exit Sub
  3654. End If
  3655. Else
  3656. BumpHit = BumpHit + 1
  3657. If (BumpHit = 30) Then
  3658. SuperPops()
  3659. Exit Sub
  3660. End If
  3661. AddScore(5)
  3662. DMD.Text = "[y0][xc][f3]BUMP HIT = " & BumpHit & "[y11][f1]SUPER POPS AT 30"
  3663. PlaySound "fx_Hit3", 0.4
  3664. BulbBump3.State = BulbOn: FlashB3.State = BulbOn
  3665. BumpText3On.Render = TRUE
  3666. BumpText3Off.Render = FALSE
  3667. BumpFlash3.Set TRUE, 150
  3668. End If
  3669. End Sub
  3670.  
  3671.  
  3672.  
  3673.  
  3674. Sub BumpFlash3_Expired()
  3675. BumpFlash3.Enabled = FALSE
  3676. BulbBump3.State = BulbOff: FlashB3.State = BulbOff
  3677. BumpText3On.Render = FALSE
  3678. BumpText3Off.Render = TRUE
  3679. End Sub
  3680.  
  3681.  
  3682.  
  3683. Sub PFXTimer_Expired()
  3684. PFXTimer.Enabled = FALSE
  3685. PFScore = 1
  3686. End Sub
  3687.  
  3688.  
  3689. Dim SuperPopsActive
  3690.  
  3691.  
  3692. Sub SuperPops()
  3693. SuperPopsActive = TRUE
  3694. PlaySound "fx_AirRaid2"
  3695. LightSuperPops.State = BulbOn
  3696. BumpHit = 0
  3697. ' turn on all bumpers...
  3698. BumpFlash.Enabled = FALSE
  3699. BumpFlash2.Enabled = FALSE
  3700. BumpFlash3.Enabled = FALSE
  3701. BulbBump1.State = BulbOn
  3702. BumpText1On.Render = TRUE
  3703. BumpText1Off.Render = FALSE
  3704. BulbBump2.State = BulbOn
  3705. BumpText2On.Render = TRUE
  3706. BumpText2Off.Render = FALSE
  3707. BulbBump3.State = BulbOn
  3708. BumpText3On.Render = TRUE
  3709. BumpText3Off.Render = FALSE
  3710. SuperPopTimer.Set TRUE, 40000
  3711. End Sub
  3712.  
  3713.  
  3714.  
  3715. Sub SuperPopTimer_Expired()
  3716. SuperPopTimer.Enabled = FALSE
  3717. SuperPopsActive = FALSE
  3718. BumpHit = 0
  3719. FlashB1.State = BulbOff
  3720. FlashB2.State = BulbOff
  3721. FlashB3.State = BulbOff
  3722. LightSuperPops.State = BulbOff
  3723. BulbBump1.State = BulbOff
  3724. BumpText1On.Render = FALSE
  3725. BumpText1Off.Render = TRUE
  3726. BulbBump2.State = BulbOff
  3727. BumpText2On.Render = FALSE
  3728. BumpText2Off.Render = TRUE
  3729. BulbBump3.State = BulbOff
  3730. BumpText3On.Render = FALSE
  3731. BumpText3Off.Render = TRUE
  3732. End Sub
  3733.  
  3734.  
  3735.  
  3736.  
  3737. ' ******************************
  3738. ' ** **
  3739. ' ** GUN TARGETS **
  3740. ' ** **
  3741. ' ******************************
  3742.  
  3743. ' complete G-U-N to raise the drop targets in the firing range.
  3744.  
  3745. ' shoot down all the targets within the time limit to clear.
  3746.  
  3747. ' clear 3 sets for an extra ball.
  3748.  
  3749.  
  3750. Sub TgtGun1_Hit()
  3751. If (LightLeft1.State = BulbBlink) Then
  3752. LightLeft1.State = BulbOn: CheckGUN()
  3753. Else
  3754. AddScore(5)
  3755. End If
  3756. set LastSwitchHit = TgtGun1
  3757. End Sub
  3758.  
  3759.  
  3760.  
  3761. Sub TgtGun2_Hit()
  3762. If (LightLeft2.State = BulbBlink) Then
  3763. LightLeft2.State = BulbOn: CheckGUN()
  3764. Else
  3765. AddScore(5)
  3766. End If
  3767. set LastSwitchHit = TgtGun2
  3768. End Sub
  3769.  
  3770.  
  3771.  
  3772. Sub TgtGun3_Hit()
  3773. If (LightLeft3.State = BulbBlink) Then
  3774. LightLeft3.State = BulbOn: CheckGUN()
  3775. Else
  3776. AddScore(5)
  3777. End If
  3778. set LastSwitchHit = TgtGun3
  3779. End Sub
  3780.  
  3781.  
  3782.  
  3783. Sub CheckGUN()
  3784. If (LightLeft1.State=BulbOn) and (LightLeft2.State=BulbOn) and (LightLeft3.State=BulbOn) Then
  3785.  
  3786. ' these modes are using the lane, so just add points...
  3787. If (RachaelMode = TRUE) or (ZhoraMode = TRUE) or (BattyMode = TRUE) Then
  3788. AddScore(50)
  3789. LightLeft1.State = BulbBlink
  3790. LightLeft2.State = BulbBlink
  3791. LightLeft3.State = BulbBlink
  3792. RangeValue = RangeValue + 20
  3793. DMD.QueueText "[y0][xc][f3]RANGE VALUE[y11][f1]INCREASED TO " & FormatNumber(RangeValue, 0, -1, 0, -1), deNone, 1500, TRUE
  3794. Exit Sub
  3795. End If
  3796.  
  3797. If (ShootingMode=TRUE) or (VKMode=TRUE) or (PhotoMode=TRUE) Then ' firing range already running...increase value of shots
  3798. LightLeft1.FlashForMs 500, 100, BulbBlink
  3799. LightLeft2.FlashForMs 500, 100, BulbBlink
  3800. LightLeft3.FlashForMs 500, 100, BulbBlink
  3801. RangeValue = RangeValue + 150
  3802. AddScore(50)
  3803. DMD.QueueText "[y0][xc][f3]RANGE VALUE[y11][f1]INCREASED TO " & FormatNumber(RangeValue, 0, -1, 0, -1), deNone, 1500, TRUE
  3804. Else
  3805. If (LightRange.State = BulbOff) Then
  3806. AddScore(45)
  3807. If (QuoteBusy = FALSE) Then
  3808. QuoteBusy = TRUE
  3809. If (ModeActive = FALSE) Then
  3810. Select Case RandomNumber(3)
  3811. Case 1: PlayMusic 2, "vo_TargetAndShoot2", FALSE, 1, 400
  3812. Case 2: PlayMusic 2, "vo_TargetAndShoot3", FALSE, 1, 400
  3813. Case 3: PlayMusic 2, "vo_TargetAndShoot4", FALSE, 1, 400
  3814. End Select
  3815. Else
  3816. PlayMusic 2, "vo_TargetAndShoot3", FALSE, 1, 300
  3817. End If
  3818. End If
  3819. LightRange.State = BulbBlink
  3820. OverlayMovie.Frame 216: OverlayMovieHUD.Frame 216
  3821. If (ModeActive = TRUE) Then MovieTimer.Set TRUE, 2000
  3822. ShootingMode = TRUE
  3823. LightLeft1.State = BulbBlink
  3824. LightLeft2.State = BulbBlink
  3825. LightLeft3.State = BulbBlink
  3826. PlaySound "fx_Hit2"
  3827. Up = 0: TargetBankTimer.Set TRUE, 250
  3828. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  3829. DMD.QueueText "[y0][xc][f3][b]SHOOT TARGETS[/b][y11][f1]TARGET VALUE: " & FormatNumber(RangeValue, 0, -1, 0, -1), deNone, 1800, TRUE
  3830. Exit Sub
  3831. End If
  3832. If (LightVK.State = BulbOff) Then
  3833. LightVK.State = BulbBlink
  3834. VKMode = TRUE
  3835. AddScore(90)
  3836. If (QuoteBusy = FALSE) and (ModeActive = FALSE) Then
  3837. QuoteBusy = TRUE
  3838. Select Case RandomNumber(2)
  3839. Case 1: PlayMusic 2, "vo_EmpathyTest", FALSE, 1, 200
  3840. Case 2: PlayMusic 2, "vo_SeeItWork", FALSE, 1, 200
  3841. End Select
  3842. End If
  3843. LightLeft1.State = BulbBlink
  3844. LightLeft2.State = BulbBlink
  3845. LightLeft3.State = BulbBlink
  3846. PlaySound "fx_Hit2"
  3847. Up = 0: TargetBankTimer.Set TRUE, 250
  3848. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  3849. DMD.QueueText "[y0][xc][f3][b]SHOOT TARGETS[/b][y11][f1]TARGET VALUE: " & FormatNumber(RangeValue, 0, -1, 0, -1), deNone, 1800, TRUE
  3850. Exit Sub
  3851. End If
  3852. If (LightPhoto.State = BulbOff) Then
  3853. LightPhoto.State = BulbBlink
  3854. PhotoMode = TRUE
  3855. AddScore(200)
  3856. If (QuoteBusy = FALSE) and (ModeActive = FALSE) Then
  3857. QuoteBusy = TRUE
  3858. PlayMusic 2, "vo_GetPhotos", FALSE, 1, 500
  3859. End If
  3860. LightLeft1.State = BulbBlink
  3861. LightLeft2.State = BulbBlink
  3862. LightLeft3.State = BulbBlink
  3863. PlaySound "fx_Hit2"
  3864. Up = 0: TargetBankTimer.Set TRUE, 250
  3865. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  3866. DMD.QueueText "[y0][xc][f3][b]SHOOT TARGETS[/b][y11][f1]TARGET VALUE: " & FormatNumber(RangeValue, 0, -1, 0, -1), deNone, 1800, TRUE
  3867. Exit Sub
  3868. End If
  3869. End If
  3870. Else
  3871. AddScore(20)
  3872. PlaySound "fx_Hit7"
  3873. End If
  3874. End Sub
  3875.  
  3876.  
  3877. Dim Up
  3878.  
  3879.  
  3880. Sub TargetBankTimer_Expired()
  3881. Up = Up + 1: PlaySound "fx_PopUpL", 0.7
  3882. Select Case UP
  3883. Case 1: DT_1.SolenoidPulse
  3884. Case 2: DT_2.SolenoidPulse
  3885. Case 3: DT_3.SolenoidPulse
  3886. Case 4: DT_4.SolenoidPulse: TargetBankTimer.Enabled = FALSE
  3887. End Select
  3888. FF_Sound DV_LS,-1, "fx_GunShot2"
  3889. End Sub
  3890.  
  3891.  
  3892. Sub RangeTimer_Expired()
  3893. RangeTimer.Enabled = FALSE
  3894. If (MovieTimer.Enabled = FALSE) Then MovieTimer.Set TRUE, 100
  3895. If (ShootingMode = TRUE) Then LightRange.State = BulbOff: ShootingMode = FALSE
  3896. If (VKMode = TRUE) Then LightVK.State = BulbOff: VKMode = FALSE
  3897. If (PhotoMode = TRUE) Then LightPhoto.State = BulbOff: PhotoMode = FALSE
  3898. PlaySound "fx_Hit2"
  3899. DT_1.PopDown
  3900. DT_2.PopDown
  3901. DT_3.PopDown
  3902. DT_4.PopDown
  3903. RangeValue = AdjRangeValue
  3904. VKValue = AdjVKValue
  3905. PhotoValue = AdjPhotoValue
  3906. End Sub
  3907.  
  3908.  
  3909.  
  3910.  
  3911.  
  3912.  
  3913. ' ************************************
  3914. ' ** **
  3915. ' ** TARGETS RIGHT BANK **
  3916. ' ** **
  3917. ' ************************************
  3918.  
  3919.  
  3920.  
  3921. Sub TgtNew_Hit()
  3922. PlaySound "fx_4"
  3923. If (LightNew.State = BulbBlink) Then
  3924. LightNew.State = BulbOn: Check3Bank()
  3925. AddScore(20)
  3926. Else
  3927. AddScore(5)
  3928. End If
  3929. set LastSwitchHit = TgtNew
  3930. End Sub
  3931.  
  3932.  
  3933.  
  3934. Sub TgtCase_Hit()
  3935. PlaySound "fx_4"
  3936. If (LightCase.State = BulbBlink) Then
  3937. LightCase.State = BulbOn: Check3Bank()
  3938. AddScore(20)
  3939. Else
  3940. AddScore(5)
  3941. End If
  3942. set LastSwitchHit = TgtCase
  3943. End Sub
  3944.  
  3945.  
  3946.  
  3947. Sub Check3Bank()
  3948. If (LightNew.State=BulbOn) and (LightCase.State=BulbOn) Then
  3949.  
  3950. If (ModeActive = FALSE) Then
  3951.  
  3952. ' the other 3 replicants are dead....time to face Roy....
  3953. If (LightLeonMain.State=BulbOn) and (LightZhoraMain.State=BulbOn) and (LightPrisMain.State=BulbOn) Then
  3954. OverlayMovie.Frame 68: OverlayMovieHUD.Frame 68
  3955. QuoteBusy = TRUE: PlayMusic 2, "vo_RoyBatty"
  3956. BattyReady = TRUE
  3957. Exit Sub
  3958. End If
  3959.  
  3960. ' set a random number for spins...
  3961. Select Case RandomNumber(5)
  3962. Case 1: Spin = 10
  3963. Case 2: Spin = 12
  3964. Case 3: Spin = 13
  3965. Case 4: Spin = 14
  3966. Case 5: Spin = 15
  3967. End Select
  3968.  
  3969. ' first, save the main light state...
  3970. TempM1 = LightLeonMain.State
  3971. TempM2 = LightZhoraMain.State
  3972. TempM3 = LightPrisMain.State
  3973. TempM4 = LightTyrellMain.State
  3974. TempM5 = LightSebastianMain.State
  3975. TempM6 = LightChewMain.State
  3976. TempM7 = LightRachaelMain.State
  3977. TempM8 = LightGaffMain.State
  3978.  
  3979. PlayMusic 4, "fx_24", TRUE, 0.6
  3980.  
  3981. If (QuoteBusy = FALSE) Then
  3982. Select Case RandomNumber(3)
  3983. Case 1: QuoteBusy = TRUE: PlayMusic 2, "vo_UrgentMessage", FALSE, 0.8
  3984. End Select
  3985. End If
  3986.  
  3987. DMD.Text = "[y0][xc][f3]NEW CASE[y11][f1][b]READY TO START"
  3988.  
  3989. ' now spin the wheel...
  3990. LightLeonMain.Set BulbBlink, "10000000", 100
  3991. LightZhoraMain.Set BulbBlink, "01000000", 100
  3992. LightPrisMain.Set BulbBlink, "00100000", 100
  3993. LightTyrellMain.Set BulbBlink, "00010000", 100
  3994. LightSebastianMain.Set BulbBlink,"00001000", 100
  3995. LightChewMain.Set BulbBlink, "00000100", 100
  3996. LightRachaelMain.Set BulbBlink, "00000010", 100
  3997. LightGaffMain.Set BulbBlink, "00000001", 100
  3998. WheelSpin.Set TRUE, 100
  3999. AddScore(75)
  4000. Else
  4001. AddScore(50)
  4002. MissionHit = MissionHit + 50
  4003. DMD.QueueText "[y0][xc][f3]MISSION VALUE[y11][f1]INCREASED $" & FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1800, TRUE
  4004. LightNew.State = BulbBlink
  4005. LightCase.State = BulbBlink
  4006. End If
  4007. End If
  4008. End Sub
  4009.  
  4010.  
  4011.  
  4012.  
  4013. Sub WheelSpin_Expired()
  4014. Spin = Spin - 1
  4015.  
  4016. 'LightLeonMain.State = BulbOff
  4017. 'LightZhoraMain.State = BulbOff
  4018. 'LightPrisMain.State = BulbOff
  4019. 'LightTyrellMain.State = BulbOff
  4020. 'LightSebastianMain.State = BulbOff
  4021. 'LightChewMain.State = BulbOff
  4022. 'LightRachaelMain.State = BulbOff
  4023. 'LightGaffMain.State = BulbOff
  4024.  
  4025. If (Spin =<1) Then
  4026. WheelSpin.Enabled = FALSE
  4027. StopMusic 4: PlaySound "fx_3"
  4028.  
  4029. LightMode.State = BulbBlink
  4030. LightRampL.FlashForMs 1000, 125, BulbOff
  4031.  
  4032. LightNew.State = BulbBlink
  4033. LightCase.State = BulbBlink
  4034.  
  4035. ' return light to their previous state...
  4036. LightLeonMain.State = TempM1
  4037. LightZhoraMain.State = TempM2
  4038. LightPrisMain.State = TempM3
  4039. LightTyrellMain.State = TempM4
  4040. LightSebastianMain.State = TempM5
  4041. LightChewMain.State = TempM6
  4042. LightRachaelMain.State = TempM7
  4043. LightGaffMain.State = TempM8
  4044.  
  4045. If (LightLeonMain.State = BulbBlink) Then LightLeonMain.Set BulbOff, "10", 150
  4046. If (LightZhoraMain.State = BulbBlink) Then LightZhoraMain.Set BulbOff, "10", 150
  4047. If (LightPrisMain.State = BulbBlink) Then LightPrisMain.Set BulbOff, "10", 150
  4048. If (LightTyrellMain.State = BulbBlink) Then LightTyrellMain.Set BulbOff, "10", 150
  4049. If (LightSebastianMain.State = BulbBlink) Then LightSebastianMain.Set BulbOff,"10", 150
  4050. If (LightChewMain.State = BulbBlink) Then LightChewMain.Set BulbOff, "10", 150
  4051. If (LightRachaelMain.State = BulbBlink) Then LightRachaelMain.Set BulbOff, "10", 150
  4052. If (LightGaffMain.State = BulbBlink) Then LightGaffMain.Set BulbOff, "10", 150
  4053.  
  4054. Select Case RandomNumber(8)
  4055. Case 1:
  4056. If (LightLeonMain.State = BulbOff) Then
  4057. LightLeonMain.Set BulbBlink, "10", 150
  4058. If (QuoteBusy = FALSE) Then
  4059. QuoteBusy = TRUE
  4060. Select Case RandomNumber(2)
  4061. Case 1: PlayMusic 2, "vo_LeonKillHim"
  4062. Case 2: PlayMusic 2, "vo_Armed", FALSE, 0.8
  4063. End Select
  4064. End If
  4065. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  4066. DMD.QueueText "[y0][xc][f3]LEON READY[y11][f1][b]SHOOT SCOOP", deNone, 1800, TRUE
  4067. Else
  4068. ReSpin()
  4069. End If
  4070. Case 2:
  4071. If (LightZhoraMain.State = BulbOff) Then
  4072. LightZhoraMain.Set BulbBlink, "10", 150
  4073. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Zhora"
  4074. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  4075. DMD.QueueText "[y0][xc][f3]ZHORA READY[y11][f1][b]SHOOT SCOOP", deNone, 1800, TRUE
  4076. Else
  4077. ReSpin()
  4078. End If
  4079. Case 3:
  4080. If (LightPrisMain.State = BulbOff) Then
  4081. LightPrisMain.Set BulbBlink, "10", 150
  4082. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Pris2"
  4083. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  4084. DMD.QueueText "[y0][xc][f3]PRIS READY[y11][f1][b]SHOOT SCOOP", deNone, 1800, TRUE
  4085. Else
  4086. ReSpin()
  4087. End If
  4088. Case 4:
  4089. If (LightTyrellMain.State = BulbOff) Then
  4090. LightTyrellMain.Set BulbBlink, "10", 150
  4091. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_IndulgeMe"
  4092. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  4093. DMD.QueueText "[y0][xc][f3]TYRELL READY[y11][f1][b]SHOOT SCOOP", deNone, 1800, TRUE
  4094. Else
  4095. ReSpin()
  4096. End If
  4097. Case 5:
  4098. If (LightSebastianMain.State = BulbOff) Then
  4099. LightSebastianMain.Set BulbBlink, "10", 150
  4100. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_HomeAgain"
  4101. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  4102. DMD.QueueText "[y0][xc][f3]SEBASTIAN READY[y11][f1][b]SHOOT SCOOP", deNone, 1800, TRUE
  4103. Else
  4104. ReSpin()
  4105. End If
  4106. Case 6:
  4107. If (LightChewMain.State = BulbOff) Then
  4108. LightChewMain.Set BulbBlink, "10", 150
  4109. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_ChewWorkHard"
  4110. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  4111. DMD.QueueText "[y0][xc][f3]CHEW READY[y11][f1][b]SHOOT SCOOP", deNone, 1800, TRUE
  4112. Else
  4113. ReSpin()
  4114. End If
  4115. Case 7:
  4116. If (LightRachaelMain.State = BulbOff) Then
  4117. LightRachaelMain.Set BulbBlink, "10", 150
  4118. If (QuoteBusy = FALSE) Then
  4119. QuoteBusy = TRUE
  4120. Select Case RandomNumber(2)
  4121. Case 1: PlayMusic 2, "vo_Rachael"
  4122. Case 2: PlayMusic 2, "vo_ThinkReplicant"
  4123. End Select
  4124. End If
  4125. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  4126. DMD.QueueText "[y0][xc][f3]RACHAEL READY[y11][f1][b]SHOOT SCOOP", deNone, 1800, TRUE
  4127. Else
  4128. ReSpin()
  4129. End If
  4130. Case 8:
  4131. If (LightGaffMain.State = BulbOff) Then
  4132. LightGaffMain.Set BulbBlink, "10", 150
  4133. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_DeepOne"
  4134. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  4135. DMD.QueueText "[y0][xc][f3]GAFF READY[y11][f1][b]SHOOT SCOOP", deNone, 1800, TRUE
  4136. Else
  4137. ReSpin()
  4138. End If
  4139. End Select
  4140. End If
  4141. End Sub
  4142.  
  4143.  
  4144.  
  4145. Sub ReSpin()
  4146. Select Case RandomNumber(8)
  4147. Case 1:
  4148. If (LightLeonMain.State = BulbOff) Then
  4149. LightLeonMain.Set BulbBlink, "10", 150
  4150. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_LeonKillHim"
  4151. DMD.QueueText "[y0][xc][f3]LEON[y11][f1][b]NEW ASSIGNMENT READY", deNone, 1800, TRUE
  4152. Else
  4153. ReSpin()
  4154. End If
  4155. Case 2:
  4156. If (LightZhoraMain.State = BulbOff) Then
  4157. LightZhoraMain.Set BulbBlink, "10", 150
  4158. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Zhora"
  4159. DMD.QueueText "[y0][xc][f3]ZHORA[y11][f1][b]NEW ASSIGNMENT READY", deNone, 1800, TRUE
  4160. Else
  4161. ReSpin()
  4162. End If
  4163. Case 3:
  4164. If (LightPrisMain.State = BulbOff) Then
  4165. LightPrisMain.Set BulbBlink, "10", 150
  4166. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Pris2"
  4167. DMD.QueueText "[y0][xc][f3]PRIS[y11][f1][b]NEW ASSIGNMENT READY", deNone, 1800, TRUE
  4168. Else
  4169. ReSpin()
  4170. End If
  4171. Case 4:
  4172. If (LightTyrellMain.State = BulbOff) Then
  4173. LightTyrellMain.Set BulbBlink, "10", 150
  4174. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_IndulgeMe"
  4175. DMD.QueueText "[y0][xc][f3]TYRELL[y11][f1][b]NEW ASSIGNMENT READY", deNone, 1800, TRUE
  4176. Else
  4177. ReSpin()
  4178. End If
  4179. Case 5:
  4180. If (LightSebastianMain.State = BulbOff) Then
  4181. LightSebastianMain.Set BulbBlink, "10", 150
  4182. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_HomeAgain"
  4183. DMD.QueueText "[y0][xc][f3]SEBASTIAN[y11][f1][b]NEW ASSIGNMENT READY", deNone, 1800, TRUE
  4184. Else
  4185. ReSpin()
  4186. End If
  4187. Case 6:
  4188. If (LightChewMain.State = BulbOff) Then
  4189. LightChewMain.Set BulbBlink, "10", 150
  4190. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_ChewWorkHard"
  4191. DMD.Text = "[y0][xc][f3]CHEW[y11][f1][b]NEW ASSIGNMENT READY"
  4192. Else
  4193. ReSpin()
  4194. End If
  4195. Case 7:
  4196. If (LightRachaelMain.State = BulbOff) Then
  4197. LightRachaelMain.Set BulbBlink, "10", 150
  4198. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Rachael"
  4199. DMD.QueueText "[y0][xc][f3]RACHAEL[y11][f1][b]NEW ASSIGNMENT READY", deNone, 1800, TRUE
  4200. Else
  4201. ReSpin()
  4202. End If
  4203. Case 8:
  4204. If (LightGaffMain.State = BulbOff) Then
  4205. LightGaffMain.Set BulbBlink, "10", 150
  4206. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_DeepOne"
  4207. DMD.QueueText "[y0][xc][f3]GAFF[y11][f1][b]NEW ASSIGNMENT READY", deNone, 1800, TRUE
  4208. Else
  4209. ReSpin()
  4210. End If
  4211. End Select
  4212. End Sub
  4213.  
  4214.  
  4215.  
  4216.  
  4217.  
  4218. ' ********************************
  4219. ' ** **
  4220. ' ** ROLLOVER LANE **
  4221. ' ** **
  4222. ' ********************************
  4223.  
  4224.  
  4225.  
  4226. Sub TrigRO1_Hit()
  4227. If (LightRO1.State = BulbBlink) Then
  4228. If (LeonMode = TRUE) Then
  4229. PlaySound "fx_Hit9"
  4230. PlayMusic 3, "vo_NewEmployee"
  4231. LightRO1.State = BulbOff
  4232. LightRO2.State = BulbOff
  4233. LightTyrell.State = BulbOff
  4234. LightLO3.State = BulbOff
  4235. LightElevator.State = BulbOn
  4236. AddScore(200)
  4237. End If
  4238. Exit Sub
  4239. End If
  4240. PlaySound "fx_Hit6"
  4241. LightRO1.State = BulbOn: CheckRO()
  4242. End Sub
  4243.  
  4244.  
  4245.  
  4246. Sub TrigRO2_Hit()
  4247. If (LightRO2.State = BulbBlink) Then
  4248. If (LeonMode = TRUE) Then
  4249. PlaySound "fx_Hit9"
  4250. PlayMusic 3, "vo_NewEmployee"
  4251. LightRO1.State = BulbOff
  4252. LightRO2.State = BulbOff
  4253. LightTyrell.State = BulbOff
  4254. LightLO3.State = BulbOff
  4255. LightElevator.State = BulbOn
  4256. AddScore(200)
  4257. End If
  4258. Exit Sub
  4259. End If
  4260. PlaySound "fx_Hit6"
  4261. LightRO2.State = BulbOn: CheckRO()
  4262. End Sub
  4263.  
  4264.  
  4265.  
  4266. Sub CheckRO()
  4267. If (LightRO1.State=BulbOn) and (LightRO2.State=BulbOn) Then
  4268. LightRO1.State = BulbOff
  4269. LightRO2.State = BulbOff
  4270. LightElevator.State = BulbOn ' activate elevator...
  4271. Bulb30.FlashForMs 500, 100, BulbOn
  4272. Bulb31.FlashForMs 500, 100, BulbOn
  4273. Bulb32.FlashForMs 500, 100, BulbOn
  4274. PlaySound "fx_Hit8"
  4275. AddScore(40)
  4276. IncrementBonusMultiplier()
  4277. Else
  4278. AddScore(15)
  4279. End If
  4280. End Sub
  4281.  
  4282.  
  4283.  
  4284. Sub TrigBumpLane_Hit()
  4285. PopUp2.SolenoidPulse(2000)
  4286. set LastSwitchHit = TrigBumpLane
  4287. End Sub
  4288.  
  4289.  
  4290.  
  4291. Sub TrigPopUpFx_Hit()
  4292. If (LightTyrell.State = BulbOn) Then
  4293. If (LightLO3.State = BulbOff) Then
  4294. LightTyrell.State = BulbOff
  4295. End If
  4296. PlaySound "fx_MetalHitHardC"
  4297. End If
  4298. End Sub
  4299.  
  4300.  
  4301.  
  4302.  
  4303. ' **********************************
  4304. ' ** **
  4305. ' ** TARGETS INCLINE **
  4306. ' ** **
  4307. ' **********************************
  4308.  
  4309.  
  4310. Sub DT_1_Hit()
  4311.  
  4312. RangeTimer.Set TRUE, RangeTime
  4313.  
  4314. If (ShootingMode = TRUE) Then
  4315. FlasherL.FlashForMs 225, 75, BulbOff
  4316. PlaySound "fx_GunShot3"
  4317. AllPlasOff()
  4318. PFFlashTimer.Set TRUE, 225
  4319. AddScore(RangeValue)
  4320. End If
  4321. If (VKMode = TRUE) Then
  4322. PlaySound "fx_VKMachine"
  4323. If (QuoteBusy = FALSE) Then
  4324. QuoteBusy = TRUE
  4325. PlayMusic 2, "vo_Iris"
  4326. End If
  4327. OverlayMovie.UpdateInterval = 66: OverlayMovieHUD.UpdateInterval = 66
  4328. OverlayMovie.Frame 387, 424: OverlayMovieHUD.Frame 387, 424
  4329. MovieTimer.Set TRUE, 2700
  4330. AddScore(VKValue)
  4331. End If
  4332. If (PhotoMode = TRUE) Then
  4333. PlaySound "fx_9"
  4334. AddScore(PhotoValue)
  4335. End If
  4336. DMD.QueueText "[xc[y3][f6]HIT = $ " & FormatNumber(RangeValue, 0, -1, 0, -1), deNone, 1500, TRUE
  4337. PlaySound "fx_DropDownL"
  4338. End Sub
  4339.  
  4340.  
  4341.  
  4342. Sub DT_2_Hit()
  4343.  
  4344. If (ShootingMode = TRUE) Then
  4345. FlasherL.FlashForMs 225, 75, BulbOff
  4346. PlaySound "fx_GunShot3"
  4347. AllPlasOff()
  4348. PFFlashTimer.Set TRUE, 225
  4349. AddScore(RangeValue)
  4350. End If
  4351. If (VKMode = TRUE) Then
  4352. PlaySound "fx_VKHit"
  4353. If (QuoteBusy = FALSE) Then
  4354. QuoteBusy = TRUE
  4355. PlayMusic 2, "vo_BlushResponse"
  4356. End If
  4357. AddScore(VKValue)
  4358. End If
  4359. If (PhotoMode = TRUE) Then
  4360. PlaySound "fx_9"
  4361. AddScore(PhotoValue)
  4362. End If
  4363. DMD.QueueText "[xc[y3][f6]HIT = $ " & FormatNumber(RangeValue, 0, -1, 0, -1), deNone, 1500, TRUE
  4364. PlaySound "fx_DropDownL"
  4365. End Sub
  4366.  
  4367.  
  4368.  
  4369. Sub DT_3_Hit()
  4370.  
  4371. If (ShootingMode = TRUE) Then
  4372. FlasherL.FlashForMs 225, 75, BulbOff
  4373. PlaySound "fx_GunShot3"
  4374. AllPlasOff()
  4375. PFFlashTimer.Set TRUE, 225
  4376. AddScore(RangeValue)
  4377. End If
  4378. If (VKMode = TRUE) Then
  4379. PlaySound "fx_VKHit"
  4380. If (QuoteBusy = FALSE) Then
  4381. QuoteBusy = TRUE
  4382. PlayMusic 2, "vo_Pupil"
  4383. End If
  4384. AddScore(VKValue)
  4385. End If
  4386. If (PhotoMode = TRUE) Then
  4387. PlaySound "fx_9"
  4388. AddScore(PhotoValue)
  4389. End If
  4390. DMD.QueueText "[xc[y3][f6]HIT = $ " & FormatNumber(RangeValue, 0, -1, 0, -1), deNone, 1500, TRUE
  4391. PlaySound "fx_DropDownL"
  4392. End Sub
  4393.  
  4394.  
  4395.  
  4396. Sub DT_4_Hit()
  4397. PlaySound "fx_DropDownL"
  4398. RangeTimer.Enabled = FALSE
  4399.  
  4400. If (BattyMode = TRUE) Then
  4401. BattyHit = BattyHit + 1
  4402. PlaySound "fx_DropDownL"
  4403. QuoteBusy = TRUE
  4404. Select Case BattyHit
  4405. Case 1: PlayMusic 2, "vo_Unarmed"
  4406. Case 2: PlayMusic 2, "vo_GoodEnough"
  4407. Case 3: PlayMusic 2, "vo_Spirit"
  4408. Case 4: PlayMusic 2, "vo_SeeYou" ' last shot...
  4409. Case 5: PlayMusic 2, "vo_Irrational"
  4410. Case 6: PlayMusic 2, "vo_Deckard3"
  4411. Case 7: PlayMusic 2, "vo_HaHaHa"
  4412. End Select
  4413.  
  4414. Select Case BattyShot
  4415. Case 1:
  4416. LightLO3.State = BulbBlink
  4417. 'LightLaneL.State = BulbBlink
  4418. LightRampL.State = BulbBlink
  4419. 'LightCentrePurge.State = BulbBlink
  4420. LightRampR.State = BulbBlink
  4421. 'LightLaneR.State = BulbBlink
  4422. LightRep.State = BulbBlink
  4423. Case 2:
  4424. 'LightLO3.State = BulbBlink
  4425. 'LightLaneL.State = BulbBlink
  4426. LightRampL.State = BulbBlink
  4427. 'LightCentrePurge.State = BulbBlink
  4428. LightRampR.State = BulbBlink
  4429. 'LightLaneR.State = BulbBlink
  4430. LightRep.State = BulbBlink
  4431. Case 3:
  4432. 'LightLO3.State = BulbBlink
  4433. 'LightLaneL.State = BulbBlink
  4434. LightRampL.State = BulbBlink
  4435. 'LightCentrePurge.State = BulbBlink
  4436. 'LightRampR.State = BulbBlink
  4437. 'LightLaneR.State = BulbBlink
  4438. LightRep.State = BulbBlink
  4439. Case 4:
  4440. 'LightLO3.State = BulbBlink
  4441. 'LightLaneL.State = BulbBlink
  4442. 'LightRampL.State = BulbBlink
  4443. LightCentrePurge.State = BulbBlink
  4444. 'LightRampR.State = BulbBlink
  4445. 'LightLaneR.State = BulbBlink
  4446. 'LightRep.State = BulbBlink
  4447. End Select
  4448.  
  4449. DMD.QueueText "[y1][xc][f6][bf]MISSION SHOT", deNone, 1800, TRUE
  4450. FlasherL.FlashForMs 225, 75, BulbOff
  4451. PlaySound "fx_GunShot3"
  4452. AllPlasOff(): PFFlashTimer.Set TRUE, 225
  4453. LightDT.State = BulbOff
  4454.  
  4455. Select Case RandomNumber(7)
  4456. Case 1: Spin = 12
  4457. Case 2: Spin = 13
  4458. Case 3: Spin = 15
  4459. Case 4: Spin = 16
  4460. Case 5: Spin = 17
  4461. Case 6: Spin = 18
  4462. Case 7: Spin = 19
  4463. End Select
  4464. RingSpin.Set TRUE, 100
  4465. PlayMusic 4, "fx_24", TRUE, 0.6
  4466. LightRing8.Set BulbBlink,"10000000", 100
  4467. LightRing7.Set BulbBlink,"01000000", 100
  4468. LightRing6.Set BulbBlink,"00100000", 100
  4469. LightRing5.Set BulbBlink,"00010000", 100
  4470. LightRing4.Set BulbBlink,"00001000", 100
  4471. LightRing3.Set BulbBlink,"00000100", 100
  4472. LightRing2.Set BulbBlink,"00000010", 100
  4473. LightRing1.Set BulbBlink,"00000001", 100
  4474. Exit Sub
  4475. End If
  4476.  
  4477. MovieTimer.Set TRUE, 100
  4478.  
  4479. ' firing range complete...
  4480. If (ShootingMode = TRUE) Then
  4481. FlasherL.FlashForMs 225, 75, BulbOff
  4482. PlaySound "fx_GunShot3"
  4483. AllPlasOff()
  4484. PFFlashTimer.Set TRUE, 225
  4485. ShootingMode = FALSE
  4486. LightRange.State = BulbOn
  4487. If (QuoteBusy = FALSE) Then
  4488. QuoteBusy = TRUE
  4489. PlayMusic 2, "vo_CompletedSeq", FALSE, 1, 500
  4490. End If
  4491. AddScore(RangeValue*4)
  4492. DMD.QueueText "[xc[y3][f6][bf]END = $ " & FormatNumber(RangeValue*4, 0, -1, 0, -1), deNone, 1800, TRUE
  4493. RangeComp = RangeComp + 1
  4494. End If
  4495.  
  4496. ' voight kampff complete...
  4497. If (VKMode = TRUE) Then
  4498. PlaySound "fx_22"
  4499. VKMode = FALSE
  4500. LightVK.State = BulbOn
  4501. If (QuoteBusy = FALSE) Then
  4502. QuoteBusy = TRUE
  4503. PlayMusic 2, "vo_VKForShort", FALSE, 1, 500
  4504. End If
  4505. AddScore(VKValue*4)
  4506. DMD.QueueText "[xc[y3][f6][bf]END = $ " & FormatNumber(VKValue*4, 0, -1, 0, -1), deNone, 1800, TRUE
  4507. RangeComp = RangeComp + 1
  4508. End If
  4509.  
  4510. ' photo complete...
  4511. If (PhotoMode = TRUE) Then
  4512. PlaySound "fx_22"
  4513. PhotoMode = FALSE
  4514. LightPhoto.State = BulbOn
  4515. If (QuoteBusy = FALSE) Then
  4516. QuoteBusy = TRUE
  4517. PlayMusic 2, "vo_SnapShots", FALSE, 1, 500
  4518. End If
  4519. AddScore(PhotoValue*4)
  4520. DMD.QueueText "[xc[y3][f6][bf]END = $ " & FormatNumber(PhotoValue*4, 0, -1, 0, -1), deNone, 1800, TRUE
  4521. RangeComp = RangeComp + 1
  4522. End If
  4523.  
  4524. If (RangeComp = 3) Then
  4525. AwardEB()
  4526. ' reset and start again...
  4527. RangeComp = 0
  4528. LightRange.State = BulbOff
  4529. LightVK.State = BulbOff
  4530. LightPhoto.State = BulbOff
  4531. End If
  4532.  
  4533. VK = 0
  4534.  
  4535. ' reset base values...
  4536. RangeValue = AdjRangeValue
  4537. VKValue = AdjVKValue
  4538. PhotoValue = AdjPhotoValue
  4539.  
  4540. Select Case RandomNumber(7)
  4541. Case 1: Spin = 12
  4542. Case 2: Spin = 13
  4543. Case 3: Spin = 15
  4544. Case 4: Spin = 16
  4545. Case 5: Spin = 17
  4546. Case 6: Spin = 18
  4547. Case 7: Spin = 19
  4548. End Select
  4549. RingSpin.Set TRUE, 100
  4550. PlayMusic 4, "fx_24", TRUE, 0.6
  4551. LightRing8.Set BulbBlink,"10000000", 100
  4552. LightRing7.Set BulbBlink,"01000000", 100
  4553. LightRing6.Set BulbBlink,"00100000", 100
  4554. LightRing5.Set BulbBlink,"00010000", 100
  4555. LightRing4.Set BulbBlink,"00001000", 100
  4556. LightRing3.Set BulbBlink,"00000100", 100
  4557. LightRing2.Set BulbBlink,"00000010", 100
  4558. LightRing1.Set BulbBlink,"00000001", 100
  4559. End Sub
  4560.  
  4561.  
  4562.  
  4563. Sub AwardEB()
  4564. ExtraBallsAwards(CurrentPlayer) = ExtraBallsAwards(CurrentPlayer) + 1
  4565. ShootAgainLight.State = BulbOn
  4566. End Sub
  4567.  
  4568.  
  4569.  
  4570.  
  4571. Sub RingSpin_Expired()
  4572. Spin = Spin - 1
  4573. If (Spin =<1) Then
  4574. RingSpin.Enabled = FALSE
  4575. StopMusic 4: PlaySound "fx_4"
  4576. LightRing1.State = BulbOff
  4577. LightRing2.State = BulbOff
  4578. LightRing3.State = BulbOff
  4579. LightRing4.State = BulbOff
  4580. LightRing5.State = BulbOff
  4581. LightRing6.State = BulbOff
  4582. LightRing7.State = BulbOff
  4583. LightRing8.State = BulbOff
  4584.  
  4585. DMD.Text = "[y1][xc][f6][bf]MONEY AWARD"
  4586.  
  4587. Select Case RandomNumber(8)
  4588. Case 1: LightRing1.FlashForMs 500, 100, BulbOn: AddScore(200): JPValue = JPValue + 200
  4589. Case 2: LightRing2.FlashForMs 500, 100, BulbOn: AddScore(300): JPValue = JPValue + 300
  4590. Case 3: LightRing3.FlashForMs 500, 100, BulbOn: AddScore(400): JPValue = JPValue + 400
  4591. Case 4: LightRing4.FlashForMs 500, 100, BulbOn: AddScore(500): JPValue = JPValue + 500
  4592. Case 5: LightRing5.FlashForMs 500, 100, BulbOn: AddScore(600): JPValue = JPValue + 600
  4593. Case 6: LightRing6.FlashForMs 500, 100, BulbOn: AddScore(700): JPValue = JPValue + 700
  4594. Case 7: LightRing7.FlashForMs 500, 100, BulbOn: AddScore(800): JPValue = JPValue + 800
  4595. Case 8: LightRing8.FlashForMs 500, 100, BulbOn: AddScore(100): JPValue = JPValue + 100
  4596. End Select
  4597. End If
  4598. End Sub
  4599.  
  4600.  
  4601.  
  4602.  
  4603.  
  4604. Sub TgtLane_Hit()
  4605. If (RachaelMode = TRUE) Then
  4606. RachaelHit = RachaelHit + 1: MissionHit = MissionHit + 250
  4607. AddScore(MissionHit)
  4608. DMD.FlushQueue
  4609. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  4610. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  4611. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  4612. PlaySound "fx_VKHit"
  4613. If (QuoteBusy = FALSE) Then
  4614. QuoteTimer.Enabled = FALSE: QuoteBusy = TRUE
  4615. Select Case RachaelHit
  4616. Case 1: PlayMusic 2, "vo_AskQuestions"
  4617. Case 2: PlayMusic 2, "vo_Smoke"
  4618. Case 3:
  4619. Select Case RandomNumber(2)
  4620. Case 1: PlayMusic 2, "vo_Catskin"
  4621. Case 2: PlayMusic 2, "vo_KillingJar"
  4622. End Select
  4623. Case 4: PlayMusic 2, "vo_Wasp"
  4624. Case 5: PlayMusic 2, "vo_Lesbian2"
  4625. Case 6:
  4626. Select Case RandomNumber(3)
  4627. Case 1: PlayMusic 2, "vo_ShesReplicant2"
  4628. Case 2: PlayMusic 2, "vo_NotKnow"
  4629. Case 3: PlayMusic 2, "vo_Experiment"
  4630. End Select
  4631. End Select
  4632. Else
  4633. PlaySound "fx_VKMachine"
  4634. End If
  4635. Select Case RachaelHit
  4636. Case 1:
  4637. OverlayMovie.UpdateInterval = 66: OverlayMovieHUD.UpdateInterval = 66
  4638. OverlayMovie.Frame 387, 424: OverlayMovieHUD.Frame 387, 424
  4639. MovieTimer.Set TRUE, 2700
  4640. Case 2: OverlayMovie.Frame 331: OverlayMovieHUD.Frame 331
  4641. Case 3: OverlayMovie.Frame 332: OverlayMovieHUD.Frame 332
  4642. Case 4: 'OverlayMovie.Frame 332: OverlayMovieHUD.Frame 332
  4643. Case 5:
  4644. OverlayMovie.UpdateInterval = 66: OverlayMovieHUD.UpdateInterval = 66
  4645. OverlayMovie.Frame 425, 455: OverlayMovieHUD.Frame 425, 455
  4646. MovieTimer.Set TRUE, 2000
  4647. Case 6:
  4648. DT_1.SolenoidPulse: DTBlock.Collidable = TRUE: DTTimer.Set TRUE, 3000
  4649. LightDT.State = BulbOff
  4650. LightVK.State = BulbOff
  4651. ModeActive = FALSE: RachaelMode = FALSE
  4652. StopMusic 5
  4653. MusicResume.Set TRUE, 2500
  4654. OverlayMovie.UpdateInterval = 400: OverlayMovieHUD.UpdateInterval = 400
  4655. OverlayMovie.Frame 591, 592, 591: OverlayMovieHUD.Frame 591, 592, 591
  4656. MovieTimer.Set TRUE, 2000
  4657. AssWin()
  4658. End Select
  4659. Exit Sub
  4660. End If
  4661.  
  4662. If (ZhoraMode = TRUE) Then
  4663. 'Photo = Photo + 1
  4664. ZhoraHit = ZhoraHit + 1: MissionHit = MissionHit + 250
  4665. If (QuoteBusy = FALSE) Then
  4666. QuoteBusy = TRUE
  4667. PlaySound "fx_VKHit"
  4668. Select Case ZhoraHit
  4669. Case 1: PlayMusic 2, "vo_Enhance176"
  4670. Case 2: PlayMusic 2, "vo_Track45Right"
  4671. Case 3: PlayMusic 2, "vo_Enhance1523"
  4672. Case 4: PlayMusic 2, "vo_EnhanceStop"
  4673. Case 5: PlayMusic 2, "vo_EnhanceStop2"
  4674. Case 6: PlayMusic 2, "vo_HardCopy"
  4675. End Select
  4676. Else
  4677. PlaySound "fx_9", 0.8
  4678. End If
  4679. AddScore(MissionHit)
  4680. DMD.FlushQueue
  4681. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  4682. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  4683. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  4684. MovieTimer.Set TRUE, 100
  4685. If (ZhoraHit = 6) Then
  4686. LightCentrePurge.State = BulbBlink
  4687. OverlayMovie.Frame 456: OverlayMovieHUD.Frame 456
  4688. DT_1.SolenoidPulse: DTBlock.Collidable = TRUE: DTTimer.Set TRUE, 2000
  4689. PlayMusic 5, "Music_BRTrack8", TRUE, 0.6
  4690. LightDT.State = BulbOff
  4691. 'Photo = 0
  4692. End If
  4693. Exit Sub
  4694. End If
  4695.  
  4696. If (RachaelMode = TRUE) Then
  4697. VK = VK + 1
  4698. If (QuoteBusy = FALSE) Then
  4699. QuoteBusy = TRUE
  4700. PlaySound "fx_VKHit"
  4701. FlasherL.FlashForMs 200, 200, BulbOff
  4702. AllPlasOff(): PFFlashTimer.Set TRUE, 200
  4703. Select Case VK
  4704. Case 1: PlayMusic 2, "vo_AskQuestions"
  4705. DT_1.SolenoidPulse: DTBlock.Collidable = TRUE: DTTimer.Set TRUE, 3000
  4706. Case 2: PlayMusic 2, "vo_EmpathyTest"
  4707. Case 3: PlayMusic 2, "vo_Iris"
  4708. Case 4: PlayMusic 2, "vo_BlushResponse"
  4709. Case 5: PlayMusic 2, "vo_Pupil"
  4710. Case 6: PlayMusic 2, "vo_VKForShort"
  4711. End Select
  4712. Else
  4713. PlaySound "fx_VKMachine"
  4714. End If
  4715. Exit Sub
  4716. End If
  4717.  
  4718. PlaySound "fx_Hit4"
  4719. FlasherL.FlashForMs 200, 200, BulbOff
  4720. AllPlasOff(): PFFlashTimer.Set TRUE, 200
  4721. AddScore(5)
  4722. If (LightRange.State = BulbOff) Then
  4723. RangeValue = RangeValue + 5
  4724. DMD.QueueText "[y0][xc][f3]+ RANGE VALUE[y11][f1]RANGE TARGET VALUE: $ " & FormatNumber(RangeValue, 0, -1, 0, -1), deNone, 1500, TRUE
  4725. Else
  4726. If (LightVK.State = BulbOff) Then
  4727. VKValue = VKValue + 10
  4728. DMD.QueueText "[y0][xc][f3]+ VK VALUE[y11][f1]VK TARGET VALUE: $ " & FormatNumber(VKValue, 0, -1, 0, -1), deNone, 1500, TRUE
  4729. Else
  4730. If (LightPhoto.State = BulbOff) Then
  4731. PhotoValue = PhotoValue + 10
  4732. DMD.QueueText "[y0][xc][f3]+ PHOTO VALUE[y11][f1]VK TARGET VALUE: $ " & FormatNumber(PhotoValue, 0, -1, 0, -1), deNone, 1500, TRUE
  4733. End If
  4734. End If
  4735. End If
  4736.  
  4737. If (LightLeft1.State=BulbBlink)and(LightLeft2.State=BulbBlink)and(LightLeft3.State=BulbBlink) Then Exit Sub
  4738.  
  4739. ' rotate the GUN lights, only if at least 1 has been hit...
  4740. TempGun = LightLeft1.State
  4741. LightLeft1.State = LightLeft2.State
  4742. LightLeft2.State = LightLeft3.State
  4743. LightLeft3.State = TempGun
  4744. set LastSwitchHit = TgtLane
  4745. End Sub
  4746.  
  4747.  
  4748.  
  4749.  
  4750. Sub DTTimer_Expired()
  4751. DTTimer.Enabled = FALSE
  4752. DT_1.PopDown: DTBlock.Collidable = FALSE
  4753. End Sub
  4754.  
  4755.  
  4756.  
  4757. Sub MovieTimer_Expired()
  4758. MovieTimer.Enabled = FALSE
  4759.  
  4760. If (fpGameInPlay = FALSE) Then OverlayMovie.Frame 66: OverlayMovieHUD.Frame 66: Exit Sub
  4761.  
  4762. OverlayMovie.UpdateInterval = 400: OverlayMovieHUD.UpdateInterval = 400
  4763.  
  4764. If (BattyMode = TRUE) Then
  4765. OverlayMovie.Frame 584: OverlayMovieHUD.Frame 584
  4766. Exit Sub
  4767. End If
  4768.  
  4769. If (RachaelMode = TRUE) Then
  4770. Select Case RachaelHit
  4771. Case 0: OverlayMovie.Frame 212: OverlayMovieHUD.Frame 212
  4772. Case 1: OverlayMovie.Frame 331: OverlayMovieHUD.Frame 331
  4773. Case 2: OverlayMovie.Frame 332: OverlayMovieHUD.Frame 332
  4774. Case 3: OverlayMovie.Frame 576: OverlayMovieHUD.Frame 576
  4775. Case 4: OverlayMovie.Frame 577: OverlayMovieHUD.Frame 577
  4776. Case 5: OverlayMovie.Frame 578: OverlayMovieHUD.Frame 578
  4777. End Select
  4778. Exit Sub
  4779. End If
  4780.  
  4781. If (LeonMode = TRUE) Then
  4782. If (KillLeon = TRUE) Then OverlayMovie.Frame 583: OverlayMovieHUD.Frame 583: Exit Sub ' retirement...
  4783. Select Case LeonHit
  4784. Case 0,5: OverlayMovie.Frame 214: OverlayMovieHUD.Frame 214
  4785. Case 1: OverlayMovie.Frame 572: OverlayMovieHUD.Frame 572
  4786. Case 2: OverlayMovie.Frame 573: OverlayMovieHUD.Frame 573
  4787. Case 3: OverlayMovie.Frame 574: OverlayMovieHUD.Frame 574
  4788. Case 4: OverlayMovie.Frame 575: OverlayMovieHUD.Frame 575
  4789. End Select
  4790. Exit Sub
  4791. End If
  4792.  
  4793. If (GaffMode = TRUE) Then
  4794. Select Case GaffHit
  4795. Case 0: OverlayMovie.Frame 215: OverlayMovieHUD.Frame 215
  4796. Case 1: OverlayMovie.Frame 579: OverlayMovieHUD.Frame 579
  4797. Case 2: OverlayMovie.Frame 580: OverlayMovieHUD.Frame 580
  4798. Case 3: OverlayMovie.Frame 581: OverlayMovieHUD.Frame 581
  4799. Case 4: OverlayMovie.Frame 582: OverlayMovieHUD.Frame 582
  4800. Case 5: OverlayMovie.Frame 821: OverlayMovieHUD.Frame 821
  4801. End Select
  4802. Exit Sub
  4803. End If
  4804.  
  4805. If (SebastianMode = TRUE) Then
  4806. Select Case SebastianHit
  4807. Case 0: OverlayMovie.Frame 221: OverlayMovieHUD.Frame 221
  4808. Case 1: OverlayMovie.Frame 552: OverlayMovieHUD.Frame 552
  4809. Case 2: OverlayMovie.Frame 553: OverlayMovieHUD.Frame 553
  4810. Case 3: OverlayMovie.Frame 554: OverlayMovieHUD.Frame 554
  4811. Case 4: OverlayMovie.Frame 555: OverlayMovieHUD.Frame 555
  4812. Case 5: OverlayMovie.Frame 556: OverlayMovieHUD.Frame 556
  4813. End Select
  4814. Exit Sub
  4815. End If
  4816.  
  4817. If (TyrellMode = TRUE) Then
  4818. Select Case TyrellHit
  4819. Case 0: OverlayMovie.Frame 222: OverlayMovieHUD.Frame 222
  4820. Case 1: OverlayMovie.Frame 557: OverlayMovieHUD.Frame 557
  4821. Case 2: OverlayMovie.Frame 558: OverlayMovieHUD.Frame 558
  4822. Case 3: OverlayMovie.Frame 559: OverlayMovieHUD.Frame 559
  4823. Case 4: OverlayMovie.Frame 560: OverlayMovieHUD.Frame 560
  4824. Case 5: OverlayMovie.Frame 561: OverlayMovieHUD.Frame 561
  4825. End Select
  4826. Exit Sub
  4827. End If
  4828.  
  4829. If (ChewMode = TRUE) Then
  4830. Select Case ChewHit
  4831. Case 0: OverlayMovie.Frame 223: OverlayMovieHUD.Frame 223
  4832. Case 1: OverlayMovie.Frame 562: OverlayMovieHUD.Frame 562
  4833. Case 2: OverlayMovie.Frame 563: OverlayMovieHUD.Frame 563
  4834. Case 3: OverlayMovie.Frame 564: OverlayMovieHUD.Frame 564
  4835. Case 4: OverlayMovie.Frame 565: OverlayMovieHUD.Frame 565
  4836. Case 5: OverlayMovie.Frame 566: OverlayMovieHUD.Frame 566
  4837. End Select
  4838. Exit Sub
  4839. End If
  4840.  
  4841. If (PrisMode = TRUE) Then
  4842. Select Case PrisHit
  4843. Case 0: OverlayMovie.Frame 224: OverlayMovieHUD.Frame 224
  4844. Case 1: OverlayMovie.Frame 567: OverlayMovieHUD.Frame 567
  4845. Case 2: OverlayMovie.Frame 568: OverlayMovieHUD.Frame 568
  4846. Case 3: OverlayMovie.Frame 569: OverlayMovieHUD.Frame 569
  4847. Case 4: OverlayMovie.Frame 570: OverlayMovieHUD.Frame 570
  4848. Case 5: OverlayMovie.Frame 571: OverlayMovieHUD.Frame 571
  4849. Case 6: OverlayMovie.Frame 823: OverlayMovieHUD.Frame 823 ' retirement...
  4850. End Select
  4851. Exit Sub
  4852. End If
  4853.  
  4854. If (ZhoraMode = TRUE) Then
  4855. Select Case ZhoraHit
  4856. Case 0: OverlayMovie.Frame 225: OverlayMovieHUD.Frame 225
  4857. Case 1: OverlayMovie.Frame 586: OverlayMovieHUD.Frame 586
  4858. Case 2: OverlayMovie.Frame 587: OverlayMovieHUD.Frame 587
  4859. Case 3: OverlayMovie.Frame 588: OverlayMovieHUD.Frame 588
  4860. Case 4: OverlayMovie.Frame 589: OverlayMovieHUD.Frame 589
  4861. Case 5: OverlayMovie.Frame 590: OverlayMovieHUD.Frame 590
  4862. Case 6: OverlayMovie.Frame 456: OverlayMovieHUD.Frame 456 ' retirement...
  4863. End Select
  4864. Exit Sub
  4865. End If
  4866.  
  4867. If (ShootingMode = TRUE) Then OverlayMovie.Frame 216: OverlayMovieHUD.Frame 216: Exit Sub
  4868. If (VKMode = TRUE) Then OverlayMovie.Frame 873: OverlayMovieHUD.Frame 873: Exit Sub
  4869. If (PhotoMode = TRUE) Then OverlayMovie.Frame 874: OverlayMovieHUD.Frame 874: Exit Sub
  4870. If (LightMode.State = BulbBlink) Then OverlayMovie.Frame 872: OverlayMovieHUD.Frame 872: Exit Sub
  4871. If (LightSnakePit.State = BulbBlink) Then OverlayMovie.Frame 876: OverlayMovieHUD.Frame 876: Exit Sub
  4872.  
  4873. 'If (ShootingMode=FALSE) and (VKMode=FALSE) and (PhotoMode=FALSE) Then OverlayMovie.Frame 789: OverlayMovieHUD.Frame 789: Exit Sub
  4874. 'If (LightMode.State = BulbOff) Then OverlayMovie.Frame 788: OverlayMovieHUD.Frame 788: Exit Sub
  4875.  
  4876. Select Case RandomNumber(4)
  4877. Case 1,4: OverlayMovie.Frame 208: OverlayMovieHUD.Frame 208
  4878. Case 2: OverlayMovie.Frame 870: OverlayMovieHUD.Frame 870
  4879. Case 3: OverlayMovie.Frame 871: OverlayMovieHUD.Frame 871
  4880. End Select
  4881. End Sub
  4882.  
  4883.  
  4884.  
  4885.  
  4886. ' ****************************
  4887. ' ** **
  4888. ' ** LEFT RAMP **
  4889. ' ** **
  4890. ' ****************************
  4891.  
  4892.  
  4893. Dim BattyShot
  4894.  
  4895.  
  4896. Sub TrigLeftRamp_Hit()
  4897.  
  4898. If (ComboTimer.Enabled = TRUE) Then
  4899. ComboTimer.Set TRUE, 2500
  4900. Congrats()
  4901. End If
  4902.  
  4903. PlayMusic 7, "fx_WireRamp3"
  4904.  
  4905. If (LightRampL.State = BulbBlink) Then ' Mission Shot...
  4906.  
  4907. If (BattyMode = TRUE) Then
  4908. PlaySound "fx_Hit8"
  4909. DT_4.SolenoidPulse
  4910. LightDT.State = BulbBlink
  4911. BattyShot = BattyShot + 1
  4912. If (QuoteBusy = FALSE) Then
  4913. QuoteBusy = TRUE
  4914. Select Case BattyShot
  4915. Case 1: PlayMusic 2, "vo_MadeOf"
  4916. Case 2: PlayMusic 2, "vo_ShootStraight"
  4917. Case 3: PlayMusic 2, "vo_GetItUp"
  4918. Case 4: PlayMusic 2, "vo_StayAlive"
  4919. End Select
  4920. Else
  4921. Select Case RandomNumber(2)
  4922. Case 1: PlaySound "fx_Howl"
  4923. Case 2: PlaySound "fx_Howl2"
  4924. End Select
  4925. End If
  4926. DMD.Text = "[y1][xc][f6][bf]SHOOT BATTY"
  4927. LightLO3.State = BulbOff
  4928. LightLaneL.State = BulbOff
  4929. LightRampL.State = BulbOff
  4930. LightCentrePurge.State = BulbOff
  4931. LightRampR.State = BulbOff
  4932. LightLaneR.State = BulbOff
  4933. LightRep.State = BulbOff
  4934. If (SuperRamps = TRUE) Then
  4935. LightSeqPF.Play SeqRandom, 30, , 2000
  4936. PlaySound "fx_SuperRamp", 0.6
  4937. FlashPoliceL.Set BulbBlink, "101000", 100
  4938. FlashPoliceR.Set BulbBlink, "000101", 100
  4939. FlasherPolice1.Set BulbBlink, "101000", 100
  4940. FlasherPolice2.Set BulbBlink, "000101", 100
  4941. AllPlasOff(): PFFlashTimer.Set TRUE, 3000
  4942. AddScore(RampValue)
  4943. End If
  4944. Exit Sub
  4945. End If
  4946.  
  4947. If (SSTimer.Enabled = TRUE) Then
  4948. SSTimer.Enabled = FALSE
  4949. LightRampL.State = BulbOff
  4950. LightRampR.State = BulbOff
  4951. If (SuperRamps = TRUE) Then
  4952. LightSeqPF.Play SeqRandom, 30, , 2000
  4953. PlaySound "fx_SuperRamp"
  4954. FlashPoliceL.Set BulbBlink, "101000", 100
  4955. FlashPoliceR.Set BulbBlink, "000101", 100
  4956. FlasherPolice1.Set BulbBlink, "101000", 100
  4957. FlasherPolice2.Set BulbBlink, "000101", 100
  4958. AllPlasOff(): PFFlashTimer.Set TRUE, 3000
  4959. AddScore(RampValue)
  4960. DMD.QueueText "[xc[y3][f6][bf]SKILL SHOT $ " & FormatNumber(SSValue, 0, -1, 0, -1), deNone, 1000, FALSE
  4961. DMD.QueueText "[xc[y3][f6]SUPER RAMP $ " & FormatNumber(RampValue, 0, -1, 0, -1), deNone, 1000, TRUE
  4962. Else
  4963. PlaySound "fx_PoliceSiren"
  4964. FlashPoliceL.FlashForMs 500, 100, BulbOff
  4965. FlashPoliceR.FlashForMs 500, 100, BulbOff
  4966. FlasherPolice1.FlashForMs 500, 100, BulbOff
  4967. FlasherPolice2.FlashForMs 500, 100, BulbOff
  4968. AllPlasOff(): PFFlashTimer.Set TRUE, 500
  4969. DMD.QueueText "[xc[y3][f6][bf]SKILL SHOT $ " & FormatNumber(SSValue, 0, -1, 0, -1), deNone, 1800, TRUE
  4970. End If
  4971. SSValue = SSValue + 150: BSTime = BSTime + 1
  4972. AddScore(SSValue)
  4973. Exit Sub
  4974. End If
  4975.  
  4976. ' the final hunt shot, starts the kill. Need to hold the ball in the scoop for 7.5 seconds...
  4977. If (LeonMode = TRUE) Then
  4978. LightRampL.State = BulbOff
  4979. LeonHit = LeonHit + 1: MissionHit = MissionHit + 250
  4980. AddScore(MissionHit)
  4981. MovieTimer.Set TRUE, 100
  4982. PlayMusic 2, "vo_Mother2"
  4983.  
  4984. ' diverts the ball into the right scoop
  4985. RampSwitch.Collidable = TRUE
  4986. RampSwitch2.Collidable = FALSE
  4987.  
  4988. ' reset normal OOM stuff...
  4989. LightBlade.State = BulbBlink
  4990. LightRunner.State = BulbBlink
  4991. LightCentrePurge.State = BulbBlink ' light the kill shot...
  4992.  
  4993. KillLeon = TRUE
  4994. PlayMusic 5, "Music_BRTrack8", TRUE, 0.6, 8000
  4995. DMD.FlushQueue
  4996. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  4997. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  4998. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  4999. If (SuperRamps = TRUE) Then
  5000. LightSeqPF.Play SeqRandom, 30, , 2000
  5001. PlaySound "fx_SuperRamp", 0.5
  5002. FlashPoliceL.Set BulbBlink, "101000", 100
  5003. FlashPoliceR.Set BulbBlink, "000101", 100
  5004. FlasherPolice1.Set BulbBlink, "101000", 100
  5005. FlasherPolice2.Set BulbBlink, "000101", 100
  5006. AllPlasOff(): PFFlashTimer.Set TRUE, 3000
  5007. AddScore(RampValue)
  5008. End If
  5009. Exit Sub
  5010. End If
  5011.  
  5012. If (ChewMode = TRUE) Then
  5013. ChewHit = ChewHit + 1: MissionHit = MissionHit + 250
  5014. PlaySound "fx_Hit8"
  5015. If (QuoteBusy = FALSE) Then
  5016. QuoteBusy = TRUE
  5017. Select Case ChewHit
  5018. Case 1: PlayMusic 2, "vo_Questions"
  5019. Case 2: PlayMusic 2, "vo_JustEyes2"
  5020. Case 3: PlayMusic 2, "vo_YourEyes"
  5021. Case 4: PlayMusic 2, "vo_Smart"
  5022. Case 5: PlayMusic 2, "vo_Where"
  5023. Case 6: PlayMusic 2, "vo_BradburyHotel"
  5024. End Select
  5025. End If
  5026. LightRampL.State = BulbOff
  5027. LightRampR.State = BulbBlink
  5028. AddScore(MissionHit)
  5029. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  5030. DMD.FlushQueue
  5031. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  5032. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  5033. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  5034. MovieTimer.Set TRUE, 100
  5035. If (SuperRamps = TRUE) Then
  5036. LightSeqPF.Play SeqRandom, 30, , 2000
  5037. PlaySound "fx_SuperRamp", 0.5
  5038. FlashPoliceL.Set BulbBlink, "101000", 100
  5039. FlashPoliceR.Set BulbBlink, "000101", 100
  5040. FlasherPolice1.Set BulbBlink, "101000", 100
  5041. FlasherPolice2.Set BulbBlink, "000101", 100
  5042. AllPlasOff(): PFFlashTimer.Set TRUE, 3000
  5043. AddScore(RampValue)
  5044. End If
  5045. If (ChewHit = 6) Then
  5046. ModeActive = FALSE: ChewMode = FALSE
  5047. LightChewMain.State = BulbOn
  5048. LightRampL.State = BulbOff
  5049. StopMusic 5
  5050. MusicResume.Set TRUE, 2500
  5051. OverlayMovie.UpdateInterval = 400: OverlayMovieHUD.UpdateInterval = 400
  5052. OverlayMovie.Frame 591, 592, 591: OverlayMovieHUD.Frame 591, 592, 591
  5053. MovieTimer.Set TRUE, 2000
  5054. AssWin()
  5055. Exit Sub
  5056. End If
  5057. Exit Sub
  5058. End If
  5059. Exit Sub
  5060. End If
  5061.  
  5062. If (LightMode.State = BulbBlink) or (LightSnakePit.State = BulbOn) Then
  5063. ' diverts the ball into the right scoop
  5064. RampSwitch.Collidable = TRUE
  5065. RampSwitch2.Collidable = FALSE
  5066. End If
  5067.  
  5068. If (LightSuperRampL.State = BulbOn) Then ' Super Ramps...
  5069.  
  5070. LightSeqPF.Play SeqRandom, 30, , 2000
  5071. PlaySound "fx_SuperRamp"
  5072. FlashPoliceL.Set BulbBlink, "101000", 100
  5073. FlashPoliceR.Set BulbBlink, "000101", 100
  5074. FlasherPolice1.Set BulbBlink, "101000", 100
  5075. FlasherPolice2.Set BulbBlink, "000101", 100
  5076. AllPlasOff(): PFFlashTimer.Set TRUE, 3000
  5077. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  5078. OverlayMovie.Frame 107, 146: OverlayMovieHUD.Frame 107, 146
  5079. MovieTimer.Set TRUE, 3500
  5080.  
  5081. SuperSpin = SuperSpin + 1
  5082.  
  5083. Select Case SuperSpin
  5084. Case 1,2,3,4:
  5085. AddScore(RampValue)
  5086. DMD.QueueText "[xc[y3][f6]SUPER RAMP $ " & FormatNumber(RampValue, 0, -1, 0, -1), deNone, 1800, TRUE
  5087. Case 5:
  5088. RampValue = RampValue + 1500
  5089. AddScore(RampValue)
  5090. DMD.QueueText "[y0][xc][f3]LANDING BONUS[y11][f1][b]" & FormatNumber(RampValue, 0, -1, 0, -1), deNone, 1500, TRUE
  5091. SuperSpin = 0
  5092. End Select
  5093. Else
  5094.  
  5095. ' normal OOM shots..
  5096.  
  5097. BulbSpinner3.State = BulbOn: FlasherSpin.State = BulbOn
  5098. AllPlasOff()
  5099. LightSeqPF.Play SeqDownOn, 30, 1
  5100. 'OverlayMovie.UpdateInterval = 100: OverlayMovieHUD.UpdateInterval = 100
  5101. 'OverlayMovie.Frame 877,878,877: OverlayMovieHUD.Frame 877,878,877: MovieTimer.Set TRUE, 2000
  5102. PlaySound "fx_RampHit"
  5103. QuoteBusy = FALSE
  5104. AddScore(50)
  5105. End If
  5106. End Sub
  5107.  
  5108.  
  5109.  
  5110.  
  5111.  
  5112. ' used for COMBO shots...
  5113.  
  5114. Sub Congrats()
  5115. Combo = Combo + 1
  5116. ComboVal = 500*Combo
  5117. AddScore(ComboVal)
  5118. DMDBusy = TRUE: DMDTimer.Set TRUE, 3000
  5119. DMD.QueueText "[xc[y3][f6][bf]COMBO X " & Combo, deNone, 1000, FALSE
  5120. DMD.QueueText "[xc[y3][f6][bf]" & FormatNumber(ComboVal, 0, -1, 0, -1), deFlip, 1800, TRUE
  5121.  
  5122. OverlayMovie.UpdateInterval = 200: OverlayMovieHUD.UpdateInterval = 200
  5123. Select Case Combo
  5124. Case 1: OverlayMovie.Frame 819, 820, 819: OverlayMovieHUD.Frame 819, 820, 819: PlaySound "fx_Combo"
  5125. Case 2: OverlayMovie.Frame 824, 825, 824: OverlayMovieHUD.Frame 824, 825, 824: PlaySound "fx_Combo2"
  5126. Case 3: OverlayMovie.Frame 826, 827, 826: OverlayMovieHUD.Frame 826, 827, 826: PlaySound "fx_Combo3"
  5127. End Select
  5128.  
  5129. MovieTimer.Set TRUE, 2000
  5130.  
  5131. LightSeqGI.StopPlay
  5132. AllPlasOff(): PFFlashTimer.Set TRUE, 1000
  5133. FlasherL.FlashForMs 1000, 100, BulbOff
  5134. FlasherM.FlashForMs 1000, 100, BulbOff
  5135. Flasher1.FlashForMs 1000, 100, BulbOff
  5136.  
  5137. If (ModeActive = TRUE) Then
  5138. EffectMusic 5, FadeOutAndPause, 0, 10
  5139. Else
  5140. If (BR2049 = TRUE) Then
  5141. BR2049 = FALSE
  5142. StopMusic 5
  5143. Else
  5144. EffectMusic 1, FadeOutAndPause, 0, 10
  5145. End If
  5146. End If
  5147. MusicResume.Set TRUE, 2200
  5148. If (QuoteBusy = FALSE) and (ModeActive = FALSE) Then
  5149. QuoteBusy = TRUE
  5150. Select Case RandomNumber(4)
  5151. Case 1: PlayMusic 2, "vo_HesGood", FALSE, 1, 500
  5152. Case 2: PlayMusic 2, "vo_Genius", FALSE, 1, 500
  5153. 'Case 3: PlayMusic 2, "vo_Speciality", FALSE, 1, 500
  5154. Case 3: PlayMusic 2, "vo_Ambitious", FALSE, 1, 500
  5155. 'Case 5: PlayMusic 2, "vo_Prize", FALSE, 1, 500
  5156. Case 4: PlayMusic 2, "vo_Perfect", FALSE, 1, 500
  5157. End Select
  5158. End If
  5159. End Sub
  5160.  
  5161.  
  5162.  
  5163.  
  5164. Sub TrigLeftRamp2_Hit()
  5165. End Sub
  5166.  
  5167.  
  5168.  
  5169. ' exit to left ramp...START COMBO....
  5170.  
  5171. Sub TrigRampExit1_Hit()
  5172. RampL = FALSE
  5173. StopMusic 7
  5174. 'RampSwitch.Collidable = TRUE
  5175. 'RampSwitch2.Collidable = FALSE
  5176. FlashPoliceL.State = BulbOff
  5177. FlashPoliceR.State = BulbOff
  5178. FlasherPolice1.State = BulbOff
  5179. FlasherPolice2.State = BulbOff
  5180.  
  5181. If (ModeActive = FALSE) Then
  5182. LightRampL.Set BulbBlink, "10", 100
  5183. LightRampR.Set BulbBlink, "10", 100
  5184. LightLaneL.Set BulbBlink, "10", 100
  5185. LightLaneR.Set BulbBlink, "10", 100
  5186. End If
  5187. If (SuperRamps = FALSE) Then
  5188. BulbSpinner3.State = BulbOff: FlasherSpin.State = BulbOff
  5189. AllPlasOn()
  5190. End If
  5191. ComboTimer.Set TRUE, 2500
  5192. End Sub
  5193.  
  5194.  
  5195.  
  5196. Sub ComboTimer_Expired()
  5197. ComboTimer.Enabled = FALSE
  5198. Combo = 1
  5199. If (ModeActive = FALSE) Then
  5200. LightRampL.Set BulbOff, "10", 125
  5201. LightRampR.Set BulbOff, "10", 125
  5202. LightLaneL.Set BulbOff, "10", 125
  5203. LightLaneR.Set BulbOff, "10", 125
  5204. End If
  5205. End Sub
  5206.  
  5207.  
  5208.  
  5209. Sub TrigRampExit2_Hit()
  5210. RampL = FALSE
  5211. StopMusic 7
  5212. RampSwitch.Collidable = FALSE
  5213. RampSwitch2.Collidable = TRUE
  5214. FlashPoliceL.State = BulbOff
  5215. FlashPoliceR.State = BulbOff
  5216. FlasherPolice1.State = BulbOff
  5217. FlasherPolice2.State = BulbOff
  5218. 'If (QuoteBusy =FALSE) Then
  5219. ' QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  5220. ' Select Case RandomNumber(2)
  5221. ' Case 1: PlayMusic 2, "vo_Want"
  5222. ' Case 2: PlayMusic 2, "vo_Risk"
  5223. ' End Select
  5224. 'End If
  5225. If (SuperRamps = FALSE) Then
  5226. BulbSpinner3.State = BulbOff: FlasherSpin.State = BulbOff
  5227. AllPlasOn()
  5228. End If
  5229. End Sub
  5230.  
  5231.  
  5232. ' right ramp exit...
  5233.  
  5234. Sub Trigger3_Hit()
  5235. RampR = FALSE
  5236. StopMusic 7
  5237. FlashPoliceL.State = BulbOff
  5238. FlashPoliceR.State = BulbOff
  5239. FlasherPolice1.State = BulbOff
  5240. FlasherPolice2.State = BulbOff
  5241. If (SuperRamps = FALSE) Then
  5242. BulbSpinner3.State = BulbOff: FlasherSpin.State = BulbOff
  5243. AllPlasOn()
  5244. End If
  5245. ComboTimer.Set TRUE, 2500
  5246. End Sub
  5247.  
  5248.  
  5249.  
  5250.  
  5251. ' *****************************
  5252. ' ** **
  5253. ' ** RIGHT RAMP **
  5254. ' ** **
  5255. ' *****************************
  5256.  
  5257.  
  5258.  
  5259. Sub TrigRightRamp_Hit()
  5260.  
  5261. PlayMusic 7, "fx_WireRamp3"
  5262.  
  5263. If (ComboTimer.Enabled = TRUE) Then
  5264. ComboTimer.Set TRUE, 2500
  5265. Congrats()
  5266. End If
  5267.  
  5268. If (LightRampR.State = BulbBlink) Then ' Mission Shot...
  5269.  
  5270. If (BattyMode = TRUE) Then
  5271. PlaySound "fx_Hit8"
  5272. DT_4.SolenoidPulse
  5273. LightDT.State = BulbBlink
  5274. BattyShot = BattyShot + 1
  5275. If (QuoteBusy = FALSE) Then
  5276. QuoteBusy = TRUE
  5277. Select Case BattyShot
  5278. Case 1: PlayMusic 2, "vo_MadeOf"
  5279. Case 2: PlayMusic 2, "vo_ShootStraight"
  5280. Case 3: PlayMusic 2, "vo_GetItUp"
  5281. Case 4: PlayMusic 2, "vo_StayAlive"
  5282. End Select
  5283. Else
  5284. Select Case RandomNumber(2)
  5285. Case 1: PlaySound "fx_Howl"
  5286. Case 2: PlaySound "fx_Howl2"
  5287. End Select
  5288. End If
  5289. DMD.Text = "[y1][xc][f6][bf]SHOOT BATTY"
  5290. LightLO3.State = BulbOff
  5291. LightLaneL.State = BulbOff
  5292. LightRampL.State = BulbOff
  5293. LightCentrePurge.State = BulbOff
  5294. LightRampR.State = BulbOff
  5295. LightLaneR.State = BulbOff
  5296. LightRep.State = BulbOff
  5297. If (SuperRamps = TRUE) Then
  5298. LightSeqPF.Play SeqRandom, 30, , 2000
  5299. PlaySound "fx_SuperRamp", 0.5
  5300. FlashPoliceL.Set BulbBlink, "101000", 100
  5301. FlashPoliceR.Set BulbBlink, "000101", 100
  5302. FlasherPolice1.Set BulbBlink, "101000", 100
  5303. FlasherPolice2.Set BulbBlink, "000101", 100
  5304. AllPlasOff(): PFFlashTimer.Set TRUE, 3000
  5305. AddScore(RampValue)
  5306. End If
  5307. Exit Sub
  5308. End If
  5309.  
  5310. If (SSTimer.Enabled = TRUE) Then
  5311. SSTimer.Enabled = FALSE
  5312. LightRampL.State = BulbOff
  5313. LightRampR.State = BulbOff
  5314. If (SuperRamps = TRUE) Then
  5315. LightSeqPF.Play SeqRandom, 30, , 2000
  5316. PlaySound "fx_SuperRamp"
  5317. FlashPoliceL.Set BulbBlink, "101000", 100
  5318. FlashPoliceR.Set BulbBlink, "000101", 100
  5319. FlasherPolice1.Set BulbBlink, "101000", 100
  5320. FlasherPolice2.Set BulbBlink, "000101", 100
  5321. AllPlasOff(): PFFlashTimer.Set TRUE, 3000
  5322. AddScore(RampValue)
  5323. DMD.QueueText "[xc[y3][f6][bf]SKILL SHOT $ " & FormatNumber(SSValue, 0, -1, 0, -1), deNone, 1000, FALSE
  5324. DMD.QueueText "[xc[y3][f6]SUPER RAMP $ " & FormatNumber(RampValue, 0, -1, 0, -1), deNone, 1000, TRUE
  5325. Else
  5326. PlaySound "fx_PoliceSiren"
  5327. FlashPoliceL.FlashForMs 500, 100, BulbOff
  5328. FlashPoliceR.FlashForMs 500, 100, BulbOff
  5329. FlasherPolice1.FlashForMs 500, 100, BulbOff
  5330. FlasherPolice2.FlashForMs 500, 100, BulbOff
  5331. AllPlasOff(): PFFlashTimer.Set TRUE, 500
  5332. DMD.QueueText "[xc[y3][f6][bf]SKILL SHOT $ " & FormatNumber(SSValue, 0, -1, 0, -1), deNone, 1800, TRUE
  5333. End If
  5334. SSValue = SSValue + 150: BSTime = BSTime + 1
  5335. AddScore(SSValue)
  5336. Exit Sub
  5337. End If
  5338.  
  5339. If (PrisMode = TRUE) Then
  5340. LightRampR.State = BulbOff
  5341. PrisHit = PrisHit + 1: MissionHit = MissionHit + 500
  5342. AddScore(MissionHit)
  5343. DMD.FlushQueue
  5344. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  5345. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  5346. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  5347. PlaySound "fx_Hit8"
  5348. PlayMusic 5, "Music_BRTrack8", TRUE, 0.6
  5349. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_LookBeautiful"
  5350. MovieTimer.Set TRUE, 100
  5351. LightCentrePurge.State = BulbBlink
  5352. If (SuperRamps = TRUE) Then
  5353. LightSeqPF.Play SeqRandom, 30, , 2000
  5354. PlaySound "fx_SuperRamp", 0.5
  5355. FlashPoliceL.Set BulbBlink, "101000", 100
  5356. FlashPoliceR.Set BulbBlink, "000101", 100
  5357. FlasherPolice1.Set BulbBlink, "101000", 100
  5358. FlasherPolice2.Set BulbBlink, "000101", 100
  5359. AllPlasOff(): PFFlashTimer.Set TRUE, 3000
  5360. AddScore(RampValue)
  5361. End If
  5362. Exit Sub
  5363. End If
  5364.  
  5365. If (ChewMode = TRUE) Then
  5366. ChewHit = ChewHit + 1: MissionHit = MissionHit + 250
  5367. PlaySound "fx_Hit8"
  5368.  
  5369. If (QuoteBusy = FALSE) Then
  5370. QuoteBusy = TRUE
  5371. Select Case ChewHit
  5372. Case 1: PlayMusic 2, "vo_Questions"
  5373. Case 2: PlayMusic 2, "vo_JustEyes2"
  5374. Case 3: PlayMusic 2, "vo_YourEyes"
  5375. Case 4: PlayMusic 2, "vo_Smart"
  5376. Case 5: PlayMusic 2, "vo_Where"
  5377. Case 6: PlayMusic 2, "vo_BradburyHotel"
  5378. End Select
  5379. End If
  5380.  
  5381. If (SuperRamps = TRUE) Then
  5382. LightSeqPF.Play SeqRandom, 30, , 2000
  5383. PlaySound "fx_SuperRamp", 0.5
  5384. FlashPoliceL.Set BulbBlink, "101000", 100
  5385. FlashPoliceR.Set BulbBlink, "000101", 100
  5386. FlasherPolice1.Set BulbBlink, "101000", 100
  5387. FlasherPolice2.Set BulbBlink, "000101", 100
  5388. AllPlasOff(): PFFlashTimer.Set TRUE, 3000
  5389. AddScore(RampValue)
  5390. End If
  5391.  
  5392. LightRampR.State = BulbOff
  5393. LightRampL.State = BulbBlink
  5394. AddScore(MissionHit)
  5395. DMD.FlushQueue
  5396. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  5397. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  5398. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  5399. MovieTimer.Set TRUE, 100
  5400. If (ChewHit = 6) Then
  5401. ModeActive = FALSE: ChewMode = FALSE
  5402. LightChewMain.State = BulbOn
  5403. LightRampL.State = BulbOff
  5404. StopMusic 5
  5405. MusicResume.Set TRUE, 2500
  5406. OverlayMovie.UpdateInterval = 400: OverlayMovieHUD.UpdateInterval = 400
  5407. OverlayMovie.Frame 591, 592, 591: OverlayMovieHUD.Frame 591, 592, 591
  5408. MovieTimer.Set TRUE, 2000
  5409. AssWin()
  5410. Exit Sub
  5411. End If
  5412. Exit Sub
  5413. End If
  5414.  
  5415. Exit Sub
  5416. End If
  5417.  
  5418. If (LightSuperRampR.State = BulbOn) Then
  5419.  
  5420. LightSeqPF.Play SeqRandom, 30, , 2000
  5421. PlaySound "fx_SuperRamp"
  5422. FlashPoliceL.Set BulbBlink, "101000", 100
  5423. FlashPoliceR.Set BulbBlink, "000101", 100
  5424. FlasherPolice1.Set BulbBlink, "101000", 100
  5425. FlasherPolice2.Set BulbBlink, "000101", 100
  5426. AllPlasOff(): PFFlashTimer.Set TRUE, 3000
  5427. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  5428. OverlayMovie.Frame 107, 146: OverlayMovieHUD.Frame 107, 146
  5429. MovieTimer.Set TRUE, 3500
  5430.  
  5431. SuperSpin = SuperSpin + 1
  5432.  
  5433. Select Case SuperSpin
  5434. Case 1,2,3,4:
  5435. AddScore(RampValue)
  5436. DMD.QueueText "[xc[y3][f6]SUPER RAMP $ " & FormatNumber(RampValue, 0, -1, 0, -1), deNone, 1800, TRUE
  5437. Case 5:
  5438. RampValue = RampValue + 1500
  5439. AddScore(RampValue)
  5440. PlaySound "fx_SpinnerFlyBy4", 0.6
  5441. DMD.QueueText "[y0][xc][f3]LANDING BONUS[y11][f1][b]" & FormatNumber(RampValue, 0, -1, 0, -1), deNone, 2000, TRUE
  5442. SuperSpin = 0
  5443. End Select
  5444. Else
  5445.  
  5446. If (ModeActive = TRUE) Then
  5447. BulbSpinner3.State = BulbOn: FlasherSpin.State = BulbOn
  5448. AllPlasOff()
  5449. LightSeqPF.Play SeqDownOn, 30, 1
  5450. PlaySound "fx_RampHit2"
  5451. Exit Sub
  5452. End If
  5453.  
  5454. ' here, I'm going to add a string of dialogue from different encouters Deckard has in the movie
  5455. ' starting with the brief from Bryant, then meeting Rebecca....and so on.
  5456. ' these will play OOM and each ramp shot increases in value.
  5457.  
  5458. 'OverlayMovie.Frame 233: OverlayMovieHUD.Frame 233: MovieTimer.Set TRUE, 2000
  5459.  
  5460. RampScore = RampScore + 25
  5461. AddScore(RampScore)
  5462. DMD.QueueText "[xc[y3][f6]RAMP $ " & FormatNumber(RampScore, 0, -1, 0, -1), deNone, 1500, TRUE
  5463. If (QuoteBusy = FALSE) and (BattyMode = FALSE) Then
  5464. QuoteBusy = TRUE
  5465. RampHit = RampHit + 1
  5466. Select Case RampHit
  5467. Case 1: PlayMusic 2, "vo_SkinJobs": OverlayMovie.Frame 885: OverlayMovieHUD.Frame 885: MovieTimer.Set TRUE, 2000
  5468. Case 2: PlayMusic 2, "vo_SpotThem": OverlayMovie.Frame 885: OverlayMovieHUD.Frame 885: MovieTimer.Set TRUE, 2000
  5469. Case 3: PlayMusic 2, "vo_JumpedShuttle": OverlayMovie.Frame 885: OverlayMovieHUD.Frame 885: MovieTimer.Set TRUE, 2000
  5470. Case 4: PlayMusic 2, "vo_CopyHumans": OverlayMovie.Frame 885: OverlayMovieHUD.Frame 885: MovieTimer.Set TRUE, 2000
  5471. Case 5: PlayMusic 2, "vo_FailSafe": OverlayMovie.Frame 885: OverlayMovieHUD.Frame 885: MovieTimer.Set TRUE, 2000
  5472. Case 6: PlayMusic 2, "vo_Risk"
  5473. Case 7: PlayMusic 2, "vo_Want"
  5474. Case 8: PlayMusic 2, "vo_Benefit"
  5475. Case 9: PlayMusic 2, "vo_NotMyProblem"
  5476. Case 10: PlayMusic 2, "vo_Mistake"
  5477. Case 11: PlayMusic 2, "vo_ThinkReplicant"
  5478. Case 12: PlayMusic 2, "vo_Implants"
  5479. Case 13: PlayMusic 2, "vo_Files"
  5480. RampHit = 0
  5481. End Select
  5482. Else
  5483. If (RampHit = 8) Then RampHit = 0 ' repeat for now...
  5484. AllPlasOff(): PFFlashTimer.Set TRUE, 1000
  5485. Flasher1.FlashForMs 1000, 1000, BulbOff
  5486. QuoteBusy = FALSE
  5487. PlaySound "fx_RampHit3"
  5488. End If
  5489. End If
  5490. End Sub
  5491.  
  5492.  
  5493.  
  5494. Dim RampScore
  5495.  
  5496.  
  5497.  
  5498. ' ***********************
  5499. ' ** **
  5500. ' ** PURGE **
  5501. ' ** **
  5502. ' ***********************
  5503.  
  5504. ' complete the left and right targets to light the centre target. Hit this to activate the centre lane
  5505. ' purge kicker. Hit the lane to drop the ball into the kicker and start PURGE.
  5506.  
  5507. ' The spinner will rise into the air and ramp will be activated for a limited time for SUPER RAMPS.
  5508.  
  5509. ' When the spinner decends, SUPER RAMPS ends.
  5510.  
  5511. ' 1st time Super Ramps - both ramps are lit for a limited time
  5512. ' 2nd time Super Ramps - left and right alterative shots
  5513. ' 3rd time Super Ramps - one ramp at a time, timed rotation
  5514.  
  5515.  
  5516. Sub TgtBlade_Hit()
  5517.  
  5518. If (SSTimer.Enabled = TRUE) Then
  5519. SSTimer.Set TRUE, 100
  5520. End If
  5521.  
  5522. If (LightBlade.State = BulbBlink) Then
  5523. LightBlade.State = BulbOn: CheckBLADERUNNER()
  5524. PlaySound "fx_12"
  5525. Else
  5526. 'PlaySound "fx_Fizz"
  5527. LightBlade.FlashForMs 400, 200, BulbOn
  5528. AddScore(5)
  5529. End If
  5530. End Sub
  5531.  
  5532.  
  5533.  
  5534. Sub TgtRunner_Hit()
  5535.  
  5536. If (SSTimer.Enabled = TRUE) Then
  5537. SSTimer.Set TRUE, 100
  5538. End If
  5539.  
  5540. If (LightRunner.State = BulbBlink) Then
  5541. LightRunner.State = BulbOn: CheckBLADERUNNER()
  5542. PlaySound "fx_13"
  5543. Else
  5544. 'PlaySound "fx_Fizz"
  5545. LightRunner.FlashForMs 400, 200, BulbOn
  5546. AddScore(5)
  5547. End If
  5548. set LastSwitchHit = TgtRunner
  5549. End Sub
  5550.  
  5551.  
  5552.  
  5553. Sub CheckBLADERUNNER()
  5554. If (LightRunner.State=BulbOn) and (LightBlade.State=BulbOn) Then
  5555. LightCentre.State = BulbBlink
  5556. 'If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_BladeRunner"
  5557. AddScore(75)
  5558. Else
  5559. AddScore(25)
  5560. End If
  5561. End Sub
  5562.  
  5563.  
  5564.  
  5565.  
  5566.  
  5567. Sub TgtCentre_Hit()
  5568.  
  5569. If (SSTimer.Enabled = TRUE) Then
  5570. SSTimer.Set TRUE, 100
  5571. End If
  5572.  
  5573. If (LightCentrePurge.State = BulbBlink) Then ' any MISSION shot...the KILL SHOT for Leon and Zhora...
  5574.  
  5575. If (BattyMode = TRUE) Then
  5576. PlaySound "fx_GunShotKill": AddScore(1000)
  5577. FlasherM.FlashForMs 400, 400, BulbOff
  5578. AllPlasOff(): PFFlashTimer.Set TRUE, 400
  5579. BattyShot = BattyShot + 1
  5580. If (QuoteBusy = FALSE) Then
  5581. QuoteBusy = TRUE
  5582. Select Case BattyShot
  5583. Case 5: PlayMusic 2, "vo_CantPlay"
  5584. Case 6: PlayMusic 2, "vo_GoToHell"
  5585. Case 7: PlayMusic 2, "vo_MyTurn", FALSE, 1, 1000
  5586. LightCentrePurge.State = BulbOff
  5587. LightMode.State = BulbBlink ' light the final shot...
  5588. End Select
  5589. Else
  5590. Select Case RandomNumber(2)
  5591. Case 1: PlaySound "fx_Howl"
  5592. Case 2: PlaySound "fx_Howl2"
  5593. End Select
  5594. End If
  5595. DMD.QueueText "[y1][xc][f6][bf]MISSION SHOT", deNone, 1500, TRUE
  5596. LightLO3.State = BulbOff
  5597. LightLaneL.State = BulbOff
  5598. LightRampL.State = BulbOff
  5599. LightRampR.State = BulbOff
  5600. LightLaneR.State = BulbOff
  5601. LightRep.State = BulbOff
  5602. Exit Sub
  5603. End If
  5604.  
  5605. If (LeonMode = TRUE) Then
  5606. If (KillLeon = TRUE) Then
  5607. LeonHit = LeonHit + 1: MissionHit = MissionHit + 500
  5608. AddScore(MissionHit)
  5609. Select Case LeonHit
  5610. Case 6:
  5611. If (QuoteBusy = FALSE) Then
  5612. QuoteBusy = TRUE: PlaySound "fx_Hit8"
  5613. Select Case RandomNumber(4)
  5614. Case 1: PlayMusic 2, "vo_MyBirthday"
  5615. Case 2: PlayMusic 2, "vo_WakeUp"
  5616. Case 3: PlayMusic 2, "vo_Itch"
  5617. Case 4: PlayMusic 2, "vo_LiveInFear"
  5618. End Select
  5619. Else
  5620. FlasherM.FlashForMs 600, 600, BulbOff
  5621. PlaySound "fx_GunShot2"
  5622. End If
  5623. DMD.FlushQueue
  5624. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  5625. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  5626. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  5627. Case 7:
  5628. FlasherM.FlashForMs 800, 800, BulbOff
  5629. AllPlasOff(): PFFlashTimer.Set TRUE, 800
  5630. LightSeqPF.UpdateInterval = 5: LightSeqPF.Play SeqCircleOutOn, 25, 1
  5631. PlaySound "fx_GunShotKill"
  5632. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  5633. OverlayMovie.Frame 634, 667: OverlayMovieHUD.Frame 634, 667
  5634. MovieTimer.Set TRUE, 3500
  5635. ModeActive = FALSE: LeonMode = FALSE
  5636. LightLeonMain.State = BulbOn
  5637. LightCentrePurge.State = BulbOff
  5638. StopMusic 5: MusicResume.Set TRUE, 2500
  5639. AssWin()
  5640. If (QuoteBusy = FALSE) Then
  5641. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 4000
  5642. Select Case RandomNumber(3)
  5643. Case 1: PlayMusic 2, "vo_Speciality", FALSE, 1, 2000
  5644. Case 2: PlayMusic 2, "vo_DedicatedMan", FALSE, 1, 2000
  5645. Case 3: PlayMusic 2, "vo_Prize", FALSE, 1, 2000
  5646. End Select
  5647. End If
  5648. End Select
  5649. Else
  5650. PlaySound "fx_Hit8"
  5651. LeonHit = LeonHit + 1: MissionHit = MissionHit + 250
  5652. AddScore(MissionHit)
  5653. DMD.FlushQueue
  5654. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  5655. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  5656. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  5657. MovieTimer.Set TRUE, 100
  5658. Select Case LeonHit
  5659. Case 3:
  5660. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_ItsATest"
  5661. Case 4:
  5662. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Query"
  5663. LightCentrePurge.State = BulbOff
  5664. LightRampL.State = BulbBlink
  5665. End Select
  5666. End If
  5667. Exit Sub
  5668. End If
  5669.  
  5670. ' shoot Zhora 3 times to finish the mode...
  5671. If (ZhoraMode = TRUE) Then
  5672. ZhoraHit = ZhoraHit + 1: MissionHit = MissionHit + 500
  5673. AddScore(MissionHit)
  5674. DMD.FlushQueue
  5675. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  5676. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  5677. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  5678. Select Case ZhoraHit
  5679. Case 7:
  5680. PlaySound "fx_GunShot2": AddScore(110)
  5681. FlasherM.FlashForMs 400, 400, BulbOff
  5682. AllPlasOff(): PFFlashTimer.Set TRUE, 400
  5683. Case 8:
  5684. FlasherM.FlashForMs 800, 800, BulbOff
  5685. AllPlasOff(): PFFlashTimer.Set TRUE, 800
  5686. LightSeqPF.UpdateInterval = 5: LightSeqPF.Play SeqDownOn, 25, 1
  5687. PlaySound "fx_GunShotKill3"
  5688. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  5689. OverlayMovie.Frame 600, 633: OverlayMovieHUD.Frame 600, 633
  5690. MovieTimer.Set TRUE, 3500
  5691. ModeActive = FALSE: ZhoraMode = FALSE
  5692. LightZhoraMain.State = BulbOn
  5693. LightCentrePurge.State = BulbOff
  5694. StopMusic 5: MusicResume.Set TRUE, 2500
  5695. AssWin()
  5696. If (QuoteBusy = FALSE) Then
  5697. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 4000
  5698. Select Case RandomNumber(3)
  5699. Case 1: PlayMusic 2, "vo_Speciality", FALSE, 1, 2000
  5700. Case 2: PlayMusic 2, "vo_DedicatedMan", FALSE, 1, 2000
  5701. Case 3: PlayMusic 2, "vo_Prize", FALSE, 1, 2000
  5702. End Select
  5703. End If
  5704. End Select
  5705. Exit Sub
  5706. End If
  5707.  
  5708. ' kill Pris...
  5709.  
  5710. If (PrisMode = TRUE) Then
  5711. PrisHit = PrisHit + 1: MissionHit = MissionHit + 500
  5712. AddScore(MissionHit)
  5713. DMD.FlushQueue
  5714. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  5715. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  5716. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  5717. Select Case PrisHit
  5718. Case 7:
  5719. PlaySound "fx_GunShot2": AddScore(110)
  5720. FlasherM.FlashForMs 400, 400, BulbOff
  5721. AllPlasOff(): PFFlashTimer.Set TRUE, 400
  5722. Case 8:
  5723. FlasherM.FlashForMs 800, 800, BulbOff
  5724. AllPlasOff(): PFFlashTimer.Set TRUE, 800
  5725. LightSeqPF.UpdateInterval = 5: LightSeqPF.Play SeqDownOn, 25, 1
  5726. PlaySound "fx_GunShotKill2"
  5727. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  5728. OverlayMovie.Frame 668, 695: OverlayMovieHUD.Frame 668, 695
  5729. MovieTimer.Set TRUE, 3500
  5730. LightCentrePurge.State = BulbOff
  5731. ModeActive = FALSE: PrisMode = FALSE
  5732. StopMusic 5: MusicResume.Set TRUE, 2500
  5733. AssWin()
  5734. If (QuoteBusy = FALSE) Then
  5735. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 4000
  5736. Select Case RandomNumber(3)
  5737. Case 1: PlayMusic 2, "vo_Speciality", FALSE, 1, 2000
  5738. Case 2: PlayMusic 2, "vo_DedicatedMan", FALSE, 1, 2000
  5739. Case 3: PlayMusic 2, "vo_Prize", FALSE, 1, 2000
  5740. End Select
  5741. End If
  5742. End Select
  5743. Exit Sub
  5744. End If
  5745. Exit Sub
  5746. End If
  5747.  
  5748. If (LightCentre.State = BulbBlink) Then
  5749. LightCentre.State = BulbOn
  5750. AddScore(75)
  5751.  
  5752. If (SuperRamps = TRUE) Then
  5753. 'SRTime = SRTime + 10
  5754. DMD.QueueText "[y0][xc][f3]TIME EXTENDED[y11][f1][bf]SUPER RAMP TIME = " & SRTime, deNone, 1500, TRUE
  5755. FlasherM.FlashForMs 300, 100, BulbOff
  5756. 'LightBlade.State = BulbBlink
  5757. 'LightRunner.State = BulbBlink
  5758. 'PlaySound "fx_DoopOpen"
  5759. PlaySound "fx_BumpHit"
  5760. LightSeqPF.Play SeqBlinking, , 1, 200
  5761. Exit Sub
  5762. End If
  5763.  
  5764. If (QuoteBusy = FALSE) Then
  5765. PlaySound "fx_DoorOpen"
  5766. 'PlayMusic 2, "vo_YouBladeRunner"
  5767. Else
  5768. PlaySound "fx_Hit1"
  5769. End If
  5770. TakeOffTimer.Set TRUE, 5600
  5771. If (BattyMode = FALSE) Then PlayMusic 6, "fx_Alarm3"
  5772. MagnetActive = TRUE
  5773. FlasherM.FlashForMs 500, 100, BulbOff
  5774. LightPurge1.State = BulbBlink
  5775. LightPurge2.State = BulbBlink
  5776. Else
  5777. 'FlasherM.FlashForMs 250, 250, BulbOff
  5778. 'PlaySound "fx_Fizz"
  5779. LightCentre.FlashForMs 300, 150, BulbOff
  5780. AddScore(5)
  5781. End If
  5782. set LastSwitchHit = TgtCentre
  5783. End Sub
  5784.  
  5785.  
  5786.  
  5787. Sub TakeOffTimer_Expired()
  5788. TakeOffTimer.Enabled = FALSE
  5789. PlaySound "fx_Buzzer"
  5790. FlasherM.FlashForMs 210, 75, BulbOff
  5791. AllPlasOff(): PFFlashTimer.Set TRUE, 210
  5792. If (BattyMode = FALSE) Then StopMusic 6 ' channel is used for the rain fx...
  5793. MagnetActive = FALSE
  5794. LightPurge1.State = BulbOff
  5795. LightPurge2.State = BulbOff
  5796. LightBlade.State = BulbBlink
  5797. LightRunner.State = BulbBlink
  5798. LightCentre.State = BulbOff
  5799. End Sub
  5800.  
  5801.  
  5802.  
  5803.  
  5804. ' *****************************
  5805. ' ** **
  5806. ' ** CENTRE LANE **
  5807. ' ** **
  5808. ' *****************************
  5809.  
  5810.  
  5811. Sub LeftPre_Hit()
  5812. set LastSwitchHit = LeftPre
  5813. End Sub
  5814.  
  5815.  
  5816. Sub RightPre_Hit()
  5817. set LastSwitchHit = RightPre
  5818. End Sub
  5819.  
  5820.  
  5821. Sub TrigCentreLane_Hit()
  5822.  
  5823. If (BattyMode = TRUE) and (LightLaneL.State = BulbBlink) Then
  5824. PlaySound "fx_Hit8"
  5825. DT_4.SolenoidPulse
  5826. LightDT.State = BulbBlink
  5827.  
  5828. BattyShot = BattyShot + 1
  5829. If (QuoteBusy = FALSE) Then
  5830. QuoteBusy = TRUE
  5831. Select Case BattyShot
  5832. Case 1: PlayMusic 2, "vo_MadeOf"
  5833. Case 2: PlayMusic 2, "vo_ShootStraight"
  5834. Case 3: PlayMusic 2, "vo_GetItUp"
  5835. Case 4: PlayMusic 2, "vo_StayAlive"
  5836. End Select
  5837. Else
  5838. Select Case RandomNumber(2)
  5839. Case 1: PlaySound "fx_Howl"
  5840. Case 2: PlaySound "fx_Howl2"
  5841. End Select
  5842. End If
  5843. DMD.Text = "[y1][xc][f6][bf]SHOOT BATTY"
  5844. LightLO3.State = BulbOff
  5845. LightLaneL.State = BulbOff
  5846. LightRampL.State = BulbOff
  5847. LightCentrePurge.State = BulbOff
  5848. LightRampR.State = BulbOff
  5849. LightLaneR.State = BulbOff
  5850. LightRep.State = BulbOff
  5851. Exit Sub
  5852. End If
  5853.  
  5854. If (ComboTimer.Enabled = TRUE) Then
  5855. ComboTimer.Set TRUE, 2500
  5856. Congrats()
  5857. End If
  5858.  
  5859. ' Sebastian Mode: Make 3 centre loop shots to start...
  5860.  
  5861. If (SebastianMode = TRUE) and (LightLaneL.State = BulbBlink) Then
  5862. SebastianHit = SebastianHit + 1: MissionHit = MissionHit + 250
  5863. AddScore(MissionHit)
  5864. DMD.FlushQueue
  5865. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  5866. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  5867. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  5868. If (QuoteBusy = FALSE) Then
  5869. Select Case SebastianHit
  5870. Case 1: PlayMusic 2, "vo_HelpUs"
  5871. Case 2: PlayMusic 2, "vo_HelpSoon"
  5872. Case 3:
  5873. Select Case RandomNumber(2)
  5874. Case 1: PlayMusic 2, "vo_HelpedUs"
  5875. Case 2: PlayMusic 2, "vo_NeedYou"
  5876. End Select
  5877. End Select
  5878. End If
  5879. LightSeqPF.Play SeqBlinking, , 1, 200
  5880. PlaySound "fx_Hit8"
  5881. MovieTimer.Set TRUE, 100
  5882. If (SebastianHit = 3) Then
  5883. LightLaneL.State = BulbOff
  5884. LightLaneR.State = BulbOff
  5885. LightTyrell.State = BulbOn
  5886. LightElevator.State = BulbOn
  5887. LightLO3.State = BulbBlink
  5888. End If
  5889. Exit Sub
  5890. End If
  5891.  
  5892. If (GaffMode = TRUE) and (LightLaneL.State = BulbBlink) Then
  5893. AllPlasOff(): PFFlashTimer.Set TRUE, 400
  5894. FlasherM.FlashForMs 400, 100, BulbOff
  5895. If (LastSwitchHit.Name = "LeftPre") Then
  5896. LightSeqPF.UpdateInterval = 5
  5897. LightSeqPF.Play SeqRightOn, 30, 1
  5898. Else
  5899. LightSeqPF.UpdateInterval = 5
  5900. LightSeqPF.Play SeqLeftOn, 30, 1
  5901. End If
  5902. GaffHit = GaffHit + 1: MissionHit = MissionHit + 250
  5903. PlaySound "fx_Hit8"
  5904. AddScore(MissionHit)
  5905. DMD.FlushQueue
  5906. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  5907. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  5908. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  5909. Select Case GaffHit
  5910. Case 1:
  5911. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_GaffTalk": MovieTimer.Set TRUE, 100
  5912. Case 2:
  5913. If (QuoteBusy = FALSE) Then PlayMusic 2, "vo_YouBladeRunner": MovieTimer.Set TRUE, 100
  5914. Case 3:
  5915. PlayMusic 4, "vo_PoliceRadio"
  5916. OverlayMovie.UpdateInterval = 64: OverlayMovieHUD.UpdateInterval = 64
  5917. OverlayMovie.Frame 252, 330: OverlayMovieHUD.Frame 252, 330
  5918. MovieTimer.Set TRUE, 5000
  5919. PlaySound "fx_SpinnerFlyBy"
  5920. Case 4:
  5921. PlayMusic 4, "vo_PoliceRadio"
  5922. OverlayMovie.UpdateInterval = 66: OverlayMovieHUD.UpdateInterval = 66
  5923. OverlayMovie.Frame 457, 487: OverlayMovieHUD.Frame 457, 487
  5924. MovieTimer.Set TRUE, 1800
  5925. Case 5:
  5926. PlaySound "fx_SpinnerFlyBy4", 0.6
  5927. OverlayMovie.UpdateInterval = 66: OverlayMovieHUD.UpdateInterval = 66
  5928. OverlayMovie.Frame 488, 551: OverlayMovieHUD.Frame 488, 551
  5929. MovieTimer.Set TRUE, 4000
  5930. Case 6:
  5931. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_MansJob2"
  5932. GaffMode = FALSE
  5933. LightLaneL.State = BulbOff
  5934. LightLaneR.State = BulbOff
  5935. ModeActive = FALSE
  5936. StopMusic 5: MusicResume.Set TRUE, 2000
  5937. OverlayMovie.UpdateInterval = 400: OverlayMovieHUD.UpdateInterval = 400
  5938. OverlayMovie.Frame 591, 592, 591: OverlayMovieHUD.Frame 591, 592, 591
  5939. MovieTimer.Set TRUE, 2000
  5940. AssWin()
  5941. End Select
  5942. Exit Sub
  5943. End If
  5944.  
  5945. If (MagnetActive = TRUE) Then
  5946. MagnetActive = FALSE: LaneWall.Collidable = FALSE
  5947. Magnet.Collidable = TRUE
  5948. Exit Sub
  5949. End If
  5950.  
  5951. If (LastSwitchHit.Name = "LeftPre") Then
  5952. LightSeqPF.UpdateInterval = 5
  5953. LightSeqPF.Play SeqRightOn, 30, 1
  5954. Else
  5955. LightSeqPF.UpdateInterval = 5
  5956. LightSeqPF.Play SeqLeftOn, 30, 1
  5957. End If
  5958.  
  5959. AllPlasOff(): PFFlashTimer.Set TRUE, 400
  5960. FlasherM.FlashForMs 400, 100, BulbOff
  5961. PlaySound "fx_SpinnerFlyBy3"
  5962. LightTyrell.State = BulbOn
  5963. 'PlaySound "fx_Whoosh2"
  5964. OverlayMovie.UpdateInterval = 100: OverlayMovieHUD.UpdateInterval = 100
  5965. OverlayMovie.Frame 877,878,877: OverlayMovieHUD.Frame 877,878,877: MovieTimer.Set TRUE, 1000
  5966. AddScore(10)
  5967. RampValue = RampValue + 25
  5968. DMD.QueueText "[y0][xc][f3]+ SUPER VALUE[y11][f1]SUPER RAMP VALUE: $ " & FormatNumber(RampValue, 0, -1, 0, -1), deNone, 1800, TRUE
  5969. End Sub
  5970.  
  5971.  
  5972.  
  5973.  
  5974.  
  5975. Sub KickerLane_Hit()
  5976. PlaySound "fx_SolenoidHit"
  5977. LightPurge1.State = BulbOff
  5978. LightPurge2.State = BulbOff
  5979. LightSuperRampL.FlashForMs 4000, 125, BulbOn
  5980. LightSuperRampR.FlashForMs 4000, 125, BulbOn
  5981. Purge = TRUE
  5982. StopMusic 6: TakeOffTimer.Enabled = FALSE
  5983. MoveSpinner_Expired()
  5984. IgnoreHit = TRUE
  5985. Magnet.Collidable = FALSE
  5986. LaneWall.Collidable = TRUE
  5987. PreKick.Set TRUE, 5000
  5988. End Sub
  5989.  
  5990.  
  5991.  
  5992.  
  5993. Sub SuperRampsTimer_Expired()
  5994. SRTime = SRTime - 1
  5995. If (SRTime = 0) Then
  5996. SuperRampsTimer.Enabled = FALSE
  5997. SuperRamps = FALSE
  5998. LightSuperRampL.State = BulbOff
  5999. LightSuperRampR.State = BulbOff
  6000. LightCentre.State = BulbOff
  6001. LightBlade.State = BulbBlink
  6002. LightRunner.State = BulbBlink
  6003. RampValue = AdjRampValue ' reset the ramp base value...
  6004. End If
  6005. End Sub
  6006.  
  6007.  
  6008.  
  6009.  
  6010. ' ***************************
  6011. ' ** **
  6012. ' ** LEFT LANE **
  6013. ' ** **
  6014. ' ***************************
  6015.  
  6016. ' Leads to the bumpers...
  6017.  
  6018.  
  6019. Sub TrigLO_Hit()
  6020. If (LastSwitchHit.Name = "TrigLO") Then Exit Sub
  6021. 'PlaySound "fx_Whoosh"
  6022. PlaySound "fx_17"
  6023.  
  6024. If (BattyMode = TRUE) and (LightLO3.State = BulbBlink) Then
  6025. PlaySound "fx_Hit8"
  6026. DT_4.SolenoidPulse
  6027. 'DT_2.SolenoidPulse
  6028. 'DT_3.SolenoidPulse
  6029. 'DT_4.SolenoidPulse
  6030. LightDT.State = BulbBlink
  6031.  
  6032. BattyShot = BattyShot + 1
  6033. If (QuoteBusy = FALSE) Then
  6034. QuoteBusy = TRUE
  6035. Select Case BattyShot
  6036. Case 1: PlayMusic 2, "vo_MadeOf"
  6037. Case 2: PlayMusic 2, "vo_ShootStraight"
  6038. Case 3: PlayMusic 2, "vo_GetItUp"
  6039. Case 4: PlayMusic 2, "vo_StayAlive"
  6040. End Select
  6041. Else
  6042. Select Case RandomNumber(2)
  6043. Case 1: PlaySound "fx_Howl"
  6044. Case 2: PlaySound "fx_Howl2"
  6045. End Select
  6046. End If
  6047. DMD.Text = "[y1][xc][f6][bf]SHOOT BATTY"
  6048. LightLO3.State = BulbOff
  6049. LightLaneL.State = BulbOff
  6050. LightRampL.State = BulbOff
  6051. LightCentrePurge.State = BulbOff
  6052. LightRampR.State = BulbOff
  6053. LightLaneR.State = BulbOff
  6054. LightRep.State = BulbOff
  6055. Exit Sub
  6056. End If
  6057.  
  6058. If (LightSuperPops.State = BulbOn) Then ' priority, allow the ball to reach the bumpers....
  6059. PlayMusic 4, "fx_BackGround2", FALSE, 0.6
  6060. Exit Sub
  6061. End If
  6062.  
  6063. If (LightTyrell.State = BulbOn) Then' divert ball into top lanes to access Tyrell Tower...
  6064. PopUp2.SolenoidPulse(4000)
  6065. If (LeonMode = TRUE) Then
  6066. Exit Sub
  6067. End If
  6068. If (SebastianMode = TRUE) and (SebastianHit = 3) Then
  6069. PlayMusic 4, "vo_SebastianClearance", FALSE, 0.6
  6070. Exit Sub
  6071. End If
  6072. 'MusicResume.Set TRUE, 5000
  6073. If (LightLO3.State = BulbOff) Then ' not a mission shot, so ok to play...
  6074. Select Case RandomNumber(10)
  6075. Case 1: PlayMusic 4, "fx_Background", FALSE, 0.6: AtariSignOn()
  6076. Case 2: PlayMusic 4, "fx_Background3", FALSE, 0.4: AtariSignOn()
  6077. Case 3: PlayMusic 4, "fx_Background4", FALSE, 0.4
  6078. Case 4: PlayMusic 4, "fx_Background5", FALSE, 0.4: AtariSignOn()
  6079. Case 5: PlayMusic 4, "fx_Background7", FALSE, 0.6
  6080. Case 6: PlayMusic 4, "fx_Background8", FALSE, 0.5
  6081. OverlayMovie.UpdateInterval = 66: OverlayMovieHUD.UpdateInterval = 66
  6082. OverlayMovie.Frame 790, 818: OverlayMovieHUD.Frame 790, 818
  6083. MovieTimer.Set TRUE, 1800
  6084. Case 7:
  6085. If (QuoteBusy = FALSE) Then
  6086. PlayMusic 4, "vo_SectorClosed", FALSE, 0.6
  6087. AllPlasOff(): PFFlashTimer.Set TRUE, 2000
  6088. FlasherPolice1.Set BulbBlink, "101000", 50
  6089. FlasherPolice2.Set BulbBlink, "000101", 50
  6090. PoliceFlashOff.Set TRUE, 2000
  6091. End If
  6092. ' static forward facing spinner...
  6093. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  6094. OverlayMovie.Frame 147, 205: OverlayMovieHUD.Frame 147, 205
  6095. MovieTimer.Set TRUE, 4000
  6096. Case 8:
  6097. If (QuoteBusy = FALSE) Then
  6098. PlayMusic 4, "vo_SectorClosed2", FALSE, 0.6
  6099. AllPlasOff(): PFFlashTimer.Set TRUE, 2000
  6100. FlasherPolice1.Set BulbBlink, "101000", 50
  6101. FlasherPolice2.Set BulbBlink, "000101", 50
  6102. PoliceFlashOff.Set TRUE, 2000
  6103. End If
  6104. ' static forward facing spinner...
  6105. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  6106. OverlayMovie.Frame 147, 205: OverlayMovieHUD.Frame 147, 205
  6107. MovieTimer.Set TRUE, 4000
  6108. Case 9,10:
  6109. PlayMusic 4, "fx_OffWorld2", FALSE, 0.5: OffWorldSign()
  6110. ' blimp
  6111. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  6112. OverlayMovie.Frame 696, 734: OverlayMovieHUD.Frame 696, 734
  6113. MovieTimer.Set TRUE, 3000
  6114. End Select
  6115. End If
  6116. End If
  6117. set LastSwitchHit = TrigLO
  6118. End Sub
  6119.  
  6120.  
  6121.  
  6122. Sub AtariSignOn()
  6123. AtariSign.UpdateInterval = 250
  6124. AtariSign.Frame 30, 32, 30
  6125. SignOffTimer.Set TRUE, 3500
  6126. End Sub
  6127.  
  6128.  
  6129. Sub OffWorldSign()
  6130. CokeSign.UpdateInterval = 100
  6131. CokeSign.Frame 65, 82, 65
  6132. SignOffTimer.Set TRUE, 3300
  6133. End Sub
  6134.  
  6135.  
  6136. Sub SignOffTimer_Expired()
  6137. SignOffTimer.Enabled = FALSE
  6138. HoloNeon1.Frame 3
  6139. HoloNeon4.Frame 10
  6140. HoloNeon7.Frame 15
  6141. HoloNeon6.Frame 11
  6142. NeonHotel.Frame 14
  6143. If (MoveToKick.Enabled = FALSE) Then CokeSign.Frame 28
  6144. AtariSign.Frame 31
  6145. End Sub
  6146.  
  6147.  
  6148.  
  6149. Sub PoliceFlashOff_Expired()
  6150. PoliceFlashOff.Enabled = FALSE
  6151. FlasherPolice1.Set BulbOff, "10", 150
  6152. FlasherPolice2.Set BulbOff, "10", 150
  6153. End Sub
  6154.  
  6155.  
  6156.  
  6157.  
  6158. ' advaces towards the Snake Pit mystery...
  6159.  
  6160. Sub TgtRep_Hit()
  6161.  
  6162. If (LightRep.State = BulbBlink) Then ' mode shot...
  6163.  
  6164. If (BattyMode = TRUE) Then
  6165. PlaySound "fx_Hit8"
  6166. DT_4.SolenoidPulse
  6167. LightDT.State = BulbBlink
  6168.  
  6169. BattyShot = BattyShot + 1
  6170. If (QuoteBusy = FALSE) Then
  6171. QuoteBusy = TRUE
  6172. Select Case BattyShot
  6173. Case 1: PlayMusic 2, "vo_MadeOf"
  6174. Case 2: PlayMusic 2, "vo_ShootStraight"
  6175. Case 3: PlayMusic 2, "vo_GetItUp"
  6176. Case 4: PlayMusic 2, "vo_StayAlive"
  6177. End Select
  6178. Else
  6179. Select Case RandomNumber(2)
  6180. Case 1: PlaySound "fx_Howl"
  6181. Case 2: PlaySound "fx_Howl2"
  6182. End Select
  6183. End If
  6184. DMD.Text = "[y1][xc][f6][bf]SHOOT BATTY"
  6185. LightLO3.State = BulbOff
  6186. LightLaneL.State = BulbOff
  6187. LightRampL.State = BulbOff
  6188. LightCentrePurge.State = BulbOff
  6189. LightRampR.State = BulbOff
  6190. LightLaneR.State = BulbOff
  6191. LightRep.State = BulbOff
  6192. Exit Sub
  6193. End If
  6194.  
  6195. If (PrisMode = TRUE) Then
  6196. PrisHit = PrisHit + 1: MissionHit = MissionHit + 250
  6197. AddScore(MissionHit)
  6198. DMD.FlushQueue
  6199. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  6200. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  6201. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  6202. PlaySound "fx_Hit8"
  6203. MovieTimer.Set TRUE, 100
  6204. Select Case PrisHit
  6205. Case 1:
  6206. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Scared"
  6207. Case 2:
  6208. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_ShowSomething"
  6209. Case 3:
  6210. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_Physical"
  6211. Case 4:
  6212. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_ThereFor"
  6213. Case 5:
  6214. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_VeryGoodPris"
  6215. LightRep.State = BulbOff
  6216. LightRampR.State = BulbBlink
  6217. End Select
  6218. Exit Sub
  6219. End If
  6220.  
  6221. If (LeonMode = TRUE) Then
  6222. LightRep.State = BulbOff
  6223. LightCentrePurge.State = BulbBlink
  6224. PlaySound "fx_Hit8"
  6225. LeonHit = LeonHit + 1: MissionHit = MissionHit + 250
  6226. MovieTimer.Set TRUE, 100
  6227. AddScore(MissionHit)
  6228. DMD.FlushQueue
  6229. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  6230. DMD.QueueText "[y1][xc][f6]MISSION SHOT", deNone, 800, FALSE
  6231. DMD.QueueText "[y1][xc][f6][bf]$ "& FormatNumber(MissionHit, 0, -1, 0, -1), deNone, 1000, TRUE
  6232. If (QuoteBusy = FALSE) Then
  6233. QuoteBusy = TRUE: PlayMusic 2, "vo_WriteDown"
  6234. End If
  6235. Exit Sub
  6236. End If
  6237.  
  6238. PlaySound "fx_22"
  6239.  
  6240. If (QuoteBusy = FALSE) Then
  6241. EffectMusic 1, FadeOutAndPause, 0, 100: MusicResume.Set TRUE, 1800
  6242. QuoteBusy = TRUE: PlayMusic 2, "vo_RepDetect"
  6243. End If
  6244.  
  6245. LightRep.State = BulbOff
  6246. Exit Sub
  6247. End If
  6248.  
  6249. If (LightSnakePit2.State = BulbBlink) Then
  6250. AddScore(35)
  6251. DMDBusy = TRUE: DMDTimer.Set TRUE, 1500
  6252. DMD.QueueText "[yc][xc][f5]MYSTERY IS LIT", deNone, 1500, TRUE
  6253. LightSnakePit2.State = BulbOff
  6254. LightSnakePit.FlashForMs 500, 100, BulbOn
  6255. SnakeHit = AdjSnakeHit
  6256. PlaySound "fx_Phone3"
  6257. If (QuoteBusy = FALSE) Then
  6258. QuoteBusy = TRUE
  6259. Select Case RandomNumber(2)
  6260. Case 1:
  6261. PlayMusic 2, "vo_TheSnake"
  6262. If (ModeActive = FALSE) Then EffectMusic 1, FadeOutAndPause, 0, 100: MusicResume.Set TRUE, 3000
  6263. Case 2: PlayMusic 2, "vo_Licenses"
  6264. End Select
  6265. End If
  6266. Exit Sub
  6267. End If
  6268.  
  6269. If (LightSnakePit2.State = BulbOn) Then
  6270. SnakeHit = SnakeHit - 1: AddScore(20)
  6271. If (SnakeHit = 0) Then
  6272. LightSnakePit2.State = BulbBlink
  6273. DMDBusy = TRUE: DMDTimer.Set TRUE, 1500
  6274. DMD.QueueText "[y0][xc][f3][b]SNAKE PIT MYSTERY[y11][f1]IS READY", deNone, 1500, TRUE
  6275. Else
  6276. DMD.QueueText "[y0][xc][f3]SNAKE PIT MYSTERY[y11][f1]SHOTS REMAIN: " & SnakeHit, deNone, 1500, TRUE
  6277. End If
  6278. Flasher1.FlashForMs 200, 200, BulbOff
  6279. 'DMD.Text = "[yc][xc][f5]SNAKE PIT = " & SnakeHit
  6280. 'PlaySound "fx_Hit10"
  6281. PlaySound "fx_Hit5"
  6282. Else
  6283. AddScore(10)
  6284. 'PlaySound "fx_Hit10"
  6285. End If
  6286. End Sub
  6287.  
  6288.  
  6289.  
  6290. Sub StartBatty()
  6291. MysteryTimer.Enabled = FALSE
  6292. AllPlasOff()
  6293. Batty = 0
  6294. BattyShot = 0
  6295. BattyHit = 0
  6296. ShootingMode = FALSE
  6297. VKMode = FALSE
  6298. PhotoMode = FALSE
  6299. LightMode.State = BulbOff
  6300.  
  6301. OverlayMovie.UpdateInterval = 68: OverlayMovieHUD.UpdateInterval = 68
  6302. OverlayMovie.Frame 735, 787: OverlayMovieHUD.Frame 735, 787
  6303. MovieTimer.Set TRUE, 4300
  6304.  
  6305. BattyMode = TRUE: ModeActive = TRUE
  6306. EffectMusic 1, FadeOutAndPause, 0, 0
  6307. PlayMusic 2, "vo_FewSeconds"
  6308. PlayMusic 5, "Music_Batty4", TRUE, 0.6
  6309. PlayMusic 6, "fx_StormLong", TRUE, 0.5
  6310.  
  6311. BattyTimer.Set TRUE, 3100
  6312.  
  6313. LightLeonMain.Set BulbBlink, "1000", 350
  6314. LightZhoraMain.Set BulbBlink, "0100", 350
  6315. LightPrisMain.Set BulbBlink, "0010", 350
  6316. LightTyrellMain.Set BulbBlink, "0001", 350
  6317. LightSebastianMain.Set BulbBlink,"1000", 350
  6318. LightChewMain.Set BulbBlink, "0100", 350
  6319. LightRachaelMain.Set BulbBlink, "0010", 350
  6320. LightGaffMain.Set BulbBlink, "0001", 350
  6321.  
  6322. LightRing8.Set BulbBlink,"10", 100
  6323. LightRing7.Set BulbBlink,"10", 100
  6324. LightRing6.Set BulbBlink,"10", 100
  6325. LightRing5.Set BulbBlink,"10", 100
  6326. LightRing4.Set BulbBlink,"10", 100
  6327. LightRing3.Set BulbBlink,"10", 100
  6328. LightRing2.Set BulbBlink,"10", 100
  6329. LightRing1.Set BulbBlink,"10", 100
  6330.  
  6331. LightBlade.State = BulbOff
  6332. LightRunner.State = BulbOff
  6333. LightCentre.State = BulbOff
  6334. End Sub
  6335.  
  6336.  
  6337.  
  6338.  
  6339.  
  6340.  
  6341. Sub BattyTimer_Expired()
  6342. Batty = Batty + 1
  6343. Select Case Batty
  6344. Case 1:
  6345. BattyTimer.Set TRUE, 1400
  6346. FlasherL.FlashForMs 300, 300, BulbOff
  6347. Flasher1.FlashForMs 300, 300, BulbOff
  6348. Case 2:
  6349. BattyTimer.Set TRUE, 700
  6350. FlasherM.FlashForMs 300, 300
  6351. Case 3:
  6352. BattyTimer.Set TRUE, 2600
  6353. PlayMusic 2, "vo_ImComing"
  6354.  
  6355. LightLeonMain.Set BulbOn, "10", 150
  6356. LightZhoraMain.Set BulbOn, "10", 150
  6357. LightPrisMain.Set BulbOn, "10", 150
  6358. LightTyrellMain.Set BulbOn, "10", 150
  6359. LightSebastianMain.Set BulbOn,"10", 150
  6360. LightChewMain.Set BulbOn, "10", 150
  6361. LightRachaelMain.Set BulbOn, "10", 150
  6362. LightGaffMain.Set BulbOn, "10", 150
  6363. LightRing1.State = BulbOff
  6364. LightRing2.State = BulbOff
  6365. LightRing3.State = BulbOff
  6366. LightRing4.State = BulbOff
  6367. LightRing5.State = BulbOff
  6368. LightRing6.State = BulbOff
  6369. LightRing7.State = BulbOff
  6370. LightRing8.State = BulbOff
  6371.  
  6372. LightLeft1.State = BulbOff
  6373. LightLeft2.State = BulbOff
  6374. LightLeft3.State = BulbOff
  6375.  
  6376. LightNew.State = BulbOff
  6377. LightCase.State = BulbOff
  6378.  
  6379. LightSeqPF.Play SeqBlinking, , 5, 100
  6380. LightSeqPF.Play SeqBlinking, , 11, 50
  6381. Case 4:
  6382. PlaySound "fx_Howl2"
  6383. BattyTimer.Enabled = FALSE
  6384. CaseScoop.SolenoidPulse: PlaySound "fx_ScoopExit"
  6385.  
  6386. PFFlashTimer.Set TRUE, 400
  6387.  
  6388. ' light all shots...
  6389. LightLO3.State = BulbBlink
  6390. LightLaneL.State = BulbBlink
  6391. LightRampL.State = BulbBlink
  6392. LightCentrePurge.State = BulbOff
  6393. LightRampR.State = BulbBlink
  6394. LightLaneR.State = BulbBlink
  6395. LightRep.State = BulbBlink
  6396.  
  6397. 'PlaySound "fx_Hit2"
  6398. DT_1.PopDown
  6399. DT_2.PopDown
  6400. DT_3.PopDown
  6401. DT_4.PopDown
  6402. 'LightDT.State = BulbBlink
  6403.  
  6404. ShootAgainLight.State = BulbBlink
  6405. bBallSaverActive = TRUE
  6406. BallSaverTimer.Set TRUE, 25000
  6407. End Select
  6408. End Sub
  6409.  
  6410.  
  6411.  
  6412.  
  6413.  
  6414. Sub AllPlasOff()
  6415. LightSeqGI.StopPlay
  6416. LightSeqGI.Play SeqAllOff
  6417. APFDark.Render = TRUE
  6418. LeftSlingShotSurface.Render = FALSE
  6419. RightSlingShotSurface.Render = FALSE
  6420. Surface14.Render = FALSE
  6421. Surface15.Render = FALSE
  6422. Surface2.Render = FALSE
  6423. Surface16.Render = FALSE
  6424. Surface19.Render = FALSE
  6425. Surface12.Render = FALSE
  6426. Surface13.Render = FALSE
  6427. Surface20.Render = FALSE
  6428. Surface22.Render = FALSE
  6429. Surface17.Render = FALSE
  6430.  
  6431. Surface41.Render = TRUE
  6432. Surface40.Render = TRUE
  6433. Surface39.Render = TRUE
  6434. Surface38.Render = TRUE
  6435. Surface37.Render = TRUE
  6436. Surface36.Render = TRUE
  6437. Surface23.Render = TRUE
  6438. Surface24.Render = TRUE
  6439. Surface25.Render = TRUE
  6440. Surface26.Render = TRUE
  6441. LSDark.Render = TRUE
  6442. RSDark.Render = TRUE
  6443. 'xBAM.SetPlayfieldTexture "JP_PlayfieldOff"
  6444. xBAM.Lights.Brightness = 1.80
  6445. End Sub
  6446.  
  6447.  
  6448.  
  6449.  
  6450. Sub AllPlasOn()
  6451. If (MoveSpinner.Enabled = TRUE) Then
  6452. If (TestSpin = 3) or (TestSpin = 6) Then Exit Sub
  6453. End If
  6454. PlaySound "fx_Relay", 0.7
  6455. LightSeqGI.StopPlay
  6456. APFDark.Render = FALSE
  6457. LeftSlingShotSurface.Render = TRUE
  6458. RightSlingShotSurface.Render = TRUE
  6459. Surface14.Render = TRUE
  6460. Surface15.Render = TRUE
  6461. Surface2.Render = TRUE
  6462. Surface16.Render = TRUE
  6463. Surface19.Render = TRUE
  6464. Surface12.Render = TRUE
  6465. Surface13.Render = TRUE
  6466. Surface20.Render = TRUE
  6467. Surface22.Render = TRUE
  6468. Surface17.Render = TRUE
  6469.  
  6470. Surface41.Render = FALSE
  6471. Surface40.Render = FALSE
  6472. Surface39.Render = FALSE
  6473. Surface38.Render = FALSE
  6474. Surface37.Render = FALSE
  6475. Surface36.Render = FALSE
  6476. Surface23.Render = FALSE
  6477. Surface24.Render = FALSE
  6478. Surface25.Render = FALSE
  6479. Surface26.Render = FALSE
  6480. LSDark.Render = FALSE
  6481. RSDark.Render = FALSE
  6482. 'xBAM.SetPlayfieldTexture "JP_PlayfieldOn"
  6483. xBAM.Lights.Brightness = 1.10
  6484. End Sub
  6485.  
  6486.  
  6487.  
  6488.  
  6489. Sub PFFlashTimer_Expired()
  6490. PFFlashTimer.Enabled = FALSE
  6491. AllPlasOn()
  6492. End Sub
  6493.  
  6494.  
  6495.  
  6496.  
  6497. Sub LandingLights()
  6498. LL1.Set BulbBlink, "10", 200
  6499. LL2.Set BulbBlink, "01", 200
  6500. LL3.Set BulbBlink, "10", 200
  6501. LL4.Set BulbBlink, "01", 200
  6502. LL5.Set BulbBlink, "10", 200
  6503. LL6.Set BulbBlink, "01", 200
  6504. LL7.Set BulbBlink, "10", 200
  6505. LL8.Set BulbBlink, "01", 200
  6506. LL9.Set BulbBlink, "10", 200
  6507. LL10.Set BulbBlink, "01", 200
  6508. LL11.Set BulbBlink, "10", 200
  6509. LL12.Set BulbBlink, "01", 200
  6510. End Sub
  6511.  
  6512.  
  6513. Sub LandingLightsOff()
  6514. LL1.Set BulbOff, "10", 200
  6515. LL2.Set BulbOff, "01", 200
  6516. LL3.Set BulbOff, "10", 200
  6517. LL4.Set BulbOff, "01", 200
  6518. LL5.Set BulbOff, "10", 200
  6519. LL6.Set BulbOff, "01", 200
  6520. LL7.Set BulbOff, "10", 200
  6521. LL8.Set BulbOff, "01", 200
  6522. LL9.Set BulbOff, "10", 200
  6523. LL10.Set BulbOff, "01", 200
  6524. LL11.Set BulbOff, "10", 200
  6525. LL12.Set BulbOff, "01", 200
  6526. End Sub
  6527.  
  6528.  
  6529.  
  6530.  
  6531.  
  6532. Sub QuoteTimer_Expired()
  6533. QuoteTimer.Enabled = FALSE
  6534. QuoteBusy = FALSE
  6535. End Sub
  6536.  
  6537.  
  6538.  
  6539. Sub Guide6_Hit()
  6540. If (LastSwitchHit.Name = "Guide6") Then Exit Sub
  6541. PlaySound "fx_MetalHitSoftC"
  6542. set LastSwitchHit = Guide6
  6543. End Sub
  6544.  
  6545.  
  6546. Sub Guide8_Hit()
  6547. If (LastSwitchHit.Name = "Guide8") Then Exit Sub
  6548. PlaySound "fx_MetalHitSoftR"
  6549. set LastSwitchHit = Guide8
  6550. End Sub
  6551.  
  6552.  
  6553. Sub Guide12_Hit()
  6554. If (LastSwitchHit.Name = "Guide12") Then Exit Sub
  6555. PlaySound "fx_MetalHitSoftL"
  6556. set LastSwitchHit = Guide12
  6557. End Sub
  6558.  
  6559.  
  6560. Sub Guide13_Hit()
  6561. If (LastSwitchHit.Name = "Guide13") Then Exit Sub
  6562. PlaySound "fx_MetalHitSoftR"
  6563. set LastSwitchHit = Guide13
  6564. End Sub
  6565.  
  6566.  
  6567. Sub Guide14_Hit()
  6568. If (LastSwitchHit.Name = "Guide14") Then Exit Sub
  6569. PlaySound "fx_MetalHitSoftR"
  6570. set LastSwitchHit = Guide14
  6571. End Sub
  6572.  
  6573.  
  6574. Sub Guide15_Hit()
  6575. If (LastSwitchHit.Name = "Guide15") Then Exit Sub
  6576. PlaySound "fx_MetalHitSoftL"
  6577. set LastSwitchHit = Guide15
  6578. End Sub
  6579.  
  6580.  
  6581. Sub Guide23_Hit()
  6582. If (LastSwitchHit.Name = "Guide23") Then Exit Sub
  6583. PlaySound "fx_MetalHitSoftC"
  6584. set LastSwitchHit = Guide23
  6585. End Sub
  6586.  
  6587.  
  6588. Sub Guide24_Hit()
  6589. If (LastSwitchHit.Name = "Guide24") Then Exit Sub
  6590. PlaySound "fx_MetalHitSoftC"
  6591. set LastSwitchHit = Guide24
  6592. End Sub
  6593.  
  6594.  
  6595.  
  6596. Sub Rubber4_Hit()
  6597. PlaySound "fx_RubberHitCentre"
  6598. End Sub
  6599.  
  6600.  
  6601. Sub Rubber7_Hit()
  6602. PlaySound "fx_RubberHitLeft"
  6603. End Sub
  6604.  
  6605.  
  6606. Sub RubberPost_Hit()
  6607. PlaySound "fx_RubBDL"
  6608. End Sub
  6609.  
  6610.  
  6611.  
  6612. Sub DMD_Empty()
  6613. AddScore(0)
  6614. End Sub
  6615.  
  6616.  
  6617. Dim DMDBusy,RampR,RampL
  6618.  
  6619.  
  6620. Sub DMDTimer_Expired()
  6621. DMDTimer.Enabled = FALSE
  6622. DMDBusy = FALSE
  6623. End Sub
  6624.  
  6625.  
  6626.  
  6627. Sub TrigRampStartL_Hit()
  6628. If (RampL = FALSE) Then
  6629. RampL = TRUE
  6630. PlaySound "fx_RampStartR", 0.8
  6631. Else
  6632. ' ball is coming back down...
  6633. PlaySound "fx_RampStartR", 0.6
  6634. SaveMeTimer.Set TRUE, 2000
  6635. End If
  6636. End Sub
  6637.  
  6638.  
  6639.  
  6640. Sub SaveMeTimer_Expired()
  6641. SaveMeTimer.Enabled = FALSE
  6642. End Sub
  6643.  
  6644.  
  6645.  
  6646. Sub TrigRampStartR_Hit()
  6647. If (RampR = FALSE) Then
  6648. RampR = TRUE
  6649. PlaySound "fx_RampStartR", 0.8
  6650. Else
  6651. ' ball is coming back down...
  6652. PlaySound "fx_RampStartR", 0.6
  6653. SaveMeTimer.Set TRUE, 2000
  6654. End If
  6655. End Sub
  6656.  
  6657.  
  6658.  
  6659. Dim MiniPlayField_0 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  6660. Set MiniPlayField_0 = xBAM.CreateMiniPlayfield( -80, -20, 110, 250, 40, 80, -52.8, 180.9, 50)
  6661.  
  6662.  
  6663. ' DstX DstY DstZ RotX RotY RotZ Scale Time
  6664. Call MiniPlayField_0.MoveTo( 116, 174, 60, 0, 0, 20, 1.3, 0)
  6665.  
  6666.  
  6667.  
  6668. Sub MoveSpinner_Expired()
  6669. TestSpin = TestSpin + 1
  6670. Select Case TestSpin
  6671. Case 1:
  6672. LandingLights()
  6673. FlasherPolice1.Set BulbBlink, "101000", 50
  6674. FlasherPolice2.Set BulbBlink, "000101", 50
  6675. AllPlasOff()
  6676. LightRing1.State = BulbBlink
  6677. LightRing2.State = BulbBlink
  6678. LightRing3.State = BulbBlink
  6679. LightRing4.State = BulbBlink
  6680. LightRing5.State = BulbBlink
  6681. LightRing6.State = BulbBlink
  6682. LightRing7.State = BulbBlink
  6683. LightRing8.State = BulbBlink
  6684. OverlayMovie.UpdateInterval = 70: OverlayMovieHUD.UpdateInterval = 70
  6685. OverlayMovie.Frame 333, 386: OverlayMovieHUD.Frame 333, 386
  6686. MovieTimer.Set TRUE, 4500
  6687. Select Case RandomNumber(2)
  6688. Case 1:
  6689. CokeSign.UpdateInterval = 600
  6690. CokeSign.Frame 33, 44
  6691. Call MiniPlayField_0.MoveTo(111, 180, 90, 0, 0, 20, 1.3, 2.5)
  6692. PlayMusic 2, "vo_SpinnerChatter": PlaySound "fx_AlarmShort": MoveSpinner.Set TRUE, 2500
  6693. Case 2:
  6694. CokeSign.UpdateInterval = 600
  6695. CokeSign.Frame 33, 44
  6696. Call MiniPlayField_0.MoveTo(111, 180, 90, 0, 0, 20, 1.3, 2.5)
  6697. PlaySound "fx_SpinnerTakeOff"
  6698. PlayMusic 2, "vo_Purge2": MoveSpinner.Set TRUE, 2500
  6699. End Select
  6700. DMD.QueueText "[yc][xc][f5]SPINNER LAUNCH", deNone, 2500, FALSE
  6701. DMD.QueueText "[yc][xc][f5][b]P U R G E", deNone, 2000, TRUE
  6702. Case 2:
  6703. If (ModeActive = FALSE) Then
  6704. BR2049 = TRUE
  6705. EffectMusic 1, FadeOutAndPause, 0, 1800
  6706. PlayMusic 5, "Music_SR", FALSE, 0.4, 1500
  6707. End If
  6708. Call MiniPlayField_0.MoveTo(116, 174, 90, 0, 0, -30, 1.3, 1.8): MoveSpinner.Set TRUE, 1800
  6709. Case 3:
  6710. AllPlasOff()
  6711. LandingLightsOff()
  6712. FlasherPolice1.State = BulbOff
  6713. FlasherPolice2.State = BulbOff
  6714. Bulb46.State = BulbBlink: PLR.State = BulbBlink
  6715. Bulb47.State = BulbBlink: PLB.State = BulbBlink
  6716. CokeSign.UpdateInterval = 300
  6717. CokeSign.Frame 16, 28
  6718. OverlayMovie.UpdateInterval = 66: OverlayMovieHUD.UpdateInterval = 66
  6719. OverlayMovie.Frame 457, 487: OverlayMovieHUD.Frame 457, 487
  6720. MovieTimer.Set TRUE, 1800
  6721. PlaySound "fx_SpinnerFlyBy4"
  6722. BulbSpinner3.State = BulbOn: FlasherSpin.State = BulbOn
  6723. Call MiniPlayField_0.MoveTo(440, 800, 90, 0, 0, -30, 1.3, 3.5): MoveSpinner.Set TRUE, 3500
  6724. Case 4:
  6725. PlaySound "fx_SpinnerLanding"
  6726. AllPlasOn()
  6727.  
  6728. Bulb46.State = BulbOff: PLR.State = BulbOff
  6729. Bulb47.State = BulbOff: PLB.State = BulbOff
  6730.  
  6731. BulbSpinner3.State = BulbOff: FlasherSpin.State = BulbOff
  6732. Call MiniPlayField_0.MoveTo(440, 975, 55, 0, 0, 75, 1.3, 3): MoveSpinner.Set TRUE, 3000
  6733. Case 5:
  6734. 'Call MiniPlayField_0.MoveTo(370, 975, 60, 0, 0, 100, 1.3, 3.5)
  6735. MoveSpinner.Set TRUE, SRTime
  6736. Case 6:
  6737. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_AutoNav", FALSE, 0.7
  6738. Call MiniPlayField_0.MoveTo(440, 975, 65, 0, 0, 75, 1.3, 1)
  6739. MoveSpinner.Set TRUE, 1000
  6740. Case 7:
  6741. PlaySound "fx_SpinnerTakeOff"
  6742. Call MiniPlayField_0.MoveTo(116, 965, 65, 0, 0, 180, 1.3, 3): MoveSpinner.Set TRUE, 3000
  6743. Case 8:
  6744. If (QuoteBusy = FALSE) Then QuoteBusy = TRUE: PlayMusic 2, "vo_FinalApproach", FALSE, 0.7
  6745. AllPlasOff()
  6746. OverlayMovie.UpdateInterval = 64: OverlayMovieHUD.UpdateInterval = 64
  6747. OverlayMovie.Frame 252, 330: OverlayMovieHUD.Frame 252, 330
  6748. FlasherSpin.State = BulbOn
  6749. MovieTimer.Set TRUE, 5000
  6750. PlaySound "fx_SpinnerFlyBy3"
  6751. Call MiniPlayField_0.MoveTo(116, 174, 90, 0, 0, 180, 1.3, 3.5): MoveSpinner.Set TRUE, 3500
  6752. Case 9:
  6753. PlaySound "fx_PoliceSiren2"
  6754. FlasherPolice1.Set BulbBlink, "101000", 50
  6755. FlasherPolice2.Set BulbBlink, "000101", 50
  6756. FlasherSpin.State = BulbOff
  6757. Call MiniPlayField_0.MoveTo(116, 174, 85, 0, 0, 320, 1.3, 3): MoveSpinner.Set TRUE, 3000
  6758. Case 10:
  6759. LandingLights()
  6760. PlaySound "fx_SpinnerLanding"
  6761. FlasherPolice1.State = BulbOff
  6762. FlasherPolice2.State = BulbOff
  6763. BulbSpinner3.State = BulbOn
  6764. Call MiniPlayField_0.MoveTo(116, 174, 60, 0, 0, 20, 1.3, 3.5): MoveSpinner.Set TRUE, 3500
  6765. Case 11:
  6766. If (ModeActive = FALSE) and (BR2049 = TRUE) Then
  6767. EffectMusic 5, FadeOutAndStop, 0, 1000
  6768. EffectMusic 1, PlayAndFadeIn, 0.6, 1000
  6769. End If
  6770. BR2049 = FALSE
  6771. AllPlasOn()
  6772. LandingLightsOff()
  6773. MoveSpinner.Enabled = FALSE
  6774. BulbSpinner3.State = BulbOff
  6775. TestSpin = 0
  6776. SuperRamps = FALSE
  6777. SuperRampsTimer.Enabled = FALSE
  6778. LightSuperRampL.State = BulbOff
  6779. LightSuperRampR.State = BulbOff
  6780. LightCentre.State = BulbOff
  6781. LightBlade.State = BulbBlink
  6782. LightRunner.State = BulbBlink
  6783. End Select
  6784. End Sub
  6785.  
  6786.  
  6787. Sub Trigger5_Hit()
  6788. PlaySound "fx_HitWireRamp", 0.8
  6789. End Sub
  6790.  
  6791.  
  6792.  
  6793. Dim TestSpin,BR2049
Advertisement
Add Comment
Please, Sign In to add comment