Outhere

Blade Runner ULTIMATE Pro 1.01

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