Advertisement
Outhere

Star Wars DSA ULTIMATE Pro 1.06 - Epic Space Battles

Aug 19th, 2020 (edited)
939
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 424.62 KB | None | 0 0
  1. ' *********************************************************************
  2. ' ** **
  3. ' ** STAR WARS: DEATH STAR ASSAULT **
  4. ' ** **
  5. ' ** ULTIMATE Pro 1.06 **
  6. ' ** **
  7. ' ** Epic Space Battles! **
  8. ' ** **
  9. ' *********************************************************************
  10.  
  11. ' ** DO NOT STEP OVER TO THE DARK SIDE AND USE ANY RESOURCES I'VE CREATED FOR
  12. ' THIS GAME IN ANY VISUAL PINBALL PROJECT. THIS GAME IS EXCLUSIVE ONLY FOR
  13. ' FIGHTERS OF THE REBEL ALLIANCE (FUTURE PINBALL) **
  14.  
  15. ' ** MODS ARE PERMITTED FOR ANY FUTURE PINBALL PROJECT **
  16.  
  17.  
  18. ' POSSIBLE MOD IDEAS:
  19.  
  20. ' side wall lighting, the light panels illuminate from behind allowing colour-changing (red during alerts)
  21. ' changable view outside the window on the backwall, possibly animated
  22. ' cab topper of some kind (for VR experience)
  23. ' blaster handle for plunger
  24.  
  25. ' If you have the skills and time to contribute, then go for it!!
  26.  
  27.  
  28. ' ***************************************************************
  29.  
  30. ' Who made the table?
  31.  
  32. ' - SLAMT1LT
  33.  
  34. ' Original table layout (Sci-Fi Classic)
  35.  
  36. ' - Matt Ellis
  37.  
  38. ' Toys:
  39.  
  40. ' - Death Star toy by Wild
  41. ' - R2-D2 toy by Steve Paradis
  42.  
  43. ' Toys and BAM Custom Models converted by TerryRed:
  44.  
  45. ' - Turbo Laser Cannon, X-Wing fighter (original models by Fuzzel) - converted to "PEG"
  46. ' - Darth Vader Tie Fighter (original model by Fuzzel) - converted to BAM Custom Model
  47. ' - Tie Fighter - converted to "PEG"
  48. ' - Millenium Falcon - converted to BAM Custom Model
  49.  
  50. ' Epic Space Battles mod (code, lighting, animation, lasers, and explosions):
  51.  
  52. ' - TerryRed
  53.  
  54. ' Darth Vader (BAM Custom Model):
  55.  
  56. ' - converted and animated by Gimli and TerryRed
  57.  
  58. ' Lightsaber mod and glow effect:
  59.  
  60. ' - TerryRed
  61.  
  62. ' Additional table updates:
  63.  
  64. ' - TerryRed (detailed below)
  65.  
  66. ' =========================================================================
  67.  
  68. '****** TerryRed "Epic Space Battles" mod V1 and updates ******
  69.  
  70. '- integrated smoke'a ball rolling sounds into table script (no need for external vbs)
  71. '- integrated shadowmaps into the table as Shadowmaps-shadows.TGA (no need for BAM to generate or cache shadowmaps on startup)
  72. '- added option to disable new animated sequences for space battles, hovering ships, darth vader, darth vader dancing
  73. '- added default hovering animations for the ships
  74. '- added turbo laser animated lighting and lasers
  75. '- added detached flashers to explosion holograms
  76. '- added detached flashers to all laser holograms so there will be real lighting following the laser animations across the table
  77. '- adjusted backwall normal map to smooth out space window
  78. '- added new Darth Vader character animations for many table events
  79. '- added new animated sequence: millenium falcon loops around the table for "SOLO" sequences
  80. '- added new animated sequence: new x-wing and tie fighter fly in and land
  81. '- added new animated sequence: Darth Vader tie fighter fires lasers and destroys x-wing trying to fly away (explodes)
  82. '- added new animated sequence: x-wing fires lasers and destroys tie fighter trying to fly away (explodes)
  83. '- added new animated sequence: x-wing and tie fighter rotating and firing lasers at each other
  84. '- added new turbo cannon animation and lighting when bumpers are hit
  85. '- added bump mapping for x-wing, turbo laser, tie fighter
  86. '- added new BAM custom models (now seen as TGA images in the editor): Darth Vader Tie Fighter, Millennium Falcon, Darth Vader
  87. '- added new models as pegs: X-wing, Tie Fighter, Turbo Laser Cannon
  88. '- changed position of X-Wing flasher, Death Star spot-light / flasher, and Level lights to make room for new models
  89. '- updated and added more playfield images for each lightsaber colour (changes were made to only the colour...not the lightsaber image)
  90. '- added additional lightsaber colours (blue, green, purple (corrected), yellow, orange)
  91. '- added option to disable Camera Control prompt
  92. '- updated Camera Control commands to work with new Static Camera view option
  93. '- added new custom static camera option (activated with right flipper during attract, special 2 during gameplay)
  94. '- added option to disable HUD DMD and HUD Videos (added extra code for all "fadein" commands)
  95. '- added option to disable lightsaber flasher effect (for seizure sensitive / VR users)
  96. '- added option to adjust brightness of bulbs
  97. '- added option to adjust brightness of flashers
  98. '- added option to adjust brightness of playfield inserts
  99. '- adjusted angle / size / position of lightsaber holograms for a better view of the glow in all camera views (adjusted mini-playfield to match)
  100. '- added option to disable table script settings for BAM post processing / lighting
  101. '- adjusted BAM post processing / lighting
  102.  
  103. ' =========================================================================
  104.  
  105.  
  106. ' ** TIME ATTACK MODE **
  107.  
  108. ' You have 1 ojective - destroy the Death Star but only 5 minutes to do it.
  109. ' Unlimited balls with numerous opportunities to extend the timer, such as:
  110.  
  111. ' - hit the Vader lane 6 times (+15 seconds)
  112. ' - complete the VADER targets and shoot the Attack saucer (progressive, starting at +10 seconds)
  113. ' - complete SOLO at the ramp (+15 seconds)
  114. ' - max the bonus multiplier (+20 seconds)
  115. ' - make a SOLO ramp combo
  116.  
  117. ' The main score display will show time remaining in minutes and seconds.
  118.  
  119. ' Clear each wave of 7 TIE fighters to evetually power up to 'Skywalker'.
  120. ' Then shoot the Vader lane to start the final confrontation with Darth Vader.
  121.  
  122. ' Shoot the Death Star saucer with Luke (silver ball only) before time runs out to
  123. ' destroy the Death Star.
  124.  
  125. ' If either ball drains or the table is tilted, the mission is over.
  126.  
  127.  
  128. ' Pro Tip: you will need more time so go for the shots that give you plenty and stay away from the saucers when not lit,
  129. ' they will just waste your time. It's hard but it can be done.
  130.  
  131.  
  132. '** ULTIMATE Pro 1.06 **
  133.  
  134. ' added more Darth Vader quotes
  135. ' added fx to lightsabers when they turn on during bonus
  136. ' improved some timers
  137. ' fixed rare crash bug
  138. ' fixed some quotes overlapping or not playing
  139. ' increased some score values
  140.  
  141.  
  142. '** ULTIMATE Pro 1.05 **
  143.  
  144. ' fixed wrong movie clip playing when ball draining down right outlane
  145. ' fixed Victory Lap multiball not starting after Death Star destroyed
  146. ' numerous other minor fixes and tweaks
  147.  
  148.  
  149. '** ULTIMATE Pro 1.04 **
  150.  
  151. ' added new side wall and back wall art
  152. ' added animated Death Star and X-Wing toys
  153. ' added bump mapping to all toys and wall art
  154. ' New Rule: End of Ball Bonus now adds a Player Perk for the next ball only:
  155. ' - Chewbacca - Bumper value is increased (temporarily)
  156. ' - Leia - Kickback can be used 2 times before it turns off
  157. ' - Obi Wan - all Target values are increased (permanently)
  158. ' - Han - Video Mode is lit
  159. ' - Luke - Ball Saver timer is increased by 2 seconds
  160. ' removed Death Star hologram
  161. ' fixed some values not set for multiplayer games
  162. ' improved lighting effects
  163. ' improved some 'colour DMD' graphics
  164. ' improved attract sequence (removed my terrible Obi Wan voice over!)
  165. ' improved audio design
  166. ' added more quotes
  167. ' added retractable blades to lightsabres
  168. ' New Rule: Reaching Yoda power level now requires shooting down a single TIE fighter - a roving drop target, before starting the final confrontation with Vader'
  169. ' added more animations to R2 toy
  170. ' added more movie clips
  171. ' New Rule: Added new power up, 'Skywalker'. Power ups increase all playfield score values
  172. ' New Rule: Added Extra Ball award for reaching 5 Million score
  173. ' New Rule: Added 'Force Power' magnets, usable only when player is at Jedi Master level or above
  174. ' New Rule: Added new 'Time Attack' mode
  175. ' replaced some older low res movie clips
  176.  
  177.  
  178. '** ULTIMATE Pro 1.02 **
  179.  
  180. '- fixed black ball not appearing for final multiball
  181. '- fixed DMD error when Sith Win lightsabre duel
  182. '- added balance to the force so Sith win Lightsabre duel less frequently
  183. '- added automatic multiball camera switch (desktop only)
  184. '- added bump map texture to R2D2 toy
  185. '- added more quotes
  186. '- added more DMD graphics
  187. '- added teaser for Rise of Skywalker during the attract sequence
  188.  
  189.  
  190. '** ULTIMATE Pro 1.01 **
  191.  
  192. ' - improved physics, geometry and lighting
  193. ' - added animation to light sabre and R2D2 toys
  194. ' - improved mechanical fx
  195. ' - general bug fixes
  196.  
  197.  
  198. '** ULTIMATE 1.06 **
  199.  
  200. '- fixed ball sticking in Vader kicker
  201.  
  202.  
  203. '** ULTIMATE 1.05 **
  204.  
  205. '- fixed Vader shot tally resetting when powering up
  206. '- fixed Vader playfield scoring not resetting when timer runs out
  207. '- fixed super spinners using wrong multiplier
  208. '- fixed right out lane wall lights still blinking when ball saved with the force
  209. '- fixed ball getting stuck on plastics from bumper hit
  210. '- added models to playfield (flasher wiring poles)
  211. '- increased Vader scoring time
  212. '- improved backglass artwork
  213. '- improved gameroom wall artwork
  214. '- improved cabinet artwork
  215. '- improved missing ball search
  216. '- improved and optimized some older clips
  217. '- added 3 new movie clips
  218. '- added more R2D2 activity during attract sequence
  219. '- added R2D2 alert for last tilt warning (next nudge tilts until reset)
  220. '- added more quotes from Princess Leia
  221. '- improved victory multiball
  222. '- new rule: hit the attack kicker 5 times for bonus held
  223. '- rule change: Points Rewards are now awarded every 1.5m (previously 1m)
  224. '- added new alternate artwork for backglass (choice of 3)
  225. '- moved mapping of reset high scores to keyboard key "R"
  226.  
  227.  
  228. '** ULTIMATE 1.04 **
  229.  
  230. '- fixed wrong music playing when starting as Padawan for new game
  231. '- fixed some quotes overlapping when right in lane hit
  232. '- fixed missing score value for Jedi Power up
  233. '- adjusted reaction time for video mode
  234. '- adjusted Points Reward for Vader advance, + 2 instead of + 1
  235. '- added more holograms to R2D2
  236. '- added sound fx for starting game with no credtis
  237. '- added more quotes
  238. '- updated quote playlist for some events to avoid repitition
  239. '- improved and optimised some older clips
  240. '- rule change: collecting an attack reward also adds 1 TIE kill to the total tally. Hitting the attack kicker
  241. ' at any other time awards an increasing score value. Movie clip now only plays for collecting attack reward
  242. '- created quote playlist on some events to avoid repetition
  243. '- adjusted some timers
  244.  
  245.  
  246. '** ULTIMATE 1.03 **
  247.  
  248. '- fixed Points Reward not showing list of adjustments if Points Reward used in previous game
  249. '- fixed next rank downgrading to Padawan when Jedi Knight selected to start game
  250. '- fixed Falcon spinner sticking in up position
  251. '- fixed some quotes overlapping
  252. '- fixed Attack awards not resetting for new game
  253. '- fixed ball remaining in plunger lane when Death Star starts firing on rebel base
  254. '- added more quotes and fx
  255. '- added more movie clips
  256. '- added Carrie Fisher (Princess Leia) tribute during attract
  257. '- added video mode
  258. '- improved playfield artwork
  259. '- rule change: only 1 extra ball can be won per ball (Special is awarded if extra ball already won)
  260. '- rule change: during 2 ball multiball, only the silver ball can make the shot to the Death Star
  261.  
  262.  
  263. ' ** ULTIMATE Edition 1.02 **
  264.  
  265. '- fixed multiplayer game not resetting from previous multiplier game
  266. '- adjusted right spinner damping from normal to loose
  267. '- added Points Reward feature to end of game
  268. '- adjusted some volume levels on music and fx
  269. '- improved attract sequence
  270. '- rule change: completing the VADER stand up targets also awards a 6 second ball saver
  271. '- added dynamic lighting effects to backbox
  272. '- added alternative backglass art (switch with Special 2 key)
  273. '- added frame to HUD displays
  274. '- added more movie clips
  275. '- added a ton of new quotes
  276. '- improved Death Star destruction sequence
  277. '- improved sound edits on some quotes and fx
  278. '- reassigned some quotes to more appropriate events
  279.  
  280.  
  281. ' ** ULTIMATE Edition 1.01 **
  282.  
  283. ' updated and improved everything
  284.  
  285. ' DOFLinx cabinet devices used in this table:
  286.  
  287. ' DV_LF   = Left flipper
  288. ' DV_RF   = Right flipper
  289. ' DV_LS   = Left slingshot
  290. ' DV_RS   = Right slingshot
  291. ' DV_ML   = Mid field left solenoid
  292. ' DV_MC   = Mid field centre solenoid
  293. ' DV_MR   = Mid field right solenoid
  294. ' DV_BL   = Back left solenoid
  295. ' DV_BR   = Back right solenoid
  296. ' DV_FLOL = Flasher, outside left
  297. ' DV_FLIL = Flasher, inside left
  298. ' DV_FLCN = Flasher, centre
  299. ' DV_FLOR = Flasher outside right
  300. ' DV_FLIR = Flasher, inside right
  301. ' DV_FN   = Blower Fan
  302. ' DV_SH   = Shaker
  303. ' DV_SR   = Strobe
  304. ' DV_BK   = Beacon
  305. ' BUT_ST  = Start button
  306. ' BUT_CN  = Coin button
  307. ' BUT_LB  = Launch Ball button
  308. ' RGB_ = RGB Undercab Lighting
  309.  
  310. ' FF_DOF commands in this table are used for addressable leds (MX)
  311.  
  312. Option Explicit
  313.  
  314. xBAM.CreateAllExt 'create BAM Extension commands. This should be at the top of the script (below Option Explicit)
  315.  
  316. Const BAM_VERSION = 0: AddDebugText "BAM Version: " & BAM_VERSION
  317.  
  318. ' Variables
  319.  
  320. dim PFLights_Brightness_GI_OFF
  321. dim PFLights_Brightness_GI_ON
  322. dim Flashers_Brightness_GI_OFF
  323. dim Flashers_Brightness_GI_ON
  324. dim Bulbs_Brightness_GI_OFF
  325. dim Bulbs_Brightness_GI_ON
  326. dim use_LightSaberFlasherEffect
  327. dim use_Table_BAM_LightPresets
  328. dim use_FP_HUD_DMD_and_Videos
  329. dim use_CameraControl
  330. dim use_New_Static_Camera_View
  331. dim use_Animated_Space_Battles
  332. dim use_Hovering_Ships
  333. dim use_Animated_Vader
  334. dim use_Dancing_Vader
  335.  
  336.  
  337. '/////////////////////////////////////////////////////////////////////////////////////////
  338. '//////////////////////////////// USER's TABLE OPTIONS ///////////////////////////////////
  339.  
  340. use_FP_HUD_DMD_and_Videos = true 'display the HUD for the FP DMD and Videos
  341. use_CameraControl = true 'enable the prompt to allow BAM camera control (DESKTOP Mode ONLY)
  342. use_New_Static_Camera_View = true 'enable a better new "static" camera view for desktop mode (requires use_CameraControl = true)
  343. ' 'Camera Control must be allowed on table startup
  344. ' 'right flipper switches to the new camera view in attract mode
  345. ' 'Special 2 button switches to the new camera during gameplay
  346.  
  347. '****** Epic Space Battle Options ******
  348.  
  349. use_Animated_Space_Battles = true 'enable Epic Space Battle animations (rotating and flying spaceships, lasers, explosions)
  350. use_Hovering_Ships = true 'enable hovering animations for the spaceships
  351. use_Animated_Vader = true 'enable Darth Vader animations for table events
  352. use_Dancing_Vader = true 'enable Darth Vader's dancing animation during Game Over / Attract (needs use_Animated_Vader = true)
  353.  
  354. '****** Lighting Options ******
  355.  
  356. use_Table_BAM_LightPresets = true 'load BAM's Lighting and Post Processing settings from the table script (default = true)
  357. PFLights_Brightness_GI_OFF = 2.0 'brightness of light inserts when GI is off (default is 2.0)
  358. PFLights_Brightness_GI_ON = 1.4 'brightness of light inserts when GI is on (default is 1.4)
  359. Flashers_Brightness_GI_OFF = 1 'brightness of flashers when GI is off (default is 1.0)
  360. Flashers_Brightness_GI_ON = 1 'brightness of flashers when GI is on (default is 1.0)
  361. Bulbs_Brightness_GI_OFF = 2.0 'brightness of bulbs when GI is off (default is 2.0)
  362. Bulbs_Brightness_GI_ON = 1.6 'brightness of bulbs when GI is on (default is 1.6)
  363. use_LightSaberFlasherEffect = false 'enable lightsaber flasher flickering effect. Set to False when playing in VR (its hard on the eyes, and can distort visuals)
  364.  
  365. '///////////////////////////// END OF USER's TABLE OPTIONS ///////////////////////////////
  366. '/////////////////////////////////////////////////////////////////////////////////////////
  367.  
  368.  
  369.  
  370.  
  371. '###########################################################################################
  372. '#################################### PHYSICS SETTINGS #####################################
  373.  
  374.  
  375. '=============================== PHYSICS XML ===========================
  376.  
  377. '<?xml version="1.0" encoding="utf-8"?>
  378. '<document>
  379. ' <!—Custom Physics for Star Wars -->
  380. ' <physics fps="296" threaded="1"></physics>
  381. ' <ball newtonDamping="0" mass="75" gravity="6800" damping="0.65"></ball>
  382. ' <flipper releaseOmega="18" rotationSpeedChart="{0.0,100.0}[0.0,100.0]" newtonDamping="1" mass="20150" omega="43" moeMethod="0"
  383. ' leftXoff="0" leftYoff="1500" leftZoff="0"
  384. ' rightXoff="0" rightYoff="1500" rightZoff="0"></flipper>
  385. ' <bumper impulse="90.0" impulseRandomness="0" vectorRandomness="6"></bumper>
  386. ' <autoplunger mass="20000.0" force="60000.0"></autoplunger>
  387. ' <diverter mass="10000.0" omega="33.0"></diverter>
  388. ' <gate mass="0.5" gravity="3000.0" damping="1.0"></gate>
  389. ' <kicker impulse="1000.0" vukImpulse="1400.0" impulseRandomness="2" vectorRandomness="1"></kicker>
  390. ' <plunger mass="20000.0" force="30000.0"></plunger>
  391. ' <slingshot impulse="650.0" impulseRandomness="15" vectorRandomness="3"></slingshot>
  392. ' <spindisk mass="10000.0" angularDamp="0.33" linearDamp="0.25"></spindisk>
  393. ' <spinner mass="50000.0" gravity="9800.0" angularDamp="0.5" angularAccel="5.25"
  394. ' spinDampLoose="0.30" spinBackLoose="0.90"
  395. ' spinDampNorm="0.40" spinBackNorm="0.65"
  396. ' spinDampTight="0.70" spinBackTight="0.65"></spinner>
  397. ' <emkicker mass="10000.0" omega="80.0"></emkicker>
  398. ' <varitarget mass="500.0" damping="0.9" tension="3.0" return="15.0"></varitarget>
  399. ' <magnet impulse="10.0" impulseRandomness="2"></magnet>
  400. ' <nudge impulse="240.0" impulseRandomness="25.0" warningLevel="290" leftAngle="60" upAngle="0" rightAngle="320"
  401. ' vectorRandomness="5" visualDistance="3" waitPeriod="300" maxBallVelocity="500.0"></nudge>
  402. ' <defaultMat softnessCoef="0.03" elasticCoef="0.1" staticFriction="0.01" kineticFriction="0.02"></defaultMat>
  403. ' <playfieldMat softnessCoef="0.02" elasticCoef="0.1" staticFriction="0.01" kineticFriction="0.02"></playfieldMat>
  404. ' <metalMat softnessCoef="0.01" elasticCoef="0.15" staticFriction="0.02" kineticFriction="0.02"></metalMat>
  405. ' <woodMat softnessCoef="0.03" elasticCoef="0.15" staticFriction="0.03" kineticFriction="0.02"></woodMat>
  406. ' <plasticMat softnessCoef="0.02" elasticCoef="0.2" staticFriction="0.02" kineticFriction="0.01"></plasticMat>
  407. ' <rubberHardMat softnessCoef="0.08" elasticCoef="0.50" staticFriction="0.04" kineticFriction="0.055"></rubberHardMat>
  408. ' <rubberIntMat softnessCoef="0.1" elasticCoef="0.72" staticFriction="0.05" kineticFriction="0.065"></rubberIntMat>
  409. ' <rubberSoftMat softnessCoef="0.12" elasticCoef="0.90" staticFriction="0.06" kineticFriction="0.075"></rubberSoftMat>
  410. ' <gateMat softnessCoef="0.05" elasticCoef="0.65" staticFriction="0" kineticFriction="0"></gateMat>
  411. ' <kickerMat softnessCoef="0.01" elasticCoef="0.05" staticFriction="0.8" kineticFriction="0.8"></kickerMat>
  412. ' <rampMat softnessCoef="0.01" elasticCoef="0.01" staticFriction="0.01" kineticFriction="0.01"></rampMat>
  413. ' <plungerMat softnessCoef="0.04" elasticCoef="0.55" staticFriction="0.02" kineticFriction="0.02"></plungerMat>
  414. ' <spindiskMat softnessCoef="0.05" elasticCoef="0.5" staticFriction="1.5" kineticFriction="2"></spindiskMat>
  415. '</document>
  416.  
  417. '=============================== PHYSICS XML ===========================
  418.  
  419.  
  420. ' === Dynamic Flipper Settings ===
  421.  
  422. Dim RightFlipperExt,LeftFlipperExt
  423. Dim omegaCorrectionR
  424. Dim omegaCorrectionL
  425.  
  426. xBAM.BallSpeedLimit = 3000
  427.  
  428. Sub OnPreHitFlipperSettings(FlipperExt)
  429. OnPreHitFlipperSettings_bounceControl(FlipperExt)
  430. End Sub
  431.  
  432. const MaxOmega = 42 'Omega at base of flipper. Must be > MinOmega. Default = 45
  433. const MinOmega = 32 'Omega at tip of flipper. Must be < MaxOmega. Default = 32
  434.  
  435. Sub RightFlipper_prehit()
  436. OnPreHitFlipperSettings(RightFlipperExt)
  437. omegaCorrectionR = MaxOmega - (RightFlipperExt.ContactPoint * ((MaxOmega - MinOmega)/1.2))
  438. If RightFlipperExt.ContactPoint < 0.0 then RightFlipperExt.Omega = MaxOmega
  439. If RightFlipperExt.ContactPoint > 1.2 then RightFlipperExt.Omega = MinOmega
  440. If (RightFlipperExt.ContactPoint => 0.0) And (RightFlipperExt.ContactPoint =< 1.2) then
  441. RightFlipperExt.Omega = omegaCorrectionR
  442. End if
  443. End Sub
  444.  
  445. Sub LeftFlipper_prehit()
  446. OnPreHitFlipperSettings(LeftFlipperExt)
  447. omegaCorrectionL = MaxOmega - (LeftFlipperExt.ContactPoint * ((MaxOmega - MinOmega)/1.2))
  448. If LeftFlipperExt.ContactPoint < 0.0 then LeftFlipperExt.Omega = MaxOmega
  449. If LeftFlipperExt.ContactPoint > 1.2 then LeftFlipperExt.Omega = MinOmega
  450. If (LeftFlipperExt.ContactPoint => 0.0) And (LeftFlipperExt.ContactPoint =< 1.2) then
  451. LeftFlipperExt.Omega = omegaCorrectionL
  452. End if
  453. End Sub
  454.  
  455. Sub OnPreHitFlipperSettings_bounceControl(FlipperExt)
  456. ' Parameters to tweak
  457. const base_elasticCoef = 0.90 ' very bouncy flipper rubber
  458. const expected_ball_speed_after_hit = 350 ' calc elasticCoef to get desired ball speed after ball hit flipper
  459. 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
  460. const reduction_for_flipper_in_motion = 0.17 ' if flipper is not in starting point, reduce elasticCoef by 20%
  461.  
  462. If FlipperExt.Hit Then
  463. Dim elasticCoef
  464. Dim maxElasticCoef
  465. Dim ballSpeed
  466. ballSpeed = (FlipperExt.BallVSpeed + xBAM.Ball.Speed) * 0.5 ' averge speed of
  467.  
  468. maxElasticCoef = base_elasticCoef
  469. If FlipperExt.AngleDiff > 1 Then maxElasticCoef = maxElasticCoef - reduction_for_flipper_in_motion
  470.  
  471. elasticCoef = base_elasticCoef
  472. If ballSpeed > 1 Then elasticCoef = expected_ball_speed_after_hit / ballSpeed
  473. elasticCoef = elasticCoef + minimum_elasticCoef_to_scale_fast_balls
  474.  
  475. If elasticCoef > maxElasticCoef Then elasticCoef = maxElasticCoef
  476.  
  477. FlipperExt.SetMaterial elasticCoef
  478. End If
  479. End Sub
  480.  
  481. ' === End of Dynamic Flipper Settings ===
  482.  
  483.  
  484. '################################ END OF PHYSICS SETTINGS ###################################
  485. '############################################################################################
  486.  
  487.  
  488. ' ****** BAM Shadow Maps ******
  489.  
  490. Sub BAM_Init
  491. xBAM.ShadowMap "bulbgi18", 1000 , 1 , 2.5, 2, 2, 1, 0
  492. xBAM.ShadowMap "bumpermiddle", 1000 , 1 , 2.5, 5, 3, 0.5, 0.02
  493. xBAM.ShadowMap "leftslingshotbulb1", 1000 , 1 , 2.5, 2, 1.5, 1, 0.05
  494. xBAM.ShadowMap "rightslingshotbulb1", 1000 , 1 , 2.5, 2, 1.5, 0.15, 0.05
  495. End Sub
  496.  
  497. ' ****** BAM Lighting and Post Processing ******
  498.  
  499. Sub SetLightsParamsInBAM()
  500. xBAM.Lights.EnableNewRenderer = TRUE
  501. xBAM.Lights.MainLightLock = FALSE
  502. xBAM.Lights.SetMainLightPosition 0, 200, 2000
  503. xBAM.Lights.SetMainLightProperties 1, 0.3, 1, 0.075
  504. xBAM.Lights.SetMainLightAttenuation 1, 0, 0
  505. xBAM.Lights.SetOtherLightsAttenuation 0.066, 0, 0.333
  506. xBAM.Lights.EnablePostprocessing = FALSE
  507. xBAM.Lights.SetPostprocessing 1, 0, 1, 1
  508. xBAM.Lights.SetPostprocessingForNewRenderer 1, 0, 1, 1, 1.5, 1, 1, 1, 0.6
  509. xBAM.Lights.BallReflection = 2
  510. xBAM.Lights.BallShininess = 400
  511. xBAM.Lights.BallSpecular = 0.4
  512. End Sub
  513.  
  514.  
  515. '=========================== TEXTURE/COLOUR-CHANGING BALL ===========================
  516.  
  517. ' USE THIS COMMAND LINE TO REPLACE 'PLUNGERKICKER.CREATECAPTIVEBALL'
  518.  
  519. ' call CreateCustomBall(PlungerKicker, BALL_A)
  520.  
  521. ' TO CALL THE FOLLOWING CODE...
  522.  
  523. Sub BAM_CreateCaptiveBall(Source, Red, Green, Blue, BallID, Dirt, Reflection, ReflectionInPlayfield)
  524. If BAM_VERSION Then
  525. Dim bi
  526. Set bi = xBAM_CreateBall(Red, Green, Blue, Dirt, Reflection, ReflectionInPlayfield)
  527. Source.CreateCaptiveBall bi.Red, bi.Green, bi.Blue, BallID
  528. Else
  529. Source.CreateCaptiveBall Red, Green, Blue, BallID
  530. End If
  531. End Sub
  532.  
  533. Dim BALL_A, BALL_B
  534.  
  535. BALL_A = 0
  536. BALL_B = 1
  537. Const BALL_LAST = 7
  538.  
  539. ReDim BM_CustomBalls ( BALL_LAST )
  540.  
  541. ' add your own textures here using the usual texture swap feature...
  542. BM_CustomBalls(BALL_A) = Array(200, 200, 200, "!BallChrome1", "!BallChrome2", "!BallChrome3")
  543. BM_CustomBalls(BALL_B) = Array(10, 10, 10, "!BallChrome1", "!BallChrome2", "!BallChrome3")
  544. ' you can add more variations if you wish...
  545.  
  546. Const BAM_MAX_BALLS = 4096
  547. ReDim BM_CustomBallsTypes ( BAM_MAX_BALLS )
  548.  
  549. ' here, I need to indentify which ball is Luke and which is Vader for the final mulitball...
  550.  
  551. Sub CreateCustomBall ( Source, BallName )
  552. If BallName > Ubound(BM_CustomBalls) Then ' Create standard ball if BallName is >= BALL_LAST
  553. Source.CreateCaptiveBall
  554. Else
  555. Dim ball : ball = BM_CustomBalls(BallName)
  556. Dim ballID : ballID = xBAM_BallID
  557. call BAM_CreateCaptiveBall ( Source, ball(0), ball(1), ball(2), ballID, ball(3), ball(4), ball(5) )
  558. BM_CustomBallsTypes ( ballID ) = BallName
  559. End If
  560. End Sub
  561.  
  562. '======================== END OF TEXTURE/COLOUR-CHANGING BALL ===========================
  563.  
  564.  
  565. ' ****** Custom Camera views ******
  566.  
  567. If use_CameraControl = TRUE then 'prompt user for choice of Camera Control when table is loaded and starts
  568. If (xBAM.Camera.ScriptControl = FALSE) Then xBAM.Camera.RequestForControl
  569. End If
  570.  
  571. ' New optional Static Camera view for desktop mode that looks MUCH better than the default scrolling view
  572.  
  573. Sub CameraView_Mutliball
  574. If use_CameraControl = false then Exit Sub
  575. if use_New_Static_Camera_View = true then CameraView_Default: Exit Sub
  576. xBAM.Camera.DesktopSet 254.2, 1185.4, 691.7, 254.2, 597.5, 0, 50, 500
  577. xBAM.Camera.DesktopSetLookAt 254.2, 1185.4, 691.7, 254.2, 597.5, 0, 50, 500
  578. End Sub
  579.  
  580. Sub CameraView_Default
  581. If use_CameraControl = false then Exit Sub
  582. if use_New_Static_Camera_View = true then
  583. xBAM.Camera.DesktopSet 258, 1151.9, 585.7, 257, 570.1, 0, 50, 400
  584. Exit Sub
  585. End If
  586. xBAM.Camera.DesktopRelease
  587. End Sub
  588.  
  589. Sub CameraView_LookAtBackBox
  590. If use_CameraControl = false then Exit Sub
  591. xBAM.Camera.DesktopSet 259.3, 861.6, 502.7, 260.2, 361.7, 511.7, 50, 500
  592. xBAM.Camera.DesktopSetLookAt 259.3, 861.6, 502.7, 260.2, 361.7, 511.7, 50, 500
  593. End Sub
  594.  
  595.  
  596. ' ****** MISC Startup Events ******
  597.  
  598. ' prevents old FP Game Room from loading
  599. xBAM.GameRoom = False
  600.  
  601. ' use the Table's settings for BAM Lighting and Post Processing on Startup (if Enabled)
  602. If use_Table_BAM_LightPresets = True then SetLightsParamsInBAM()
  603.  
  604. ' if VR mode or table HUD disabled, fade out HUD DMD and Videos (anything that fades in during gameplay, needed extra code added to disable it)
  605. If use_FP_HUD_DMD_and_Videos = false or xBAM.Camera.Mode = 2 then xBAM.HideHud()
  606.  
  607.  
  608.  
  609. '========================================================================================
  610.  
  611.  
  612. '################### LIGHTS, FLASHERS, BULBS ###################
  613.  
  614. '****** DO NOT MODIFY ******
  615.  
  616. xBAM.Lights.LockGlowBrightness = true
  617. xBAM.Lights.LockFlasherBrightness = false
  618.  
  619. DSSpot2Ext.DetachLight = True
  620. DSSpot2Ext.SetPosition 90,105,100
  621. DSSpot2Ext.Brightness = 2
  622.  
  623. TurretFlasherExt.DetachLight = True
  624. TurretFlasherExt.SetPosition 630,404,45
  625.  
  626. XWingExplosionFlashExt.DetachLight = True
  627. XWingExplosionFlashExt.SetPosition -602,521,1
  628.  
  629. TieFighterExplosionFlashExt.DetachLight = True
  630. TieFighterExplosionFlashExt.SetPosition 869,635,1
  631.  
  632. XWingLaserFlash1Ext.DetachLight = True
  633. XWingLaserFlash1Ext.SetPosition 815,119,0
  634. XWingLaserFlash2Ext.DetachLight = True
  635. XWingLaserFlash2Ext.SetPosition 860,119,0
  636. XWingLaserFlash3Ext.DetachLight = True
  637. XWingLaserFlash3Ext.SetPosition 905,119,0
  638. XWingLaserFlash4Ext.DetachLight = True
  639. XWingLaserFlash4Ext.SetPosition 950,119,0
  640.  
  641. XWingLaserFlash1Ext.brightness = 0.4
  642. XWingLaserFlash2Ext.brightness = 0.4
  643. XWingLaserFlash3Ext.brightness = 0.4
  644. XWingLaserFlash4Ext.brightness = 0.4
  645.  
  646. TieFighterLaserFlash1Ext.DetachLight = True
  647. TieFighterLaserFlash1Ext.SetPosition 570,118,0
  648. TieFighterLaserFlash2Ext.DetachLight = True
  649. TieFighterLaserFlash2Ext.SetPosition 630,118,0
  650. TieFighterLaserFlash3Ext.DetachLight = True
  651. TieFighterLaserFlash3Ext.SetPosition 690,118,0
  652. TieFighterLaserFlash4Ext.DetachLight = True
  653. TieFighterLaserFlash4Ext.SetPosition 750,118,0
  654.  
  655. TieFighterLaserFlash1Ext.brightness = 0.5
  656. TieFighterLaserFlash2Ext.brightness = 0.5
  657. TieFighterLaserFlash3Ext.brightness = 0.5
  658. TieFighterLaserFlash4Ext.brightness = 0.5
  659.  
  660. if xBAM.Camera.Mode = 1 then Bulb9Ext.SetLitColor 0, 0, 0 'if running in Cabinet mode, turn off bulb to prevent halo passing through Falcon
  661. if xBAM.Camera.Mode = 1 then BulbGI11Ext.SetLitColor 0, 0, 0 'if running in Cabinet mode, turn off bulb to prevent halo passing through Falcon
  662.  
  663. BulbGI16Ext.SetLitColor 0, 0, 0 'turn off bulb to prevent halo passing through Vader
  664.  
  665. BulbLSLExt.Brightness = 6.0 'brightness of left lightsaber blade's white core (best to keep this very bright)
  666. BulbLSRExt.Brightness = 6.0 'brightness of right lightsaber blade's white core (best to keep this very bright)
  667.  
  668. BulbLSLExt.GlowRadius = 0
  669. BulbLSRExt.GlowRadius = 0
  670. LightDefend1Ext.GlowRadius = 0
  671. LightDefend2Ext.GlowRadius = 0
  672. LightDefend3Ext.GlowRadius = 0
  673. LightDefend4Ext.GlowRadius = 0
  674. LightDefend5Ext.GlowRadius = 0
  675. LightDefend6Ext.GlowRadius = 0
  676. LightDefend7Ext.GlowRadius = 0
  677. LightDefend8Ext.GlowRadius = 0
  678. LightDefend9Ext.GlowRadius = 0
  679. LightDefend10Ext.GlowRadius = 0
  680. LightDefend20Ext.GlowRadius = 0
  681. LightAlien1Ext.GlowRadius = 0
  682. LightAlien2Ext.GlowRadius = 0
  683. LightAlien3Ext.GlowRadius = 0
  684. LightAlien4Ext.GlowRadius = 0
  685. LightAlien5Ext.GlowRadius = 0
  686. LightAlien6Ext.GlowRadius = 0
  687. LightAlien7Ext.GlowRadius = 0
  688. LightAlien8Ext.GlowRadius = 0
  689. LightAlien9Ext.GlowRadius = 0
  690. LightAlien10Ext.GlowRadius = 0
  691. LightAlien20Ext.GlowRadius = 0
  692.  
  693. '**** Flashers Brightness Control ****
  694.  
  695. Sub Light_Flashers_Brightness_GI_OFF()
  696. FlasherLeftExt.Brightness = Flashers_Brightness_GI_OFF
  697. FlasherRightExt.Brightness = PFLights_Brightness_GI_OFF
  698. Flasher2Ext.Brightness = PFLights_Brightness_GI_OFF
  699. End Sub
  700.  
  701. Sub Light_Flashers_Brightness_GI_ON()
  702. FlasherLeftExt.Brightness = Flashers_Brightness_GI_ON
  703. FlasherRightExt.Brightness = PFLights_Brightness_GI_ON
  704. Flasher2Ext.Brightness = PFLights_Brightness_GI_ON
  705. End Sub
  706.  
  707. '**** Bulbs Brightness Control ****
  708.  
  709. Sub Light_Bulbs_Brightness_GI_OFF()
  710. BulbBumper1Ext.Brightness = Bulbs_Brightness_GI_OFF
  711. BulbBumper2Ext.Brightness = Bulbs_Brightness_GI_OFF
  712. BulbBumper3Ext.Brightness = Bulbs_Brightness_GI_OFF
  713. BulbBottomExt.Brightness = Bulbs_Brightness_GI_OFF
  714. BulbMiddleExt.Brightness = Bulbs_Brightness_GI_OFF
  715. BulbTopExt.Brightness = Bulbs_Brightness_GI_OFF
  716. SoloBulb1Ext.Brightness = Bulbs_Brightness_GI_OFF
  717. SoloBulb2Ext.Brightness = Bulbs_Brightness_GI_OFF
  718. SoloBulb3Ext.Brightness = Bulbs_Brightness_GI_OFF
  719. SoloBulb4Ext.Brightness = Bulbs_Brightness_GI_OFF
  720. RightOutBulb1Ext.Brightness = Bulbs_Brightness_GI_OFF
  721. RightOutBulb2Ext.Brightness = Bulbs_Brightness_GI_OFF
  722. RightOutBulb3Ext.Brightness = Bulbs_Brightness_GI_OFF
  723. RightOutBulb4Ext.Brightness = Bulbs_Brightness_GI_OFF
  724. RightOutBulb5Ext.Brightness = Bulbs_Brightness_GI_OFF
  725. LeftOutBulb1Ext.Brightness = Bulbs_Brightness_GI_OFF
  726. LeftOutBulb2Ext.Brightness = Bulbs_Brightness_GI_OFF
  727. LeftOutBulb3Ext.Brightness = Bulbs_Brightness_GI_OFF
  728. LeftOutBulb4Ext.Brightness = Bulbs_Brightness_GI_OFF
  729. LeftOutBulb5Ext.Brightness = Bulbs_Brightness_GI_OFF
  730. R2HeadBulbExt.Brightness = Bulbs_Brightness_GI_OFF
  731. End Sub
  732.  
  733. Sub Light_Bulbs_Brightness_GI_ON()
  734. BulbBumper1Ext.Brightness = Bulbs_Brightness_GI_ON
  735. BulbBumper2Ext.Brightness = Bulbs_Brightness_GI_ON
  736. BulbBumper3Ext.Brightness = Bulbs_Brightness_GI_ON
  737. BulbBottomExt.Brightness = Bulbs_Brightness_GI_ON
  738. BulbMiddleExt.Brightness = Bulbs_Brightness_GI_ON
  739. BulbTopExt.Brightness = Bulbs_Brightness_GI_ON
  740. SoloBulb1Ext.Brightness = Bulbs_Brightness_GI_ON
  741. SoloBulb2Ext.Brightness = Bulbs_Brightness_GI_ON
  742. SoloBulb3Ext.Brightness = Bulbs_Brightness_GI_ON
  743. SoloBulb4Ext.Brightness = Bulbs_Brightness_GI_ON
  744. RightOutBulb1Ext.Brightness = Bulbs_Brightness_GI_ON
  745. RightOutBulb2Ext.Brightness = Bulbs_Brightness_GI_ON
  746. RightOutBulb3Ext.Brightness = Bulbs_Brightness_GI_ON
  747. RightOutBulb4Ext.Brightness = Bulbs_Brightness_GI_ON
  748. RightOutBulb5Ext.Brightness = Bulbs_Brightness_GI_ON
  749. LeftOutBulb1Ext.Brightness = Bulbs_Brightness_GI_ON
  750. LeftOutBulb2Ext.Brightness = Bulbs_Brightness_GI_ON
  751. LeftOutBulb3Ext.Brightness = Bulbs_Brightness_GI_ON
  752. LeftOutBulb4Ext.Brightness = Bulbs_Brightness_GI_ON
  753. LeftOutBulb5Ext.Brightness = Bulbs_Brightness_GI_ON
  754. R2HeadBulbExt.Brightness = Bulbs_Brightness_GI_ON
  755. End Sub
  756.  
  757. '**** Playfield Inserts Brightness Control ****
  758.  
  759. Sub Light_Inserts_Brightness_GI_OFF()
  760. LightShootAgainExt.Brightness = PFLights_Brightness_GI_OFF
  761. LightBonus2xExt.Brightness = PFLights_Brightness_GI_OFF
  762. LightBonus3xExt.Brightness = PFLights_Brightness_GI_OFF
  763. LightBonus4xExt.Brightness = PFLights_Brightness_GI_OFF
  764. LightBonus5xExt.Brightness = PFLights_Brightness_GI_OFF
  765. LightBonus6xExt.Brightness = PFLights_Brightness_GI_OFF
  766. LightSpecialLExt.Brightness = PFLights_Brightness_GI_OFF
  767. LightLeftInlaneExt.Brightness = PFLights_Brightness_GI_OFF
  768. LightRightInlaneExt.Brightness = PFLights_Brightness_GI_OFF
  769. LightSpecialRExt.Brightness = PFLights_Brightness_GI_OFF
  770. LightDefend1Ext.Brightness = PFLights_Brightness_GI_OFF
  771. LightDefend2Ext.Brightness = PFLights_Brightness_GI_OFF
  772. LightDefend3Ext.Brightness = PFLights_Brightness_GI_OFF
  773. LightDefend4Ext.Brightness = PFLights_Brightness_GI_OFF
  774. LightDefend5Ext.Brightness = PFLights_Brightness_GI_OFF
  775. LightDefend6Ext.Brightness = PFLights_Brightness_GI_OFF
  776. LightDefend7Ext.Brightness = PFLights_Brightness_GI_OFF
  777. LightDefend8Ext.Brightness = PFLights_Brightness_GI_OFF
  778. LightDefend9Ext.Brightness = PFLights_Brightness_GI_OFF
  779. LightDefend10Ext.Brightness = PFLights_Brightness_GI_OFF
  780. LightDefend20Ext.Brightness = PFLights_Brightness_GI_OFF
  781. LightAlien1Ext.Brightness = PFLights_Brightness_GI_OFF
  782. LightAlien2Ext.Brightness = PFLights_Brightness_GI_OFF
  783. LightAlien3Ext.Brightness = PFLights_Brightness_GI_OFF
  784. LightAlien4Ext.Brightness = PFLights_Brightness_GI_OFF
  785. LightAlien5Ext.Brightness = PFLights_Brightness_GI_OFF
  786. LightAlien6Ext.Brightness = PFLights_Brightness_GI_OFF
  787. LightAlien7Ext.Brightness = PFLights_Brightness_GI_OFF
  788. LightAlien8Ext.Brightness = PFLights_Brightness_GI_OFF
  789. LightAlien9Ext.Brightness = PFLights_Brightness_GI_OFF
  790. LightAlien10Ext.Brightness = PFLights_Brightness_GI_OFF
  791. LightAlien20Ext.Brightness = PFLights_Brightness_GI_OFF
  792. LightKnightExt.Brightness = PFLights_Brightness_GI_OFF
  793. LightMasterExt.Brightness = PFLights_Brightness_GI_OFF
  794. LightPadawanExt.Brightness = PFLights_Brightness_GI_OFF
  795. LightJodaExt.Brightness = PFLights_Brightness_GI_OFF
  796. LightExtraBallExt.Brightness = PFLights_Brightness_GI_OFF
  797. LightSpecialExt.Brightness = PFLights_Brightness_GI_OFF
  798. Light50000PointsExt.Brightness = PFLights_Brightness_GI_OFF
  799. LightDockExt.Brightness = PFLights_Brightness_GI_OFF
  800. TIElight1Ext.Brightness = PFLights_Brightness_GI_OFF
  801. TIElight2Ext.Brightness = PFLights_Brightness_GI_OFF
  802. LightFourBank1Ext.Brightness = PFLights_Brightness_GI_OFF
  803. LightFourBank2Ext.Brightness = PFLights_Brightness_GI_OFF
  804. LightFourBank3Ext.Brightness = PFLights_Brightness_GI_OFF
  805. LightFourBank4Ext.Brightness = PFLights_Brightness_GI_OFF
  806. LightThreeBank1Ext.Brightness = PFLights_Brightness_GI_OFF
  807. LightThreeBank2Ext.Brightness = PFLights_Brightness_GI_OFF
  808. LightThreeBank3Ext.Brightness = PFLights_Brightness_GI_OFF
  809. LightShipLeftExt.Brightness = PFLights_Brightness_GI_OFF
  810. BulbLeftStar1Ext.Brightness = PFLights_Brightness_GI_OFF
  811. BulbLeftStar2Ext.Brightness = PFLights_Brightness_GI_OFF
  812. BulbLeftStar3Ext.Brightness = PFLights_Brightness_GI_OFF
  813. LightLeftPowerUpExt.Brightness = PFLights_Brightness_GI_OFF
  814. LightLeftLockExt.Brightness = PFLights_Brightness_GI_OFF
  815. LightShipMiddleExt.Brightness = PFLights_Brightness_GI_OFF
  816. BulbMiddleStarExt.Brightness = PFLights_Brightness_GI_OFF
  817. LightShipRightExt.Brightness = PFLights_Brightness_GI_OFF
  818. BulbRightStarExt.Brightness = PFLights_Brightness_GI_OFF
  819. LightTopLane1Ext.Brightness = PFLights_Brightness_GI_OFF
  820. LightTopLane2Ext.Brightness = PFLights_Brightness_GI_OFF
  821. LightTopLane3Ext.Brightness = PFLights_Brightness_GI_OFF
  822. LightJackpotExt.Brightness = PFLights_Brightness_GI_OFF
  823. LightVExt.Brightness = PFLights_Brightness_GI_OFF
  824. LightAExt.Brightness = PFLights_Brightness_GI_OFF
  825. LightDExt.Brightness = PFLights_Brightness_GI_OFF
  826. LightEExt.Brightness = PFLights_Brightness_GI_OFF
  827. LightRExt.Brightness = PFLights_Brightness_GI_OFF
  828. LightKickBackExt.Brightness = PFLights_Brightness_GI_OFF
  829. VaderScoreLightExt.Brightness = PFLights_Brightness_GI_OFF
  830. End Sub
  831.  
  832. Sub Light_Inserts_Brightness_GI_ON()
  833. LightShootAgainExt.Brightness = PFLights_Brightness_GI_ON
  834. LightBonus2xExt.Brightness = PFLights_Brightness_GI_ON
  835. LightBonus3xExt.Brightness = PFLights_Brightness_GI_ON
  836. LightBonus4xExt.Brightness = PFLights_Brightness_GI_ON
  837. LightBonus5xExt.Brightness = PFLights_Brightness_GI_ON
  838. LightBonus6xExt.Brightness = PFLights_Brightness_GI_ON
  839. LightSpecialLExt.Brightness = PFLights_Brightness_GI_ON
  840. LightLeftInlaneExt.Brightness = PFLights_Brightness_GI_ON
  841. LightRightInlaneExt.Brightness = PFLights_Brightness_GI_ON
  842. LightSpecialRExt.Brightness = PFLights_Brightness_GI_ON
  843. LightDefend1Ext.Brightness = PFLights_Brightness_GI_ON
  844. LightDefend2Ext.Brightness = PFLights_Brightness_GI_ON
  845. LightDefend3Ext.Brightness = PFLights_Brightness_GI_ON
  846. LightDefend4Ext.Brightness = PFLights_Brightness_GI_ON
  847. LightDefend5Ext.Brightness = PFLights_Brightness_GI_ON
  848. LightDefend6Ext.Brightness = PFLights_Brightness_GI_ON
  849. LightDefend7Ext.Brightness = PFLights_Brightness_GI_ON
  850. LightDefend8Ext.Brightness = PFLights_Brightness_GI_ON
  851. LightDefend9Ext.Brightness = PFLights_Brightness_GI_ON
  852. LightDefend10Ext.Brightness = PFLights_Brightness_GI_ON
  853. LightDefend20Ext.Brightness = PFLights_Brightness_GI_ON
  854. LightAlien1Ext.Brightness = PFLights_Brightness_GI_ON
  855. LightAlien2Ext.Brightness = PFLights_Brightness_GI_ON
  856. LightAlien3Ext.Brightness = PFLights_Brightness_GI_ON
  857. LightAlien4Ext.Brightness = PFLights_Brightness_GI_ON
  858. LightAlien5Ext.Brightness = PFLights_Brightness_GI_ON
  859. LightAlien6Ext.Brightness = PFLights_Brightness_GI_ON
  860. LightAlien7Ext.Brightness = PFLights_Brightness_GI_ON
  861. LightAlien8Ext.Brightness = PFLights_Brightness_GI_ON
  862. LightAlien9Ext.Brightness = PFLights_Brightness_GI_ON
  863. LightAlien10Ext.Brightness = PFLights_Brightness_GI_ON
  864. LightAlien20Ext.Brightness = PFLights_Brightness_GI_ON
  865. LightKnightExt.Brightness = PFLights_Brightness_GI_ON
  866. LightMasterExt.Brightness = PFLights_Brightness_GI_ON
  867. LightPadawanExt.Brightness = PFLights_Brightness_GI_ON
  868. LightJodaExt.Brightness = PFLights_Brightness_GI_ON
  869. LightExtraBallExt.Brightness = PFLights_Brightness_GI_ON
  870. LightSpecialExt.Brightness = PFLights_Brightness_GI_ON
  871. Light50000PointsExt.Brightness = PFLights_Brightness_GI_ON
  872. LightDockExt.Brightness = PFLights_Brightness_GI_ON
  873. TIElight1Ext.Brightness = PFLights_Brightness_GI_ON
  874. TIElight2Ext.Brightness = PFLights_Brightness_GI_ON
  875. LightFourBank1Ext.Brightness = PFLights_Brightness_GI_ON
  876. LightFourBank2Ext.Brightness = PFLights_Brightness_GI_ON
  877. LightFourBank3Ext.Brightness = PFLights_Brightness_GI_ON
  878. LightFourBank4Ext.Brightness = PFLights_Brightness_GI_ON
  879. LightThreeBank1Ext.Brightness = PFLights_Brightness_GI_ON
  880. LightThreeBank2Ext.Brightness = PFLights_Brightness_GI_ON
  881. LightThreeBank3Ext.Brightness = PFLights_Brightness_GI_ON
  882. LightShipLeftExt.Brightness = PFLights_Brightness_GI_ON
  883. BulbLeftStar1Ext.Brightness = PFLights_Brightness_GI_ON
  884. BulbLeftStar2Ext.Brightness = PFLights_Brightness_GI_ON
  885. BulbLeftStar3Ext.Brightness = PFLights_Brightness_GI_ON
  886. LightLeftPowerUpExt.Brightness = PFLights_Brightness_GI_ON
  887. LightLeftLockExt.Brightness = PFLights_Brightness_GI_ON
  888. LightShipMiddleExt.Brightness = PFLights_Brightness_GI_ON
  889. BulbMiddleStarExt.Brightness = PFLights_Brightness_GI_ON
  890. LightShipRightExt.Brightness = PFLights_Brightness_GI_ON
  891. BulbRightStarExt.Brightness = PFLights_Brightness_GI_ON
  892. LightTopLane1Ext.Brightness = PFLights_Brightness_GI_ON
  893. LightTopLane2Ext.Brightness = PFLights_Brightness_GI_ON
  894. LightTopLane3Ext.Brightness = PFLights_Brightness_GI_ON
  895. LightJackpotExt.Brightness = PFLights_Brightness_GI_ON
  896. LightVExt.Brightness = PFLights_Brightness_GI_ON
  897. LightAExt.Brightness = PFLights_Brightness_GI_ON
  898. LightDExt.Brightness = PFLights_Brightness_GI_ON
  899. LightEExt.Brightness = PFLights_Brightness_GI_ON
  900. LightRExt.Brightness = PFLights_Brightness_GI_ON
  901. LightKickBackExt.Brightness = PFLights_Brightness_GI_ON
  902. VaderScoreLightExt.Brightness = PFLights_Brightness_GI_ON
  903. End Sub
  904.  
  905. '**** Set Brightness of Lights, Flashers and Bulbs on Table Startup ****
  906.  
  907. Light_Inserts_Brightness_GI_OFF() 'set brightness of light inserts
  908. Light_Flashers_Brightness_GI_OFF() 'set brightness of flashers
  909. Light_Bulbs_Brightness_GI_OFF() 'set brightness of bulbs
  910.  
  911. '===========================================================================================
  912.  
  913.  
  914.  
  915. BladeColor = 1 ' default blade color is blue...
  916.  
  917.  
  918.  
  919. Dim PlayersPlayingGame
  920. Dim CP
  921. Dim Overlay
  922.  
  923. Dim LastSwitchHit
  924. Dim BallsOnPlayfield
  925. Dim BallsInLock
  926. Dim TempState
  927.  
  928. Dim bOnTheFirstBall ' First Ball (player one). Used for Adding New Players
  929. Dim bBallInPlungerLane ' is there a ball in the plunger lane
  930. Dim bBallSaverActive ' is the ball saver active
  931. Dim bMultiBallMode ' multiball mode active ?
  932. Dim bEnteringAHighScore ' player is entering their name into the high score table
  933.  
  934. Dim EmpireBonus ' Value of Empire Bonus
  935. Dim RebellionBonus ' Value of Rebellion Bonus
  936. Dim AttackAwardLevel
  937.  
  938. Dim BonusMultiplier(4)
  939. Dim BallsRemaining(4)
  940. Dim ExtraBallsAwards(4)
  941. Dim bPadawanMode(4)
  942. Dim bKnightMode(4)
  943. Dim bMasterMode(4)
  944. Dim bYodaMode(4)
  945. Dim bSkyWalker(4)
  946. Dim TorpedoReady(4)
  947. Dim PadawanP(4)
  948. Dim KnightP(4)
  949. Dim MasterP(4)
  950. Dim YodaP(4)
  951. Dim Solo1P(4)
  952. Dim Solo2P(4)
  953. Dim Solo3P(4)
  954. Dim Solo4P(4)
  955. Dim BulbLvL1P(4)
  956. Dim BulbLvL2P(4)
  957. Dim BulbLvL3P(4)
  958.  
  959. Dim VictoryLap
  960. Dim VictoryValue
  961. Dim VictoryTotal
  962. Dim bExtraBallWonThisBall ' has the player already won an extra ball this ball
  963. Dim MusicChannelInUse
  964. Dim CurrentMusicTunePlaying
  965. Dim EjectBall
  966. Dim Eject
  967. Dim DSHit
  968. Dim QuoteBusy
  969. Dim TIETally(4) ' TIE fighters the player has destroyed in each game
  970. ' 50 = Extra Ball
  971. ' 100 = Extra Ball + 100,000 pts
  972. ' 150 = Extra Ball + 500,000 pts (it will never happen.....keep dreaming)
  973.  
  974. Dim RampTally(4)
  975. Dim SoloTally(4)
  976. Dim DeathStarTally(4) ' adds up the amount of Death Star's destroyed in a single game.,,,detroy 3 and win a free baloon!
  977. Dim BallSaverTally(4) ' sweet little mystery
  978. Dim LuckyBastard(4) ' match? you lucky bastard! you win a pointless extra credit but a very useful extra ball!
  979. Dim MatchPlayed(4)
  980. Dim TrenchPlay(4)
  981. Dim SSValue(4)
  982. Dim VaderHitValue(4)
  983. Dim EB5m(4),QTE(4)
  984. Dim Q3PO(4),Q2(4)
  985.  
  986. Dim JPHit
  987. Dim Sabre
  988. Dim BR
  989. Dim AttackBonus
  990. Dim TIEReward
  991. Dim AutoFire
  992. Dim TrenchValue
  993. Dim SSWin
  994. Dim Squadron
  995. Dim VaderValue
  996. Dim BSTime
  997. Dim FlashME
  998. Dim NewBall
  999. Dim Opening
  1000. Dim BonusDelayTime
  1001. Dim NextPlayer
  1002. Dim DMDBusy
  1003. Dim ScoreX
  1004. Dim PointReward
  1005. Dim VMode
  1006. Dim VaderScoring
  1007. Dim RWD
  1008. Dim HoldBonus
  1009. Dim BonusHeld
  1010. Dim RewardSAVER
  1011. Dim RewardSAVER2
  1012. Dim RewardBALL
  1013. Dim RewardJEDI
  1014. Dim RewardSHOTS
  1015. Dim RewardJEDI2
  1016. Dim Vol
  1017. Dim BumpHit
  1018. Dim BumpValue
  1019. Dim PlayMe
  1020. Dim Pilot1,Pilot2,Pilot3,Pilot4
  1021. Dim BGArt
  1022. Dim FireL
  1023. Dim FireR
  1024. Dim Hit
  1025. Dim QFire
  1026. Dim ChewiePerk,LeiaPerk,ObiWanPerk,HanPerk,LukePerk
  1027. Dim FadeTime
  1028. Dim RedWin,BlueWin,LastBall,SithStrike
  1029. Dim TimeAttack
  1030. Dim SpinMe
  1031. Dim BladeColor,TA,VaderLS
  1032. Dim TIEPlay
  1033.  
  1034.  
  1035. Vol = 0.5 ' adjust the music volume...
  1036.  
  1037.  
  1038. function RandomNumber(ByVal max)
  1039. RandomNumber = Int(max * Rnd + 1)
  1040. end function
  1041.  
  1042.  
  1043. nvBallsPerGame = 3 ' Recommended as 3 BALL GAME, too easy and quickly boring with more...but you're the boss...
  1044.  
  1045.  
  1046.  
  1047. ' **************************************************************************
  1048. ' ** **
  1049. ' ** A JEDI USES THE FORCE FOR DEFENSE, NEVER FOR ATTACK **
  1050. ' ** **
  1051. ' **************************************************************************
  1052.  
  1053. ' the table if first powered on...
  1054.  
  1055. Sub FuturePinball_BeginPlay()
  1056.  
  1057. DOFLinx_LINK() 'DOFLinx_LINK
  1058.  
  1059.  
  1060.  
  1061.  
  1062. 'Sub FuturePinball_BeginPlay()
  1063. countdown.frame 31
  1064. Randomize
  1065. MyDMD.AddFont 1, "dmd05x05p"
  1066. MyDMD.AddFont 2, "dmd06x07p"
  1067. MyDMD.AddFont 3, "dmd08x09p"
  1068. MyDMD.AddFont 4, "dmd08x13p"
  1069. MyDMD.AddFont 5, "dmd09x11po"
  1070. MyDMD.AddFont 6, "dmd09x15po"
  1071. MyDMD.AddFont 8, "dmd08x09n"
  1072. MyDMD.SetValue(nvScore1)
  1073. MyDMD2.AddFont 1, "dmd05x05p"
  1074. MyDMD2.AddFont 2, "dmd06x07p"
  1075. MyDMD2.AddFont 3, "dmd08x09p"
  1076. MyDMD2.AddFont 4, "dmd08x13p"
  1077. MyDMD2.AddFont 5, "dmd09x11po"
  1078. MyDMD2.AddFont 6, "dmd09x15po"
  1079. MyDMD2.AddFont 8, "dmd08x09n"
  1080. MyDMD2.SetValue(nvScore1)
  1081. RewardSAVER = FALSE
  1082. RewardSAVER2 = FALSE
  1083. RewardJEDI = FALSE
  1084. RewardBALL = FALSE
  1085. RewardSHOTS = FALSE
  1086. Crossover.Collidable = FALSE
  1087. set LastSwitchHit = TriggerLeftStar1
  1088. PlayMe = 0
  1089. BGArt = 0
  1090. Opening = 0
  1091. MovieOverlay.Frame 985: HUDOverlay.Frame 985
  1092. NewMovie.FadeOut: NewMovieHUD.FadeOut
  1093. NewMovie.Frame 1: NewMovieHUD.Frame 1
  1094. MyDMD.Text = "[na] "
  1095. MyDMD2.Text = "[na] "
  1096. nvCredits = 0
  1097. Sabre = 0
  1098. HologramR2D2.Frame 1
  1099. bOnTheFirstBall = FALSE
  1100. bEnteringAHighScore = FALSE
  1101. BallsOnPlayfield = 0
  1102. BallsInLock = 0
  1103. BackOverlay.FadeOut: BackOverlay.Frame 257
  1104. BGReflect.Render = FALSE
  1105. MachineOnTimer.Set TRUE, 1000
  1106. AllPlasOff()
  1107. LightSeqPF.Play SeqAllOff
  1108. BackBox.Play SeqAllOff: OverlayBG.Frame 2
  1109.  
  1110. FourBank1.PopDown
  1111. FourBank2.PopDown
  1112. FourBank3.PopDown
  1113. FourBank4.PopDown
  1114. ThreeBank1.PopDown
  1115. ThreeBank2.PopDown
  1116. ThreeBank3.PopDown
  1117.  
  1118. VaderLS = FALSE
  1119.  
  1120. LSLOff()
  1121. LSROff()
  1122. End Sub
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128. Sub MachineOnTimer_Expired()
  1129. Opening = Opening + 1
  1130. MachineOnTimer.Set TRUE, 3000
  1131. Select Case Opening
  1132. Case 1:
  1133. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  1134. NewMovie.Frame 169: NewMovieHUD.Frame 169
  1135. Case 2:
  1136. MachineOnTimer.Enabled = FALSE
  1137. NewMovie.FadeOut: NewMovieHUD.FadeOut
  1138. DiscoTimer.Set TRUE, 1500
  1139. AttractDelayTimer.Set TRUE, 7500
  1140. End Select
  1141. End Sub
  1142.  
  1143.  
  1144.  
  1145.  
  1146. Sub DiscoTimer_Expired()
  1147. DiscoTimer.Enabled = FALSE
  1148. LightSeqPF.Play SeqAllOn
  1149. BackBox.StopPlay: OverlayBG.Frame 1
  1150. NewMovie.Frame 1: NewMovieHUD.Frame 1
  1151. PlayMusic 3, "Music_Mode2", FALSE, 0.6
  1152. DOFLinx_StarWars_Startup_Timer.Enabled=True 'DOFLinx_StarWars_Startup_Timer.Enabled=True
  1153.  
  1154. If (nvCredits = 0) Then
  1155. MyDMD.QueueText "[edge3][f4][yc]STAR WARS", deWipeOut, 3000, FALSE
  1156. MyDMD.QueueText "[edge3][f1][y7]CREATED BY[f2][y17]SLAMT1LT", deWipeIn, 2500, FALSE
  1157. MyDMD.QueueText "[edge3][f1][y7]DOFLINX MX Mod 1.1 BY[f2][y17]TerryRed", deWipeIn, 2500, FALSE
  1158. MyDMD.QueueText "[edge3][f1][y7]EPIC SPACE BATTLES BY[f2][y17]TERRYRED", deWipeIn, 2500, FALSE
  1159. MyDMD.QueueText "[edge3][f4][yc]GAME OVER", deScrollRight, 3000, FALSE
  1160. MyDMD.QueueText "[edge3][f4][yc] ", deNone, 500, FALSE
  1161. MyDMD.QueueText "[edge3][b][f4][yc]INSERT COIN[/b]", deWipeOut, 5000, FALSE
  1162. MyDMD.QueueText "[edge3][yc][f3]TOP 3 PILOTS...", deScrollUp, 2000, FALSE
  1163. MyDMD.QueueText "[edge3][yc][f3]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollUp, 1500, FALSE
  1164. MyDMD.QueueText "[edge3][yc][f3]" & left(nvHighScore2Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollUp, 1500, FALSE
  1165. MyDMD.QueueText "[edge3][yc][f3]" & left(nvHighScore3Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollUp, 1500, FALSE
  1166. Else
  1167. MyDMD2.QueueText "[edge3][f4][yc]STAR WARS", deWipeOut, 3000, FALSE
  1168. MyDMD.QueueText "[edge3][f4][yc]GAME OVER", deWipeDown, 2000, FALSE
  1169. MyDMD.QueueText "[edge3][f2][yc][xc]CREDIT " & nvCredits, deNone, 3000, FALSE
  1170. MyDMD.QueueText "[edge3][b][f4][yc][b]PRESS START", deWipeOut, 4000, FALSE
  1171. End If
  1172.  
  1173. If (nvCredits = 0) Then
  1174. MyDMD2.QueueText "[edge3][f4][yc]STAR WARS", deWipeOut, 3000, FALSE
  1175. MyDMD2.QueueText "[edge3][f1][y7]CREATED BY[f2][y17]SLAMT1LT", deWipeIn, 2500, FALSE
  1176. MyDMD2.QueueText "[edge3][f1][y7]DOFLINX MX Mod 1.1 BY[f2][y17]TerryRed", deWipeIn, 2500, FALSE
  1177. MyDMD2.QueueText "[edge3][f1][y7]EPIC SPACE BATTLES BY[f2][y17]TERRYRED", deWipeIn, 2500, FALSE
  1178. MyDMD2.QueueText "[edge3][f4][yc]GAME OVER", deScrollRight, 3000, FALSE
  1179. MyDMD2.QueueText "[edge3][f4][yc] ", deNone, 500, FALSE
  1180. MyDMD2.QueueText "[edge3][b][f4][yc]INSERT COIN[/b]", deWipeOut, 5000, FALSE
  1181. MyDMD2.QueueText "[edge3][yc][f3]TOP 3 PILOTS...", deScrollUp, 2000, FALSE
  1182. MyDMD2.QueueText "[edge3][yc][f3]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollUp, 1500, FALSE
  1183. MyDMD2.QueueText "[edge3][yc][f3]" & left(nvHighScore2Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollUp, 1500, FALSE
  1184. MyDMD2.QueueText "[edge3][yc][f3]" & left(nvHighScore3Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollUp, 1500, FALSE
  1185. Else
  1186. MyDMD2.QueueText "[edge3][f4][yc]STAR WARS", deWipeOut, 3000, FALSE
  1187. MyDMD2.QueueText "[edge3][f4][yc]GAME OVER", deWipeDown, 2000, FALSE
  1188. MyDMD2.QueueText "[edge3][f2][yc][xc]CREDIT " & nvCredits, deNone, 3000, FALSE
  1189. MyDMD2.QueueText "[edge3][b][f4][yc][b]PRESS START", deWipeOut, 4000, FALSE
  1190. End If
  1191.  
  1192. MovieOverlay.UpdateInterval = 80:MovieOverlay.Frame 1, 16
  1193. HUDOverlay.UpdateInterval = 80: HUDOverlay.Frame 1, 16
  1194. End Sub
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200. Sub FuturePinball_KeyPressed(ByVal KeyCode)
  1201.  
  1202.  
  1203.  
  1204. If (KeyCode = 19) Then
  1205. End If
  1206.  
  1207. If (KeyCode = 20) Then
  1208. End If
  1209.  
  1210.  
  1211.  
  1212. ' turn on the lightsabers during the attract sequence....
  1213. If (KeyCode = GetKeyCode(Special2Key)) and (fpGameInPlay = FALSE) Then
  1214. Select Case Sabre
  1215. case 0: AllPlasOff(): LSLOn(): Sabre = 1: PlayMusic 3, "fx_LightSabreOn": DOFLinx_Blue_Lightsaber_On() 'DOFLinx_Blue_Lightsaber_On
  1216. case 1: LSLOff(): LSROn(): Sabre = 2: PlayMusic 3, "fx_LightSabreOn": DOFLinx_Red_Lightsaber_On() 'DOFLinx_Red_Lightsaber_On
  1217. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 3100: PlayMusic 1, "vo_Lightsaber", FALSE, 1, 500
  1218. case 2: AllPlasOn(): LSROff(): Sabre = 3: PlayMusic 3, "fx_LSOff": DOFLinx_Lightsabers_Off() 'DOFLinx_Lightsabers_Off
  1219. case 3: AllPlasOff(): LSLOn(): LSROn(): Sabre = 4: PlayMusic 3, "fx_BothSabresOn": DOFLinx_Lightsabers_On() 'DOFLinx_Lightsabers_On
  1220. case 4: AllPlasOn(): LSLOff(): LSROff(): Sabre = 5: PlayMusic 3, "fx_LSOff": DOFLinx_Lightsabers_Off() 'DOFLinx_Lightsabers_Off
  1221. case 5: Sabre = 0
  1222. case 5: Sabre = 0
  1223. End Select
  1224. End If
  1225.  
  1226. If (KeyCode = GetKeyCode(Special2Key)) and (fpGameInPlay = TRUE) Then
  1227. CameraView_Default 'set the new static camera view if enabled during gameplay
  1228. End If
  1229.  
  1230. ' change backglass art and reset the highscore table...
  1231. If (KeyCode = GetKeyCode(Special1Key)) Then
  1232. If (fpGameInPlay = FALSE) Then
  1233. PlaySound "BeepShort"
  1234. Select Case BGArt
  1235. Case 0:
  1236. BackBox.Play SeqAllOff:OverlayBG.Frame 3: BGArt = 1 ' show alt BG art...
  1237. Case 1:
  1238. BackBox.Play SeqAllOff: OverlayBG.Frame 4: BGArt = 2 ' show alt2 BG art..
  1239. Case 2:
  1240. BackBox.StopPlay: OverlayBG.Frame 1: BGArt = 0 ' show main BG art...
  1241. End Select
  1242. End If
  1243. End If
  1244.  
  1245. If (KeyCode = GetKeyCode(InsertCoinKey)) Then
  1246. If (HighScoreTimer.Enabled = TRUE) Then Exit Sub
  1247. If (MachineOnTimer.Enabled = TRUE) or (DiscoTimer.Enabled = TRUE) Then Exit Sub
  1248. PlaySound "fx_CoinIn"
  1249. DOFLinx_Coin_Inserted() 'DOFLinx Coin Inserted
  1250. nvCredits = nvCredits + 1
  1251.  
  1252. If (fpGameInPlay = TRUE) or (TA = TRUE) Then Exit Sub
  1253.  
  1254. StopMusic 1: StopMusic 3: StopMusic 6
  1255.  
  1256. ' stop all attract sequence nonsence when a coin is inserted, it did it's job and
  1257. ' lured another punter to the machine...
  1258. MusicResume.Enabled = FALSE
  1259. AttractModeTimer.Enabled = FALSE
  1260. AttractDelayTimer.Enabled = FALSE
  1261. WakeUpTimer.Enabled = FALSE
  1262. If (fpTilted = FALSE) Then
  1263. If (nvCredits = 1) Then
  1264. DOFLinx_CoinsIn_StartFlash() 'DOFLinx Coins In, Start Button Flashing
  1265. Select Case RandomNumber(3)
  1266. Case 1: PlayMusic 2, "vo_LiftOff"
  1267. Case 2: PlayMusic 2, "vo_LiftOff2"
  1268. Case 3: PlaySound "vo_GoodLuckCoin"
  1269. PFFlash.Set TRUE, 100: FlashME = 14
  1270. MovieOverlay.UpdateInterval = 80: HUDOverlay.UpdateInterval = 80
  1271. End Select
  1272. MovieOverlay.Frame 554, 577
  1273. HUDOverlay.Frame 554, 577 ' logo in/out
  1274. Else
  1275. R2HeadBulb.FlashForMs 800, 100, BulbOff
  1276. PlaySound "fx_R2Sound10"
  1277. MovieOverlay.Frame 11: HUDoverlay.Frame 11
  1278. End If
  1279. MyDMD.Text = "[edge3][f4][yc][xc]CREDITS: " & nvCredits
  1280. MyDMD2.Text = "[edge3][f4][yc][xc]CREDITS: " & nvCredits
  1281. End If
  1282. End If
  1283.  
  1284. If (Keycode = GetKeyCode(PlungerKey)) Then
  1285. If (PointReward = TRUE) Then
  1286. RewardListTimer.Enabled = FALSE
  1287. MovieOverlay.Frame 989: HUDOverlay.Frame 989
  1288.  
  1289. If (RewardSAVER = TRUE) Then
  1290. PlaySound "vo_AsYouWish": VaderScoreLight.FlashForMs 2000, 2000, VaderScoreLight.State
  1291. PointReward = FALSE
  1292. MyDMD.Text = "[f1][y7]BALL SAVE EXTENDED[f3][y16]+ 5 SECS"
  1293. MyDMD2.Text = "[f1][y7]BALL SAVE EXTENDED[f3][y16]+ 5 SECS"
  1294. RewardsTimer.Set TRUE, 2000
  1295. Exit Sub
  1296. End If
  1297.  
  1298. If (RewardJEDI = TRUE) Then
  1299. PlaySound "vo_Good": VaderScoreLight.FlashForMs 500, 500, VaderScoreLight.State
  1300. PointReward = FALSE
  1301. MyDMD.Text = "[f3][yc]PADAWAN START"
  1302. MyDMD2.Text = "[f3][yc]PADAWAN START"
  1303. RewardsTimer.Set TRUE, 2000
  1304. Exit Sub
  1305. End If
  1306.  
  1307. R2HeadBulb.FlashForMs 800, 150, BulbOff
  1308. PlaySound "vo_R2Laugh"
  1309.  
  1310. If (RewardSHOTS = TRUE) Then
  1311. PlaySound "vo_Correct"
  1312. PointReward = FALSE
  1313. MyDMD.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADV + 2"
  1314. MyDMD2.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADV + 2"
  1315. RewardsTimer.Set TRUE, 2000
  1316. End If
  1317. If (RewardSAVER2 = TRUE) Then
  1318. PointReward = FALSE
  1319. MyDMD.Text = "[f1][y7]BALL SAVE EXTENDED[f3][y16]+ 10 SECS"
  1320. MyDMD2.Text = "[f1][y7]BALL SAVE EXTENDED[f3][y16]+ 10 SECS"
  1321. RewardsTimer.Set TRUE, 2000
  1322. End If
  1323. If (RewardBALL = TRUE) Then
  1324. PointReward = FALSE
  1325. MyDMD.Text = "[f3][yc]BALL ADDED"
  1326. MyDMD2.Text = "[f3][yc]BALL ADDED"
  1327. RewardsTimer.Set TRUE, 2000
  1328. End If
  1329. If (RewardJEDI2 = TRUE) Then
  1330. PointReward = FALSE
  1331. MyDMD.Text = "[f3][yc]JEDI KNIGHT START"
  1332. MyDMD2.Text = "[f3][yc]JEDI KNIGHT START"
  1333. RewardsTimer.Set TRUE, 2000
  1334. End If
  1335. Exit Sub
  1336. End If
  1337.  
  1338. If (bMultiBallMode = FALSE) Then
  1339. If (HighScoreTimer.Enabled = TRUE) Then Exit Sub
  1340. If (bBallInPlungerLane = TRUE) and (JackpotTimer.Enabled = FALSE) Then
  1341. Plunger.SolenoidPulse
  1342. DOFLinx_AutoPlunger() 'DOFLinx - AutoPlunger
  1343. If (SSTimer.Enabled = TRUE) or (SSTimer2.Enabled = TRUE) Then
  1344. If (SSWin = TRUE) Then
  1345. PlaySound "fx_SSFire"
  1346. DOFLinx_Skillshot_Fire() 'DOFLinx - Skillshot Fire
  1347. 'PlaySound "vo_FireItsAway"
  1348. MovieTimer.Set TRUE, 1200
  1349. MovieOverlay.UpdateInterval = 67:MovieOverlay.frame 879, 892
  1350. HUDOverlay.UpdateInterval = 67: HUDOverlay.frame 879, 892
  1351. Else
  1352. StopMusic 3
  1353. PlaySound "Plungerrelease"
  1354. MovieTimer.Set TRUE, 10
  1355. End If
  1356. SSTimer.Enabled = FALSE
  1357. SSTimer2.Enabled = FALSE
  1358. Else
  1359. PlaySound "Plungerrelease"
  1360. End If
  1361. End If
  1362. Else
  1363. If (bBallInPlungerLane = TRUE) and (JackpotTimer.Enabled = FALSE) Then
  1364. PlaySound "plunger2tie"
  1365. Plunger.SolenoidPulse
  1366. DOFLinx_AutoPlunger() 'DOFLinx - AutoPlunger
  1367. End If
  1368. End If
  1369. End If
  1370.  
  1371. If (fpGameInPlay = TRUE) Then
  1372. If (fpTilted = FALSE) Then
  1373.  
  1374. If (KeyCode = GetKeyCode(LeftFlipperKey)) Then
  1375.  
  1376. ' YES to points reward...
  1377. If (PointReward = TRUE) and (RewardListTimer.Enabled = FALSE) Then
  1378. RewardsTimer.Enabled = FALSE
  1379. RewardListTimer.Set TRUE, 1300
  1380. RWD = 0
  1381. R2HeadBulb.FlashForMs 1000, 150, BulbOff
  1382. PlaySound "fx_R2Sound9"
  1383. MyDMD.Text = "[f1][y7]POINTS TO SPEND[f3][y16][bf]" & FormatNumber(nvScore(CP), 0, -1, 0, -1)
  1384. MyDMD2.Text = "[f1][y7]POINTS TO SPEND[f3][y16][bf]" & FormatNumber(nvScore(CP), 0, -1, 0, -1)
  1385. MovieOverlay.Frame 988: HUDOverlay.Frame 988
  1386. Exit Sub
  1387. End If
  1388.  
  1389. ' video mode wrong input...
  1390. If (FireR = TRUE) Then
  1391. PlaySound "BeepShort"
  1392. FireL = FALSE: FireR = FALSE
  1393. MissFire.Set TRUE, 100
  1394. Exit Sub
  1395. End If
  1396.  
  1397. ' video mode correct input...
  1398. If (FireL = TRUE) Then
  1399. PlaySound "fx_TIELaser"
  1400. DOFLinx_Falcon_Fire_Hit() 'DOFLinx_Falcon_Fire_Hit
  1401. Hit = Hit + 1
  1402. If (Hit = 1) Then PlaySound "fx_CanonFire": FalconFire.Set TRUE, 1500
  1403. If (Hit = 2) Then PlaySound "vo_GotHim5": FalconFire.Set TRUE, 2800
  1404. If (Hit = 3) Then PlaySound "vo_HanGotHim2"
  1405. MyDMD.Text = "[edge3][f4][yc][xc]GOOD"
  1406. MyDMD2.Text = "[edge3][f4][yc][xc]GOOD"
  1407. FireL = FALSE
  1408. MissFire.Enabled = FALSE
  1409. 'If (Hit < 3) Then FalconFire.Set TRUE, 1600
  1410. Exit Sub
  1411. End If
  1412.  
  1413. If (BallsOnPlayfield > 0) Then
  1414. LeftFlipper.SolenoidOn: TopFlipper.SolenoidOn
  1415. DOFLinx_Left_Flipper_On() 'DOFLinx - Left Flipper On
  1416. TempState = LightTopLane1.State
  1417. LightTopLane1.State = LightTopLane2.State
  1418. LightTopLane2.State = LightTopLane3.State
  1419. LightTopLane3.State = TempState
  1420. End If
  1421. End If
  1422.  
  1423. If (KeyCode = GetKeyCode(RightFlipperKey)) Then
  1424.  
  1425. ' NO to points reward...
  1426. If (PointReward = TRUE) and (RewardListTimer.Enabled = FALSE) Then
  1427. PlaySound "fx_R2Sound5"
  1428. R2HeadBulb.FlashForMs 1500, 500, BulbOff
  1429. PointReward = FALSE
  1430. MyDMD.Text = "[f1][y7]POINTS REWARD[f3][y16][bf]CANCELLED"
  1431. MyDMD2.Text = "[f1][y7]POINTS REWARD[f3][y16][bf]CANCELLED"
  1432. RewardsTimer.Set TRUE, 1500
  1433. Exit Sub
  1434. End If
  1435.  
  1436. If (FireL = TRUE) Then
  1437. PlaySound "BeepShort"
  1438. FireL = FALSE: FireR = FALSE
  1439. MissFire.Set TRUE, 100
  1440. Exit Sub
  1441. End If
  1442.  
  1443. If (FireR = TRUE) Then
  1444. PlaySound "fx_TIELaser"
  1445. DOFLinx_Falcon_Fire_Hit() 'DOFLinx_Falcon_Fire_Hit
  1446. Hit = Hit + 1
  1447. If (Hit = 1) Then PlaySound "fx_CanonFire": FalconFire.Set TRUE, 1500
  1448. If (Hit = 2) Then PlaySound "vo_GotHim6": FalconFire.Set TRUE, 2800
  1449. If (Hit = 3) Then PlaySound "vo_HanGotHim2"
  1450. MyDMD.Text = "[edge3][f4][yc][xc]GOOD"
  1451. MyDMD2.Text = "[edge3][f4][yc][xc]GOOD"
  1452. FireR = FALSE
  1453. MissFire.Enabled = FALSE
  1454. 'If (Hit < 3) Then FalconFire.Set TRUE, 1600
  1455. Exit Sub
  1456. End If
  1457.  
  1458. If (BallsOnPlayfield > 0) Then
  1459. RightFlipper.SolenoidOn
  1460. DOFLinx_Right_Flipper_On() 'DOFLinx - Right Flipper On
  1461. TempState = LightTopLane3.State
  1462. LightTopLane3.State = LightTopLane2.State
  1463. LightTopLane2.State = LightTopLane1.State
  1464. LightTopLane1.State = TempState
  1465. End If
  1466. End If
  1467.  
  1468. If (KeyCode = GetKeyCode(StartGameKey)) Then
  1469.  
  1470. If (HighScoreTimer.Enabled = TRUE) Then Exit Sub
  1471.  
  1472. ' Max of 4 players per game...
  1473. If ((PlayersPlayingGame < 4) and (bOnTheFirstBall = TRUE)) Then
  1474. ' only if you have Imperial credits...
  1475. DOFLinx_CoinOn_StartOn() 'DOFLinx Coins & Start Button On, Game In Play
  1476. If (nvCredits > 0) and (TimeAttack = FALSE) Then
  1477. DOFLinx_CoinOn_StartOn() 'DOFLinx Coins & Start Button On, Game In Play
  1478. PlayersPlayingGame = PlayersPlayingGame + 1
  1479. nvCredits = nvCredits - 1
  1480. If (PlayersPlayingGame = 2) Then PlayMusic 4, "vo_Red2"
  1481. If (PlayersPlayingGame = 3) Then PlayMusic 4, "vo_Red3"
  1482. If (PlayersPlayingGame = 4) Then PlayMusic 4, "vo_Friends"
  1483. ScoreTimer.Enabled = FALSE ' stop the scrolling message...
  1484. MyDMD.Text = "[edge3][f4][yc][xc]NEW PILOT"
  1485. MyDMD2.Text = "[edge3][f4][yc][xc]NEW PILOT"
  1486. If (FirstBallDelayTimer.Enabled = TRUE) Then
  1487. MovieOverlay.Frame 664: HUDOverlay.Frame 664
  1488. FirstBallDelayTimer.Set TRUE, 1000
  1489. End If
  1490. Else
  1491. PlaySound "fx_Droid"
  1492. MyDMD.Text = "[edge3][f4][yc][xc]1 PLAYER ONLY"
  1493. MyDMD2.Text = "[edge3][f4][yc][xc]1 PLAYER ONLY"
  1494. DOFLinx_NoPay_NoPlay() 'DOFLinx NoPay NoPlay
  1495. End If
  1496. End If
  1497. End If
  1498. End If
  1499. Else
  1500.  
  1501. If (KeyCode = GetKeyCode(LeftFlipperKey)) Then
  1502.  
  1503. ' player selected 'YES' to Time Attack, ok then, let's do it....
  1504. If (TA = TRUE) Then
  1505. TA = FALSE: TimeAttack = TRUE: TAStart = 0: TATimer.Set TRUE, 3200 ' start 5 min timer...
  1506. DSSpot1.FlashForMs 2000, 100, BulbOff
  1507. DSSpot2.FlashForMs 2000, 100, BulbOff
  1508. TATime = 310
  1509. StopMusic 1: PlaySound "fx_TAStart"
  1510. PlayThis = 2: AnimationStart()
  1511. Exit Sub
  1512. End If
  1513.  
  1514. ' pick a colour, any color from baby boy blue, manly green or girly purple...
  1515. ' Vader always has red because he's a cool mo-fo...
  1516.  
  1517. If (BladeColor = 5) Then BladeColor = 0
  1518. BladeColor = BladeColor + 1
  1519. PlaySound "Bonus Counter Left"
  1520. LSLOn()
  1521. Select Case BladeColor
  1522. Case 1:
  1523. MyDMD.Text = "[edge3][f4][yc][xc]BLUE LIGHTSABER"
  1524. MyDMD2.Text = "[edge3][f4][yc][xc]BLUE LIGHTSABER"
  1525. Case 2:
  1526. MyDMD.Text = "[edge3][f4][yc][xc]GREEN LIGHTSABER"
  1527. MyDMD2.Text = "[edge3][f4][yc][xc]GREEN LIGHTSABER"
  1528. Case 3:
  1529. If (VaderLS = FALSE) Then
  1530. VaderLS = TRUE
  1531. Select Case RandomNumber(2)
  1532. Case 1:
  1533. PlayMusic 1, "vo_NewLightsaber", FALSE, 1
  1534. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 3200
  1535. VaderScoreLight.FlashForMs 3200, 3200
  1536. Case 2:
  1537. PlayMusic 1, "vo_Lightsaber", FALSE, 1, 200
  1538. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 2900
  1539. End Select
  1540. End If
  1541. MyDMD.Text = "[edge3][f4][yc][xc]PURPLE LIGHTSABER"
  1542. MyDMD2.Text = "[edge3][f4][yc][xc]PURPLE LIGHTSABER"
  1543. Case 4:
  1544. MyDMD.Text = "[edge3][f4][yc][xc]YELLOW LIGHTSABER"
  1545. MyDMD2.Text = "[edge3][f4][yc][xc]YELLOW LIGHTSABER"
  1546. Case 5:
  1547. MyDMD.Text = "[edge3][f4][yc][xc]ORANGE LIGHTSABER"
  1548. MyDMD2.Text = "[edge3][f4][yc][xc]ORANGE LIGHTSABER"
  1549. End Select
  1550. AttractModeTimer.Enabled = FALSE
  1551. AttractDelayTimer.Enabled = FALSE
  1552. WakeUpTimer.Enabled = FALSE
  1553. AttractModeTimer.Set TRUE, 8000
  1554. DMDTimer.Set TRUE, 2000
  1555. SabreTimer.Set TRUE, 2000
  1556. End If
  1557.  
  1558. ' player selected 'NO' to Time Attack, so just start the normal game...
  1559.  
  1560. If (KeyCode = GetKeyCode(RightFlipperKey)) Then
  1561. CameraView_Default 'set the new static camera view if enabled
  1562. If (TA = TRUE) Then
  1563. TA = FALSE
  1564. PointReward = FALSE
  1565. DSSpot1.FlashForMs 100, 100, BulbOff
  1566. DSSpot2.FlashForMs 100, 100, BulbOff
  1567. ResetForNewGame()
  1568. Exit Sub
  1569. End If
  1570. End If
  1571.  
  1572. If (KeyCode = GetKeyCode(StartGameKey)) Then
  1573.  
  1574. If (HighScoreTimer.Enabled = TRUE) Then Exit Sub
  1575. If (MachineOnTimer.Enabled = TRUE) or (DiscoTimer.Enabled = TRUE) Then Exit Sub
  1576. If (nvCredits > 0) Then
  1577.  
  1578. ' first, choose a game mode: normal or Time Attack...
  1579.  
  1580. If (BallsOnPlayfield = 0) Then
  1581. StopMusic 2: StopMusic 3: StopMusic 5: StopMusic 6
  1582. MusicResume.Enabled = FALSE
  1583. AttractModeTimer.Enabled = FALSE
  1584. AttractDelayTimer.Enabled = FALSE
  1585. WakeUpTimer.Enabled = FALSE
  1586. DMDTimer.Enabled = FALSE
  1587. nvCredits = nvCredits - 1
  1588. Select Case RandomNumber(2)
  1589. Case 1: PlayMusic 1, "fx_TimeAttackMenu"
  1590. Case 2: PlayMusic 1, "Music_TimeAttackLoop", TRUE, 1
  1591. End Select
  1592. AllPlasOff()
  1593. DSSpot1.State = BulbOn
  1594. DSSpot2.State = BulbOn
  1595. TA = TRUE
  1596. MyDMD.FlushQueue: MyDMD2.FlushQueue
  1597. MyDMD.QueueText "[f1][y7]TIME ATTACK?[f3][y16]< YES NO >", deScrollIn, 1000, TRUE
  1598. MyDMD2.QueueText "[f1][y7]TIME ATTACK?[f3][y16]< YES NO >", deScrollIn, 1000, TRUE
  1599. Else
  1600. PlaySound "fx_Chewie2"
  1601. DOFLinx_NoPay_NoPlay() 'DOFLinx NoPay NoPlay
  1602. DOFLinx_NoCoins_StartOff() 'DOFLinx No Coins, Start Button Off
  1603. MyDMD.Text = "[edge3][f4][yc]NO CREDITS"
  1604. MyDMD2.Text = "[edge3][f4][yc]NO CREDITS"
  1605. End If
  1606. End If
  1607. End If
  1608. End If
  1609. End Sub
  1610.  
  1611.  
  1612.  
  1613. Dim TAStart,TATime,QPlay1,QPlay2,QPlay3,QPlay4,QPlay5
  1614.  
  1615.  
  1616. Sub TATimer_Expired()
  1617.  
  1618. If (TAStart = 2) Then TATime = TATime - 1
  1619.  
  1620. Select Case TAStart
  1621. Case 0:
  1622. EffectMusic 1, FadeOutAndStop, 0, 500
  1623. Select Case RandomNumber(2)
  1624. Case 1: PlayMusic 2, "vo_BestOfLuck", FALSE, 0.7
  1625. Case 2: PlaySound "vo_Hope2"
  1626. End Select
  1627. TATimer.Set TRUE, 1600
  1628. TAStart = 1
  1629. Case 1:
  1630. TATime = 303: TATimer.Set TRUE, 1000 ' start 5 min timer...
  1631. TAStart = 2
  1632. QPlay1 = FALSE ' don't play the same quote again in the game...
  1633. QPlay2 = FALSE
  1634. QPlay3 = FALSE
  1635. QPlay4 = FALSE
  1636. QPlay5 = FALSE
  1637. ResetForNewGame()
  1638. End Select
  1639.  
  1640. If (TATime > 30) Then Countdown.FadeOut: CountDown.Frame 31
  1641. If (TATime > 20) Then DSSpot1.State = BulbOff: DSSpot2.State = BulbOff
  1642.  
  1643. ' to highten the tension, I add special quotes at key moments
  1644. ' these quotes will only play once to preserve the immersion
  1645.  
  1646. Select Case TATime
  1647. Case 120:
  1648. If (QuoteBusy = FALSE) and (QPlay3 = FALSE) Then QPlay3 = TRUE: PlaySound "vo_InRange": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  1649. Case 60:
  1650. If (QuoteBusy = FALSE) and (QPlay4 = FALSE) Then QPlay4 = TRUE: QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000: PlaySound "vo_DSRange1"
  1651. Case 40:
  1652. If (QuoteBusy = FALSE) and (QPlay5 = FALSE) Then QPlay5 = TRUE: QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000: PlaySound "vo_StandByAlert"
  1653. Case 30:
  1654. If (QuoteBusy = FALSE) and (QPlay1 = FALSE) Then QPlay1 = TRUE: PlaySound "vo_30SecsLeft": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  1655. MovieOverlay.UpdateInterval = 100: HUDOverLay.UpdateInterval = 100
  1656. MovieOverlay.Frame 319, 337: HUDOverlay.Frame 319, 337
  1657. Case 10:
  1658. If (QuoteBusy = FALSE) Then MusicFade(1000): PlaySound "vo_10Secs": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
  1659. Case 5:
  1660. DSSpot1.FlashForMs 1200, 1200, BulbOn
  1661. DSSpot2.FlashForMs 1200, 1200, BulbOn
  1662. If (QuoteBusy = FALSE) and (QPlay2 = FALSE) Then
  1663. QPlay2 = TRUE
  1664. Select Case RandomNumber(2)
  1665. Case 1:
  1666. MusicFade(1100): PlaySound "vo_FireWhenReady": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1100
  1667. Case 2:
  1668. MusicFade(2500): PlaySound "vo_LukeForce": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2500
  1669. End Select
  1670. End If
  1671. Case 0:
  1672. TATimer.Enabled = FALSE ' you failed, what a numpty...
  1673. DeathStarTimer2_Expired()
  1674. End Select
  1675. If (TATime < 300) Then AddScore(0)
  1676. End Sub
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682. Sub FuturePinball_KeyReleased(ByVal KeyCode)
  1683.  
  1684. If (KeyCode = GetKeyCode(PlungerKey)) and (bMultiBallMode = TRUE) Then
  1685. End If
  1686.  
  1687. If (Keycode = GetKeyCode(PlungerKey)) and (bMultiBallMode = FALSE) Then
  1688. End If
  1689.  
  1690. If (fpGameInPlay = TRUE) Then
  1691. If (fpTilted = FALSE) Then
  1692. If (KeyCode = GetKeyCode(LeftFlipperKey)) Then
  1693. LeftFlipper.SolenoidOff: TopFlipper.SolenoidOff
  1694. DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
  1695. End If
  1696. If (KeyCode = GetKeyCode(RightFlipperKey)) Then
  1697. RightFlipper.SolenoidOff
  1698. DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
  1699. End If
  1700. End If
  1701. End If
  1702. End Sub
  1703.  
  1704.  
  1705.  
  1706. Sub FuturePinball_Paused()
  1707. PlayMusic 3, "Music_Pause", FALSE, 0.7
  1708. End Sub
  1709.  
  1710.  
  1711.  
  1712. Sub FuturePinball_UnPaused()
  1713. If (fpGameInPlay = TRUE) Then
  1714. EffectMusic 3, FadeOutAndStop, 0, 0
  1715. Else
  1716. EffectMusic 3, FadeOutAndStop, 0, 0
  1717. PlayMusic 3, "Music_Disco", TRUE, 0.7
  1718. End If
  1719. End Sub
  1720.  
  1721.  
  1722.  
  1723. Sub FuturePinball_TiltWarning(ByVal Warnings)
  1724. DOFLinx_TILT_Warning()'DOFLinx - Tilt Warning
  1725. PlaySound "fx_Nudge"
  1726. HologramR2D2.Frame 9,10,9: R2D2Fade.Set TRUE, 2000
  1727. MyDMD.Text = "[edge3][f4][yc][xc][bf]W A R N I N G"
  1728. MyDMD2.Text = "[edge3][f4][yc][xc][bf]W A R N I N G"
  1729. If (bKnightMode(CP) = TRUE) or (bMasterMode(CP) = TRUE) or (bYodaMode(CP) = TRUE) Then
  1730. If (LastSwitchHit.Name = "TheForce") Then
  1731. LightKickBack.State = BulbOn
  1732. MyDMD.Text = "[edge3][f4][yc][xc][bf]FORCE POWER"
  1733. MyDMD2.Text = "[edge3][f4][yc][xc][bf]FORCE POWER"
  1734. End If
  1735. If (LastSwitchHit.Name = "TheForce2") Then
  1736. ForceDivert.Collidable = TRUE
  1737. MyDMD.Text = "[edge3][f4][yc][xc][bf]FORCE POWER"
  1738. MyDMD2.Text = "[edge3][f4][yc][xc][bf]FORCE POWER"
  1739. End If
  1740. PlaySound "fx_Chewie3"
  1741. Else
  1742. Select Case (Warnings)
  1743. Case 1,2:
  1744. PlaySound "fx_Chewie2"
  1745. Case 3:
  1746. If (QuoteBusy = FALSE) Then
  1747. QuoteBusy = TRUE
  1748. Select Case RandomNumber(3)
  1749. Case 1: MusicFade(2800): PlaySound "vo_Aggressive": QuoteTimer.Set TRUE, 2600
  1750. Case 2: MusicFade(1000): PlaySound "vo_WhatTheHell": QuoteTimer.Set TRUE, 1000
  1751. Case 3: MusicFade(1600): PlaySound "vo_MustObey": QuoteTimer.Set TRUE, 1600
  1752. End Select
  1753. End If
  1754. Case 4:
  1755. MyDMD.Text = "[edge3][f4][yc][xc][bf]LAST WARNING"
  1756. MyDMD2.Text = "[edge3][f4][yc][xc][bf]LAST WARNING"
  1757. PlaySound "fx_R2Sound16"
  1758. End Select
  1759. End If
  1760. End Sub
  1761.  
  1762.  
  1763.  
  1764. Sub FuturePinball_Tilted()
  1765.  
  1766. If (bMultiBallMode = TRUE) Then fpTilted = FALSE: Exit Sub
  1767.  
  1768. If (VictoryLap = TRUE) Then
  1769. VictoryLap = FALSE
  1770. DOFLinx_VictoryMB_End() 'DOFLinx_VictoryMB_End
  1771. StopMusic 8
  1772. PlayMusic 1, "Music_Mode1", TRUE, Vol
  1773. ResetTableForNewRound()
  1774. Exit Sub
  1775. End If
  1776.  
  1777. If (BackBoxTimer.Enabled = TRUE) Then
  1778. LeftFlipper.SolenoidOff: TopFlipper.SolenoidOff
  1779. DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
  1780. RightFlipper.SolenoidOff
  1781. DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
  1782. AllPlasOff(): LightSeqPF.Play SeqAllOff
  1783. TurnOffBackBoxLights()
  1784. EmpireBonus = 0
  1785. RebellionBonus = 0
  1786. EffectMusic 1, FadeOutAndStop, 0.0, 100
  1787. TiltRecoveryTimer.Set TRUE, 12000
  1788. DOFLinx_TILTED() 'DOFLinx - Tilted
  1789. Else
  1790. If (TimeAttack = TRUE) Then TATimer.Enabled = FALSE: BallsRemaining(CP) = 1
  1791. DiverterGuide.Collidable = FALSE
  1792. DiverterSurface.Collidable = FALSE
  1793. RampDiverter.SolenoidOff
  1794. RampDiverter2.SolenoidOff
  1795. Select Case RandomNumber(4)
  1796. Case 1: PlaySound "vo_Tilt1": TiltRecoveryTimer.Interval = 4200
  1797. Case 2: PlaySound "vo_Tilt2": TiltRecoveryTimer.Interval = 6000
  1798. Case 3: PlaySound "vo_Tilt3": TiltRecoveryTimer.Interval = 4200
  1799. Case 4: PlaySound "vo_Scruffy": TiltRecoveryTimer.Interval = 4000
  1800. End Select
  1801. TgtRotate.Enabled = FALSE
  1802. LeftFlipper.SolenoidOff: TopFlipper.SolenoidOff
  1803. DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
  1804. RightFlipper.SolenoidOff
  1805. DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
  1806. LightSeqPF.StopPlay
  1807. PFFlash.Enabled = FALSE
  1808. AllPlasOff(): LightSeqPF.Play SeqAllOff
  1809. TurnOffBackBoxLights()
  1810. EmpireBonus = 0
  1811. RebellionBonus = 0
  1812. EffectMusic 1, FadeOutAndStop, 0.0, 100
  1813. MyDMD.Text = "[edge3][f4][yc][xc][b]T I L T"
  1814. MyDMD2.Text = "[edge3][f4][yc][xc][b]T I L T"
  1815. DOFLinx_TILTED() 'DOFLinx - Tilted
  1816. TiltRecoveryTimer.Enabled = TRUE
  1817. TiltCheck = 0
  1818. End If
  1819. End Sub
  1820.  
  1821.  
  1822.  
  1823. Sub TiltRecoveryTimer_Expired()
  1824. TiltRecoveryTimer.Enabled = FALSE
  1825. If (BallsOnPlayfield =< 0) Then
  1826. BallsOnPlayfield = 0
  1827. LightSeqPF.StopPlay
  1828. BallStopper.Collidable = TRUE
  1829. RestartMusic()
  1830. EndOfBall()
  1831. Else
  1832. TiltCheck = TiltCheck + 1
  1833. Select Case TiltCheck
  1834. Case 1:
  1835. PlaySound "vo_BadFeeling"
  1836. MyDMD.Text = "[edge3][f4][yc][xc][b]BALL MISSING"
  1837. MyDMD2.Text = "[edge3][f4][yc][xc][b]BALL MISSING"
  1838. Case 2:
  1839. PlaySound "vo_Pushed"
  1840. MyDMD.Text = "[edge3][f4][yc][xc]SEARCHING..."
  1841. MyDMD2.Text = "[edge3][f4][yc][xc]SEARCHING..."
  1842. KickerVUK.SolenoidPulse: BallsInLock = 0
  1843. BallStopper.Collidable = FALSE
  1844. Case 3:
  1845. PlaySound "fx_R2Sound19": R2HeadBulb.FlashForMs 1200, 1200, BulbOff
  1846. MyDMD.Text = "[edge3][f4][yc][xc][bf]BALL LOST"
  1847. MyDMD2.Text = "[edge3][f4][yc][xc][bf]BALL LOST"
  1848. Case 4:
  1849. PlaySound "vo_Suffering": R2HeadBulb.FlashForMs 700, 100, BulbOff
  1850. MyDMD.Text = "[edge3][f4][yc][xc][b]REPLACING BALL"
  1851. MyDMD2.Text = "[edge3][f4][yc][xc][b]REPLACING BALL"
  1852. BallsOnPlayfield = 0
  1853. If (TimeAttack = FALSE) Then BallsRemaining(CP) = BallsRemaining(CP) + 1
  1854. End Select
  1855. TiltRecoveryTimer.Set TRUE, 5000
  1856. End If
  1857. End Sub
  1858.  
  1859.  
  1860. Dim TiltCheck
  1861.  
  1862.  
  1863.  
  1864. Sub FuturePinball_MusicFinished(ByVal Channel)
  1865. End Sub
  1866.  
  1867.  
  1868.  
  1869. Sub FuturePinball_NameEntryComplete(ByVal Position, ByVal Special)
  1870. If (Position = 1) Then
  1871. EffectMusic 1, FadeOutAndStop, 0.0, 100
  1872. LookAway = 0
  1873. HighScoreTimer.Set TRUE, 15500
  1874. bEnteringAHighScore = FALSE
  1875. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  1876. NewMovie.UpdateInterval = 67: NewMovieHUD.UpdateInterval = 67
  1877. NewMovie.Frame 64, 167: NewMovieHUD.Frame 64, 167
  1878. MovieTimer.Set TRUE, 10000
  1879. PlayMusic 5, "fx_R2Sound15", FALSE, 0.5, 2500
  1880. PlayMusic 1, "Music_HighScoreEnd", FALSE, 1
  1881. StopMusic 2: StopMusic 3
  1882. MyDMD.FlushQueue: MyDMD2.FlushQueue
  1883. DOFLinx_Combo_Jackpot() 'DOFLinx - Combo - Jackpot animation
  1884. DOFLinx_HISCORE_MX() 'DOFLinx_HISCORE_MX
  1885. MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & left(nvHighScore1Name,3), deNone, 1500, FALSE
  1886. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & left(nvHighScore1Name,3), deNone, 1500, FALSE
  1887. MyDMD.QueueText "[edge3][f4][xc][yc][b]HIGHEST SCORE", deNone, 2000, FALSE
  1888. MyDMD2.QueueText "[edge3][f4][xc][yc][b]HIGHEST SCORE", deNone, 2000, FALSE
  1889. MyDMD.QueueText "[edge3][f4][xc][yc]WELL PLAYED", deFlip, 2000, FALSE
  1890. MyDMD2.QueueText "[edge3][f4][xc][yc]WELL PLAYED", deFlip, 2000, FALSE
  1891. MyDMD.QueueText "[edge3][f4][xc][yc]YOUR FINAL SCORE", deScrollIn, 1000, FALSE
  1892. MyDMD2.QueueText "[edge3][f4][xc][yc]YOUR FINAL SCORE", deScrollIn, 1000, FALSE
  1893. MyDMD.QueueText "[edge3][f4][xc][yc][b]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 2000, FALSE
  1894. MyDMD2.QueueText "[edge3][f4][xc][yc][b]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 2000, FALSE
  1895. MyDMD.QueueText "[edge3][f4][xc][yc]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 2500, FALSE
  1896. MyDMD2.QueueText "[edge3][f4][xc][yc]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 2500, FALSE
  1897. MyDMD.QueueText "[edge3][f4][xc][yc]DON'T GET COCKY", deScrollIn, 2000, TRUE
  1898. MyDMD2.QueueText "[edge3][f4][xc][yc]DON'T GET COCKY", deScrollIn, 2000, TRUE
  1899. HologramR2D2.Frame 5: R2D2Fade.Set TRUE, 2200
  1900. R2Animate = 2: R2Move = 0: MoveR2_Expired()
  1901. Exit Sub
  1902. End If
  1903.  
  1904. If (Position = 2) Then
  1905. EffectMusic 1, FadeOutAndStop, 0.0, 100
  1906. LookAway = 0
  1907. FlasherRight.Set BulbBlink,"101000", 75
  1908. Flasher2.Set BulbBlink, "000101", 75
  1909. LightSeqPF.Play SeqRandom, 50, , 10000
  1910. HighScoreTimer.Set TRUE, 5400
  1911. bEnteringAHighScore = FALSE
  1912. StopMusic 2
  1913. PlaySound "fx_R2Sound15"
  1914. PlayMusic 3, "Music_HighestScore2", FALSE, 0.7
  1915. HUDOverlay.Frame 983: MovieOverlay.Frame 983
  1916. MyDMD.FlushQueue: MyDMD2.FlushQueue
  1917. DOFLinx_Combo_Jackpot() 'DOFLinx - Combo - Jackpot animation
  1918. DOFLinx_HISCORE_MX() 'DOFLinx_HISCORE_MX
  1919. MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & left(nvHighScore2Name,3), deNone, 1500, FALSE
  1920. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & left(nvHighScore2Name,3), deNone, 1500, FALSE
  1921. MyDMD.QueueText "[edge3][f4][xc][yc][b]2ND BEST PILOT", deNone, 2000, FALSE
  1922. MyDMD2.QueueText "[edge3][f4][xc][yc][b]2ND BEST PILOT", deNone, 2000, FALSE
  1923. MyDMD.QueueText "[edge3][f4][xc][yc]YOUR FINAL SCORE", deScrollIn, 1000, FALSE
  1924. MyDMD2.QueueText "[edge3][f4][xc][yc]YOUR FINAL SCORE", deScrollIn, 1000, FALSE
  1925. MyDMD.QueueText "[edge3][f4][xc][yc][b]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 3000, TRUE
  1926. MyDMD2.QueueText "[edge3][f4][xc][yc][b]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 3000, TRUE
  1927. R2Animate = 2: R2Move = 0: MoveR2_Expired()
  1928. Exit Sub
  1929. End If
  1930.  
  1931. If (Position = 3) Then
  1932. EffectMusic 1, FadeOutAndStop, 0.0, 100
  1933. LookAway = 0
  1934. FlasherRight.Set BulbBlink,"101000", 75
  1935. Flasher2.Set BulbBlink, "000101", 75
  1936. LightSeqPF.Play SeqRandom, 50, , 10000
  1937. HighScoreTimer.Set TRUE, 5400
  1938. bEnteringAHighScore = FALSE
  1939. StopMusic 2
  1940. Select Case RandomNumber(2)
  1941. Case 1: PlaySound "vo_WhatARide"
  1942. Case 2: PlaySound "vo_SkillsComplete": VaderScoreLight.FlashForMs 1500, 1500, BulbOff
  1943. End Select
  1944. PlayMusic 3, "Music_HighestScore2", FALSE, 0.7
  1945. HUDOverlay.Frame 984: MovieOverlay.Frame 984
  1946. MyDMD.FlushQueue: MyDMD2.FlushQueue
  1947. DOFLinx_Combo_Jackpot() 'DOFLinx - Combo - Jackpot animation
  1948. DOFLinx_HISCORE_MX() 'DOFLinx_HISCORE_MX
  1949. MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & left(nvHighScore3Name,3), deNone, 1500, FALSE
  1950. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & left(nvHighScore3Name,3), deNone, 1500, FALSE
  1951. MyDMD.QueueText "[edge3][f4][xc][yc][b]3RD BEST PILOT", deNone, 2000, FALSE
  1952. MyDMD2.QueueText "[edge3][f4][xc][yc][b]3RD BEST PILOT", deNone, 2000, FALSE
  1953. MyDMD.QueueText "[edge3][f4][xc][yc]YOUR FINAL SCORE", deScrollIn, 1000, FALSE
  1954. MyDMD2.QueueText "[edge3][f4][xc][yc]YOUR FINAL SCORE", deScrollIn, 1000, FALSE
  1955. MyDMD.QueueText "[edge3][f4][xc][yc][b]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 3000, TRUE
  1956. MyDMD2.QueueText "[edge3][f4][xc][yc][b]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 3000, TRUE
  1957. R2Animate = 2: R2Move = 0: MoveR2_Expired()
  1958. Exit Sub
  1959. End If
  1960. 'StopMusic 2
  1961. StopMusic 3
  1962. bEnteringAHighScore = FALSE
  1963. EndOfBallComplete()
  1964. End Sub
  1965.  
  1966.  
  1967. Dim LookAway
  1968.  
  1969.  
  1970. Sub HighScoreTimer_Expired()
  1971. Select Case LookAway
  1972. Case 0:
  1973. LookAway = 1
  1974. HighScoreTimer.Set TRUE, 4000
  1975. Case 1:
  1976. HighScoreTimer.Enabled = FALSE
  1977. FlasherLeft.Set BulbOff, "10", 75
  1978. FlasherRight.Set BulbOff,"10", 75
  1979. Flasher2.Set BulbOff, "10", 75
  1980. LightSeqPF.UpdateInterval = 10
  1981. LightSeqPF.StopPlay
  1982. NewMovie.Frame 1: NewMovieHUD.Frame 1
  1983. NewMovie.FadeOut: NewMovieHUD.FadeOut
  1984. MovieOverlay.UpdateInterval = 40: MovieOverlay.Frame 11 ' return to star wars logo...
  1985. HUDOverlay.UpdateInterval = 40: HUDoverlay.Frame 11
  1986. EndOfBallComplete()
  1987. End Select
  1988. End Sub
  1989.  
  1990.  
  1991. Dim Xpos,PlayThis
  1992. BR = 5
  1993.  
  1994.  
  1995.  
  1996. Sub AnimationStart()
  1997. Xpos = 128
  1998. ScoreTimer.Set TRUE, 4
  1999. End Sub
  2000.  
  2001.  
  2002.  
  2003. Sub ScoreTimer_Expired()
  2004. Xpos = Xpos - 1
  2005. Select Case PlayThis
  2006. Case 1:
  2007. MyDMD.Text = "[edge3][f4][yc][x" & Xpos & "]MAY THE FORCE BE WITH YOU ": MyDMD2.Text = "[edge3][f4][yc][x" & Xpos & "]MAY THE FORCE BE WITH YOU "
  2008. If (Xpos < -200) Then ScoreTimer.Enabled = FALSE
  2009. Case 2:
  2010. MyDMD.Text = "[edge3][f4][yc][x" & Xpos & "]DEATH STAR IN RANGE IN 5 MINUTES ": MyDMD2.Text = "[edge3][f4][yc][x" & Xpos & "]DEATH STAR IN RANGE IN 5 MINUTES "
  2011. If (Xpos < -225) Then ScoreTimer.Enabled = FALSE
  2012. End Select
  2013. End Sub
  2014.  
  2015.  
  2016.  
  2017.  
  2018. ' *************************************************
  2019. ' ** **
  2020. ' ** JEDI MASTER LEVEL CODING **
  2021. ' ** **
  2022. ' *************************************************
  2023.  
  2024.  
  2025. Sub ResetForNewGame()
  2026. DOFLinx_Start_New_Game() 'DOFLinx - Start New Game
  2027. Dim i
  2028. CameraView_Default
  2029. VaderAnimation_Timer_Expired
  2030. BGReflect.Render = TRUE
  2031. HoldBonus = FALSE
  2032. JPHit = FALSE
  2033. BackOverlay.FadeOut
  2034. BeginGame()
  2035.  
  2036. SabreTimer.Enabled = FALSE
  2037.  
  2038. SithStrike = FALSE
  2039. RedWin = 0
  2040. BlueWin = 0
  2041. LastBall = FALSE
  2042. LSLOff()
  2043. LSROff()
  2044. InitTrakedSoundBalls()
  2045.  
  2046. SabreLight1.State = BulbOn
  2047. SabreLight2.State = BulbOn
  2048. SabreLight3.State = BulbOn
  2049. SabreLight4.State = BulbOn
  2050.  
  2051. SoloBulb1.State = BulbOff: SoloBulb2.State = BulbOff: SoloBulb3.State = BulbOff: SoloBulb4.State = BulbOff
  2052.  
  2053. BulbTop.State = BulbOff
  2054. BulbMiddle.State = BulbOff
  2055. BulbBottom.State = BulbOff
  2056.  
  2057. ScoreTimer.Enabled = FALSE
  2058. StopMusic 1: StopMusic 3
  2059. LaneWall.Dropped = FALSE
  2060. AttackAwardLevel = 0
  2061.  
  2062. If (BGArt = 0) Then BackBox.StopPlay: OverlayBG.Frame 1
  2063.  
  2064. MusicResume.Enabled = FALSE
  2065. AttractModeTimer.Enabled = FALSE
  2066. AttractDelayTimer.Enabled = FALSE
  2067. WakeUpTimer.Enabled = FALSE
  2068.  
  2069. CP = 1
  2070.  
  2071. PlayersPlayingGame = 1
  2072.  
  2073. bOnTheFirstBall = TRUE
  2074.  
  2075. bMultiBallMode = FALSE
  2076.  
  2077. If (RewardSAVER = TRUE) Then
  2078. BSTime = 17000
  2079. Else
  2080. If (RewardSAVER2 = TRUE) Then
  2081. BSTime = 22000
  2082. Else
  2083. BSTime = 12000
  2084. End If
  2085. End If
  2086.  
  2087. For i = 1 To 4
  2088. bMasterMode(i) = FALSE
  2089. bYodaMode(i) = FALSE
  2090. bSkyWalker(i) = FALSE
  2091. TorpedoReady(i) = FALSE
  2092. MatchPlayed(i) = FALSE
  2093. EB5m(i) = FALSE
  2094. TIETally(i) = 0
  2095. RampTally(i) = 0
  2096. SoloTally(i) = 0
  2097. TrenchPlay(i) = 0
  2098. SSValue(i) = 0
  2099. XWingValue(i) = 1000
  2100. VaderHitValue(i) = 2500
  2101. ForcePower(i) = 0
  2102. Q3PO(i) = 0
  2103. Q2(i) = 0
  2104. QTE(i) = 410
  2105. Next
  2106.  
  2107. For i = 1 To 4
  2108. If (RewardJEDI = TRUE) Then
  2109. bPadawanMode(i) = TRUE
  2110. Else
  2111. bPadawanMode(i) = FALSE
  2112. End If
  2113. If (RewardJEDI2 = TRUE) Then
  2114. bPadawanMode(i) = TRUE
  2115. bKnightMode(i) = TRUE
  2116. Else
  2117. bKnightMode(i) = FALSE
  2118. End If
  2119. Next
  2120. bExtraBallWonThisBall = FALSE
  2121. TurnOffPlayfieldLights()
  2122. If (RewardJEDI2 = TRUE) Then
  2123. PlayMusic 1, "Music_Mode3", TRUE, vol
  2124. Else
  2125. If (RewardJEDI = TRUE) Then
  2126. PlayMusic 1, "Music_Mode2", TRUE, vol
  2127. Else
  2128. PlayMusic 1, "Music_Mode1", TRUE, vol
  2129. End If
  2130. End If
  2131.  
  2132. AllPlasOff()
  2133. Flasher2.FlashForMs 3400, 3400, BulbOff
  2134. 'XMove = 1
  2135. XWingMove_Expired()
  2136.  
  2137. PlayThis = 1: AnimationStart() ' may the force be with you...
  2138.  
  2139. StopMusic 6: StopMusic 4
  2140.  
  2141. If (TimeAttack = TRUE) Then
  2142. PlaySound "vo_AttackSpeed2"
  2143. Else
  2144. PlayMusic 4, "fx_GameStart"
  2145. End If
  2146. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 625, 664
  2147. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 625, 664
  2148. RewardSAVER = FALSE
  2149. RewardSAVER2 = FALSE
  2150. RewardJEDI = FALSE
  2151. RewardJEDI2 = FALSE
  2152. FirstBallDelayTimer.Set TRUE, 3400
  2153. End Sub
  2154.  
  2155.  
  2156. ' when any ball drains, reset the table...
  2157. ' some progress will be lost, such as:
  2158.  
  2159. ' Turbo Bumpers
  2160. ' Bonus Multiplier
  2161. ' Vader Scoring progression
  2162. ' Attack Bonus progression
  2163. ' All TIE drops will also reset to a full bank
  2164.  
  2165. ' but I'll let you keep SOLO progression...
  2166.  
  2167.  
  2168. Sub ResetForNewPlayerBall()
  2169. If (HoldBonus = FALSE) Then
  2170. SetBonusMultiplier(1)
  2171. End If
  2172. BonusHeld = 5
  2173. HoldBonus = FALSE
  2174. LightTopLane1.State = BulbOff
  2175. LightTopLane2.State = BulbOff
  2176. LightTopLane3.State = BulbOff
  2177. If (RewardSHOTS = TRUE) Then
  2178. Eject = 2
  2179. DSHit = 2
  2180. Else
  2181. If (bOnTheFirstBall = TRUE) Then
  2182. Eject = 0
  2183. Else
  2184. Eject = 1
  2185. End If
  2186. DSHit = 0
  2187. End If
  2188. BallsInLock = 0
  2189. ScoreX = 1
  2190. AttackBonus = 0
  2191. Squadron = 0
  2192. LightShootAgain.State = BulbOff
  2193. EmpireBonus = 0
  2194. VaderValue = 0
  2195. TrenchValue = 0
  2196. RebellionBonus = 0
  2197. bExtraBallWonThisBall = FALSE
  2198. LightSeqPF.StopPlay
  2199. ResetDropTargets()
  2200. EnableKickback()
  2201. TIEPlay = 1
  2202.  
  2203. LSLOff()
  2204. LSROff()
  2205.  
  2206. AllPlasOn(): TurnOnBackBoxLights()
  2207. ResetVADER()
  2208.  
  2209. BumpValue = 500 ' reset value...
  2210.  
  2211. BumpHit = 0
  2212. Bumper1.State = BulbOff
  2213. Bumper2.State = BulbOff
  2214. Bumper3.State = BulbOff
  2215. BulbBumper1.State = BulbOff
  2216. BulbBumper2.State = BulbOff
  2217. BulbBumper3.State = BulbOff
  2218. VaderScoreTimer.Enabled = FALSE
  2219. VaderScoring = FALSE
  2220. VaderScoreLight.State = BulbOff
  2221. If (PlayersPlayingGame > 1) Then
  2222. LightPadawan.State = PadawanP(CP)
  2223. LightKnight.State = KnightP(CP)
  2224. LightMaster.State = MasterP(CP)
  2225. LightJoda.State = YodaP(CP)
  2226. SoloBulb1.State = Solo1P(CP)
  2227. SoloBulb2.State = Solo2P(CP)
  2228. SoloBulb3.State = Solo3P(CP)
  2229. SoloBulb4.State = Solo4P(CP)
  2230. BulbBottom.State = BulbLvL1P(CP)
  2231. BulbMiddle.State = BulbLvL2P(CP)
  2232. BulbTop.State = BulbLvL3P(CP)
  2233. Light50000Points.State = BulbOff
  2234. LightExtraBall.State = BulbOff
  2235. LightSpecial.State = BulbOff
  2236. LightSpecialL.State = BulbOff
  2237. LightSpecialR.State = BulbOff
  2238. LightDock.State = BulbOff
  2239. AttackAwardLevel = 0
  2240. End If
  2241. SetupTableMode()
  2242. End Sub
  2243.  
  2244.  
  2245. ' set the table up based on player's current Jedi ranking...
  2246.  
  2247. Sub SetupTableMode()
  2248.  
  2249. BulbLeftStar1.State = BulbOff
  2250. BulbLeftStar2.State = BulbOff
  2251. BulbLeftStar3.State = BulbOff
  2252. BulbMiddleStar.State = BulbOff
  2253. LightLeftInlane.State = BulbOff
  2254. LightRightInlane.State = BulbOff
  2255. LightLeftLock.State = BulbOff
  2256. LightLeftPowerUp.State = BulbOff
  2257.  
  2258. ' relight the power up shot...next shot to Vader will rank up...
  2259. If (LightPadawan.State = BulbBlink) and (bPadawanMode(CP) = FALSE) Then
  2260. BulbLeftStar1Ext.SetLitColor 255, 0, 0
  2261. BulbLeftStar2Ext.SetLitColor 255, 0, 0
  2262. BulbLeftStar3Ext.SetLitColor 255, 0, 0
  2263. LightLeftPowerUp.Set BulbBlink, "00010", 125
  2264. BulbLeftStar1.Set BulbBlink, "10000", 125
  2265. BulbLeftStar2.Set BulbBlink, "01000", 125
  2266. BulbLeftStar3.Set BulbBlink, "00100", 125
  2267. End If
  2268.  
  2269. ' relight the power up shot...
  2270. If (LightKnight.State = BulbBlink) and (bKnightMode(CP) = FALSE) Then
  2271. BulbLeftStar1Ext.SetLitColor 255, 0, 0
  2272. BulbLeftStar2Ext.SetLitColor 255, 0, 0
  2273. BulbLeftStar3Ext.SetLitColor 255, 0, 0
  2274. LightLeftPowerUp.Set BulbBlink, "00010", 125
  2275. BulbLeftStar1.Set BulbBlink, "10000", 125
  2276. BulbLeftStar2.Set BulbBlink, "01000", 125
  2277. BulbLeftStar3.Set BulbBlink, "00100", 125
  2278. End If
  2279.  
  2280. ' relight the power up shot...
  2281. If (LightMaster.State = BulbBlink) and (bMasterMode(CP) = FALSE) Then
  2282. BulbLeftStar1Ext.SetLitColor 255, 0, 0
  2283. BulbLeftStar2Ext.SetLitColor 255, 0, 0
  2284. BulbLeftStar3Ext.SetLitColor 255, 0, 0
  2285. LightLeftPowerUp.Set BulbBlink, "00010", 125
  2286. BulbLeftStar1.Set BulbBlink, "10000", 125
  2287. BulbLeftStar2.Set BulbBlink, "01000", 125
  2288. BulbLeftStar3.Set BulbBlink, "00100", 125
  2289. End If
  2290.  
  2291. ' relight the power up shot...
  2292. If (LightJoda.State = BulbBlink) and (bYodaMode(CP) = FALSE) Then
  2293. BulbLeftStar1Ext.SetLitColor 255, 0, 0
  2294. BulbLeftStar2Ext.SetLitColor 255, 0, 0
  2295. BulbLeftStar3Ext.SetLitColor 255, 0, 0
  2296. LightLeftPowerUp.Set BulbBlink, "00010", 125
  2297. BulbLeftStar1.Set BulbBlink, "10000", 125
  2298. BulbLeftStar2.Set BulbBlink, "01000", 125
  2299. BulbLeftStar3.Set BulbBlink, "00100", 125
  2300. End If
  2301.  
  2302. ' player is a Padawan so the table is slightly more profitable...
  2303. If (bPadawanMode(CP) = TRUE) Then
  2304. LightPadawan.State = BulbOn
  2305. LightKnight.State = BulbOff
  2306. LightMaster.State = BulbOff
  2307. LightJoda.State = BulbOff
  2308. XWingValue(CP) = 5000: VaderHitValue(CP) = 7500
  2309. End If
  2310.  
  2311. ' player is a Jedi Knight, now we're talking, some respect at last!...
  2312. If (bKnightMode(CP) = TRUE) Then
  2313. LightPadawan.State = BulbOn
  2314. LightKnight.State = BulbOn
  2315. LightMaster.State = BulbOff
  2316. LightJoda.State = BulbOff
  2317. LightLeftInlane.State = BulbOn
  2318. LightRightInlane.State = BulbOn
  2319. XWingValue(CP) = 10000: VaderHitValue(CP) = 12500
  2320. End If
  2321.  
  2322. ' player is a Jedi Master, the Force flows through them...
  2323. If (bMasterMode(CP) = TRUE) Then
  2324. LightPadawan.State = BulbOn
  2325. LightKnight.State = BulbOn
  2326. LightMaster.State = BulbOn
  2327. LightJoda.State = BulbOff
  2328. BulbLeftStar1Ext.SetLitColor 0, 244, 0
  2329. BulbLeftStar2Ext.SetLitColor 0, 244, 0
  2330. BulbLeftStar3Ext.SetLitColor 0, 244, 0
  2331. BulbLeftStar1.State = BulbOn
  2332. BulbLeftStar2.State = BulbOn
  2333. BulbLeftStar3.State = BulbOn
  2334. BulbMiddleStar.State = BulbOn
  2335. XWingValue(CP) = 15000: VaderHitValue(CP) = 17500
  2336. End If
  2337.  
  2338. ' player is a Jedi Grand Master, now when you die, you can become a spooky hologram (younger version of yourself preferred)
  2339. If (bYodaMode(CP) = TRUE) Then
  2340. LightJoda.State = BulbOn
  2341. LightPadawan.Set BulbBlink, "100", 125
  2342. LightMaster.Set BulbBlink, "010", 125
  2343. LightKnight.Set BulbBlink, "001", 125
  2344.  
  2345. LightPadawan.State = BulbOn
  2346. LightKnight.State = BulbOn
  2347. LightMaster.State = BulbOn
  2348. LightJoda.State = BulbOn
  2349.  
  2350. BulbLeftStar1Ext.SetLitColor 0, 244, 0
  2351. BulbLeftStar2Ext.SetLitColor 0, 244, 0
  2352. BulbLeftStar3Ext.SetLitColor 0, 244, 0
  2353. BulbLeftStar1.State = BulbOn
  2354. BulbLeftStar2.State = BulbOn
  2355. BulbLeftStar3.State = BulbOn
  2356.  
  2357. BulbMiddleStar.State = BulbOn
  2358.  
  2359. ' this time only a single TIE figther needs to be taken out...
  2360. FourBank1.PopDown
  2361. FourBank2.PopDown
  2362. FourBank3.PopDown
  2363. FourBank4.PopDown
  2364. ThreeBank1.PopDown
  2365. ThreeBank2.PopDown
  2366. ThreeBank3.PopDown
  2367. TgtRotate.Set TRUE, 1500
  2368.  
  2369. XWingValue(CP) = 20000: VaderHitValue(CP) = 25000
  2370. End If
  2371.  
  2372. ' player is Skywalker, only Vader can stop you now....
  2373. If (bSkyWalker(CP) = TRUE) Then
  2374. LightLeftLock.Set BulbBlink, "10", 100
  2375. LightLeftPowerUp.Set BulbBlink, "00010", 125
  2376. BulbLeftStar1Ext.SetLitColor 255, 0, 0
  2377. BulbLeftStar2Ext.SetLitColor 255, 0, 0
  2378. BulbLeftStar3Ext.SetLitColor 255, 0, 0
  2379. BulbLeftStar1.Set BulbBlink, "10000", 125
  2380. BulbLeftStar2.Set BulbBlink, "01000", 125
  2381. BulbLeftStar3.Set BulbBlink, "00100", 125
  2382. End If
  2383.  
  2384. ' reset the SOLO Level bulbs...
  2385. If (SoloTally(CP) = 1) Then BulbBottom.State = BulbOn
  2386. If (SoloTally(CP) = 2) Then BulbBottom.State = BulbOn: BulbMiddle.State = BulbOn
  2387. If (SoloTally(CP) = 3) Then BulbBottom.State = BulbOn: BulbMiddle.State = BulbOn: BulbTop.State = BulbOn
  2388.  
  2389. ' another player is spoiling your fun, you have to step aside and wait for them to finish their ball (won't take long)...
  2390. If (PlayersPlayingGame > 1) Then RestartMusic()
  2391. End Sub
  2392.  
  2393.  
  2394.  
  2395.  
  2396. Sub BallSaver()
  2397. AutoFire = TRUE
  2398. CheckRightOutLights()
  2399. CheckLeftOutLights()
  2400. PlungerKicker.CreateBall: AddTrackedBall(PlungerKicker)
  2401. MyDMD.QueueText "[edge3][f4][xc][yc][b]BALL SAVED"
  2402. MyDMD2.QueueText "[edge3][f4][xc][yc][b]BALL SAVED"
  2403. BallsOnPlayfield = BallsOnPlayfield + 1
  2404. PlungerKicker.SolenoidPulse
  2405. DOFLinx_PlungerKicker() 'DOFLinx - PlungerKicker
  2406. LuckyBastard(CP) = 0
  2407. End Sub
  2408.  
  2409.  
  2410.  
  2411.  
  2412. Sub CreateNewBall()
  2413. If (bMultiBallMode = TRUE) Then
  2414. call CreateCustomBall(PlungerKicker, BALL_B) ' create the black ball...
  2415. BallsOnPlayfield = BallsOnPlayfield + 1
  2416. PlungerKicker.SolenoidPulse
  2417. DOFLinx_PlungerKicker() 'DOFLinx - PlungerKicker
  2418. LightShipMiddle.Set BulbBlink, "10", 150: LightShipRight.Set BulbBlink, "10", 150
  2419. AutoFire = TRUE
  2420. Else
  2421. ' turn off the outlane bulbs...
  2422. CheckRightOutLights()
  2423. CheckLeftOutLights()
  2424.  
  2425. If (TorpedoReady(CP) = TRUE) Then ' has the player qualified for the skill shot?...
  2426. TorpedoReady(CP) = FALSE
  2427. SSTimer.Set TRUE, 2750 ' timed to match the movie clip (you have 250ms to make the shot)
  2428. SSTimer2.Set TRUE, 3000
  2429. PlayMusic 3, "fx_SkillShot3"
  2430. DOFLinx_Skillshot_Start() 'DOFLinx - Skillshot Start
  2431. Select Case RandomNumber(3)
  2432. Case 1: MusicFade(1900): PlaySound "vo_LockedOnSignal"
  2433. Case 2,3: MusicFade(1400): PlaySound "vo_TargetingComputers"
  2434. End Select
  2435. MovieOverlay.UpdateInterval = 63: MovieOverlay.Frame 836, 878
  2436. HUDOverLay.UpdateInterval = 63: HUDOverLay.Frame 836, 878
  2437. Else
  2438. ' animate the Launch sequence...
  2439. MovieOverlay.UpdateInterval = 80: HUDOverlay.UpdateInterval = 80
  2440. MovieOverlay.Frame 118, 126, 118
  2441. HUDOverLay.Frame 118, 126, 118
  2442. End If
  2443. MyDMD.FlushQueue: MyDMD2.FlushQueue
  2444. If (PlayersPlayingGame > 1) Then
  2445. MyDMD.QueueText "[edge3][f4][xc][yc][b]GET READY PILOT " & CP, deNone, 1200, FALSE
  2446. MyDMD2.QueueText "[edge3][f4][xc][yc][b]GET READY PILOT " & CP, deNone, 1200, FALSE
  2447. Else
  2448. Select Case RandomNumber(3)
  2449. Case 1:
  2450. If (EB5m(CP) = FALSE) and (TimeAttack = FALSE) Then
  2451. MyDMD.QueueText "[f1][y7]EXTRA BALL AT[f3][y16][bf]5 MILLION", deScrollIn, 800, FALSE
  2452. MyDMD2.QueueText "[f1][y7]EXTRA BALL AT[f3][y16][bf]5 MILLION", deScrollIn, 800, FALSE
  2453. Else
  2454. MyDMD.QueueText "[edge3][yc][f3]TIE DESTROYED: " & TIETally(CP), deScrollDown, 800, FALSE
  2455. MyDMD2.QueueText "[edge3][yc][f3]TIE DESTROYED: " & TIETally(CP), deScrollDown, 800, FALSE
  2456. End If
  2457. Case 2:
  2458. MyDMD.QueueText "[edge3][f4][yc][xc][yc][b]GET READY", deScrollIn, 800, FALSE
  2459. MyDMD2.QueueText "[edge3][f4][yc][xc][yc][b]GET READY", deScrollIn, 800, FALSE
  2460. Case 3:
  2461. MyDMD.QueueText "[edge3][yc][f3]TIE DESTROYED " & TIETally(CP), deScrollDown, 800, FALSE
  2462. MyDMD2.QueueText "[edge3][yc][f3]TIE DESTROYED " & TIETally(CP), deScrollDown, 800, FALSE
  2463. End Select
  2464. End If
  2465. If (BallsRemaining(CP) = 1) Then
  2466. If (NewBall = TRUE) and (PlayersPlayingGame = 1) Then
  2467. NewBall = FALSE
  2468. If (ResumeVol.Enabled = FALSE) Then
  2469. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1000: MusicFade(1000)
  2470. Select Case RandomNumber(5)
  2471. Case 1: PlaySound "vo_TheForce"
  2472. Case 2: PlaySound "vo_BadFeeling"
  2473. Case 3: PlaySound "vo_BadFeeling2"
  2474. Case 4: PlaySound "vo_TrustFeelings"
  2475. Case 5: PlaySound "vo_Feelings": QuoteTimer.Set TRUE, 2000
  2476. End Select
  2477. End If
  2478. End If
  2479. MyDMD.QueueText "[edge3][f4][xc][yc][bf]LAST BALL", deNone, 1500, TRUE
  2480. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]LAST BALL", deNone, 1500, TRUE
  2481. Else
  2482. If (TimeAttack = FALSE) Then
  2483. MyDMD.QueueText "[edge3][f4][yc][xc]BALLS REMAIN: " & BallsRemaining(CP), deNone, 1500, TRUE
  2484. MyDMD2.QueueText "[edge3][f4][yc][xc]BALLS REMAIN: " & BallsRemaining(CP), deNone, 1500, TRUE
  2485. Else
  2486. MyDMD.QueueText "[edge3][f4][yc][xc]GOOD LUCK", deNone, 1500, TRUE
  2487. MyDMD2.QueueText "[edge3][f4][yc][xc]GOOD LUCK", deNone, 1500, TRUE
  2488. End If
  2489. End If
  2490. NewBall = FALSE
  2491. PlungerKicker.CreateBall: AddTrackedBall(PlungerKicker)
  2492. 'call CreateCustomBall(PlungerKicker, BALL_B)
  2493. DiverterGuide.Collidable = FALSE
  2494. DiverterSurface.Collidable = FALSE
  2495. RampDiverter.SolenoidOff
  2496. RampDiverter2.SolenoidOff
  2497. TopLeftKickerLight.State = BulbOff
  2498.  
  2499. ' reset after multiball finale
  2500. CountDown.FadeOut
  2501. DeathStarTimer2.Enabled = FALSE
  2502. BallsOnPlayfield = BallsOnPlayfield + 1
  2503.  
  2504. ' kick it out..
  2505. PlungerKicker.SolenoidPulse
  2506. DOFLinx_PlungerKicker() 'DOFLinx - PlungerKicker
  2507. End If
  2508. End Sub
  2509.  
  2510.  
  2511.  
  2512.  
  2513. Sub SSTimer_Expired()
  2514. SSTimer.Enabled = FALSE
  2515. SSWin = TRUE
  2516. DOFLinx_Skillshot_Ready_to_Fire() 'DOFLinx - Skillshot Ready to Fire
  2517. End Sub
  2518.  
  2519.  
  2520. Sub SSTimer2_Expired()
  2521. SSTimer2.Enabled = FALSE
  2522. MovieOverlay.Frame 11
  2523. HUDOverlay.Frame 11
  2524. SSWin = FALSE
  2525. End Sub
  2526.  
  2527.  
  2528.  
  2529. Sub DeathStarTimer2_Expired()
  2530. DeathStarTimer2.Enabled = FALSE
  2531. bMultiBallMode = FALSE
  2532. LightJackpot.State = BulbOff
  2533. EffectMusic 1, FadeOutAndStop, 0, 100
  2534. TgtRotate.Enabled = FALSE
  2535. TATimer.Enabled = FALSE
  2536.  
  2537. If (TimeAttack = FALSE) Then MovieOverlay.FadeOut
  2538.  
  2539. DMDBusy = FALSE: DMDTimer.Enabled = FALSE
  2540.  
  2541. MyDMD.QueueText "[f4][xc][yc][bf]TIME UP!", deNone, 2000, FALSE
  2542. MyDMD2.QueueText "[f4][xc][yc][bf]TIME UP!", deNone, 2000, FALSE
  2543. MyDMD.QueueText "[f4][xc][yc]TIME UP!", deNone, 2000, FALSE
  2544. MyDMD2.QueueText "[f4][xc][yc]TIME UP!", deNone, 2000, FALSE
  2545. MyDMD.QueueText "[f4][xc][yc][b]BASE DESTROYED", deNone, 3000, FALSE
  2546. MyDMD2.QueueText "[f4][xc][yc][b]BASE DESTROYED", deNone, 3000, FALSE
  2547. MyDMD.QueueText "[f4][xc][yc]BASE DESTROYED", deNone, 3000, FALSE
  2548. MyDMD2.QueueText "[f4][xc][yc]BASE DESTROYED", deNone, 3000, FALSE
  2549. MyDMD.QueueText "[f4][xc][yc][b]TRY AGAIN", deScrollIn, 1000, TRUE
  2550. MyDMD2.QueueText "[f4][xc][yc][b]TRY AGAIN", deScrollIn, 1000, TRUE
  2551.  
  2552. DSSpot1.State = BulbOff
  2553. DSSpot2.State = BulbOff
  2554.  
  2555. FlasherLeft.FlashForMs 3500, 100, BulbOff
  2556.  
  2557. ' change the camera angle...
  2558. CameraView_LookAtBackBox
  2559.  
  2560. PFFlash.Enabled = FALSE
  2561. LightSeqPF.Play SeqAllOff
  2562. AllPlasOff()
  2563. TurnOffBackBoxLights()
  2564.  
  2565. ' Look at the movie now playing on the backglass.
  2566. ' This clip wasn't in the movie, it's custom made. I overlaid a graphic
  2567. ' of the Death Star on top of a planet to make it look like it's destroyed.
  2568. BackBoxTimer.Set TRUE, 7000
  2569. BackOverlay.FadeIn
  2570. BackOverlay.UpdateInterval = 49
  2571. BackOverlay.Frame 109, 248
  2572.  
  2573. Select Case RandomNumber(5)
  2574. Case 1: PlaySound "fx_Failed2", 0.7: FailTimer.Set TRUE, 12000
  2575. Case 2: PlaySound "fx_Failed3": FailTimer.Set TRUE, 22000
  2576. Case 3: PlaySound "fx_Failed4": FailTimer.Set TRUE, 18000
  2577. Case 4: PlaySound "fx_Failed5": FailTimer.Set TRUE, 14000
  2578. Case 5: PlaySound "fx_Failed6": FailTimer.Set TRUE, 15000
  2579. End Select
  2580.  
  2581. PlaySound "vo_DSFiring"
  2582. fpTilted = TRUE
  2583. LeftFlipper.SolenoidOff: TopFlipper.SolenoidOff
  2584. DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
  2585. RightFlipper.SolenoidOff
  2586. DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
  2587. DiverterGuide.Collidable = FALSE
  2588. DiverterSurface.Collidable = FALSE
  2589. RampDiverter.SolenoidOff
  2590. RampDiverter2.SolenoidOff
  2591. If (bBallInPlungerLane = TRUE) Then
  2592. Plunger.SolenoidPulse
  2593. End If
  2594. End Sub
  2595.  
  2596.  
  2597.  
  2598.  
  2599. Sub BackBoxTimer_Expired()
  2600. BackBoxTimer.Enabled = FALSE
  2601. BackOverlay.FadeOut
  2602. TurnOnBackBoxLights()
  2603. MovieOverlay.FadeIn
  2604. End Sub
  2605.  
  2606.  
  2607.  
  2608. Sub TenSecondTimer_Expired()
  2609. TenSecondTimer.Enabled = FALSE
  2610. If (TopLeftKickerLight.State = BulbOff) Then
  2611. MusicFade(1000): PlaySound "vo_10Secs"
  2612. End If
  2613. End Sub
  2614.  
  2615.  
  2616.  
  2617. Sub EOBDelay_Expired()
  2618. EOBDelay.Enabled = FALSE
  2619. EndOfBall()
  2620. End Sub
  2621.  
  2622.  
  2623.  
  2624. ' end of ball bonuses now add a perk to the next ball:
  2625.  
  2626. ' Chewbacca - Bumper value is increased (temporarily)
  2627. ' Leia - Kickback can be used 2 times before it turns off
  2628. ' Obi Wan - all Target values are increased (permanently)
  2629. ' Han - Video Mode is lit
  2630. ' Luke - Ball Saver timer is increased by 4 seconds
  2631.  
  2632.  
  2633. Sub EndOfBall()
  2634. bOnTheFirstBall = FALSE
  2635.  
  2636. If (TimeAttack = TRUE) Then
  2637. TimeAttack = FALSE
  2638. fpTilted = FALSE
  2639. MatchPlayed(CP) = TRUE
  2640. BallsRemaining(CP) = 0
  2641. TurnOnBackBoxLights()
  2642. AllPlasOn()
  2643. GameOverTimer.Set TRUE, 100
  2644. Exit Sub
  2645. End If
  2646.  
  2647. TurnOnBackBoxLights()
  2648. AllPlasOn()
  2649.  
  2650. If (PlayersPlayingGame > 1) Then
  2651. PadawanP(CP) = LightPadawan.State
  2652. KnightP(CP) = LightKnight.State
  2653. MasterP(CP) = LightMaster.State
  2654. YodaP(CP) = LightJoda.State
  2655. LightPadawan.State = BulbOff
  2656. LightKnight.State = BulbOff
  2657. LightMaster.State = BulbOff
  2658. LightJoda.State = BulbOff
  2659. Solo1P(CP) = SoloBulb1.State
  2660. Solo2P(CP) = SoloBulb2.State
  2661. Solo3P(CP) = SoloBulb3.State
  2662. Solo4P(CP) = SoloBulb4.State
  2663. SoloBulb1.State = BulbOff
  2664. SoloBulb2.State = BulbOff
  2665. SoloBulb3.State = BulbOff
  2666. SoloBulb4.State = BulbOff
  2667. BulbLvL1P(CP) = BulbBottom.State
  2668. BulbLvL2P(CP) = BulbMiddle.State
  2669. BulbLvL3P(CP) = BulbTop.State
  2670. BulbBottom.State = BulbOff
  2671. BulbMiddle.State = BulbOff
  2672. BulbTop.State = BulbOff
  2673. End If
  2674.  
  2675. If (fpTilted = FALSE) Then
  2676.  
  2677. If (EmpireBonus > RebellionBonus) Then
  2678. RedWin = RedWin + 1: SithStrike = TRUE
  2679. Else
  2680. BlueWin = BlueWin + 1
  2681. End If
  2682.  
  2683. ' only the highest perk is awarded...
  2684. ChewiePerk = FALSE
  2685. LeiaPerk = FALSE
  2686. ObiWanPerk = FALSE
  2687. HanPerk = FALSE
  2688. LukePerk = FALSE: BSTime = BSTime - 4000
  2689.  
  2690. BonusDelayTime = 600
  2691.  
  2692. Select Case BonusMultiplier(CP)
  2693. Case 2:
  2694. PlaySound "vo_Chewie"
  2695. BonusDelayTime = BonusDelayTime + 100
  2696. HUDOverlay.Frame 590: MovieOverlay.Frame 590 ' show chewie
  2697. ChewiePerk = TRUE
  2698. Case 3:
  2699. BonusDelayTime = BonusDelayTime + 100
  2700. HUDOverlay.Frame 591: MovieOverlay.Frame 591 ' show leia
  2701. If (TimeAttack = FALSE) Then
  2702. Select Case RandomNumber(3)
  2703. Case 1: PlaySound "vo_Money"
  2704. Case 2: PlaySound "vo_Carpet"
  2705. Case 3: PlaySound "vo_LaserBrain"
  2706. End Select
  2707. LeiaPerk = TRUE
  2708. End If
  2709. Case 4:
  2710. BonusDelayTime = BonusDelayTime + 100
  2711. HUDOverlay.Frame 592: MovieOverlay.Frame 592 ' show obi wan
  2712. If (TimeAttack = FALSE) Then
  2713. Select Case RandomNumber(5)
  2714. Case 1: PlaySound "vo_Eyes"
  2715. Case 2: PlaySound "vo_Droids"
  2716. Case 3: PlaySound "vo_JediPower"
  2717. Case 4: PlaySound "vo_FeelTheForce"
  2718. Case 5: PlaySound "vo_BenChat8"
  2719. End Select
  2720. ObiWanPerk = TRUE
  2721. End If
  2722. Case 5:
  2723. BonusDelayTime = BonusDelayTime + 100
  2724. HUDOverlay.Frame 593: MovieOverlay.Frame 593 ' show han
  2725. If (TimeAttack = FALSE) Then
  2726. Select Case RandomNumber(4)
  2727. Case 1: PlaySound "vo_ForTheMoney"
  2728. Case 2: PlaySound "vo_Fight"
  2729. Case 3: PlaySound "vo_GoodBlaster"
  2730. Case 4: PlaySound "vo_MyDestiny"
  2731. End Select
  2732. HanPerk = TRUE
  2733. End If
  2734. Case 6:
  2735. BonusDelayTime = BonusDelayTime + 100
  2736. HUDOverlay.Frame 594: MovieOverlay.Frame 594 ' show luke
  2737. If (TimeAttack = FALSE) Then
  2738. Select Case RandomNumber(2)
  2739. Case 1: PlaySound "vo_DarkSide"
  2740. Case 2: PlaySound "vo_SirLuke"
  2741. End Select
  2742. LukePerk = TRUE
  2743. End If
  2744. End Select
  2745. Else
  2746. BonusDelayTime = 1000
  2747. End If
  2748. EndOfBallTimer.Set TRUE, BonusDelayTime
  2749. End Sub
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755. Sub MusicFade(FadeTime)
  2756. EffectMusic 1, SetVolume, 0.2, 200
  2757. ResumeVol.Set TRUE, FadeTime
  2758. End Sub
  2759.  
  2760.  
  2761. Sub ResumeVol_Expired()
  2762. ResumeVol.Set FALSE
  2763. EffectMusic 1, SetVolume, vol, 500
  2764. End Sub
  2765.  
  2766.  
  2767.  
  2768.  
  2769. Sub EndOfBallTimer_Expired()
  2770. EndOfBallTimer.Enabled = FALSE
  2771. If ((EmpireBonus =< 0) and (RebellionBonus =< 0)) Then
  2772. DOFLinx_Lightsabers_Off() 'DOFLinx_Lightsabers_Off
  2773. EmpireBonus = 0: RebellionBonus = 0
  2774. fpTilted = FALSE
  2775.  
  2776. If (nvScore(CP) =>5000000) and (EB5m(CP) = FALSE) Then
  2777. EB5m(CP) = TRUE
  2778. PlaySound "Knocker"
  2779. R2HeadBulb.FlashForMs 100, 200, BulbOff
  2780. MyDMD.Text = "[edge3][f4][yc][b]EXTRA BALL"
  2781. MyDMD2.Text = "[edge3][f4][yc][b]EXTRA BALL"
  2782. ExtraBallsAwards(CP) = 1
  2783. bExtraBallWonThisBall = TRUE
  2784. LightShootAgain.FlashForMs 700, 100, BulbOn
  2785. End If
  2786.  
  2787. If (LastBall = TRUE) and (ExtraBallsAwards(CP) = 0) Then
  2788. AllPlasOff()
  2789. StopMusic 1
  2790. If (RedWin > BlueWin) Then
  2791. LSMove = 10: MoveLS_Expired()
  2792. Else
  2793. LSMove = 4: MoveLS_Expired()
  2794. End If
  2795. LSC = TRUE
  2796. Else
  2797. If (SithStrike = TRUE) Then
  2798. LSMove = 2
  2799. Select Case RandomNumber(8)
  2800. Case 1: MoveLS_Expired(): DelayEOB.Set TRUE, 1500
  2801. Case 2: MusicFade(2500): PlaySound "vo_UnWise": MoveLS.Set TRUE, 2200: DelayEOB.Set TRUE, 4000: VaderScoreLight.FlashForMs 2200, 2200, BulbOff
  2802. Case 3: MusicFade(2100): PlaySound "vo_MeetAgain": MoveLS.Set TRUE, 2000: DelayEOB.Set TRUE, 4000: VaderScoreLight.FlashForMs 2100, 2100, BulbOff
  2803. Case 4: MusicFade(4000): PlaySound "vo_MeetDestiny": MoveLS.Set TRUE, 4000: DelayEOB.Set TRUE, 6000: VaderScoreLight.FlashForMs 4000, 4000, BulbOff
  2804. Case 5: MusicFade(2300): PlaySound "vo_MeetDestiny2": MoveLS.Set TRUE, 2300: DelayEOB.Set TRUE, 4000: VaderScoreLight.FlashForMs 2300, 2300, BulbOff
  2805. Case 6: MusicFade(2000): PlaySound "vo_JoinOrDie": MoveLS.Set TRUE, 2000: DelayEOB.Set TRUE, 3800: VaderScoreLight.FlashForMs 2000, 2000, BulbOff
  2806. Case 7: MusicFade(1400): PlaySound "vo_TooEasy": MoveLS.Set TRUE, 1400: DelayEOB.Set TRUE, 3400: VaderScoreLight.FlashForMs 1400, 1400, BulbOff
  2807. Case 8: MusicFade(2500): PlaySound "vo_Hatred": MoveLS.Set TRUE, 2000: DelayEOB.Set TRUE, 3500: VaderScoreLight.FlashForMs 2500, 2500, BulbOff
  2808. End Select
  2809. Else
  2810. LSMove = 0
  2811. Select Case RandomNumber(5)
  2812. Case 1: MusicFade(2200): PlaySound "vo_Powerful": MoveLS_Expired(): DelayEOB.Set TRUE, 2300
  2813. Case 2: MusicFade(2300): PlaySound "vo_Destiny": MoveLS_Expired(): DelayEOB.Set TRUE, 2400
  2814. Case 3: MusicFade(2400): PlaySound "vo_Destroyed": MoveLS.Set TRUE, 2500: DelayEOB.Set TRUE, 4500
  2815. Case 4: MusicFade(2500): PlaySound "vo_LSAlive": MoveLS.Set TRUE, 2500: DelayEOB.Set TRUE, 4500
  2816. Case 5: DelayEOB.Set TRUE, 1500
  2817. End Select
  2818. End If
  2819. SithStrike = FALSE
  2820. End If
  2821. Else
  2822. If (RebellionBonus > 0) Then
  2823. LSLOn(): DOFLinx_Blue_Lightsaber_On() 'DOFLinx_Blue_Lightsabers_On
  2824. If (ShowLSL = FALSE) Then
  2825. PlaySound "fx_LSOnL": ShowLSL = TRUE
  2826. Else
  2827. PlaySound "bonus counter left"
  2828. End If
  2829. IncrementRebellionBonus(-10)
  2830. Else
  2831. LSLOff(): LSROn(): DOFLinx_Red_Lightsaber_On() 'DOFLinx_Red_Lightsabers_On
  2832. If (ShowLSR = FALSE) Then
  2833. PlaySound "fx_LSOnR": ShowLSR = TRUE
  2834. Else
  2835. PlaySound "bonus counter right"
  2836. End If
  2837. IncrementEmpireBonus(-10)
  2838. End If
  2839.  
  2840. Dim AwardPoints
  2841.  
  2842. AwardPoints = 1000 * BonusMultiplier(CP)
  2843. AddScore(AwardPoints)
  2844.  
  2845. If (EndOfBallTimer.Interval > 50) Then
  2846. EndOfBallTimer.Interval = EndOfBallTimer.Interval - 50
  2847. End If
  2848. EndOfBallTimer.Enabled = TRUE
  2849. End If
  2850. End Sub
  2851.  
  2852.  
  2853. Dim LSC,ShowLSL,ShowLSR
  2854.  
  2855.  
  2856. Sub DelayEOB_Expired()
  2857. DelayEOB.Enabled = FALSE
  2858. If (LSC = TRUE) Then
  2859. LSC = FALSE
  2860. FlasherLeft.FlashForMs 500, 250, BulbOff
  2861. FlasherRight.FlashForMs 500, 250, BulbOff
  2862. LightSeqPF.Play SeqBlinking, , 2, 100
  2863. DelayEOB.Set TRUE, 1000
  2864. Exit Sub
  2865. End If
  2866. ShowLSL = FALSE
  2867. ShowLSR = FALSE
  2868. LSLOff()
  2869. LSROff()
  2870. If (ExtraBallsAwards(CP) <> 0) Then
  2871. ExtraBallsAwards(CP) = ExtraBallsAwards(CP) - 1
  2872. If (ExtraBallsAwards(CP) = 0) Then
  2873. LightShootAgain.State = BulbOff
  2874. End If
  2875. AllPlasOn(): TurnOnBackBoxLights()
  2876. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1000: MusicFade(1000): PlaySound "vo_ShootAgain"
  2877. If (PlayersPlayingGame > 1) Then
  2878. LightPadawan.State = PadawanP(CP)
  2879. LightKnight.State = KnightP(CP)
  2880. LightMaster.State = MasterP(CP)
  2881. LightJoda.State = YodaP(CP)
  2882. SoloBulb1.State = Solo1P(CP)
  2883. SoloBulb2.State = Solo2P(CP)
  2884. SoloBulb3.State = Solo3P(CP)
  2885. SoloBulb4.State = Solo4P(CP)
  2886. BulbBottom.State = BulbLvL1P(CP)
  2887. BulbMiddle.State = BulbLvL2P(CP)
  2888. BulbTop.State = BulbLvL3P(CP)
  2889. End If
  2890. bExtraBallWonThisBall = FALSE
  2891. CreateNewBall()
  2892. Else
  2893. BallsRemaining(CP) = BallsRemaining(CP) - 1
  2894. If (BallsRemaining(CP) = 1) Then LastBall = TRUE
  2895. TurnOnBackBoxLights()
  2896. If (BallsRemaining(CP) <= 0) Then
  2897. PlaySound "fx_LSOff"
  2898. EffectMusic 1, FadeOutAndStop, 0, 100
  2899. PlayMusic 3, "Music_HSEntry"
  2900. If (QuoteBusy = FALSE) Then
  2901. If (PlayersPlayingGame = 1) Then
  2902. StopMusic 2
  2903. Select Case RandomNumber(6)
  2904. Case 1: PlayMusic 2, "vo_YodaQ1"
  2905. Case 2: PlayMusic 2, "vo_YodaQ2"
  2906. Case 3: PlayMusic 2, "vo_Instinct"
  2907. Case 4: PlayMusic 3, "vo_JoinMe"
  2908. Case 5: PlayMusic 2, "vo_StillAlive"
  2909. Case 6: PlayMusic 2, "vo_TellYou": StopMusic 3
  2910. End Select
  2911. End If
  2912. End If
  2913. MyDMD.Text = "[edge3][f4][xc][yc]HIGH SCORE"
  2914. MyDMD2.Text = "[edge3][f4][xc][yc]HIGH SCORE"
  2915. bEnteringAHighScore = TRUE
  2916. EnterHighScore(CP)
  2917. Else
  2918. EndOfBallComplete()
  2919. End If
  2920. End if
  2921. End Sub
  2922.  
  2923.  
  2924.  
  2925.  
  2926.  
  2927. Sub EndOfBallComplete()
  2928.  
  2929. If (PlayersPlayingGame > 1) Then
  2930. NextPlayer = CP + 1
  2931. If (NextPlayer > PlayersPlayingGame) Then
  2932. NextPlayer = 1
  2933. End If
  2934. Else
  2935. NextPlayer = CP
  2936. End If
  2937.  
  2938. If (BallsRemaining(CP) <= 0) Then ' the Match sequence..."and (BallsRemaining(NextPlayer) <= 0))"
  2939.  
  2940. MovieTimer.Set TRUE, 10
  2941.  
  2942. If (MatchPlayed(CP) = TRUE) Then StopMusic 2: GameOverTimer.Set TRUE, 100: Exit Sub
  2943.  
  2944. PlayMusic 4, "Music_Match", TRUE, 0.6
  2945. MatchPlayed(CP) = TRUE
  2946.  
  2947. dim i
  2948.  
  2949. i = int(10* rnd(1))*10 ' pick a random number...
  2950.  
  2951. MyDMD.FlushQueue
  2952.  
  2953. Dim text1
  2954. Dim text2
  2955.  
  2956. text2 = " "
  2957. text1= left(nvScore(CP),len(nvScore(CP))-2) & "[f3]" & right(text2,len(nvScore(CP))-2) & right(nvScore(CP),2)
  2958.  
  2959. If (int(right(nvScore(CP),2)) = i) Then ' you get the match so keep playing...
  2960. nvcredits = nvcredits + 1: LuckyBastard(CP) = LuckyBastard (CP) + 1
  2961. MyDMD.QueueText "[edge3][f3][y17][x10]" & nvScore(CP) , deNone, 1600, FALSE ' first, show player's score on the left...
  2962. MyDMD.QueueText "[edge3][f8][y17][x10]" & text1 , deNone, 2000, FALSE ' then highlight the last 2 numbers...
  2963. MyDMD2.QueueText "[edge3][f3][y17][x10]" & nvScore(CP) , deNone, 1600, FALSE
  2964. MyDMD2.QueueText "[edge3][f8][y17][x10]" & text1 , deNone, 2000, FALSE
  2965.  
  2966. If (i = 0) Then ' then show match number on the right...
  2967. MyDMD.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]00", deWipeDown, 1200, FALSE
  2968. MyDMD2.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]00", deWipeDown, 1200, FALSE
  2969. Else
  2970. R2HeadBulb.FlashForMs 1200, 100, BulbOff
  2971. MyDMD.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]" & i, deWipeDown, 1200, FALSE
  2972. MyDMD2.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]" & i, deWipeDown, 1200, FALSE
  2973. End if
  2974.  
  2975. R2HeadBulb.FlashForMs 1000, 200, BulbOff
  2976. MyDMD.QueueText "[edge3][f4][yc][b]EXTRA BALL/CREDIT[/b]", deScrollDownOver, 1800, TRUE, "knocker"
  2977. MyDMD2.QueueText "[edge3][f4][yc][b]EXTRA BALL/CREDIT[/b]", deScrollDownOver, 1800, TRUE
  2978. GameOverTimer.Set TRUE, 6500
  2979. Else
  2980. MyDMD.QueueText "[edge3][f3][y17][x10]" & nvScore(CP) , deNone, 1600, FALSE
  2981. MyDMD.QueueText "[edge3][f8][y17][x10]" & text1 , deNone, 2000, FALSE
  2982. MyDMD2.QueueText "[edge3][f3][y17][x10]" & nvScore(CP) , deNone, 1600, FALSE
  2983. MyDMD2.QueueText "[edge3][f8][y17][x10]" & text1 , deNone, 2000, FALSE
  2984.  
  2985. If (i = 0) Then ' then show match number on the right...
  2986. MyDMD.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]00", deWipeDown, 1200, TRUE, "no"
  2987. MyDMD2.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]00", deWipeDown, 1200, TRUE
  2988. Else
  2989. MyDMD.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]" & i, deWipeDown, 1200, TRUE, "no"
  2990. MyDMD2.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]" & i, deWipeDown, 1200, TRUE
  2991. End If
  2992. GameOverTimer.Set TRUE, 5500
  2993. End If
  2994. Else
  2995. CP = NextPlayer
  2996. ResetForNewPlayerBall()
  2997. NewBall = TRUE
  2998. CreateNewBall()
  2999. End If
  3000. End Sub
  3001.  
  3002.  
  3003.  
  3004. Sub GameOverTimer_Expired()
  3005. GameOverTimer.Enabled = FALSE
  3006.  
  3007. StopMusic 8
  3008. EffectMusic 4, FadeOutAndStop, 0, 500
  3009. If (LuckyBastard(CP) = 1) Then ' match win...
  3010. RestartMusic()
  3011. AllPlasOn(): TurnOnBackBoxLights()
  3012. BallSaver()
  3013. Else
  3014. If (BallsRemaining(NextPlayer) > 0) Then ' let the next player have their go...
  3015. CP = NextPlayer
  3016. ResetForNewPlayerBall()
  3017. NewBall = TRUE
  3018. CreateNewBall()
  3019. Exit Sub
  3020. End If
  3021.  
  3022. If (PlayersPlayingGame = 2) Then
  3023. Select Case RandomNumber(2)
  3024. Case 1: PlaySound "vo_Luck", 0.8
  3025. Case 2: PlaySound "vo_GoodBlaster", 0.8
  3026. End Select
  3027. If (Pilot1 > Pilot2) Then ' player 1 wins...
  3028. MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 5"
  3029. MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 5"
  3030. Else ' player 2 wins
  3031. MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 2"
  3032. MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 2"
  3033. End If
  3034. DelayGameEnd.Set TRUE, 3500
  3035. Exit Sub
  3036. End If
  3037. If (PlayersPlayingGame = 3) Then
  3038. Select Case RandomNumber(2)
  3039. Case 1: PlaySound "vo_Luck", 0.8
  3040. Case 2: PlaySound "vo_GoodBlaster", 0.8
  3041. End Select
  3042. If (Pilot1 > Pilot2) and (Pilot1 > Pilot3) Then ' player 1 wins...
  3043. MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 5"
  3044. MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 5"
  3045. Else
  3046. If (Pilot2 > Pilot1) and (Pilot2 > Pilot3) Then ' player 2 wins...
  3047. MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 2"
  3048. MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 2"
  3049. Else
  3050. If (Pilot3 > Pilot1) and (Pilot3 > Pilot2) Then ' player 3 wins...
  3051. MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 3"
  3052. MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 3"
  3053. End If
  3054. End If
  3055. End If
  3056. DelayGameEnd.Set TRUE, 3500
  3057. Exit Sub
  3058. End If
  3059. If (PlayersPlayingGame = 4) Then
  3060. Select Case RandomNumber(2)
  3061. Case 1: PlaySound "vo_Luck", 0.8
  3062. Case 2: PlaySound "vo_GoodBlaster", 0.8
  3063. End Select
  3064. If (Pilot1 > Pilot2) and (Pilot1 > Pilot3) and (Pilot1 > Pilot4) Then ' player 1 wins...
  3065. MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 5"
  3066. MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 5"
  3067. Else
  3068. If (Pilot2 > Pilot1) and (Pilot2 > Pilot3) and (Pilot2 > Pilot4) Then ' player 2 wins...
  3069. MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 2"
  3070. MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 2"
  3071. Else
  3072. If (Pilot3 > Pilot1) and (Pilot3 > Pilot2) and (Pilot3 > Pilot4) Then ' player 3 wins...
  3073. MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 3"
  3074. MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 3"
  3075. Else
  3076. If (Pilot4 > Pilot1) and (Pilot4 > Pilot2) and (Pilot4 > Pilot3) Then ' player 4 wins...
  3077. MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 6"
  3078. MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 6"
  3079. End If
  3080. End If
  3081. End If
  3082. End If
  3083. DelayGameEnd.Set TRUE, 3500
  3084. Exit Sub
  3085. End If
  3086.  
  3087. If (nvScore(CP) > 1500000) Then
  3088. PointsRewards()
  3089. Else
  3090. If (nvScore(CP) < 1500000) Then
  3091. StopMusic 1: StopMusic 3
  3092. MyDMD.Text = "[edge3][f4][yc][b]PLAY BETTER"
  3093. MyDMD2.Text = "[edge3][f4][yc][b]PLAY BETTER"
  3094. Select Case RandomNumber(7)
  3095. Case 1: PlaySound "vo_FailMe": VaderScoreLight.FlashForMs 2000, 2000, BulbOff: DelayGameEnd.Set TRUE, 2000
  3096. Case 2: PlaySound "vo_CompleteTraining": VaderScoreLight.FlashForMs 1900, 1900, BulbOff: DelayGameEnd.Set TRUE, 1900
  3097. Case 3: PlaySound "vo_LackOfProgress": VaderScoreLight.FlashForMs 3700, 3700, BulbOff: DelayGameEnd.Set TRUE, 3700
  3098. Case 4: PlayMusic 2, "vo_Sister", FALSE, 1, 500: VaderScoreLight.FlashForMs 9050, 9050, BulbOff: DelayGameEnd.Set TRUE, 9050
  3099. Case 5: PlaySound "vo_TurnToDarkSide": VaderScoreLight.FlashForMs 1900, 1900, BulbOff: DelayGameEnd.Set TRUE, 1900
  3100. Case 6: PlaySound "vo_PowerOfDarkSide": VaderScoreLight.FlashForMs 3500, 3500, BulbOff: DelayGameEnd.Set TRUE, 3500
  3101. Case 7: PlaySound "vo_DontKnowPower": VaderScoreLight.FlashForMs 4000, 4000, BulbOff: DelayGameEnd.Set TRUE, 4000
  3102. End Select
  3103. Else
  3104. RewardSHOTS = FALSE
  3105. StopMusic 2
  3106. PlayMusic 6, "GameOver"
  3107. nvTotalGamesPlayed = nvTotalGamesPlayed + 1
  3108. PlayMe = 1
  3109. EndOfGame()
  3110. End If
  3111. End If
  3112. End If
  3113. End Sub
  3114.  
  3115.  
  3116.  
  3117. Sub DelayGameEnd_Expired()
  3118. DelayGameEnd.Enabled = FALSE
  3119. LightSeqPF.StopPlay
  3120. LightSeqGI.StopPlay
  3121. BackBox.StopPlay
  3122. StopMusic 2
  3123. PlayMusic 6, "GameOver"
  3124. nvTotalGamesPlayed = nvTotalGamesPlayed + 1
  3125. RewardSHOTS = FALSE
  3126. PlayMe = 1
  3127. EndOfGame()
  3128. End Sub
  3129.  
  3130.  
  3131.  
  3132.  
  3133. Sub AwardFreeCredit(Credits)
  3134. AwardKnockerTimer.UserData = AwardKnockerTimer.UserData + Credits
  3135. If (AwardKnockerTimer.Enabled = False) Then
  3136. AwardKnockerTimer.Set True, 500
  3137. End If
  3138. End Sub
  3139.  
  3140.  
  3141.  
  3142. Sub AwardKnockerTimer_Expired()
  3143. AwardKnockerTimer.Enabled = False
  3144. nvCredits = nvCredits + 1
  3145. PlaySound "Knocker"
  3146. AwardKnockerTimer.UserData = AwardKnockerTimer.UserData - 1
  3147. If (AwardKnockerTimer.UserData > 0) Then
  3148. AwardKnockerTimer.Set True, 500
  3149. End If
  3150. End Sub
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159. Sub PointsRewards()
  3160. RewardSHOTS = FALSE
  3161. RewardsTimer.Set TRUE, 4000 ' times out after 4 seconds...
  3162. PointReward = TRUE
  3163. PlayMusic 1, "Music_Yoda"
  3164. DMDBusy = FALSE: DMDTimer.Enabled = FALSE
  3165. MyDMD.FlushQueue: MyDMD2.FlushQueue
  3166. MyDMD.QueueText "[f1][y7]SPEND POINTS[f3][y16]FOR NEXT GAME?", deScrollIn, 1600, FALSE
  3167. MyDMD2.QueueText "[f1][y7]SPEND POINTS[f3][y16]FOR NEXT GAME?", deScrollIn, 1600, FALSE
  3168. MyDMD.QueueText "[f4][yc]< YES NO >", deNone, 1500, TRUE
  3169. MyDMD2.QueueText "[f4][yc]< YES NO >", deNone, 1500, TRUE
  3170. End Sub
  3171.  
  3172.  
  3173.  
  3174.  
  3175. Sub RewardListTimer_Expired()
  3176. RWD = RWD + 1
  3177.  
  3178. ' score is more than 1.5m but less then 2.5m so only 1 option is available....
  3179.  
  3180. If (nvScore(CP) => 1500000) and (nvScore(CP) =< 2500000) and (RewardSAVER = FALSE) Then
  3181. RewardSAVER = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE
  3182. MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
  3183. MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
  3184. PlaySound "BeepCentre"
  3185. RWD = 0
  3186. End If
  3187.  
  3188. ' score is more than 2.5m but less then 4m so only 2 options are available....
  3189.  
  3190. If (nvScore(CP) => 2500000) and (nvScore(CP) =< 4000000) Then
  3191. PlaySound "BeepCentre"
  3192. Select Case RWD
  3193. Case 1:
  3194. RewardSAVER = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE
  3195. MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
  3196. MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
  3197. Case 2:
  3198. RewardJEDI = TRUE: RewardSAVER = FALSE: RewardBALL = FALSE
  3199. MyDMD.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
  3200. MyDMD2.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
  3201. RWD = 0
  3202. End Select
  3203. End If
  3204.  
  3205. ' score is more than 4m but less then 5.5m so only 3 options are available....
  3206.  
  3207. If (nvScore(CP) => 4000000) and (nvScore(CP) =< 5500000) Then
  3208. PlaySound "BeepCentre"
  3209. Select Case RWD
  3210. Case 1:
  3211. RewardSAVER = TRUE: RewardSHOTS = FALSE: RewardJEDI = FALSE
  3212. MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
  3213. MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
  3214. Case 2:
  3215. RewardJEDI = TRUE: RewardSAVER = FALSE: RewardSHOTS = FALSE
  3216. MyDMD.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
  3217. MyDMD2.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
  3218. Case 3:
  3219. RewardSHOTS = TRUE: RewardJEDI = FALSE: RewardSAVER = FALSE
  3220. MyDMD.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
  3221. MyDMD2.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
  3222. RWD = 0
  3223. End Select
  3224. End If
  3225.  
  3226. ' score is more than 5.5m but less than 7m so 4 options are available....
  3227.  
  3228. If (nvScore(CP) => 5500000) and (nvScore(CP) =< 7000000) Then
  3229. PlaySound "BeepCentre"
  3230. Select Case RWD
  3231. Case 1:
  3232. RewardSAVER = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSHOTS = FALSE: RewardSAVER2 = FALSE
  3233. MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
  3234. MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
  3235. Case 2:
  3236. RewardJEDI = TRUE: RewardSAVER = FALSE: RewardBALL = FALSE: RewardSHOTS = FALSE: RewardSAVER2 = FALSE
  3237. MyDMD.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
  3238. MyDMD2.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
  3239. Case 3:
  3240. RewardSHOTS = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSAVER2 = FALSE
  3241. MyDMD.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
  3242. MyDMD2.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
  3243. Case 4:
  3244. RewardSAVER2 = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSHOTS = FALSE
  3245. MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 10 SECONDS?"
  3246. MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 10 SECONDS?"
  3247. RWD = 0
  3248. End Select
  3249. End If
  3250.  
  3251. ' score is more than 7m but less than 8.5m so 5 options are available....
  3252.  
  3253. If (nvScore(CP) => 7000000) and (nvScore(CP) =< 8500000) Then
  3254. PlaySound "BeepCentre"
  3255. Select Case RWD
  3256. Case 1:
  3257. RewardSAVER = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSHOTS = FALSE: RewardSAVER2 = FALSE
  3258. MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
  3259. MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
  3260. Case 2:
  3261. RewardJEDI = TRUE: RewardSAVER = FALSE: RewardBALL = FALSE: RewardSHOTS = FALSE: RewardSAVER2 = FALSE
  3262. MyDMD.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
  3263. MyDMD2.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
  3264. Case 3:
  3265. RewardSHOTS = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSAVER2 = FALSE
  3266. MyDMD.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
  3267. MyDMD2.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
  3268. Case 4:
  3269. RewardSAVER2 = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSHOTS = FALSE
  3270. MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 10 SECONDS?"
  3271. MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 10 SECONDS?"
  3272. Case 5:
  3273. RewardBALL = TRUE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSAVER2 = FALSE: RewardSHOTS = FALSE
  3274. MyDMD.Text = "[f1][y7]ADD ANOTHER[f3][y16]BALL?"
  3275. MyDMD2.Text = "[f1][y7]ADD ANOTHER[f3][y16]BALL?"
  3276. RWD = 0
  3277. End Select
  3278. End If
  3279.  
  3280. ' score is more than 8.5m so all 6 options are available....
  3281.  
  3282. If (nvScore(CP) => 8500000) Then
  3283. PlaySound "BeepCentre"
  3284. Select Case RWD
  3285. Case 1:
  3286. RewardSAVER = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSHOTS = FALSE: RewardSAVER2 = FALSE: RewardJEDI2 = FALSE
  3287. MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
  3288. MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
  3289. Case 2:
  3290. RewardJEDI = TRUE: RewardSAVER = FALSE: RewardBALL = FALSE: RewardSHOTS = FALSE: RewardSAVER2 = FALSE: RewardJEDI2 = FALSE
  3291. MyDMD.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
  3292. MyDMD2.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
  3293. Case 3:
  3294. RewardSHOTS = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSAVER2 = FALSE: RewardJEDI2 = FALSE
  3295. MyDMD.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
  3296. MyDMD2.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
  3297. Case 4:
  3298. RewardSAVER2 = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSHOTS = FALSE: RewardJEDI2 = FALSE
  3299. MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 10 SECONDS?"
  3300. MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 10 SECONDS?"
  3301. Case 5:
  3302. RewardBALL = TRUE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSAVER2 = FALSE: RewardSHOTS = FALSE: RewardJEDI2 = FALSE
  3303. MyDMD.Text = "[f1][y7]ADD ANOTHER[f3][y16]BALL?"
  3304. MyDMD2.Text = "[f1][y7]ADD ANOTHER[f3][y16]BALL?"
  3305. Case 6:
  3306. RewardJEDI2 = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSAVER2 = FALSE: RewardSHOTS = FALSE
  3307. MyDMD.Text = "[f1][y7]START AS[f3][y16]JEDI KNIGHT?"
  3308. MyDMD2.Text = "[f1][y7]START AS[f3][y16]JEDI KNIGHT?"
  3309. RWD = 0
  3310. End Select
  3311. End If
  3312. End Sub
  3313.  
  3314.  
  3315.  
  3316.  
  3317. Sub RewardsTimer_Expired()
  3318. RewardsTimer.Enabled = FALSE
  3319. PointReward = FALSE
  3320. StopMusic 1
  3321. PlayMusic 6, "GameOver"
  3322. nvTotalGamesPlayed = nvTotalGamesPlayed + 1
  3323. PlayMe = 1
  3324. EndOfGame()
  3325. End Sub
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331. Sub EndOfGame()
  3332.  
  3333. AllPlasOn(): TurnOnBackBoxLights()
  3334.  
  3335. EndGame()
  3336. DOFLinx_LightSaber_FireButton_Flash() 'DOFLinx_LightSaber_FireButton_Flash
  3337. If (nvCredits = 0) Then
  3338. DOFLinx_NoCoins_StartOff() 'DOFLinx No Coins, Start Button Off
  3339. MyDMD.FlushQueue
  3340. MyDMD.QueueText "[edge3][f4][yc]GAME OVER", deNone, 2500, FALSE
  3341. MyDMD.QueueText "[edge3][f4][yc] ", deNone, 500, FALSE
  3342. MyDMD.QueueText "[edge3][f4][yc]STAR WARS", deWipeOut, 2000, FALSE
  3343. MyDMD.QueueText "[edge3][f1][y7]CREATED BY[f2][y17]SLAMT1LT", deNone, 2500, FALSE
  3344. MyDMD.QueueText "[edge3][f1][y7]EPIC SPACE BATTLES BY[f2][y17]TERRYRED", deNone, 2500, FALSE
  3345. MyDMD.QueueText "[edge3][f1][y7]OPTIMIZED FOR[f2][y17]B.A.M.", deFlip, 2000, FALSE
  3346. MyDMD.QueueText "[edge3][f1][y7]DOFLinx MX Mod 1.1 by[f2][y17]TerryRed", deFlip, 2000, FALSE
  3347. MyDMD.QueueText "[edge3][b][f4][yc]INSERT COIN[/b]", deWipeOut, 5000, FALSE
  3348. MyDMD.QueueText "[edge3][f1][y7]TOP PILOT SCORE[f2][y17]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollRight, 3000, FALSE
  3349. MyDMD.QueueText "[edge3][f1][y7]2ND PILOT SCORE[f2][y17]" & left(nvHighScore2Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollRight, 2000, FALSE
  3350. MyDMD.QueueText "[edge3][f1][y7]3RD PILOT SCORE[f2][y17]" & left(nvHighScore3Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollRight, 2000, FALSE
  3351. MyDMD.QueueText "[edge3][f1][y7]LAST PILOT SCORE[f2][y17]" & FormatNumber(nvScore(CP), 0, -1, 0, -1), deScrollUp, 3500, FALSE
  3352. MyDMD.QueueText "[edge3][f4][yc]GAMES PLAYED = " & nvTotalGamesPlayed, deNone, 2500, FALSE
  3353. Else
  3354. MyDMD.FlushQueue
  3355. MyDMD.QueueText "[edge3][f4][yc]GAME OVER", deWipeDown, 2500, FALSE
  3356. MyDMD.QueueText "[f2][y7][xc]CREDIT " & nvCredits & "[f1][y17][xc][b]PRESS START", deNone, 3000, FALSE
  3357. MyDMD.QueueText "[edge3][f1][y7]TOP PILOT SCORE[f2][y17]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollRight, 3000, FALSE
  3358. MyDMD.QueueText "[edge3][f1][y7]2ND BEST SCORE[f2][y17]" & left(nvHighScore2Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollRight, 2000, FALSE
  3359. MyDMD.QueueText "[edge3][f1][y7]3RD BEST SCORE[f2][y17]" & left(nvHighScore3Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollRight, 2000, FALSE
  3360. MyDMD.QueueText "[edge3][f1][y7]LAST PILOT SCORE[f2][y17]" & FormatNumber(nvScore(CP), 0, -1, 0, -1), deScrollUp, 3500, FALSE
  3361. MyDMD.QueueText "[edge3][f4][yc]GAMES PLAYED = " & nvTotalGamesPlayed, deNone, 2500, FALSE
  3362. End If
  3363.  
  3364. If (nvCredits = 0) Then
  3365. DOFLinx_NoCoins_StartOff() 'DOFLinx No Coins, Start Button Off
  3366. MyDMD2.FlushQueue
  3367. MyDMD2.QueueText "[edge3][f4][yc]GAME OVER", deNone, 2500, FALSE
  3368. MyDMD2.QueueText "[edge3][f4][yc] ", deNone, 500, FALSE
  3369. MyDMD2.QueueText "[edge3][f4][yc]STAR WARS", deWipeOut, 2000, FALSE
  3370. MyDMD2.QueueText "[edge3][f1][y7]CREATED BY[f2][y17]SLAMT1LT", deNone, 2500, FALSE
  3371. MyDMD2.QueueText "[edge3][f1][y7]EPIC SPACE BATTLES BY[f2][y17]TERRYRED", deNone, 2500, FALSE
  3372. MyDMD2.QueueText "[edge3][f1][y7]OPTIMIZED FOR[f2][y17]B.A.M.", deFlip, 2000, FALSE
  3373. MyDMD2.QueueText "[edge3][f1][y7]DOFLinx MX Mod 1.1 by[f2][y17]TerryRed", deFlip, 2000, FALSE
  3374. MyDMD2.QueueText "[edge3][b][f4][yc]INSERT COIN[/b]", deWipeOut, 5000, FALSE
  3375. MyDMD2.QueueText "[edge3][f1][y7]TOP PILOT SCORE[f2][y17]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollRight, 3000, FALSE
  3376. MyDMD2.QueueText "[edge3][f1][y7]2ND BEST SCORE[f2][y17]" & left(nvHighScore2Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollRight, 2000, FALSE
  3377. MyDMD2.QueueText "[edge3][f1][y7]3RD BEST SCORE[f2][y17]" & left(nvHighScore3Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollRight, 2000, FALSE
  3378. MyDMD2.QueueText "[edge3][f1][y7]LAST PILOT SCORE[f2][y17]" & FormatNumber(nvScore(CP), 0, -1, 0, -1), deScrollUp, 3500, FALSE
  3379. MyDMD2.QueueText "[edge3][f4][yc]GAMES PLAYED = " & nvTotalGamesPlayed, deNone, 2500, FALSE
  3380. Else
  3381. MyDMD2.FlushQueue
  3382. DOFLinx_CoinsIn_StartFlash() 'DOFLinx Coins In, Start Button Flashing
  3383. MyDMD2.QueueText "[edge3][f4][yc]GAME OVER", deWipeDown, 2500, FALSE
  3384. MyDMD2.QueueText "[f2][y7][xc]CREDIT " & nvCredits & "[f1][y17][xc][b]PRESS START", deNone, 3000, FALSE
  3385. MyDMD2.QueueText "[edge3][f1][y7]TOP PILOT SCORE[f2][y17]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollRight, 3000, FALSE
  3386. MyDMD2.QueueText "[edge3][f1][y7]2ND PILOT SCORE[f2][y17]" & left(nvHighScore2Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollRight, 2000, FALSE
  3387. MyDMD2.QueueText "[edge3][f1][y7]3RD PILOT SCORE[f2][y17]" & left(nvHighScore3Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollRight, 2000, FALSE
  3388. MyDMD2.QueueText "[edge3][f1][y7]LAST PILOT SCORE[f2][y17]" & FormatNumber(nvScore(CP), 0, -1, 0, -1), deScrollUp, 3500, FALSE
  3389. MyDMD2.QueueText "[edge3][f4][yc]GAMES PLAYED = " & nvTotalGamesPlayed, deNone, 2500, FALSE
  3390. End If
  3391.  
  3392. TimeAttack = FALSE
  3393.  
  3394. If (SpinMe = 0) Then DSToy.RotateXZ -50, 325
  3395. If (SpinMe = 1) Then DSToy.RotateXZ 50, 325
  3396.  
  3397. DSSpin.Enabled = FALSE
  3398.  
  3399. ' Luke lands the X-Wing, gets out, takes a leak and has a celebration drinkiepoo.
  3400. 'XMove = 4:
  3401. XWingMove_Expired()
  3402.  
  3403. LightPadawan.State = BulbOff
  3404. LightKnight.State = BulbOff
  3405. LightMaster.State = BulbOff
  3406. LightJoda.State = BulbOff
  3407. SoloBulb1.State = BulbOff
  3408. SoloBulb2.State = BulbOff
  3409. SoloBulb3.State = BulbOff
  3410. SoloBulb4.State = BulbOff
  3411. BulbBottom.State = BulbOff
  3412. BulbMiddle.State = BulbOff
  3413. BulbTop.State = BulbOff
  3414.  
  3415. BGReflect.Render = FALSE
  3416. CheckRightOutLights()
  3417. CheckLeftOutLights()
  3418.  
  3419. ' ensure that the flippers are down
  3420. LeftFlipper.SolenoidOff
  3421. DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
  3422. RightFlipper.SolenoidOff
  3423. DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
  3424.  
  3425. SoloBulb1.State = BulbOff: SoloBulb2.State = BulbOff: SoloBulb3.State = BulbOff: SoloBulb4.State = BulbOff
  3426.  
  3427. ' reset the drop targets
  3428. ResetDropTargets()
  3429. DiverterGuide.Collidable = FALSE
  3430. DiverterSurface.Collidable = FALSE
  3431. RampDiverter.SolenoidOff
  3432. RampDiverter2.SolenoidOff
  3433.  
  3434. ' turn off any game music playing and start attract music
  3435. EffectMusic 1, FadeOutAndStop, 0, 100
  3436. PlayMusic 3, "Music_Disco", TRUE, 0.7, 1600
  3437.  
  3438. WakeUpTimer.Set TRUE, 4900
  3439.  
  3440. ' ensure the game over overlay is display the 'intro' graphic
  3441. MovieOverlay.UpdateInterval = 80:MovieOverlay.Frame 1, 16
  3442. HUDOverlay.UpdateInterval = 80: HUDOverlay.Frame 1, 16
  3443. End Sub
  3444.  
  3445.  
  3446.  
  3447. Sub WakeUpTimer_Expired()
  3448. VaderAnimation 35
  3449. WakeUpTimer.Enabled = FALSE
  3450. SetAllLightsForAttractMode()
  3451. If (BGArt = 0) Then BackBox.StopPlay: OverlayBG.Frame 1
  3452. R2HeadBulb.FlashForMs 800, 100, BulbOff
  3453. BackOverlay.FadeOut
  3454. AllPlasOn(): TurnOnBackBoxLights()
  3455. LightSeqPF.StopPlay
  3456. MovieOverlay.UpdateInterval = 67:MovieOverlay.Frame 17, 117
  3457. HUDOverlay.UpdateInterval = 67: HUDOverlay.Frame 17, 117
  3458. End Sub
  3459.  
  3460.  
  3461.  
  3462. ' only when the game is first powered on...
  3463.  
  3464. Sub AttractDelayTimer_Expired()
  3465. AttractDelayTimer.Enabled = FALSE
  3466. PlayMusic 1, "vo_R2WakeUp"
  3467. PlayMusic 3, "Music_Disco", TRUE, 0.7, 2300
  3468. WakeUpTimer.Set TRUE, 2300
  3469. R2Move = 0: R2Animate = 1: MoveR2.Set TRUE, 2300
  3470. End Sub
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476. ' **********************************************
  3477. ' ** **
  3478. ' ** DRAIN **
  3479. ' ** **
  3480. ' **********************************************
  3481.  
  3482.  
  3483. Sub Drain_Hit()
  3484. Drain.DestroyBall: DeleteTrackedBall(Drain)
  3485. BallsOnPlayfield = BallsOnPlayfield - 1'
  3486. 'PlaySound "fx_Drain"
  3487. DOFLinx_Drain_Hit() 'DOFLinx - Drain Hit
  3488. LaneWall.Dropped = FALSE
  3489. BallSaverTally(CP) = 0
  3490.  
  3491. If (bBallSaverActive = FALSE) and (TimeAttack = FALSE) Then CountDown.FadeOut
  3492.  
  3493. DeathStarTimer2.Enabled = FALSE
  3494. TenSecondTimer.Enabled = FALSE
  3495.  
  3496. ' Time Attack returns the ball back to play...but as a penalty some features are reset...
  3497. If (TimeAttack = TRUE) and (fpTilted = FALSE) and (bMultiballMode = FALSE) Then
  3498. If (FailTimer.Enabled = FALSE) Then
  3499. AutoFire = TRUE
  3500. PlungerKicker.CreateBall: AddTrackedBall(PlungerKicker)
  3501. BallsOnPlayfield = BallsOnPlayfield + 1
  3502. PlungerKicker.SolenoidPulse
  3503. ' reset progress, we're just interested in the Death Star...
  3504. Light50000Points.State = BulbOff
  3505. LightExtraBall.State = BulbOff
  3506. LightSpecial.State = BulbOff
  3507. LightSpecialL.State = BulbOff
  3508. LightSpecialR.State = BulbOff
  3509. LightDock.State = BulbOff
  3510. ResetVADER()
  3511. SoloTally(CP) = 0
  3512. RampTally(CP) = 0
  3513. SoloBulb1.State = BulbOff
  3514. SoloBulb2.State = BulbOff
  3515. SoloBulb3.State = BulbOff
  3516. SoloBulb4.State = BulbOff
  3517. AttackAwardLevel = 0
  3518. End If
  3519. Exit Sub
  3520. End If
  3521.  
  3522. If (JackpotTimer.Enabled = TRUE) Then Exit Sub ' death star has been destroyed...ignore the other drained ball...
  3523.  
  3524. If (fpGameInPlay = TRUE) and (fpTilted = FALSE) Then
  3525. If (bBallSaverActive = TRUE) Then
  3526. BallSaver()
  3527. Else
  3528. If (BallsOnPlayfield = 1) Then ' end of multiball (duel)...
  3529. If (VictoryLap = TRUE) Then
  3530. VictoryLap = FALSE
  3531. StopMusic 8
  3532. PlayMusic 1, "Music_Mode1", TRUE, Vol
  3533. CameraView_Default
  3534. ResetTableForNewRound()
  3535. PlaySound "fx_R2Sound5"
  3536. DMDBusy = TRUE: DMDTimer.Set TRUE, 2500
  3537. MyDMD.FlushQueue: MyDMD2.FlushQueue
  3538. MyDMD.QueueText "[edge3][f4][xc][yc]VICTORY LAP TOTAL", deNone, 800, FALSE
  3539. MyDMD2.QueueText "[edge3][f4][xc][yc]VICTORY LAP TOTAL", deNone, 800, FALSE
  3540. MyDMD.QueueText "[edge3][f4][xc][yc][b]" & FormatNumber(VictoryTotal, 0, -1, 0, -1), deNone, 1500, TRUE
  3541. MyDMD2.QueueText "[edge3][f4][xc][yc][b]" & FormatNumber(VictoryTotal, 0, -1, 0, -1), deNone, 1500, TRUE
  3542. Exit Sub
  3543. End If
  3544. If (bMultiBallMode = TRUE) and (JackpotTimer.Enabled = FALSE) Then
  3545. bMultiBallMode = FALSE
  3546. LightJackpot.State = BulbOff
  3547. EffectMusic 1, FadeOutAndStop, 0, 100
  3548. MovieOverlay.FadeOut()
  3549. MyDMD.Text = "[edge3][f4][xc][yc]YOU FAILED"
  3550. MyDMD2.Text = "[edge3][f4][xc][yc]YOU FAILED"
  3551. ' change the camera angle...
  3552. CameraView_LookAtBackBox
  3553. TurnOffBackBoxLights()
  3554. BackBoxTimer.Set TRUE, 7000
  3555. FailTimer.Set TRUE, 12000
  3556. BackOverlay.FadeIn()
  3557. BackOverlay.UpdateInterval = 49
  3558. BackOverlay.Frame 109, 248
  3559. PlaySound "fx_Failed2", 0.7
  3560. PlaySound "vo_DSFiring"
  3561. DOFLinx_Planet_BlowUp() 'DOFLinx_Planet_BlowUp
  3562. fpTilted = TRUE
  3563. LeftFlipper.SolenoidOff: TopFlipper.SolenoidOff
  3564. DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
  3565. RightFlipper.SolenoidOff
  3566. DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
  3567. DiverterGuide.Collidable = FALSE
  3568. DiverterSurface.Collidable = FALSE
  3569. RampDiverter.SolenoidOff
  3570. RampDiverter2.SolenoidOff
  3571. DOFLinx_Drained() 'DOFLinx - Drained
  3572. If (bBallInPlungerLane = TRUE) Then
  3573. Plunger.SolenoidPulse
  3574. DOFLinx_AutoPlunger() 'DOFLinx - AutoPlunger
  3575. End If
  3576. TATimer.Enabled = FALSE
  3577. Else
  3578. bMultiBallMode = FALSE
  3579. bPadawanMode(CP) = FALSE
  3580. bKnightMode(CP) = FALSE
  3581. bMasterMode(CP) = FALSE
  3582. bYodaMode(CP) = FALSE
  3583. LightJoda.State = BulbOff
  3584. LightPadawan.State = BulbOff
  3585. LightMaster.State = BulbOff
  3586. LightKnight.State = BulbOff
  3587. LightJackpot.FlashForMs 5000, 100, BulbOff
  3588. LightShipLeft.State = BulbOff
  3589. LightShipMiddle.State = BulbOff
  3590. LightShipRight.State = BulbOff
  3591. PlayMusic 1, "Music_Mode1", TRUE, Vol
  3592. CheckRightOutLights()
  3593. CheckLeftOutLights()
  3594. End If
  3595. TATimer.Enabled = FALSE
  3596. End If
  3597. If (BallsOnPlayfield = 0) Then
  3598. DOFLinx_Drained() 'DOFLinx - Drained
  3599. MovieOverlay.UpdateInterval = 70: MovieOverlay.Frame 563, 577
  3600. HUDOverLay.UpdateInterval = 70: HUDOverLay.Frame 563, 577
  3601. bMultiBallMode = FALSE
  3602. If (TIETally(CP) =>1) Then
  3603. BonusDelayTime = 100
  3604. MyDMD.QueueText "[edge3][yc][f3]TIE DESTROYED " & TIETally(CP) & "[f3]", deScrollDown, 2000, TRUE
  3605. MyDMD2.QueueText "[edge3][yc][f3]TIE DESTROYED " & TIETally(CP) & "[f3]", deScrollDown, 2000, TRUE
  3606. End If
  3607. MovieTimer.Enabled = FALSE
  3608. AllPlasOff(): TurnOffBackBoxLights()
  3609. ' vader will only make a comment if the Bonus Multiplier is set at 1. Basicially, you're crap...
  3610. If (BonusMultiplier(CP) = 1) and (FailTimer.Enabled = FALSE) and (VictoryLap = FALSE) Then
  3611. VaderDrain()
  3612. End If
  3613. EOBDelay.Set TRUE, 1800
  3614. VaderAnimation(4)
  3615. End If
  3616. End If
  3617. End If
  3618. End Sub
  3619.  
  3620.  
  3621.  
  3622. ' *** MAJOR CRASH BUG AFTER FAIL AND RETURNING TO ATTRACT MODE ***
  3623.  
  3624.  
  3625. Sub FailTimer_Expired()
  3626. FailTimer.Enabled = FALSE
  3627. fpTilted = FALSE
  3628. CameraView_Default
  3629. If (TimeAttack = FALSE) Then
  3630. PlayMusic 1, "Music_Mode1", TRUE, Vol
  3631. CheckRightOutLights()
  3632. CheckLeftOutLights()
  3633. PlaySound "fx_R2Sound13"
  3634. ResetTableForNewRound()
  3635. PlungerKicker.CreateBall: PlungerKicker.SolenoidPulse
  3636. DOFLinx_PlungerKicker() 'DOFLinx - PlungerKicker
  3637. BallsOnPlayfield = BallsOnPlayfield + 1
  3638. BallsOnPlayfield = 1
  3639. AutoFire = TRUE
  3640. Else
  3641. DelayGameEnd.Set TRUE, 100
  3642. End If
  3643. End Sub
  3644.  
  3645.  
  3646.  
  3647.  
  3648. Sub CheckRightOutLights()
  3649. If (RightOutBulb1.State <> BulbOff) Then
  3650. TurnOffRightOutLights()
  3651. End If
  3652. End Sub
  3653.  
  3654.  
  3655.  
  3656. Sub CheckLeftOutLights()
  3657. If (LeftOutBulb1.State <> BulbOff) Then
  3658. TurnOffLeftOutLights()
  3659. End If
  3660. End Sub
  3661.  
  3662.  
  3663.  
  3664.  
  3665. ' no Bonus X? Vader will mock you...
  3666.  
  3667. Sub VaderDrain()
  3668. PlaySound "fx_VaderBreathShort", 0.7
  3669. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3700
  3670. Select Case RandomNumber(5)
  3671. Case 1: PlaySound "vo_Faith": MusicFade(3200): VaderScoreLight.FlashForMs 3200, 3200, BulbOff
  3672. Case 2: PlaySound "vo_Weak": MusicFade(2800): VaderScoreLight.FlashForMs 2800, 2800, BulbOff
  3673. Case 3: PlaySound "vo_NotJedi": MusicFade(2900): VaderScoreLight.FlashForMs 2900, 2900, BulbOff
  3674. Case 4: PlaySound "vo_Underestimate": MusicFade(3200): VaderScoreLight.FlashForMs 3200, 3200, BulbOff
  3675. Case 5: PlaySound "vo_Unfairly": MusicFade(3200): VaderScoreLight.FlashForMs 3200, 3200, BulbOff
  3676. End Select
  3677. End Sub
  3678.  
  3679.  
  3680.  
  3681. ' A ball is pressing down the trigger in the shooters lane
  3682.  
  3683.  
  3684. Sub TriggerPlungerLane_UnHit()
  3685. DOFLinx_Launch_Button_Off() 'DOFLinx - Launch Button Off
  3686. If (fpTilted = FALSE) Then
  3687. SabreTimer.Set TRUE, 1000
  3688. LSROn()
  3689. AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 1100
  3690. LightSeqPF.UpdateInterval = 10
  3691. LightSeqPF.Play SeqUpOn, 20
  3692. LaneWall.Dropped = TRUE
  3693. End If
  3694. LaunchBulb.State = BulbOff
  3695. bBallInPlungerLane = FALSE
  3696. If (SSWin = FALSE) Then MovieOverlay.Frame 303: HUDOverlay.Frame 303: DOFLinx_Red_Lightsaber_Ball_Launch() 'DOFLinx_Red_Lightsaber_Ball_Launch
  3697. set LastSwitchHit = TriggerPlungerLane
  3698. End Sub
  3699.  
  3700.  
  3701.  
  3702. Sub PlungerKicker_Hit()
  3703. PlungerKicker.SolenoidPulse
  3704. DOFLinx_PlungerKicker() 'DOFLinx - PlungerKicker
  3705. End Sub
  3706.  
  3707.  
  3708.  
  3709. Sub TriggerPlungerLane_Hit()
  3710. bBallInPlungerLane = TRUE
  3711. ForceDivert.Collidable = FALSE
  3712. LaunchBulb.State = BulbBlink
  3713. DOFLinx_Launch_Button_Flashing() 'DOFLinx - Launch Button Flashing
  3714. If (AutoFire = TRUE) Then
  3715. Plunger.SolenoidPulse
  3716. DOFLinx_AutoPlunger() 'DOFLinx - AutoPlunger
  3717. PlaySound "RightBlast"
  3718. End If
  3719. If (LastSwitchHit.Name = "LuckyTrigger") Then
  3720. PlaySound "BeepRight"
  3721. Else
  3722. If (bBallSaverActive = FALSE) and (bMultiBallMode = FALSE) and (TimeAttack = FALSE) Then
  3723. bBallSaverActive = TRUE
  3724. BallSaverTimer.Enabled = FALSE
  3725. If (LukePerk = TRUE) Then
  3726. BSTime = BSTime + 4000
  3727. End If
  3728. BallSaverTimer.Set TRUE, BSTime
  3729. Countdown.FadeIn: Countdown.Frame 32
  3730. End If
  3731. End If
  3732. End Sub
  3733.  
  3734.  
  3735. Sub Trigger42_Hit()
  3736. If (LightJackpot.State = BulbOn) Then
  3737. PlaySound "vo_LockedOn"
  3738. DiverterGuide.Collidable = FALSE
  3739. DiverterSurface.Collidable = FALSE
  3740. RampDiverter.SolenoidOff
  3741. RampDiverter2.SolenoidOff
  3742. End If
  3743. End Sub
  3744.  
  3745.  
  3746.  
  3747. Sub LuckyTrigger_Hit()
  3748. If (LastSwitchHit.Name = "LuckyTrigger") Then Exit Sub
  3749. PlaySound "fx_Droid"
  3750. TurnOffRightOutLights()
  3751. Set LastSwitchHit = LuckyTrigger
  3752. End Sub
  3753.  
  3754.  
  3755.  
  3756. Sub BallSaverTimer_Expired()
  3757. BallSaverTimer.Enabled = FALSE
  3758. bBallSaverActive = FALSE
  3759. If (bMultiBallMode = FALSE) Then Countdown.FadeOut
  3760. End Sub
  3761.  
  3762.  
  3763.  
  3764.  
  3765. ' *********************************************************************
  3766. ' ** **
  3767. ' ** WHAT GOOD IS A REWARD IF YOU AIN'T AROUND TO SPEND IT **
  3768. ' ** **
  3769. ' *********************************************************************
  3770.  
  3771. ' hit things and you get some points, hit lots of things and get a highscore.
  3772.  
  3773. ' during Time Attack the score is disabled and replaced with a countdown timer.
  3774.  
  3775.  
  3776. Sub AddScore(Points)
  3777.  
  3778. If (fpGameInPlay = FALSE) Then
  3779. If (nvCredits >0) Then
  3780. MyDMD.Text = "[f1][y7]GAME OVER[f3][y16][b]PRESS START"
  3781. MyDMD2.Text = "[f1][y7]GAME OVER[f3][y16][b]PRESS START"
  3782. Else
  3783. MyDMD.Text = "[f1][y7]GAME OVER[f3][y16][b]INSERT COIN"
  3784. MyDMD2.Text = "[f1][y7]GAME OVER[f3][y16][b]INSERT COIN"
  3785. End If
  3786. Exit Sub
  3787. End If
  3788.  
  3789. If (fpTilted = FALSE) Then
  3790.  
  3791. ' no points in Time Attack, so stop fannying about and destroy the Death Star!...
  3792. If (TimeAttack = FALSE) Then nvScore(CP) = nvScore(CP) + (Points*ScoreX)
  3793.  
  3794. Select Case (CP)
  3795. Case 1: Pilot1 = nvScore(CP)
  3796. Case 2: Pilot2 = nvScore(CP)
  3797. Case 3: Pilot3 = nvScore(CP)
  3798. Case 4: Pilot4 = nvScore(CP)
  3799. End Select
  3800.  
  3801. If (DMDBusy = TRUE) Then Exit Sub
  3802. If (FailTimer.Enabled = TRUE) Then Exit Sub
  3803.  
  3804. If (SSWin = FALSE) Then
  3805. If (PlayersPlayingGame > 1) Then
  3806. MyDMD.Text = "[f3][y7][xc]" & FormatNumber(nvScore(CP), 0, -1, 0, -1) & "[f1][x2][y17]PILOT: " & CP & "[x90][y17]BALL: " & BallsRemaining(CP)
  3807. MyDMD2.Text = "[f3][y7][xc]" & FormatNumber(nvScore(CP), 0, -1, 0, -1) & "[f1][x2][y17]PILOT: " & CP & "[x90][y17]BALL: " & BallsRemaining(CP)
  3808. Else
  3809. If (TimeAttack = TRUE) Then
  3810. If (TATime < 60) Then
  3811. MyDMD.Text = "[f1][y7]TIME ATTACK[f3][y16]TIME: " & TATime & " SECONDS"
  3812. MyDMD2.Text = "[f1][y7]TIME ATTACK[f3][y16]TIME: " & TATime & " SECONDS"
  3813. Else
  3814. ShowTime()
  3815. MyDMD.Text = "[f1][y7]TIME ATTACK[f3][y16]" & ShowMin & " MIN: " & ShowSec & " SECS"
  3816. MyDMD2.Text = "[f1][y7]TIME ATTACK[f3][y16]" & ShowMin & " MIN: " & ShowSec & " SECS"
  3817. End If
  3818. Else
  3819. MyDMD.Text = "[edge3][f4][yc][xc]" & FormatNumber(nvScore(CP), 0, -1, 0, -1)
  3820. MyDMD2.Text = "[edge3][f4][yc][xc]" & FormatNumber(nvScore(CP), 0, -1, 0, -1)
  3821. End If
  3822. End If
  3823. End If
  3824. End If
  3825. End Sub
  3826.  
  3827.  
  3828.  
  3829. Dim ShowMin,ShowSec
  3830.  
  3831.  
  3832. ' convert the time to minutes and seconds...
  3833.  
  3834. Sub ShowTime()
  3835. If (TATime < 60) Then ShowMin = 0: Exit Sub ' 1 min
  3836.  
  3837. If (TATime => 60) and (TATime < 120) Then ' 1-2 min
  3838. ShowMin = 1: ShowSec = TATime-60
  3839. Exit Sub
  3840. End If
  3841.  
  3842. If (TATime =>120) and (TATime < 180) Then ' 2-3 min
  3843. ShowMin = 2: ShowSec = TATime-120
  3844. Exit Sub
  3845. End If
  3846.  
  3847. If (TATime =>180) and (TATime < 240) Then ' 3-4 min
  3848. ShowMin = 3: ShowSec = TATime-180
  3849. Exit Sub
  3850. End If
  3851.  
  3852. If (TATime =>240) and (TATime < 300) Then ' 4-5 min
  3853. ShowMin = 4: ShowSec = TATime-240
  3854. Exit Sub
  3855. End If
  3856.  
  3857. If (TATime =>300) and (TATime < 350) Then ' over 5 min
  3858. ShowMin = 5: ShowSec = TATime-300
  3859. Exit Sub
  3860. End If
  3861. End Sub
  3862.  
  3863.  
  3864.  
  3865. Sub DMDTimer_Expired()
  3866. DMDTimer.Enabled = FALSE
  3867. DMDBusy = FALSE
  3868. MyDMD.UpdateInterval = 7: MyDMD2.UpdateInterval = 7
  3869. AddScore(0)
  3870. End Sub
  3871.  
  3872.  
  3873.  
  3874. Sub AddJackpot(points)
  3875. If (fpTilted = False) Then
  3876. If (bMultiBallMode = TRUE) Then
  3877. nvJackpot = nvJackpot + points
  3878. End if
  3879. End if
  3880. End Sub
  3881.  
  3882.  
  3883.  
  3884. Sub IncrementBonusMultiplier()
  3885. Dim NewBonusLevel
  3886. If (BonusMultiplier(CP) < 6) Then
  3887. NewBonusLevel = BonusMultiplier(CP) + 1
  3888. SetBonusMultiplier(NewBonusLevel)
  3889. Else
  3890. AddScore(50000)
  3891. DMDBusy = TRUE: DMDTimer.Set TRUE, 1600
  3892. MyDMD.QueueText "[edge3][f4][yc]BONUS MAXED", deNone, 800, FALSE, "fx_R2Sound23"
  3893. MyDMD2.QueueText "[edge3][f4][yc]BONUS MAXED", deNone, 800, FALSE
  3894. MyDMD.QueueText "[edge3][f4][yc]50,000", deNone, 800, TRUE
  3895. MyDMD2.QueueText "[edge3][f4][yc]50,000", deNone, 800, TRUE
  3896. LightBonus2x.FlashForMs 500, 120, BulbOn
  3897. LightBonus3x.FlashForMs 500, 120, BulbOn
  3898. LightBonus4x.FlashForMs 500, 120, BulbOn
  3899. LightBonus5x.FlashForMs 500, 120, BulbOn
  3900. LightBonus6x.FlashForMs 500, 120, BulbOn
  3901. End if
  3902. End Sub
  3903.  
  3904.  
  3905.  
  3906. Sub SetBonusMultiplier(Level)
  3907. BonusMultiplier(CP) = Level
  3908.  
  3909. If (BonusMultiplier(CP) = 1) Then
  3910. LightBonus2x.State = BulbOff
  3911. LightBonus3x.State = BulbOff
  3912. LightBonus4x.State = BulbOff
  3913. LightBonus5x.State = BulbOff
  3914. LightBonus6x.State = BulbOff
  3915. Else
  3916. DMDBusy = TRUE: DMDTimer.Set TRUE, 1500
  3917. If (BonusMultiplier(CP) = 2) Then
  3918. LightBonus2x.FlashForMs 1000, 100, BulbOn
  3919. PlaySound "Multiplier Award 2"
  3920. MyDMD.QueueText "[edge3][f1][y7]CHEWBACCA[f2][y17]BONUS X 2", deNone, 1500, TRUE
  3921. MyDMD2.QueueText "[edge3][f1][y7]CHEWBACCA[f2][y17]BONUS X 2", deNone, 1500, TRUE
  3922. End If
  3923. If (BonusMultiplier(CP) = 3) Then
  3924. LightBonus3x.FlashForMs 1000, 100, BulbOn
  3925. If (QuoteBusy = FALSE) and (TimeAttack = FALSE) Then
  3926. If (LightLeftLock.State = BulbBlink) Then ' quote duing final mission....
  3927. PlaySound "fx_R2Sound11"
  3928. Else
  3929. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1000
  3930. PlaySound "vo_SaveSkins"
  3931. End If
  3932. End If
  3933. MyDMD.QueueText "[edge3][f1][y7]PRINCESS LEIA[f2][y17]BONUS X 3", deNone, 1500, TRUE
  3934. MyDMD2.QueueText "[edge3][f1][y7]PRINCESS LEIA[f2][y17]BONUS X 3", deNone, 1500, TRUE
  3935. End If
  3936. If (BonusMultiplier(CP) = 4) Then
  3937. LightBonus4x.FlashForMs 1000, 100, BulbOn
  3938. If (QuoteBusy = FALSE) and (TimeAttack = FALSE) Then
  3939. If (LightLeftLock.State = BulbBlink) Then ' quote duing final mission....
  3940. PlaySound "fx_R2Sound15"
  3941. Else
  3942. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
  3943. PlaySound "Multiplier Award 4"
  3944. End If
  3945. End If
  3946. MyDMD.QueueText "[edge3][f1][y7]OBI WAN KENOBI[f2][y17]BONUS X 4", deNone, 1500, TRUE
  3947. MyDMD2.QueueText "[edge3][f1][y7]OBI WAN KENOBI[f2][y17]BONUS X 4", deNone, 1500, TRUE
  3948. End If
  3949. If (BonusMultiplier(CP) = 5) Then
  3950. LightBonus5x.FlashForMs 1000, 100, BulbOn
  3951. If (QuoteBusy = FALSE) and (TimeAttack = FALSE) Then
  3952. If (LightLeftLock.State = BulbBlink) Then ' quote duing final mission....
  3953. PlaySound "fx_R2Sound22"
  3954. Else
  3955. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
  3956. PlaySound "Multiplier Award 5"
  3957. End If
  3958. End If
  3959. MyDMD.QueueText "[edge3][f1][y7]HAN SOLO[f2][y17]BONUS X 5", deNone, 1500, TRUE
  3960. MyDMD2.QueueText "[edge3][f1][y7]HAN SOLO[f2][y17]BONUS X 5", deNone, 1500, TRUE
  3961. End If
  3962. If (BonusMultiplier(CP) = 6) Then
  3963. LightBonus6x.FlashForMs 1000, 100, BulbOn
  3964. If (QuoteBusy = FALSE) and (TimeAttack = FALSE) Then
  3965. If (LightLeftLock.State = BulbBlink) Then ' quote duing final mission....
  3966. PlaySound "fx_R2Sound11"
  3967. Else
  3968. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
  3969. PlaySound "Multiplier Award 6"
  3970. End If
  3971. End If
  3972. If (TimeAttack = TRUE) Then
  3973. DMDTimer.Set TRUE, 2000
  3974. MyDMD.QueueText "[edge3][f1][y7]LUKE SKYWALKER[f2][y17]BONUS X 6", deNone, 1000, FALSE
  3975. MyDMD2.QueueText "[edge3][f1][y7]LUKE SKYWALKER[f2][y17]BONUS X 6", deNone, 1000, FALSE
  3976. MyDMD.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
  3977. MyDMD2.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
  3978. TATime = TATime + 20
  3979. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  3980. NewMovie.UpdateInterval = 100: NewMovieHUD.UpdateInterval = 100
  3981. NewMovie.Frame 357,358,357: NewMovieHUD.Frame 357,358,357
  3982. MovieTimer.Set TRUE, 1000
  3983. Else
  3984. MyDMD.QueueText "[edge3][f1][y7]LUKE SKYWALKER[f2][y17]BONUS X 6", deNone, 1500, TRUE
  3985. MyDMD2.QueueText "[edge3][f1][y7]LUKE SKYWALKER[f2][y17]BONUS X 6", deNone, 1500, TRUE
  3986. End If
  3987. End If
  3988. End If
  3989. End Sub
  3990.  
  3991.  
  3992.  
  3993. Sub AwardSpecial()
  3994. ' in Star Wars the special is 1,138,000 points
  3995. AddScore(1138000)
  3996. End Sub
  3997.  
  3998.  
  3999.  
  4000. Sub AwardExtraBall()
  4001. ExtraBallsAwards(CP) = ExtraBallsAwards(CP) + 1
  4002. bExtraBallWonThisBall = TRUE
  4003. If (LightShootAgain.State = BulbOff) Then
  4004. LightShootAgain.State = BulbOn
  4005. End if
  4006. End Sub
  4007.  
  4008.  
  4009. ' collect the bonus if full...
  4010. Sub CollectEmpireBonus()
  4011. If (EmpireBonus =>200) Then
  4012. HologramR2D2.Frame 7: R2D2Fade.Set TRUE, 3000
  4013. AddScore(EmpireBonus*1000*BonusMultiplier(CP))
  4014. EmpireBonus = 0
  4015. LightAlien1.State = BulbOff
  4016. LightAlien2.State = BulbOff
  4017. LightAlien3.State = BulbOff
  4018. LightAlien4.State = BulbOff
  4019. LightAlien5.State = BulbOff
  4020. LightAlien6.State = BulbOff
  4021. LightAlien7.State = BulbOff
  4022. LightAlien8.State = BulbOff
  4023. LightAlien9.State = BulbOff
  4024. LightAlien10.State = BulbOff
  4025. LightAlien20.State = BulbOff
  4026. End If
  4027. End Sub
  4028.  
  4029.  
  4030.  
  4031. ' advanced for:
  4032. ' out lanes, vader lane, vader targets, top rollover lanes, random bumper hit
  4033.  
  4034. Sub IncrementEmpireBonus(Amount)
  4035.  
  4036. If (TimeAttack = TRUE) Then Exit Sub
  4037.  
  4038. Dim Value
  4039.  
  4040. EmpireBonus = EmpireBonus + Amount
  4041.  
  4042. If (EmpireBonus => 200) Then
  4043. EmpireBonus = 200
  4044. End If
  4045.  
  4046. If (Amount => 0) Then
  4047. 'PlaySound "Bonus Advance"
  4048. End If
  4049.  
  4050. ' set the lights to match the value specified (0 - 39)
  4051.  
  4052. LightAlien1.State = BulbOff
  4053. LightAlien2.State = BulbOff
  4054. LightAlien3.State = BulbOff
  4055. LightAlien4.State = BulbOff
  4056. LightAlien5.State = BulbOff
  4057. LightAlien6.State = BulbOff
  4058. LightAlien7.State = BulbOff
  4059. LightAlien8.State = BulbOff
  4060. LightAlien9.State = BulbOff
  4061. LightAlien10.State = BulbOff
  4062. LightAlien20.State = BulbOff
  4063.  
  4064. Value = EmpireBonus
  4065.  
  4066. If (Value => 200) Then
  4067. Value = Value - 200
  4068. LightAlien1.Set BulbBlink, "100000100000", 75
  4069. LightAlien2.Set BulbBlink, "010000010000", 75
  4070. LightAlien3.Set BulbBlink, "001000001000", 75
  4071. LightAlien4.Set BulbBlink, "000100000100", 75
  4072. LightAlien5.Set BulbBlink, "000010000010", 75
  4073. LightAlien6.Set BulbBlink, "000001000001", 75
  4074. LightAlien7.Set BulbBlink, "000000100000", 75
  4075. LightAlien8.Set BulbBlink, "100000010000", 75
  4076. LightAlien9.Set BulbBlink, "010000001000", 75
  4077. LightAlien10.Set BulbBlink, "001000000100", 75
  4078. LightAlien20.Set BulbBlink, "000100000010", 75
  4079. End If
  4080.  
  4081. If (Value >= 100) Then
  4082. LightAlien10.State = BulbOn
  4083. Value = Value - 100
  4084. End If
  4085.  
  4086. if (Value >= 90) Then LightAlien9.State = BulbOn End If
  4087. if (Value >= 80) Then LightAlien8.State = BulbOn End If
  4088. if (Value >= 70) Then LightAlien7.State = BulbOn End If
  4089. if (Value >= 60) Then LightAlien6.State = BulbOn End If
  4090. if (Value >= 50) Then LightAlien5.State = BulbOn End If
  4091. if (Value >= 40) Then LightAlien4.State = BulbOn End If
  4092. if (Value >= 30) Then LightAlien3.State = BulbOn End If
  4093. if (Value >= 20) Then LightAlien2.State = BulbOn End If
  4094. if (Value >= 10) Then LightAlien1.State = BulbOn End If
  4095. End Sub
  4096.  
  4097.  
  4098.  
  4099. ' collect the bonus if full...
  4100. Sub CollectRebellionBonus()
  4101. If (RebellionBonus =>200) Then
  4102. HologramR2D2.Frame 8: R2D2Fade.Set TRUE, 3000
  4103. AddScore(RebellionBonus*1000*BonusMultiplier(CP))
  4104. RebellionBonus = 0
  4105. LightDefend1.State = BulbOff
  4106. LightDefend2.State = BulbOff
  4107. LightDefend3.State = BulbOff
  4108. LightDefend4.State = BulbOff
  4109. LightDefend5.State = BulbOff
  4110. LightDefend6.State = BulbOff
  4111. LightDefend7.State = BulbOff
  4112. LightDefend8.State = BulbOff
  4113. LightDefend9.State = BulbOff
  4114. LightDefend10.State = BulbOff
  4115. LightDefend20.State = BulbOff
  4116. End If
  4117. End Sub
  4118.  
  4119.  
  4120. ' advanced for:
  4121. ' in lanes, HanSolo lane, TIE fighter drop targets, trench run lane, random bumper hit
  4122.  
  4123. Sub IncrementRebellionBonus(Amount)
  4124.  
  4125. If (TimeAttack = TRUE) Then Exit Sub
  4126.  
  4127. Dim Value
  4128.  
  4129. RebellionBonus = RebellionBonus + Amount
  4130.  
  4131. If (RebellionBonus > 200) Then
  4132. RebellionBonus = 200
  4133. End If
  4134.  
  4135. If (Amount >= 0) Then
  4136. 'PlaySound "Bonus Advance"
  4137. End If
  4138.  
  4139. LightDefend1.State = BulbOff
  4140. LightDefend2.State = BulbOff
  4141. LightDefend3.State = BulbOff
  4142. LightDefend4.State = BulbOff
  4143. LightDefend5.State = BulbOff
  4144. LightDefend6.State = BulbOff
  4145. LightDefend7.State = BulbOff
  4146. LightDefend8.State = BulbOff
  4147. LightDefend9.State = BulbOff
  4148. LightDefend10.State = BulbOff
  4149. LightDefend20.State = BulbOff
  4150.  
  4151. Value = RebellionBonus
  4152.  
  4153. If (Value >= 200) Then
  4154. Value = Value - 200
  4155. LightDefend1.Set BulbBlink, "100000100000", 75
  4156. LightDefend2.Set BulbBlink, "010000010000", 75
  4157. LightDefend3.Set BulbBlink, "001000001000", 75
  4158. LightDefend4.Set BulbBlink, "000100000100", 75
  4159. LightDefend5.Set BulbBlink, "000010000010", 75
  4160. LightDefend6.Set BulbBlink, "000001000001", 75
  4161. LightDefend7.Set BulbBlink, "100000100000", 75
  4162. LightDefend8.Set BulbBlink, "010000010000", 75
  4163. LightDefend9.Set BulbBlink, "001000001000", 75
  4164. LightDefend10.Set BulbBlink, "000100000100", 75
  4165. LightDefend20.Set BulbBlink, "000010000010", 75
  4166. End If
  4167.  
  4168. If (Value >= 100) Then
  4169. LightDefend10.State = BulbOn
  4170. Value = Value - 100
  4171. End If
  4172.  
  4173. if (Value >= 90) Then LightDefend9.State = BulbOn End If
  4174. if (Value >= 80) Then LightDefend8.State = BulbOn End If
  4175. if (Value >= 70) Then LightDefend7.State = BulbOn End If
  4176. if (Value >= 60) Then LightDefend6.State = BulbOn End If
  4177. if (Value >= 50) Then LightDefend5.State = BulbOn End If
  4178. if (Value >= 40) Then LightDefend4.State = BulbOn End If
  4179. if (Value >= 30) Then LightDefend3.State = BulbOn End If
  4180. if (Value >= 20) Then LightDefend2.State = BulbOn End If
  4181. if (Value >= 10) Then LightDefend1.State = BulbOn End If
  4182. End Sub
  4183.  
  4184.  
  4185.  
  4186.  
  4187. ' *********************************
  4188. ' ** **
  4189. ' ** SlingShots **
  4190. ' ** **
  4191. ' *********************************
  4192.  
  4193.  
  4194.  
  4195. Sub LeftSlingshotRubber_Hit()
  4196. If (fpTilted = FALSE) Then
  4197. If (bPadawanMode(CP) = True) Then
  4198. AddScore(500)
  4199. Else
  4200. AddScore(250)
  4201. End If
  4202.  
  4203. If R2D2.Dropped Then
  4204. R2D2.SolenoidPulse
  4205. DOFLinx_R2D2_GearMotor_Short() 'DOFLinx_R2D2_GearMotor Short
  4206. Else
  4207. R2D2.PopDown
  4208. DOFLinx_R2D2_GearMotor_Long() 'DOFLinx_R2D2_GearMotor Long
  4209. End If
  4210.  
  4211. LSFlash.FlashForMs 250, 50, BulbOff
  4212. FlasherRL1.FlashForMs 250, 50, BulbOn
  4213. LeftSlingShotBulb1.FlashForMs 250, 50, BulbOn
  4214. LeftSlingShotBulb2.FlashForMs 250, 50, BulbOn
  4215. Bulb5.FlashForMs 250, 50, BulbOn
  4216. Bulb6.FlashForMs 250, 50, BulbOn
  4217. DOFLinx_Left_Slingshot_Hit() 'DOFLinx - Left Slingshot Hit
  4218. ' PlaySound "fx_SlingHitL"
  4219. PlaySound "fx_SmallBlaster"
  4220.  
  4221. If (VictoryLap = TRUE) Then Exit Sub
  4222.  
  4223. MovieOverlay.UpdateInterval = 80: MovieOverlay.frame 200, 201
  4224. HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 200, 201
  4225. MovieTimer.Set TRUE, 1000
  4226. End If
  4227. End Sub
  4228.  
  4229.  
  4230.  
  4231. Sub RightSlingshotRubber_Hit()
  4232. If (fpTilted = FALSE) Then
  4233. If (bPadawanMode(CP) = True) Then
  4234. AddScore(500)
  4235. Else
  4236. AddScore(250)
  4237. End If
  4238.  
  4239. If R2D2.Dropped Then
  4240. R2D2.SolenoidPulse
  4241. DOFLinx_R2D2_GearMotor_Short() 'DOFLinx_R2D2_GearMotor Short
  4242. Else
  4243. R2D2.PopDown
  4244. DOFLinx_R2D2_GearMotor_Long() 'DOFLinx_R2D2_GearMotor Long
  4245. End If
  4246.  
  4247. RSFlash.FlashForMs 250, 50, BulbOff
  4248. FlasherRL2.FlashForMs 250, 50, BulbOn
  4249. RightSlingShotBulb1.FlashForMs 250, 50, BulbOn
  4250. RightSlingShotBulb2.FlashForMs 250, 50, BulbOn
  4251. Bulb3.FlashForMs 250, 50, BulbOn
  4252. Bulb4.FlashForMs 250, 50, BulbOn
  4253. DOFLinx_Right_Slingshot_Hit() 'DOFLinx - Right Slingshot Hit
  4254. ' PlaySound "fx_SlingHitR"
  4255. PlaySound "fx_SmallBlaster"
  4256.  
  4257. If (VictoryLap = TRUE) Then Exit Sub
  4258.  
  4259. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 198, 199
  4260. HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 198, 199
  4261. MovieTimer.Set TRUE, 1000
  4262. End If
  4263. End Sub
  4264.  
  4265.  
  4266.  
  4267. Sub ClearLCD()
  4268. MovieOverlay.Frame 990: HUDOverlay.Frame 990
  4269. NewMovie.Frame 1: NewMovieHUD.Frame 1
  4270. End Sub
  4271.  
  4272.  
  4273.  
  4274.  
  4275. ' *********************************
  4276. ' ** **
  4277. ' ** Rubber Leaf Switches **
  4278. ' ** **
  4279. ' *********************************
  4280.  
  4281.  
  4282. Sub RubberLeft_Hit()
  4283.  
  4284. DOFLinx_2ndLeft_Slingshot_Hit() 'DOFLinx - 2ndLeft Slingshot Hit
  4285.  
  4286. If (VictoryLap = TRUE) Then Exit Sub
  4287.  
  4288. If (fpTilted = FALSE) Then
  4289. If (MovieTimer.Enabled = FALSE) Then
  4290. Select Case RandomNumber(4)
  4291. Case 1:
  4292. MovieOverlay.UpdateInterval = 66: HUDOverLay.UpdateInterval = 66
  4293. MovieOverlay.Frame 429, 443: HUDOverlay.Frame 429, 443
  4294. PlaySound "fx_XWingFlyBy"
  4295. Case 2:
  4296. NewMovie.Frame 1: NewMovieHUD.Frame 1
  4297. MovieOverlay.UpdateInterval = 66: HUDOverLay.UpdateInterval = 66
  4298. MovieOverlay.Frame 963, 982: HUDOverlay.Frame 963, 982
  4299. PlaySound "fx_XWingFlyBy"
  4300. Case 3:
  4301. MovieTimer.Set TRUE, 1300
  4302. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
  4303. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
  4304. PlaySound "fx_TIEFlyby3"
  4305. Case 4:
  4306. MovieTimer.Set TRUE, 1000
  4307. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 467, 482
  4308. HUDOverLay.UpdateInterval = 66: HUDOverLay.Frame 467, 482
  4309. PlaySound "fx_TIEFlyby3"
  4310. End Select
  4311. End If
  4312. End If
  4313. set LastSwitchHit = RubberLeft
  4314. End Sub
  4315.  
  4316.  
  4317.  
  4318. Sub RubberFourBank_Hit()
  4319. PlaySound "RubberHitLeft"
  4320.  
  4321. If (VictoryLap = TRUE) Then Exit Sub
  4322.  
  4323. If (fpTilted = FALSE) Then
  4324. PlaySound "fx_TIEFlyby3"
  4325. BulbGI07.FlashForMs 300, 100, BulbOn
  4326. BulbGI08.FlashForMs 300, 100, BulbOn
  4327. Bulb39.FlashForMs 300, 100, BulbOn
  4328. Bulb40.FlashForMs 300, 100, BulbOn
  4329. End If
  4330. set LastSwitchHit = RubberFourBank
  4331. End Sub
  4332.  
  4333.  
  4334.  
  4335. Sub RubberThreeBank_Hit()
  4336. PlaySound "RubberHitCentre"
  4337.  
  4338. If (VictoryLap = TRUE) Then Exit Sub
  4339.  
  4340. If (fpTilted = FALSE) Then
  4341. If (MovieTimer.Enabled = FALSE) Then
  4342. PlaySound "fx_XWingFlyBy"
  4343.  
  4344. BulbGI10.FlashForMs 300, 100, BulbOn
  4345. Bulb7.FlashForMs 300, 100, BulbOn
  4346.  
  4347. Select Case RandomNumber(2)
  4348. Case 1:
  4349. MovieOverlay.UpdateInterval = 66: HUDOverLay.UpdateInterval = 66
  4350. MovieOverlay.Frame 429, 443: HUDOverlay.Frame 429, 443
  4351. Case 2:
  4352. NewMovie.Frame 1: NewMovieHUD.Frame 1
  4353. MovieOverlay.UpdateInterval = 66: HUDOverLay.UpdateInterval = 66
  4354. MovieOverlay.Frame 963, 982: HUDOverlay.Frame 963, 982
  4355. End Select
  4356. End If
  4357. End If
  4358. set LastSwitchHit = RubberThreeBank
  4359. End Sub
  4360.  
  4361.  
  4362.  
  4363. Sub RubberRight_Hit()
  4364. PlaySound "RubberHitRight"
  4365.  
  4366. If (VictoryLap = TRUE) Then Exit Sub
  4367.  
  4368. If (fpTilted = FALSE) Then
  4369. If (MovieTimer.Enabled = FALSE) Then
  4370. PlaySound "fx_XWingFlyBy"
  4371. MovieOverlay.UpdateInterval = 66: HUDOverLay.UpdateInterval = 66
  4372. MovieOverlay.Frame 429, 443: HUDOverlay.Frame 429, 443
  4373. End If
  4374. End If
  4375. set LastSwitchHit = RubberRight
  4376. End Sub
  4377.  
  4378.  
  4379.  
  4380.  
  4381. Sub Guide3_hit()
  4382. PlaySound "HitWallRight"
  4383. End Sub
  4384.  
  4385.  
  4386. Sub Guide12_hit()
  4387. PlaySound "HitWallRight"
  4388. End Sub
  4389.  
  4390.  
  4391. Sub Guide11_hit()
  4392. PlaySound "HitWallLeft"
  4393. End Sub
  4394.  
  4395.  
  4396. Sub Guide9_hit()
  4397. PlaySound "HitWallLeft"
  4398. End Sub
  4399.  
  4400.  
  4401.  
  4402.  
  4403. ' *********************************
  4404. ' ** **
  4405. ' ** Inlane / Outlanes **
  4406. ' ** **
  4407. ' *********************************
  4408.  
  4409.  
  4410. 'RebellionBonus - InOut Lanes
  4411.  
  4412.  
  4413. Sub TriggerLeftInLane_Hit()
  4414.  
  4415. If (VictoryLap = TRUE) Then Exit Sub
  4416.  
  4417. If (fpTilted = FALSE) Then
  4418. DOFLinx_TriggerLeftInLane_Hit() 'DOFLinx - Trigger Left In Lane Hit
  4419. If (LightLeftInlane.State <> BulbOff) Then
  4420. AddScore(5000)
  4421. LightLeftInlane.FlashForMs 150, 75, BulbOn
  4422. IncrementRebellionBonus(20)
  4423. If (MovieTimer.Enabled = FALSE) Then
  4424. If (bMultiballMode = FALSE) Then C3PO()
  4425. Else
  4426. BulbGI01.FlashForMs 300, 50, BulbOn
  4427. BulbGI02.FlashForMs 300, 50, BulbOn
  4428. Bulb16.FlashForMs 300, 50, BulbOn
  4429. Bulb36.FlashForMs 300, 50, BulbOn
  4430. PlaySound "fx_XWingBlasters"
  4431. End If
  4432. Else
  4433. If (LastSwitchHit.Name = "TriggerLeftInLane") Then
  4434. AddScore(2500)
  4435. IncrementRebellionBonus(10)
  4436. Else
  4437. AddScore(2500)
  4438. If (MovieTimer.Enabled = FALSE) Then
  4439. If (bMultiballMode = FALSE) Then C3PO()
  4440. Else
  4441. PlaySound "fx_Beeps5": BulbBeeps.FlashForMs 1300, 75, BulbOff
  4442. End If
  4443. IncrementRebellionBonus(10)
  4444. End If
  4445. End If
  4446. End If
  4447. set LastSwitchHit = TriggerLeftInLane
  4448. End Sub
  4449.  
  4450.  
  4451.  
  4452.  
  4453. Sub TriggerRightInLane_Hit()
  4454.  
  4455. If (VictoryLap = TRUE) Then Exit Sub
  4456.  
  4457. If (fpTilted = FALSE) Then
  4458. DOFLinx_TriggerRightInLane_Hit() 'DOFLinx - Trigger Right In Lane Hit
  4459. If (LightRightInlane.State <> BulbOff) Then
  4460. AddScore(5000): IncrementRebellionBonus(20)
  4461. LightRightInlane.FlashForMs 150, 75, BulbOn
  4462. If (MovieTimer.Enabled = FALSE) Then
  4463. If (bMultiballMode = FALSE) Then Quote()
  4464. Else
  4465. BulbGI03.FlashForMs 300, 50, BulbOn
  4466. BulbGI04.FlashForMs 300, 50, BulbOn
  4467. Bulb37.FlashForMs 300, 50, BulbOn
  4468. Bulb38.FlashForMs 300, 50, BulbOn
  4469. PlaySound "fx_XWingBlasters"
  4470. End If
  4471. Else
  4472. If (LastSwitchHit.Name = "TriggerRightInLane") Then
  4473. AddScore(2500)
  4474. IncrementRebellionBonus(10)
  4475. Else
  4476. AddScore(2500)
  4477. If (bMultiballMode = FALSE) Then
  4478. If (MovieTimer.Enabled = FALSE) and (QuoteBusy = FALSE) Then Quote()
  4479. Else
  4480. If (MovieTimer.Enabled = FALSE) Then
  4481. PlaySound "fx_TIEFlyBy"
  4482. MovieTimer.Set TRUE, 1400
  4483. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
  4484. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
  4485. End If
  4486. End If
  4487. IncrementRebellionBonus(10)
  4488. End If
  4489. End If
  4490. End If
  4491. Set LastSwitchHit = TriggerRightInLane
  4492. End Sub
  4493.  
  4494.  
  4495.  
  4496. Sub Quote()
  4497. NewMovie.Frame 1: NewMovieHUD.Frame 1
  4498. Q2(CP) = Q2(CP) + 1
  4499. Select Case Q2(CP)
  4500. Case 1:
  4501. PlaySound "vo_WatchForFighters": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
  4502. Case 2:
  4503. PlaySound "vo_RearDeflectors": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
  4504. Case 3:
  4505. PlaySound "vo_VisualScanning": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
  4506. Case 4:
  4507. Select Case RandomNumber(4)
  4508. Case 1: PlaySound "vo_StayLow": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1000
  4509. Case 2: PlaySound "vo_Jamming": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3200
  4510. Case 3: PlaySound "vo_Mark61": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1900
  4511. Case 4: PlaySound "vo_StartRun": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2400
  4512. End Select
  4513. Case 5:
  4514. Select Case RandomNumber(2)
  4515. Case 1: PlaySound "vo_EnemyFighters"
  4516. Case 2: PlaySound "vo_FightersComing"
  4517. End Select
  4518. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  4519. PlaySound "fx_TIEFlyBy"
  4520. MovieTimer.Set TRUE, 1400
  4521. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
  4522. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
  4523. Case 6:
  4524. PlaySound "vo_HereTheyCome"
  4525. PlaySound "fx_TIEFlyBy"
  4526. MovieTimer.Set TRUE, 1400
  4527. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
  4528. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
  4529. Case 7:
  4530. Select Case RandomNumber(3)
  4531. Case 1: PlaySound "vo_ComingIn"
  4532. Case 2: PlaySound "vo_KeepEyesOpen"
  4533. Case 3: PlaySound "vo_HangOnTight"
  4534. End Select
  4535. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
  4536. PlaySound "fx_TIEFlyBy"
  4537. MovieTimer.Set TRUE, 1400
  4538. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
  4539. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
  4540. Case 8:
  4541. PlaySound "vo_SeeThem"
  4542. PlaySound "fx_TIEFlyBy"
  4543. MovieTimer.Set TRUE, 1400
  4544. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
  4545. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
  4546. Case 9:
  4547. PlaySound "fx_TIEAttacks8"
  4548. TieFighter_Move
  4549. MovieTimer.Enabled = FALSE
  4550. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 703, 720
  4551. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 703, 720
  4552. Case 10:
  4553. TieFighter_Move
  4554. PlaySound "fx_TIEAttacks", 0.8
  4555. Select Case RandomNumber(5)
  4556. Case 1: PlaySound "vo_BehindUs"
  4557. Case 2: PlaySound "vo_WatchIt"
  4558. Case 3: PlaySound "vo_OffYourBack"
  4559. Case 4: PlaySound "vo_OnTail": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
  4560. Case 5: PlaySound "vo_CantShakeHim": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  4561. End Select
  4562. MovieTimer.Enabled = FALSE
  4563. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 939, 962
  4564. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 939, 962
  4565. Case 11:
  4566. PlaySound "vo_WhereAreYou": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
  4567. Case 12:
  4568. Select Case RandomNumber(5)
  4569. Case 1: PlaySound "vo_WatchIt"
  4570. Case 2: PlaySound "vo_WatchYourself2"
  4571. Case 3: PlaySound "vo_StayTight": QuoteTimer.Set TRUE, 2000
  4572. Case 4: PlaySound "vo_CloseItUp": QuoteTimer.Set TRUE, 1400
  4573. Case 5: PlaySound "vo_ScreenMe": QuoteTimer.Set TRUE, 2400
  4574. End Select
  4575. Case 13:
  4576. PlaySound "vo_MuchFaster"
  4577. PlaySound "fx_TIEFlyBy"
  4578. MovieTimer.Set TRUE, 1400
  4579. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
  4580. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
  4581. Case 14:
  4582. TieFighter_Move
  4583. PlaySound "fx_TIEAttacks", 0.8
  4584. Select Case RandomNumber(3)
  4585. Case 1: PlaySound "vo_CantShake": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  4586. Case 2: PlaySound "vo_OnYourTail"
  4587. Case 3: PlaySound "vo_LosingControl": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2100
  4588. End Select
  4589. MovieTimer.Enabled = FALSE
  4590. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 681, 702
  4591. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 681, 702
  4592. Case 15:
  4593. PlaySound "vo_RightBehindUs": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
  4594. Case 16:
  4595. PlaySound "vo_LukeWhereAreYou": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000
  4596. Case 17:
  4597. Select Case RandomNumber(2)
  4598. Case 1: PlaySound "vo_HangOnBiggs": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
  4599. Case 2: PlaySound "vo_HangOnBiggs2": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  4600. End Select
  4601. MovieOverlay.UpdateInterval = 67:MovieOverlay.Frame 35, 48
  4602. HUDOverlay.UpdateInterval = 67: HUDOverlay.Frame 35, 48
  4603. MovieTimer.Set TRUE, 1200: Q2(CP) = 0
  4604. End Select
  4605. End Sub
  4606.  
  4607.  
  4608.  
  4609.  
  4610. Sub C3PO()
  4611. If (QuoteBusy = TRUE) Then Exit Sub
  4612. Q3PO(CP) = Q3PO(CP) + 1
  4613. Select Case Q3PO(CP)
  4614. Case 1:
  4615. MusicFade(3000): PlaySound "vo_FullThrottle2": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000
  4616. Case 2:
  4617. PlaySound "fx_TIEAttacks8"
  4618. TieFighter_Move
  4619. MovieTimer.Enabled = FALSE
  4620. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 703, 720
  4621. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 703, 720
  4622. Case 3:
  4623. If (QuoteBusy = FALSE) Then
  4624. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
  4625. Select Case RandomNumber(2)
  4626. Case 1: PlaySound "vo_ThankMaker"
  4627. Case 2: PlaySound "vo_HateSpaceTravel"
  4628. End Select
  4629. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 220, 230
  4630. HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 220, 230
  4631. MovieTimer.Set TRUE, 1200
  4632. End If
  4633. Case 4:
  4634. TieFighter_Move
  4635. PlaySound "fx_TIEAttacks", 0.8
  4636. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  4637. Select Case RandomNumber(3)
  4638. Case 1: PlaySound "vo_BehindUs"
  4639. Case 2: PlaySound "vo_ComingIn"
  4640. Case 3: PlaySound "vo_OnYourTail"
  4641. End Select
  4642. MovieTimer.Enabled = FALSE
  4643. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 939, 962
  4644. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 939, 962
  4645. Case 5:
  4646. TieFighter_Move
  4647. PlaySound "fx_TIEAttacks", 0.8
  4648. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  4649. Select Case RandomNumber(4)
  4650. Case 4: PlaySound "vo_BehindMe"
  4651. Case 5: PlaySound "vo_ShakeHim"
  4652. Case 6: PlaySound "vo_AllOverUs"
  4653. End Select
  4654. MovieTimer.Enabled = FALSE
  4655. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 939, 962
  4656. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 939, 962
  4657. Case 6:
  4658. TieFighter_Move
  4659. PlaySound "fx_TIEAttacks8"
  4660. MovieTimer.Enabled = FALSE
  4661. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 703, 720
  4662. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 703, 720
  4663. Case 7:
  4664. PlaySound "vo_Madness"
  4665. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 220, 230
  4666. HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 220, 230
  4667. MovieTimer.Set TRUE, 1200
  4668. Case 8:
  4669. TieFighter_Move
  4670. PlaySound "fx_TIEAttacks"
  4671. MovieTimer.Enabled = FALSE
  4672. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 939, 962
  4673. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 939, 962
  4674. End Select
  4675. End Sub
  4676.  
  4677.  
  4678.  
  4679.  
  4680. Sub R2()
  4681. R2HeadBulb.FlashForMs 1000, 100, BulbOff
  4682. Select Case RandomNumber(16)
  4683. Case 1: PlaySound "fx_R2Sound1", 0.8
  4684. Case 2: PlaySound "fx_R2Sound2", 0.8
  4685. Case 3: PlaySound "fx_R2Sound13", 0.8
  4686. Case 4: PlaySound "fx_R2Sound14", 0.8
  4687. Case 5: PlaySound "fx_R2Sound10", 0.8
  4688. Case 6: PlaySound "fx_R2Sound8", 0.8
  4689. Case 7: PlaySound "fx_R2Sound11", 0.8
  4690. Case 8: PlaySound "fx_R2Sound12", 0.8
  4691. Case 9: PlaySound "fx_R2Sound18", 0.8
  4692. Case 10: PlaySound "fx_R2Sound19", 0.8
  4693. Case 11: PlaySound "fx_R2Sound20", 0.8
  4694. Case 12: PlaySound "fx_R2Sound21", 0.8
  4695. Case 13: PlaySound "fx_R2Sound22", 0.8
  4696. Case 14: PlaySound "fx_R2Sound24", 0.8
  4697. Case 15: PlaySound "fx_R2Sound25", 0.8
  4698. Case 16: PlaySound "fx_R2Sound26", 0.8
  4699. End Select
  4700. End Sub
  4701.  
  4702.  
  4703.  
  4704. Sub TriggerLeftOutLane_Hit()
  4705.  
  4706. If (VictoryLap = TRUE) Then Exit Sub
  4707.  
  4708. If (fpTilted = FALSE) Then
  4709. If (LightSpecialL.State = BulbOn) Then
  4710. AddScore(10000)
  4711. LightSpecialL.State = BulbOff
  4712. LightSpecialR.State = BulbOff
  4713. PlaySound "fx_R2Bonus"
  4714. AwardSpecial()
  4715. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  4716. MyDMD.QueueText "[edge3][f4][xc][yc]SPECIAL", deNone, 600, FALSE
  4717. MyDMD2.QueueText "[edge3][f4][xc][yc]SPECIAL", deNone, 600, FALSE
  4718. MyDMD.QueueText "[edge3][f4][xc][yc][bf]1,138,000", deFlip, 1500, TRUE
  4719. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]1,138,000", deFlip, 1500, TRUE
  4720. End If
  4721. If (LightKickBack.State = BulbOff) Then
  4722. If (bMultiballMode = FALSE) and (QuoteBusy = FALSE) Then
  4723. DOFLinx_Left_Drained() 'DOFLinx - Left Drained
  4724. If (bBallSaverActive = FALSE) Then
  4725. MovieTimer.Enabled = FALSE
  4726. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 721, 746
  4727. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 721, 746
  4728. If (TimeAttack = FALSE) Then
  4729. PlaySound "vo_PullUp"
  4730. LeftOutBulb1.Set BulbBlink, "100000000000000", 100
  4731. LeftOutBulb2.Set BulbBlink, "010000000000000", 100
  4732. LeftOutBulb3.Set BulbBlink, "001000000000000", 100
  4733. LeftOutBulb4.Set BulbBlink, "000100000000000", 100
  4734. LeftOutBulb5.Set BulbBlink, "000010000000000", 100
  4735. Else
  4736. PlaySound "vo_Biggs2"
  4737. End If
  4738. Else
  4739. PlaySound "vo_PullIn"
  4740. End If
  4741. End If
  4742. Else
  4743. SabreTimer.Set TRUE, 1400
  4744. DOFLinx_Blue_Lightsaber_Kickback() 'DOFLinx_Blue_Lightsaber_Kickback
  4745. WallKickBack.Collidable = TRUE
  4746. AutoPlungerKickback.SolenoidPulse
  4747. DOFLinx_AutoPlungerKickback() 'DOFLinx - Kickback
  4748. SabreLight1.FlashForMs 800, 120, BulbOn
  4749. SabreLight2.FlashForMs 800, 120, BulbOn
  4750. AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 1500
  4751. LSLOn(): PlaySound "LSOnShort"
  4752. If (bMultiballMode = FALSE) and (QuoteBusy = FALSE) Then
  4753. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000
  4754. Select Case RandomNumber(8)
  4755. Case 1: PlaySound "vo_Alright"
  4756. Case 2: PlaySound "vo_LostEngine"
  4757. Case 3: PlaySound "vo_HitNotBad"
  4758. Case 4: PlaySound "vo_Loose"
  4759. Case 5: PlaySound "vo_Cooked"
  4760. Case 6: PlaySound "vo_WatchYourselfShort"
  4761. Case 7: PlaySound "vo_ImHit"
  4762. Case 8: PlaySound "vo_GotR2"
  4763. End Select
  4764. 'XMove = 5: XWingMove_Expired()
  4765. XWing_Kickback
  4766. End If
  4767. Select Case RandomNumber(3)
  4768. Case 1: PlaySound "Bumper Shootout 1"
  4769. Case 2: PlaySound "Bumper Shootout 2"
  4770. Case 3: PlaySound "Bumper Shootout 3"
  4771. End Select
  4772.  
  4773. If (LeiaPerk = TRUE) Then
  4774. LeiaPerk = FALSE
  4775. MyDMD.QueueText "[edge3][f4][xc][yc][bf]KICKBACK", deNone, 600, FALSE
  4776. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]KICKBACK", deNone, 600, FALSE
  4777. MyDMD.QueueText "[edge3][f4][xc][yc]1 REMAIN", deFlip, 1000, TRUE
  4778. MyDMD2.QueueText "[edge3][f4][xc][yc]1 REMAIN", deFlip, 1000, TRUE
  4779. Else
  4780. LightKickBackExt.SetLitColor 255, 0, 0
  4781. LightKickBack.Set BulbBlink, "10", 100
  4782. MyDMD.Text = "[edge3][f4][xc][yc][bf]KICKBACK"
  4783. MyDMD2.Text = "[edge3][f4][xc][yc][bf]KICKBACK"
  4784. KickBackTimer.Set TRUE, 2000
  4785. End If
  4786. MovieTimer.Set TRUE, 1000
  4787. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 485, 501
  4788. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 485, 501
  4789. 'MovieOverlay.UpdateInterval = 80: MovieOverlay.frame 198, 199
  4790. 'HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 198, 199
  4791. 'MovieTimer.Set TRUE, 1000
  4792. End If
  4793. IncrementEmpireBonus(20)
  4794. End If
  4795. End Sub
  4796.  
  4797.  
  4798.  
  4799. Sub SabreTimer_Expired()
  4800. SabreTimer.Enabled = FALSE
  4801. If (fpGameInPlay = FALSE) or (PlayFX = TRUE) Then PlayMusic 2, "fx_LSOff", FALSE, 0.7
  4802. LSLOff()
  4803. LSROff()
  4804. PlayFX = FALSE
  4805. End Sub
  4806.  
  4807.  
  4808. Dim PlayFX
  4809.  
  4810.  
  4811. ' *********************************
  4812. ' ** **
  4813. ' ** Kickback **
  4814. ' ** **
  4815. ' *********************************
  4816.  
  4817. ' Awarded at the start of each ball and for a new Jedi rank.
  4818.  
  4819. ' Perk: Princess Leia will allow for 2 uses instead of 1 (1 time use)
  4820.  
  4821.  
  4822. Sub EnableKickback()
  4823. KickbackTimer.Enabled = False
  4824. LightKickBack.State = BulbOn
  4825. End Sub
  4826.  
  4827.  
  4828. Sub KickbackTimer_Expired()
  4829. KickbackTimer.Enabled = FALSE
  4830. 'LightKickBackExt.SetLitColor 129, 223, 254
  4831. if BladeColor = 1 then LightKickBackExt.SetLitColor 32, 114, 249
  4832. if BladeColor = 2 then LightKickBackExt.SetLitColor 0, 255, 0
  4833. if BladeColor = 3 then LightKickBackExt.SetLitColor 128, 0, 255
  4834. if BladeColor = 4 then LightKickBackExt.SetLitColor 255, 255, 0
  4835. if BladeColor = 5 then LightKickBackExt.SetLitColor 255, 128, 0
  4836. LightKickBack.State = BulbOff
  4837. WallKickBack.Collidable = FALSE
  4838. End Sub
  4839.  
  4840.  
  4841.  
  4842.  
  4843. Sub TriggerRightOutLane_Hit()
  4844.  
  4845. If (VictoryLap = TRUE) Then Exit Sub
  4846.  
  4847. If (fpTilted = False) Then
  4848. If (LightSpecialR.State = BulbOn) Then
  4849. AddScore(10000)
  4850. LightSpecialL.State = BulbOff
  4851. LightSpecialR.State = BulbOff
  4852. PlaySound "fx_Droid2"
  4853. PlaySound "fx_R2Bonus"
  4854. AwardSpecial()
  4855. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  4856. MyDMD.QueueText "[edge3][f4][xc][yc]SPECIAL", deNone, 600, FALSE
  4857. MyDMD2.QueueText "[edge3][f4][xc][yc]SPECIAL", deNone, 600, FALSE
  4858. MyDMD.QueueText "[edge3][f4][xc][yc][bf]1,138,000", deFlip, 1500, TRUE
  4859. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]1,138,000", deFlip, 1500, TRUE
  4860. Else
  4861. If (bMultiballMode = FALSE) Then
  4862. If (bBallSaverActive = FALSE) Then
  4863. DOFLinx_Right_Drained() 'DOFLinx - Right Drained
  4864. MovieTimer.Enabled = FALSE
  4865. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 721, 746
  4866. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 721, 746
  4867. PlaySound "vo_PullOut"
  4868. If (TimeAttack = FALSE) Then
  4869. RightOutBulb1.Set BulbBlink, "100000000000000", 100
  4870. RightOutBulb2.Set BulbBlink, "010000000000000", 100
  4871. RightOutBulb3.Set BulbBlink, "001000000000000", 100
  4872. RightOutBulb4.Set BulbBlink, "000100000000000", 100
  4873. RightOutBulb5.Set BulbBlink, "000010000000000", 100
  4874. End If
  4875. Else
  4876. PlaySound "vo_PullIn"
  4877. End If
  4878. End If
  4879. End If
  4880. IncrementEmpireBonus(20)
  4881. End If
  4882. End Sub
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888. ' *********************************
  4889. ' ** **
  4890. ' ** BUMPERS **
  4891. ' ** **
  4892. ' *********************************
  4893.  
  4894.  
  4895. ' Bumpers fire the Death Star's Turbo Lasers...
  4896.  
  4897.  
  4898. Sub Bumper1_Hit()
  4899. If (fpTilted = FALSE) Then
  4900.  
  4901. 'PlaySound "fx_Bumper"
  4902. DOFLinx_Bumper1_Hit() 'DOFLinx - Bumper 1 Hit
  4903. PBL1.SolenoidPulse
  4904. PBL2.SolenoidPulse
  4905. PBL3.SolenoidPulse
  4906. PBL4.SolenoidPulse
  4907. PBL5.SolenoidPulse
  4908. BRL.PopDown: BumpL.Enabled = TRUE
  4909.  
  4910. If (VictoryLap = TRUE) Then Exit Sub
  4911. TurretCannonFire: TurboLaserFire1
  4912.  
  4913. If (Bumper1.State = BulbOff) Then
  4914. Bumper1.FlashForMs 250, 125, BulbOff: BulbBumper1.FlashForMs 250, 125, BulbOff
  4915. SoundBumper()
  4916. Else
  4917. AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 250
  4918. BumperFlasher.FlashForMs 250, 250, BulbOff
  4919. BumperMiddle.FlashForMs 250, 250, BulbOff
  4920. PlayMusic 3,"fx_Blaster2"
  4921. ClearLCD()
  4922. MovieOverlay.UpdateInterval = 40: MovieOverlay.frame 304, 309
  4923. HUDOverlay.UpdateInterval = 40: HUDoverlay.frame 304, 309
  4924. MovieTimer.Set TRUE, 1000
  4925. End If
  4926.  
  4927. If (ChewiePerk = TRUE) Then
  4928. AddScore(BumpValue+500)
  4929. Else
  4930. AddScore(BumpValue)
  4931. End If
  4932.  
  4933. CheckBUMPERS()
  4934. End If
  4935. set LastSwitchHit = Bumper1
  4936. End Sub
  4937.  
  4938.  
  4939.  
  4940. Sub BumpL_Expired()
  4941. BumpL.Enabled = FALSE
  4942. BRL.SolenoidPulse 10
  4943. End Sub
  4944.  
  4945.  
  4946.  
  4947. Sub Bumper2_Hit()
  4948. If (fpTilted = FALSE) Then
  4949.  
  4950. 'PlaySound "fx_Bumper"
  4951. DOFLinx_Bumper2_Hit() 'DOFLinx - Bumper 2 Hit
  4952. PBR1.SolenoidPulse
  4953. PBR4.SolenoidPulse
  4954. PBR5.SolenoidPulse
  4955. PBR6.SolenoidPulse
  4956. PBR7.SolenoidPulse
  4957. PBR8.SolenoidPulse
  4958. BRR.PopDown: BumpR.Enabled = TRUE
  4959.  
  4960. If (VictoryLap = TRUE) Then Exit Sub
  4961. TurretCannonFire: TurboLaserFire2
  4962.  
  4963. If (Bumper2.State = BulbOff) Then
  4964. Bumper2.FlashForMs 250, 125, BulbOff: BulbBumper2.FlashForMs 250, 125, BulbOff
  4965. SoundBumper()
  4966. Else
  4967. AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 250
  4968. BumperFlasher.FlashForMs 250, 250, BulbOff
  4969. BumperMiddle.FlashForMs 250, 250, BulbOff
  4970. PlayMusic 3,"fx_Blaster2"
  4971. ClearLCD()
  4972. MovieOverlay.UpdateInterval = 40: MovieOverlay.frame 311, 318
  4973. HUDOverlay.UpdateInterval = 40: HUDoverlay.frame 311, 318
  4974. MovieTimer.Set TRUE, 1000
  4975.  
  4976. End If
  4977.  
  4978. If (ChewiePerk = TRUE) Then
  4979. AddScore(BumpValue+500)
  4980. Else
  4981. AddScore(BumpValue)
  4982. End If
  4983.  
  4984. CheckBUMPERS()
  4985. End If
  4986. set LastSwitchHit = Bumper2
  4987. End Sub
  4988.  
  4989.  
  4990. Sub BumpR_Expired()
  4991. BumpR.Enabled = FALSE
  4992. BRR.SolenoidPulse 10
  4993. End Sub
  4994.  
  4995.  
  4996.  
  4997. Sub Bumper3_Hit()
  4998. If (fpTilted = FALSE) Then
  4999.  
  5000. 'PlaySound "fx_Bumper"
  5001. DOFLinx_Bumper3_Hit() 'DOFLinx - Bumper 3 Hit
  5002. PBDR1.SolenoidPulse
  5003. PBDR2.SolenoidPulse
  5004. PBDR3.SolenoidPulse
  5005. PBDR4.SolenoidPulse
  5006. PBDR7.SolenoidPulse
  5007. PBDR8.SolenoidPulse
  5008. BRD.PopDown: BumpD.Enabled = TRUE
  5009.  
  5010. If (VictoryLap = TRUE) Then Exit Sub
  5011. TurretCannonFire: TurboLaserFire3
  5012.  
  5013. If (Bumper3.State = BulbOff) Then
  5014. Bumper3.FlashForMs 250, 125, BulbOff: BulbBumper3.FlashForMs 250, 125, BulbOff
  5015. SoundBumper()
  5016. Else
  5017. AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 250
  5018. BumperFlasher.FlashForMs 250, 250, BulbOff
  5019. BumperMiddle.FlashForMs 250, 250, BulbOff
  5020. PlayMusic 3,"fx_Blaster2"
  5021. ClearLCD()
  5022. MovieOverlay.UpdateInterval = 40: MovieOverlay.frame 304, 309
  5023. HUDOverlay.UpdateInterval = 40: HUDoverlay.frame 304, 309
  5024. MovieTimer.Set TRUE, 1000
  5025.  
  5026. End If
  5027.  
  5028. If (ChewiePerk = TRUE) Then
  5029. AddScore(BumpValue+500)
  5030. Else
  5031. AddScore(BumpValue)
  5032. End If
  5033.  
  5034. CheckBUMPERS()
  5035. End If
  5036. set LastSwitchHit = Bumper3
  5037. End Sub
  5038.  
  5039.  
  5040. Sub BumpD_Expired()
  5041. BumpD.Enabled = FALSE
  5042. BRD.SolenoidPulse 10
  5043. End Sub
  5044.  
  5045.  
  5046.  
  5047. Sub SoundBumper()
  5048. Select Case RandomNumber(3)
  5049. Case 1: PlaySound "fx_BumperHit1"
  5050. Case 2: PlaySound "fx_BumperHit2"
  5051. Case 3: PlaySound "fx_BumperHit3"
  5052. End Select
  5053. End Sub
  5054.  
  5055.  
  5056.  
  5057. Sub TurboBumpers()
  5058. BumperMiddle.FlashForMs 500, 150, BulbOff
  5059. BumperFlasher.FlashForMs 500, 150, BulbOff
  5060. DMDBusy = TRUE: DMDTimer.Set TRUE, 1000
  5061. MyDMD.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TURBO BUMPERS", deNone, 75, FALSE
  5062. MyDMD2.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TURBO BUMPERS", deNone, 75, FALSE
  5063. MyDMD.QueueText "[edge3][f4][xc][yc]TURBO BUMPERS", deNone, 75, FALSE
  5064. MyDMD2.QueueText "[edge3][f4][xc][yc]TURBO BUMPERS", deNone, 75, FALSE
  5065. PlaySound "fx_Explode"
  5066. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  5067. NewMovie.UpdateInterval = 60: NewMovieHUD.UpdateInterval = 60
  5068. NewMovie.Frame 322, 350: NewMovieHUD.Frame 322, 350
  5069. MovieTimer.Set TRUE, 1200
  5070. PFFlash.Set TRUE, 125: FlashME = 12
  5071. Select Case RandomNumber(2)
  5072. Case 1: IncrementEmpireBonus(5)
  5073. Case 2: IncrementRebellionBonus(5)
  5074. End Select
  5075. End Sub
  5076.  
  5077.  
  5078.  
  5079. Sub CheckBUMPERS()
  5080. BumpHit = BumpHit + 1
  5081. If (BumpHit = 20) Then ' first, they all turn on...
  5082. Bumper1.State = BulbOn
  5083. Bumper2.State = BulbOn
  5084. Bumper3.State = BulbOn
  5085. BulbBumper1.State = BulbOn
  5086. BulbBumper2.State = BulbOn
  5087. BulbBumper3.State = BulbOn
  5088. BumpValue = 5000
  5089. TurboBumpers()
  5090. End If
  5091. If (BumpHit = 50) Then ' then they all blink...
  5092. Bumper1.Set BulbBlink, "10", 150
  5093. Bumper2.Set BulbBlink, "10", 150
  5094. Bumper3.Set BulbBlink, "10", 150
  5095. BulbBumper1.Set BulbBlink, "10", 150
  5096. BulbBumper2.Set BulbBlink, "10", 150
  5097. BulbBumper3.Set BulbBlink, "10", 150
  5098. BumpValue = 10000
  5099. TurboBumpers()
  5100. End If
  5101. If (BumpHit = 75) Then ' then they rotate...
  5102. Bumper1.Set BulbBlink, "101000000000", 120
  5103. Bumper2.Set BulbBlink, "000010100000", 120
  5104. Bumper3.Set BulbBlink, "000000001010", 120
  5105. BulbBumper1.Set BulbBlink, "101000000000", 120
  5106. BulbBumper2.Set BulbBlink, "000010100000", 120
  5107. BulbBumper3.Set BulbBlink, "000000001010", 120
  5108. BumpValue = 15000
  5109. TurboBumpers()
  5110. End If
  5111. If (BumpHit = 100) Then
  5112. Bumper1.Set BulbBlink, "101000000000", 100
  5113. Bumper2.Set BulbBlink, "000010100000", 100
  5114. Bumper3.Set BulbBlink, "000000001010", 100
  5115. BulbBumper1.Set BulbBlink, "101000000000", 100
  5116. BulbBumper2.Set BulbBlink, "000010100000", 100
  5117. BulbBumper3.Set BulbBlink, "000000001010", 100
  5118. BumpValue = 20000
  5119. TurboBumpers()
  5120. End If
  5121. If (BumpHit = 125) Then
  5122. BumpValue = 25000
  5123. TurboBumpers()
  5124. End If
  5125. End Sub
  5126.  
  5127.  
  5128.  
  5129.  
  5130. ' ********************************
  5131. ' ** **
  5132. ' ** SPINNERS **
  5133. ' ** **
  5134. ' ********************************
  5135.  
  5136.  
  5137. Sub Spinner_Hit()
  5138. If (fpTilted = FALSE) Then
  5139. AddScore(1000*BonusMultiplier(CP))
  5140. If (SSWin = FALSE) Then PlaySound "fx_Spinner"
  5141. FlasherBulbRight.FlashForMs 50, 50, BulbOff
  5142. FlasherRight.FlashForMs 50, 50, BulbOff
  5143. DOFLinx_Spinner_Hit() 'DOFLinx - Spinner Hit
  5144. End If
  5145. set LastSwitchHit = Spinner
  5146. End Sub
  5147.  
  5148.  
  5149.  
  5150. Sub FalconSpinner_Hit()
  5151. If (fpTilted = FALSE) Then
  5152. AddScore(1000*BonusMultiplier(CP))
  5153. If (RampTally(CP) = 4) Then Exit Sub
  5154. PlaySound "fx_FalconSpin"
  5155. Flasher2.FlashForMs 50, 50, BulbOff
  5156. DOFLinx_Falcon_Spinner_Hit() 'DOFLinx - Falcon Spinner Hit
  5157. End If
  5158. End Sub
  5159.  
  5160.  
  5161. Sub RampDropTrigger_Hit()
  5162. AddScore(50)
  5163. End Sub
  5164.  
  5165.  
  5166.  
  5167.  
  5168.  
  5169. ' *********************************
  5170. ' ** **
  5171. ' ** Top Rollover Triggers **
  5172. ' ** **
  5173. ' *********************************
  5174.  
  5175.  
  5176.  
  5177. Sub TriggerTopLane1_Hit()
  5178. If (fpTilted = False) Then
  5179. AddScore(2000)
  5180.  
  5181. If (VictoryLap = TRUE) Then Exit Sub
  5182.  
  5183. PlaySound "Bonus Advance": IncrementEmpireBonus(10)
  5184. If (LightTopLane1.State = BulbOff) Then
  5185. LightTopLane1.State = BulbOn
  5186. CheckTopRolloverLights()
  5187. End If
  5188. BulbGI16.FlashForMs 400, 200, BulbGI16.State
  5189. BulbGI17.FlashForMs 400, 200, BulbGI17.State
  5190. Bulb12.FlashForMs 400, 200, Bulb12.State
  5191. Bulb13.FlashForMs 400, 200, Bulb13.State
  5192. End If
  5193. set LastSwitchHit = TriggerTopLane1
  5194. End Sub
  5195.  
  5196.  
  5197.  
  5198. Sub TriggerTopLane2_Hit()
  5199. If (fpTilted = False) Then
  5200. AddScore(2000)
  5201.  
  5202. If (VictoryLap = TRUE) Then Exit Sub
  5203.  
  5204. PlaySound "Bonus Advance": IncrementEmpireBonus(10)
  5205. If (LightTopLane2.State = BulbOff) Then
  5206. LightTopLane2.State = BulbOn
  5207. CheckTopRolloverLights()
  5208. End If
  5209. BulbGI17.FlashForMs 400, 200, BulbGI17.State
  5210. BulbGI18.FlashForMs 400, 200, BulbGI18.State
  5211. Bulb14.FlashForMs 400, 200, Bulb14.State
  5212. Bulb13.FlashForMs 400, 200, Bulb13.State
  5213. End If
  5214. set LastSwitchHit = TriggerTopLane2
  5215. End Sub
  5216.  
  5217.  
  5218.  
  5219. Sub TriggerTopLane3_Hit()
  5220. If (fpTilted = False) Then
  5221. AddScore(2000)
  5222.  
  5223. If (VictoryLap = TRUE) Then Exit Sub
  5224.  
  5225. PlaySound "Bonus Advance": IncrementEmpireBonus(10)
  5226. If (LightTopLane3.State = BulbOff) Then
  5227. LightTopLane3.State = BulbOn
  5228. CheckTopRolloverLights()
  5229. End If
  5230. BulbGI18.FlashForMs 400, 200, BulbGI18.State
  5231. BulbGI19.FlashForMs 400, 200, BulbGI19.State
  5232. Bulb15.FlashForMs 400, 200, Bulb15.State
  5233. Bulb14.FlashForMs 400, 200, Bulb14.State
  5234. End If
  5235. set LastSwitchHit = TriggerTopLane3
  5236. End Sub
  5237.  
  5238.  
  5239.  
  5240. Sub CheckTopRolloverLights()
  5241. If (LightTopLane1.State = BulbOn) And (LightTopLane2.State = BulbOn) And (LightTopLane3.State = BulbOn) Then
  5242. IncrementBonusMultiplier()
  5243. LightTopLane1.FlashForMs 300, 100, BulbOff
  5244. LightTopLane2.FlashForMs 300, 100, BulbOff
  5245. LightTopLane3.FlashForMs 300, 100, BulbOff
  5246. BulbGI16.FlashForMs 300, 100, BulbOn
  5247. Bulb12.FlashForMs 300, 100, BulbOn
  5248. BulbGI17.FlashForMs 300, 100, BulbOn
  5249. Bulb13.FlashForMs 300, 100, BulbOn
  5250. BulbGI18.FlashForMs 300, 100, BulbOn
  5251. Bulb14.FlashForMs 300, 100, BulbOn
  5252. BulbGI19.FlashForMs 300, 100, BulbOn
  5253. Bulb15.FlashForMs 300, 100, BulbOn
  5254. Else
  5255. If (VictoryLap = TRUE) Then Exit Sub
  5256. If (QuoteBusy = FALSE) Then
  5257. PlaySound "Uteenie"
  5258. If (MovieTimer.Enabled = FALSE) Then
  5259. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 159, 167
  5260. HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 159, 167
  5261. MovieTimer.Set TRUE, 1000
  5262. End If
  5263. End If
  5264. End If
  5265. End Sub
  5266.  
  5267.  
  5268.  
  5269.  
  5270.  
  5271. ' ********************************
  5272. ' ** **
  5273. ' ** VADER LANE **
  5274. ' ** **
  5275. ' ********************************
  5276.  
  5277.  
  5278. Sub TriggerLeftStar1_Hit()
  5279.  
  5280. If (fpTilted = False) Then
  5281. DOFLinx_TriggerLeftStar1_Hit() 'DOFLinx_TriggerLeftStar1_Hit
  5282. If (BulbLeftStar1.State <> BulbOff) Then
  5283. AddScore(2500)
  5284. Else
  5285. AddScore(500)
  5286. End If
  5287. If (BulbLeftStar1.State <> BulbBlink) Then
  5288. BulbLeftStar1.FlashForMs 150, 75, BulbLeftStar1.State
  5289. End If
  5290. End If
  5291. If (LastSwitchHit.Name = "TriggerLeftStar1") Then Exit Sub
  5292. If (LastSwitchHit.Name = "TriggerLeftStar2") Then Exit Sub
  5293. PlaySound "TIE Fighter"
  5294. set LastSwitchHit = TriggerLeftStar1
  5295. End Sub
  5296.  
  5297.  
  5298.  
  5299. Sub TriggerLeftStar2_Hit()
  5300. If (fpTilted = False) Then
  5301. DOFLinx_TriggerLeftStar2_Hit() 'DOFLinx_TriggerLeftStar2_Hit
  5302. If (BulbLeftStar2.State <> BulbOff) Then
  5303. AddScore(2500)
  5304. Else
  5305. AddScore(500)
  5306. End If
  5307. If (BulbLeftStar2.State <> BulbBlink) Then
  5308. BulbLeftStar2.FlashForMs 150, 75, BulbLeftStar2.State
  5309. End If
  5310. End If
  5311. set LastSwitchHit = TriggerLeftStar2
  5312. End Sub
  5313.  
  5314.  
  5315.  
  5316. Sub TriggerLeftStar3_Hit()
  5317. If (fpTilted = False) Then
  5318. DOFLinx_TriggerLeftStar3_Hit() 'DOFLinx_TriggerLeftStar3_Hit
  5319. If (BulbLeftStar3.State <> BulbOff) Then
  5320. AddScore(2500)
  5321. Else
  5322. AddScore(500)
  5323. End If
  5324. If (BulbLeftStar3.State <> BulbBlink) Then
  5325. BulbLeftStar3.FlashForMs 150, 75, BulbLeftStar3.State
  5326. End If
  5327. End If
  5328. set LastSwitchHit = TriggerLeftStar3
  5329. End Sub
  5330.  
  5331.  
  5332.  
  5333.  
  5334.  
  5335. ' **********************************
  5336. ' ** **
  5337. ' ** FALCON SAVE **
  5338. ' ** **
  5339. ' **********************************
  5340.  
  5341.  
  5342. ' the Han Solo lane...
  5343.  
  5344. Sub TriggerMiddleStar_Hit()
  5345. If (fpTilted = False) Then
  5346. If (BulbMiddleStar.State <> BulbOff) Then
  5347. AddScore(5000)
  5348. PlaySound "Bonus Advance": IncrementRebellionBonus(20)
  5349. Else
  5350. AddScore(1500)
  5351. End If
  5352. BulbMiddleStar.FlashForMs 150, 75, BulbMiddleStar.State
  5353. End If
  5354. If (LastSwitchHit.Name = "TriggerMiddleStar") Then Exit Sub
  5355. set LastSwitchHit = TriggerMiddleStar
  5356. End Sub
  5357.  
  5358.  
  5359.  
  5360.  
  5361.  
  5362. ' *********************************
  5363. ' ** **
  5364. ' ** TRENCH RUN **
  5365. ' ** **
  5366. ' *********************************
  5367.  
  5368.  
  5369. ' the right orbit (trench run)...
  5370.  
  5371. Sub TrenchRun_Hit()
  5372.  
  5373. If (VictoryLap = TRUE) Then Exit Sub
  5374.  
  5375. If (fpTilted = FALSE) Then
  5376. If (BulbRightStar.State = BulbOn) Then
  5377. AddScore(2500)
  5378. BulbRightStar.State = BulbOff
  5379. Else
  5380. If (LastSwitchHit.Name = "TrenchRun") Then
  5381. AddScore(500)
  5382. BulbRightStar.FlashForMs 1000, 75, BulbRightStar.State
  5383. Else
  5384. If (bMultiballMode = FALSE) Then
  5385. TrenchHit()
  5386. Else
  5387. AddScore(TrenchValue)
  5388. End If
  5389. BulbRightStar.FlashForMs 1000, 75, BulbRightStar.State
  5390. End If
  5391. End If
  5392. End If
  5393. IncrementRebellionBonus(5)
  5394. set LastSwitchHit = TrenchRun
  5395. End Sub
  5396.  
  5397.  
  5398.  
  5399.  
  5400. Sub TrenchHit()
  5401. If (MovieTimer.Enabled = FALSE) Then
  5402. NewMovie.Frame 1: NewMovieHUD.Frame 1
  5403. NewMovie.FadeOut: NewMovieHUD.FadeOut
  5404. End If
  5405. TrenchValue = TrenchValue + 3500
  5406. AddScore(TrenchValue)
  5407.  
  5408. If (TimeAttack = FALSE) Then
  5409. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  5410. MyDMD.QueueText "[edge3][f4][xc][yc]TRENCH RUN", deNone, 600, FALSE
  5411. MyDMD2.QueueText "[edge3][f4][xc][yc]TRENCH RUN", deNone, 600, FALSE
  5412. MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(TrenchValue, 0, -1, 0, -1), deFlip, 1200, TRUE
  5413. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(TrenchValue, 0, -1, 0, -1), deFlip, 1200, TRUE
  5414. End If
  5415.  
  5416. If (QuoteBusy = FALSE) Then
  5417. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  5418.  
  5419. TrenchPlay(CP) = TrenchPlay(CP) + 1
  5420.  
  5421. Select Case TrenchPlay(CP)
  5422. Case 1:
  5423. Select Case RandomNumber(2)
  5424. Case 1: PlaySound "vo_ThisIsItBoys"
  5425. Case 2: PlaySound "vo_InPosition": QuoteTimer.Set TRUE, 2500
  5426. End Select
  5427. Case 2:
  5428. Select Case RandomNumber(3)
  5429. Case 1: MusicFade(1600): PlaySound "vo_PassingThrough"
  5430. Case 2: PlaySound "vo_MagneticField"
  5431. Case 3: PlaySound "vo_MagneticField2"
  5432. End Select
  5433. Case 3:
  5434. PlaySound "vo_AttackPosition"
  5435. PlaySound "fx_XWingFlyBy", 0.8
  5436. MovieTimer.Set TRUE, 1800
  5437. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  5438. NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
  5439. NewMovie.Frame 359, 385: NewMovieHUD.Frame 359, 385
  5440. Case 4:
  5441. If (MovieTimer.Enabled = FALSE) Then
  5442. PlaySound "fx_Turbo"
  5443. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 991, 1021
  5444. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 991, 1021
  5445. End If
  5446. Case 5: PlaySound "vo_HoldTight"
  5447. Case 6:
  5448. MusicFade(1600): PlaySound "vo_GoingIn": PlaySound "fx_Trench", 0.6
  5449. If (MovieTimer.Enabled = FALSE) Then
  5450. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 238, 264
  5451. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 238, 264
  5452. End If
  5453. Case 7:
  5454. If (MovieTimer.Enabled = FALSE) Then
  5455. PlaySound "vfx_TurretFire"
  5456. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  5457. NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
  5458. NewMovie.Frame 485, 515: NewMovieHUD.Frame 485, 515
  5459. MovieTimer.Set TRUE, 2500
  5460. FlashMe = 10: PFFlash.Set TRUE, 125
  5461. End If
  5462. Case 8:
  5463. If (MovieTimer.Enabled = FALSE) Then
  5464. PlaySound "fx_Turbo"
  5465. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 991, 1021
  5466. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 991, 1021
  5467. End If
  5468. Case 9: PlaySound "vo_Attackspeed"
  5469. If (MovieTimer.Enabled = FALSE) Then
  5470. PlaySound "fx_Turbo"
  5471. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 991, 1021
  5472. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 991, 1021
  5473. End If
  5474. Case 10: PlaySound "vo_FullThrottle3"
  5475. Case 11:
  5476. PlaySound "vo_SwitchPower"
  5477. MovieTimer.Set TRUE, 1500
  5478. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  5479. NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
  5480. NewMovie.Frame 428, 448: NewMovieHUD.Frame 428, 448
  5481. Case 12: PlaySound "vo_WatchForFighters"
  5482. Case 13:
  5483. Select Case RandomNumber(2)
  5484. Case 1: PlaySound "vo_DeflectorShields"
  5485. Case 2: PlaySound "vo_Deflectors"
  5486. End Select
  5487. MovieTimer.Set TRUE, 1500
  5488. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  5489. NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
  5490. NewMovie.Frame 428, 448: NewMovieHUD.Frame 428, 448
  5491. Case 14:
  5492. If (MovieTimer.Enabled = FALSE) Then
  5493. PlaySound "fx_Turbo"
  5494. MovieOverlay.UpdateInterval = 66:MovieOverlay.Frame 67, 93
  5495. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 67, 93
  5496. MovieTimer.Set TRUE, 1500
  5497. End If
  5498. Case 15: PlaySound "vo_PickUp"
  5499. Case 16:
  5500. PlaySound "vo_GoingInAgain"
  5501. MovieOverlay.UpdateInterval = 67:MovieOverlay.Frame 35, 48
  5502. HUDOverlay.UpdateInterval = 67: HUDOverlay.Frame 35, 48
  5503. MovieTimer.Set TRUE, 1200
  5504. Case 17:
  5505. If (MovieTimer.Enabled = FALSE) Then
  5506. PlaySound "vfx_TurretFire"
  5507. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  5508. NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
  5509. NewMovie.Frame 485, 515: NewMovieHUD.Frame 485, 515
  5510. MovieTimer.Set TRUE, 2500
  5511. FlashME = 10: PFFlash.Set TRUE, 125
  5512. End If
  5513. Case 18:
  5514. PlaySound "vo_AttackRun"
  5515. PlaySound "fx_XWingFlyBy", 0.8
  5516. MovieTimer.Set TRUE, 1800
  5517. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  5518. NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
  5519. NewMovie.Frame 359, 385: NewMovieHUD.Frame 359, 385
  5520. Case 19:
  5521. If (MovieTimer.Enabled = FALSE) Then
  5522. PlaySound "fx_Turbo"
  5523. MovieOverlay.UpdateInterval = 66:MovieOverlay.Frame 67, 93
  5524. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 67, 93
  5525. MovieTimer.Set TRUE, 1500
  5526. End If
  5527. Case 20: PlaySound "vo_ExhaustPort"
  5528. Case 21:
  5529. Select Case RandomNumber(2)
  5530. Case 1: PlaySound "vo_EyesOpen"
  5531. Case 2: PlaySound "vo_FrontDeflectors"
  5532. End Select
  5533. Case 22: PlaySound "vo_AboveYou"
  5534. Case 23:
  5535. PlaySound "vo_AttackSpeedFX"
  5536. If (MovieTimer.Enabled = FALSE) Then
  5537. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 238, 264
  5538. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 238, 264
  5539. MovieTimer.Set TRUE, 1500
  5540. End If
  5541. Case 24:
  5542. PlaySound "vo_HeavyFireZone"
  5543. If (MoveTimer.Enabled = FALSE) Then
  5544. PlaySound "fx_Turbo", 0.5
  5545. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 991, 1021
  5546. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 991, 1021
  5547. End If
  5548. Case 25:
  5549. PlaySound "fx_Trench"
  5550. If (MovieTimer.Enabled = FALSE) Then
  5551. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 238, 264
  5552. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 238, 264
  5553. MovieTimer.Set TRUE, 1600
  5554. End If
  5555. Case 26:
  5556. If (MovieTimer.Enabled = FALSE) Then
  5557. TrenchPlay(CP) = 24
  5558. PlaySound "vfx_TurretFire"
  5559. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  5560. NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
  5561. NewMovie.Frame 485, 515: NewMovieHUD.Frame 485, 515
  5562. MovieTimer.Set TRUE, 2500
  5563. FlashME = 10: PFFlash.Set TRUE, 125
  5564. End If
  5565. End Select
  5566. End If
  5567. End Sub
  5568.  
  5569.  
  5570.  
  5571. ' **************************************
  5572. ' ** **
  5573. ' ** TIE FIGHTER DROP TARGETS **
  5574. ' ** **
  5575. ' **************************************
  5576.  
  5577.  
  5578. ' Knock down all targets to light the Jedi power up at the Vader kicker.
  5579.  
  5580. ' Defeating a wave of TIE fighters also qualifies for the Skill Shot at the start of the next ball.
  5581.  
  5582.  
  5583. Sub ThreeBank1_Hit()
  5584. PlaySound "fx_DropDownC"
  5585. If (fpTilted = False) Then
  5586. DOFLinx_Center_Drop_Target_Hit() 'DOFLinx - Center Drop Target Hit
  5587. LightThreeBank1.State = BulbOn
  5588. CheckDropTargets()
  5589. End If
  5590. End Sub
  5591.  
  5592.  
  5593.  
  5594. Sub ThreeBank2_Hit()
  5595. PlaySound "fx_DropDownC"
  5596. If (fpTilted = False) Then
  5597. DOFLinx_Center_Drop_Target_Hit() 'DOFLinx - Center Drop Target Hit
  5598. LightThreeBank2.State = BulbOn
  5599. CheckDropTargets()
  5600. End If
  5601. End Sub
  5602.  
  5603.  
  5604.  
  5605. Sub ThreeBank3_Hit()
  5606. PlaySound "fx_DropDownC"
  5607. If (fpTilted = False) Then
  5608. DOFLinx_Center_Drop_Target_Hit() 'DOFLinx - Center Drop Target Hit
  5609. LightThreeBank3.State = BulbOn
  5610. CheckDropTargets()
  5611. End If
  5612. End Sub
  5613.  
  5614.  
  5615.  
  5616. ' left side 4 bank...
  5617.  
  5618. Sub FourBank1_Hit()
  5619. PlaySound "fx_DropDownL"
  5620. If (fpTilted = False) Then
  5621. LightFourBank1.State = BulbOn
  5622. CheckDropTargets()
  5623. End If
  5624. End Sub
  5625.  
  5626.  
  5627.  
  5628. Sub FourBank2_Hit()
  5629. PlaySound "fx_DropDownL"
  5630. If (fpTilted = False) Then
  5631. DOFLinx_Left_Drop_Target_Hit() 'DOFLinx - Left Drop Target Hit
  5632. LightFourBank2.State = BulbOn
  5633. CheckDropTargets()
  5634. End If
  5635. End Sub
  5636.  
  5637.  
  5638.  
  5639. Sub FourBank3_Hit()
  5640. PlaySound "fx_DropDownL"
  5641. If (fpTilted = False) Then
  5642. DOFLinx_Left_Drop_Target_Hit() 'DOFLinx - Left Drop Target Hit
  5643. LightFourBank3.State = BulbOn
  5644. CheckDropTargets()
  5645. End If
  5646. End Sub
  5647.  
  5648.  
  5649.  
  5650. Sub FourBank4_Hit()
  5651. PlaySound "fx_DropDownL"
  5652. If (fpTilted = False) Then
  5653. DOFLinx_Left_Drop_Target_Hit() 'DOFLinx - Left Drop Target Hit
  5654. LightFourBank4.State = BulbOn
  5655. CheckDropTargets()
  5656. End If
  5657. End Sub
  5658.  
  5659.  
  5660.  
  5661. Dim TgtMove
  5662.  
  5663.  
  5664.  
  5665.  
  5666. Sub TgtRotate_Expired()
  5667. TgtMove = TgtMove + 1
  5668. PlaySound "fx_DropDownC", 0.5
  5669. Select Case TgtMove
  5670. Case 1: FourBank1.SolenoidPulse
  5671. Case 2: FourBank1.PopDown: FourBank2.SolenoidPulse
  5672. Case 3: FourBank2.PopDown: FourBank3.SolenoidPulse
  5673. Case 4: FourBank3.PopDown: FourBank4.SolenoidPulse
  5674. Case 5: FourBank4.PopDown: ThreeBank1.SolenoidPulse
  5675. Case 6: ThreeBank1.PopDown: ThreeBank2.SolenoidPulse
  5676. Case 7: ThreeBank2.PopDown: ThreeBank3.SolenoidPulse
  5677. Case 8: ThreeBank3.PopDown: TgtMove = 0
  5678. End Select
  5679. End Sub
  5680.  
  5681.  
  5682.  
  5683.  
  5684. Sub CheckDropTargets()
  5685. If (fpTilted = FALSE) Then
  5686. If (FourBank1.Dropped And FourBank2.Dropped And FourBank3.Dropped And _
  5687. FourBank4.Dropped And ThreeBank1.Dropped And ThreeBank2.Dropped And _
  5688. ThreeBank3.Dropped) Then
  5689. If (VictoryLap = FALSE) Then
  5690. TorpedoReady(CP) = TRUE
  5691. PlaySound "fx_R2Bonus"
  5692. DOFLinx_Wave_Destroyed() 'DOFLinx Wave Destroyed
  5693. LightSeqPF.Play SeqBlinking, , 2, 100
  5694. FlashME = 14: PFFlash.Set TRUE, 100
  5695. TgtRotate.Enabled = FALSE
  5696. AddScore(XWingValue(CP)*10)
  5697. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  5698. MyDMD.QueueText "[edge3][f4][yc]WAVE DESTROYED", deNone, 800, FALSE
  5699. MyDMD2.QueueText "[edge3][f4][yc]WAVE DESTROYED", deNone, 800, FALSE
  5700. MyDMD.QueueText "[edge3][f4][yc][b]POWER UP READY", deScrollIn, 1000, TRUE
  5701. MyDMD2.QueueText "[edge3][f4][yc][b]POWER UP READY", deScrollIn, 1000, TRUE
  5702.  
  5703. ' now you can rank up to a new Jedi level...
  5704. If (bPadawanMode(CP) = FALSE) Then
  5705. LightPadawan.Set BulbBlink, "10", 150
  5706. Else
  5707. If (bKnightMode(CP) = FALSE) Then
  5708. LightKnight.Set BulbBlink, "10", 150
  5709. Else
  5710. If (bMasterMode(CP) = FALSE) Then
  5711. LightMaster.Set BulbBlink, "10", 150
  5712. Else
  5713. If (bYodaMode(CP) = FALSE) Then
  5714. LightJoda.Set BulbBlink, "10", 150
  5715. Else
  5716. AwardSpecial()
  5717. End If
  5718. End If
  5719. End If
  5720. End If
  5721. BulbLeftStar1Ext.SetLitColor 255, 0, 0
  5722. BulbLeftStar2Ext.SetLitColor 255, 0, 0
  5723. BulbLeftStar3Ext.SetLitColor 255, 0, 0
  5724. BulbLeftStar1.Set BulbBlink, "10000", 125
  5725. BulbLeftStar2.Set BulbBlink, "01000", 125
  5726. BulbLeftStar3.Set BulbBlink, "00100", 125
  5727. LightLeftPowerUp.Set BulbBlink, "00010", 125
  5728. R2HeadBulb.State = BulbOn
  5729. HologramR2D2.Frame 3: R2D2Fade.Set TRUE, 3000
  5730. Else
  5731. VictoryHit()
  5732. End If
  5733. ResetDropTargets()
  5734. Else
  5735.  
  5736. 'If (XWingMove.Enabled = FALSE) Then XMove = 2: XWingMove_Expired()
  5737. XWing_Move
  5738.  
  5739. Flasher2.FlashForMs 300, 75, BulbOff: AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 300
  5740.  
  5741. PlayMusic 5, "fx_XwingAttack"
  5742. DOFLinx_Droptarget_XWingBlast() 'DOFLinx Droptarget XWingBlast
  5743. If (ObiWanPerk = TRUE) Then
  5744. XWingValue(CP) = XWingValue(CP) + 250
  5745. End If
  5746.  
  5747. If (TimeAttack = FALSE) Then
  5748. AddScore(XWingValue(CP))
  5749. DMDBusy = TRUE: DMDTimer.Set TRUE, 1000
  5750. MyDMD.QueueText "[edge3][f4][yc]TIE HIT - " & FormatNumber(XWingValue(CP), 0, -1, 0, -1), deNone, 1000, TRUE
  5751. MyDMD2.QueueText "[edge3][f4][yc]TIE HIT - " & FormatNumber(XWingValue(CP), 0, -1, 0, -1), deNone, 1000, TRUE
  5752. End If
  5753.  
  5754. If (MovieTimer.Enabled = FALSE) Then
  5755. MovieOverlay.UpdateInterval = 67: MovieOverlay.frame 523, 540
  5756. HUDOverlay.UpdateInterval = 67: HUDOverlay.frame 523, 540
  5757. MovieTimer.Set TRUE, 500
  5758. End If
  5759. LightSeqPF.Play SeqBlinking, , 2, 100
  5760. End If
  5761. IncrementRebellionBonus(10)
  5762. TIETally(CP) = TIETally (CP) + 1
  5763. CheckTIETally()
  5764. End If
  5765. End Sub
  5766.  
  5767.  
  5768. ' swat those pesky TIE fighters to earn big rewards...
  5769.  
  5770. Sub CheckTIETally()
  5771. If (TIETally(CP) = 50) Then
  5772. If (bExtraBallWonThisBall = FALSE) Then
  5773. AwardExtraBall()
  5774. MusicFade(800): PlaySound "vo_ExtraBall"
  5775. Else
  5776. AddScore(1138000)
  5777. End If
  5778. End If
  5779. If (TIETally(CP) = 100) Then
  5780. If (bExtraBallWonThisBall = FALSE) Then
  5781. AwardExtraBall()
  5782. MusicFade(800): PlaySound "vo_ExtraBall"
  5783. Else
  5784. AddScore(1138000)
  5785. End If
  5786. End If
  5787. If (TIETally(CP) = 150) Then
  5788. If (bExtraBallWonThisBall = FALSE) Then
  5789. AwardExtraBall()
  5790. MusicFade(800): PlaySound "vo_ExtraBall"
  5791. Else
  5792. AddScore(1138000)
  5793. End If
  5794. End If
  5795. End Sub
  5796.  
  5797.  
  5798.  
  5799. Sub ResetDropTargets()
  5800. ResetDropTargetsTimer.UserData = 0
  5801. ResetDropTargetsTimer.Set True, 70
  5802. End Sub
  5803.  
  5804.  
  5805.  
  5806. Sub ResetDropTargetsTimer_Expired()
  5807. ResetDropTargetsTimer.Enabled = FALSE
  5808.  
  5809. Select Case (ResetDropTargetsTimer.UserData)
  5810. Case 0: FourBank1.SolenoidPulse
  5811. If (fpGameInPlay = True) Then
  5812. LightFourBank1.State = BulbOff
  5813. End If
  5814. ResetDropTargetsTimer.UserData = 1
  5815. ResetDropTargetsTimer.Enabled = True
  5816. Case 1: FourBank2.SolenoidPulse
  5817. DOFLinx_Left_Drop_Targets_Reset() 'DOFLinx - Left Drop Target Reset Hit
  5818. If (fpGameInPlay = True) Then
  5819. LightFourBank2.State = BulbOff
  5820. End If
  5821. ResetDropTargetsTimer.UserData = 2
  5822. ResetDropTargetsTimer.Enabled = True
  5823. Case 2: FourBank3.SolenoidPulse
  5824. If (fpGameInPlay = True) Then
  5825. LightFourBank3.State = BulbOff
  5826. End If
  5827. ResetDropTargetsTimer.UserData = 3
  5828. ResetDropTargetsTimer.Enabled = True
  5829. Case 3: FourBank4.SolenoidPulse
  5830. If (fpGameInPlay = True) Then
  5831. LightFourBank4.State = BulbOff
  5832. End If
  5833. ResetDropTargetsTimer.UserData = 4
  5834. ResetDropTargetsTimer.Enabled = True
  5835. Case 4: ThreeBank1.SolenoidPulse
  5836. If (fpGameInPlay = True) Then
  5837. LightThreeBank1.State = BulbOff
  5838. End If
  5839. ResetDropTargetsTimer.UserData = 5
  5840. ResetDropTargetsTimer.Enabled = True
  5841. Case 5: ThreeBank2.SolenoidPulse
  5842. If (fpGameInPlay = True) Then
  5843. LightThreeBank2.State = BulbOff
  5844. End If
  5845. ResetDropTargetsTimer.UserData = 6
  5846. ResetDropTargetsTimer.Enabled = True
  5847. Case 6: ThreeBank3.SolenoidPulse
  5848. If (fpGameInPlay = True) Then
  5849. LightThreeBank3.State = BulbOff
  5850. End If
  5851. ResetDropTargetsTimer.UserData = 7
  5852. ResetDropTargetsTimer.Enabled = True
  5853. Case 7:
  5854. If (fpGameInPlay = True) Then
  5855. LightThreeBank1.Set BulbBlink, "10", 125
  5856. LightThreeBank2.Set BulbBlink, "10", 125
  5857. LightThreeBank3.Set BulbBlink, "10", 125
  5858. LightFourBank1.Set BulbBlink, "01", 125
  5859. LightFourBank2.Set BulbBlink, "01", 125
  5860. LightFourBank3.Set BulbBlink, "01", 125
  5861. LightFourBank4.Set BulbBlink, "01", 125
  5862. End If
  5863. End Select
  5864. End Sub
  5865.  
  5866.  
  5867.  
  5868.  
  5869.  
  5870. ' *********************************
  5871. ' ** **
  5872. ' ** VADER TARGETS **
  5873. ' ** **
  5874. ' *********************************
  5875.  
  5876. ' His menacing presence is announced by breathing like a chain smoker.
  5877. ' Complete VADER to light the awards at the right saucer.
  5878.  
  5879.  
  5880. Sub TgtV_Hit()
  5881.  
  5882. If (VictoryLap = TRUE) Then VictoryHit(): Exit Sub
  5883.  
  5884. If (fpTilted = FALSE) Then
  5885. DOFLinx_Vader_Target_V_Hit() 'DOFLinx - Vader Target V Hi
  5886. If (LightV.State = BulbBlink) Then
  5887. LightV.State = BulbOn
  5888. If (MovieTimer.Enabled = FALSE) Then
  5889. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
  5890. HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 127, 137
  5891. End If
  5892. CheckVADERLights()
  5893. Else
  5894. PlaySound "fx_Vader", 0.7
  5895. AddScore(500)
  5896. End If
  5897. End If
  5898. End Sub
  5899.  
  5900.  
  5901. Sub TgtA_Hit()
  5902.  
  5903. If (VictoryLap = TRUE) Then VictoryHit(): Exit Sub
  5904.  
  5905. If (fpTilted = False) Then
  5906. DOFLinx_Vader_Target_A_Hit() 'DOFLinx - Vader Target A Hit
  5907. If (LightA.State = BulbBlink) Then
  5908. LightA.State = BulbOn
  5909. CheckVADERLights()
  5910. Else
  5911. PlaySound "fx_Vader", 0.7
  5912. AddScore(500)
  5913. End If
  5914. End If
  5915. End Sub
  5916.  
  5917.  
  5918.  
  5919. Sub TgtD_Hit()
  5920.  
  5921. If (VictoryLap = TRUE) Then VictoryHit(): Exit Sub
  5922.  
  5923. If (fpTilted = False) Then
  5924. DOFLinx_Vader_Target_D_Hit() 'DOFLinx - Vader Target D Hit
  5925. If (LightD.State = BulbBlink) Then
  5926. LightD.State = BulbOn
  5927. If (MovieTimer.Enabled = FALSE) Then
  5928. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
  5929. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
  5930. End If
  5931. CheckVADERLights()
  5932. Else
  5933. PlaySound "fx_Vader", 0.7
  5934. AddScore(500)
  5935. End If
  5936. End If
  5937. End Sub
  5938.  
  5939.  
  5940.  
  5941. Sub TgtE_Hit()
  5942.  
  5943. If (VictoryLap = TRUE) Then VictoryHit(): Exit Sub
  5944.  
  5945. If (fpTilted = False) Then
  5946. DOFLinx_Vader_Target_E_Hit() 'DOFLinx - Vader Target E Hit
  5947. If (LightE.State = BulbBlink) Then
  5948. LightE.State = BulbOn
  5949. If (MovieTimer.Enabled = FALSE) Then
  5950. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
  5951. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
  5952. End If
  5953. CheckVADERLights()
  5954. Else
  5955. PlaySound "fx_Vader", 0.7
  5956. AddScore(500)
  5957. End If
  5958. End If
  5959. End Sub
  5960.  
  5961.  
  5962.  
  5963. Sub TgtR_Hit()
  5964.  
  5965. If (VictoryLap = TRUE) Then VictoryHit(): Exit Sub
  5966.  
  5967. If (fpTilted = False) Then
  5968. DOFLinx_Vader_Target_R_Hit() 'DOFLinx - Vader Target R Hit
  5969. If (LightR.State = BulbBlink) Then
  5970. LightR.State = BulbOn
  5971. If (MovieTimer.Enabled = FALSE) Then
  5972. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
  5973. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
  5974. End If
  5975. CheckVADERLights()
  5976. Else
  5977. PlaySound "fx_Vader", 0.7
  5978. AddScore(500)
  5979. End If
  5980. End If
  5981. End Sub
  5982.  
  5983.  
  5984.  
  5985.  
  5986. Sub CheckVADERLights()
  5987. If (LightV.State = BulbOn And LightA.State = BulbOn And LightD.State = BulbOn And LightE.State = BulbOn And LightR.State = BulbOn) Then
  5988. AddScore(15000)
  5989. LightSeqPF.Play SeqBlinking, , 2, 100
  5990. FlashMe = 16: PFFlash.Set TRUE, 200
  5991. If (LightDock.State = BulbOff) Then
  5992. LightDock.Set BulbBlink, "10", 150
  5993. If (QuoteBusy = FALSE) Then
  5994. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  5995. VaderAnimation(5)
  5996. Select Case RandomNumber(5)
  5997. Case 1: MusicFade(600): PlaySound "vo_Impressive": VaderScoreLight.FlashForMs 600, 600, VaderScoreLight.State
  5998. Case 2: MusicFade(1000): PlaySound "vo_ForceIsStrong": VaderScoreLight.FlashForMs 1000, 1000, VaderScoreLight.State
  5999. Case 3: MusicFade(1000): PlaySound "vo_MostImpressive": VaderScoreLight.FlashForMs 1000, 1000, VaderScoreLight.State
  6000. End Select
  6001. End If
  6002. If (MovieTimer.Enabled = FALSE) Then
  6003. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 169, 170, 169
  6004. HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 169, 170, 169
  6005. MovieTimer.Set TRUE, 1500
  6006. End If
  6007. Select Case (AttackAwardLevel) ' for now, these rewards will loop...
  6008. Case 0: LightSpecial.State = BulbOff: LightExtraBall.State = BulbOff
  6009. Light50000Points.Set BulbBlink, "10", 150
  6010. Case 1: LightSpecial.Set BulbBlink, "10", 150
  6011. Case 2: If (bExtraBallWonThisBall = FALSE) Then ' only 1 extra ball per ball...
  6012. LightExtraBall.Set BulbBlink, "10", 150
  6013. Else
  6014. LightSpecial.Set BulbBlink, "10", 150
  6015. AttackAwardLevel = 2
  6016. End If
  6017. End Select
  6018. If (bBallSaverActive = FALSE) and (bMultiBallMode = FALSE) and (TimeAttack = FALSE) Then
  6019. bBallSaverActive = TRUE
  6020. BallSaverTimer.Enabled = FALSE
  6021. BallSaverTimer.Set TRUE, 6000
  6022. Countdown.FadeIn: Countdown.Frame 32
  6023. End If
  6024. End If
  6025. Else
  6026. If (ObiWanPerk = TRUE) Then
  6027. VaderHitValue(CP) = VaderHitValue(CP) + 250
  6028. End If
  6029. If (TimeAttack = FALSE) Then
  6030. AddScore(VaderHitValue(CP))
  6031. DMDBusy = TRUE: DMDTimer.Set TRUE, 1000
  6032. MyDMD.QueueText "[edge3][f4][yc]VADER - " & FormatNumber(VaderHitValue(CP), 0, -1, 0, -1), deNone, 1000, TRUE
  6033. MyDMD2.QueueText "[edge3][f4][yc]VADER - " & FormatNumber(VaderHitValue(CP), 0, -1, 0, -1), deNone, 1000, TRUE
  6034. End If
  6035. VaderAnimation(8)
  6036. PlaySound "fx_VDHit"
  6037. LightSeqPF.Play SeqBlinking, , 2, 100
  6038. IncrementEmpireBonus(10)
  6039. End If
  6040. End Sub
  6041.  
  6042.  
  6043.  
  6044. Sub ResetVADER()
  6045. LightV.Set BulbBlink, "10", 125
  6046. LightA.Set BulbBlink, "10", 125
  6047. LightD.Set BulbBlink, "10", 125
  6048. LightE.Set BulbBlink, "10", 125
  6049. LightR.Set BulbBlink, "10", 125
  6050. End Sub
  6051.  
  6052.  
  6053.  
  6054.  
  6055.  
  6056. ' *********************************
  6057. ' ** **
  6058. ' ** FALCON KICKER **
  6059. ' ** **
  6060. ' *********************************
  6061.  
  6062. ' Han Solo and the Millenium Falcon will award you with special Combo awards, Extra Balls, Specials and start
  6063. ' the Video Mode.
  6064.  
  6065.  
  6066. Sub FalconKicker_Hit()
  6067. 'PlaySound "fx_SolenoidHitL"
  6068. DOFLinx_FalconKicker_Hit() 'DOFLinx - Falcon Kicker Hit
  6069.  
  6070. If (fpTilted = TRUE) Then
  6071. FalconKicker.SolenoidPulse
  6072. Exit Sub
  6073. End If
  6074.  
  6075. If (VictoryLap = TRUE) Then VictoryHit(): FalconKicker.SolenoidPulse: DOFLinx_FalconKicker(): Exit Sub
  6076.  
  6077. AddScore (10000)
  6078. AllPlasOff()
  6079. MovieTimer.Enabled = FALSE
  6080. Crossover.Collidable = FALSE
  6081.  
  6082. ' a combo shot will automatically advance to the next Level...(2 shots in quick succession)...
  6083.  
  6084. If (FalconComboTimer.Enabled = TRUE) Then ' a combo hit...
  6085. SoloBulb1.Set BulbBlink, "1000", 100
  6086. SoloBulb2.Set BulbBlink, "0100", 100
  6087. SoloBulb3.Set BulbBlink, "0010", 100
  6088. SoloBulb4.Set BulbBlink, "0001", 100
  6089. LightShipMiddle.Set BulbBlink, "10", 150
  6090. MyDMD.QueueText "[edge3][f4][yc][xc][bf]COMBO SHOT", deNone, 1000, FALSE
  6091. MyDMD2.QueueText "[edge3][f4][yc][xc][bf]COMBO SHOT", deNone, 1000, FALSE
  6092.  
  6093. If (TimeAttack = TRUE) Then
  6094. MyDMD.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
  6095. MyDMD2.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
  6096. TATime = TATime + 10
  6097. End If
  6098.  
  6099. RampTally(CP) = 4
  6100. FalconKicker.SolenoidPulse
  6101. DOFLinx_FalconKicker() 'DOFLinx - FalconKicker
  6102. DOFLinx_Solo_Sequence() 'DOFLinx_Solo_Sequence
  6103. If (R2Out = FALSE) Then
  6104. PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
  6105. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1)
  6106. End If
  6107. PlaySound "vo_YeeHa": PlaySound "fx_FalconEject"
  6108. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 794, 835
  6109. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 794, 835
  6110. FalconComboTimer.Set TRUE, 4000
  6111. Exit Sub
  6112. End If
  6113.  
  6114. ' Han Solo will save Luke from Vader allowing an easy shot to the Death Star's exhaust port...
  6115.  
  6116. If (bMultiballMode = TRUE) Then
  6117. If (LightJackpot.State = BulbOff) Then
  6118. FalconKicker.SolenoidPulse
  6119. DOFLinx_FalconKicker() 'DOFLinx - FalconKicker
  6120. If (fpBallID = 1) Then
  6121. DOFLinx_Solo_Sequence() 'DOFLinx_Solo_Sequence
  6122. PlaySound "fx_FalconEject"
  6123. PlaySound "vo_YeeHa"
  6124. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 794, 835
  6125. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 794, 835
  6126. End If
  6127. End If
  6128. Exit Sub
  6129. End If
  6130.  
  6131. ' go straight to the video mode if Han Perk is active...
  6132.  
  6133. If (HanPerk = TRUE) Then
  6134. HanPerk = FALSE
  6135. DMDTimer.Enabled = FALSE: DMDBusy = FALSE
  6136. MyDMD.FlushQueue: MyDMD2.FlushQueue
  6137. MyDMD.QueueText "[edge3][f4][yc][xc]VIDEO MODE", deNone, 1000, TRUE
  6138. MyDMD2.QueueText "[edge3][f4][yc][xc]VIDEO MODE", deNone, 1000, TRUE
  6139. EffectMusic 1, FadeOutAndPause, 0, 0
  6140. PlaySound "fx_Beeps"
  6141. PlaySound "vo_HoldThemOff"
  6142. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  6143. NewMovie.Frame 318: NewMovieHUD.Frame 318
  6144. VMStart.Set TRUE, 1600
  6145. Exit Sub
  6146. End If
  6147.  
  6148. If (RampTally(CP) = 4) Then
  6149. DMDTimer.Enabled = FALSE: DMDBusy = FALSE
  6150. MyDMD.FlushQueue: MyDMD2.FlushQueue
  6151. MyDMD.QueueText "[edge3][f4][yc][xc][bf]LEVEL UP", deNone, 1000, FALSE
  6152. MyDMD2.QueueText "[edge3][f4][yc][xc][bf]LEVEL UP", deNone, 1000, FALSE
  6153. If (TimeAttack = TRUE) Then
  6154. MyDMD.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1500, TRUE
  6155. MyDMD2.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1500, TRUE
  6156. TATime = TATime + 15
  6157. TurnOffBackBoxLights()
  6158. FalconKicker.SolenoidPulse
  6159. DOFLinx_FalconKicker() 'DOFLinx - FalconKicker
  6160. DOFLinx_Solo_Sequence() 'DOFLinx_Solo_Sequence
  6161. PlaySound "fx_FalconEject"
  6162. If (R2Out = FALSE) Then
  6163. PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
  6164. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1)
  6165. End If
  6166. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 138, 158
  6167. HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 138, 158
  6168. FalconComboTimer.Set TRUE, 4000
  6169. Else
  6170. MyDMD.QueueText "[edge3][f4][yc][xc]VIDEO MODE", deFlip, 2000, TRUE
  6171. MyDMD2.QueueText "[edge3][f4][yc][xc]VIDEO MODE", deFlip, 2000, TRUE
  6172. EffectMusic 1, FadeOutAndPause, 0, 0
  6173. PlaySound "fx_Beeps"
  6174. PlaySound "vo_HoldThemOff"
  6175. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  6176. NewMovie.Frame 318: NewMovieHUD.Frame 318
  6177. VMStart.Set TRUE, 1600
  6178. End If
  6179. Else
  6180. TurnOffBackBoxLights()
  6181. FalconKicker.SolenoidPulse
  6182. PlaySound "fx_FalconEject"
  6183. If (R2Out = FALSE) Then
  6184. PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
  6185. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1)
  6186. End If
  6187. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 138, 158
  6188. HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 138, 158
  6189. FalconComboTimer.Set TRUE, 4000
  6190. End If
  6191. End Sub
  6192.  
  6193.  
  6194.  
  6195. Sub FalconTimer_Expired()
  6196. FalconTimer.Enabled = FALSE
  6197. PlaySound "fx_FalconEject"
  6198. FalconKicker.SolenoidPulse
  6199. DOFLinx_FalconKicker() 'DOFLinx - FalconKicker
  6200. DOFLinx_Solo_Sequence() 'DOFLinx_Solo_Sequence
  6201. End Sub
  6202.  
  6203.  
  6204.  
  6205. Sub FalconComboTimer_Expired()
  6206. FalconComboTimer.Enabled = FALSE
  6207. End Sub
  6208.  
  6209.  
  6210.  
  6211. Sub VMStart_Expired()
  6212. VMStart.Enabled = FALSE
  6213. VMode = TRUE
  6214. DOFLinx_Falcon_VideoMode_Start() 'DOFLinx_Falcon_VideoMode_Start
  6215. PlayMusic 2, "Music_VMStart"
  6216. PlaySound "fx_TIEAttacks"
  6217. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  6218. NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
  6219. NewMovie.Frame 170, 316: NewMovieHUD.Frame 170, 316
  6220. QFire = 0: Hit = 0
  6221. FalconFire.Set TRUE, 2500
  6222. VMEnd.Set TRUE, 12300
  6223. End Sub
  6224.  
  6225.  
  6226.  
  6227.  
  6228. Sub FalconFire_Expired()
  6229. FalconFire.Enabled = FALSE
  6230. PlaySound "fx_ShortBeep"
  6231. MissFire.Set TRUE, QTE(CP)
  6232. Select Case RandomNumber(2)
  6233. Case 1:
  6234. FireL = TRUE: FireR = FALSE
  6235. DOFLinx_Falcon_FireL() 'DOFLinx_Falcon_FireL
  6236. MyDMD.Text = "[edge3][f4][yc][xc][bf]< FIRE "
  6237. MyDMD2.Text = "[edge3][f4][yc][xc][bf]< FIRE "
  6238. Case 2:
  6239. FireR = TRUE: FireL = FALSE
  6240. DOFLinx_Falcon_FireR() 'DOFLinx_Falcon_FireR
  6241. MyDMD.Text = "[edge3][f4][yc][xc][bf] FIRE >"
  6242. MyDMD2.Text = "[edge3][f4][yc][xc][bf] FIRE > "
  6243. End Select
  6244. End Sub
  6245.  
  6246.  
  6247.  
  6248. Sub MissFire_Expired()
  6249. MissFire.Enabled = FALSE
  6250. FireL = FALSE: FireR = FALSE
  6251. VMEnd.Enabled = FALSE
  6252. Select Case RandomNumber(2)
  6253. Case 1: PlaySound "vo_Missed"
  6254. Case 2: PlaySound "vo_TooLate": VaderScoreLight.FlashForMs 600, 600, VaderScoreLight.State
  6255. End Select
  6256. DOFLinx_Falcon_Fire_Miss() 'DOFLinx_Falcon_Fire_Miss
  6257. MyDMD.Text = "[edge3][f4][yc][xc]MISS"
  6258. MyDMD2.Text = "[edge3][f4][yc][xc]MISS"
  6259. NewMovie.Frame 319: NewMovieHUD.Frame 319
  6260. MovieTimer.Set TRUE, 1000
  6261. FalconTimer.Set TRUE, 1000
  6262. StopMusic 2
  6263. EffectMusic 1, PlayAndFadeIn, (vol), 100
  6264. End Sub
  6265.  
  6266.  
  6267.  
  6268. Sub VMEnd_Expired()
  6269. VMEnd.Enabled = FALSE
  6270. MissFire.Enabled = FALSE
  6271. AddScore(350000)
  6272. MyDMD.QueueText "[edge3][f4][yc][xc]GREAT JOB", deNone, 800, FALSE
  6273. MyDMD2.QueueText "[edge3][f4][yc][xc]GREAT JOB", deNone, 800, FALSE
  6274. MyDMD.QueueText "[edge3][f4][yc][xc][bf]350,000", deFlip, 1000, TRUE
  6275. MyDMD2.QueueText "[edge3][f4][yc][xc][bf]350,000", deFlip, 1000, TRUE
  6276. PlaySound "vo_WeDidIt"
  6277. DOFLinx_VideoMode_Won() 'DOFLinx_VideoMode_Won
  6278. NewMovie.UpdateInterval = 200: NewMovieHUD.UpdateInterval = 200
  6279. NewMovie.Frame 320, 321, 320: NewMovieHUD.Frame 320, 321, 320
  6280. MovieTimer.Set TRUE, 2000
  6281. FalconTimer.Set TRUE, 2000
  6282. StopMusic 2
  6283. EffectMusic 1, PlayAndFadeIn, vol, 100
  6284. QTE(CP) = QTE(CP) - 10
  6285. End Sub
  6286.  
  6287.  
  6288.  
  6289. ' Mr John Williams, you are a god amongst men...
  6290.  
  6291. Sub RestartMusic()
  6292. If (bPadawanMode(CP) = TRUE) Then PlayMusic 1, "Music_Mode2", TRUE, Vol: Exit Sub
  6293. If (bKnightMode(CP) = TRUE) Then PlayMusic 1, "Music_Mode3", TRUE, Vol: Exit Sub
  6294. If (bMasterMode(CP) = TRUE) Then PlayMusic 1, "Music_Mode6", TRUE, Vol: Exit Sub
  6295. If (bYodaMode(CP) = TRUE) Then PlayMusic 1, "Music_Mode5", TRUE, Vol: Exit Sub
  6296. If (bSkywalker(CP) = TRUE) Then PlayMusic 1, "Music_Mode7", TRUE, Vol: Exit Sub
  6297. PlayMusic 1, "Music_Mode1", TRUE, Vol
  6298. End Sub
  6299.  
  6300.  
  6301.  
  6302.  
  6303.  
  6304.  
  6305. ' **************************************
  6306. ' ** **
  6307. ' ** SOLO RAMP TRIGGER **
  6308. ' ** **
  6309. ' **************************************
  6310.  
  6311. ' The Falcon Ramp trigger which lights a S-O-L-O letter.
  6312. ' Complete S-O-L-O to gain level rewards.
  6313.  
  6314.  
  6315. Sub SoloRampTrigger_Hit()
  6316.  
  6317. set LastSwitchHit = SoloRampTrigger
  6318.  
  6319. If (fpTilted = TRUE) Then Exit Sub
  6320.  
  6321. If (VictoryLap = TRUE) Then Exit Sub
  6322.  
  6323. RampTally(CP) = RampTally(CP) + 1
  6324.  
  6325. If (bMultiBallMode = TRUE) Then
  6326.  
  6327. If (fpBallID = 1) Then ' silver ball only...
  6328.  
  6329. ' divert the ball into the plunger lane...
  6330. LightJackpot.State = BulbOn
  6331. DiverterGuide.Collidable = TRUE
  6332. DiverterSurface.Collidable = TRUE
  6333. RampDiverter.SolenoidOn
  6334. RampDiverter2.SolenoidOn
  6335. 'PlaySound "vo_TakeOff"
  6336. TopLeftKickerLight.State = BulbOn
  6337. FlasherLeft.FlashForMs 750, 75, BulbOff
  6338. FlasherRight.FlashForMs 750, 75, BulbOff
  6339. LightSeqPF.Play SeqDownOn, 45
  6340. DMDBusy = TRUE: DMDTimer.Set TRUE, 3000
  6341. MyDMD.QueueText "[edge3][f4][xc][yc][b]FIRE!", deNone, 3000, TRUE
  6342. MyDMD2.QueueText "[edge3][f4][xc][yc][b]FIRE!", deNone, 3000, TRUE
  6343. End If
  6344. Else
  6345. FalconFly
  6346. If (RampTally(CP) = 1) Then
  6347. SoloBulb1.FlashForMs 1500, 50, BulbOn
  6348. DMDBusy = TRUE: DMDTimer.Set TRUE, 2000
  6349. MyDMD.QueueText "[edge3][f4][yc][x40][bf]S[/bf][x56]O L O", deNone, 2000, TRUE
  6350. MyDMD2.QueueText "[edge3][f4][yc][x40][bf]S[/bf][x56]O L O", deNone, 2000, TRUE
  6351. DOFLinx_Solo_S_MX() 'DOFLinx_Solo_S_MX
  6352. End If
  6353. If (RampTally(CP) = 2) Then
  6354. SoloBulb2.FlashForMs 1500, 50, BulbOn
  6355. DMDBusy = TRUE: DMDTimer.Set TRUE, 2000
  6356. MyDMD.QueueText "[edge3][f4][yc][x40]S[x56][bf]O[/bf][x72]L O", deNone, 2000, TRUE
  6357. MyDMD2.QueueText "[edge3][f4][yc][x40]S[x56][bf]O[/bf][x72]L O", deNone, 2000, TRUE
  6358. DOFLinx_Solo_O_MX() 'DOFLinx_Solo_O_MX
  6359. End If
  6360. If (RampTally(CP) = 3) Then
  6361. SoloBulb3.FlashForMs 1500, 50, BulbOn
  6362. DMDBusy = TRUE: DMDTimer.Set TRUE, 2000
  6363. MyDMD.QueueText "[edge3][f4][yc][x40]S O[x72][bf]L[/bf][x88]O", deNone, 2000, TRUE
  6364. MyDMD2.QueueText "[edge3][f4][yc][x40]S O[x72][bf]L[/bf][x88]O", deNone, 2000, TRUE
  6365. DOFLinx_Solo_L_MX() 'DOFLinx_Solo_L_MX
  6366. End If
  6367. If (RampTally(CP) = 4) Then
  6368. SoloBulb1.Set BulbBlink, "1000", 100
  6369. SoloBulb2.Set BulbBlink, "0100", 100
  6370. SoloBulb3.Set BulbBlink, "0010", 100
  6371. SoloBulb4.Set BulbBlink, "0001", 100
  6372. LightShipMiddle.Set BulbBlink, "10", 150
  6373. DMDBusy = TRUE: DMDTimer.Set TRUE, 2000
  6374. MyDMD.QueueText "[edge3][f4][yc][xc][bf]S O L O", deNone, 2000, TRUE
  6375. MyDMD2.QueueText "[edge3][f4][yc][xc][bf]S O L O", deNone, 2000, TRUE
  6376. DOFLinx_Solo_SOLO_MX() 'DOFLinx_Solo_SOLO_MX
  6377. HologramR2D2.Frame 4: R2D2Fade.Set TRUE, 3000
  6378. End If
  6379. If (RampTally(CP) => 5) Then
  6380. SoloBulb1.State = BulbOff: SoloBulb2.State = BulbOff: SoloBulb3.State = BulbOff: SoloBulb4.State = BulbOff
  6381. RampTally (CP) = 0
  6382. LightShipMiddle.State = BulbOff
  6383. SoloTally(CP) = SoloTally(CP) + 1
  6384. CheckSoloTally()
  6385. End If
  6386. PlaySound "fx_SaberClash2"
  6387. FlasherLeft.Set BulbBlink, "101000000000", 75
  6388. FlasherLeftBulb.Set BulbBlink, "101000000000", 75
  6389. FlasherRight.Set BulbBlink, "000000101000", 75
  6390. LightSeqPF.Play SeqDownOn, 55
  6391. End If
  6392. End Sub
  6393.  
  6394.  
  6395.  
  6396. Sub CheckSoloTally()
  6397. DMDBusy = TRUE: DMDTimer.Set TRUE, 2000
  6398. If (SoloTally(CP) = 1) Then
  6399. BulbBottom.FlashForMs 1500, 100, BulbOn
  6400. If (TimeAttack = TRUE) Then
  6401. MyDMD.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
  6402. MyDMD2.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
  6403. MyDMD.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
  6404. MyDMD2.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
  6405. TATime = TATime + 15
  6406. Else
  6407. AddScore (150000)
  6408. MyDMD.QueueText "[edge3][f4][yc][xc][bf]LVL 1 - 150,000", deNone, 2000, TRUE
  6409. MyDMD2.QueueText "[edge3][f4][yc][xc][bf]LVL 1 - 150,000", deNone, 2000, TRUE
  6410. End If
  6411. PFFlash.Set TRUE, 125: FlashME = 10
  6412. End If
  6413. If (SoloTally(CP) = 2) Then
  6414. BulbMiddle.FlashForMs 1500, 100, BulbOn
  6415. If (TimeAttack = TRUE) Then
  6416. MyDMD.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
  6417. MyDMD2.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
  6418. MyDMD.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
  6419. MyDMD2.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
  6420. TATime = TATime + 15
  6421. Else
  6422. AddScore(1138000)
  6423. PlaySound "vo_Special"
  6424. MyDMD.QueueText "[edge3][f3][yc][xc][bf]LVL 2 - SPECIAL", deNone, 2000, TRUE
  6425. MyDMD2.QueueText "[edge3][f3][yc][xc][bf]LVL 2 - SPECIAL", deNone, 2000, TRUE
  6426. End If
  6427. PFFlash.Set TRUE, 125: FlashME = 10
  6428. End If
  6429. If (SoloTally(CP) = 3) Then
  6430. BulbTop.FlashForMs 1500, 100, BulbOn
  6431. If (TimeAttack = TRUE) Then
  6432. MyDMD.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
  6433. MyDMD2.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
  6434. MyDMD.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
  6435. MyDMD2.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
  6436. TATime = TATime + 15
  6437. Else
  6438. If (bExtraBallWonThisBall = FALSE) Then
  6439. AwardExtraBall()
  6440. PlaySound "vo_ExtraBall"
  6441. MyDMD.QueueText "[edge3][f3][yc][xc][bf]LVL 3 - EXTRA BALL", deNone, 2000, TRUE
  6442. MyDMD2.QueueText "[edge3][f3][yc][xc][bf]LVL 3 - EXTRA BALL", deNone, 2000, TRUE
  6443. Else
  6444. AddScore(1138000)
  6445. End If
  6446. End If
  6447. SoloTally(CP) = 0
  6448. BulbBottom.State = BulbOff: BulbMiddle.State = BulbOff: BulbTop.State = BulbOff
  6449. PFFlash.Set TRUE, 125: FlashME = 10
  6450. End If
  6451. End Sub
  6452.  
  6453.  
  6454.  
  6455. Sub Trigger19_Hit()
  6456. AllPlasOn(): TurnOnBackBoxLights()
  6457. FlasherLeft.State = BulbOff: FlasherLeftBulb.State = BulbOff
  6458. FlasherRight.State = BulbOff
  6459. End Sub
  6460.  
  6461.  
  6462. Sub Trigger30_Hit()
  6463. AllPlasOn(): TurnOnBackBoxLights()
  6464. FlasherLeft.State = BulbOff: FlasherLeftBulb.State = BulbOff
  6465. FlasherRight.State = BulbOff
  6466. DiverterGuide.Collidable = FALSE
  6467. DiverterSurface.Collidable = FALSE
  6468. RampDiverter.SolenoidOff
  6469. RampDiverter2.SolenoidOff
  6470. End Sub
  6471.  
  6472.  
  6473. Sub Trigger4_Hit()
  6474. AllPlasOn(): TurnOnBackBoxLights()
  6475. FlasherLeft.State = BulbOff: FlasherLeftBulb.State = BulbOff
  6476. Flasher2.State = BulbOff
  6477. End Sub
  6478.  
  6479.  
  6480.  
  6481.  
  6482. ' ***********************************
  6483. ' ** **
  6484. ' ** ATTACK KICKER **
  6485. ' ** **
  6486. ' ***********************************
  6487.  
  6488. ' attack bonuses - 50k, extra ball, special, bonus held.
  6489.  
  6490. ' progress resets for each new ball.
  6491.  
  6492.  
  6493. Sub AttackKicker_Hit()
  6494. 'PlaySound "fx_SolenoidHitR"
  6495. DOFLinx_AttackKicker_Hit() 'DOFLinx - AttackKicker_Hit
  6496.  
  6497. If (fpTilted = TRUE) Then EjectTimer.Set TRUE, 500: Exit Sub
  6498.  
  6499. If (VictoryLap = TRUE) Then VictoryHit(): EjectTimer.Set TRUE, 500: Exit Sub
  6500.  
  6501. ' if Rebellion Bonus is full, collect it...
  6502. CollectRebellionBonus()
  6503.  
  6504. If (LightDock.State = BulbBlink) Then
  6505. DMDBusy = TRUE: DMDTimer.Set TRUE, 2500
  6506. MyDMD.UpdateInterval = 5: MyDMD2.UpdateInterval = 5
  6507. If (Light50000Points.State = BulbBlink) Then
  6508. Light50000Points.State = BulbOn
  6509. AttackAwardLevel = 1
  6510. If (TimeAttack = TRUE) Then
  6511. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000: MusicFade(2900): PlaySound "vo_StillApproaching2"
  6512. DMDTimer.Set TRUE, 1600
  6513. MyDMD.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
  6514. MyDMD2.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
  6515. MyDMD.QueueText "[edge3][f4][yc][xc]+ 10 SECONDS", deFlip, 1000, TRUE
  6516. MyDMD2.QueueText "[edge3][f4][yc][xc]+ 10 SECONDS", deFlip, 1000, TRUE
  6517. PlaySound "fx_Beeps5": BulbBeeps.FlashForMs 1300, 75, BulbOff
  6518. TATime = TATime + 10
  6519. EjectTimer.Set TRUE, 1300
  6520. Else
  6521. AddScore(50000)
  6522. MyDMD.QueueText "[edge3][f4][yc][xc]ATTACK BONUS", deNone, 1000, FALSE
  6523. MyDMD2.QueueText "[edge3][f4][yc][xc]ATTACK BONUS", deNone, 1000, FALSE
  6524. MyDMD.QueueText "[edge3][f4][yc][xc][b]50,000", deFlip, 1500, FALSE
  6525. MyDMD2.QueueText "[edge3][f4][yc][xc][b]50,000", deFlip, 1500, FALSE
  6526. DockTimer.Set TRUE, 2300
  6527. End If
  6528. End If
  6529. If (LightSpecial.State = BulbBlink) Then
  6530. LightSpecial.State = BulbOn
  6531. AttackAwardLevel = 2
  6532. If (TimeAttack = TRUE) Then
  6533. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000: MusicFade(2900): PlaySound "vo_StillApproaching2"
  6534. DMDTimer.Set TRUE, 1600
  6535. MyDMD.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
  6536. MyDMD2.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
  6537. MyDMD.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
  6538. MyDMD2.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
  6539. PlaySound "fx_Beeps5": BulbBeeps.FlashForMs 1300, 75, BulbOff
  6540. TATime = TATime + 15
  6541. EjectTimer.Set TRUE, 1300
  6542. Else
  6543. LightSpecialL.FlashForMs 1200, 150, BulbOn
  6544. LightSpecialR.FlashForMs 1200, 150, BulbOn
  6545. MyDMD.QueueText "[edge3][f4][yc][xc]ATTACK BONUS", deNone, 1000, FALSE
  6546. MyDMD2.QueueText "[edge3][f4][yc][xc]ATTACK BONUS", deNone, 1000, FALSE
  6547. MyDMD.QueueText "[edge3][f4][yc][xc][b]SPECIAL IS LIT", deFlip, 1500, FALSE
  6548. MyDMD2.QueueText "[edge3][f4][yc][xc][b]SPECIAL IS LIT", deFlip, 1500, FALSE
  6549. DockTimer.Set TRUE, 2300
  6550. End If
  6551. End If
  6552. If (LightExtraBall.State = BulbBlink) Then
  6553. LightExtraBall.FlashForMs 1200, 150, BulbOn
  6554. AttackAwardLevel = 0
  6555. If (TimeAttack = TRUE) Then
  6556. PlaySound "vo_GreatShot"
  6557. DMDTimer.Set TRUE, 1600
  6558. MyDMD.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
  6559. MyDMD2.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
  6560. MyDMD.QueueText "[edge3][f4][yc][xc]+ 20 SECONDS", deFlip, 1000, TRUE
  6561. MyDMD2.QueueText "[edge3][f4][yc][xc]+ 20 SECONDS", deFlip, 1000, TRUE
  6562. PlaySound "fx_Beeps5": BulbBeeps.FlashForMs 1300, 75, BulbOff
  6563. TATime = TATime + 20
  6564. EjectTimer.Set TRUE, 1300
  6565. Else
  6566. If (bExtraBallWonThisBall = FALSE) Then
  6567. AwardExtraBall()
  6568. Else
  6569. AddScore(1138000)
  6570. End If
  6571. MyDMD.QueueText "[edge3][f4][yc][xc]ATTACK BONUS", deNone, 1000, FALSE
  6572. MyDMD2.QueueText "[edge3][f4][yc][xc]ATTACK BONUS", deNone, 1000, FALSE
  6573. MyDMD.QueueText "[edge3][f4][yc][xc][b]EXTRA BALL", deFlip, 1500, FALSE
  6574. MyDMD2.QueueText "[edge3][f4][yc][xc][b]EXTRA BALL", deFlip, 1500, FALSE
  6575. DockTimer.Set TRUE, 2300
  6576. End If
  6577. End If
  6578.  
  6579. TIETally(CP) = TIETally (CP) + 1: CheckTIETally()
  6580.  
  6581. If (TimeAttack = TRUE) Then Exit Sub
  6582.  
  6583. AllPlasOff(): TurnOffBackBoxLights()
  6584. LightSeqPF.Play SeqBlinking, , 4, 125
  6585.  
  6586. If (bMultiballMode = FALSE) Then
  6587.  
  6588. Select Case RandomNumber(2)
  6589. Case 1:
  6590. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  6591. NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
  6592. NewMovie.Frame 449, 484: NewMovieHUD.Frame 449, 484
  6593. PlaySound "fx_AttackHitGS"
  6594. MovieTimer.Set TRUE, 2300
  6595. TieFighter_Explosion
  6596. Case 2:
  6597. NewMovie.Frame 1: NewMovieHUD.Frame 1
  6598. MovieTimer.Enabled = FALSE
  6599. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 511, 546
  6600. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 511, 546
  6601. TieFighter_Explosion
  6602. Select Case RandomNumber(4)
  6603. Case 1: PlaySound "fx_AttackHitGS": DOFLinx_Attack_Kicker_XWingBlast_Explosion() 'DOFLinx_Attack_Kicker_XWingBlast_Explosion
  6604. Case 2: PlaySound "fx_AttackHitGS2": DOFLinx_Attack_Kicker_XWingBlast_Explosion() 'DOFLinx_Attack_Kicker_XWingBlast_Explosion
  6605. Case 3,4: PlaySound "fx_AttackHit": DOFLinx_Attack_Kicker_XWingBlast_Explosion() 'DOFLinx_Attack_Kicker_XWingBlast_Explosion
  6606. End Select
  6607. End Select
  6608.  
  6609. If (BonusHeld = FALSE) Then BonusHeld = BonusHeld - 1
  6610.  
  6611. if use_Animated_Space_Battles = true then Flasher2.FlashForMs 1200, 50, BulbOff
  6612. if use_Animated_Space_Battles = false then FlasherRight.FlashForMs 1200, 50, BulbOff
  6613.  
  6614. If (BonusHeld > 0) Then
  6615. MyDMD.QueueText "[edge3][f4][xc][yc] ", deNone, 100, TRUE
  6616. MyDMD2.QueueText "[edge3][f4][xc][yc] ", deNone, 100, TRUE
  6617. EjectTimer.Set TRUE, 2300
  6618. Else
  6619. MyDMD.QueueText "[edge3][f4][xc][yc][bf]BONUS HELD", deNone, 1200, TRUE
  6620. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]BONUS HELD", deNone, 1200, TRUE
  6621. BonusHeld = 5
  6622. HoldBonus = TRUE
  6623. EjectTimer.Set TRUE, 3500
  6624. End If
  6625. End If
  6626. Else
  6627.  
  6628. ' don't shoot this if unlit during Time Attack, it just wastes time...
  6629.  
  6630. If (TimeAttack = TRUE) Then
  6631. PlaySound "fx_Probe"
  6632. PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
  6633. DMDBusy = TRUE: DMDTimer.Set TRUE, 1000
  6634. If (TATime < 60) Then
  6635. MyDMD.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]TIME: " & TATime & " SECONDS"
  6636. MyDMD2.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]TIME: " & TATime & " SECONDS"
  6637. Else
  6638. ShowTime()
  6639. MyDMD.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]" & ShowMin & " MIN: " & ShowSec & " SECS"
  6640. MyDMD2.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]" & ShowMin & " MIN: " & ShowSec & " SECS"
  6641. End If
  6642. EjectTimer.Set TRUE, 1200
  6643. Exit Sub
  6644. End If
  6645.  
  6646. If (bMultiballMode = FALSE) Then
  6647. AttackBonus = AttackBonus + 2500
  6648. AllPlasOff(): TurnOffBackBoxLights()
  6649. AddScore(AttackBonus)
  6650. If (HoldBonus = FALSE) Then
  6651. BonusHeld = BonusHeld - 1
  6652. If (BonusHeld <= 0) Then
  6653. BonusHeld = 5
  6654. EffectMusic 1, FadeOutAndPause, 0, 50: MusicResume2.Set TRUE, 2000
  6655. PlaySound "vo_Held"
  6656. DMDTimer.Set TRUE, 2500
  6657. MyDMD.QueueText "[edge3][f4][xc][yc][bf]BONUS HELD", deNone, 1200, FALSE
  6658. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]BONUS HELD", deNone, 1200, FALSE
  6659. MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(AttackBonus, 0, -1, 0, -1), deNone, 1000, TRUE
  6660. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(AttackBonus, 0, -1, 0, -1), deNone, 1000, TRUE
  6661. HoldBonus = TRUE
  6662. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 190, 191, 190
  6663. HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 190, 191, 190
  6664. MovieTimer.Set TRUE, 1500
  6665. EjectTimer.Set TRUE, 2000
  6666. Else
  6667. LightSeqPF.Play SeqBlinking, , 4, 125
  6668. FlasherRight.FlashForMs 1000, 50, BulbOff
  6669. If (MovieTimer.Enabled = FALSE) Then
  6670. NewMovie.Frame 1: NewMovieHUD.Frame 1
  6671. Select Case TIEPlay
  6672. Case 1:
  6673. PlaySound "fx_TIEAttacks8"
  6674. TieFighter_Move
  6675. MovieTimer.Enabled = FALSE
  6676. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 681, 702
  6677. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 681, 702
  6678. TIEPlay = 2
  6679. Case 2:
  6680. PlaySound "fx_TIEAttacks8"
  6681. TieFighter_Move
  6682. PlaySound "vo_WatchIt"
  6683. MovieTimer.Enabled = FALSE
  6684. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 939, 962
  6685. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 939, 962
  6686. TIEPlay = 3
  6687. Case 3:
  6688. PlaySound "fx_TIEAttacks8"
  6689. TieFighter_Move
  6690. MovieTimer.Enabled = FALSE
  6691. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 703, 720
  6692. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 703, 720
  6693. TIEPlay = 4
  6694. Case 4:
  6695. FlasherRight.Set BulbBlink, "01010001000000111000111000", 50
  6696. PlaySound "fx_TIEAttacks6"
  6697. TieFighter_Move
  6698. End Select
  6699. Else
  6700. FlasherRight.Set BulbBlink, "01010001000000111000111000", 50
  6701. PlaySound "fx_TIEAttacks7"
  6702. TieFighter_Move
  6703. End If
  6704.  
  6705. DMDTimer.Set TRUE, 3000
  6706.  
  6707. MyDMD.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6708. MyDMD2.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6709. MyDMD.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6710. MyDMD2.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6711. MyDMD.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6712. MyDMD2.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6713. MyDMD.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6714. MyDMD2.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6715. MyDMD.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6716. MyDMD2.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6717. MyDMD.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6718. MyDMD2.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6719. MyDMD.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6720. MyDMD2.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6721. MyDMD.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6722. MyDMD2.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
  6723. MyDMD.QueueText "[edge3][f4][xc][yc]BONUS HELD IN " & BonusHeld, deNone, 1000, FALSE
  6724. MyDMD2.QueueText "[edge3][f4][xc][yc]BONUS HELD IN " & BonusHeld, deNone, 1000, FALSE
  6725. MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(AttackBonus, 0, -1, 0, -1), deNone, 1500, TRUE
  6726. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(AttackBonus, 0, -1, 0, -1), deNone, 1500, TRUE
  6727. EjectTimer.Set TRUE, 1000
  6728. End If
  6729. Else
  6730. LightSeqPF.Play SeqBlinking, , 4, 125
  6731. FlasherRight.FlashForMs 1000, 50, BulbOff
  6732. PlaySound "fx_BallEject2", 0.8
  6733. DMDTimer.Set TRUE, 2300
  6734. MyDMD.QueueText "[edge3][f4][xc][yc][bf]ATTACK BONUS", deNone, 800, FALSE
  6735. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]ATTACK BONUS", deNone, 800, FALSE
  6736. MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(AttackBonus, 0, -1, 0, -1), deNone, 1500, TRUE
  6737. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(AttackBonus, 0, -1, 0, -1), deNone, 1500, TRUE
  6738. EjectTimer.Set TRUE, 800
  6739. End If
  6740. End If
  6741. End If
  6742.  
  6743. If (bMultiballMode = TRUE) Then
  6744. PlaySound "fx_Explode2"
  6745. EjectTimer.Set TRUE, 500
  6746. Else
  6747. If (R2Out = FALSE) Then
  6748. PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1200
  6749. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, -25, 1, 1.2)
  6750. End If
  6751. End If
  6752. End Sub
  6753.  
  6754.  
  6755.  
  6756. Sub DockTimer_Expired()
  6757. DockTimer.Enabled = FALSE
  6758. Select Case AttackAwardLevel
  6759. Case 1:
  6760. MovieOverlay.UpdateInterval = 80: MovieOverlay.Frame 551, 552, 551
  6761. HUDOverLay.UpdateInterval = 80: HUDOverLay.Frame 551, 552, 551
  6762. If (bMultiballMode = FALSE) Then
  6763. DOFLinx_50000_MX() 'DOFLinx_50000_MX
  6764. MusicFade(800): PlaySound "vo_50k"
  6765. 'PlaySound "vo_Why50K"
  6766. End If
  6767. Case 2:
  6768. MovieOverlay.UpdateInterval = 80: MovieOverlay.Frame 549, 550, 549
  6769. If (bMultiballMode = FALSE) Then MusicFade(600): PlaySound "vo_Special", 0.8
  6770. DOFLinx_Special_MX() 'DOFLinx_Special_MX
  6771. HUDOverLay.UpdateInterval = 80: HUDOverLay.Frame 549, 550, 549
  6772. Case 0:
  6773. MovieOverlay.UpdateInterval = 80:MovieOverlay.Frame 547, 548, 547
  6774. If (bMultiballMode = FALSE) Then MusicFade(800): PlaySound "vo_ExtraBall", 0.8
  6775. DOFLinx_ExtraBall_MX() 'DOFLinx_ExtraBall_MX
  6776. HUDOverLay.UpdateInterval = 80: HUDOverLay.Frame 547, 548, 547
  6777. End Select
  6778. MovieTimer.Set TRUE, 1500
  6779. End Sub
  6780.  
  6781.  
  6782.  
  6783.  
  6784.  
  6785. Sub EjectTimer_Expired()
  6786. EjectTimer.Enabled = False
  6787. AttackKicker.SolenoidPulse
  6788. DOFLinx_AttackKicker() 'DOFLinx - AttackKicker
  6789. If (fpTilted = TRUE) Then Exit Sub
  6790.  
  6791. AllPlasOn(): TurnOnBackBoxLights()
  6792. FlasherRight.Set BulbOff, "10", 125
  6793. If (R2Out = FALSE) Then
  6794. PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
  6795. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1)
  6796. End If
  6797. If (LightDock.State = BulbBlink) Then
  6798. ResetVADER()
  6799. LightDock.State = BulbOff: 'DockLight.State = BulbOff
  6800. 'If (bMultiballMode = FALSE) Then PlaySound "vo_GreatShot"
  6801. Else
  6802. 'NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  6803. 'NewMovie.UpdateInterval = 60: NewMovieHUD.UpdateInterval = 60
  6804. 'NewMovie.Frame 322, 350: NewMovieHUD.Frame 322, 350
  6805. 'MovieTimer.Set TRUE, 1200
  6806. 'PlaySound "fx_Explode"
  6807. End If
  6808. If (TimeAttack = TRUE) and (fpTilted = FALSE) Then PlaySound "fx_SmallBlaster2": LightSeqPF.Play SeqBlinking, , 1, 100
  6809. DOLFinx_AttackKicker_Explosion() 'DOLFinx_AttackKicker_Explosion
  6810. End Sub
  6811.  
  6812.  
  6813.  
  6814. Sub ResetDockLights()
  6815. LightDock.State = BulbOff
  6816. Light50000Points.State = BulbOff
  6817. LightSpecial.State = BulbOff
  6818. LightExtraBall.State = BulbOff
  6819. End Sub
  6820.  
  6821.  
  6822. Dim DoubleHit
  6823.  
  6824.  
  6825.  
  6826. ' *****************************
  6827. ' ** **
  6828. ' ** VADER KICKER **
  6829. ' ** **
  6830. ' *****************************
  6831.  
  6832. ' Darth Vader, the man himself, will join the fight in his ridiculously cool and pimped out TIE Fighter.
  6833.  
  6834. ' Keep shooting his lane to start Double Playfield Scoring for a limited time.
  6835.  
  6836. ' This shot also awards a new Jedi ranking, when lit.
  6837.  
  6838.  
  6839. Sub VaderKicker_Hit()
  6840.  
  6841. If (fpTilted = TRUE) Then KickerVUKTimer.Set TRUE, 100: Exit Sub
  6842.  
  6843. If (DoubleHit = TRUE) Then DoubleHit = FALSE: Exit Sub
  6844.  
  6845. If (VictoryLap = TRUE) Then VictoryHit(): KickerVUK.SolenoidPulse: DOFLinx_KickerVUK(): DOFLinx_KickerVUK_MX(): Exit Sub
  6846.  
  6847. If (BallsInLock =>1) Then
  6848. MyDMD.Text = "[f2][edge3][yc][xc][b]KICKER IN USE"
  6849. MyDMD2.Text = "[f2][edge3][yc][xc][b]KICKER IN USE"
  6850. Exit Sub
  6851. End If
  6852.  
  6853. If (R2Out = FALSE) Then
  6854. PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1200
  6855. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 25, 1, 1.2)
  6856. End If
  6857.  
  6858. ' if Empire Bonus is full, collect it...
  6859. CollectEmpireBonus()
  6860.  
  6861. IncrementEmpireBonus(10)
  6862. PlaySound "fx_SolenoidHitL"
  6863. DOFLinx_VaderKicker_Hit() 'DOFLinx - VaderKicker Hit
  6864. EjectBall = TRUE
  6865.  
  6866. If (LightLeftLock.State = BulbBlink) Then ' final confrontation with Vader...
  6867. bMultiBallMode = TRUE
  6868.  
  6869. ' change the camera angle...
  6870. CameraView_Mutliball
  6871.  
  6872. PlayMusic 1, "Music_Final", TRUE, Vol
  6873.  
  6874. If (TimeAttack = FALSE) Then
  6875. PlaySound "vo_30SecsLeft"
  6876. DOFLinx_DeathStar_MB_Start() 'DOFLinx_DeathStar_MB_Start
  6877. DeathStarTimer2.Enabled = TRUE: TenSecondTimer.Set TRUE, 20000
  6878. CountDown.FadeIn: Countdown.Frame 1, 31
  6879. Else
  6880. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
  6881. MusicFade(1500): PlaySound "vo_FaceHim": VaderScoreLight.FlashForMs 1500, 1500, VaderScoreLight.State
  6882. End If
  6883.  
  6884. MovieOverlay.UpdateInterval = 100: HUDOverLay.UpdateInterval = 100
  6885. MovieOverlay.Frame 319, 337: HUDOverlay.Frame 319, 337
  6886. MyDMD.QueueText "[f3][edge3][yc][xc][bf]DESTROY DEATH STAR!", deNone, 1500, FALSE
  6887. MyDMD2.QueueText "[f3][edge3][yc][xc][bf]DESTROY DEATH STAR!", deNone, 1500, FALSE
  6888. MyDMD.QueueText "[f3][edge3][yc][xc][b]SHOOT SOLO LANE", deFlip, 2000, TRUE
  6889. MyDMD2.QueueText "[f3][edge3][yc][xc][b]SHOOT SOLO LANE", deFlip, 2000, TRUE
  6890. LightLeftLock.State = BulbOff
  6891. LightLeftPowerUp.State = BulbOff
  6892. BulbLeftStar1.State = BulbOn
  6893. BulbLeftStar2.State = BulbOn
  6894. BulbLeftStar3.State = BulbOn
  6895. MBDelay.Set TRUE, 2200 ' another ball is ejected and auto-fireed from the plunger lane...
  6896. DoubleHit = TRUE
  6897. EjectBall = FALSE
  6898.  
  6899. ' the ball in the Vader VUK now turns into Vader (black) and is ejected along the wire ramp...
  6900. VaderKicker.DestroyBall: DeleteTrackedBall(VaderKicker)
  6901. VaderKicker.CreateCaptiveBall 200, 200, 200, 1: AddTrackedBall(VaderKicker)
  6902.  
  6903. ' timer to eject Vader...
  6904. KickerVUKTimer.Set TRUE, 3700
  6905.  
  6906. ' Remember Luke: only you (the silver ball) can make the shot to destroy the Death Star...
  6907. Exit Sub
  6908. End If
  6909.  
  6910. If (LightLeftPowerUp.State = BulbBlink) and (bMultiballMode = FALSE) Then
  6911. LightLeftPowerUp.State = BulbOff
  6912.  
  6913. BulbLeftStar1Ext.SetLitColor 129, 223, 254
  6914. BulbLeftStar2Ext.SetLitColor 129, 223, 254
  6915. BulbLeftStar3Ext.SetLitColor 129, 223, 254
  6916. BulbLeftStar1.State = BulbOff
  6917. BulbLeftStar2.State = BulbOff
  6918. BulbLeftStar3.State = BulbOff
  6919.  
  6920. AddScore(500000)
  6921.  
  6922. AllPlasOff(): TurnOffBackBoxLights()
  6923.  
  6924. If (MovieTimer.Enabled = FALSE) Then
  6925. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  6926. NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
  6927. NewMovie.Frame 449, 484: NewMovieHUD.Frame 449, 484
  6928. PlaySound "fx_AttackHit"
  6929. Flasher2.FlashForMs 1200, 100, BulbOff
  6930. PowerMeUp.Set TRUE, 1900
  6931. TieFighter_Explosion
  6932. 'PFFlash.Set TRUE, 110: FlashME = 4
  6933. Else
  6934. PowerMeUp.Set TRUE, 50
  6935. End If
  6936. Exit Sub
  6937. End If
  6938.  
  6939. BallsInLock = BallsInLock + 1
  6940.  
  6941. If (EjectBall = TRUE) Then
  6942. dim ET
  6943. Eject = Eject + 1
  6944. VaderValue = VaderValue + 5000
  6945. AddScore(VaderValue)
  6946.  
  6947. If (Eject > 1) Then
  6948. DMDBusy = TRUE: DMDTimer.Set TRUE, 3000
  6949. MyDMD.QueueText "[edge3][f4][xc][yc][b]VADER ATTACKS", deNone, 1000, FALSE
  6950. MyDMD2.QueueText "[edge3][f4][xc][yc][b]VADER ATTACKS", deNone, 1000, FALSE
  6951. If (TimeAttack = FALSE) Then
  6952. MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(VaderValue, 0, -1, 0, -1), deNone, 2000, TRUE
  6953. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(VaderValue, 0, -1, 0, -1), deNone, 2000, TRUE
  6954. End If
  6955. End If
  6956.  
  6957. AllPlasOff(): TurnOffBackBoxLights()
  6958.  
  6959. If (bMultiballMode = FALSE) Then
  6960. MovieTimer.Enabled = FALSE: StopMovie()
  6961. If (QuoteBusy = TRUE) Then
  6962. If (Eject = 6) Then
  6963. If (TimeAttack = TRUE) Then
  6964. MyDMD.FlushQueue: MyDMD2.FlushQueue: DMDTimer.Set TRUE, 3000
  6965. MyDMD.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
  6966. MyDMD2.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
  6967. TATime = TATime + 20
  6968. Else
  6969. ScoreX = BonusMultiplier(CP)
  6970. If (BonusMultiplier(CP) = 1) Then ScoreX = 2
  6971. MyDMD.FlushQueue: MyDMD2.FlushQueue: DMDTimer.Set TRUE, 2000
  6972. MyDMD.QueueText "[edge3][f4][xc][yc][b]X " & ScoreX & " SCORING", deNone, 1000, TRUE
  6973. MyDMD2.QueueText "[edge3][f4][xc][yc][b]X " & ScoreX & " SCORING", deNone, 1000, TRUE
  6974. VaderScoreTimer.Set TRUE, 37000
  6975. VaderScoring = TRUE
  6976. VaderScoreLight.State = BulbBlink
  6977. End If
  6978. Eject = 1
  6979. End If
  6980. KickerTopLeftTimer.Set TRUE, 500
  6981. Exit Sub
  6982. End If
  6983.  
  6984. Select Case Eject
  6985. Case 1:
  6986. VaderAnimation(6)
  6987. FlasherLeft.State = BulbOn
  6988. Select Case RandomNumber(3)
  6989. Case 1: MusicFade(4900): PlaySound "vo_SmallForce2": ET = 4900: VaderScoreLight.FlashForMs 4900, 4900, VaderScoreLight.State
  6990. Case 2: MusicFade(2100): PlaySound "vo_RebelAlerted": ET = 2000: VaderScoreLight.FlashForMs 2000, 2000, VaderScoreLight.State
  6991. Case 3: MusicFade(2400): PlaySound "vo_DeployFleet": ET = 2300: VaderScoreLight.FlashForMs 2400, 2400, VaderScoreLight.State
  6992. End Select
  6993. KickerTopLeftTimer.Set TRUE, ET
  6994. Case 2:
  6995. VaderAnimation 9
  6996. FlasherLeft.State = BulbOn
  6997. Select Case RandomNumber(3)
  6998. Case 1:
  6999. PlaySound "vo_TakeThem": ET = 1000
  7000. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 609, 623
  7001. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 609, 623
  7002. Case 2:
  7003. PlaySound "vo_MainGroup": ET = 1800
  7004. Case 3:
  7005. MusicFade(1200): PlaySound "vo_ShipToShip": ET = 1400
  7006. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 444, 466
  7007. HUDOverLay.UpdateInterval = 66: HUDOverlay.Frame 444, 466
  7008. End Select
  7009. KickerTopLeftTimer.Set TRUE, ET
  7010. Case 3:
  7011. VaderAnimation(2)
  7012. FlasherLeft.State = BulbOn
  7013. Select Case RandomNumber(3)
  7014. Case 1: PlaySound "vo_AttackFormation": ET = 1000
  7015. Case 2: PlaySound "vo_CloseFormation": ET = 800
  7016. Case 3: PlaySound "vo_WantShip": ET = 1000
  7017. End Select
  7018. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 609, 623
  7019. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 609, 623
  7020. KickerTopLeftTimer.Set TRUE, ET
  7021. Case 4:
  7022. VaderAnimation(11)
  7023. KickerVUKTimer.Set TRUE, 800: FlasherLeft.State = BulbOn: PlaySound "vo_HaveYouNow"
  7024. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 609, 623
  7025. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 609, 623
  7026. Case 5:
  7027. PFFlash.Set TRUE, 110: FlashME = 0
  7028. TIElight1.Set BulbBlink, "0101", 75
  7029. TIElight2.Set BulbBlink, "0101", 75
  7030. Select Case RandomNumber(2)
  7031. Case 1:
  7032. XWing_Explosion
  7033. MovieTimer.Set TRUE, 2700
  7034. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  7035. NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
  7036. NewMovie.Frame 386, 427: NewMovieHUD.Frame 386, 427
  7037. PlaySound "vfx_VaderKill"
  7038. KickerTopLeftTimer.Set TRUE, 1500
  7039. FlasherLeft.FlashForMs 1500, 50, BulbOff
  7040. TieVaderBulb1.FlashForMs 1500, 50, BulbOff
  7041. TieVaderBulb2.FlashForMs 1500, 50, BulbOff
  7042. Case 2:
  7043. XWing_Explosion
  7044. PlaySound "fx_BallEject"
  7045. MovieTimer.Enabled = FALSE
  7046. MovieOverlay.UpdateInterval = 39: MovieOverlay.Frame 339, 405
  7047. HUDOverlay.UpdateInterval = 39: HUDOverlay.Frame 339, 405
  7048. KickerTopLeftTimer.Set TRUE, 1800
  7049. FlasherLeft.FlashForMs 1800, 50, BulbOff
  7050. TieVaderBulb1.FlashForMs 1800, 50, BulbOff
  7051. TieVaderBulb2.FlashForMs 1800, 50, BulbOff
  7052. End Select
  7053. Case 6:
  7054. If (TimeAttack = TRUE) Then
  7055. MyDMD.FlushQueue: MyDMD2.FlushQueue
  7056. MyDMD.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
  7057. MyDMD2.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
  7058. TATime = TATime + 20
  7059. Else
  7060. ScoreX = BonusMultiplier(CP)
  7061. If (BonusMultiplier(CP) = 1) Then ScoreX = 2
  7062. MyDMD.FlushQueue: MyDMD2.FlushQueue
  7063. MyDMD.QueueText "[edge3][f4][xc][yc][b]X " & ScoreX & " SCORING", deNone, 2500, TRUE
  7064. MyDMD2.QueueText "[edge3][f4][xc][yc][b]X " & ScoreX & " SCORING", deNone, 2500, TRUE
  7065. VaderScoreTimer.Set TRUE, 37000
  7066. VaderScoring = TRUE
  7067. VaderScoreLight.State = BulbBlink
  7068. End If
  7069. XWing_Explosion
  7070. KickerVUKTimer.Set TRUE, 3000
  7071. PlaySound "fx_VaderAttacks"
  7072. PlayMusic 5, "vo_Lost", FALSE, 1, 2200
  7073. MovieTimer.Enabled = FALSE
  7074. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 747, 793
  7075. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 747, 793
  7076. FlasherLeft.FlashForMs 1800, 50, BulbOff
  7077. TIElight1.Set BulbBlink, "0101", 75
  7078. TIElight2.Set BulbBlink, "0101", 75
  7079. TieVaderBulb1.FlashForMs 1800, 50, BulbOff
  7080. TieVaderBulb2.FlashForMs 1800, 50, BulbOff
  7081. PFFlash.Set TRUE, 110: FlashME = 4
  7082. Eject = 1
  7083. HologramR2D2.Frame 5: R2D2Fade.Set TRUE, 3000
  7084. End Select
  7085. Else
  7086. AddScore(VaderValue*2)
  7087. KickerVUKTimer.Set TRUE, 500: FlasherLeft.State = BulbOn
  7088. End If
  7089. End If
  7090. set LastSwitchHit = VaderKicker
  7091. End Sub
  7092.  
  7093.  
  7094.  
  7095.  
  7096. Sub PadawanTimer_Expired()
  7097. PadawanTimer.Enabled = FALSE
  7098. DOFLinx_Padawan_Powerup() 'DOFLinx_Padawan_Powerup
  7099. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 231, 232, 231: MusicFade(1200): PlaySound "vo_Padawan"
  7100. HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 231, 232, 231
  7101. MovieTimer.Set TRUE, 3000
  7102. End Sub
  7103.  
  7104.  
  7105.  
  7106. Sub JediKnightTimer_Expired()
  7107. JediKnightTimer.Enabled = FALSE
  7108. DOFLinx_Jedi_Powerup() 'DOFLinx_Jedi_Powerup
  7109. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 233, 234, 233: MusicFade(1200): PlaySound "vo_JediKnight"
  7110. HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 233, 234, 233
  7111. MovieTimer.Set TRUE, 3000
  7112. End Sub
  7113.  
  7114.  
  7115.  
  7116. Sub JediMasterTimer_Expired()
  7117. JediMasterTimer.Enabled = FALSE
  7118. DOFLinx_Jedi_Powerup() 'DOFLinx_Jedi_Powerup
  7119. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 235, 236, 235: MusicFade(1200): PlaySound "vo_JediMaster"
  7120. HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 235, 236, 235
  7121. MovieTimer.Set TRUE, 3000
  7122. End Sub
  7123.  
  7124.  
  7125.  
  7126. Sub JodaTimer_Expired()
  7127. JodaTimer.Enabled = FALSE
  7128. DOFLinx_Yoda_Powerup() 'DOFLinx_Yoda_Powerup
  7129. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 194,195,194
  7130. HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 194, 195, 194
  7131. MovieTimer.Set TRUE, 3000
  7132. MusicFade(1200): PlaySound "vo_YodaPowerUp": PlayMusic 3, "vo_YodaQ3", FALSE, 1, 1200
  7133. End Sub
  7134.  
  7135.  
  7136.  
  7137. Sub PowerMeUp_Expired()
  7138. PowerMeUp.Enabled = FALSE
  7139.  
  7140. If (fpTilted = TRUE) Then KickerVUKTimer.Set 100: Exit Sub
  7141.  
  7142. AllPlasOff()
  7143.  
  7144. FlasherLeft.State = BulbOn
  7145. EnableKickback()
  7146. NewMovie.FadeOut: NewMovieHUD.FadeOut
  7147. NewMovie.Frame 1: NewMovieHUD.Frame 1
  7148.  
  7149. ' now it's on baby, take on Vader...
  7150.  
  7151. If (bYodaMode(CP) = TRUE) Then
  7152. bYodaMode(CP) = FALSE
  7153. bSkyWalker(CP) = TRUE
  7154. TgtRotate.Enabled = FALSE
  7155. DMDBusy = TRUE: DMDTimer.Set TRUE, 3000
  7156. MyDMD.QueueText "[edge3][f4][xc][yc]JEDI POWER UP", deNone, 1000, FALSE
  7157. MyDMD2.QueueText "[edge3][f4][xc][yc]JEDI POWER UP", deNone, 1000, FALSE
  7158. MyDMD.QueueText "[edge3][f4][xc][yc][b]SKYWALKER", deNone, 1000, TRUE
  7159. MyDMD2.QueueText "[edge3][f4][xc][yc][b]SKYWALKER", deNone, 1000, TRUE
  7160. LightLeftLock.Set BulbBlink, "10", 100
  7161. LightLeftPowerUp.Set BulbBlink, "00010", 125
  7162. BulbLeftStar1.Set BulbBlink, "10000", 125
  7163. BulbLeftStar2.Set BulbBlink, "01000", 125
  7164. BulbLeftStar3.Set BulbBlink, "00100", 125
  7165. PlayMusic 1, "Music_Mode7", TRUE, Vol
  7166. MusicFade(3000): PlayMusic 2, "vo_PowerfulSkywalker", FALSE, 1, 500
  7167. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000
  7168. VaderScoreLight.FlashForMs 3000, 3000, VaderScoreLight.State
  7169. ForcePower(CP) = 1
  7170. KickerVUKTimer.Set TRUE, 3000
  7171. Exit Sub
  7172. End If
  7173.  
  7174. VaderAnimation(3)
  7175. PlaySound "PowerUp"
  7176. DMDBusy = TRUE: DMDTimer.Set TRUE, 2000
  7177. MyDMD.QueueText "[edge3][f4][xc][yc][b]JEDI POWER UP", deNone, 2000, FALSE
  7178. MyDMD2.QueueText "[edge3][f4][xc][yc][b]JEDI POWER UP", deNone, 2000, FALSE
  7179. If (bPadawanMode(CP) = FALSE) Then
  7180. ResetDropTargets()
  7181. PlayMusic 1, "Music_Mode2", TRUE, Vol
  7182. bPadawanMode(CP) = TRUE: PadawanTimer.Set TRUE, 300: KickerVUKTimer.Set TRUE, 1800
  7183. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  7184. Else
  7185. If (bKnightMode(CP) = FALSE) Then
  7186. ResetDropTargets()
  7187. PlayMusic 1, "Music_Mode3", TRUE, Vol
  7188. bKnightMode(CP) = TRUE: JediKnightTimer.Set TRUE, 300: KickerVUKTimer.Set TRUE, 1600
  7189. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  7190. Else
  7191. If (bMasterMode(CP) = FALSE) Then
  7192. ResetDropTargets()
  7193. PlayMusic 1, "Music_Mode6", TRUE, Vol
  7194. bMasterMode(CP) = TRUE: JediMasterTimer.Set TRUE, 300: KickerVUKTimer.Set TRUE, 2000
  7195. ForcePower(CP) = 1
  7196. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  7197. Else
  7198. If (bYodaMode(CP) = FALSE) Then
  7199. PlayMusic 1, "Music_Mode5", TRUE, Vol
  7200. bYodaMode(CP) = TRUE: JodaTimer.Set TRUE, 300: KickerVUKTimer.Set TRUE, 3000
  7201. ForcePower(CP) = 1
  7202. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000
  7203. End If
  7204. End If
  7205. End If
  7206. End If
  7207. SetupTableMode()
  7208. End Sub
  7209.  
  7210.  
  7211.  
  7212.  
  7213. Sub KickerTopLeftTimer_Expired()
  7214. BallsInLock = 0
  7215. If (bMultiBallMode = FALSE) Then
  7216. If (Eject = 1) or (Eject = 2) or (Eject = 3) Then
  7217. PlaySound "fx_TIEFlyby2", 0.8
  7218. MovieTimer.Set TRUE, 1000
  7219. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 467, 482
  7220. HUDOverLay.UpdateInterval = 66: HUDOverLay.Frame 467, 482
  7221. End If
  7222. End If
  7223.  
  7224. If (R2Out = FALSE) Then
  7225. PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
  7226. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1)
  7227. End If
  7228.  
  7229. FlasherLeft.State = BulbOff
  7230. AllPlasOn(): TurnOnBackBoxLights()
  7231. KickerTopLeftTimer.Enabled = FALSE
  7232. VaderKicker.SolenoidPulse
  7233. DOFLinx_VaderKicker() 'DOFLinx - VaderKicker
  7234. TIElight1.State = BulbOff
  7235. TIElight2.State = BulbOff
  7236. TieVaderBulb1.State = BulbOff
  7237. TieVaderBulb2.State = BulbOff
  7238. End Sub
  7239.  
  7240.  
  7241.  
  7242.  
  7243. Sub FirstBallDelayTimer_Expired()
  7244. FirstBallDelayTimer.Enabled = FALSE
  7245. dim i
  7246. dim b
  7247. If (RewardBALL = TRUE) Then
  7248. b = 4
  7249. Else
  7250. b = 3
  7251. End If
  7252. For i = 1 To 4
  7253. BonusMultiplier(i) = 1
  7254. BallsRemaining(i) = b
  7255. ExtraBallsAwards(i) = 0
  7256. Next
  7257. DSSpin.Set TRUE, 1000
  7258. RewardBALL = FALSE
  7259. ResetForNewPlayerBall()
  7260. CreateNewBall()
  7261. End Sub
  7262.  
  7263.  
  7264.  
  7265.  
  7266. Sub KickerVUKTimer_Expired()
  7267. KickerVUKTimer.Enabled = FALSE
  7268. KickerVUK.SolenoidPulse
  7269. DOFLinx_KickerVUK() 'DOFLinx - KickerVUK
  7270. If (fpTilted = TRUE) Then Exit Sub
  7271.  
  7272. TIElight1.State = BulbOff
  7273. TIElight2.State = BulbOff
  7274. TieVaderBulb1.State = BulbOff
  7275. TieVaderBulb2.State = BulbOff
  7276. If (bMultiBallMode = TRUE) Then
  7277. PlaySound "fx_TIEFlyby2"
  7278. DOFLinx_KickerVUK_MX() 'DOFLinx_KickerVUK_MX
  7279. ' show Vader in his fighter....he's coming to get ya!!....
  7280. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 444, 466
  7281. HUDOverLay.UpdateInterval = 66: HUDOverlay.Frame 444, 466
  7282. Else
  7283. If (Eject = 4) Then
  7284. XWing_Explosion
  7285. TieVaderBulb1.FlashForMs 1800, 50, BulbOff
  7286. TieVaderBulb2.FlashForMs 1800, 50, BulbOff
  7287. PlaySound "fx_TIEAttacks4"
  7288. DOFLinx_TIEAttacks4() 'DOFLinx_TIEAttacks4
  7289. MovieTimer.Set TRUE, 2500
  7290. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 747, 793
  7291. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 747, 793
  7292. FlasherLeft.FlashForMs 1800, 50, BulbOff
  7293. PFFlash.Set TRUE, 110: FlashME = 2
  7294. BallsInLock = 0
  7295. Exit Sub
  7296. End If
  7297. If (Eject = 1) Then PlaySound "fx_TIEFlyby2", 0.6
  7298. DOFLinx_KickerVUK_MX() 'DOFLinx_KickerVUK_MX
  7299. End If
  7300.  
  7301. If (R2Out = FALSE) Then
  7302. PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
  7303. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1)
  7304. End If
  7305.  
  7306. BallsInLock = 0
  7307. PlaySound "RightBlast"
  7308. PFFlash.Set TRUE, 100: FlashME = 12
  7309. FlasherLeft.FlashForMs 500, 75, BulbOff
  7310. FlasherLeftBulb.FlashForMs 500, 75, BulbOff
  7311. End Sub
  7312.  
  7313.  
  7314. Sub MBDelay_Expired()
  7315. MBDelay.Enabled = FALSE
  7316. CreateNewBall()
  7317. End Sub
  7318.  
  7319.  
  7320.  
  7321. Sub VaderScoreTimer_Expired()
  7322. VaderScoreTimer.Enabled = FALSE
  7323. VaderScoring = FALSE
  7324. ScoreX = 1
  7325. VaderScoreLight.State = BulbOff
  7326. End Sub
  7327.  
  7328.  
  7329.  
  7330.  
  7331. ' *********************************
  7332. ' ** **
  7333. ' ** DEATH STAR KICKER **
  7334. ' ** **
  7335. ' *********************************
  7336.  
  7337. ' The Death Star kicker has multiple functions in the game:
  7338.  
  7339. ' - advances the Red Squadron bonus, up to an Extra Ball
  7340. ' - collects the Skill Shot bonus
  7341. ' - fires a torpedo at the Death Star's exhaust port to destroy it (harder shot)
  7342. ' - stops the ball for R2-D2 interaction, then ejects into rollover lanes
  7343.  
  7344.  
  7345. Sub DeathStarKicker_Hit()
  7346.  
  7347. If (fpTilted = TRUE) and (DeathStarTimer.Enabled = FALSE) Then
  7348. KickerTopRightTimer.Set TRUE, 500
  7349. Exit Sub
  7350. End If
  7351.  
  7352. If (DoubleHit = TRUE) Then DoubleHit = FALSE: Exit Sub ' ignore if hit twice...
  7353.  
  7354. If (VictoryLap = TRUE) Then VictoryHit(): KickerTopRightTimer.Set TRUE, 500: Exit Sub
  7355.  
  7356. 'PlaySound "fx_SolenoidHitL"
  7357. DOFLinx_DeathStarKicker_Hit() 'DOFLinx - DeathStarKicker Hit
  7358.  
  7359. ' get the SKILL SHOT...
  7360.  
  7361. If (SSWin = TRUE) Then
  7362. PlaySound "fx_Alarm"
  7363. If (R2Out = FALSE) Then
  7364. PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
  7365. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 25, 1, 1)
  7366. End If
  7367. Select Case RandomNumber(3)
  7368. Case 1:
  7369. Select Case RandomNumber(2)
  7370. Case 1: PlaySound "fx_SSHit2": DOFLinx_Skillshot_Hit() 'DOFLinx_Skillshot_Hit
  7371. Case 2: PlaySound "fx_SSHit3": DOFLinx_Skillshot_Hit() 'DOFLinx_Skillshot_Hit
  7372. End Select
  7373. MovieTimer.Enabled = FALSE
  7374. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 893, 938
  7375. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 893, 938
  7376. KickerTopRightTimer.Set TRUE, 2000
  7377. Case 2:
  7378. MovieTimer.Enabled = FALSE
  7379. PlaySound "fx_SSHit4"
  7380. MovieOverlay.UpdateInterval = 67:MovieOverlay.frame 202, 216
  7381. HUDOverlay.UpdateInterval = 67: HUDOverlay.frame 202, 216
  7382. KickerTopRightTimer.Set TRUE, 1200
  7383. Case 3:
  7384. MovieTimer.Enabled = FALSE
  7385. PlaySound "fx_SSHit5"
  7386. MovieOverlay.UpdateInterval = 67:MovieOverlay.frame 171, 189
  7387. HUDOverlay.UpdateInterval = 67: HUDOverlay.frame 171, 189
  7388. KickerTopRightTimer.Set TRUE, 1200
  7389. End Select
  7390. HologramR2D2.Frame 11: R2D2Fade.Set TRUE, 2000
  7391. SSValue(CP) = SSValue(CP) + 100000
  7392. AddScore(SSValue(CP))
  7393. MyDMD.QueueText "[edge3][f4][xc][yc][bf]SKILL SHOT", deNone, 800, FALSE
  7394. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]SKILL SHOT", deNone, 800, FALSE
  7395. MyDMD.QueueText "[edge3][f4][xc][yc]" & FormatNumber(SSValue(CP), 0, -1, 0, -1), deNone, 1500, TRUE
  7396. MyDMD2.QueueText "[edge3][f4][xc][yc]" & FormatNumber(SSValue(CP), 0, -1, 0, -1), deNone, 1500, TRUE
  7397. FlashMe = 10: PFFlash.Set TRUE, 175
  7398. DSSpot1.FlashForMs 1200, 1200, BulbOff
  7399. DSSpot2.FlashForMs 1200, 1200, BulbOff
  7400. BSTime = BSTime + 1000
  7401. If (RewardSHOTS = TRUE) Then
  7402. DSHit = 2
  7403. Else
  7404. DSHit = 1
  7405. End If
  7406. Exit Sub
  7407. End If
  7408.  
  7409. ' first hit after multiball starts...
  7410.  
  7411. If (bMultiballMode = TRUE) and (LightJackpot.State = BulbOff) Then
  7412. If (QuoteBusy = FALSE) Then
  7413. Select Case RandomNumber(4)
  7414. Case 1: PlaySound "vo_LeaderOnBack"
  7415. Case 2: PlaySound "vo_WhatsWrong2"
  7416. Case 3: PlaySound "vo_R2Power"
  7417. Case 4: PlaySound "vo_InRange": MovieOverlay.UpdateInterval = 98: MovieOverlay.Frame 319, 338: HUDOverLay.UpdateInterval = 98: HUDOverlay.Frame 319, 338
  7418. End Select
  7419. Else
  7420. PlaySound "fx_Beeps5": BulbBeeps.FlashForMs 1300, 75, BulbOff
  7421. End If
  7422. KickerTopRightTimer.Set TRUE, 2000
  7423. KickerVUKTimer.Set TRUE, 1000
  7424. Exit Sub
  7425. End If
  7426.  
  7427. ' quickly swap the ball in the Death Star saucer...this will be released for the Victory Lap mulitball...
  7428. If (fpBallID = 1) and (bMultiballMode = TRUE) and (LightJackpot.State = BulbOn) Then
  7429. DoubleHit = TRUE
  7430. DeathStarKicker.DestroyBall: DeleteTrackedBall(DeathStarKicker): DeathStarKicker.CreateBall: AddTrackedBall(DeathStarKicker)
  7431. End If
  7432.  
  7433. ' you did it!...the Death Star is history...
  7434.  
  7435. If (LightJackpot.State = BulbOn) Then
  7436. bMultiBallMode = FALSE
  7437. TATimer.Enabled = FALSE
  7438. JPHit = FALSE
  7439. AddScore(1000000)
  7440. AllPlasOff()
  7441.  
  7442. ' change the camera angle...
  7443. CameraView_LookAtBackBox
  7444.  
  7445. TurnOffBackBoxLights()
  7446. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  7447. NewMovie.UpdateInterval = 54: NewMovieHUD.UpdateInterval = 54
  7448. NewMovie.Frame 2, 63: NewMovieHUD.Frame 2, 63
  7449. MovieTimer.Set TRUE, 4000
  7450. PlaySound "fx_Finale", 0.8
  7451. DOFLinx_DeathStar_BlowUp() 'DOFLinx_DeathStar_BlowUp
  7452.  
  7453. DeathStarTimer.Set TRUE, 11000 ' play the message on the translite...
  7454.  
  7455. DSExplode.Set TRUE, 4000
  7456. Deathstartimer2.Enabled = FALSE
  7457.  
  7458. JackpotTimer.Set TRUE, 22000
  7459.  
  7460. CountDown.FadeOut
  7461. TenSecondTimer.Enabled = FALSE
  7462. MyDMD.QueueText "[edge3][f4][xc][yc][b]TORPEDO AWAY", deNone, 3500, FALSE
  7463. MyDMD2.QueueText "[edge3][f4][xc][yc][b]TORPEDO AWAY", deNone, 3500, FALSE
  7464. MyDMD.QueueText "[edge3][f4][xc][yc][bf]GREAT SHOT!", deScrollIn, 3500, FALSE
  7465. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]GREAT SHOT!", deScrollIn, 3500, FALSE
  7466. MyDMD.QueueText "[edge3][f4][xc][yc]1 IN A MILLION", deFlip, 2500, FALSE
  7467. MyDMD2.QueueText "[edge3][f4][xc][yc]1 IN A MILLION", deFlip, 2500, FALSE
  7468.  
  7469. EffectMusic 1, FadeOutAndStop, 0.0, 100
  7470.  
  7471. DeathStarTally(CP) = DeathStarTally(CP) + 1
  7472. LightJackpot.State = BulbOff
  7473. fpTilted = TRUE ' allow the other ball to drain...
  7474. LeftFlipper.SolenoidOff: TopFlipper.SolenoidOff
  7475. DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
  7476. DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
  7477. RightFlipper.SolenoidOff
  7478. If (bExtraBallWonThisBall = FALSE) Then
  7479. AwardExtraBall()
  7480. MyDMD.QueueText "[edge3][f4][xc][yc]EXTRA BALL", deScrollOut, 2000, FALSE
  7481. MyDMD2.QueueText "[edge3][f4][xc][yc]EXTRA BALL", deScrollOut, 2000, FALSE
  7482. Else
  7483. AddScore(1138000)
  7484. MyDMD.QueueText "[edge3][f4][xc][yc]SPECIAL", deScrollOut, 2000, FALSE
  7485. MyDMD2.QueueText "[edge3][f4][xc][yc]SPECIAL", deScrollOut, 2000, FALSE
  7486. End If
  7487. MyDMD.QueueText "[f1][y7]MAY THE FORCE[f3][y16]BE WITH YOU", deFlip, 1000, TRUE
  7488. MyDMD2.QueueText "[f1][y7]MAY THE FORCE[f3][y16]BE WITH YOU", deFlip, 1000, TRUE
  7489. Else
  7490. If (BackBoxTimer.Enabled = FALSE) and (TimeAttack = FALSE) Then
  7491. ' advance the Red Squadron bonus...
  7492. AdvRedSquadron()
  7493. If (R2Out = FALSE) Then
  7494. PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
  7495. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 25, 1, 1)
  7496. End If
  7497. Else
  7498. ' ball has entered kicker when Death Star is firing at rebel base...
  7499. KickerTopRightTimer.Set TRUE, 500
  7500. If (TimeAttack = TRUE) Then
  7501. PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
  7502. DMDBusy = TRUE: DMDTimer.Set TRUE, 1000
  7503. If (TATime < 60) Then
  7504. MyDMD.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]TIME: " & TATime & " SECONDS"
  7505. MyDMD2.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]TIME: " & TATime & " SECONDS"
  7506. Else
  7507. ShowTime()
  7508. MyDMD.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]" & ShowMin & " MIN: " & ShowSec & " SECS"
  7509. MyDMD2.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]" & ShowMin & " MIN: " & ShowSec & " SECS"
  7510. End If
  7511. End If
  7512. End If
  7513. End If
  7514. End Sub
  7515.  
  7516.  
  7517. Dim NoR2
  7518.  
  7519.  
  7520. ' a normal hit advances Red Squadron, leading to an Extra Ball...
  7521.  
  7522. Sub AdvRedSquadron()
  7523. DSHit = DSHit + 1
  7524. Squadron = Squadron + 2000
  7525. NewMovie.Frame 1: NewMovieHUD.Frame 1
  7526. NewMovie.FadeOut: NewMovieHUD.FadeOut
  7527. Select Case DSHit
  7528. Case 1:
  7529. AddScore(Squadron)
  7530. KickerTopRightTimer.Set True, 1800
  7531. TurnOffBackBoxLights()
  7532. TorpedoLight.Set BulbBlink, "1010", 100
  7533. Select Case RandomNumber(2)
  7534. Case 1:
  7535. ' first hit is the most common hit, so add lots of random quotes here, otherwise it gets rather repeatative....
  7536. If (QuoteBusy = FALSE) Then
  7537. Select Case RandomNumber(11)
  7538. Case 1: PlaySound "vo_R2IncreasePower": R2HeadBulb.FlashForMs 1500, 100, BulbOff
  7539. Case 2: PlaySound "vo_BackThere": R2HeadBulb.FlashForMs 1500, 100, BulbOff
  7540. Case 3: PlaySound "vo_HangOnR2": R2HeadBulb.FlashForMs 1500, 100, BulbOff
  7541. Case 4: PlaySound "vo_R2TopSide": R2HeadBulb.FlashForMs 1500, 100, BulbOff
  7542. Case 5: PlaySound "vo_R2Targetting": R2HeadBulb.FlashForMs 1500, 100, BulbOff
  7543. Case 6: PlaySound "vo_HangOnTightR2": R2HeadBulb.FlashForMs 1500, 100, BulbOff: KickerTopRightTimer.Set TRUE, 1500
  7544. Case 7: PlaySound "vo_Hope": R2HeadBulb.FlashForMs 2000, 100, BulbOff: KickerTopRightTimer.Set TRUE, 2000
  7545. Case 8: PlaySound "vo_OkBackThere": R2HeadBulb.FlashForMs 1700, 100, BulbOff
  7546. Case 9:
  7547. MusicFade(3200)
  7548. PlaySound "vo_CutChatter": KickerTopRightTimer.Set TRUE, 3200: NoR2 = TRUE
  7549. AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 3200
  7550. DSSpot1.FlashForMs 3200, 3200, BulbOff
  7551. DSSpot2.FlashForMs 3200, 3200, BulbOff
  7552. Case 10: MusicFade(3700): PlaySound "vo_TargetShaft": KickerTopRightTimer.Set TRUE, 3700: NoR2 = TRUE
  7553. Case 11: PlaySound "vo_R2Damage"
  7554. If (R2D2.Dropped) Then
  7555. R2D2.SolenoidPulse
  7556. DOFLinx_R2D2_GearMotor_Short() 'DOFLinx_R2D2_GearMotor Short
  7557. Else
  7558. R2D2.PopDown
  7559. DOFLinx_R2D2_GearMotor_Long() 'DOFLinx_R2D2_GearMotor Long
  7560. End If
  7561. End Select
  7562. Else
  7563. PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
  7564. End If
  7565. If (NoR2 = FALSE) Then
  7566. MovieTimer.Enabled = FALSE
  7567. MovieOverlay.UpdateInterval = 66:MovieOverlay.Frame 665, 680
  7568. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 665, 680
  7569. End If
  7570. NoR2 = FALSE
  7571. Case 2:
  7572. If (QuoteBusy = FALSE) Then
  7573. If (bYodaMode(CP) = TRUE) Then
  7574. PlaySound "vo_DSRange1"
  7575. Else
  7576. If (TimeAttack = FALSE) Then
  7577. Select Case RandomNumber(2)
  7578. Case 1: PlaySound "vo_StandByAlert"
  7579. Case 2: PlaySound "vo_DSRange5"
  7580. End Select
  7581. Else
  7582. PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
  7583. PlaySound "fx_Alarm"
  7584. End If
  7585. KickerTopRightTimer.Set TRUE, 2200
  7586. MusicFade(2200):QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2200
  7587. AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 2200
  7588. DSSpot1.FlashForMs 2200, 2200, BulbOff
  7589. DSSpot2.FlashForMs 2200, 2200, BulbOff
  7590. End If
  7591. Else
  7592. PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
  7593. End If
  7594. MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 265, 291
  7595. HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 265, 291
  7596. End Select
  7597.  
  7598. ' after the 2nd hit, not from a freebie launch, start collecting Red Squadron...8 hits needed...
  7599. Case 2:
  7600. KickerTopRightTimer.Set TRUE, 800: AddScore(Squadron)
  7601. HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
  7602. HUDOverlay.Frame 597,598,597: MovieOverlay.Frame 597,598,597: MovieTimer.Set TRUE, 1800
  7603. MyDMD.QueueText "[edge3][f4][yc][xc]RED 10 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7604. MyDMD2.QueueText "[edge3][f4][yc][xc]RED 10 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7605. If (QuoteBusy = FALSE) Then
  7606. PlaySound "vo_Red10": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  7607. Else
  7608. PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
  7609. End If
  7610. Case 3:
  7611. KickerTopRightTimer.Set TRUE, 1200: AddScore(Squadron)
  7612. HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
  7613. HUDOverlay.Frame 599,600,599: MovieOverlay.Frame 599,600,599: MovieTimer.Set TRUE, 1800
  7614. MyDMD.QueueText "[edge3][f4][yc][xc]RED 7 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7615. MyDMD2.QueueText "[edge3][f4][yc][xc]RED 7 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7616. If (QuoteBusy = FALSE) Then
  7617. PlaySound "vo_Red7": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  7618. Else
  7619. PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
  7620. End If
  7621. Case 4:
  7622. KickerTopRightTimer.Set TRUE, 1000: AddScore(Squadron)
  7623. HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
  7624. HUDOverlay.Frame 601: MovieOverlay.Frame 601: MovieTimer.Set TRUE, 1800
  7625. MyDMD.QueueText "[edge3][f4][yc][xc]RED 3 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7626. MyDMD2.QueueText "[edge3][f4][yc][xc]RED 3 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7627. If (QuoteBusy = FALSE) Then
  7628. PlaySound "vo_Red3": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  7629. Else
  7630. PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
  7631. End If
  7632. Case 5:
  7633. KickerTopRightTimer.Set TRUE, 800: AddScore(Squadron)
  7634. HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
  7635. HUDOverlay.Frame 603: MovieOverlay.Frame 603: MovieTimer.Set TRUE, 1800
  7636. MyDMD.QueueText "[edge3][f4][yc][xc]RED 6 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7637. MyDMD2.QueueText "[edge3][f4][yc][xc]RED 6 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7638. If (QuoteBusy = FALSE) Then
  7639. PlaySound "vo_Red6": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  7640. Else
  7641. PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
  7642. End If
  7643. Case 6:
  7644. KickerTopRightTimer.Set TRUE, 1200: AddScore(Squadron)
  7645. HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
  7646. HUDOverlay.Frame 605: MovieOverlay.Frame 605: MovieTimer.Set TRUE, 1800
  7647. MyDMD.QueueText "[edge3][f4][yc][xc]RED 9 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7648. MyDMD2.QueueText "[edge3][f4][yc][xc]RED 9 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7649. If (QuoteBusy = FALSE) Then
  7650. PlaySound "vo_Red9": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  7651. Else
  7652. PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
  7653. End If
  7654. Case 7:
  7655. KickerTopRightTimer.Set TRUE, 1000: AddScore(Squadron)
  7656. HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
  7657. HUDOverlay.Frame 595,596,595: MovieOverlay.Frame 595,596,595: MovieTimer.Set TRUE, 1800
  7658. MyDMD.QueueText "[edge3][f4][yc][xc]RED 2 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7659. MyDMD2.QueueText "[edge3][f4][yc][xc]RED 2 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7660. If (QuoteBusy = FALSE) Then
  7661. PlaySound "vo_Red2": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  7662. Else
  7663. PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
  7664. End If
  7665. Case 8:
  7666. KickerTopRightTimer.Set TRUE, 1200: AddScore(Squadron)
  7667. HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
  7668. HUDOverlay.Frame 607: MovieOverlay.Frame 607: MovieTimer.Set TRUE, 1800
  7669. MyDMD.QueueText "[edge3][f4][yc][xc]RED 11 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7670. MyDMD2.QueueText "[edge3][f4][yc][xc]RED 11 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
  7671. If (QuoteBusy = FALSE) Then
  7672. PlaySound "vo_Red11": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
  7673. Else
  7674. PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
  7675. End If
  7676. Case 9:
  7677. AddScore(Squadron)
  7678. KickerTopRightTimer.Set TRUE, 1000
  7679. HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
  7680. MovieOverlay.Frame 547, 548, 547: HUDOverlay.Frame 547, 548, 547: MovieTimer.Set TRUE, 1800
  7681. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2500
  7682. If (bExtraBallWonThisBall = FALSE) Then
  7683. AwardExtraBall()
  7684. R2HeadBulb.FlashForMs 1200, 100, BulbOff
  7685. PlaySound "vo_EB"
  7686. MyDMD.Text = "[edge3][f4][yc][xc][bf]EXTRA BALL"
  7687. MyDMD2.Text = "[edge3][f4][yc][xc][bf]EXTRA BALL"
  7688. KickerTopRightTimer.Set TRUE, 2000
  7689. Else
  7690. AddScore(1138000)
  7691. MyDMD.Text = "[edge3][f4][yc][xc][bf]SPECIAL AWARD"
  7692. MyDMD2.Text = "[edge3][f4][yc][xc][bf]SPECIAL AWARD"
  7693. End If
  7694. If (RewardSHOTS = TRUE) Then
  7695. DSHit = 1
  7696. Else
  7697. DSHit = 0
  7698. End If
  7699. End Select
  7700. End Sub
  7701.  
  7702.  
  7703.  
  7704.  
  7705.  
  7706. Sub DSExplode_Expired()
  7707. DSExplode.Enabled = FALSE
  7708. LightSeqPF.Play SeqBlinking, , 5, 100
  7709. FlasherLeft.FlashForMs 2000, 75, BulbOff
  7710. FlasherRight.FlashForMs 2000, 75, BulbOff
  7711. BackOverlay.FadeIn
  7712. BackOverlay.UpdateInterval = 54
  7713. BackOverlay.Frame 1, 108
  7714. If (BGArt = 0) Then BackBox.Play SeqAllOff: OverlayBG.Frame 2
  7715. End Sub
  7716.  
  7717.  
  7718.  
  7719. Sub DeathStarTimer_Expired()
  7720. DeathStarTimer.Enabled = FALSE
  7721. BackOverlay.UpdateInterval = 1000
  7722. BackOverlay.Frame 249, 256
  7723. EffectMusic 1, FadeOutAndStop, 0.0, 100
  7724. JPHit = FALSE
  7725. End Sub
  7726.  
  7727.  
  7728.  
  7729.  
  7730. Sub ResetTableForNewRound()
  7731. bPadawanMode(CP) = FALSE
  7732. bKnightMode(CP) = FALSE
  7733. bMasterMode(CP) = FALSE
  7734. bYodaMode(CP) = FALSE
  7735. bSkyWalker(CP) = FALSE
  7736. TrenchPlay(CP) = 0
  7737. LightDock.State = BulbOff
  7738. Light50000Points.State = BulbOff
  7739. LightSpecial.State = BulbOff
  7740. LightExtraBall.State = BulbOff
  7741. LightV.State = BulbBlink
  7742. LightA.State = BulbBlink
  7743. LightD.State = BulbBlink
  7744. LightE.State = BulbBlink
  7745. LightR.State = BulbBlink
  7746. LightJoda.State = BulbOff
  7747. LightPadawan.State = BulbOff
  7748. LightMaster.State = BulbOff
  7749. LightKnight.State = BulbOff
  7750. LightJackpot.State = BulbOff
  7751. LightShipLeft.State = BulbOff ' TIE to vader lane...
  7752. LightShipMiddle.State = BulbOff ' solo shot...
  7753. LightShipRight.State = BulbOff ' trench lane to DS...
  7754. BulbLeftStar1Ext.SetLitColor 129, 223, 254
  7755. BulbLeftStar2Ext.SetLitColor 129, 223, 254
  7756. BulbLeftStar3Ext.SetLitColor 129, 223, 254
  7757. BulbLeftStar1.State = BulbOff
  7758. BulbLeftStar2.State = BulbOff
  7759. BulbLeftStar3.State = BulbOff
  7760. BulbMiddleStar.State = BulbOff
  7761. BulbRightStar.State = BulbOff
  7762. LightLeftInLane.State = BulbOff
  7763. LightRightInLane.State = BulbOff
  7764. LightKickBack.State = BulbOn
  7765. LightBonus2x.State = BulbOff
  7766. LightBonus3x.State = BulbOff
  7767. LightBonus4x.State = BulbOff
  7768. LightBonus5x.State = BulbOff
  7769. LightBonus6x.State = BulbOff
  7770. LightDefend1.State = BulbOff
  7771. LightDefend2.State = BulbOff
  7772. LightDefend3.State = BulbOff
  7773. LightDefend4.State = BulbOff
  7774. LightDefend5.State = BulbOff
  7775. LightDefend6.State = BulbOff
  7776. LightDefend7.State = BulbOff
  7777. LightDefend8.State = BulbOff
  7778. LightDefend9.State = BulbOff
  7779. LightDefend10.State = BulbOff
  7780. LightDefend20.State = BulbOff
  7781. LightAlien1.State = BulbOff
  7782. LightAlien2.State = BulbOff
  7783. LightAlien3.State = BulbOff
  7784. LightAlien4.State = BulbOff
  7785. LightAlien5.State = BulbOff
  7786. LightAlien6.State = BulbOff
  7787. LightAlien7.State = BulbOff
  7788. LightAlien8.State = BulbOff
  7789. LightAlien9.State = BulbOff
  7790. LightAlien10.State = BulbOff
  7791. LightAlien20.State = BulbOff
  7792. LightShootAgain.State = BulbOff
  7793. ResetDropTargets()
  7794. SoloTally(CP) = 0
  7795. RampTally(CP) = 0
  7796. Bumper1.State = BulbOff
  7797. Bumper2.State = BulbOff
  7798. Bumper3.State = BulbOff
  7799. LightTopLane1.State = BulbOff
  7800. LightTopLane2.State = BulbOff
  7801. LightTopLane3.State = BulbOff
  7802. BulbTop.State = BulbOff
  7803. BulbMiddle.State = BulbOff
  7804. BulbBottom.State = BulbOff
  7805. SoloBulb1.State = BulbOff
  7806. SoloBulb2.State = BulbOff
  7807. SoloBulb3.State = BulbOff
  7808. SoloBulb4.State = BulbOff
  7809. QTE(CP) = 410
  7810. Q2(CP) = 0
  7811. Q3PO(CP) = 0
  7812. End Sub
  7813.  
  7814.  
  7815.  
  7816.  
  7817. Sub KickerTopRightTimer_Expired()
  7818. KickerTopRightTimer.Enabled = FALSE
  7819. DeathStarKicker.SolenoidPulse
  7820. DOFLinx_DeathStarKicker() 'DOFLinx - DeathStarKicker
  7821. If (fpTilted = TRUE) Then Exit Sub
  7822.  
  7823. PlaySound "fx_SmallBlaster2": LightSeqPF.Play SeqBlinking, , 1, 100
  7824. If (R2Out = FALSE) Then
  7825. PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 500
  7826. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 0.5)
  7827. End If
  7828.  
  7829. TurnOnBackBoxLights()
  7830. MovieOverlay.FadeIn
  7831. TorpedoLight.State = BulbOff
  7832. SSWin = FALSE
  7833. End Sub
  7834.  
  7835.  
  7836.  
  7837.  
  7838. Sub JackpotTimer_Expired()
  7839. JackpotTimer.Enabled = FALSE
  7840.  
  7841. ' land the X-Wing toy, you're just running around the room high-fiving everyone...
  7842. 'XMove = 4:
  7843. XWingMove_Expired()
  7844.  
  7845. BackOverlay.Frame 320
  7846. BackOverlay.FadeOut
  7847. AllPlasOn(): TurnOnBackBoxLights()
  7848.  
  7849. If (BGArt = 0) Then BackBox.StopPlay: OverlayBG.Frame 1
  7850.  
  7851. MovieOverlay.FadeIn
  7852. TurnOffRightOutLights()
  7853. TurnOffLeftOutLights()
  7854.  
  7855. ' No victory lap for Time Attack, just the quickest time acolade...maybe a medal in a future update.
  7856. ' Honestly, I don't expect anyone to get this far without cheating, only me...it's a challenge not even
  7857. ' a Jedi Master could achieve...
  7858. If (TimeAttack = TRUE) Then
  7859. CameraView_Default
  7860.  
  7861. DeathStarKicker.DestroyBall: BallsOnPlayfield = 0
  7862.  
  7863. PlayMusic 8, "fx_Applause"
  7864. PlayMusic 1, "Music_Mode4", TRUE, Vol
  7865. MyDMD.QueueText "[f4][xc][yc]CONGRATULATIONS", deScrollIn, 1000, FALSE
  7866. MyDMD2.QueueText "[f4][xc][yc]CONGRATULATIONS", deScrollIn, 1000, FALSE
  7867. MyDMD.QueueText "[f1][y7][b]YOU COMPLETED[f3][y16]TIME ATTACK", deNone, 2000, FALSE
  7868. MyDMD2.QueueText "[f1][y7][b]YOU COMPLETED[f3][y16]TIME ATTACK", deNone, 2000, FALSE
  7869.  
  7870. If (TATime < 60) Then
  7871. MyDMD.QueueText "[f1][y7]TIME REMAINING[f3][y16][b]" & TATime & " SECONDS", deNone, 2500, FALSE
  7872. MyDMD2.QueueText "[f1][y7]TIME REMAINING[f3][y16][b]" & TATime & " SECONDS", deNone, 2500, FALSE
  7873. Else
  7874. ShowTime()
  7875. MyDMD.QueueText "[f1][y7]TIME REMAINING[f3][y16][b]" & ShowMin & " MIN: " & ShowSec & " SECS", deNone, 2500, FALSE
  7876. MyDMD2.QueueText "[f1][y7]TIME REMAINING[f3][y16][b]" & ShowMin & " MIN: " & ShowSec & " SECS", deNone, 2500, FALSE
  7877. End If
  7878.  
  7879. ' now calculate and convert the best time...next update...
  7880. MyDMD.QueueText "[f1][y7]YOUR FINAL TIME[f3][y16]", deScrollIn, 1000, FALSE
  7881. MyDMD2.QueueText "[f1][y7]YOUR FINAL TIME[f3][y16]", deScrollIn, 1000, FALSE
  7882. MyDMD.QueueText "[f1][y7]YOUR FINAL TIME[f3][y16][bf]VERSION 1.05", deNone, 2000, TRUE
  7883. MyDMD2.QueueText "[f1][y7]YOUR FINAL TIME[f3][y16][bf]VERSION 1.05", deNone, 2000, TRUE
  7884.  
  7885. TimeAttack = FALSE
  7886. fpTilted = FALSE
  7887. MatchPlayed(CP) = TRUE
  7888. BallsRemaining(CP) = 0
  7889. GameOverTimer.Set TRUE, 8500
  7890. Exit Sub
  7891. End If
  7892.  
  7893. VictoryLap = TRUE
  7894. VictoryValue = 0: VictoryTotal = 0
  7895.  
  7896. ' change the camera angle...
  7897. CameraView_Mutliball
  7898.  
  7899. PlaySound "vo_Ovation"
  7900. MyDMD.QueueText "[f4][xc][yc]VICTORY LAP", deNone, 2000, FALSE
  7901. MyDMD2.QueueText "[f4][xc][yc]VICTORY LAP", deNone, 2000, FALSE
  7902. MyDMD.QueueText "[f1][y7]FAST SCORING[f3][y16]MULTIBALL", deScrollIn, 500, FALSE
  7903. MyDMD2.QueueText "[f1][y7]FAST SCROING[f3][y16]MULTIBALL", deScrollIn, 500, FALSE
  7904. MyDMD.QueueText "[f1][y7]FAST SCORING[f3][y16][bf]MULTIBALL", deNone, 1500, TRUE
  7905. MyDMD2.QueueText "[f1][y7]FAST SCROING[f3][y16][bf]MULTIBALL", deNone, 1500, TRUE
  7906. StartVictory.Set TRUE, 4000
  7907. End Sub
  7908.  
  7909.  
  7910.  
  7911.  
  7912. ' *************************************
  7913. ' ** **
  7914. ' ** VICTORY LAP **
  7915. ' ** **
  7916. ' *************************************
  7917.  
  7918. ' 4 ball multiball
  7919. ' all the surviving heroes (non droid) - Luke, Han, Leia and Chewie all run around
  7920. ' high-fiving everyone, not seen in the movie, but it did happen.
  7921.  
  7922.  
  7923. Sub StartVictory_Expired()
  7924. StartVictory.Enabled = FALSE
  7925. DOFLinx_VictoryMB_Start() 'DOFLinx_VictoryMB_Start
  7926. fpTilted = FALSE
  7927.  
  7928. ' create a ball in every available hole and shoot it out...(4 balls)....
  7929.  
  7930. ' TerryRed update: for some reason, the plungerkicker WILL NOT create and kick out a ball (for me at least)
  7931. ' - this usually results in only 3 balls for MB (which messes up BallsOnPlayfield
  7932. ' - I changed BallsOnPlayfield to 3 in order to allow MB to work correctly (until a fix is found)
  7933.  
  7934. VaderKicker.CreateBall: AddTrackedBall(VaderKicker): VaderKicker.SolenoidPulse: DOFLinx_KickerVUK() 'DOFLinx - KickerVUK
  7935.  
  7936. FalconKicker.CreateBall: AddTrackedBall(FalconKicker): FalconKicker.SolenoidPulse: DOFLinx_FalconKicker() 'DOFLinx - FalconKicker
  7937.  
  7938. PlungerKicker.CreateBall: AddTrackedBall(PlungerKicker): PlungerKicker.SolenoidPulse: AutoFire = TRUE
  7939.  
  7940. DeathStarKicker.SolenoidPulse ' fire the ball back into play for a new round...
  7941. DOFLinx_DeathStarKicker() 'DOFLinx - DeathStarKicker
  7942. BallsOnPlayfield = 3
  7943. FlasherLeft.FlashForMs 300, 100, BulbOff
  7944. PlayMusic 8, "fx_Applause", TRUE, 0.8
  7945. TorpedoLight.State = BulbOff
  7946. PlayMusic 1, "Music_Mode4", TRUE, Vol
  7947. DiverterGuide.Collidable = FALSE
  7948. DiverterSurface.Collidable = FALSE
  7949. RampDiverter.SolenoidOff
  7950. RampDiverter2.SolenoidOff
  7951. LightKickBack.State = BulbOff
  7952.  
  7953. ' ok Luke, turns out the Empire had an infinate amount of Death Star's, get back out there kid and make me proud...
  7954. ' (raise up the X-Wing toy)
  7955. 'XMove = 1
  7956. XWingMove_Expired()
  7957.  
  7958. ResetTableForNewRound()
  7959. End Sub
  7960.  
  7961.  
  7962.  
  7963. Sub VictoryHit()
  7964. DOFLinx_Victory_Hit() 'DOFLinx_Victory_Hit
  7965. VictoryValue = VictoryValue + 7500
  7966. AddScore(VictoryValue)
  7967. MyDMD.UpdateInterval = 5: MyDMD2.UpdateInterval = 5
  7968. MyDMD.QueueText "[edge3][f4][yc]VICTORY JACKPOT", deNone, 500, FALSE
  7969. MyDMD2.QueueText "[edge3][f4][yc]VICTORY JACKPOT", deNone, 500, FALSE
  7970. MyDMD.QueueText "[edge3][f4][yc][bf]" & FormatNumber(VictoryValue, 0, -1, 0, -1), deFlip, 1000, TRUE
  7971. MyDMD2.QueueText "[edge3][f4][yc][bf]" & FormatNumber(VictoryValue, 0, -1, 0, -1), deFlip, 1000, TRUE
  7972. DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
  7973. VictoryTotal = VictoryTotal + VictoryValue
  7974. PlaySound "RightBlast"
  7975.  
  7976. FlashMe = 16: PFFlash.Set TRUE, 200
  7977. FlasherRight.FlashForMs 200, 200, BulbOff
  7978. FlasherBulbRight.FlashForMs 200, 200, BulbOff
  7979. Flasher2.FlashForMs 200, 200, BulbOff
  7980. FlasherLeft.FlashForMs 200, 200, BulbOff
  7981.  
  7982. Select Case RandomNumber(2)
  7983. Case 1:
  7984. MovieOverlay.UpdateInterval = 80: MovieOverlay.frame 200, 201
  7985. HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 200, 201
  7986. Case 2:
  7987. MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 198, 199
  7988. HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 198, 199
  7989. End Select
  7990. MovieTimer.Set TRUE, 1000
  7991. End Sub
  7992.  
  7993.  
  7994.  
  7995.  
  7996. Sub GatePlungerExit_Hit()
  7997. bBallInPlungerLane = FALSE
  7998. AutoFire = FALSE
  7999. If ((bMultiBallMode = True) and (BallsInLock = 1)) Then ' release the held ball only when 2nd ball in play...
  8000. VaderKicker.DestroyBall: DeleteTrackedBall(VaderKicker)
  8001. VaderKicker.CreateCaptiveBall: AddTrackedBall(VaderKicker)
  8002. KickerTopLeftTimer.Set True, 1000
  8003. FlasherLeft.FlashForMs 1000, 50, BulbOff
  8004. End If
  8005. End Sub
  8006.  
  8007.  
  8008.  
  8009. Dim XWingValue(4)
  8010.  
  8011.  
  8012.  
  8013. ' ********************************************
  8014. ' ** **
  8015. ' ** ATTRACT MODE **
  8016. ' ** **
  8017. ' ********************************************
  8018.  
  8019.  
  8020.  
  8021. Sub SetAllLightsForAttractMode()
  8022.  
  8023. LightShootAgain.Set BulbBlink, "10", 150
  8024.  
  8025. ' Bonus Multiplier Lights
  8026. LightBonus2x.Set BulbBlink, "1000010", 150
  8027. LightBonus3x.Set BulbBlink, "0100100", 150
  8028. LightBonus4x.Set BulbBlink, "0100100", 150
  8029. LightBonus5x.Set BulbBlink, "1000010", 150
  8030. LightBonus6x.Set BulbBlink, "0011000", 150
  8031.  
  8032. ' Outlane and Inlane Lights
  8033. LightSpecialL.Set BulbBlink, "01010000", 100
  8034. LightLeftInlane.Set BulbBlink, "00000101", 100
  8035. LightRightInlane.Set BulbBlink, "00000101", 100
  8036. LightSpecialR.Set BulbBlink,"01010000", 100
  8037.  
  8038. ' Kickback light
  8039. LightKickBack.Set BulbBlink, "01", 150
  8040.  
  8041. ' Defend Points Bar
  8042. LightDefend1.Set BulbBlink, "100000100000", 75
  8043. LightDefend2.Set BulbBlink, "010000010000", 75
  8044. LightDefend3.Set BulbBlink, "001000001000", 75
  8045. LightDefend4.Set BulbBlink, "000100000100", 75
  8046. LightDefend5.Set BulbBlink, "000010000010", 75
  8047. LightDefend6.Set BulbBlink, "000001000001", 75
  8048. LightDefend7.Set BulbBlink, "100000100000", 75
  8049. LightDefend8.Set BulbBlink, "010000010000", 75
  8050. LightDefend9.Set BulbBlink, "001000001000", 75
  8051. LightDefend10.Set BulbBlink, "000100000100", 75
  8052. LightDefend20.Set BulbBlink, "000010000010", 75
  8053.  
  8054. ' Alien Points Bar
  8055. LightAlien1.Set BulbBlink, "100000100000", 75
  8056. LightAlien2.Set BulbBlink, "010000010000", 75
  8057. LightAlien3.Set BulbBlink, "001000001000", 75
  8058. LightAlien4.Set BulbBlink, "000100000100", 75
  8059. LightAlien5.Set BulbBlink, "000010000010", 75
  8060. LightAlien6.Set BulbBlink, "000001000001", 75
  8061. LightAlien7.Set BulbBlink, "100000100000", 75
  8062. LightAlien8.Set BulbBlink, "010000010000", 75
  8063. LightAlien9.Set BulbBlink, "001000001000", 75
  8064. LightAlien10.Set BulbBlink, "000100000100", 75
  8065. LightAlien20.Set BulbBlink, "000010000010", 75
  8066.  
  8067. ' Invasion/Amarda Cluster
  8068. LightKnight.Set BulbBlink, "1010000000000000", 150
  8069. LightMaster.Set BulbBlink, "0000101000001010", 150
  8070. LightPadawan.Set BulbBlink, "0000000010100000", 150
  8071. LightJoda.Set BulbBlink, "0101", 150
  8072.  
  8073. ' Dock Lights
  8074. LightExtraBall.Set BulbBlink, "10000", 125
  8075. LightSpecial.Set BulbBlink, "01000", 125
  8076. Light50000Points.Set BulbBlink, "00100", 125
  8077. LightDock.Set BulbBlink, "00010", 125
  8078. 'DockLight.Set BulbBlink, "00001", 125
  8079.  
  8080. ' TIE Lasers
  8081. TIElight1.Set BulbBlink, "0101", 75
  8082. TIElight2.Set BulbBlink, "0101", 75
  8083. TieVaderBulb1.Set BulbBlink, "0101", 75
  8084. TieVaderBulb2.Set BulbBlink, "0101", 75
  8085.  
  8086. ' Ramp Level Lights
  8087. BulbBottom.Set BulbBlink, "1000001010000010111000111000", 150
  8088. BulbMiddle.Set BulbBlink, "0100010001000100111000111000", 150
  8089. BulbTop.Set BulbBlink, "0010100000101000111000111000", 150
  8090.  
  8091. ' Solo Lights
  8092. SoloBulb1.Set BulbBlink, "1000000010100000011000111000", 150
  8093. SoloBulb2.Set BulbBlink, "0100000100010001100110111000", 150
  8094. SoloBulb3.Set BulbBlink, "0010001000001001100110111000", 150
  8095. SoloBulb4.Set BulbBlink, "0001010000000100011000111000", 150
  8096.  
  8097. ' OutLaneLights
  8098. RightOutBulb1.Set BulbBlink, "10000000100001000", 100
  8099. RightOutBulb2.Set BulbBlink, "01000000010010000", 100
  8100. RightOutBulb3.Set BulbBlink, "00100000001100000", 100
  8101. RightOutBulb4.Set BulbBlink, "00010000010010000", 100
  8102. RightOutBulb5.Set BulbBlink, "00001000100001000", 100
  8103.  
  8104. LeftOutBulb1.Set BulbBlink, "10000000100001000", 100
  8105. LeftOutBulb2.Set BulbBlink, "01000000010010000", 100
  8106. LeftOutBulb3.Set BulbBlink, "00100000001100000", 100
  8107. LeftOutBulb4.Set BulbBlink, "00010000010010000", 100
  8108. LeftOutBulb5.Set BulbBlink, "00001000100001000", 100
  8109.  
  8110. ' Four Bank Targets
  8111. LightFourBank1.Set BulbBlink, "0001000100011111110101010101", 150
  8112. LightFourBank2.Set BulbBlink, "0100010001111111101010101010", 150
  8113. LightFourBank3.Set BulbBlink, "0010001111111111110101010101", 150
  8114. LightFourBank4.Set BulbBlink, "0001111111111111101010101010", 150
  8115.  
  8116. ' Three Bank Targets
  8117. LightThreeBank1.Set BulbBlink, "0001111111111111101010101010", 150
  8118. LightThreeBank2.Set BulbBlink, "0010001111111111110101010101", 150
  8119. LightThreeBank3.Set BulbBlink, "0100010001111111101010101010", 150
  8120.  
  8121. ' Left Lock
  8122. BulbLeftStar1Ext.SetLitColor 129, 223, 254
  8123. BulbLeftStar2Ext.SetLitColor 129, 223, 254
  8124. BulbLeftStar3Ext.SetLitColor 129, 223, 254
  8125. LightShipLeft.Set BulbBlink, "100000", 125
  8126. BulbLeftStar1.Set BulbBlink, "010000", 125
  8127. BulbLeftStar2.Set BulbBlink, "001000", 125
  8128. BulbLeftStar3.Set BulbBlink, "000100", 125
  8129. LightLeftPowerUp.Set BulbBlink, "000010", 125
  8130. LightLeftLock.Set BulbBlink, "000001", 125
  8131.  
  8132. ' Middle
  8133. LightShipMiddle.Set BulbBlink, "01010000", 100
  8134. BulbMiddleStar.Set BulbBlink, "00000101", 100
  8135.  
  8136. ' and Right
  8137. LightShipRight.Set BulbBlink, "01010000", 100
  8138. BulbRightStar.Set BulbBlink, "00000101", 100
  8139.  
  8140. ' Top Rollover Lights
  8141. LightTopLane1.Set BulbBlink, "10100000", 150
  8142. LightTopLane2.Set BulbBlink, "00001010", 150
  8143. LightTopLane3.Set BulbBlink, "10100000", 150
  8144.  
  8145. ' Jackpot Light
  8146. LightJackpot.Set BulbBlink, "10", 150
  8147.  
  8148. ' Sci-Fi Targets
  8149. LightV.Set BulbBlink, "100000001", 100
  8150. LightA.Set BulbBlink, "010000010", 100
  8151. LightD.Set BulbBlink, "001000100", 100
  8152. LightE.Set BulbBlink, "000101000", 100
  8153. LightR.Set BulbBlink, "000010000", 100
  8154.  
  8155. ' Bumpers
  8156. Bumper1.Set BulbBlink, "101000000000", 125
  8157. Bumper2.Set BulbBlink, "000010100000", 125
  8158. Bumper3.Set BulbBlink, "000000001010", 125
  8159. BulbBumper1.Set BulbBlink, "101000000000", 125
  8160. BulbBumper2.Set BulbBlink, "000010100000", 125
  8161. BulbBumper3.Set BulbBlink, "000000001010", 125
  8162.  
  8163. SabreLight1.Set BulbBlink, "10", 400
  8164. SabreLight2.Set BulbBlink, "01", 400
  8165. SabreLight3.Set BulbBlink, "10", 400
  8166. SabreLight4.Set BulbBlink, "01", 400
  8167.  
  8168. MovieOverlay.FadeIn()
  8169. AttractModeTimer.Set TRUE, 9500
  8170. End Sub
  8171.  
  8172.  
  8173.  
  8174. ' the attract sequence, so-called because it's supposed to lure punters to the machine.
  8175. ' non of this stuff is needed in a free video game but it's a lot of fun so I like doing it...
  8176.  
  8177. Sub AttractModeTimer_Expired()
  8178. Select Case PlayMe
  8179. Case 0:
  8180. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  8181. NewMovie.Frame 355: NewMovieHUD.Frame 355
  8182. EffectMusic 3, FadeOutAndPause, 0, 100: MusicResume.Set TRUE, 3500
  8183. AllPlasOff(): LSLOn(): LSROn(): Sabre = 4: PlayMusic 1, "fx_BothSabresOn"
  8184. R2HeadBulb.FlashForMs 3500, 3500, BulbOff: PlaySound "fx_R2Sound15"
  8185. AttractModeTimer.Set TRUE, 3500
  8186. PlayMe = 1
  8187. Case 1:
  8188. NewMovie.FadeOut: NewMovieHUD.FadeOut
  8189. LSLOff(): LSROff()
  8190. StopMusic 1
  8191. MovieOverlay.UpdateInterval = 67:MovieOverlay.Frame 17, 117
  8192. HUDOverlay.UpdateInterval = 67: HUDOverlay.Frame 17, 117
  8193. LightSeqPF.Play SeqUpOn, 150, 1
  8194. AttractModeTimer.Set TRUE, 9500
  8195. PlayMe = 2
  8196. Case 2:
  8197. Select Case RandomNumber(3)
  8198. Case 1:
  8199. R2HeadBulb.State = BulbOff
  8200. EffectMusic 3, FadeOutAndPause, 0, 100
  8201. PlayMusic 1, "fx_ROS": MusicResume.Set TRUE, 7000
  8202. MovieOverlay.Frame 986: HUDOverlay.Frame 986
  8203. AttractModeTimer.Set TRUE, 8000
  8204. PlayMe = 3
  8205. Case 2,3:
  8206. AttractModeTimer.Set TRUE, 1000
  8207. PlayMe = 4
  8208. End Select
  8209. Case 3:
  8210. MovieOverlay.UpdateInterval = 67:MovieOverlay.Frame 17, 117
  8211. HUDOverlay.UpdateInterval = 67: HUDOverlay.Frame 17, 117
  8212. PlayMe = 4
  8213.  
  8214. ' Carrie Fisher sadly died in 2016, and in that year I added this little tribute
  8215. ' no longer needed, but it can be used again if another cast member snuffs it...
  8216.  
  8217. 'Case 4:
  8218. ' R2HeadBulb.State = BulbOff
  8219. ' MovieOverlay.Frame 990: HUDOverlay.Frame 990
  8220. ' EffectMusic 3, FadeOutAndPause, 0, 100
  8221. ' PlayMusic 1, "Music_Leia": MusicResume.Set TRUE, 9000
  8222. ' PlayMe = 5
  8223.  
  8224. Case 4:
  8225. Select Case RandomNumber(3)
  8226. Case 1:
  8227. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  8228. NewMovie.Frame 356: NewMovieHUD.Frame 356
  8229. EffectMusic 3, FadeOutAndPause, 0, 100
  8230. PlayMusic 1, "fx_FallenOrder", FALSE, 1, 800: MusicResume.Set TRUE, 11300
  8231. AttractModeTimer.Set TRUE, 5800
  8232. PlayMe = 5
  8233. Case 2,3:
  8234. R2HeadBulb.FlashForMs 1200, 100, BulbOff
  8235. PlaySound "fx_R2Sound20"
  8236. AttractModeTimer.Set TRUE, 2000
  8237. PlayMe = 7
  8238. End Select
  8239. Case 5:
  8240. AllPlasOff(): LSLOn(): LSROn()
  8241. AttractModeTimer.Set TRUE, 5500
  8242. PlayMe = 6
  8243. Case 6:
  8244. LSLOff(): LSROff()
  8245. NewMovie.FadeOut: NewMovieHUD.FadeOut
  8246. MovieOverlay.UpdateInterval = 67:MovieOverlay.Frame 17, 117
  8247. HUDOverlay.UpdateInterval = 67: HUDOverlay.Frame 17, 117
  8248. LightSeqPF.Play SeqUpOn, 150, 1
  8249. PlayMe = 7
  8250. Case 7:
  8251. R2HeadBulb.FlashForMs 800, 100, BulbOff
  8252. PlaySound "vo_Boasting"
  8253. MovieOverlay.Frame 987: HUDOverlay.Frame 987
  8254. PlayMe = 8
  8255. Case 8:
  8256. AttractModeTimer.Set TRUE, 8500
  8257. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 7600
  8258. PlayMusic 1, "vo_BenChat"
  8259. PlayMe = 9
  8260. Case 9:
  8261. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 2600
  8262. PlayMusic 1, "vo_BenChat2"
  8263. PlayMe = 10
  8264. Case 10:
  8265. LSLOn(): PlayMusic 2, "fx_LightSabreOn": SabreTimer.Set TRUE, 7000
  8266. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 7000
  8267. PlayMusic 1, "vo_BenChat3"
  8268. PlayMe = 11
  8269. Case 11:
  8270. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 2600
  8271. PlayMusic 1, "vo_CloseDown"
  8272. PlayMe = 12
  8273. Case 12:
  8274. LSLOn(): PlayMusic 2, "fx_LightSabreOn": SabreTimer.Set TRUE, 6400
  8275. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 6400
  8276. PlayMusic 1, "vo_BenChat4"
  8277. PlayMe = 13
  8278. Case 13:
  8279. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 6600
  8280. PlayMusic 1, "vo_BenChat5"
  8281. PlayMe = 14
  8282. Case 14:
  8283. AttractModeTimer.Set TRUE, 6000
  8284. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 3600
  8285. PlayMusic 1, "vo_BenChat6"
  8286. PlayMe = 15
  8287. Case 15:
  8288. AttractModeTimer.Set TRUE, 12000
  8289. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 10600
  8290. PlayMusic 1, "vo_BenChat7"
  8291. PlayMe = 16
  8292. Case 16:
  8293. AttractModeTimer.Set TRUE, 5000
  8294. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 2100
  8295. PlayMusic 1, "vo_BenChat8"
  8296. PlayMe = 17
  8297. Case 17:
  8298. LSLOn(): PlayMusic 2, "fx_LightSabreOn": SabreTimer.Set TRUE, 4000
  8299. AttractModeTimer.Set TRUE, 16000
  8300. EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 16000
  8301. PlayMusic 1, "vo_Vader"
  8302. PlayMe = 0
  8303. End Select
  8304. End Sub
  8305.  
  8306.  
  8307.  
  8308. Sub TurnOffRightOutLights()
  8309. RightOutBulb1.State = BulbOff
  8310. RightOutBulb2.State = BulbOff
  8311. RightOutBulb3.State = BulbOff
  8312. RightOutBulb4.State = BulbOff
  8313. RightOutBulb5.State = BulbOff
  8314. End Sub
  8315.  
  8316.  
  8317.  
  8318. Sub TurnOffLeftOutLights()
  8319. LeftOutBulb1.State = BulbOff
  8320. LeftOutBulb2.State = BulbOff
  8321. LeftOutBulb3.State = BulbOff
  8322. LeftOutBulb4.State = BulbOff
  8323. LeftOutBulb5.State = BulbOff
  8324. End Sub
  8325.  
  8326.  
  8327.  
  8328.  
  8329. Sub MusicResume_Expired()
  8330. MusicResume.Enabled = FALSE
  8331. StopMusic 1
  8332. EffectMusic 3, PlayAndFadeIn, 0.7, 100
  8333. End Sub
  8334.  
  8335.  
  8336. Sub MusicResume2_Expired()
  8337. MusicResume2.Enabled = FALSE
  8338. EffectMusic 1, PlayAndFadeIn, (vol), 50
  8339. End Sub
  8340.  
  8341.  
  8342. Sub LightSeqPF_Empty()
  8343. If (fpGameInPlay = FALSE) Then
  8344. SetAllLightsForAttractMode()
  8345. End If
  8346. End Sub
  8347.  
  8348.  
  8349. Sub TurnOffPlayfieldLights()
  8350. LightShootAgain.State = BulbOff
  8351. LightBonus2x.State = BulbOff
  8352. LightBonus3x.State = BulbOff
  8353. LightBonus4x.State = BulbOff
  8354. LightBonus5x.State = BulbOff
  8355. LightBonus6x.State = BulbOff
  8356. LightSpecialL.State = BulbOff
  8357. LightLeftInlane.State = BulbOff
  8358. LightRightInlane.State = BulbOff
  8359. LightSpecialR.State = BulbOff
  8360. LightDefend1.State = BulbOff
  8361. LightDefend2.State = BulbOff
  8362. LightDefend3.State = BulbOff
  8363. LightDefend4.State = BulbOff
  8364. LightDefend5.State = BulbOff
  8365. LightDefend6.State = BulbOff
  8366. LightDefend7.State = BulbOff
  8367. LightDefend8.State = BulbOff
  8368. LightDefend9.State = BulbOff
  8369. LightDefend10.State = BulbOff
  8370. LightDefend20.State = BulbOff
  8371. LightAlien1.State = BulbOff
  8372. LightAlien2.State = BulbOff
  8373. LightAlien3.State = BulbOff
  8374. LightAlien4.State = BulbOff
  8375. LightAlien5.State = BulbOff
  8376. LightAlien6.State = BulbOff
  8377. LightAlien7.State = BulbOff
  8378. LightAlien8.State = BulbOff
  8379. LightAlien9.State = BulbOff
  8380. LightAlien10.State = BulbOff
  8381. LightAlien20.State = BulbOff
  8382. LightKnight.State = BulbOff
  8383. LightMaster.State = BulbOff
  8384. LightPadawan.State = BulbOff
  8385. LightJoda.State = BulbOff
  8386. LightExtraBall.State = BulbOff
  8387. LightSpecial.State = BulbOff
  8388. Light50000Points.State = BulbOff
  8389.  
  8390. LightDock.State = BulbOff
  8391. TIElight1.State = BulbOff
  8392. TIElight2.State = BulbOff
  8393. TieVaderBulb1.State = BulbOff
  8394. TieVaderBulb2.State = BulbOff
  8395. LightFourBank1.State = BulbOff
  8396. LightFourBank2.State = BulbOff
  8397. LightFourBank3.State = BulbOff
  8398. LightFourBank4.State = BulbOff
  8399. LightThreeBank1.State = BulbOff
  8400. LightThreeBank2.State = BulbOff
  8401. LightThreeBank3.State = BulbOff
  8402. LightShipLeft.State = BulbOff
  8403. BulbLeftStar1.State = BulbOff
  8404. BulbLeftStar2.State = BulbOff
  8405. BulbLeftStar3.State = BulbOff
  8406. LightLeftPowerUp.State = BulbOff
  8407. LightLeftLock.State = BulbOff
  8408. LightShipMiddle.State = BulbOff
  8409. BulbMiddleStar.State = BulbOff
  8410. LightShipRight.State = BulbOff
  8411. BulbRightStar.State = BulbOff
  8412. LightTopLane1.State = BulbOff
  8413. LightTopLane2.State = BulbOff
  8414. LightTopLane3.State = BulbOff
  8415. LightJackpot.State = BulbOff
  8416. LightV.State = BulbOff
  8417. LightA.State = BulbOff
  8418. LightD.State = BulbOff
  8419. LightE.State = BulbOff
  8420. LightR.State = BulbOff
  8421. LightKickBack.State = BulbOff
  8422. Bumper1.State = BulbOff
  8423. Bumper2.State = BulbOff
  8424. Bumper3.State = BulbOff
  8425. BulbBumper1.State = BulbOff
  8426. BulbBumper2.State = BulbOff
  8427. BulbBumper3.State = BulbOff
  8428. BulbBottom.State = BulbOff
  8429. BulbMiddle.State = BulbOff
  8430. BulbTop.State = BulbOff
  8431. SoloBulb1.State = BulbOff
  8432. SoloBulb2.State = BulbOff
  8433. SoloBulb3.State = BulbOff
  8434. SoloBulb4.State = BulbOff
  8435. RightOutBulb1.State = BulbOff
  8436. RightOutBulb2.State = BulbOff
  8437. RightOutBulb3.State = BulbOff
  8438. RightOutBulb4.State = BulbOff
  8439. RightOutBulb5.State = BulbOff
  8440. LeftOutBulb1.State = BulbOff
  8441. LeftOutBulb2.State = BulbOff
  8442. LeftOutBulb3.State = BulbOff
  8443. LeftOutBulb4.State = BulbOff
  8444. LeftOutBulb5.State = BulbOff
  8445. R2HeadBulb.State = BulbOff
  8446. End Sub
  8447.  
  8448.  
  8449.  
  8450.  
  8451. Sub AllPlasOff()
  8452. LightSeqGI.Play SeqAllOff
  8453. FlasherRL1.State = BulbOff
  8454. FlasherRL2.State = BulbOff
  8455. LSDark.Render = TRUE
  8456. RSDark.Render = TRUE
  8457. LMDark.Render = TRUE
  8458. RMDark.Render = TRUE
  8459. MidDark.Render = TRUE
  8460. Surface24.Render = TRUE
  8461. Surface31.Render = TRUE
  8462. Surface32.Render = TRUE
  8463. Surface33.Render = TRUE
  8464. Surface34.Render = TRUE
  8465. Surface36.Render = TRUE
  8466. Surface37.Render = TRUE
  8467. Surface38.Render = TRUE
  8468. TopLeftInLane.Render = FALSE
  8469. TopRighInLane.Render = FALSE
  8470. Apron.Render = FALSE
  8471. Surface16.Render = FALSE
  8472. Surface1.Render = FALSE
  8473. Surface2.Render = FALSE
  8474. Surface13.Render = FALSE
  8475. Surface12.Render = FALSE
  8476. Surface14.Render = FALSE
  8477. Surface17.Render = FALSE
  8478. Surface19.Render = FALSE
  8479. LeftSlingShotSurface.Render = FALSE
  8480. RightSlingShotSurface.Render = FALSE
  8481. xBam.SetPlayfieldTexture "!SW_PFDark"
  8482. Light_Inserts_Brightness_GI_OFF
  8483. Light_Flashers_Brightness_GI_OFF
  8484. Light_Bulbs_Brightness_GI_OFF
  8485. ' xBAM.Lights.Brightness = 1.45 ' slightly increase the brightness of the playfield inserts...
  8486. End Sub
  8487.  
  8488.  
  8489.  
  8490.  
  8491. Sub AllPlasOn()
  8492. LightSeqGI.StopPlay
  8493. FlasherRL1.State = BulbOn
  8494. FlasherRL2.State = BulbOn
  8495. LSDark.Render = FALSE
  8496. RSDark.Render = FALSE
  8497. LMDark.Render = FALSE
  8498. RMDark.Render = FALSE
  8499. MidDark.Render = FALSE
  8500. Surface24.Render = FALSE
  8501. Surface31.Render = FALSE
  8502. Surface32.Render = FALSE
  8503. Surface33.Render = FALSE
  8504. Surface34.Render = FALSE
  8505. Surface36.Render = FALSE
  8506. Surface37.Render = FALSE
  8507. Surface38.Render = FALSE
  8508. TopLeftInLane.Render = TRUE
  8509. TopRighInLane.Render = TRUE
  8510. Apron.Render = TRUE
  8511. Surface16.Render = TRUE
  8512. Surface1.Render = TRUE
  8513. Surface2.Render = TRUE
  8514. Surface13.Render = TRUE
  8515. Surface12.Render = TRUE
  8516. Surface14.Render = TRUE
  8517. Surface17.Render = TRUE
  8518. Surface19.Render = TRUE
  8519. LeftSlingShotSurface.Render = TRUE
  8520. RightSlingShotSurface.Render = TRUE
  8521. if BladeColor = 1 then xBam.SetPlayfieldTexture "!SW_PF"
  8522. if BladeColor = 2 then xBam.SetPlayfieldTexture "!SW_PF_Green"
  8523. if BladeColor = 3 then xBam.SetPlayfieldTexture "!SW_PF_Purple"
  8524. if BladeColor = 4 then xBam.SetPlayfieldTexture "!SW_PF_Yellow"
  8525. if BladeColor = 5 then xBam.SetPlayfieldTexture "!SW_PF_Orange"
  8526. Light_Inserts_Brightness_GI_ON
  8527. Light_Flashers_Brightness_GI_ON
  8528. Light_Bulbs_Brightness_GI_ON
  8529. ' xBAM.Lights.Brightness = 1.10
  8530. End Sub
  8531.  
  8532.  
  8533. 'xBAM.Lights.Brightness = 1.10
  8534.  
  8535.  
  8536. Sub PFFlash_Expired()
  8537. FlashME = FlashME + 1
  8538. Select Case FlashME
  8539. Case 1,3,5,7,9,11,13,15: AllPlasOff(): TurnOffBackBoxLights()
  8540. Case 2,4,6,8,10,12,14,16: AllPlasOn(): TurnOnBackBoxLights()
  8541. Case 17: AllPlasOn(): PFFlash.Enabled = FALSE: TurnOnBackBoxLights()
  8542. End Select
  8543. End Sub
  8544.  
  8545.  
  8546. Sub TurnOffBackBoxLights()
  8547. If (BGArt = 0) Then BackBox.Play SeqAllOff: OverlayBG.Frame 2
  8548. End Sub
  8549.  
  8550.  
  8551. Sub TurnOnBackBoxLights()
  8552. If (BGArt = 0) Then BackBox.StopPlay: OverlayBG.Frame 1
  8553. End Sub
  8554.  
  8555.  
  8556.  
  8557. Sub MovieTimer_Expired()
  8558. MovieTimer.Enabled = FALSE
  8559. If (HighScoreTimer.Enabled = TRUE) Then
  8560. NewMovie.Frame 317: NewMovieHUD.Frame 317
  8561. FlasherRight.Set BulbBlink,"101000", 75
  8562. Flasher2.Set BulbBlink, "000101", 75
  8563. LightSeqPF.Play SeqRandom, 50, , 10000
  8564. Exit Sub
  8565. End If
  8566. NewMovie.Frame 1: NewMovieHUD.Frame 1
  8567. NewMovie.FadeOut: NewMovieHUD.FadeOut
  8568. MovieOverlay.UpdateInterval = 40: MovieOverlay.Frame 11 ' return to star wars logo...
  8569. HUDOverlay.UpdateInterval = 40: HUDoverlay.Frame 11
  8570. If (SSWin = TRUE) Then ' skill shot didn't go in but award it anyway...
  8571. SSWin = FALSE
  8572. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 4000
  8573. PlaySound "fx_SSHit"
  8574. DOFLinx_Skillshot_Hit() 'DOFLinx_Skillshot_Hit
  8575. MovieTimer.Set TRUE, 700
  8576. MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 893, 938
  8577. HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 893, 938
  8578. SSValue(CP) = SSValue(CP) + 100000
  8579. AddScore(SSValue(CP))
  8580. MyDMD.QueueText "[edge3][f4][xc][yc][bf]SKILL SHOT", deNone, 800, FALSE
  8581. MyDMD2.QueueText "[edge3][f4][xc][yc][bf]SKILL SHOT", deNone, 800, FALSE
  8582. MyDMD.QueueText "[edge3][f4][xc][yc]" & FormatNumber(SSValue(CP), 0, -1, 0, -1), deNone, 1500, TRUE
  8583. MyDMD2.QueueText "[edge3][f4][xc][yc]" & FormatNumber(SSValue(CP), 0, -1, 0, -1), deNone, 1500, TRUE
  8584. PFFlash.Set TRUE, 175: FlashME = 10
  8585. BSTime = BSTime + 1000
  8586. End If
  8587. End Sub
  8588.  
  8589.  
  8590.  
  8591. Sub StopMovie()
  8592. NewMovie.Frame 1: NewMovieHUD.Frame 1
  8593. NewMovie.FadeOut: NewMovieHUD.FadeOut
  8594. MovieOverlay.UpdateInterval = 40: MovieOverlay.Frame 11 ' return to star wars logo...
  8595. HUDOverlay.UpdateInterval = 40: HUDoverlay.Frame 11
  8596. End Sub
  8597.  
  8598.  
  8599.  
  8600.  
  8601. Sub QuoteTimer_Expired()
  8602. QuoteTimer.Enabled = FALSE
  8603. QuoteBusy = FALSE
  8604. End Sub
  8605.  
  8606.  
  8607.  
  8608. Sub Surface39_Hit()
  8609. PlaySound "fx_RubBDL"
  8610. End Sub
  8611.  
  8612.  
  8613.  
  8614. Sub TriggerCrossPre_Hit()
  8615. Crossover.Collidable = TRUE
  8616. End Sub
  8617.  
  8618.  
  8619.  
  8620. Sub TriggerCrossPost_Hit()
  8621. Crossover.Collidable = FALSE
  8622. End Sub
  8623.  
  8624.  
  8625.  
  8626.  
  8627. Dim LSMove,R2Move,R2Out,R2Animate
  8628.  
  8629.  
  8630.  
  8631. ' Thanks to BAM's mini playfield feature, you can grab and move anything on the playfield...even the entire playfield...
  8632.  
  8633.  
  8634.  
  8635. ' Left Lightsabre...
  8636.  
  8637. Dim MiniPlayField_0 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  8638. Set MiniPlayField_0 = xBAM.CreateMiniPlayfield( 4.8, 40, 420, 1000, 54.6, 140, 20, 906, 80)
  8639.  
  8640. ' DstX DstY DstZ RotX RotY RotZ Scale Time
  8641. Call MiniPlayField_0.MoveTo( 20, 906, 80, 0, 0, 0, 1, 0)
  8642.  
  8643.  
  8644.  
  8645. ' Left Lightsabre (handle only)...
  8646.  
  8647. Dim MiniPlayField_4 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  8648. Set MiniPlayField_4 = xBAM.CreateMiniPlayfield( -133, -70, 816, 1024, 50, 100, -102, 918, 80)
  8649.  
  8650. ' DstX DstY DstZ RotX RotY RotZ Scale Time
  8651. Call MiniPlayField_4.MoveTo( 20, 920, -80, 0, 0, 0, 1, 0)
  8652.  
  8653.  
  8654.  
  8655.  
  8656.  
  8657. ' Right Lightsabre...
  8658.  
  8659. Dim MiniPlayField_1 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  8660. Set MiniPlayField_1 = xBAM.CreateMiniPlayfield( 473, 515, 163, 1077, 65, 159, 497, 910, 80)
  8661.  
  8662. ' DstX DstY DstZ RotX RotY RotZ Scale Time
  8663. Call MiniPlayField_1.MoveTo( 497, 910, 80, 0, 0, 0, 1, 0)
  8664.  
  8665.  
  8666.  
  8667. ' Right Lightsabre (handle only)...
  8668.  
  8669. Dim MiniPlayField_5 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  8670. Set MiniPlayField_5 = xBAM.CreateMiniPlayfield( 591, 640, 813, 1024, 50, 100, 617, 916, 80)
  8671.  
  8672. ' DstX DstY DstZ RotX RotY RotZ Scale Time
  8673. Call MiniPlayField_5.MoveTo( 497, 910, -80, 0, 0, 0, 1, 0)
  8674.  
  8675.  
  8676.  
  8677.  
  8678.  
  8679.  
  8680. ' R2D2 Toy...
  8681.  
  8682. Dim MiniPlayField_2 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  8683. Set MiniPlayField_2 = xBAM.CreateMiniPlayfield(391.203, 496.607, 26, 100, 55.2, 150.999, 461, 56, 50)
  8684.  
  8685. ' DstX DstY DstZ RotX RotY RotZ Scale Time
  8686. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 0)
  8687.  
  8688.  
  8689.  
  8690.  
  8691.  
  8692. Sub MoveLS_Expired()
  8693. MoveLS.Set TRUE, 1200
  8694. LSMove = LSMove + 1
  8695. Dim QT
  8696. Select Case LSMove
  8697. Case 1:
  8698. AllPlasOff()
  8699. LightSeqPF.Play SeqAllOff
  8700. Flasher1.State = BulbBlink
  8701. BulbLSClash1.State = BulbBlink
  8702. PlaySound "fx_SaberClash2"
  8703. MyDMD.Text = "[edge3][f4][xc][yc][b]JEDI STRIKE"
  8704. MyDMD2.Text = "[edge3][f4][xc][yc][b]JEDI STRIKE"
  8705. LSLOn(): LSROn()
  8706. Call MiniPlayField_0.MoveTo( 90, 906, 80, -5, 0, 25, 1, 0.2) ' cross swords, blue on top (Jedi strike)...
  8707. Call MiniPlayField_1.MoveTo( 407, 910, 80, 0, 0, -25, 1, 0.2)
  8708. Case 2:
  8709. PlaySound "fx_LSAway", 0.8
  8710. LightSeqPF.StopPlay
  8711. Flasher1.State = BulbOff
  8712. BulbLSClash1.State = BulbOff
  8713. Call MiniPlayField_0.MoveTo( 20, 906, 80, 0, 0, 0, 1, 0.2) ' move back to original position...
  8714. Call MiniPlayField_1.MoveTo( 497, 910, 80, 0, 0, 0, 1, 0.2)
  8715. MoveLS.Enabled = FALSE
  8716.  
  8717. Case 3:
  8718. AllPlasOff()
  8719. Flasher1.State = BulbBlink
  8720. BulbLSClash2.State = BulbBlink
  8721. PlaySound "fx_SaberClash3"
  8722. MyDMD.Text = "[edge3][f4][xc][yc][b]SITH STRIKE"
  8723. MyDMD2.Text = "[edge3][f4][xc][yc][b]SITH STRIKE"
  8724. LSLOn(): LSROn()
  8725. Call MiniPlayField_0.MoveTo( 90, 906, 80, 0, 0, 25, 1, 0.2) ' cross swords, red on top (Sith strike)...
  8726. Call MiniPlayField_1.MoveTo( 407, 910, 80, -5, 0, -25, 1, 0.2)
  8727. Case 4:
  8728. PlaySound "fx_LSAway", 0.8
  8729. AllPlasOn()
  8730. Flasher1.State = BulbOff
  8731. BulbLSClash2.State = BulbOff
  8732. Call MiniPlayField_0.MoveTo( 20, 906, 80, 0, 0, 0, 1, 0.2)
  8733. Call MiniPlayField_1.MoveTo( 497, 910, 80, 0, 0, 0, 1, 0.2) ' move back to original position...
  8734. MoveLS.Enabled = FALSE
  8735.  
  8736. ' blue wins...
  8737. Case 5:
  8738. AllPlasOff()
  8739. LightSeqPF.Play SeqAllOff
  8740. Flasher1.State = BulbBlink
  8741. BulbLSClash1.State = BulbBlink
  8742. PlaySound "fx_SaberClash", 0.7
  8743. LSLOn(): LSROn()
  8744. Call MiniPlayField_0.MoveTo( 90, 906, 80, -5, 0, 25, 1, 0.2) ' cross swords, blue on top (Jedi strike)...
  8745. Call MiniPlayField_1.MoveTo( 407, 910, 80, 0, 0, -25, 1, 0.2)
  8746. MoveLS.Set TRUE, 2500
  8747. Case 6:
  8748. Flasher1.State = BulbOff
  8749. BulbLSClash1.State = BulbOff
  8750. PlaySound "fx_LSMove"
  8751. Call MiniPlayField_0.MoveTo( 90, 906, 80, -20, 0, 25, 1, 0.1): MoveLS.Set TRUE, 100 ' blue raises up to hit red...
  8752. Case 7:
  8753. Flasher1.State = BulbOn
  8754. BulbLSClash1.State = BulbOn
  8755. PlaySound "fx_LSHit"
  8756. Call MiniPlayField_0.MoveTo( 90, 906, 80, -2, 0, 25, 1, 0.1): MoveLS.Set TRUE, 100 ' blue strikes down hard on red...
  8757. Call MiniPlayField_1.MoveTo( 407, 910, 80, 2, 0, -25, 1, 0.1)
  8758. Case 8:
  8759. Flasher1.State = BulbOff
  8760. BulbLSClash1.State = BulbOff
  8761. PlaySound "fx_LSMove"
  8762. Call MiniPlayField_0.MoveTo( 90, 906, 80, -20, 0, 25, 1, 0.1): MoveLS.Set TRUE, 100 ' blue raises up to hit red...
  8763. Case 9:
  8764. Flasher1.State = BulbOn
  8765. BulbLSClash1.State = BulbOn
  8766. PlaySound "fx_LSHit"
  8767. Call MiniPlayField_0.MoveTo( 90, 906, 80, -4, 0, 25, 1, 0.1): MoveLS.Set TRUE, 500 ' blue strikes down hard on red...
  8768. Call MiniPlayField_1.MoveTo( 407, 910, 80, 4, 0, -25, 1, 0.1)
  8769. Case 10:
  8770. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  8771. MovieTimer.Set TRUE, 3100: QT = 3100
  8772. If (NoPlay = FALSE) Then
  8773. Select Case RandomNumber(8)
  8774. Case 1: PlaySound "fx_JediWin": NewMovie.Frame 352: NewMovieHUD.Frame 352
  8775. Case 2: PlaySound "fx_JediWin2": NewMovie.Frame 353: NewMovieHUD.Frame 353
  8776. Case 3: PlaySound "fx_JediWin3": NewMovie.Frame 353: NewMovieHUD.Frame 353: VaderScoreLight.FlashForMs 3300, 3300, BulbOff
  8777. Case 4: PlaySound "fx_JediWin4": NewMovie.Frame 353: NewMovieHUD.Frame 353: VaderScoreLight.FlashForMs 1600, 1600, BulbOff: QT = 1600
  8778. Case 5: PlaySound "fx_JediWin5": NewMovie.Frame 353: NewMovieHUD.Frame 353: VaderScoreLight.FlashForMs 2500, 2500, BulbOff:QT = 2500
  8779. Case 6: PlaySound "fx_JediWin6": NewMovie.Frame 353: NewMovieHUD.Frame 353: VaderScoreLight.FlashForMs 1700, 1700, BulbOff:QT = 1700
  8780. Case 7: PlaySound "fx_JediWin7": NewMovie.Frame 353: NewMovieHUD.Frame 353: VaderScoreLight.FlashForMs 4500, 4500, BulbOff:QT = 4500
  8781. Case 8: PlaySound "fx_JediWin8": NewMovie.Frame 353: NewMovieHUD.Frame 353: VaderScoreLight.FlashForMs 2500, 2500, BulbOff: QT = 2500
  8782. End Select
  8783. Else
  8784. NewMovie.Frame 352: NewMovieHUD.Frame 352
  8785. End If
  8786. NoPlay = FALSE
  8787. MyDMD.Text = "[edge3][f4][xc][yc][b]JEDI WIN"
  8788. MyDMD2.Text = "[edge3][f4][xc][yc][b]JEDI WIN"
  8789. PlaySound "fx_LSAway", 0.8
  8790. LightSeqPF.StopPlay
  8791. Flasher1.State = BulbOff
  8792. BulbLSClash1.State = BulbOff
  8793. Call MiniPlayField_0.MoveTo( 20, 906, 80, 0, 0, 0, 1, 0.3) ' return to resting position...
  8794. Call MiniPlayField_1.MoveTo( 497, 910, 80, 0, 0, 0, 1, 0.3)
  8795. MoveLS.Enabled = FALSE
  8796. MovieTimer.Set TRUE, QT: DelayEOB.Set TRUE, QT
  8797.  
  8798. ' red wins...
  8799. Case 11:
  8800. AllPlasOff()
  8801. LightSeqPF.Play SeqAllOff
  8802. Flasher1.State = BulbBlink
  8803. BulbLSClash2.State = BulbBlink
  8804. PlaySound "fx_SaberClash", 0.7
  8805. LSLOn(): LSROn()
  8806. Call MiniPlayField_0.MoveTo( 90, 906, 80, 0, 0, 25, 1, 0.2) ' cross swords, blue on top (Jedi strike)...
  8807. Call MiniPlayField_1.MoveTo( 407, 910, 80, -5, 0, -25, 1, 0.2)
  8808. MoveLS.Set TRUE, 2500
  8809. Case 12:
  8810. Flasher1.State = BulbOff
  8811. BulbLSClash2.State = BulbOff
  8812. PlaySound "fx_LSMove"
  8813. Call MiniPlayField_1.MoveTo( 407, 910, 80, -20, 0, 25, 1, 0.1): MoveLS.Set TRUE, 100 ' red raises up to hit blue...
  8814. Case 13:
  8815. Flasher1.State = BulbOn
  8816. BulbLSClash2.State = BulbOn
  8817. PlaySound "fx_LSHit"
  8818. Call MiniPlayField_0.MoveTo( 90, 906, 80, 2, 0, 25, 1, 0.1): MoveLS.Set TRUE, 100 ' red strikes down hard on blue...
  8819. Call MiniPlayField_1.MoveTo( 407, 910, 80, -2, 0, -25, 1, 0.1)
  8820. Case 14:
  8821. Flasher1.State = BulbOff
  8822. BulbLSClash2.State = BulbOff
  8823. PlaySound "fx_LSMove"
  8824. Call MiniPlayField_1.MoveTo( 407, 910, 80, -20, 0, 25, 1, 0.1): MoveLS.Set TRUE, 100 ' red raises up to hit blue...
  8825. Case 15:
  8826. Flasher1.State = BulbOn
  8827. BulbLSClash2.State = BulbOn
  8828. PlaySound "fx_LSHit"
  8829. Call MiniPlayField_0.MoveTo( 90, 906, 80, 4, 0, 25, 1, 0.1): MoveLS.Set TRUE, 500 ' red strikes down hard on blue...
  8830. Call MiniPlayField_1.MoveTo( 407, 910, 80, -4, 0, -25, 1, 0.1)
  8831. Case 16:
  8832. NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
  8833. NewMovie.Frame 351: NewMovieHUD.Frame 351
  8834. MovieTimer.Set TRUE, 3100: QT = 3100
  8835. If (NoPlay = FALSE) Then
  8836. Select Case RandomNumber(9)
  8837. Case 1: PlaySound "fx_SithWin": VaderScoreLight.FlashForMs 3100, 3100, BulbOff
  8838. Case 2: PlaySound "fx_SithWin2": VaderScoreLight.FlashForMs 2900, 2900, BulbOff
  8839. Case 3: PlaySound "fx_SithWin3": VaderScoreLight.FlashForMs 2500, 2500, BulbOff: QT = 2500
  8840. Case 4: PlaySound "fx_SithWin4": VaderScoreLight.FlashForMs 3200, 3200, BulbOff
  8841. Case 5: PlaySound "fx_SithWin5": VaderScoreLight.FlashForMs 4000, 4000, BulbOff: QT = 4000
  8842. Case 6: PlaySound "fx_SithWin6": VaderScoreLight.FlashForMs 2500, 2500, BulbOff: QT = 2500
  8843. Case 7: PlaySound "fx_SithWin7": VaderScoreLight.FlashForMs 2100, 2100, BulbOff: QT = 2100
  8844. Case 8: PlaySound "fx_SithWin8": VaderScoreLight.FlashForMs 3200, 3200, BulbOff: QT = 3200
  8845. Case 9: PlaySound "fx_SithWin9": VaderScoreLight.FlashForMs 1800, 1800, BulbOff: QT = 1800
  8846. End Select
  8847. End If
  8848. NoPlay = FALSE
  8849. MyDMD.Text = "[edge3][f4][xc][yc][b]SITH WIN"
  8850. MyDMD2.Text = "[edge3][f4][xc][yc][b]SITH WIN"
  8851. PlaySound "fx_LSAway", 0.8
  8852. LightSeqPF.StopPlay
  8853. Flasher1.State = BulbOff
  8854. BulbLSClash2.State = BulbOff
  8855. Call MiniPlayField_0.MoveTo( 20, 906, 80, 0, 0, 0, 1, 0.3) ' return to resting position...
  8856. Call MiniPlayField_1.MoveTo( 497, 910, 80, 0, 0, 0, 1, 0.3)
  8857. MoveLS.Enabled = FALSE
  8858. MovieTimer.Set TRUE, QT: DelayEOB.Set TRUE, QT
  8859. End Select
  8860. End Sub
  8861.  
  8862.  
  8863.  
  8864. Dim NoPlay
  8865.  
  8866.  
  8867. Sub VaderQuotes()
  8868. PlaySound "vo_LandTroops"
  8869. End Sub
  8870.  
  8871.  
  8872.  
  8873.  
  8874. ' As we change the lightsabre colour, we also change the lights on the handle and the bulbs on
  8875. ' the left outlane...
  8876. ' ...and we change the playfield image, so the Rebel Lights match the Lightsaber colour.
  8877.  
  8878. Sub LSLOn()
  8879. Call MiniPlayField_0.MoveTo( 20, 906, 80, 0, 0, 0, 1, 0) ' move the full lightsabre back into place...
  8880. Call MiniPlayField_4.MoveTo( 22, 917.8, -80, 0, 0, 0, 1, 0) ' hide the handle only...
  8881. BulbLSL.State = BulbOn
  8882. FlasherRL1.State = BulbOn
  8883. SaberBlueGlow.UpdateInterval = 25
  8884. Select Case BladeColor
  8885. Case 1: SaberBlueGlow.Frame 2, 3, 2 ' blue
  8886. FlasherSabreLExt.SetLitColor 32, 114, 249
  8887. SabreLight1Ext.SetLitColor 32, 114, 249
  8888. SabreLight2Ext.SetLitColor 32, 114, 249
  8889. BulbLSClash1Ext.SetLitColor 32, 114, 249
  8890. LeftOutBulb1Ext.SetLitColor 32, 114, 249
  8891. LeftOutBulb2Ext.SetLitColor 32, 114, 249
  8892. LeftOutBulb3Ext.SetLitColor 32, 114, 249
  8893. LeftOutBulb4Ext.SetLitColor 32, 114, 249
  8894. LeftOutBulb5Ext.SetLitColor 32, 114, 249
  8895. LightKickBackExt.SetLitColor 32, 114, 249
  8896. FlasherRL1Ext.SetLitColor 32,114,249
  8897. If use_LightSaberFlasherEffect = True then
  8898. FlasherSabreL.Set BulbBlink, "10", 25
  8899. Else
  8900. FlasherSabreL.Set BulbOn
  8901. End If
  8902. xBAM.SetTexture "LightDefend1", "!SW_PF", "0"
  8903. xBAM.SetTexture "LightDefend2", "!SW_PF", "0"
  8904. xBAM.SetTexture "LightDefend3", "!SW_PF", "0"
  8905. xBAM.SetTexture "LightDefend4", "!SW_PF", "0"
  8906. xBAM.SetTexture "LightDefend5", "!SW_PF", "0"
  8907. xBAM.SetTexture "LightDefend6", "!SW_PF", "0"
  8908. xBAM.SetTexture "LightDefend7", "!SW_PF", "0"
  8909. xBAM.SetTexture "LightDefend8", "!SW_PF", "0"
  8910. xBAM.SetTexture "LightDefend9", "!SW_PF", "0"
  8911. xBAM.SetTexture "LightDefend10", "!SW_PF", "0"
  8912. xBAM.SetTexture "LightDefend20", "!SW_PF", "0"
  8913. xBam.SetPlayfieldTexture "!SW_PF"
  8914. Case 2: SaberBlueGlow.Frame 7, 8, 7 ' green
  8915. FlasherSabreLExt.SetLitColor 0, 255, 0
  8916. SabreLight1Ext.SetLitColor 0, 255, 0
  8917. SabreLight2Ext.SetLitColor 0, 255, 0
  8918. BulbLSClash1Ext.SetLitColor 0, 255, 0
  8919. LeftOutBulb1Ext.SetLitColor 0, 255, 0
  8920. LeftOutBulb2Ext.SetLitColor 0, 255, 0
  8921. LeftOutBulb3Ext.SetLitColor 0, 255, 0
  8922. LeftOutBulb4Ext.SetLitColor 0, 255, 0
  8923. LeftOutBulb5Ext.SetLitColor 0, 255, 0
  8924. FlasherRL1Ext.SetLitColor 0,255,0
  8925. LightKickBackExt.SetLitColor 0, 255, 0
  8926. If use_LightSaberFlasherEffect = True then
  8927. FlasherSabreL.Set BulbBlink, "10", 25
  8928. Else
  8929. FlasherSabreL.Set BulbOn
  8930. End If
  8931. xBAM.SetTexture "LightDefend1", "!SW_PF_Green", "0"
  8932. xBAM.SetTexture "LightDefend2", "!SW_PF_Green", "0"
  8933. xBAM.SetTexture "LightDefend3", "!SW_PF_Green", "0"
  8934. xBAM.SetTexture "LightDefend4", "!SW_PF_Green", "0"
  8935. xBAM.SetTexture "LightDefend5", "!SW_PF_Green", "0"
  8936. xBAM.SetTexture "LightDefend6", "!SW_PF_Green", "0"
  8937. xBAM.SetTexture "LightDefend7", "!SW_PF_Green", "0"
  8938. xBAM.SetTexture "LightDefend8", "!SW_PF_Green", "0"
  8939. xBAM.SetTexture "LightDefend9", "!SW_PF_Green", "0"
  8940. xBAM.SetTexture "LightDefend10", "!SW_PF_Green", "0"
  8941. xBAM.SetTexture "LightDefend20", "!SW_PF_Green", "0"
  8942. xBam.SetPlayfieldTexture "!SW_PF_Green"
  8943. Case 3: SaberBlueGlow.Frame 9, 10, 9 ' Samual L. Jackson
  8944. FlasherSabreLExt.SetLitColor 128, 0, 255
  8945. SabreLight1Ext.SetLitColor 128, 0, 255
  8946. SabreLight2Ext.SetLitColor 128, 0, 255
  8947. BulbLSClash1Ext.SetLitColor 128, 0, 255
  8948. LeftOutBulb1Ext.SetLitColor 128, 0, 255
  8949. LeftOutBulb2Ext.SetLitColor 128, 0, 255
  8950. LeftOutBulb3Ext.SetLitColor 128, 0, 255
  8951. LeftOutBulb4Ext.SetLitColor 128, 0, 255
  8952. LeftOutBulb5Ext.SetLitColor 128, 0, 255
  8953. FlasherRL1Ext.SetLitColor 128, 0, 255
  8954. LightKickBackExt.SetLitColor 128, 0, 255
  8955. If use_LightSaberFlasherEffect = True then
  8956. FlasherSabreL.Set BulbBlink, "10", 25
  8957. Else
  8958. FlasherSabreL.Set BulbOn
  8959. End If
  8960. xBAM.SetTexture "LightDefend1", "!SW_PF_Purple", "0"
  8961. xBAM.SetTexture "LightDefend2", "!SW_PF_Purple", "0"
  8962. xBAM.SetTexture "LightDefend3", "!SW_PF_Purple", "0"
  8963. xBAM.SetTexture "LightDefend4", "!SW_PF_Purple", "0"
  8964. xBAM.SetTexture "LightDefend5", "!SW_PF_Purple", "0"
  8965. xBAM.SetTexture "LightDefend6", "!SW_PF_Purple", "0"
  8966. xBAM.SetTexture "LightDefend7", "!SW_PF_Purple", "0"
  8967. xBAM.SetTexture "LightDefend8", "!SW_PF_Purple", "0"
  8968. xBAM.SetTexture "LightDefend9", "!SW_PF_Purple", "0"
  8969. xBAM.SetTexture "LightDefend10", "!SW_PF_Purple", "0"
  8970. xBAM.SetTexture "LightDefend20", "!SW_PF_Purple", "0"
  8971. xBam.SetPlayfieldTexture "!SW_PF_Purple"
  8972. Case 4: SaberBlueGlow.Frame 11, 12, 11 ' Yellow
  8973. FlasherSabreLExt.SetLitColor 255, 255, 0
  8974. SabreLight1Ext.SetLitColor 255, 255, 0
  8975. SabreLight2Ext.SetLitColor 255, 255, 0
  8976. BulbLSClash1Ext.SetLitColor 255, 255, 0
  8977. LeftOutBulb1Ext.SetLitColor 255, 255, 0
  8978. LeftOutBulb2Ext.SetLitColor 255, 255, 0
  8979. LeftOutBulb3Ext.SetLitColor 255, 255, 0
  8980. LeftOutBulb4Ext.SetLitColor 255, 255, 0
  8981. LeftOutBulb5Ext.SetLitColor 255, 255, 0
  8982. FlasherRL1Ext.SetLitColor 255, 255, 0
  8983. LightKickBackExt.SetLitColor 255, 255, 0
  8984. If use_LightSaberFlasherEffect = True then
  8985. FlasherSabreL.Set BulbBlink, "10", 25
  8986. Else
  8987. FlasherSabreL.Set BulbOn
  8988. End If
  8989. xBAM.SetTexture "LightDefend1", "!SW_PF_Yellow", "0"
  8990. xBAM.SetTexture "LightDefend2", "!SW_PF_Yellow", "0"
  8991. xBAM.SetTexture "LightDefend3", "!SW_PF_Yellow", "0"
  8992. xBAM.SetTexture "LightDefend4", "!SW_PF_Yellow", "0"
  8993. xBAM.SetTexture "LightDefend5", "!SW_PF_Yellow", "0"
  8994. xBAM.SetTexture "LightDefend6", "!SW_PF_Yellow", "0"
  8995. xBAM.SetTexture "LightDefend7", "!SW_PF_Yellow", "0"
  8996. xBAM.SetTexture "LightDefend8", "!SW_PF_Yellow", "0"
  8997. xBAM.SetTexture "LightDefend9", "!SW_PF_Yellow", "0"
  8998. xBAM.SetTexture "LightDefend10", "!SW_PF_Yellow", "0"
  8999. xBAM.SetTexture "LightDefend20", "!SW_PF_Yellow", "0"
  9000. xBam.SetPlayfieldTexture "!SW_PF_Yellow"
  9001. Case 5: SaberBlueGlow.Frame 13, 14, 13 ' Orange
  9002. FlasherSabreLExt.SetLitColor 255, 128, 0
  9003. SabreLight1Ext.SetLitColor 255, 128, 0
  9004. SabreLight2Ext.SetLitColor 255, 128, 0
  9005. BulbLSClash1Ext.SetLitColor 255, 128, 0
  9006. LeftOutBulb1Ext.SetLitColor 255, 128, 0
  9007. LeftOutBulb2Ext.SetLitColor 255, 128, 0
  9008. LeftOutBulb3Ext.SetLitColor 255, 128, 0
  9009. LeftOutBulb4Ext.SetLitColor 255, 128, 0
  9010. LeftOutBulb5Ext.SetLitColor 255, 128, 0
  9011. FlasherRL1Ext.SetLitColor 255, 128, 0
  9012. LightKickBackExt.SetLitColor 255, 128, 0
  9013. If use_LightSaberFlasherEffect = True then
  9014. FlasherSabreL.Set BulbBlink, "10", 25
  9015. Else
  9016. FlasherSabreL.Set BulbOn
  9017. End If
  9018. xBAM.SetTexture "LightDefend1", "!SW_PF_Orange", "0"
  9019. xBAM.SetTexture "LightDefend2", "!SW_PF_Orange", "0"
  9020. xBAM.SetTexture "LightDefend3", "!SW_PF_Orange", "0"
  9021. xBAM.SetTexture "LightDefend4", "!SW_PF_Orange", "0"
  9022. xBAM.SetTexture "LightDefend5", "!SW_PF_Orange", "0"
  9023. xBAM.SetTexture "LightDefend6", "!SW_PF_Orange", "0"
  9024. xBAM.SetTexture "LightDefend7", "!SW_PF_Orange", "0"
  9025. xBAM.SetTexture "LightDefend8", "!SW_PF_Orange", "0"
  9026. xBAM.SetTexture "LightDefend9", "!SW_PF_Orange", "0"
  9027. xBAM.SetTexture "LightDefend10", "!SW_PF_Orange", "0"
  9028. xBAM.SetTexture "LightDefend20", "!SW_PF_Orange", "0"
  9029. xBam.SetPlayfieldTexture "!SW_PF_Orange"
  9030. End Select
  9031. End Sub
  9032.  
  9033.  
  9034. Sub LSLOff()
  9035. Call MiniPlayField_0.MoveTo( 20, 906, -80, 0, 0, 0, 1, 0) ' move the full lightsabre below the table, hide it...
  9036. Call MiniPlayField_4.MoveTo( 22, 917.8, 80, 0, 0, 0, 1, 0) ' replace with handle only...
  9037. BulbLSL.State = BulbOff
  9038. FlasherRL1.State = BulbOff
  9039. FlasherRL1Ext.SetLitColor 130,94,40
  9040. FlasherSabreL.State = BulbOff
  9041. SaberBlueGlow.Frame 1
  9042. End Sub
  9043.  
  9044.  
  9045.  
  9046. Sub LSROn()
  9047. Call MiniPlayField_1.MoveTo( 497, 910, 80, 0, 0, 0, 1, 0) ' move the full lightsabre below the table, hide it...
  9048. Call MiniPlayField_5.MoveTo( 496, 915, -80, 0, 0, 0, 1, 0) ' replace with handle only...
  9049. BulbLSR.State = BulbOn
  9050. FlasherRL2.State = BulbOn
  9051. FlasherRL2Ext.SetLitColor 255,0,0
  9052. If use_LightSaberFlasherEffect = True then
  9053. FlasherSabreR.Set BulbBlink, "10", 25
  9054. Else
  9055. FlasherSabreR.Set BulbOn
  9056. End If
  9057. SaberRedGlow.UpdateInterval = 25
  9058. SaberRedGlow.Frame 5, 6, 5
  9059. End Sub
  9060.  
  9061.  
  9062.  
  9063. Sub LSROff()
  9064. Call MiniPlayField_1.MoveTo( 497, 910, -80, 0, 0, 0, 1, 0)' move the full lightsabre back into place...
  9065. Call MiniPlayField_5.MoveTo( 496, 915, 80, 0, 0, 0, 1, 0)' hide the handle only...
  9066. BulbLSR.State = BulbOff
  9067. FlasherRL2.State = BulbOff
  9068. FlasherRL2Ext.SetLitColor 79,100,132
  9069. FlasherSabreR.State = BulbOff
  9070. SaberRedGlow.Frame 1
  9071. End Sub
  9072.  
  9073.  
  9074.  
  9075. ' the R2-D2 toy is controlled here, make him do whatever you wish, fetch a beer if you like...
  9076.  
  9077. ' after his little showoff dance when the game is first powered on, he only moves left and right during the game, but he will
  9078. ' come out and celebrate a highscore.....beep-bop-beepy-bop
  9079.  
  9080. Sub MoveR2_Expired()
  9081. R2Move = R2Move + 1
  9082. Select Case R2Animate
  9083. Case 1:
  9084. Select Case R2Move
  9085. Case 1: ' R2 moves out from his resting position, across the glass bridge to the plastic...
  9086. HologramR2D2.Frame 1
  9087. R2Out = TRUE
  9088. PlayMusic 8, "fx_R2Move": MoveFx.Set TRUE, 2200
  9089. Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 0, 1, 2.2): MoveR2.Set TRUE, 3500
  9090. Case 2: ' R2 moves left...
  9091. R2HeadBulb.State = BulbOn
  9092. Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, -25, 1, 1.5): MoveR2.Set TRUE, 2500
  9093. Case 3: ' R2 moves right...
  9094. Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 25, 1, 3): MoveR2.Set TRUE, 4000
  9095. Case 4: ' R2 moves centre...
  9096. R2HeadBulb.State = BulbBlink
  9097. PlaySound "fx_R2Sound5"
  9098. Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 0, 1, 1.5): MoveR2.Set TRUE, 2500
  9099. Case 5: ' R2 turns around 180 degrees...
  9100. R2HeadBulb.State = BulbOff
  9101. PlayMusic 8, "fx_R2Move"
  9102. PlaySound "fx_R2Sound21"
  9103. PlaySound "fx_R2HeadMotor2"
  9104. R2D2.PopDown
  9105. Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 180, 1, 1.2): MoveR2.Set TRUE, 1200
  9106. Case 6: ' R2 turns around 180 degrees...
  9107. PlayMusic 8, "fx_R2Move": MoveFx.Set TRUE, 2.4
  9108. PlaySound "fx_R2HeadMotor2"
  9109. Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 355, 1, 1.2): MoveR2.Set TRUE, 2500
  9110. Case 7: ' R2 turns around 180 degrees...
  9111. PlaySound "fx_R2Sound18"
  9112. PlaySound "fx_R2HeadMotor2"
  9113. R2D2.PopDown
  9114. Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 180, 1, 2.5): MoveR2.Set TRUE, 2500
  9115. Case 8: ' R2 moves back to his resting area...
  9116. PlayMusic 8, "fx_R2Move"
  9117. If (fpGameInPlay = FALSE) Then PlaySound "fx_R2Sound13"
  9118. PlaySound "fx_R2HeadMotor2"
  9119. R2D2.SolenoidPulse
  9120. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 180, 1, 2.2): MoveR2.Set TRUE, 2200
  9121. Case 9: ' R2 turns around to face forward...
  9122. R2Out = FALSE
  9123. PlayMusic 8, "fx_R2Move": MoveFx.Set TRUE, 2000
  9124. If (fpGameInPlay = FALSE) Then PlaySound "fx_R2Sound14"
  9125. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 2): MoveR2.Set TRUE, 2000
  9126. Case 10:
  9127. MoveR2.Enabled = FALSE
  9128. R2Animate = 1
  9129. R2Move = 0
  9130. If (fpGameInPlay = FALSE) Then
  9131. PlaySound "fx_R2Sound20"
  9132. R2HeadBulb.State = BulbOn
  9133. HologramR2D2.Frame 12: R2D2Fade.Set TRUE, 4000
  9134. End If
  9135. End Select
  9136. Case 2:
  9137. Select Case R2Move
  9138. Case 1: ' R2 moves out from his resting position, across the glass bridge to the plastic...
  9139. HologramR2D2.Frame 1
  9140. R2Out = TRUE
  9141. PlayMusic 8, "fx_R2Move": MoveFx.Set TRUE, 2200
  9142. Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 0, 1, 1.8): MoveR2.Set TRUE, 1800
  9143. Case 2: ' R2 turns around 180 degrees...
  9144. R2HeadBulb.State = BulbOff
  9145. PlayMusic 8, "fx_R2Move"
  9146. PlaySound "fx_R2HeadMotor2"
  9147. R2D2.PopDown
  9148. Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 180, 1, 1.2): MoveR2.Set TRUE, 1200
  9149. Case 3: ' R2 turns around 180 degrees...
  9150. PlayMusic 8, "fx_R2Move": MoveFx.Set TRUE, 2.4
  9151. PlaySound "fx_R2Sound15"
  9152. PlaySound "fx_R2HeadMotor2"
  9153. Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 355, 1, 1.2): MoveR2.Set TRUE, 2000
  9154. Case 4: ' R2 turns around 180 degrees...
  9155. PlaySound "fx_R2HeadMotor2"
  9156. R2D2.PopDown
  9157. Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 180, 1, 2): MoveR2.Set TRUE, 2000
  9158. Case 5: ' R2 moves back to his resting area...
  9159. PlayMusic 8, "fx_R2Move"
  9160. PlaySound "fx_R2HeadMotor2"
  9161. R2D2.SolenoidPulse
  9162. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 180, 1, 1.8): MoveR2.Set TRUE, 1800
  9163. Case 6: ' R2 turns around to face forward...
  9164. R2Out = FALSE
  9165. PlayMusic 8, "fx_R2Move": MoveFx.Set TRUE, 1800
  9166. Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1.8): MoveR2.Set TRUE, 1800
  9167. Case 7:
  9168. MoveR2.Enabled = FALSE
  9169. R2Animate = 1
  9170. R2Move = 0
  9171. End Select
  9172. End Select
  9173. End Sub
  9174.  
  9175.  
  9176.  
  9177. Dim XMove
  9178.  
  9179.  
  9180.  
  9181. ' X-Wing Toy...
  9182.  
  9183. ' not used - replaced by new TerryRed XWing. Still need to keep this mini-playfield so the numerical order of other mini-playfields won't get messed up.
  9184.  
  9185. Dim MiniPlayField_3 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9186. Set MiniPlayField_3 = xBAM.CreateMiniPlayfield( 45, 50, 320, 335, 60, 70, 50, 325, 50)
  9187.  
  9188. Call MiniPlayField_3.MoveTo( 60, 325, 40, 0, 0, 0, 1, 0) ' resting on plastics, facing down...
  9189.  
  9190.  
  9191. ' control of the X-Wing toy, for now it just wobbles a bit...but still better than Stern's TIE fighter on a spring. $6000, ta very much....suckers!!!
  9192.  
  9193. 'Sub XWingMove_Expired()
  9194. ' XWingMove.Enabled = FALSE
  9195. ' Select Case XMove
  9196. ' Case 1:
  9197. 'Call MiniPlayField_3.MoveTo( 60, 325, 50, 0, 0, -30, 1.3, 3.4) ' raise up and turn to the right...(game start)
  9198. ' Case 2:
  9199. 'Call MiniPlayField_3.MoveTo( 60, 325, 50, 0, 0, -20, 1.3, 0.1) ' move quickly to the left...(fire on TIE fighter)
  9200. 'XWingMove.Set TRUE, 500: XMove = 3
  9201. ' Case 3:
  9202. 'Call MiniPlayField_3.MoveTo( 60, 325, 50, 0, 0, -30, 1.3, 0.1) ' move quickly to the right...(back to formation)
  9203. ' Case 4:
  9204. 'Call MiniPlayField_3.MoveTo( 60, 325, 40, 0, 0, 0, 1, 2) ' resting on plastics, facing down...(landing, game over)
  9205. ' Case 5:
  9206. 'Call MiniPlayField_3.MoveTo( 60, 325, 50, -15, 0, -50, 1.3, 0.1) ' luke takes a hit...(kickback)
  9207. 'XWingMove.Set TRUE, 300: XMove = 6
  9208. ' Case 6:
  9209. 'Call MiniPlayField_3.MoveTo( 60, 325, 50, 0, 0, -30, 1.3, 0.1) ' back to formation...
  9210. ' End Select
  9211. 'End Sub
  9212.  
  9213.  
  9214.  
  9215. Sub MoveFx_Expired()
  9216. MoveFx.Enabled = FALSE
  9217. StopMusic 8
  9218. End Sub
  9219.  
  9220.  
  9221.  
  9222. Sub Guide36_Hit(): PlaySound "fx_RubberSoftHit": End Sub
  9223. Sub Guide37_Hit(): PlaySound "fx_RubberSoftHit": End Sub
  9224. Sub Guide38_Hit(): PlaySound "fx_RubberSoftHit": End Sub
  9225. Sub Guide39_Hit(): PlaySound "fx_RubberSoftHit": End Sub
  9226.  
  9227.  
  9228.  
  9229.  
  9230. Sub R2D2Fade_Expired()
  9231. R2D2Fade.Enabled = FALSE
  9232. HologramR2D2.Frame 1
  9233. R2HeadBulb.State = BulbOff
  9234. End Sub
  9235.  
  9236.  
  9237.  
  9238. ' the Death Star toy will slowly rotate left and right during the game...just enough to let you know it's a menacing threat...
  9239.  
  9240. ' a spot lamp in front of it will highlight it during certain events in the game...
  9241.  
  9242. Sub DSSpin_Expired()
  9243. DSSpin.Set TRUE, 6000
  9244. Select Case SpinMe
  9245. Case 0: DSToy.RotateXZ 5: SpinMe = 1
  9246. Case 1: DSToy.RotateXZ -5: SpinMe = 0
  9247. End Select
  9248. End Sub
  9249.  
  9250.  
  9251.  
  9252.  
  9253. Dim MSaveR,MSActive,MagPower,ForcePower(4)
  9254. Set MSaveR = xBAM.CreateMagneticField(MagnetR.X, MagnetR.Y, -20, 65, 0)
  9255.  
  9256.  
  9257. ' ** SPOILER ** you don't actually have Force powers, it's a magnet doing all the heavy lifting, but for a second or two, you will
  9258. ' feel a little bit special...
  9259.  
  9260.  
  9261. Sub ForcePowerOnR()
  9262. MSActive = TRUE
  9263. ForcePower(CP) = 0
  9264. If (QuoteBusy = FALSE) Then
  9265. QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
  9266. Select Case RandomNumber(3)
  9267. Case 1: MusicFade(1100): PlaySound "vo_ForceWithYou2": VaderScoreLight.FlashForMs 1100, 1100, VaderScoreLight.State
  9268. Case 2: MusicFade(1200): PlaySound "vo_JediMaster2"
  9269. Case 3: MusicFade(3200): PlaySound "vo_TheForce": QuoteTimer.Set TRUE, 3200
  9270. End Select
  9271. End If
  9272.  
  9273. LightSeqPF.Play SeqBlinking, , 3, 75
  9274. PlayMusic 6, "fx_Magnet", FALSE, 0.7
  9275. MSaveR.MaxForce = 15
  9276. MSaveR.Strength = 70
  9277. MagPower = 0: MSaveTimer.Set TRUE, 100
  9278. End Sub
  9279.  
  9280.  
  9281.  
  9282. Sub MSaveTimer_Expired()
  9283. MagPower = MagPower + 1
  9284. Select Case MagPower
  9285. Case 1:
  9286. MagnoWall.Collidable = TRUE
  9287. Case 2:
  9288. MSaveTimer.Set TRUE, 1000
  9289. MSaveR.Strength = 30
  9290. Case 3:
  9291. StopMusic 6
  9292. MSaveR.Strength = 0
  9293. MSActive = FALSE
  9294. Case 4:
  9295. MSaveTimer.Enabled = FALSE
  9296. MagnoWall.Collidable = FALSE
  9297. MagnoWall2.Collidable = FALSE
  9298. End Select
  9299. End Sub
  9300.  
  9301.  
  9302.  
  9303. Sub MagnetR_Hit()
  9304. If (MSActive = TRUE) Then
  9305. MagnoWall.Collidable = FALSE
  9306. MagnoWall2.Collidable = TRUE
  9307. End If
  9308. End Sub
  9309.  
  9310.  
  9311.  
  9312. Sub TheForce2_Hit()
  9313. If (ForcePower(CP) = 1) Then ForcePowerOnR()
  9314. set LastSwitchHit = TheForce
  9315. End Sub
  9316.  
  9317.  
  9318. Sub TheForce_Hit()
  9319. set LastSwitchHit = TheForce2
  9320. End Sub
  9321.  
  9322.  
  9323. ' thanks for scrolling this far down.....it gets rather lonely down here :(
  9324.  
  9325.  
  9326.  
  9327.  
  9328. '////////////////////////////// Smoke's FP Ball Rolling Sounds //////////////////////////////
  9329.  
  9330. dim ZRBrampHeight
  9331. dim ZRBtablewide
  9332. dim ZRBrampVolNormLevel
  9333. dim ZRBsoundballchan
  9334. dim ZRBrampSoundballchan
  9335. dim ZRBvolNormLevel
  9336. dim ZRBrollingSound
  9337. dim ZRBPitchTunning
  9338. dim ZRBrampRollingSound
  9339. dim ZRBrampPitchTunning
  9340.  
  9341. dim ZRBwireVolNormLevel
  9342. dim ZRBwireRollingSound
  9343. dim ZRBwirePitchTunning
  9344.  
  9345. dim zmaxspeedworldrecord
  9346.  
  9347. '**************************************
  9348. ' TABLE SETTINGS - Ball Rolling Sounds
  9349. '**************************************
  9350.  
  9351. ZRBrampHeight = 27
  9352. ZRBtablewide = 516
  9353.  
  9354. ZRBsoundballchan = 7
  9355. ZRBvolNormLevel = 1 'Future Pinball ball rolling volume
  9356.  
  9357. ZRBrollingSound = "zfx_ballrollingb2"
  9358. ZRBPitchTunning = -40
  9359.  
  9360. ZRBrampSoundballchan = -1 'set to -1 to disable rampsound roll
  9361. ZRBrampVolNormLevel = 0.1
  9362. ZRBrampRollingSound = "zfx_ballrolramp"
  9363. ZRBrampPitchTunning = 40 '20
  9364.  
  9365. ZRBwireVolNormLevel = 2.0
  9366. ZRBwireRollingSound = "zfx_ballrolwire"
  9367. ZRBwirePitchTunning = 10 '60
  9368.  
  9369. '*********************************************
  9370. ' End of TABLE SETTINGS - Ball Rolling Sounds
  9371. '*********************************************
  9372.  
  9373. Const ZRBsearchshifterror = 900 'max radius*radius-> 30mm*30mm=900
  9374.  
  9375. Const ZRBvelTuning = 25
  9376. Const ZRBvolTuning = 2300
  9377.  
  9378. Dim ZRBtrakedSoundBalls(20)
  9379. Dim ZRBwireSoundBalls(20)
  9380.  
  9381. dim ZRBlastfoundFastBallResultPF
  9382. dim ZRBlastfoundFastBallResultRamp
  9383. dim ZRBlastRampSound
  9384. dim ZRBchanRampPaused
  9385. dim ZRBchanPFPaused
  9386.  
  9387.  
  9388. Sub RollingBallUpdateTimer_Expired()
  9389. dim volRampFactor,invvolRampFactor,tmpPitch,tmpVol,tmpballonwire
  9390. dim foundFastBallResultPF,foundFastBallResultRamp
  9391.  
  9392.  
  9393.  
  9394. 'SOUND MODE
  9395.  
  9396. set foundFastBallResultPF=foundFastBallPlayfield()
  9397. set foundFastBallResultRamp=foundFastBallRamp()
  9398. tmpballonwire=stillBallOnWire()
  9399.  
  9400.  
  9401. volRampFactor=1.0
  9402. invvolRampFactor=0.0
  9403.  
  9404.  
  9405. if (foundFastBallResultPF is nothing) then
  9406. if not(ZRBlastfoundFastBallResultPF is nothing) then
  9407. ZRBchanPFPaused=true
  9408. set ZRBlastfoundFastBallResultPF=nothing
  9409. EffectMusic ZRBsoundballchan, Pause, 0, 0
  9410. end if
  9411. else
  9412. set ZRBlastfoundFastBallResultPF = foundFastBallResultPF
  9413. ' play the rolling sound for each ball
  9414. If ((zfunBallVel(foundFastBallResultPF)>1)) Then
  9415.  
  9416. volRampFactor=1.0/((relativeBallHeight(foundFastBallResultPF.PositionGlobal.z)/7) ^2 +1)
  9417.  
  9418. if (ZRBchanPFPaused) then
  9419. ZRBchanPFPaused=false
  9420. EffectMusic ZRBsoundballchan, ResumePlaying, 0, 0
  9421. end if
  9422. EffectMusic ZRBsoundballchan, SetVolume, zfunVol(foundFastBallResultPF)*volRampFactor*ZRBvolNormLevel, 0
  9423. EffectMusic ZRBsoundballchan, SetFrequency, 0, zfunPitch(foundFastBallResultPF)+ZRBPitchTunning
  9424.  
  9425. 'AddDebugText ( relativeBallHeight(foundFastBallResultPF.PositionGlobal.z) ) & " " & volRampFactor &" P"&time()
  9426.  
  9427. 'if (round(100*(zfunVol(foundFastBallResultPF)*volRampFactor))>10) then
  9428. 'AddDebugText "v "&round(100*(zfunVol(foundFastBallResultPF)*volRampFactor)) & " P "&(zfunPitch(foundFastBallResultPF)+ZRBPitchTunning)
  9429. 'end if
  9430. Else
  9431. if not(ZRBchanPFPaused) then
  9432. ZRBchanPFPaused=true
  9433. EffectMusic ZRBsoundballchan, Pause, 0, 0
  9434. end if
  9435. End If
  9436. end if
  9437.  
  9438. if (ZRBrampSoundballchan>0) then
  9439. if (foundFastBallResultRamp is nothing) then
  9440. if not(ZRBlastfoundFastBallResultRamp is nothing) then
  9441. set ZRBlastfoundFastBallResultRamp=nothing
  9442. ZRBchanRampPaused=true
  9443. EffectMusic ZRBrampSoundballchan, Pause, 0, 0
  9444. end if
  9445.  
  9446. else
  9447. set ZRBlastfoundFastBallResultRamp = foundFastBallResultRamp
  9448. ' play the rolling sound for each ball
  9449. If ((zfunBallVel(foundFastBallResultRamp)>1)) Then
  9450.  
  9451. volRampFactor=1.0-1.0/((relativeBallHeight(foundFastBallResultRamp.PositionGlobal.z)/7) ^2 +1)
  9452. if (volRampFactor<0.0) then
  9453. volRampFactor=0.0
  9454. end if
  9455.  
  9456.  
  9457. if (tmpballonwire) then
  9458. if (ZRBlastRampSound=ZRBrampRollingSound) then
  9459. ZRBlastRampSound=ZRBwireRollingSound
  9460. StopMusic ZRBrampSoundballchan
  9461. PlayMusic ZRBrampSoundballchan, ZRBwireRollingSound, TRUE ,0 ,0
  9462. else
  9463. if (ZRBchanRampPaused) then
  9464. ZRBchanRampPaused=false
  9465. EffectMusic ZRBrampSoundballchan, ResumePlaying, 0, 0
  9466. end if
  9467. end if
  9468. EffectMusic ZRBrampSoundballchan, SetVolume, zfunVol(foundFastBallResultRamp)*volRampFactor*ZRBwireVolNormLevel, 0
  9469. EffectMusic ZRBrampSoundballchan, SetFrequency, 0, zfunPitch(foundFastBallResultRamp)+ZRBwirePitchTunning
  9470. 'AddDebugText "ww->"&zfunVol(foundFastBallResultRamp)*volRampFactor*ZRBwireVolNormLevel
  9471. else
  9472. if not(ZRBlastRampSound=ZRBrampRollingSound) then
  9473. ZRBlastRampSound=ZRBrampRollingSound
  9474. StopMusic ZRBrampSoundballchan
  9475. PlayMusic ZRBrampSoundballchan, ZRBrampRollingSound, TRUE ,0 ,0
  9476. else
  9477. if (ZRBchanRampPaused) then
  9478. ZRBchanRampPaused=false
  9479. EffectMusic ZRBrampSoundballchan, ResumePlaying, 0, 0
  9480. end if
  9481. end if
  9482. EffectMusic ZRBrampSoundballchan, SetVolume, zfunVol(foundFastBallResultRamp)*volRampFactor*ZRBrampVolNormLevel, 0
  9483. EffectMusic ZRBrampSoundballchan, SetFrequency, 0, zfunPitch(foundFastBallResultRamp)+ZRBrampPitchTunning
  9484. end if
  9485. ' AddDebugText relativeBallHeight(foundFastBallResultRamp.PositionGlobal.z) & " " & volRampFactor &" R"&time()
  9486.  
  9487. 'if (round(100*(zfunVol(foundFastBallResultRamp)*volRampFactor))>10) then
  9488. 'AddDebugText "v2 "&round(100*(zfunVol(foundFastBallResultRamp)*volRampFactor)) & "P2 "&(zfunPitch(foundFastBallResultRamp)+ZRBPitchTunning)
  9489. 'end if
  9490. Else
  9491. if not(ZRBchanRampPaused) then
  9492. ZRBchanRampPaused=true
  9493. EffectMusic ZRBrampSoundballchan, Pause, 0, 0
  9494. end if
  9495. End If
  9496. end if
  9497. end if
  9498. End Sub
  9499.  
  9500. Function relativeBallHeight(zzz)
  9501. if (zzz<ZRBrampHeight) then
  9502. relativeBallHeight=0.0
  9503. else
  9504. relativeBallHeight=(zzz-ZRBrampHeight)
  9505. end if
  9506.  
  9507. end Function
  9508.  
  9509. Function zfunVol(ball) ' Calculates the Volume of the sound based on the ball speed
  9510. 'zfunVol = (zfunBallVel(ball) + zfunBallVel(ball) ^2) / ZRBvolTuning
  9511. zfunVol = (zfunBallVel(ball) ^2) / ZRBvolTuning
  9512. if (zfunVol>1.0) then
  9513. zfunVol=1.0
  9514. end if
  9515. End Function
  9516.  
  9517. Function foundFastBallPlayfield() ' Calculates the Volume of the sound based on the ball speed
  9518. dim speed,speedtmp,tmpball,j
  9519. speed=1
  9520. set foundFastBallPlayfield=nothing
  9521. For j = 1 To 20
  9522. set tmpball=ZRBtrakedSoundBalls(j)
  9523. if (not(tmpball is nothing)) then
  9524. speedtmp=zfunBallVel(tmpball)
  9525. if (speedtmp>speed and (tmpball.PositionGlobal.z<ZRBrampHeight)) then
  9526. set foundFastBallPlayfield=tmpball
  9527. speed=speedtmp
  9528. 'AddDebugText j& "fast "& speed
  9529. end if
  9530. end if
  9531. Next
  9532. End Function
  9533.  
  9534. Function foundFastBallRamp() ' Calculates the Volume of the sound based on the ball speed
  9535. dim speed,speedtmp,tmpball,j
  9536. speed=1
  9537. set foundFastBallRamp=nothing
  9538. For j = 1 To 20
  9539. set tmpball= ZRBtrakedSoundBalls(j)
  9540. if (not(tmpball is nothing)) then
  9541. speedtmp=zfunBallVel(tmpball)
  9542. if (speedtmp>speed and (tmpball.PositionGlobal.z>=ZRBrampHeight)) then
  9543. set foundFastBallRamp=tmpball
  9544. speed=speedtmp
  9545. 'AddDebugText j& "fastramp "& speed
  9546. end if
  9547. end if
  9548. Next
  9549. End Function
  9550.  
  9551. 'add a call to this in FuturePinball_BeginPlay
  9552. Sub initTrakedSoundBalls()
  9553. dim j
  9554. RollingBallUpdateTimer.userdata = nothing
  9555.  
  9556. For j = 1 To 20
  9557. set ZRBtrakedSoundBalls(j)=nothing
  9558. set ZRBwireSoundBalls(j)=nothing
  9559. Next
  9560.  
  9561. 'limited to 1 ball sound sorry
  9562. StopMusic ZRBsoundballchan
  9563. PlayMusic ZRBsoundballchan, ZRBrollingSound, TRUE ,0 ,0
  9564. EffectMusic ZRBsoundballchan, Pause, 0, 0
  9565.  
  9566. if (ZRBrampSoundballchan>0) then
  9567. StopMusic ZRBrampSoundballchan
  9568. PlayMusic ZRBrampSoundballchan, ZRBrampRollingSound, TRUE ,0 ,0
  9569. EffectMusic ZRBrampSoundballchan, Pause, 0, 0
  9570. end if
  9571.  
  9572.  
  9573. set ZRBlastfoundFastBallResultPF= nothing
  9574. set ZRBlastfoundFastBallResultRamp= nothing
  9575. ZRBchanRampPaused=true
  9576. ZRBchanPFPaused=true
  9577.  
  9578. zmaxspeedworldrecord=0.0
  9579.  
  9580. ZRBlastRampSound=ZRBrampRollingSound
  9581.  
  9582. AddDebugText "ZRBrampHeight "&ZRBrampHeight
  9583. AddDebugText "ZRBtablewide "& ZRBtablewide
  9584. AddDebugText "ZRBsoundballchan "& ZRBsoundballchan
  9585. AddDebugText "ZRBvolNormLevel "& ZRBvolNormLevel
  9586. AddDebugText "ZRBrollingSound "& ZRBrollingSound
  9587. AddDebugText "ZRBPitchTunning "& ZRBPitchTunning
  9588. AddDebugText "ZRBrampSoundballchan "& ZRBrampSoundballchan
  9589. AddDebugText "ZRBrampVolNormLevel "& ZRBrampVolNormLevel
  9590. AddDebugText "ZRBrampRollingSound "& ZRBrampRollingSound
  9591. AddDebugText "ZRBrampPitchTunning "& ZRBrampPitchTunning
  9592. AddDebugText "ZRBwireVolNormLevel "& ZRBwireVolNormLevel
  9593. AddDebugText "ZRBwireRollingSound "& ZRBwireRollingSound
  9594. AddDebugText "ZRBwirePitchTunning "& ZRBwirePitchTunning
  9595.  
  9596.  
  9597. RollingBallUpdateTimer.set true,50
  9598.  
  9599. end sub
  9600.  
  9601.  
  9602. 'called when creating a ball (PlungerKicker ?)
  9603. 'zbrcreator=trigger/kicker
  9604. 'zbrtriggheight=height of the trigger (default to 0)
  9605. Sub addTrackedBall(zbrcreator)
  9606. addTrackedBallHeight zbrcreator,0.0
  9607. end sub
  9608. Sub addTrackedBallHeight(zbrcreator,zbrcreatorheight)
  9609. dim j , tmpfoundindex ,tmpball
  9610.  
  9611. RollingBallUpdateTimer.set false
  9612.  
  9613. set tmpball = xBAM_BallCloseTo(zbrcreator.x, zbrcreator.y,zbrcreatorheight)
  9614. 'AddDebugText zbrcreator.x&" "&zbrcreator.y
  9615. if (tmpball is nothing) then
  9616. AddDebugText "BUUGGGGGGGGG xBAM_BallCloseTo"
  9617. end if
  9618. tmpfoundindex=-1
  9619.  
  9620. For j = 1 To 20
  9621. if (ZRBtrakedSoundBalls(j) is nothing) then
  9622. if (tmpfoundindex=-1) then
  9623. tmpfoundindex = j
  9624. end if
  9625. else
  9626. if ( ((tmpball.PositionGlobal.x-ZRBtrakedSoundBalls(j).PositionGlobal.x)^2+(tmpball.PositionGlobal.y-ZRBtrakedSoundBalls(j).PositionGlobal.y)^2+(tmpball.PositionGlobal.z-ZRBtrakedSoundBalls(j).PositionGlobal.z)^2)<ZRBsearchshifterror ) then
  9627. tmpfoundindex=-2
  9628. AddDebugText "cleanedc->"&j&" "& ((tmpball.PositionGlobal.x-ZRBtrakedSoundBalls(j).PositionGlobal.x)^2+(tmpball.PositionGlobal.y-ZRBtrakedSoundBalls(j).PositionGlobal.y)^2+(tmpball.PositionGlobal.z-ZRBtrakedSoundBalls(j).PositionGlobal.z)^2)
  9629. end if
  9630. end if
  9631. Next
  9632.  
  9633. if (tmpfoundindex>-1) then
  9634. set ZRBtrakedSoundBalls(tmpfoundindex) = tmpball
  9635. AddDebugText "addc->"&tmpfoundindex&" "& ((tmpball.PositionGlobal.x-ZRBtrakedSoundBalls(tmpfoundindex).PositionGlobal.x)^2+(tmpball.PositionGlobal.y-ZRBtrakedSoundBalls(tmpfoundindex).PositionGlobal.y)^2+(tmpball.PositionGlobal.z-ZRBtrakedSoundBalls(tmpfoundindex).PositionGlobal.z)^2)
  9636. end if
  9637.  
  9638. RollingBallUpdateTimer.set true,50
  9639. end Sub
  9640.  
  9641. 'called when creating a ball is on metal ramp
  9642. 'zbrtrigg=trigger
  9643. 'zbrtriggheight=height of the trigger (default to 0)
  9644. Sub addWireRampTrackedBall(zbrtrigg)
  9645. addWireRampTrackedBallHeight zbrtrigg,0.0
  9646. end sub
  9647. Sub addWireRampTrackedBallHeight(zbrtrigg,zbrtriggheight)
  9648. dim j , tmpfoundindex ,tmpball
  9649.  
  9650. RollingBallUpdateTimer.set false
  9651.  
  9652.  
  9653. set tmpball = xBAM_BallCloseTo(zbrtrigg.x, zbrtrigg.y,zbrtriggheight)
  9654. 'AddDebugText zbrtrigg.x&" "&zbrtrigg.y
  9655. if (tmpball is nothing) then
  9656. AddDebugText "BUUGGGGGGGGG xBAM_BallCloseTo"
  9657. end if
  9658. tmpfoundindex=-1
  9659.  
  9660. For j = 1 To 20
  9661. if (ZRBwireSoundBalls(j) is nothing) then
  9662. if (tmpfoundindex=-1) then
  9663. tmpfoundindex = j
  9664. end if
  9665. else
  9666. if ( ((tmpball.PositionGlobal.x-ZRBwireSoundBalls(j).PositionGlobal.x)^2+(tmpball.PositionGlobal.y-ZRBwireSoundBalls(j).PositionGlobal.y)^2+(tmpball.PositionGlobal.z-ZRBwireSoundBalls(j).PositionGlobal.z)^2)<ZRBsearchshifterror ) then
  9667. tmpfoundindex=-2
  9668. AddDebugText "cleanedw->"&j&" "& ((tmpball.PositionGlobal.x-ZRBwireSoundBalls(j).PositionGlobal.x)^2+(tmpball.PositionGlobal.y-ZRBwireSoundBalls(j).PositionGlobal.y)^2+(tmpball.PositionGlobal.z-ZRBwireSoundBalls(j).PositionGlobal.z)^2)
  9669. end if
  9670. end if
  9671. Next
  9672.  
  9673. if (tmpfoundindex>-1) then
  9674. set ZRBwireSoundBalls(tmpfoundindex) = tmpball
  9675. AddDebugText "addw->"&tmpfoundindex&" "& ((tmpball.PositionGlobal.x-ZRBwireSoundBalls(tmpfoundindex).PositionGlobal.x)^2+(tmpball.PositionGlobal.y-ZRBwireSoundBalls(tmpfoundindex).PositionGlobal.y)^2+(tmpball.PositionGlobal.z-ZRBwireSoundBalls(tmpfoundindex).PositionGlobal.z)^2)
  9676. end if
  9677.  
  9678. RollingBallUpdateTimer.set true,50
  9679. end Sub
  9680.  
  9681.  
  9682.  
  9683. 'to force a remove for wire sound in some case
  9684. 'zbrtrigg=trigger
  9685. 'zbrtriggheight=height of the trigger (default to 0)
  9686. Sub removeWireRampTrackedBall(zbrtrigg)
  9687. removeWireRampTrackedBallHeight zbrtrigg,0.0
  9688. end sub
  9689. Sub removeWireRampTrackedBallHeight(zbrtrigg,zbrtriggheight)
  9690. dim j,tmpball
  9691.  
  9692. 'AddDebugText "remove wire " &zbrtrigg.x&" "&zbrtrigg.y
  9693.  
  9694. RollingBallUpdateTimer.set false
  9695.  
  9696. For j = 1 To 20
  9697. if not(ZRBwireSoundBalls(j) is nothing) then
  9698. set tmpball=ZRBwireSoundBalls(j)
  9699. if ( ((tmpball.PositionGlobal.x-zbrtrigg.x)^2+(tmpball.PositionGlobal.y-zbrtrigg.y)^2+(tmpball.PositionGlobal.z-zbrtriggheight)^2)<ZRBsearchshifterror ) then
  9700. set ZRBwireSoundBalls(j)=nothing
  9701. AddDebugText "delw "&j&" "&(((tmpball.PositionGlobal.x-zbrtrigg.x)^2+(tmpball.PositionGlobal.y-zbrtrigg.y)^2+(tmpball.PositionGlobal.z-zbrtriggheight)^2))
  9702. else
  9703. AddDebugText "whattttttt" &tmpball.PositionGlobal.x&" "&tmpball.PositionGlobal.y&" "&tmpball.PositionGlobal.z&"-->"&(((tmpball.PositionGlobal.x-zbrtrigg.x)^2+(tmpball.PositionGlobal.y-zbrtrigg.y)^2+(tmpball.PositionGlobal.z-zbrtriggheight)^2))
  9704. end if
  9705. end if
  9706. Next
  9707.  
  9708.  
  9709. RollingBallUpdateTimer.set true,50
  9710.  
  9711. end sub
  9712.  
  9713.  
  9714.  
  9715. 'called by drain_hit
  9716. 'zbrdestroyer=trigger/kicker
  9717. 'zbrdestroyerheight=height of the trigger (default to 0)
  9718. Sub deleteTrackedBall(zbrdestroyer)
  9719. deleteTrackedBallHeight zbrdestroyer,0.0
  9720. end sub
  9721. Sub deleteTrackedBallHeight(zbrdestroyer,zbrdestroyerheight)
  9722. dim j,tmpball
  9723.  
  9724. RollingBallUpdateTimer.set false
  9725.  
  9726. For j = 1 To 20
  9727. if not(ZRBtrakedSoundBalls(j) is nothing) then
  9728. set tmpball=ZRBtrakedSoundBalls(j)
  9729. if ( ((tmpball.PositionGlobal.x-zbrdestroyer.x)^2+(tmpball.PositionGlobal.y-zbrdestroyer.y)^2+(tmpball.PositionGlobal.z-zbrdestroyerheight)^2)<ZRBsearchshifterror ) then
  9730. set ZRBtrakedSoundBalls(j)=nothing
  9731. AddDebugText "del "&j&" "&(((tmpball.PositionGlobal.x-zbrdestroyer.x)^2+(tmpball.PositionGlobal.y-zbrdestroyer.y)^2+(tmpball.PositionGlobal.z-zbrdestroyerheight)^2))
  9732.  
  9733. end if
  9734. end if
  9735. Next
  9736.  
  9737.  
  9738.  
  9739. RollingBallUpdateTimer.set true,50
  9740.  
  9741. end sub
  9742.  
  9743.  
  9744. function stillBallOnWire()
  9745. dim j,tmpball
  9746.  
  9747. stillBallOnWire=false
  9748.  
  9749. For j = 1 To 20
  9750. if not(ZRBwireSoundBalls(j) is nothing) then
  9751. set tmpball=ZRBwireSoundBalls(j)
  9752.  
  9753. if (tmpball.PositionGlobal.z>=ZRBrampHeight) then
  9754. 'AddDebugText "wire "&j&" "&tmpball.PositionGlobal.z
  9755. stillBallOnWire=true
  9756. else
  9757. 'AddDebugText "nowire "&j&" "&tmpball.PositionGlobal.z
  9758. set ZRBwireSoundBalls(j)=nothing
  9759. end if
  9760. end if
  9761. Next
  9762. end Function
  9763.  
  9764.  
  9765. Function zfunPan(ball) ' Calculates the pan for a ball based on the X position on the table.
  9766. Dim tmp
  9767. tmp = ball.PositionGlobal.x * 2 / ZRBtablewide-1
  9768. If tmp > 0 Then
  9769. zfunPan = (tmp ^10)
  9770. Else
  9771. zfunPan = (-((- tmp) ^10))
  9772. End If
  9773. End Function
  9774.  
  9775. Function zfunPitch(ball) ' Calculates the pitch of the sound based on the ball speed
  9776. zfunPitch = round(100+zfunBallVel(ball)/4)
  9777. if (zfunPitch>120) then
  9778. zfunPitch=120
  9779. end if
  9780. End Function
  9781.  
  9782.  
  9783. Function zfunBallVel(ball) 'Calculates the ball speed
  9784. 'yes we don't use the Z that we want
  9785. zfunBallVel = INT( SQR( (ball.velocity.x^2 + ball.velocity.y^2) )/ZRBvelTuning )
  9786. if (zfunBallVel>zmaxspeedworldrecord) then
  9787. zmaxspeedworldrecord = zfunBallVel
  9788. AddDebugText "speedworldrecord "& zmaxspeedworldrecord
  9789. end if
  9790. End Function
  9791.  
  9792. '////////////////////// End of Smoke's FP Ball Rolling Sounds ///////////////////////////
  9793.  
  9794.  
  9795.  
  9796.  
  9797. '#########################################################################
  9798. '################# Epic Space Battles Mini Playfields ####################
  9799.  
  9800.  
  9801. '****** Turbo Laser Turret ******
  9802.  
  9803. Dim MiniPlayField_6 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9804. Set MiniPlayField_6 = xBAM.CreateMiniPlayfield( 603, 658, 276, 331, 40, 90, 632.9, 300.5, 65)
  9805.  
  9806. Call MiniPlayField_6.MoveTo( 352.5, 255.9, 63.8, 0, 0, 50, 1, 0)
  9807.  
  9808. '****** Turbo Laser Cannon ******
  9809.  
  9810. Dim MiniPlayField_7 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9811. Set MiniPlayField_7 = xBAM.CreateMiniPlayfield( 603, 658, 336, 431, 5, 60, 632.901, 345.599, 0)
  9812.  
  9813. Call MiniPlayField_7.MoveTo( 352.5, 255.9, 15.5, 0, 0, 50, 1, 0)
  9814.  
  9815. '****** Millenium Falcon ******
  9816.  
  9817. Dim MiniPlayField_8 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9818. Set MiniPlayField_8 = xBAM.CreateMiniPlayfield( 447, 513, 361, 461, 60, 100, 200, 411, 80)
  9819.  
  9820. Call MiniPlayField_8.MoveTo( 200, 411, 80, 0, 0, 0, 1, 0)
  9821.  
  9822. ' ****** X-Wing (Fly and Explode) ******
  9823.  
  9824. Dim MiniPlayField_9 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9825. Set MiniPlayField_9 = xBAM.CreateMiniPlayfield( -342, -192, 461, 606, 0, 100, -267, -300, 50)
  9826.  
  9827. Call MiniPlayField_9.MoveTo( 203.2, -60, -96.8, 0, 0, 15, 0.7, 0)
  9828.  
  9829. ' ****** Explosion (X-Wing) ******
  9830.  
  9831. Dim MiniPlayField_10 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9832. Set MiniPlayField_10 = xBAM.CreateMiniPlayfield( -767, -427, 361, 661, 0, 160, -600, -355, 50)
  9833.  
  9834. Call MiniPlayField_10.MoveTo( 203.2, -60, 96.8, 0, 0, 15, 0.7, 0)
  9835.  
  9836. ' ****** Tie Fighter: Vader ******
  9837.  
  9838. Dim MiniPlayField_11 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9839. Set MiniPlayField_11 = xBAM.CreateMiniPlayfield( 223, 297, 11, 101, 95, 150, 260, 56, 122.5)
  9840.  
  9841. Call MiniPlayField_11.MoveTo( 260, 56, 122.5, 0, 0, 0, 1, 0)
  9842.  
  9843. '****** Tie Fighter (Stationary and Rotate) ******
  9844.  
  9845. Dim MiniPlayField_12 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9846. Set MiniPlayField_12 = xBAM.CreateMiniPlayfield( 700, 734, 719, 751, 0, 55, 717, 735, 27.5)
  9847.  
  9848. Call MiniPlayField_12.MoveTo( 277, 406.8, 55.9, 0, 0, 30, 2.25, 0)
  9849.  
  9850. '****** X-Wing (Stationary and Rotate) ******
  9851.  
  9852. Dim MiniPlayField_13 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9853. Set MiniPlayField_13 = xBAM.CreateMiniPlayfield( -342, -192, 181, 326, 0, 100, -267, 253.5, 50)
  9854.  
  9855. Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 15, 0.7, 0)
  9856.  
  9857. '****** Tie Fighter (Fly and Explode) ******
  9858.  
  9859. Dim MiniPlayField_14 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9860. Set MiniPlayField_14 = xBAM.CreateMiniPlayfield( 700, 734, 619, 651, 0, 55, 817, 635, 27.5)
  9861.  
  9862. Call MiniPlayField_14.MoveTo( 471.8, 509.4, 55.9, 0, 0, 30, 2.25, 0)
  9863.  
  9864. '****** Explosion (Tie Fighter) ******
  9865.  
  9866. Dim MiniPlayField_15 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9867. Set MiniPlayField_15 = xBAM.CreateMiniPlayfield( 820, 919, 579, 691, 0, 55, 980, 635, 27.5)
  9868.  
  9869. Call MiniPlayField_14.MoveTo( 471.8, 519.4, 55.9, 0, 0, 30, 0, 0)
  9870.  
  9871. '****** Tie Fighter (Fly in and Land)
  9872.  
  9873. Dim MiniPlayField_16 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9874. Set MiniPlayField_16 = xBAM.CreateMiniPlayfield( 700, 734, 519, 551, 0, 55, 422, 535, 27.5)
  9875.  
  9876. Call MiniPlayField_16.MoveTo( 170.6, -401, 190, 0, 0, -90, 2.25, 0)
  9877.  
  9878. '****** Tie Fighter Lasers ******
  9879.  
  9880. Dim MiniPlayField_17 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9881. Set MiniPlayField_17 = xBAM.CreateMiniPlayfield( 553, 588, 71, 171, -20, 5, 570.5, 121, -7.5)
  9882.  
  9883. Dim MiniPlayField_18 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9884. Set MiniPlayField_18 = xBAM.CreateMiniPlayfield( 616.6, 643, 71, 171, -20, 5, 629.8, 121, -7.5)
  9885.  
  9886. Dim MiniPlayField_19 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9887. Set MiniPlayField_19 = xBAM.CreateMiniPlayfield( 676.6, 703, 71, 171, -20, 5, 689.8, 121, -7.5)
  9888.  
  9889. Dim MiniPlayField_20 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9890. Set MiniPlayField_20 = xBAM.CreateMiniPlayfield( 736.6, 763, 71, 171, -20, 5, 749.8, 121, -7.5)
  9891.  
  9892. Call MiniPlayField_17.MoveTo( 229.1, 121.4, 105.1, 0, 0, 25, 0, 0)
  9893. Call MiniPlayField_18.MoveTo( 232.1, 121.4, 105.1, 0, 0, 20, 0, 0)
  9894. Call MiniPlayField_19.MoveTo( 237.7, 121.4, 105.1, 0, 0, 15, 0, 0)
  9895. Call MiniPlayField_20.MoveTo( 247.7, 121.4, 105.1, 0, 0, 10, 0, 0)
  9896.  
  9897. '****** X-Wing Lasers ******
  9898.  
  9899. Dim MiniPlayField_21 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9900. Set MiniPlayField_21 = xBAM.CreateMiniPlayfield( 806.6, 823, 71, 171, -10, 5, 814.8, 121, -2.5)
  9901.  
  9902. Dim MiniPlayField_22 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9903. Set MiniPlayField_22 = xBAM.CreateMiniPlayfield( 851.6, 868, 71, 171, -10, 5, 859.8, 121, -2.5)
  9904.  
  9905. Dim MiniPlayField_23 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9906. Set MiniPlayField_23 = xBAM.CreateMiniPlayfield( 896.6, 913, 71, 171, -10, 5, 904.8, 121, -2.5)
  9907.  
  9908. Dim MiniPlayField_24 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
  9909. Set MiniPlayField_24 = xBAM.CreateMiniPlayfield( 941.6, 958, 71, 171, -10, 5, 949.8, 121, -2.5)
  9910.  
  9911. Call MiniPlayField_21.MoveTo( 100.2, 445.4, 80.1, 0, 0, -110, 0, 0)
  9912. Call MiniPlayField_22.MoveTo( 125.2, 516.8, 62.1, 0, 0, -110, 0, 0)
  9913. Call MiniPlayField_23.MoveTo( 100.2, 445.4, 62.1, 0, 0, -110, 0, 0)
  9914. Call MiniPlayField_24.MoveTo( 125.2, 516.8, 80.1, 0, 0, -110, 0, 0)
  9915.  
  9916.  
  9917. '###############################################################
  9918. '################# Mini Playfield Animations ###################
  9919.  
  9920. ' ****** X-Wing: Hover ******
  9921.  
  9922. Dim XWingHover: XWingHover = false
  9923. Dim XWingHovering: XWingHovering = 0
  9924.  
  9925. Sub XWing_Hover
  9926. if use_Hovering_Ships = false then exit sub
  9927. XWingHover = true
  9928. XWingHovering = 1
  9929. XWingMove.Set TRUE, 1000
  9930. MiniPlayField_13.EasingRotation = xBAM.easeInOutQuad
  9931. MiniPlayField_13.EasingPosition = xBAM.easeInOutQuad
  9932. End Sub
  9933.  
  9934. ' ****** X-Wing: Rotate and Fire at Tie Fighter ******
  9935.  
  9936. Sub XWing_Move
  9937. if use_Animated_Space_Battles = false then exit sub
  9938. If XWingExplode >0 then Exit Sub
  9939. XWingHover = false
  9940. XWingMove.Set TRUE, 500
  9941. MiniPlayField_13.EasingRotation = xBAM.easeInOutQuad
  9942. Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, -20, 0.7, 0.15)
  9943. XWing_Laser_Timer.set True, 150: XWingLaser = 17
  9944. End Sub
  9945.  
  9946. ' ****** X-Wing: Kickback ******
  9947.  
  9948. Sub XWing_Kickback
  9949. if use_Animated_Space_Battles = false then exit sub
  9950. If XWingExplode >0 then Exit Sub
  9951. XWingHover = false
  9952. XWingMove.Set TRUE, 300
  9953. MiniPlayField_13.EasingRotation = xBAM.easeInOutQuad
  9954. Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 50, 0.7, 0.15)
  9955. End Sub
  9956.  
  9957. ' ****** X-Wing: Hovering or Return to Default Position ******
  9958.  
  9959. Sub XWingMove_Expired()
  9960. if XWingHover = true then
  9961. Select Case XWingHovering
  9962. Case 1: XWingHovering = 2: XWingMove.Set TRUE, 5500
  9963. Call MiniPlayField_13.MoveTo( 51.8, 505, 91, 0, 0, 15, 0.7, 5.5)
  9964. Case 2: XWingHovering = 1: XWingMove.Set TRUE, 6000
  9965. Call MiniPlayField_13.MoveTo( 51.8, 505, 101, 0, 0, 15, 0.7, 6)
  9966. End Select
  9967. Exit Sub
  9968. End if
  9969. 'return to default position
  9970. Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 15, 0.7, 0.15)
  9971. XWing_Hover 're-enable hovering
  9972. End Sub
  9973.  
  9974. ' ****** X-Wing: Fly Away, Explode, and Return Sequence ******
  9975.  
  9976. Dim XWingExplode: XWingExplode = 0
  9977.  
  9978. Sub XWing_Explosion
  9979. if use_Animated_Space_Battles = false then exit sub
  9980. If XWingExplode >0 then Exit Sub
  9981. XWingHover = false: XWingMove.enabled = false
  9982. TieFighterHover = false: TieFighterMove.enabled = false
  9983. VaderTieFighterHover = false: VaderTieFighterMove.enabled = false
  9984. Vader_Tie_Laser_Timer.set true, 250: VaderTieLaser = 1
  9985. XWingExplode = 1
  9986. XWing_Explode_Timer.set true, 800
  9987. MiniPlayField_9.EasingRotation = xBAM.easeInOutQuad
  9988. MiniPlayField_10.EasingRotation = xBAM.easeInOutQuad
  9989. MiniPlayField_11.EasingRotation = xBAM.easeInOutQuad
  9990. Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 0, 0, 15, 0.7, 0)
  9991. Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 15, 0, 0)
  9992. Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 10, 0, 15, 0.7, 0.8)
  9993. Call MiniPlayField_10.MoveTo( 203.2, -60, 96.8, 10, 0, 15, 0.7, 0.8)
  9994. Call MiniPlayField_11.MoveTo( 260, 56, 122.5, 0, 0, 25, 1, 0.25)
  9995. End Sub
  9996.  
  9997. Sub XWing_Explode_Timer_Expired
  9998. Select Case XWingExplode
  9999. Case 1:
  10000. XWing_Explode_Timer.set true, 600
  10001. XWingExplode = 2
  10002. MiniPlayField_9.EasingRotation = xBAM.easeInOutQuad
  10003. MiniPlayField_10.EasingRotation = xBAM.easeInOutQuad
  10004. MiniPlayField_11.EasingRotation = xBAM.easeInOutQuad
  10005. Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 10, 0, 335, 0.7, 2)
  10006. Call MiniPlayField_10.MoveTo( 203.2, -60, 96.8, 10, 0, 335, 0.7, 2)
  10007. Call MiniPlayField_11.MoveTo( 260, 56, 122.5, 0, 0, -35, 1, 2)
  10008. Case 2:
  10009. XWing_Explode_Timer.set true, 700
  10010. Explosion.UpdateInterval = 30: Explosion.Frame 1, 45
  10011. XWingExplode = 3
  10012. XWingExplosionFlash.FlashForMs 2000, 1000, BulbOff
  10013. Exit Sub
  10014. Case 3:
  10015. Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 10, 0, 175, 0.7, 0)
  10016. MiniPlayField_9.EasingRotation = xBAM.easeOutQuad
  10017. MiniPlayField_11.EasingRotation = xBAM.easeInOutQuad
  10018. Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 10, 0, 15, 0.7, 2)
  10019. Call MiniPlayField_11.MoveTo( 260, 56, 122.5, 0, 0, 0, 1, 1)
  10020. XWing_Explode_Timer.set true, 2000
  10021. XWingExplode = 4
  10022. Case 4:
  10023. MiniPlayField_9.EasingRotation = xBAM.easeInOutQuad
  10024. MiniPlayField_10.EasingRotation = xBAM.easeInOutQuad
  10025. Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 0, 0, 15, 0.7, 1)
  10026. Call MiniPlayField_10.MoveTo( 203.2, -60, 96.8, 0, 0, 15, 0.7, 1)
  10027. XWing_Explode_Timer.set true, 1100
  10028. XWingExplode = 5
  10029. VaderTieFighter_Hover
  10030. Case 5:
  10031. MiniPlayField_9.EasingRotation = xBAM.easeInOutQuad
  10032. Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 15, 0.7, 0)
  10033. Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 0, 0, 15, 0, 0)
  10034. XWing_Explode_Timer.enabled = false
  10035. XWingExplode = 0
  10036. XWing_Hover
  10037. TieFighter_Hover
  10038. End Select
  10039. End Sub
  10040.  
  10041. ' ****** Tie Fighter: Hover ******
  10042.  
  10043. Dim TieFighterHover: TieFighterHover = false
  10044. Dim TieFighterHovering: TieFighterHovering = 0
  10045.  
  10046. Sub TieFighter_Hover
  10047. if use_Hovering_Ships = false then exit sub
  10048. TieFighterHover = true
  10049. TieFighterHovering = 1
  10050. TieFighterMove.Set TRUE, 1000
  10051. MiniPlayField_12.EasingRotation = xBAM.easeInOutQuad
  10052. MiniPlayField_12.EasingPosition = xBAM.easeInOutQuad
  10053. End Sub
  10054.  
  10055. '****** Tie Fighter: Rotate and Fire at X-Wing ******
  10056.  
  10057. Sub TieFighter_Move
  10058. if use_Animated_Space_Battles = false then exit sub
  10059. If TieFighterExplode >0 then Exit Sub
  10060. TieFighterHover = false
  10061. TieFighterMove.Set TRUE, 1000
  10062. MiniPlayField_12.EasingRotation = xBAM.easeInOutQuad
  10063. Call MiniPlayField_12.MoveTo( 277, 406.8, 55.9, 0, 0, 65, 2.25, 0.15)
  10064. Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 8
  10065. End Sub
  10066.  
  10067. ' ****** Tie Fighter: Hovering or Return to Default Position ******
  10068.  
  10069. Sub TieFighterMove_Expired()
  10070. if TieFighterHover = true then
  10071. Select Case TieFighterHovering
  10072. Case 1: TieFighterHovering = 2: TieFighterMove.Set TRUE, 6000
  10073. Call MiniPlayField_12.MoveTo( 277, 406.8, 65.9, 0, 0, 30, 2.25, 6)
  10074. Case 2: TieFighterHovering = 1: TieFighterMove.Set TRUE, 5500
  10075. Call MiniPlayField_12.MoveTo( 277, 406.8, 55.9, 0, 0, 30, 2.25, 5.5)
  10076. End Select
  10077. Exit Sub
  10078. End if
  10079. 'return to default position
  10080. Call MiniPlayField_12.MoveTo( 277, 406.8, 55.9, 0, 0, 30, 2.25, 0.3)
  10081. TieFighter_Hover 're-enable hovering
  10082. End Sub
  10083.  
  10084. ' ****** Tie Fighter: Fly Away, Explode, and Return Sequence ******
  10085.  
  10086. Dim TieFighterExplode: TieFighterExplode = 0
  10087.  
  10088. Sub TieFighter_Explosion
  10089. if use_Animated_Space_Battles = false then exit sub
  10090. If TieFighterExplode >0 then Exit Sub
  10091. XWingHover = false: XWingMove.enabled = false
  10092. TieFighterHover = false: TieFighterMove.enabled = false
  10093. XWing_Laser_Timer.set true, 100: XWingLaser = 1
  10094. TieFighterExplode = 1
  10095. TieFighter_Explode_Timer.set true, 500
  10096. MiniPlayField_13.EasingRotation = xBAM.easeInOutQuad
  10097. MiniPlayField_14.EasingRotation = xBAM.easeInOutQuad
  10098. MiniPlayField_15.EasingRotation = xBAM.easeInOutQuad
  10099. Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 15, 0.7, 0)
  10100. Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, -20, 0.7, 0.2)
  10101. Call MiniPlayField_14.MoveTo( 471.8, 519.4, 55.9, 0, 0, 30, 2.25, 0)
  10102. Call MiniPlayField_12.MoveTo( 597, 107, 190, 0, 0, 50, 0, 0)
  10103. Call MiniPlayField_14.MoveTo( 471.8, 519.4, 110, 0, 0, -90, 2.25, 2)
  10104. Call MiniPlayField_15.MoveTo( 513, 539.4, 110, 0, 0, 30, 2.2, 0)
  10105. Call MiniPlayField_15.MoveTo( 513, 539.4, 110, 0, 0, -90, 2.2, 2.25)
  10106. Call MiniPlayField_16.MoveTo( 170.6, -401, 190, 0, 0, -90, 2.25, 0)
  10107. End Sub
  10108.  
  10109. Sub TieFighter_Explode_Timer_Expired
  10110. Select Case TieFighterExplode
  10111. Case 1:
  10112. TieFighter_Explode_Timer.set true, 500
  10113. TieFighterExplode = 2
  10114. Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 35, 0.7, 0.6)
  10115. Case 2:
  10116. TieFighter_Explode_Timer.set true, 300
  10117. Explosion2.UpdateInterval = 30: Explosion2.Frame 1, 45
  10118. TieFighterExplode = 3
  10119. TieFighterExplosionFlash.FlashForMs 2000, 1000, BulbOff
  10120. Exit Sub
  10121. Case 3:
  10122. Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 15, 0.7, 0.5)
  10123. Call MiniPlayField_14.MoveTo( 471.8, 519.4, 55.9, 0, 0, 30, 0, 0)
  10124. Call MiniPlayField_16.MoveTo( 170.6, -401, 190, 0, 0, 50, 2.25, 1.25)
  10125. TieFighter_Explode_Timer.set true, 1250
  10126. TieFighterExplode = 4
  10127. Case 4:
  10128. MiniPlayField_12.EasingRotation = xBAM.easeOutQuad
  10129. MiniPlayField_12.EasingPosition = xBAM.easeOutQuad
  10130. Call MiniPlayField_12.MoveTo( 597, 107, 190, 0, 0, 50, 2.25, 0)
  10131. Call MiniPlayField_12.MoveTo( 277, 406.8, 190, 0, 0, 50, 2.25, 1)
  10132. Call MiniPlayField_16.MoveTo( 170.6, -401, 190, 0, 0, -90, 0, 0)
  10133. TieFighter_Explode_Timer.set true, 1000
  10134. TieFighterExplode = 5
  10135. Case 5:
  10136. MiniPlayField_12.EasingRotation = xBAM.easeInOutQuad
  10137. MiniPlayField_12.EasingPosition = xBAM.easeInOutQuad
  10138. Call MiniPlayField_12.MoveTo( 277, 406.8, 55.9, 0, 0, 30, 2.25, 1)
  10139. TieFighter_Explode_Timer.set true, 1100
  10140. TieFighterExplode = 6
  10141. Case 6:
  10142. Call MiniPlayField_12.MoveTo( 277, 406.8, 55.9, 0, 0, 30, 2.25, 0)
  10143. TieFighter_Explode_Timer.enabled = false
  10144. TieFighterExplode = 0
  10145. XWing_Hover
  10146. TieFighter_Hover
  10147. End Select
  10148. End Sub
  10149.  
  10150. ' ****** Vader Tie Fighter: Hover ******
  10151.  
  10152. Dim VaderTieFighterHover: VaderTieFighterHover = false
  10153. Dim VaderTieFighterHovering: VaderTieFighterHovering = 0
  10154.  
  10155. Sub VaderTieFighter_Hover
  10156. if use_Hovering_Ships = false then exit sub
  10157. VaderTieFighterHover = true
  10158. VaderTieFighterHovering = 1
  10159. VaderTieFighterMove.Set TRUE, 1000
  10160. MiniPlayField_11.EasingRotation = xBAM.easeInOutQuad
  10161. MiniPlayField_11.EasingPosition = xBAM.easeInOutQuad
  10162. End Sub
  10163.  
  10164. ' ****** Vader Tie Fighter: Hovering ******
  10165.  
  10166. Sub VaderTieFighterMove_Expired()
  10167. if VaderTieFighterHover = true then
  10168. Select Case VaderTieFighterHovering
  10169. Case 1: VaderTieFighterHovering = 2: VaderTieFighterMove.Set TRUE, 5750
  10170. Call MiniPlayField_11.MoveTo( 260, 56, 127, 0, 0, 0, 1, 5.75)
  10171. Case 2: VaderTieFighterHovering = 1: VaderTieFighterMove.Set TRUE, 6000
  10172. Call MiniPlayField_11.MoveTo( 260, 56, 117, 0, 0, 0, 1, 6)
  10173. End Select
  10174. Exit Sub
  10175. End if
  10176. 'return to default position
  10177. Call MiniPlayField_11.MoveTo( 260, 56, 122.5, 0, 0, 0, 1, 0.3)
  10178. VaderTieFighter_Hover 're-enable hovering
  10179. End Sub
  10180.  
  10181. '****** Vader Tie Fighter: Laser Animations ******
  10182.  
  10183. Dim VaderTieLaser: VaderTieLaser = 0
  10184.  
  10185. Sub Vader_Tie_Laser_Timer_Expired
  10186. Select Case VaderTieLaser
  10187. Case 1: VaderTieLaser = VaderTieLaser + 1
  10188. Call MiniPlayField_17.MoveTo( 229.1, 121.4, 105.1, 0, 0, 25, 1, 0)
  10189. Call MiniPlayField_17.MoveTo( -276.1, 1261.4, 105.1, 0, 0, 25, 1, 0.5)
  10190. TieFighterLaserFlash1.state = BulbOn
  10191. Case 2: VaderTieLaser = VaderTieLaser + 1
  10192. Call MiniPlayField_18.MoveTo( 229.1, 121.4, 105.1, 0, 0, 25, 1, 0)
  10193. Call MiniPlayField_18.MoveTo( -276.1, 1261.4, 105.1, 0, 0, 25, 1, 0.5)
  10194. TieFighterLaserFlash2.state = BulbOn
  10195. Case 3: VaderTieLaser = VaderTieLaser + 1
  10196. Call MiniPlayField_19.MoveTo( 229.1, 121.4, 105.1, 0, 0, 25, 1, 0)
  10197. Call MiniPlayField_19.MoveTo( -276.1, 1261.4, 105.1, 0, 0, 25, 1, 0.5)
  10198. Call MiniPlayField_17.MoveTo( 229.1, 121.4, 105.1, 0, 0, 25, 0, 0)
  10199. TieFighterLaserFlash3.state = BulbOn
  10200. TieFighterLaserFlash1.state = BulbOff
  10201. Case 4: VaderTieLaser = VaderTieLaser + 1:Vader_Tie_Laser_Timer.set true, 300
  10202. Call MiniPlayField_18.MoveTo( 232.1, 121.4, 105.1, 0, 0, 20, 1, 0)
  10203. Call MiniPlayField_18.MoveTo( -107.9, 1261.4, 105.1, 0, 0, 20, 1, 0.5)
  10204. TieFighterLaserFlash2.state = BulbOn
  10205. Case 5: VaderTieLaser = VaderTieLaser + 1:Vader_Tie_Laser_Timer.set true, 150
  10206. Call MiniPlayField_19.MoveTo( 237.7, 121.4, 105.1, 0, 0, 15, 1, 0)
  10207. Call MiniPlayField_19.MoveTo( -32.1, 1116.4, 200, 0, 0, 15, 1, 0.5)
  10208. TieFighterLaserFlash3.state = BulbOn
  10209. Case 6: VaderTieLaser = VaderTieLaser + 1:Vader_Tie_Laser_Timer.set true, 150
  10210. Call MiniPlayField_20.MoveTo( 247.7, 121.4, 105.1, 0, 0, 10, 1, 0)
  10211. Call MiniPlayField_20.MoveTo( 122.7, 1116.4, 200, 0, 0, 10, 1, 0.5)
  10212. Call MiniPlayField_19.MoveTo( 237.7, 121.4, 105.1, 0, 0, 15, 0, 0)
  10213. Call MiniPlayField_18.MoveTo( 232.1, 121.4, 105.1, 0, 0, 20, 0, 0)
  10214. TieFighterLaserFlash4.state = BulbOn
  10215. TieFighterLaserFlash3.state = BulbOff
  10216. TieFighterLaserFlash2.state = BulbOff
  10217. Case 7: VaderTieLaser = VaderTieLaser + 1
  10218. Call MiniPlayField_20.MoveTo( 247.7, 121.4, 105.1, 0, 0, 10, 0, 0)
  10219. TieFighterLaserFlash4.state = BulbOff
  10220. Vader_Tie_Laser_Timer.enabled = false: VaderTieLaser = 0
  10221. Case 8:
  10222. Call MiniPlayField_17.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0.6, 0)
  10223. Call MiniPlayField_17.MoveTo( -685.3, 802.4, 55.3, 0, 0, 65, 0.6, 0.5)
  10224. TieFighterLaserFlash1.state = BulbOn
  10225. Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 9
  10226. Case 9:
  10227. Call MiniPlayField_18.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0.6, 0)
  10228. Call MiniPlayField_18.MoveTo( -685.3, 802.4, 55.3, 0, 0, 65, 0.6, 0.5)
  10229. TieFighterLaserFlash2.state = BulbOn
  10230. Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 10
  10231. Case 10:
  10232. Call MiniPlayField_19.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0.6, 0)
  10233. Call MiniPlayField_19.MoveTo( -685.3, 802.4, 55.3, 0, 0, 65, 0.6, 0.5)
  10234. TieFighterLaserFlash3.state = BulbOn
  10235. Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 11
  10236. Case 11:
  10237. Call MiniPlayField_20.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0.6, 0)
  10238. Call MiniPlayField_20.MoveTo( -685.3, 802.4, 55.3, 0, 0, 65, 0.6, 0.5)
  10239. TieFighterLaserFlash4.state = BulbOn
  10240. Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 12
  10241. Case 12:
  10242. Call MiniPlayField_17.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0, 0)
  10243. TieFighterLaserFlash1.state = BulbOff
  10244. Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 13
  10245. Case 13:
  10246. Call MiniPlayField_18.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0, 0)
  10247. TieFighterLaserFlash2.state = BulbOff
  10248. Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 14
  10249. Case 14:
  10250. Call MiniPlayField_19.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0, 0)
  10251. TieFighterLaserFlash3.state = BulbOff
  10252. Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 15
  10253. Case 15:
  10254. Call MiniPlayField_20.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0, 0)
  10255. TieFighterLaserFlash4.state = BulbOff
  10256. Vader_Tie_Laser_Timer.enabled = false: VaderTieLaser = 0
  10257. End Select
  10258. End Sub
  10259.  
  10260. '****** X-Wing: Laser Animations ******
  10261.  
  10262. Dim XWingLaser: XWingLaser = 0
  10263.  
  10264. Sub XWing_Laser_Timer_Expired
  10265. Select Case XWingLaser
  10266. Case 1: XWingLaser = XWingLaser + 1
  10267. Call MiniPlayField_21.MoveTo( 100.2, 445.4, 80.1, 0, 0, -110, 1, 0)
  10268. Call MiniPlayField_21.MoveTo( 1345.2, 20.4, 80.1, 0, 0, -110, 1, 0.5)
  10269. XWingLaserFlash1.state = BulbOn
  10270. Case 2: XWingLaser = XWingLaser + 1
  10271. Call MiniPlayField_22.MoveTo( 123.2, 523.8, 62.1, 0, 0, -105, 1, 0)
  10272. Call MiniPlayField_22.MoveTo( 1312.6, 215.401, 62.1, 0, 0, -105, 1, 0.5)
  10273. Case 3: XWingLaser = XWingLaser + 1
  10274. XWingLaserFlash2.state = BulbOn
  10275. Call MiniPlayField_23.MoveTo( 107.6, 455.2, 62.1, 0, 0, -100, 1, 0)
  10276. Call MiniPlayField_23.MoveTo( 1302.6, 270.2, 62.1, 0, 0, -100, 1, 0.5)
  10277. Case 4: XWingLaser = XWingLaser + 1
  10278. XWingLaserFlash3.state = BulbOn
  10279. Call MiniPlayField_24.MoveTo( 119, 535.8, 80.1, 0, 0, -95, 1, 0)
  10280. Call MiniPlayField_24.MoveTo( 1259, 455.8, 80.1, 0, 0, -95, 1, 0.5)
  10281. Case 5: XWingLaser = XWingLaser + 1
  10282. XWingLaserFlash4.state = BulbOn
  10283. Call MiniPlayField_21.MoveTo( 117, 466.2, 80.1, 0, 0, -90, 1, 0)
  10284. Call MiniPlayField_21.MoveTo( 1247, 466.2, 80.1, 0, 0, -90, 1, 0.5)
  10285. Case 6: XWingLaser = XWingLaser + 1
  10286. Call MiniPlayField_22.MoveTo( 111.2, 548, 62.1, 0, 0, -85, 1, 0)
  10287. Call MiniPlayField_22.MoveTo( 1236.2, 618, 62.1, 0, 0, -85, 1, 0.5)
  10288. Case 7: XWingLaser = XWingLaser + 1
  10289. Call MiniPlayField_23.MoveTo( 121, 477.6, 62.1, 0, 0, -80, 1, 0)
  10290. Call MiniPlayField_23.MoveTo( 1236, 647.6, 62.1, 0, 0, -80, 1, 0.5)
  10291. Case 8: XWingLaser = XWingLaser + 1
  10292. Call MiniPlayField_24.MoveTo( 103.4, 556.8, 80.1, 0, 0, -75, 1, 0)
  10293. Call MiniPlayField_24.MoveTo( 1198.4, 737, 80.1, 0, 0, -75, 1, 0.5)
  10294. Case 9: XWingLaser = XWingLaser + 1
  10295. Call MiniPlayField_21.MoveTo( 128.4, 490.8, 80.1, 0, 0, -70, 1, 0)
  10296. Call MiniPlayField_21.MoveTo( 1186.8, 785.8, 80.1, 0, 0, -70, 1, 0.5)
  10297. Case 10: XWingLaser = XWingLaser + 1
  10298. Call MiniPlayField_22.MoveTo( 95.2, 565.4, 62.1, 0, 0, -65, 1, 0)
  10299. Call MiniPlayField_22.MoveTo( 1150.2, 980.4, 62.1, 0, 0, -65, 1, 0.5)
  10300. Case 11: XWingLaser = XWingLaser + 1
  10301. Call MiniPlayField_23.MoveTo( 128.4, 504.2, 62.1, 0, 0, -60, 1, 0)
  10302. Call MiniPlayField_23.MoveTo( 1143.4, 1024.2, 62.1, 0, 0, -60, 1, 0.5)
  10303. Case 12: XWingLaser = XWingLaser + 1
  10304. Call MiniPlayField_24.MoveTo( 83.4, 571.8, 62.1, 0, 0, -55, 1, 0)
  10305. Call MiniPlayField_24.MoveTo( 788.8, 1106.8, 62.1, 0, 0, -55, 1, 0.5)
  10306. Case 13: XWingLaser = XWingLaser + 1
  10307. XWingLaserFlash1.state = BulbOff
  10308. Call MiniPlayField_21.MoveTo( 128.4, 490.8, 80.1, 0, 0, -70, 0, 0)
  10309. Case 14: XWingLaser = XWingLaser + 1
  10310. XWingLaserFlash2.state = BulbOff
  10311. Call MiniPlayField_22.MoveTo( 95.2, 565.4, 62.1, 0, 0, -65, 0, 0)
  10312. Case 15: XWingLaser = XWingLaser + 1
  10313. XWingLaserFlash3.state = BulbOff
  10314. Call MiniPlayField_23.MoveTo( 128.4, 504.2, 62.1, 0, 0, -60, 0, 0)
  10315. Case 16: XWingLaser = XWingLaser + 1
  10316. XWingLaserFlash4.state = BulbOff
  10317. Call MiniPlayField_24.MoveTo( 83.4, 571.8, 62.1, 0, 0, -55, 0, 0)
  10318. XWing_Laser_Timer.enabled = false: XWingLaser = 0
  10319. Case 17: XWing_Laser_Timer.set True, 500: XWingLaser = 18
  10320. Call MiniPlayField_21.MoveTo( 100.2, 445.4, 80.1, 0, 0, -110, 1, 0)
  10321. Call MiniPlayField_21.MoveTo( 1345.2, 20.4, 80.1, 0, 0, -110, 1, 0.5)
  10322. Call MiniPlayField_22.MoveTo( 123.2, 523.8, 62.1, 0, 0, -105, 1, 0)
  10323. Call MiniPlayField_22.MoveTo( 1312.6, 215.401, 62.1, 0, 0, -105, 1, 0.5)
  10324. XWingLaserFlash1.state = BulbOn
  10325. XWingLaserFlash2.state = BulbOn
  10326. Case 18: XWingLaser = XWingLaser + 1
  10327. Call MiniPlayField_21.MoveTo( 100.2, 445.4, 80.1, 0, 0, -110, 0, 0)
  10328. Call MiniPlayField_22.MoveTo( 123.2, 523.8, 62.1, 0, 0, -105, 0, 0)
  10329. XWingLaserFlash1.state = BulbOff
  10330. XWingLaserFlash2.state = BulbOff
  10331. XWing_Laser_Timer.enabled = false: XWingLaser = 0
  10332. End Select
  10333. End Sub
  10334.  
  10335. ' ****** Millennium Falcon: Hover ******
  10336.  
  10337. Dim FalconHover: FalconHover = false
  10338. Dim FalconHovering: FalconHovering = 0
  10339.  
  10340. Sub Falcon_Hover
  10341. if use_Hovering_Ships = false then exit sub
  10342. FalconHover = true
  10343. FalconHovering = 1
  10344. Falcon_Timer.Set TRUE, 1000
  10345. MiniPlayField_8.EasingPosition = xBAM.easeInOutQuad
  10346. End Sub
  10347.  
  10348. '****** Millennium Falcon: Loop Around ******
  10349.  
  10350. Sub FalconFly
  10351. if use_Animated_Space_Battles = false then exit sub
  10352. FalconHover = false
  10353. Falcon_Timer.set true, 1000
  10354. MiniPlayField_8.EasingRotation = xBAM.easeLinear
  10355. Call MiniPlayField_8.MoveTo( 200, 411, 80, 0, 0, 1, 1, 0)
  10356. MiniPlayField_8.EasingRotation = xBAM.easeInQuad
  10357. Call MiniPlayField_8.MoveTo( 200, 411, 200, 0, 0, 180, 1, 1)
  10358. End Sub
  10359.  
  10360. '****** Millennium Falcon: Hovering or Finish Loop Around ******
  10361.  
  10362. Sub Falcon_Timer_Expired()
  10363. if FalconHover = true then
  10364. Select Case FalconHovering
  10365. Case 1: FalconHovering = 2: Falcon_Timer.Set TRUE, 6000
  10366. Call MiniPlayField_8.MoveTo( 200, 411, 85, 0, 0, 0, 1, 6)
  10367. Case 2: FalconHovering = 1: Falcon_Timer.Set TRUE, 5750
  10368. Call MiniPlayField_8.MoveTo( 200, 411, 75, 0, 0, 0, 1, 5.75)
  10369. End Select
  10370. Exit Sub
  10371. End if
  10372. 'finish last half of the loop around
  10373. MiniPlayField_8.EasingRotation = xBAM.easeLinear
  10374. Call MiniPlayField_8.MoveTo( 200, 411, 200, 0, 0, 181, 1, 0)
  10375. MiniPlayField_8.EasingRotation = xBAM.easeOutQuad
  10376. Call MiniPlayField_8.MoveTo( 200, 411, 80, 0, 0, 0, 1, 1)
  10377. Falcon_Hover 're-enable hovering
  10378. End Sub
  10379.  
  10380. '****** Turbo Laser: Fire ******
  10381.  
  10382. Sub TurretCannonFire
  10383. TurretCannonTimer.set True, 100
  10384. TurretFlasher.FlashForMs 250, 250, BulbOff
  10385. TurretBulb1.FlashForMs 250, 250, BulbOff
  10386. TurretBulb2.FlashForMs 250, 250, BulbOff
  10387. Call MiniPlayField_7.MoveTo( 357.1, 252.1, 15.5, 0, 0, 50, 1, 0.1)
  10388. End Sub
  10389.  
  10390. Sub TurretCannonTimer_Expired
  10391. TurretCannonTimer.enabled = false
  10392. Call MiniPlayField_7.MoveTo( 352.5, 255.9, 15.5, 0, 0, 50, 1, 0.2)
  10393. End Sub
  10394.  
  10395. Sub TurboLaserFire1
  10396. if use_Animated_Space_Battles = false then exit sub
  10397. TurboLaser_Fire1_Timer.set True, 500
  10398. Call MiniPlayField_17.MoveTo( 251.1, 338.8, 47.3, 0, 0, 50, 1.6, 0)
  10399. Call MiniPlayField_17.MoveTo( -700, 1100, 47.3, 0, 0, 50, 1.6, 0.5)
  10400. TieFighterLaserFlash1.state = BulbOn
  10401. End Sub
  10402.  
  10403. Sub TurboLaser_Fire1_Timer_Expired
  10404. TurboLaser_Fire1_Timer.enabled = false
  10405. TieFighterLaserFlash1.state = BulbOff
  10406. Call MiniPlayField_17.MoveTo( -700, 1100, 47.3, 0, 0, 50, 0, 0)
  10407. End Sub
  10408.  
  10409. Sub TurboLaserFire2
  10410. if use_Animated_Space_Battles = false then exit sub
  10411. TurboLaser_Fire2_Timer.set True, 500
  10412. Call MiniPlayField_18.MoveTo( 251.1, 338.8, 47.3, 0, 0, 50, 1.6, 0)
  10413. Call MiniPlayField_18.MoveTo( -700, 1100, 47.3, 0, 0, 50, 1.6, 0.5)
  10414. TieFighterLaserFlash2.state = BulbOn
  10415. End Sub
  10416.  
  10417. Sub TurboLaser_Fire2_Timer_Expired
  10418. TurboLaser_Fire2_Timer.enabled = false
  10419. TieFighterLaserFlash2.state = BulbOff
  10420. Call MiniPlayField_18.MoveTo( -700, 1100, 47.3, 0, 0, 50, 0, 0)
  10421. End Sub
  10422.  
  10423. Sub TurboLaserFire3
  10424. if use_Animated_Space_Battles = false then exit sub
  10425. TurboLaser_Fire3_Timer.set True, 500
  10426. Call MiniPlayField_19.MoveTo( 251.1, 338.8, 47.3, 0, 0, 50, 1.6, 0)
  10427. Call MiniPlayField_19.MoveTo( -700, 1100, 47.3, 0, 0, 50, 1.6, 0.5)
  10428. TieFighterLaserFlash3.state = BulbOn
  10429. End Sub
  10430.  
  10431. Sub TurboLaser_Fire3_Timer_Expired
  10432. TurboLaser_Fire3_Timer.enabled = false
  10433. TieFighterLaserFlash3.state = BulbOff
  10434. Call MiniPlayField_19.MoveTo( -800, 1100, 47.3, 0, 0, 50, 0, 0)
  10435. End Sub
  10436.  
  10437. '****** Startup: Ships Hovering ******
  10438.  
  10439. if use_Hovering_Ships = true then
  10440. Falcon_Hover
  10441. XWing_Hover
  10442. TieFighter_Hover
  10443. VaderTieFighter_Hover
  10444. End If
  10445.  
  10446. '****** BAM CUSTOM MODELS ******
  10447.  
  10448. ' - use BAM's Model Importer to convert "OBJ" or "FBX" models into a TGA file (so FP will accept the file)
  10449. ' - textures and animation data for the model are included in the TGA file
  10450. ' - add TGA to Texture Manager (FP will accept it, and BAM knows it's a Custom Model)
  10451. ' - use xBAM.CreateModel command to add custom model to the table
  10452. ' - SAVE THE TABLE FIRST before running the table, or the model won't be used when the table loads!
  10453. ' - use BAM in-game Custom Model menu to setup and position the custom model the way you want
  10454. ' - use CTRL+C to copy new custom model settings
  10455. ' - paste new settings into the script to replace the current xBAM.CreateModel code
  10456. ' - SAVE THE TABLE after making any changes to custom models!
  10457. ' - note: custom models allow ALL halo glow/flares from lights to pass through them...even if that light is hidden by other surfaces or objects!
  10458. ' - you can use other bam commands to control the render layering of custom models to prevent the halo problem
  10459. ' - however with this table's many holograms this isn't a benefit (it causes models to appear above holograms)
  10460.  
  10461. Dim cm_TieVader
  10462. Set cm_TieVader = xBAM.CreateModel("TieVader", 259.4, 13.2, 121.2, 8.1, 90, 0, -0, True, False)
  10463. cm_TieVader.Scale.X = 10
  10464. cm_TieVader.Scale.Y = 10
  10465. cm_TieVader.Scale.Z = 10
  10466. cm_TieVader.Kd.Set 0.5, 0.5, 0.5
  10467. cm_TieVader.Ks.Set 1, 1, 1, 1
  10468. cm_TieVader.Rim.Set 1, 1, 1, 0
  10469. cm_TieVader.Spe.Set 10, 5, 1
  10470.  
  10471. Dim cm_MFalcon
  10472. Set cm_MFalcon = xBAM.CreateModel("MFalcon", 472.8, 410.8, 70, 8.5, 177, -156.6, 0, True, False)
  10473. cm_MFalcon.Scale.X = 2.5
  10474. cm_MFalcon.Scale.Y = 2.5
  10475. cm_MFalcon.Scale.Z = 2.5
  10476. cm_MFalcon.Kd.Set 0.5, 0.5, 0.5
  10477. cm_MFalcon.Ks.Set 1, 1, 1, 1
  10478. cm_MFalcon.Rim.Set 1, 1, 1, 0
  10479. cm_MFalcon.Spe.Set 10, 5, 1
  10480.  
  10481. Dim cm_DarthVader
  10482. Set cm_DarthVader = xBAM.CreateModel("DarthVader", 174.6, 180, 32, 1.3, 0, 0, 29, False, False)
  10483. cm_DarthVader.Scale.X = 90
  10484. cm_DarthVader.Scale.Y = 90
  10485. cm_DarthVader.Scale.Z = 90
  10486. cm_DarthVader.Kd.Set 1, 1, 1
  10487. cm_DarthVader.Ks.Set 0, 0, 0, 1
  10488. cm_DarthVader.Rim.Set 1, 1, 1, 0
  10489. cm_DarthVader.Spe.Set 10, 5, 1
  10490.  
  10491. Dim cm_DarthVader_SC
  10492. Set cm_DarthVader_SC = xBAM.CreateModel("DarthVader_SmallCape", 174.6, 180, 32, 1.3, 0, 0, 29, False, False)
  10493. cm_DarthVader_SC.Scale.X = 0
  10494. cm_DarthVader_SC.Scale.Y = 0
  10495. cm_DarthVader_SC.Scale.Z = 0
  10496. cm_DarthVader_SC.Kd.Set 1, 1, 1
  10497. cm_DarthVader_SC.Ks.Set 0, 0, 0, 1
  10498. cm_DarthVader_SC.Rim.Set 1, 1, 1, 0
  10499. cm_DarthVader_SC.Spe.Set 10, 5, 1
  10500.  
  10501. if use_Animated_Vader = true then cm_DarthVader.loop "A" 'startup - default vader animation loop
  10502.  
  10503. ' There are 2 Darth Vader BAM custom models. The small cape Darth Vader can be used for some animations that work better such as the dancing bits.
  10504. ' I make one of the models sized to 0 when the other is used, then change it back when the Timer / animation is completed.
  10505. ' You can export the TGA of the model (in texture manager) and load it into BAM's Model Importer to see what the animations are and their duration.
  10506. ' Letter A = 0, B = 1 and so forth.
  10507.  
  10508. Sub VaderAnimation(animation)
  10509. if use_Animated_Vader = false then exit sub
  10510. cm_DarthVader.Reset()
  10511. cm_DarthVader_SC.Reset()
  10512. if animation > 25 then
  10513. cm_DarthVader.Scale.X = 0
  10514. cm_DarthVader.Scale.Y = 0
  10515. cm_DarthVader.Scale.Z = 0
  10516. cm_DarthVader_SC.Scale.X = 90
  10517. cm_DarthVader_SC.Scale.Y = 90
  10518. cm_DarthVader_SC.Scale.Z = 90
  10519. End If
  10520. if animation = 0 then Call cm_DarthVader.Animation(0).Frame(1, cm_DarthVader.Animation(0).NumFrames):VaderAnimation_Timer.set True,9900 'A - default - standing and bobbing
  10521. if animation = 1 then Call cm_DarthVader.Animation(1).Frame(1, cm_DarthVader.Animation(1).NumFrames):VaderAnimation_Timer.set True,3300 'B - standing still
  10522. if animation = 2 then Call cm_DarthVader.Animation(2).Frame(1, cm_DarthVader.Animation(2).NumFrames):VaderAnimation_Timer.set True,1100 'C - force push
  10523. if animation = 3 then Call cm_DarthVader.Animation(3).Frame(1, cm_DarthVader.Animation(3).NumFrames):VaderAnimation_Timer.set True,4200 'D - shucks... darn
  10524. if animation = 4 then Call cm_DarthVader.Animation(4).Frame(1, cm_DarthVader.Animation(4).NumFrames):VaderAnimation_Timer.set True,7800 'E - what da' frick you doing?
  10525. if animation = 5 then Call cm_DarthVader.Animation(5).Frame(1, cm_DarthVader.Animation(5).NumFrames):VaderAnimation_Timer.set True,3900 'F - I didn't do anything
  10526. if animation = 6 then Call cm_DarthVader.Animation(6).Frame(60, cm_DarthVader.Animation(6).NumFrames):VaderAnimation_Timer.set True,4100 'G - You... step aside
  10527. if animation = 7 then Call cm_DarthVader.Animation(7).Frame(1, cm_DarthVader.Animation(7).NumFrames):VaderAnimation_Timer.set True,4800 'H - Vader smash
  10528. if animation = 8 then Call cm_DarthVader.Animation(8).Frame(1, cm_DarthVader.Animation(8).NumFrames):VaderAnimation_Timer.set True,1260 'I - Punch
  10529. if animation = 9 then Call cm_DarthVader.Animation(9).Frame(1, cm_DarthVader.Animation(9).NumFrames):VaderAnimation_Timer.set True,1030 'J - Force Choke
  10530. if animation = 10 then Call cm_DarthVader.Animation(10).Frame(1, cm_DarthVader.Animation(10).NumFrames):VaderAnimation_Timer.set True,1200 'K - Kick
  10531. if animation = 11 then Call cm_DarthVader.Animation(11).Frame(30, cm_DarthVader.Animation(11).NumFrames):VaderAnimation_Timer.set True,5300 'L - Force Choke - Pickup and slam down
  10532. if animation = 12 then Call cm_DarthVader.Animation(12).Frame(1, cm_DarthVader.Animation(12).NumFrames):VaderAnimation_Timer.set True,2400 'M - Angry Point
  10533. if animation = 13 then Call cm_DarthVader.Animation(13).Frame(1, cm_DarthVader.Animation(13).NumFrames):VaderAnimation_Timer.set True,9760 'N - Laughing
  10534. if animation = 14 then Call cm_DarthVader.Animation(14).Frame(1, cm_DarthVader.Animation(14).NumFrames):VaderAnimation_Timer.set True,3766 'O - dude, really?
  10535. if animation = 15 then Call cm_DarthVader.Animation(15).Frame(1, cm_DarthVader.Animation(15).NumFrames):VaderAnimation_Timer.set True,9433 'P - Dancing - Twist
  10536. if animation = 16 then Call cm_DarthVader.Animation(16).Frame(1, cm_DarthVader.Animation(16).NumFrames):VaderAnimation_Timer.set True,6100 'Q - Dancing - Hip Hop
  10537. if animation = 17 then Call cm_DarthVader.Animation(17).Frame(1, cm_DarthVader.Animation(17).NumFrames):VaderAnimation_Timer.set True,19633 'R - Dancing - Belly Dance
  10538. ' note: S to Z for "Darth Vader" model uses "gestures" that do contain glitches. So if using them, you may need to specify start and end frames to avoid the glitches
  10539. if animation = 18 then Call cm_DarthVader.Animation(18).Frame(1, cm_DarthVader.Animation(18).NumFrames):VaderAnimation_Timer.set True,2200 'S - Angry Gesture
  10540. if animation = 19 then Call cm_DarthVader.Animation(19).Frame(1, cm_DarthVader.Animation(19).NumFrames):VaderAnimation_Timer.set True,2566 'T - Annoyed Head Shake
  10541. if animation = 20 then Call cm_DarthVader.Animation(20).Frame(1,30):VaderAnimation_Timer.set True,1000 'U - Being Cocky
  10542. if animation = 21 then Call cm_DarthVader.Animation(21).Frame(1, cm_DarthVader.Animation(21).NumFrames):VaderAnimation_Timer.set True,3260 'V - Dissmissive
  10543. if animation = 22 then Call cm_DarthVader.Animation(22).Frame(1, cm_DarthVader.Animation(22).NumFrames):VaderAnimation_Timer.set True,1630 'W - Head Nod
  10544. if animation = 23 then Call cm_DarthVader.Animation(23).Frame(1, cm_DarthVader.Animation(23).NumFrames):VaderAnimation_Timer.set True,1730 'X - Look Up
  10545. if animation = 24 then Call cm_DarthVader.Animation(24).Frame(1, cm_DarthVader.Animation(24).NumFrames):VaderAnimation_Timer.set True,1800 'Y - Shaking Head No
  10546. if animation = 25 then Call cm_DarthVader.Animation(25).Frame(1, cm_DarthVader.Animation(25).NumFrames):VaderAnimation_Timer.set True,3060 'Z - Thoughtful Head Shake No
  10547. ' note: A to N for "Darth Vader - Small Cape" model uses "gestures" that do contain glitches. So if using them, you may need to specify start and end frames to avoid the glitches
  10548. if animation = 26 then Call cm_DarthVader_SC.Animation(14).Frame(1, cm_DarthVader_SC.Animation(14).NumFrames):VaderAnimation_Timer.set True,6100 'O - Dancing - Hip Hop
  10549. if animation = 27 then Call cm_DarthVader_SC.Animation(15).Frame(1, cm_DarthVader_SC.Animation(15).NumFrames):VaderAnimation_Timer.set True,8830 'P - Break Dancing
  10550. if animation = 28 then Call cm_DarthVader_SC.Animation(16).Frame(1, cm_DarthVader_SC.Animation(16).NumFrames):VaderAnimation_Timer.set True,15260 'Q - Dancing - Sexy Girl
  10551. if animation = 29 then Call cm_DarthVader_SC.Animation(17).Frame(1, cm_DarthVader_SC.Animation(17).NumFrames):VaderAnimation_Timer.set True,15930 'R - Dancing - Driving
  10552. if animation = 30 then Call cm_DarthVader_SC.Animation(18).Frame(1, cm_DarthVader_SC.Animation(18).NumFrames):VaderAnimation_Timer.set True,4500 'S - Dancing - YMCA
  10553. if animation = 31 then Call cm_DarthVader_SC.Animation(19).Frame(1, cm_DarthVader_SC.Animation(19).NumFrames):VaderAnimation_Timer.set True,4760 'T - Chicken Dance
  10554. if animation = 32 then Call cm_DarthVader_SC.Animation(20).Frame(1, cm_DarthVader_SC.Animation(20).NumFrames):VaderAnimation_Timer.set True,19633 'U - Dancing - Belly Dance
  10555. if animation = 33 then Call cm_DarthVader_SC.Animation(21).Frame(1, cm_DarthVader_SC.Animation(21).NumFrames):VaderAnimation_Timer.set True,9900 'V - default - standing and bobbing
  10556. if animation = 34 then Call cm_DarthVader_SC.Animation(22).Frame(1, cm_DarthVader_SC.Animation(22).NumFrames):VaderAnimation_Timer.set True,5300 'W - Force Choke - Pickup and slam down
  10557. if animation = 35 and use_Dancing_Vader = true then cm_DarthVader_SC.Anim("OPSTU"):VaderAnimation_Timer.set True,43823
  10558. if animation = 35 and use_Dancing_Vader = false then VaderAnimation_Timer_Expired
  10559. End sub
  10560.  
  10561. Sub VaderAnimation_Timer_Expired
  10562. VaderAnimation_Timer.enabled = false
  10563. cm_DarthVader.Reset()
  10564. cm_DarthVader_SC.Reset()
  10565. cm_DarthVader.Scale.X = 90
  10566. cm_DarthVader.Scale.Y = 90
  10567. cm_DarthVader.Scale.Z = 90
  10568. cm_DarthVader_SC.Scale.X = 0
  10569. cm_DarthVader_SC.Scale.Y = 0
  10570. cm_DarthVader_SC.Scale.Z = 0
  10571. cm_DarthVader.loop "A"
  10572. End Sub
  10573.  
  10574. '################# DOFLinx MAIN SECTION ###################
  10575.  
  10576.  
  10577. '############## DOFLinx variables #################
  10578.  
  10579.  
  10580. Dim DOFLinx_Left_Drain_Stage
  10581. Dim DOFLinx_Right_Drain_Stage
  10582. Dim DOFLinx_Drain_Stage
  10583. Dim DOFLinx_LR_Gray_Stage
  10584. Dim DOFLinx_XWingBlast_Explosion_Stage
  10585. Dim DOFLinx_Explosion_Stage
  10586. Dim DOFLinx_XWingBlast_Stage
  10587. Dim DOFLinx_Skillshot_Blast_Stage
  10588. Dim DOFLinx_Falcon_Fire_Hit_Blast_Stage
  10589. Dim DOFLinx_RL_Green_Stage
  10590. Dim DOFLinx_Victory_MB_Undercab_Stage
  10591. Dim DOFLinx_DeathStar_Destroyed_Stage
  10592. Dim DOFLinx_VaderBlasersMX_Stage
  10593.  
  10594.  
  10595. ExecuteGlobal LoadExternalScript ("doflinx.vbs") ' DOFLinx - Load vbs script
  10596.  
  10597.  
  10598. '****** DOFLinx Initial Timer and Table First Start Events ******
  10599.  
  10600.  
  10601. Sub DOFLinx_LINK() 'DOFLinx_LINK
  10602. FF_Init ' Start the DOFLinx link
  10603. FF_DOFLinx=1 ' Set this to 0 to manually disable the link to DOFLinx. If a link is not present it will disable itself.
  10604. ' DOFLinx must be active and set to link for this to make a difference
  10605. End Sub
  10606.  
  10607.  
  10608. Sub DOFTimer_expired() 'DOFLinx - Table First Loaded Timer Expired
  10609. if FF_Active = true then
  10610. DOFTimer.enabled=false
  10611. FF_ROM "fp_swdsa_ultimate" 'DOFLinx DOF Rom Load
  10612. else
  10613. DOFWaitCount=DOFWaitCount+1
  10614. if DOFWaitCount>=30 then
  10615. DOFTimer.enabled=false
  10616. end if
  10617. end if
  10618. End Sub
  10619.  
  10620.  
  10621. '***** Star Wars Specific Table First Load Events ******
  10622.  
  10623. Sub DOFLinx_StarWars_Startup_Timer_expired() 'DOFLinx_StarWars_Startup_Timer
  10624. FF_Flasher DV_FLOL,FL_FD,2,30,100,"Blue"
  10625. FF_Flasher DV_FLIL,FL_FD,2,30,100,"Blue"
  10626. FF_Flasher DV_FLCN,FL_FD,2,30,100,"Yellow"
  10627. FF_Flasher DV_FLIR,FL_FD,2,30,100,"Red"
  10628. FF_Flasher DV_FLOR,FL_FD,2,30,100,"Red"
  10629. if nvCredits >= 1 then
  10630. FF_Button BUT_ST,BA_FL,9999,40 'DOFLinx - Start - Flash
  10631. FF_Button BUT_CN,BA_ON,0,0 'DOFLinx - Coin - ON
  10632. Else
  10633. FF_Button BUT_ST,BA_FL,0,0 'DOFLinx - Start - OFF
  10634. FF_Button BUT_CN,BA_FL,9999,40 'DOFLinx - Coin - Flash
  10635. end if
  10636. FF_Button BUT_EX,BA_ON,0,0 'DOFLinx - Exit - ON
  10637. FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  10638. DOFLinx_LightSaber_FireButton_Flash() 'DOFLinx_LightSaber_FireButton_Flash
  10639. FF_Dev DV_BK,100 'DOFLinx - Beacon On
  10640. FF_Dev DV_SR,100 'DOFLinx - Strobe On
  10641. DOFLinx_StarWars_Startup_Timer.Enabled=False
  10642. End Sub
  10643.  
  10644.  
  10645.  
  10646.  
  10647. '********** SOLENOIDS Section ************
  10648.  
  10649. ' Flippers, Slingshots, Bumpers, Drop Targets
  10650. ' Auto Plunger, PlungerKicker
  10651. ' Drain, Kickback, Kickers, VUKs
  10652.  
  10653. '*** Flippers ***
  10654.  
  10655. Sub DOFLinx_Left_Flipper_On() 'DOFLinx - Left Flipper On
  10656. FF_Sound DV_LF,9999,"fx_FlipL"
  10657. End Sub
  10658.  
  10659. Sub DOFLinx_Right_Flipper_On() 'DOFLinx - Right Flipper On
  10660. FF_Sound DV_RF,9999,"fx_FlipR"
  10661. End Sub
  10662.  
  10663. Sub DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
  10664. FF_Sound DV_LF,0,"fx_FlipDownL"
  10665. End Sub
  10666.  
  10667. Sub DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
  10668. FF_Sound DV_RF,0,"fx_FlipDownR"
  10669. End Sub
  10670.  
  10671. '*** Slingshots ***
  10672.  
  10673. Sub DOFLinx_Left_Slingshot_Hit() 'DOFLinx - Left Slingshot Hit
  10674. FF_Sound DV_LS,-1,"fx_SlingL"
  10675. FF_FlasherForMs 250,50,bulboff,DV_FLOL,100,"Blue"
  10676. FF_DOF "E",110,-1 'DOFLinx DOF MX - Left Slingshot
  10677. End Sub
  10678.  
  10679. Sub DOFLinx_2ndLeft_Slingshot_Hit() 'DOFLinx - 2ndLeft Slingshot Hit
  10680. FF_Sound DV_LS,-1,"fx_SlingL"
  10681. End Sub
  10682.  
  10683. Sub DOFLinx_Right_Slingshot_Hit() 'DOFLinx - Right Slingshot Hit
  10684. FF_Sound DV_RS,-1,"fx_SlingR"
  10685. FF_FlasherForMs 250,50,bulboff,DV_FLOR,100,"Blue"
  10686. FF_DOF "E",111,-1 'DOFLinx DOF MX - Right Slingshot
  10687. End Sub
  10688.  
  10689. '*** Bumpers ***
  10690.  
  10691. Sub DOFLinx_Bumper1_Hit() 'DOFLinx - Bumper 1 Hit
  10692. FF_Sound DV_BL,-1,"fx_Bumper"
  10693. FF_FlasherForMs 250,125,bulboff,DV_FLIL,100,"Cyan"
  10694. FF_Colour "Cyan",RGB_TT,2 'DOFLinx - RGB Under Cabinet
  10695. FF_DOF "E",120,-1 'DOFLinx DOF MX - Bumper 1
  10696. End Sub
  10697.  
  10698. Sub DOFLinx_Bumper2_Hit() 'DOFLinx - Bumper 2 Hit
  10699. FF_Sound DV_BR,-1,"fx_Bumper"
  10700. FF_FlasherForMs 250,125,bulboff,DV_FLIR,100,"Cyan"
  10701. FF_Colour "Cyan",RGB_TT,2 'DOFLinx - RGB Under Cabinet
  10702. FF_DOF "E",121,-1 'DOFLinx DOF MX - Bumper 2
  10703. End Sub
  10704.  
  10705. Sub DOFLinx_Bumper3_Hit() 'DOFLinx - Bumper 3 Hit
  10706. FF_Sound DV_BC,-1,"fx_Bumper"
  10707. FF_FlasherForMs 250,125,bulboff,DV_FLCN,100,"Cyan"
  10708. FF_Colour "Cyan",RGB_TT,2 'DOFLinx - RGB Under Cabinet
  10709. FF_DOF "E",122,-1 'DOFLinx DOF MX - Bumper 3
  10710. End Sub
  10711.  
  10712. '*** Plunger, Drain ***
  10713.  
  10714. Sub DOFLinx_AutoPlunger() 'DOFLinx - AutoPlunger
  10715. FF_Sound DV_RS,-1,"fx_AutoFireR"
  10716. FF_DOF "E",132,-1 'DOFLinx DOF MX - Ball Launched
  10717. End Sub
  10718.  
  10719. Sub DOFLinx_PlungerKicker() 'DOFLinx - PlungerKicker
  10720. FF_Sound DV_RF,-1,"fx_BallRelease"
  10721. End Sub
  10722.  
  10723. Sub DOFLinx_Drain_Hit() 'DOFLinx - Drain Hit
  10724. FF_Sound DV_RF,-1, "fx_Drain"
  10725. End Sub
  10726.  
  10727. Sub DOFLinx_AutoPlungerKickback() 'DOFLinx - Kickback
  10728. FF_Sound DV_LS,-1,"fx_AutoFireL"
  10729. FF_DOF "E",133,-1 'DOFLinx DOF MX - Kickback
  10730. End Sub
  10731.  
  10732. '*** Drop Targets ***
  10733.  
  10734. Sub DOFLinx_Left_Drop_Target_Hit() 'DOFLinx - Left Drop Target Hit
  10735. FF_Sound DV_ML,-1,"fx_DropDownL"
  10736. End Sub
  10737.  
  10738. Sub DOFLinx_Droptarget_XWingBlast() 'DOFLinx Droptarget XWingBlast
  10739. DOFLinx_XWingBlast_Stage=1
  10740. DOFLinx_XWingBlast.Enabled=True
  10741. End Sub
  10742.  
  10743. Sub DOFLinx_Center_Drop_Target_Hit() 'DOFLinx - Center Drop Target Hit
  10744. FF_Sound DV_MC,-1,"fx_DropDownC"
  10745. End Sub
  10746.  
  10747. Sub DOFLinx_Left_Drop_Targets_Reset() 'DOFLinx - Left Drop Targets Reset
  10748. FF_Sound DV_BL,-1,"droptargetresetleft"
  10749. End Sub
  10750.  
  10751. Sub DOFLinx_Center_Drop_Targets_Reset() 'DOFLinx - Center Drop Targets Reset
  10752. FF_Sound DV_BC,-1,"droptargetresetleft"
  10753. End Sub
  10754.  
  10755.  
  10756. '*** Kickers ***
  10757.  
  10758. Sub DOFLinx_AttackKicker() 'DOFLinx - AttackKicker
  10759. FF_Sound DV_MR,-1,"fx_ScoopExit"
  10760. FF_Dev DV_SR,50 'DOFLinx - Strobe ON
  10761. End Sub
  10762.  
  10763. Sub DOFLinx_AttackKicker_Hit() 'DOFLinx - AttackKicker_Hit
  10764. FF_Sound DV_MR,-1,"fx_SolenoidHitR"
  10765. End Sub
  10766.  
  10767. Sub DOFLinx_FalconKicker() 'DOFLinx - FalconKicker
  10768. FF_Dev DV_BL,-1
  10769. FF_Dev DV_SR,50 'DOFLinx - Strobe ON
  10770. End Sub
  10771.  
  10772. Sub DOFLinx_FalconKicker_Hit() 'DOFLinx - FalconKicker Hit
  10773. FF_Sound DV_BL,-1,"fx_SolenoidHitL"
  10774. End Sub
  10775.  
  10776. Sub DOFLinx_VaderKicker() 'DOFLinx - VaderKicker
  10777. FF_Sound DV_BL,-1,"fx_ScoopExit"
  10778. FF_Dev DV_SR,50 'DOFLinx - Strobe ON
  10779. End Sub
  10780.  
  10781. Sub DOFLinx_VaderKicker_Hit() 'DOFLinx - VaderKicker Hit
  10782. FF_Sound DV_BL,-1,"fx_SolenoidHitL"
  10783. End Sub
  10784.  
  10785. Sub DOFLinx_KickerVUK() 'DOFLinx - KickerVUK
  10786. FF_Sound DV_BL,-1,"fx_ScoopHit"
  10787. FF_Dev DV_SR,50 'DOFLinx - Strobe ON
  10788. End Sub
  10789.  
  10790. Sub DOFLinx_KickerVUK_MX() 'DOFLinx_KickerVUK_MX
  10791. FF_DOF "E",441,-1 'DOFLinx DOF MX - Vader Kicker Left Rail Guide
  10792. FF_DOF "E",406,-1 'DOFLinx DOF MX - Strobe
  10793. End Sub
  10794.  
  10795. Sub DOFLinx_DeathStarKicker() 'DOFLinx - DeathStarKicker
  10796. FF_Sound DV_BC,-1,"fx_ScoopExit"
  10797. FF_Dev DV_SR,50 'DOFLinx - Strobe ON
  10798. FF_DOF "E",406,-1 'DOFLinx DOF MX - Strobe
  10799. End Sub
  10800.  
  10801. Sub DOFLinx_DeathStarKicker_Hit() 'DOFLinx - DeathStarKicker Hit
  10802. FF_Sound DV_BC,-1,"fx_SolenoidHitL"
  10803. End Sub
  10804.  
  10805.  
  10806. '********** SOLENOIDS - Section Ends ************
  10807.  
  10808.  
  10809.  
  10810. '****** START NEW GAME *******
  10811.  
  10812. Sub DOFLinx_Start_New_Game() 'DOFLinx - Start New Game
  10813. FF_Flasher DV_FLOL,FL_FD,2,20,100,"Blue"
  10814. FF_Flasher DV_FLIL,FL_FD,2,20,100,"Blue"
  10815. FF_Flasher DV_FLCN,FL_FD,2,20,100,"Yellow"
  10816. FF_Flasher DV_FLIR,FL_FD,2,20,100,"Red"
  10817. FF_Flasher DV_FLOR,FL_FD,2,20,100,"Red"
  10818.  
  10819. FF_Button BUT_CN,BA_ON,0,0 'DOFLinx - Coin - ON
  10820. FF_Button BUT_ST,BA_ON,0,0 'DOFLinx - Start - ON
  10821. FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  10822. DOFLinx_LightSaber_FireButton_Off() 'DOFLinx_LightSaber_FireButton_Off
  10823. DOFLinx_Lightsabers_Off() 'DOFLinx Lightsabers OFF
  10824. FF_DOF "E",422,0 'DOFLinx DOF MX - Ready to Start Game (Credits In) - OFF
  10825. End Sub
  10826.  
  10827. '****** COIN, START Buttons ******
  10828.  
  10829. Sub DOFLinx_NoCoins_StartOff() 'DOFLinx No Coins, Start Button Off
  10830. FF_Button BUT_CN,BA_FL,9999,40 'DOFLinx - Coin - Flash
  10831. FF_Button BUT_ST,BA_OFF,0,0 'DOFLinx - Start - Off
  10832. End Sub
  10833.  
  10834. Sub DOFLinx_CoinsIn_StartFlash() 'DOFLinx Coins In, Start Button Flashing
  10835. FF_Button BUT_CN,BA_ON,0,0 'DOFLinx - Coin - ON
  10836. FF_Button BUT_ST,BA_FL,9999,40 'DOFLinx - Start - Flash
  10837. FF_DOF "E",422,-1 'DOFLinx DOF MX - Ready to Start Game (Credits In) - ON
  10838. End Sub
  10839.  
  10840. Sub DOFLinx_Coin_Inserted() 'DOFLinx Coin Inserted
  10841. FF_Button BUT_CN,BA_ON,0,0 'DOFLinx - Coin - ON
  10842. FF_Button BUT_ST,BA_FL,9999,40 'DOFLinx - Start - Flash
  10843. FF_Dev DV_SR,50 'DOFLinx - Strobe ON
  10844. End Sub
  10845.  
  10846. Sub DOFLinx_NoPay_NoPlay() 'DOFLinx NoPay NoPlay
  10847. FF_Flasher DV_FLOL,FL_FD,2,10,100,"Red"
  10848. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Red"
  10849. FF_Flasher DV_FLCN,FL_FD,2,10,100,"Red"
  10850. FF_Flasher DV_FLOR,FL_FD,2,10,100,"Red"
  10851. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Red"
  10852. FF_Dev DV_SH,50 'DOFLinx - Shaker ON
  10853. FF_DOF "E",420,-1 'DOFLinx DOF MX - No Pay No Play
  10854. End Sub
  10855.  
  10856. Sub DOFLinx_CoinOn_StartOn() 'DOFLinx Coins & Start Button On, Game In Play
  10857. FF_Button BUT_CN,BA_ON,0,0 'DOFLinx - Coin - ON
  10858. FF_Button BUT_ST,BA_ON,0,0 'DOFLinx - Start - ON
  10859. FF_DOF "E",422,0 'DOFLinx DOF MX - Ready to Start Game (Credits In) - OFF
  10860. End Sub
  10861.  
  10862. '****** LAUNCH Button ******
  10863.  
  10864. Sub DOFLinx_Launch_Button_Flashing() 'DOFLinx - Launch Button Flashing
  10865. FF_Button BUT_LB,BA_FL,9999,40
  10866. FF_DOF "E",310,-1 'DOFLinx - DOF MX - Ball is Ready to Shoot - ON
  10867. End Sub
  10868.  
  10869. Sub DOFLinx_Launch_Button_Off() 'DOFLinx - Launch Button Off
  10870. FF_Button BUT_LB,BA_FL,0,0
  10871. FF_DOF "E",310,0 'DOFLinx - DOF MX - Ball is Ready to Shoot - OFF
  10872. End Sub
  10873.  
  10874. '************ DRAIN **************
  10875.  
  10876. Sub DOFLinx_Drained() 'DOFLinx - Drained
  10877. FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
  10878. FF_Dev DV_SH,0 'DOFLinx - Shaker OFF
  10879. FF_Dev DV_SR,0 'DOFLinx - Strobe OFF
  10880. FF_Dev DV_FN,0 'DOFLinx - Fan OFF
  10881. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  10882. DOFLinx_Drain_Stage=1
  10883. DOFLinx_Drain.Enabled=True
  10884. FF_DOF "E",130,-1 'DOFLinx DOF MX - Drained
  10885. End Sub
  10886.  
  10887. Sub DOFLinx_Left_Drained() 'DOFLinx - Left Drained
  10888. DOFLinx_Left_Drain_Stage=1
  10889. DOFLinx_Left_Drain.Enabled=True
  10890. FF_DOF "E",300,-1 'DOFLinx DOF MX - Left OuterLane Rollover / Drain
  10891. End Sub
  10892.  
  10893. Sub DOFLinx_Right_Drained() 'DOFLinx - Right Drained
  10894. DOFLinx_Right_Drain_Stage=1
  10895. DOFLinx_Right_Drain.Enabled=True
  10896. FF_DOF "E",309,-1 'DOFLinx DOF MX - Right OuterLane Rollover / Drain
  10897. End Sub
  10898.  
  10899.  
  10900. '********** TILT WARNING ************
  10901.  
  10902. Sub DOFLinx_TILT_Warning()'DOFLinx - Tilt Warning
  10903. FF_Colour "Red",RGB_TT,10 'DOFLinx - RGB Under Cabinet
  10904. FF_DOF "E",401,-1 'DOFLinx DOF MX - TILT Warning
  10905. End Sub
  10906.  
  10907.  
  10908. '*********** TILTED *************
  10909.  
  10910. Sub DOFLinx_TILTED() 'DOFLinx - Tilted
  10911. FF_Flasher DV_FLOL,FL_FL,10,20,100,"Red"
  10912. FF_Flasher DV_FLIL,FL_FL,10,20,100,"Red"
  10913. FF_Flasher DV_FLCN,FL_FL,10,20,100,"Red"
  10914. FF_Flasher DV_FLOR,FL_FL,10,20,100,"Red"
  10915. FF_Flasher DV_FLIR,FL_FL,10,20,100,"Red"
  10916. FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
  10917. FF_Dev DV_SH,0 'DOFLinx - Shaker OFF
  10918. FF_Dev DV_SR,0 'DOFLinx - Strobe OFF
  10919. FF_Dev DV_FN,0 'DOFLinx - Fan OFF
  10920. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  10921. FF_DOF "E",400,-1 'DOFLinx DOF MX - TILT
  10922. End Sub
  10923.  
  10924. '******* COMBO - JACKPOT - animation *******
  10925.  
  10926. Sub DOFLinx_Combo_Jackpot() 'DOFLinx - Combo - Jackpot animation
  10927. FF_FlasherForMs 1000,50,bulboff,DV_FLOL,100,"Red"
  10928. FF_FlasherForMs 1000,50,bulboff,DV_FLIL,100,"Purple"
  10929. FF_FlasherForMs 1000,50,bulboff,DV_FLCN,100,"Yellow"
  10930. FF_FlasherForMs 1000,50,bulboff,DV_FLIR,100,"Green"
  10931. FF_FlasherForMs 1000,50,bulboff,DV_FLOR,100,"Blue"
  10932. FF_Dev DV_SR,100 'DOFLinx - Strobe ON
  10933. End Sub
  10934.  
  10935.  
  10936. '******* RGB FLASHERS Animation section *****************
  10937.  
  10938. 'DOFLinx - Flashers animation - Left Drain - Left to Center
  10939. Sub DOFLinx_Left_Drain_Expired()
  10940. Select Case DOFLinx_Left_Drain_Stage
  10941. Case 1 : DOFLinx_Left_Drain_Stage=2
  10942. FF_Flasher DV_FLOL,FL_FD,2,10,100,"Red"
  10943. Case 2 : DOFLinx_Left_Drain_Stage=3
  10944. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Red"
  10945. Case 3 : DOFLinx_Left_Drain_Stage=1
  10946. FF_Flasher DV_FLCN,FL_FD,2,10,100,"Red"
  10947. DOFLinx_Left_Drain.Enabled=false
  10948. end Select
  10949. End Sub
  10950.  
  10951. 'DOFLinx - Flashers animation - Right Drain - Right to Center
  10952. Sub DOFLinx_Right_Drain_Expired()
  10953. Select Case DOFLinx_Right_Drain_Stage
  10954. Case 1 : DOFLinx_Right_Drain_Stage=2
  10955. FF_Flasher DV_FLOR,FL_FD,2,10,100,"Red"
  10956. Case 2 : DOFLinx_Right_Drain_Stage=3
  10957. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Red"
  10958. Case 3 : DOFLinx_Right_Drain_Stage=1
  10959. FF_Flasher DV_FLCN,FL_FD,2,10,100,"Red"
  10960. DOFLinx_Right_Drain.Enabled=false
  10961. end Select
  10962. End Sub
  10963.  
  10964. 'DOFLinx - Flashers animation - Drain - Center to Outer
  10965. Sub DOFLinx_Drain_Expired()
  10966. Select Case DOFLinx_Drain_Stage
  10967. Case 1 : DOFLinx_Drain_Stage=2
  10968. FF_Flasher DV_FLCN,FL_FD,2,10,100,"Red"
  10969. Case 2 : DOFLinx_Drain_Stage=3
  10970. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Red"
  10971. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Red"
  10972. Case 3 : DOFLinx_Drain_Stage=1
  10973. FF_Flasher DV_FLOL,FL_FD,2,10,100,"Red"
  10974. FF_Flasher DV_FLOR,FL_FD,2,10,100,"Red"
  10975. DOFLinx_Drain.Enabled=false
  10976. end Select
  10977. End Sub
  10978.  
  10979.  
  10980. 'DOFLinx - Flashers animation - Left to Right - Gray
  10981. Sub DOFLinx_LR_Gray_Expired()
  10982. Select Case DOFLinx_LR_Gray_Stage
  10983. Case 1 : DOFLinx_LR_Gray_Stage=2
  10984. FF_Flasher DV_FLOL,FL_FD,2,10,100,"Gray"
  10985. Case 2 : DOFLinx_LR_Gray_Stage=3
  10986. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Gray"
  10987. Case 3 : DOFLinx_LR_Gray_Stage=4
  10988. FF_Flasher DV_FLCN,FL_FD,2,10,100,"Gray"
  10989. Case 4 : DOFLinx_LR_Gray_Stage=5
  10990. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Gray"
  10991. Case 5 : DOFLinx_LR_Gray_Stage=1
  10992. FF_Flasher DV_FLOR,FL_FD,2,10,100,"Gray"
  10993. DOFLinx_LR_Gray.Enabled=false
  10994. end Select
  10995. End Sub
  10996.  
  10997. 'DOFLinx - Flashers animation - Right to Left - Green
  10998. Sub DOFLinx_RL_Green_Expired()
  10999. Select Case DOFLinx_RL_Green_Stage
  11000. Case 1 : DOFLinx_RL_Green_Stage=2
  11001. FF_Flasher DV_FLOR,FL_FD,2,10,100,"Green"
  11002. Case 2 : DOFLinx_RL_Green_Stage=3
  11003. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Green"
  11004. Case 3 : DOFLinx_RL_Green_Stage=4
  11005. FF_Flasher DV_FLCN,FL_FD,2,10,100,"Green"
  11006. Case 4 : DOFLinx_RL_Green_Stage=5
  11007. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Green"
  11008. Case 5 : DOFLinx_RL_Green_Stage=1
  11009. FF_Flasher DV_FLOL,FL_FD,2,10,100,"Green"
  11010. DOFLinx_RL_Green.Enabled=false
  11011. end Select
  11012. End Sub
  11013.  
  11014.  
  11015.  
  11016. 'DOFLinx - Flashers animation - X-Wing Blast Explosion
  11017. Sub DOFLinx_XWingBlast_Explosion_Expired()
  11018. Select Case DOFLinx_XWingBlast_Explosion_Stage
  11019. Case 1 : DOFLinx_XWingBlast_Explosion_Stage=2
  11020. FF_Flasher DV_FLOL,FL_FL,2,10,100,"Red"
  11021. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11022. FF_DOF "E",500,-1 'DOFLinx DOF MX - X-Wing Left Blaster
  11023. Case 2 : DOFLinx_XWingBlast_Explosion_Stage=3
  11024. FF_Flasher DV_FLIR,FL_FL,2,10,100,"Red"
  11025. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11026. FF_DOF "E",501,-1 'DOFLinx DOF MX - X-Wing Right Blaster
  11027. Case 3 : DOFLinx_XWingBlast_Explosion_Stage=4
  11028. FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
  11029. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11030. Case 4 : DOFLinx_XWingBlast_Explosion_Stage=5
  11031. FF_Flasher DV_FLIL,FL_FL,2,10,100,"Red"
  11032. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11033. FF_DOF "E",500,-1 'DOFLinx DOF MX - X-Wing Left Blaster
  11034. Case 5 : DOFLinx_XWingBlast_Explosion_Stage=6
  11035. FF_Flasher DV_FLOR,FL_FL,2,10,100,"Red"
  11036. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11037. FF_DOF "E",501,-1 'DOFLinx DOF MX - X-Wing Right Blaster
  11038. Case 6 : DOFLinx_XWingBlast_Explosion_Stage=7
  11039. FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
  11040. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11041. Case 7 : DOFLinx_XWingBlast_Explosion_Stage=8
  11042. FF_Flasher DV_FLOL,FL_FL,2,10,100,"Red"
  11043. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11044. FF_DOF "E",500,-1 'DOFLinx DOF MX - X-Wing Left Blaster
  11045. Case 8 : DOFLinx_XWingBlast_Explosion_Stage=9
  11046. FF_Flasher DV_FLIR,FL_FL,2,10,100,"Red"
  11047. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11048. FF_DOF "E",501,-1 'DOFLinx DOF MX - X-Wing Right Blaster
  11049. Case 9 : DOFLinx_XWingBlast_Explosion_Stage=10
  11050. FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
  11051. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11052. Case 10 : DOFLinx_XWingBlast_Explosion_Stage=11
  11053. FF_Flasher DV_FLIL,FL_FL,2,10,100,"Red"
  11054. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11055. FF_DOF "E",500,-1 'DOFLinx DOF MX - X-Wing Left Blaster
  11056. Case 11 : DOFLinx_XWingBlast_Explosion_Stage=12
  11057. FF_Flasher DV_FLOR,FL_FL,2,10,100,"Red"
  11058. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11059. FF_DOF "E",501,-1 'DOFLinx DOF MX - X-Wing Right Blaster
  11060. Case 12 : DOFLinx_XWingBlast_Explosion_Stage=13
  11061. FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
  11062. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11063. Case 13 : DOFLinx_XWingBlast_Explosion_Stage=14
  11064. FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
  11065. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11066. Case 14 : DOFLinx_XWingBlast_Explosion_Stage=1
  11067. FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
  11068. DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
  11069. DOFLinx_XWingBlast_Explosion.Enabled=false
  11070. DOFLinx_Explosion_Stage=4
  11071. DOFLinx_Explosion.Set True, 60
  11072. FF_Dev DV_SH,60 'DOFLinx - Shaker
  11073. FF_Dev DV_FN,60 'DOFLinx - Fan
  11074. FF_DOF "E",502,30 'DOFLinx DOF MX - Small Explosion
  11075. end Select
  11076. End Sub
  11077.  
  11078.  
  11079. 'DOFLinx - Flashers animation - X-Wing Blast
  11080. Sub DOFLinx_XWingBlast_Expired()
  11081. Select Case DOFLinx_XWingBlast_Stage
  11082. Case 1 : DOFLinx_XWingBlast_Stage=2
  11083. FF_Flasher DV_FLOL,FL_FL,2,10,100,"Red"
  11084. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11085. FF_DOF "E",500,-1 'DOFLinx DOF MX - X-Wing Left Blaster
  11086. Case 2 : DOFLinx_XWingBlast_Stage=3
  11087. FF_Flasher DV_FLIR,FL_FL,2,10,100,"Red"
  11088. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11089. FF_DOF "E",501,-1 'DOFLinx DOF MX - X-Wing Right Blaster
  11090. Case 3 : DOFLinx_XWingBlast_Stage=4
  11091. FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
  11092. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11093. Case 4 : DOFLinx_XWingBlast_Stage=5
  11094. FF_Flasher DV_FLIL,FL_FL,2,10,100,"Red"
  11095. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11096. FF_DOF "E",500,-1 'DOFLinx DOF MX - X-Wing Left Blaster
  11097. Case 5 : DOFLinx_XWingBlast_Stage=6
  11098. FF_Flasher DV_FLOR,FL_FL,2,10,100,"Red"
  11099. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11100. FF_DOF "E",501,-1 'DOFLinx DOF MX - X-Wing Right Blaster
  11101. Case 6 : DOFLinx_XWingBlast_Stage=1
  11102. FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
  11103. DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
  11104. DOFLinx_XWingBlast.Enabled = False
  11105. DOFLinx_Explosion_Stage=7
  11106. DOFLinx_Explosion.Set True, 60
  11107. FF_DOF "E",502,20 'DOFLinx DOF MX - Small Explosion
  11108. end Select
  11109. End Sub
  11110.  
  11111.  
  11112. 'DOFLinx - Flashers animation - Falcon_Fire_Hit_Blast
  11113. Sub DOFLinx_Falcon_Fire_Hit_Blast_Expired()
  11114. Select Case DOFLinx_Falcon_Fire_Hit_Blast_Stage
  11115. Case 1 : DOFLinx_Falcon_Fire_Hit_Blast_Stage=2
  11116. FF_Flasher DV_FLOL,FL_FL,2,10,100,"Orange"
  11117. FF_Flasher DV_FLIL,FL_FL,2,10,100,"Orange"
  11118. FF_Colour "Orange",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11119. Case 2 : DOFLinx_Falcon_Fire_Hit_Blast_Stage=3
  11120. FF_Flasher DV_FLOR,FL_FL,2,10,100,"Orange"
  11121. FF_Flasher DV_FLIR,FL_FL,2,10,100,"Orange"
  11122. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11123. Case 3 : DOFLinx_Falcon_Fire_Hit_Blast_Stage=4
  11124. FF_Flasher DV_FLOL,FL_FL,2,10,100,"Orange"
  11125. FF_Flasher DV_FLIL,FL_FL,2,10,100,"Orange"
  11126. FF_Colour "Orange",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11127. Case 4 : DOFLinx_Falcon_Fire_Hit_Blast_Stage=5
  11128. FF_Flasher DV_FLOR,FL_FL,2,10,100,"Orange"
  11129. FF_Flasher DV_FLIR,FL_FL,2,10,100,"Orange"
  11130. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11131. Case 5 : DOFLinx_Falcon_Fire_Hit_Blast_Stage=6
  11132. FF_Flasher DV_FLOL,FL_FL,2,10,100,"Orange"
  11133. FF_Flasher DV_FLIL,FL_FL,2,10,100,"Orange"
  11134. FF_Colour "Orange",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11135. Case 6 : DOFLinx_Falcon_Fire_Hit_Blast_Stage=1
  11136. FF_Flasher DV_FLOR,FL_FL,2,10,100,"Orange"
  11137. FF_Flasher DV_FLIR,FL_FL,2,10,100,"Orange"
  11138. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11139. DOFLinx_Falcon_Fire_Hit_Blast.Enabled = False
  11140. DOFLinx_Explosion_Stage=1
  11141. DOFLinx_Explosion.Set True, 60
  11142. end Select
  11143. End Sub
  11144.  
  11145.  
  11146. 'DOFLinx - Explosion - Flashers animation
  11147. Sub DOFLinx_Explosion_Expired()
  11148. Select Case DOFLinx_Explosion_Stage
  11149. Case 1 : DOFLinx_Explosion_Stage=2
  11150. DOFLinx_Vader_Explode_Delay.Enabled=False
  11151. FF_Flasher DV_FLCN,FL_FD,2,10,100,"Orange_red"
  11152. FF_Colour "Orange_red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11153. Case 2 : DOFLinx_Explosion_Stage=3
  11154. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
  11155. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
  11156. FF_Colour "Orange_red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11157. Case 3: DOFLinx_Explosion_Stage=4
  11158. FF_Flasher DV_FLOL,FL_FD,2,10,100,"Orange_red"
  11159. FF_Flasher DV_FLOR,FL_FD,2,10,100,"Orange_red"
  11160. FF_Colour "Orange_red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11161. Case 4 : DOFLinx_Explosion_Stage=5
  11162. FF_Flasher DV_FLCN,FL_FD,2,10,100,"Yellow"
  11163. FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11164. Case 5 : DOFLinx_Explosion_Stage=6
  11165. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Yellow"
  11166. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Yellow"
  11167. FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11168. Case 6: DOFLinx_Explosion_Stage=7
  11169. FF_Flasher DV_FLOL,FL_FD,2,10,100,"Yellow"
  11170. FF_Flasher DV_FLOR,FL_FD,2,10,100,"Yellow"
  11171. FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11172. Case 7 : DOFLinx_Explosion_Stage=8
  11173. FF_Flasher DV_FLCN,FL_FD,2,10,100,"White"
  11174. FF_Colour "White",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11175. Case 8 : DOFLinx_Explosion_Stage=9
  11176. FF_Flasher DV_FLIL,FL_FD,2,10,100,"White"
  11177. FF_Flasher DV_FLIR,FL_FD,2,10,100,"White"
  11178. FF_Colour "White",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11179. Case 9: DOFLinx_Explosion_Stage=10
  11180. FF_Flasher DV_FLOL,FL_FD,2,10,100,"White"
  11181. FF_Flasher DV_FLOR,FL_FD,2,10,100,"White"
  11182. FF_Colour "White",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11183. Case 10 : DOFLinx_Explosion_Stage=11
  11184. FF_Flasher DV_FLCN,FL_FD,2,10,100,"Orange_red"
  11185. FF_Colour "Orange_red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11186. Case 11 : DOFLinx_Explosion_Stage=12
  11187. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
  11188. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
  11189. FF_Colour "Orange_red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11190. Case 12: DOFLinx_Explosion_Stage=1
  11191. FF_Flasher DV_FLOL,FL_FD,2,10,100,"Orange_red"
  11192. FF_Flasher DV_FLOR,FL_FD,2,10,100,"Orange_red"
  11193. DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
  11194. DOFLinx_Explosion.Enabled=false
  11195. end Select
  11196. End Sub
  11197.  
  11198. 'DOFLinx - Flashers animation - Skillshot Blast - Outer to Center
  11199. Sub DOFLinx_Skillshot_Blast_Expired()
  11200. Select Case DOFLinx_Skillshot_Blast_Stage
  11201. Case 1 : DOFLinx_Skillshot_Blast_Stage=2
  11202. FF_Flasher DV_FLOL,FL_FD,2,10,100,"Blue"
  11203. FF_Flasher DV_FLOR,FL_FD,2,10,100,"Blue"
  11204. Case 2 : DOFLinx_Skillshot_Blast_Stage=3
  11205. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Blue"
  11206. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Blue"
  11207. Case 3 : DOFLinx_Skillshot_Blast_Stage=1
  11208. FF_Flasher DV_FLCN,FL_FD,2,10,100,"Blue"
  11209. DOFLinx_Skillshot_Blast.Enabled=false
  11210. end Select
  11211. End Sub
  11212.  
  11213. 'DOFLinx - Victory MB Undercab - animation
  11214. Sub DOFLinx_Victory_MB_Undercab_Expired()
  11215. Select Case DOFLinx_Victory_MB_Undercab_Stage
  11216. Case 1 : DOFLinx_Victory_MB_Undercab_Stage=2
  11217. FF_Colour "Purple",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11218. FF_DOF "E",485,-1 'DOFLinx DOF MX - Victory MB
  11219. Case 2 : DOFLinx_Victory_MB_Undercab_Stage=3
  11220. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11221. FF_DOF "E",486,-1 'DOFLinx DOF MX - Victory MB
  11222. Case 3: DOFLinx_Victory_MB_Undercab_Stage=4
  11223. FF_Colour "Blue",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11224. FF_DOF "E",483,-1 'DOFLinx DOF MX - Victory MB
  11225. Case 4 : DOFLinx_Victory_MB_Undercab_Stage=5
  11226. FF_Colour "Green",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11227. FF_DOF "E",484,-1 'DOFLinx DOF MX - Victory MB
  11228. Case 5 : DOFLinx_Victory_MB_Undercab_Stage=6
  11229. FF_Colour "Cyan",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11230. FF_DOF "E",487,-1 'DOFLinx DOF MX - Victory MB
  11231. Case 6: DOFLinx_Victory_MB_Undercab_Stage=7
  11232. FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11233. FF_DOF "E",488,-1 'DOFLinx DOF MX - Victory MB
  11234. Case 7 : DOFLinx_Victory_MB_Undercab_Stage=1
  11235. FF_Colour "White",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11236. end Select
  11237. End Sub
  11238.  
  11239. 'DOFLinx - DOFLinx_DeathStar_Destroyed - animation
  11240. Sub DOFLinx_DeathStar_Destroyed_Expired()
  11241. Select Case DOFLinx_DeathStar_Destroyed_Stage
  11242. Case 1 : DOFLinx_DeathStar_Destroyed_Stage=2
  11243. FF_Flasher DV_FLOL,FL_FD,2,50,100,"Purple"
  11244. FF_Flasher DV_FLIL,FL_FD,2,50,100,"Purple"
  11245. FF_Flasher DV_FLCN,FL_FD,2,50,100,"Purple"
  11246. FF_Flasher DV_FLIR,FL_FD,2,50,100,"Purple"
  11247. FF_Flasher DV_FLOR,FL_FD,2,50,100,"Purple"
  11248. FF_Colour "Purple",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11249. Case 2 : DOFLinx_DeathStar_Destroyed_Stage=3
  11250. FF_Flasher DV_FLOL,FL_FD,2,50,100,"Red"
  11251. FF_Flasher DV_FLIL,FL_FD,2,50,100,"Red"
  11252. FF_Flasher DV_FLCN,FL_FD,2,50,100,"Red"
  11253. FF_Flasher DV_FLIR,FL_FD,2,50,100,"Red"
  11254. FF_Flasher DV_FLOR,FL_FD,2,50,100,"Red"
  11255. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11256. Case 3: DOFLinx_DeathStar_Destroyed_Stage=4
  11257. FF_Flasher DV_FLOL,FL_FD,2,50,100,"Blue"
  11258. FF_Flasher DV_FLIL,FL_FD,2,50,100,"Blue"
  11259. FF_Flasher DV_FLCN,FL_FD,2,50,100,"Blue"
  11260. FF_Flasher DV_FLIR,FL_FD,2,50,100,"Blue"
  11261. FF_Flasher DV_FLOR,FL_FD,2,50,100,"Blue"
  11262. FF_Colour "Blue",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11263. Case 4 : DOFLinx_DeathStar_Destroyed_Stage=5
  11264. FF_Flasher DV_FLOL,FL_FD,2,50,100,"Green"
  11265. FF_Flasher DV_FLIL,FL_FD,2,50,100,"Green"
  11266. FF_Flasher DV_FLCN,FL_FD,2,50,100,"Green"
  11267. FF_Flasher DV_FLIR,FL_FD,2,50,100,"Green"
  11268. FF_Flasher DV_FLOR,FL_FD,2,50,100,"Green"
  11269. FF_Colour "Green",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11270. Case 5 : DOFLinx_DeathStar_Destroyed_Stage=6
  11271. FF_Flasher DV_FLOL,FL_FD,2,50,100,"Cyan"
  11272. FF_Flasher DV_FLIL,FL_FD,2,50,100,"Cyan"
  11273. FF_Flasher DV_FLCN,FL_FD,2,50,100,"Cyan"
  11274. FF_Flasher DV_FLIR,FL_FD,2,50,100,"Cyan"
  11275. FF_Flasher DV_FLOR,FL_FD,2,50,100,"Cyan"
  11276. FF_Colour "Cyan",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11277. Case 6: DOFLinx_DeathStar_Destroyed_Stage=7
  11278. FF_Flasher DV_FLOL,FL_FD,2,50,100,"Yellow"
  11279. FF_Flasher DV_FLIL,FL_FD,2,50,100,"Yellow"
  11280. FF_Flasher DV_FLCN,FL_FD,2,50,100,"Yellow"
  11281. FF_Flasher DV_FLIR,FL_FD,2,50,100,"Yellow"
  11282. FF_Flasher DV_FLOR,FL_FD,2,50,100,"Yellow"
  11283. FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11284. Case 7 : DOFLinx_DeathStar_Destroyed_Stage=1
  11285. FF_Flasher DV_FLOL,FL_FD,2,50,100,"White"
  11286. FF_Flasher DV_FLIL,FL_FD,2,50,100,"White"
  11287. FF_Flasher DV_FLCN,FL_FD,2,50,100,"White"
  11288. FF_Flasher DV_FLIR,FL_FD,2,50,100,"White"
  11289. FF_Flasher DV_FLOR,FL_FD,2,50,100,"White"
  11290. FF_Colour "White",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11291. DOFLinx_DeathStar_Destroyed.Enabled=False
  11292. end Select
  11293. End Sub
  11294.  
  11295.  
  11296.  
  11297.  
  11298. '****** Mode Jackpots, Bonus, Score, etc... ******
  11299.  
  11300. '****** Jedi Power Ups ******
  11301.  
  11302. Sub DOFLinx_Padawan_Powerup() 'DOFLinx_Padawan_Powerup
  11303. FF_FlasherForMs 1000,50,bulboff,DV_FLOL,100,"Green"
  11304. FF_FlasherForMs 1000,50,bulboff,DV_FLIL,100,"Green"
  11305. FF_FlasherForMs 1000,50,bulboff,DV_FLCN,100,"Green"
  11306. FF_FlasherForMs 1000,50,bulboff,DV_FLIR,100,"Green"
  11307. FF_FlasherForMs 1000,50,bulboff,DV_FLOR,100,"Green"
  11308. FF_Dev DV_SR,100 'DOFLinx - Strobe ON
  11309. FF_Dev DV_BK,100 'DOFLinx - Beacon ON
  11310. FF_Colour "Green",RGB_TT,20 'DOFLinx - RGB Under Cabinet
  11311. FF_DOF "E",460,100 'DOFLinx DOF MX - Padawan PowerUP (Back MX)
  11312. End Sub
  11313.  
  11314. Sub DOFLinx_Jedi_Powerup() 'DOFLinx_Jedi_Powerup
  11315. FF_FlasherForMs 1000,50,bulboff,DV_FLOL,100,"Green"
  11316. FF_FlasherForMs 1000,50,bulboff,DV_FLIL,100,"Green"
  11317. FF_FlasherForMs 1000,50,bulboff,DV_FLCN,100,"Green"
  11318. FF_FlasherForMs 1000,50,bulboff,DV_FLIR,100,"Green"
  11319. FF_FlasherForMs 1000,50,bulboff,DV_FLOR,100,"Green"
  11320. FF_Dev DV_SR,100 'DOFLinx - Strobe ON
  11321. FF_Dev DV_BK,100 'DOFLinx - Beacon ON
  11322. FF_Colour "Green",RGB_TT,20 'DOFLinx - RGB Under Cabinet
  11323. FF_DOF "E",461,100 'DOFLinx DOF MX - Jedi PowerUP (Back MX)
  11324. End Sub
  11325.  
  11326. Sub DOFLinx_Yoda_Powerup() 'DOFLinx_Yoda_Powerup
  11327. FF_FlasherForMs 1000,50,bulboff,DV_FLOL,100,"Green"
  11328. FF_FlasherForMs 1000,50,bulboff,DV_FLIL,100,"Green"
  11329. FF_FlasherForMs 1000,50,bulboff,DV_FLCN,100,"Green"
  11330. FF_FlasherForMs 1000,50,bulboff,DV_FLIR,100,"Green"
  11331. FF_FlasherForMs 1000,50,bulboff,DV_FLOR,100,"Green"
  11332. FF_Dev DV_SR,100 'DOFLinx - Strobe ON
  11333. FF_Dev DV_BK,100 'DOFLinx - Beacon ON
  11334. FF_Colour "Green",RGB_TT,20 'DOFLinx - RGB Under Cabinet
  11335. FF_DOF "E",462,100 'DOFLinx DOF MX - Yoda PowerUP (Back MX)
  11336. End Sub
  11337.  
  11338. Sub DOFLinx_Wave_Destroyed() 'DOFLinx Wave Destroyed
  11339. FF_FlasherForMs 1000,50,bulboff,DV_FLOL,100,"Blue"
  11340. FF_FlasherForMs 1000,50,bulboff,DV_FLIL,100,"Blue"
  11341. FF_FlasherForMs 1000,50,bulboff,DV_FLCN,100,"Blue"
  11342. FF_FlasherForMs 1000,50,bulboff,DV_FLIR,100,"Blue"
  11343. FF_FlasherForMs 1000,50,bulboff,DV_FLOR,100,"Blue"
  11344. FF_Colour "Blue",RGB_TT,20 'DOFLinx - RGB Under Cabinet
  11345. FF_DOF "E",459,60 'DOFLinx DOF MX - Wave Destroyed
  11346. End Sub
  11347.  
  11348. Sub DOFLinx_HISCORE_MX() 'DOFLinx_HISCORE_MX
  11349. FF_DOF "E",450,100 'DOFLinx DOF MX - Wave Destroyed
  11350. End Sub
  11351.  
  11352. Sub DOFLinx_50000_MX() 'DOFLinx_50000_MX
  11353. FF_DOF "E",452,100 'DOFLinx DOF MX - 50,000
  11354. End Sub
  11355.  
  11356. Sub DOFLinx_ExtraBall_MX() 'DOFLinx_ExtraBall_MX
  11357. FF_DOF "E",451,100 'DOFLinx DOF MX - ExtraBall
  11358. End Sub
  11359.  
  11360. Sub DOFLinx_Special_MX() 'DOFLinx_Special_MX
  11361. FF_DOF "E",453,100 'DOFLinx DOF MX - 50,000
  11362. End Sub
  11363.  
  11364.  
  11365. '******** RGB UNDER CABINET Lighting Modes ********
  11366.  
  11367. Sub DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
  11368. FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet - Normal Mode
  11369. End Sub
  11370.  
  11371.  
  11372. '****** Spinners ******
  11373.  
  11374. Sub DOFLinx_Spinner_Hit() 'DOFLinx - Spinner Hit
  11375. FF_FlasherForMs 50,50,bulboff,DV_FLIR,100,"White"
  11376. FF_FlasherForMs 50,50,bulboff,DV_FLOR,100,"White"
  11377. FF_DOF "E",236,50 'DOFLinx DOF MX - Right Spinner (Back MX)
  11378. End Sub
  11379.  
  11380.  
  11381. Sub DOFLinx_Falcon_Spinner_Hit() 'DOFLinx - Falcon Spinner Hit
  11382. FF_FlasherForMs 50,50,bulboff,DV_FLIL,100,"Gray"
  11383. FF_FlasherForMs 50,50,bulboff,DV_FLOL,100,"Gray"
  11384. FF_DOF "E",235,50 'DOFLinx DOF MX - Left Spinner (Back MX)
  11385. End Sub
  11386.  
  11387.  
  11388. '****** Vader Targets ******
  11389.  
  11390. Sub DOFLinx_Vader_Target_V_Hit() 'DOFLinx - Vader Target V Hit
  11391. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
  11392. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
  11393. FF_DOF "E",230,-1 'DOFLinx DOF MX - Vader Target V Hit (Back MX)
  11394. End Sub
  11395.  
  11396. Sub DOFLinx_Vader_Target_A_Hit() 'DOFLinx - Vader Target A Hit
  11397. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
  11398. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
  11399. FF_DOF "E",231,-1 'DOFLinx DOF MX - Vader Target A Hit (Back MX)
  11400. End Sub
  11401.  
  11402. Sub DOFLinx_Vader_Target_D_Hit() 'DOFLinx - Vader Target D Hit
  11403. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
  11404. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
  11405. FF_DOF "E",232,-1 'DOFLinx DOF MX - Vader Target D Hit (Back MX)
  11406. End Sub
  11407.  
  11408. Sub DOFLinx_Vader_Target_E_Hit() 'DOFLinx - Vader Target E Hit
  11409. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
  11410. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
  11411. FF_DOF "E",233,-1 'DOFLinx DOF MX - Vader Target E Hit (Back MX)
  11412. End Sub
  11413.  
  11414. Sub DOFLinx_Vader_Target_R_Hit() 'DOFLinx - Vader Target R Hit
  11415. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
  11416. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
  11417. FF_DOF "E",234,-1 'DOFLinx DOF MX - Vader Target R Hit (Back MX)
  11418. End Sub
  11419.  
  11420. '****** Rebel RollOvers ******
  11421.  
  11422. Sub DOFLinx_TriggerLeftInLane_Hit() 'DOFLinx - Trigger Left In Lane Hit
  11423. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Yellow"
  11424. FF_DOF "E",301,-1 'DOFLinx DOF MX - Left InnerLane Rollover
  11425. End Sub
  11426.  
  11427. Sub DOFLinx_TriggerRightInLane_Hit() 'DOFLinx - Trigger Right In Lane Hit
  11428. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Yellow"
  11429. FF_DOF "E",308,-1 'DOFLinx DOF MX - Right InnerLane Rollover
  11430. End Sub
  11431.  
  11432. '****** Lightsaber - FIRE Button ******
  11433.  
  11434. Sub DOFLinx_LightSaber_FireButton_Flash() 'DOFLinx_LightSaber_FireButton_Flash
  11435. FF_Button BUT_FR,BA_FL,9999,40 'DOFLinx - Fire - Flash
  11436. End Sub
  11437.  
  11438. Sub DOFLinx_LightSaber_FireButton_Off() 'DOFLinx_LightSaber_FireButton_Off
  11439. FF_Button BUT_FR,BA_FL,0,0 'DOFLinx - Fire - Off
  11440. End Sub
  11441.  
  11442. '****** Lightsabers - Undercab, flashers,etc ******
  11443.  
  11444. Sub DOFLinx_Red_Lightsaber_On() 'DOFLinx_Red_Lightsaber_On
  11445. FF_Flasher DV_FLIL,FL_FD,0,0,100,"Black"
  11446. FF_Flasher DV_FLOL,FL_FD,0,0,100,"Black"
  11447. FF_Flasher DV_FLCN,FL_FD,1,30,100,"Red"
  11448. FF_Flasher DV_FLIR,FL_FD,1,20,100,"Red"
  11449. FF_Flasher DV_FLOR,FL_FD,1,10,100,"Red"
  11450. FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11451. FF_Dev DV_SH,50 'DOFLinx - Shaker
  11452. FF_DOF "E",561,-1 'DOFLinx DOF MX - Red Lightsaber ON
  11453. FF_DOF "E",560,0 'DOFLinx DOF MX - Blue Lightsaber OFF
  11454. End Sub
  11455.  
  11456. Sub DOFLinx_Blue_Lightsaber_On() 'DOFLinx_Blue_Lightsaber_On
  11457. FF_Flasher DV_FLIR,FL_FD,0,0,100,"Black"
  11458. FF_Flasher DV_FLOR,FL_FD,0,0,100,"Black"
  11459. FF_Flasher DV_FLCN,FL_FD,1,30,100,"Cyan"
  11460. FF_Flasher DV_FLIL,FL_FD,1,20,100,"Cyan"
  11461. FF_Flasher DV_FLOL,FL_FD,1,10,100,"Cyan"
  11462. FF_Colour "Cyan",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11463. FF_Dev DV_SH,50 'DOFLinx - Shaker
  11464. FF_DOF "E",560,-1 'DOFLinx DOF MX - Blue Lightsaber ON
  11465. FF_DOF "E",561,0 'DOFLinx DOF MX - Red Lightsaber OFF
  11466. End Sub
  11467.  
  11468. Sub DOFLinx_Blue_Lightsaber_Kickback() 'DOFLinx_Blue_Lightsaber_Kickback
  11469. FF_Flasher DV_FLIR,FL_FD,0,0,100,"Black"
  11470. FF_Flasher DV_FLOR,FL_FD,0,0,100,"Black"
  11471. FF_FlasherForMs 1600,1600,bulboff,DV_FLOL,100,"Cyan"
  11472. FF_FlasherForMs 1600,1600,bulboff,DV_FLIL,100,"Cyan"
  11473. FF_FlasherForMs 1600,1600,bulboff,DV_FLCN,100,"Cyan"
  11474. FF_Colour "Cyan",RGB_TT,15 'DOFLinx - RGB Under Cabinet
  11475. FF_Dev DV_SH,50 'DOFLinx - Shaker
  11476. End Sub
  11477.  
  11478. Sub DOFLinx_Lightsabers_On() 'DOFLinx_Lightsabers_On
  11479. FF_Flasher DV_FLIR,FL_FD,1,20,100,"Red"
  11480. FF_Flasher DV_FLOR,FL_FD,1,10,100,"Red"
  11481. FF_Flasher DV_FLCN,FL_FD,1,30,100,"Purple"
  11482. FF_Flasher DV_FLIL,FL_FD,1,20,100,"Cyan"
  11483. FF_Flasher DV_FLOL,FL_FD,1,10,100,"Cyan"
  11484. FF_Colour "Purple",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11485. FF_Dev DV_SH,50 'DOFLinx - Shaker
  11486. FF_DOF "E",560,-1 'DOFLinx DOF MX - Blue Lightsaber ON
  11487. FF_DOF "E",561,-1 'DOFLinx DOF MX - Red Lightsaber ON
  11488. End Sub
  11489.  
  11490. Sub DOFLinx_Lightsabers_Off() 'DOFLinx_Lightsabers_Off
  11491. FF_Flasher DV_FLIR,FL_FD,0,0,100,"Black"
  11492. FF_Flasher DV_FLOR,FL_FD,0,0,100,"Black"
  11493. FF_Flasher DV_FLCN,FL_FD,0,0,100,"Black"
  11494. FF_Flasher DV_FLIL,FL_FD,0,0,100,"Black"
  11495. FF_Flasher DV_FLOL,FL_FD,0,0,100,"Black"
  11496. DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
  11497. FF_DOF "E",560,0 'DOFLinx DOF MX - Blue Lightsaber OFF
  11498. FF_DOF "E",561,0 'DOFLinx DOF MX - Red Lightsaber OFF
  11499. End Sub
  11500.  
  11501. Sub DOFLinx_Red_Lightsaber_Off() 'DOFLinx_Red_Lightsaber_Off
  11502. FF_Flasher DV_FLCN,FL_FD,0,0,100,"Black"
  11503. FF_Flasher DV_FLIR,FL_FD,0,0,100,"Black"
  11504. FF_Flasher DV_FLOR,FL_FD,0,0,100,"Black"
  11505. DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
  11506. FF_DOF "E",561,0 'DOFLinx DOF MX - Red Lightsaber OFF
  11507. End Sub
  11508.  
  11509. Sub DOFLinx_Blue_Lightsaber_Off() 'DOFLinx_Blue_Lightsaber_Off
  11510. FF_Flasher DV_FLCN,FL_FD,0,0,100,"Black"
  11511. FF_Flasher DV_FLIR,FL_FD,0,0,100,"Black"
  11512. FF_Flasher DV_FLOR,FL_FD,0,0,100,"Black"
  11513. DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
  11514. FF_DOF "E",560,0 'DOFLinx DOF MX - Blue Lightsaber OFF
  11515. End Sub
  11516.  
  11517. Sub DOFLinx_Red_Lightsaber_Ball_Launch() 'DOFLinx_Red_Lightsaber_Ball_Launch
  11518. FF_Flasher DV_FLCN,FL_FD,2,10,100,"Red"
  11519. FF_Flasher DV_FLIR,FL_FD,2,10,100,"Red"
  11520. FF_Flasher DV_FLOR,FL_FD,2,10,100,"Red"
  11521. FF_Colour "Red",RGB_TT,10 'DOFLinx - RGB Under Cabinet
  11522. End Sub
  11523.  
  11524. '****** Left Star Triggers ******
  11525.  
  11526. Sub DOFLinx_TriggerLeftStar1_Hit() 'DOFLinx_TriggerLeftStar1_Hit
  11527. FF_Flasher DV_FLOL,FL_FD,2,10,100,"Purple"
  11528. FF_DOF "E",430,-1 'DOFLinx DOF MX - Orbit Trigger: Outer Left
  11529. End Sub
  11530.  
  11531. Sub DOFLinx_TriggerLeftStar2_Hit() 'DOFLinx_TriggerLeftStar2_Hit
  11532. FF_Flasher DV_FLIL,FL_FD,2,10,100,"Purple"
  11533. FF_DOF "E",431,-1 'DOFLinx DOF MX - Orbit Trigger: Left
  11534. End Sub
  11535.  
  11536. Sub DOFLinx_TriggerLeftStar3_Hit() 'DOFLinx_TriggerLeftStar3_Hit
  11537. FF_Flasher DV_FLCN,FL_FD,2,10,100,"Purple"
  11538. FF_DOF "E",432,-1 'DOFLinx DOF MX - Orbit Center
  11539. End Sub
  11540.  
  11541. '****** Solo - Falcon - Sequence ******
  11542.  
  11543. Sub DOFLinx_Solo_Sequence() 'DOFLinx_Solo_Sequence
  11544. DOFLinx_LR_Gray_Stage=1
  11545. DOFLinx_LR_Gray.Enabled=True
  11546. FF_Dev DV_FN,100 'DOFLinx - Fan ON
  11547. FF_Colour "Gray",RGB_TT,20 'DOFLinx - RGB Under Cabinet
  11548. FF_DOF "E",440,-1 'DOFLinx DOF MX - Right Rail Guide
  11549. End Sub
  11550.  
  11551. Sub DOFLinx_Solo_S_MX() 'DOFLinx_Solo_S_MX
  11552. FF_DOF "E",540,160 'DOFLinx DOF MX - SOLO "S" Flash
  11553. End Sub
  11554.  
  11555. Sub DOFLinx_Solo_O_MX() 'DOFLinx_Solo_O_MX
  11556. FF_DOF "E",541,160 'DOFLinx DOF MX - SOLO "O" Flash
  11557. End Sub
  11558.  
  11559. Sub DOFLinx_Solo_L_MX() 'DOFLinx_Solo_L_MX
  11560. FF_DOF "E",542,160 'DOFLinx DOF MX - SOLO "L" Flash
  11561. End Sub
  11562.  
  11563. Sub DOFLinx_Solo_SOLO_MX() 'DOFLinx_Solo_SOLO_MX
  11564. FF_DOF "E",543,160 'DOFLinx DOF MX - SOLO "SOLO" Flash
  11565. End Sub
  11566.  
  11567.  
  11568. '****** Attack Kicker Animations ******
  11569.  
  11570. Sub DOFLinx_Attack_Kicker_XWingBlast_Explosion() 'DOFLinx_Attack_Kicker_XWingBlast_Explosion
  11571. DOFLinx_XWingBlast_Explosion_Stage=1
  11572. DOFLinx_XWingBlast_Explosion.Enabled = True
  11573. End Sub
  11574.  
  11575. Sub DOLFinx_AttackKicker_Explosion() 'DOLFinx_AttackKicker_Explosion
  11576. DOFLinx_Explosion_Stage=4
  11577. DOFLinx_Explosion.Set True, 60
  11578. End Sub
  11579.  
  11580.  
  11581. '****** Vader Kicker Animations ******
  11582.  
  11583. Sub DOFLinx_Vader_Kicker_Attack() 'DOFLinx_Vader_Kicker_Attack
  11584. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11585. FF_Dev DV_BK,500 'DOFLinx - Beacon ON
  11586. FF_FlasherForMs 1700,50,bulboff,DV_FLOL,100,"Green"
  11587. FF_FlasherForMs 1700,50,bulboff,DV_FLIL,100,"Green"
  11588. FF_FlasherForMs 1700,50,bulboff,DV_FLIR,100,"Green"
  11589. FF_FlasherForMs 1700,50,bulboff,DV_FLOR,100,"Green"
  11590. DOFLinx_Vader_Explode_Delay.Set True, 1700
  11591. DOFLinx_VaderBlasersMX_Stage=1
  11592. DOFLinx_VaderBlasersMX.enabled=True
  11593. End Sub
  11594.  
  11595. Sub DOFLinx_Vader_Explode_Delay_Expired()
  11596. FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
  11597. DOFLinx_Explosion_Stage=1
  11598. DOFLinx_Explosion.Set True, 100
  11599. FF_Dev DV_SH,150 'DOFLinx - Shaker
  11600. FF_Dev DV_FN,150 'DOFLinx - Fan
  11601.  
  11602. End Sub
  11603.  
  11604. Sub DOFLinx_VaderAttacks() 'DOFLinx_VaderAttacks
  11605. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11606. FF_Dev DV_BK,500 'DOFLinx - Beacon ON
  11607. FF_FlasherForMs 900,50,bulboff,DV_FLOL,100,"Green"
  11608. FF_FlasherForMs 900,50,bulboff,DV_FLIL,100,"Green"
  11609. FF_FlasherForMs 900,50,bulboff,DV_FLIR,100,"Green"
  11610. FF_FlasherForMs 900,50,bulboff,DV_FLOR,100,"Green"
  11611. DOFLinx_Vader_Explode_Delay.Set True, 900
  11612. DOFLinx_VaderBlasersMX_Stage=8
  11613. DOFLinx_VaderBlasersMX.enabled=True
  11614. End Sub
  11615.  
  11616. Sub DOFLinx_TIEAttacks4() 'DOFLinx_TIEAttacks4
  11617. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11618. FF_Dev DV_BK,500 'DOFLinx - Beacon ON
  11619. FF_FlasherForMs 900,50,bulboff,DV_FLOL,100,"Green"
  11620. FF_FlasherForMs 900,50,bulboff,DV_FLIL,100,"Green"
  11621. FF_FlasherForMs 900,50,bulboff,DV_FLIR,100,"Green"
  11622. FF_FlasherForMs 900,50,bulboff,DV_FLOR,100,"Green"
  11623. DOFLinx_Vader_Explode_Delay.Set True, 900
  11624. DOFLinx_VaderBlasersMX_Stage=8
  11625. DOFLinx_VaderBlasersMX.enabled=True
  11626. End Sub
  11627.  
  11628. Sub DOFLinx_VaderBlasersMX_Expired() 'DOFLinx Vader Blasters MX
  11629. Select Case DOFLinx_VaderBlasersMX_Stage
  11630. Case 1 : DOFLinx_VaderBlasersMX_Stage=2
  11631. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11632. Case 2 : DOFLinx_VaderBlasersMX_Stage=3
  11633. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11634. Case 3: DOFLinx_VaderBlasersMX_Stage=4
  11635. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11636. Case 4 : DOFLinx_VaderBlasersMX_Stage=5
  11637. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11638. Case 5 : DOFLinx_VaderBlasersMX_Stage=6
  11639. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11640. Case 6: DOFLinx_VaderBlasersMX_Stage=7
  11641. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11642. Case 7 : DOFLinx_VaderBlasersMX_Stage=8
  11643. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11644. Case 8 : DOFLinx_VaderBlasersMX_Stage=9
  11645. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11646. Case 9 : DOFLinx_VaderBlasersMX_Stage=10
  11647. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11648. Case 10: DOFLinx_VaderBlasersMX_Stage=11
  11649. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11650. Case 11 : DOFLinx_VaderBlasersMX_Stage=12
  11651. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11652. Case 12 : DOFLinx_VaderBlasersMX_Stage=13
  11653. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11654. Case 13: DOFLinx_VaderBlasersMX_Stage=14
  11655. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11656. Case 14 : DOFLinx_VaderBlasersMX_Stage=15
  11657. FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
  11658. FF_DOF "E",502,30 'DOFLinx DOF MX - Small Explosion
  11659. DOFLinx_VaderBlasersMX.enabled=False
  11660. end Select
  11661. End Sub
  11662.  
  11663.  
  11664. '****** Skillshot ******
  11665.  
  11666. Sub DOFLinx_Skillshot_Start() 'DOFLinx - Skillshot Start
  11667. FF_Dev DV_BK,310 'DOFLinx - Beacon ON
  11668. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11669. FF_DOF "E",563,20 'DOFLinx DOF MX - Skillshot Targetting
  11670. End Sub
  11671.  
  11672. Sub DOFLinx_Skillshot_Ready_to_Fire() 'DOFLinx - Skillshot Ready To Fire
  11673. FF_FlasherForMs 500,50,bulboff,DV_FLOL,100,"Yellow"
  11674. FF_FlasherForMs 500,50,bulboff,DV_FLIL,100,"Yellow"
  11675. FF_FlasherForMs 500,50,bulboff,DV_FLCN,100,"Yellow"
  11676. FF_FlasherForMs 500,50,bulboff,DV_FLIR,100,"Yellow"
  11677. FF_FlasherForMs 500,50,bulboff,DV_FLOR,100,"Yellow"
  11678. FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11679. FF_DOF "E",564,40 'DOFLinx DOF MX - Skillshot Ready To Fire
  11680. End Sub
  11681.  
  11682. Sub DOFLinx_Skillshot_Fire() 'DOFLinx - Skillshot Fire
  11683. DOFLinx_Skillshot_Blast_Stage=1
  11684. DOFLinx_Skillshot_Blast.Enabled=True
  11685. FF_Dev DV_SR,100 'DOFLinx - Strobe ON
  11686. FF_DOF "E",565,-1 'DOFLinx DOF MX - Skillshot Fire
  11687. End Sub
  11688.  
  11689. Sub DOFLinx_Skillshot_Hit() 'DOFLinx_Skillshot_Hit
  11690. DOFLinx_Explosion_Stage=1
  11691. DOFLinx_Explosion.Set True, 100
  11692. FF_Dev DV_SH,150 'DOFLinx - Shaker
  11693. FF_Dev DV_FN,150 'DOFLinx - Fan
  11694. FF_DOF "E",502,30 'DOFLinx DOF MX - Small Explosion
  11695. End Sub
  11696.  
  11697. '****** Falcon Video Mode ******
  11698.  
  11699. Sub DOFLinx_Falcon_FireL() 'DOFLinx_Falcon_FireL
  11700. FF_FlasherForMs 500,50,bulboff,DV_FLOL,100,"Green"
  11701. FF_FlasherForMs 500,50,bulboff,DV_FLIL,100,"Green"
  11702. FF_DOF "E",550,40 'DOFLinx DOF MX - Left Arrow Flash
  11703. End Sub
  11704.  
  11705. Sub DOFLinx_Falcon_FireR() 'DOFLinx_Falcon_FireR
  11706. FF_FlasherForMs 500,50,bulboff,DV_FLIR,100,"Green"
  11707. FF_FlasherForMs 500,50,bulboff,DV_FLOR,100,"Green"
  11708. FF_DOF "E",551,40 'DOFLinx DOF MX - Right Arrow Flash
  11709. End Sub
  11710.  
  11711. Sub DOFLinx_Falcon_Fire_Miss() 'DOFLinx_Falcon_Fire_Miss
  11712. FF_FlasherForMs 500,50,bulboff,DV_FLOL,100,"Red"
  11713. FF_FlasherForMs 500,50,bulboff,DV_FLIL,100,"Red"
  11714. FF_FlasherForMs 500,50,bulboff,DV_FLCN,100,"Red"
  11715. FF_FlasherForMs 500,50,bulboff,DV_FLIR,100,"Red"
  11716. FF_FlasherForMs 500,50,bulboff,DV_FLOR,100,"Red"
  11717. FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
  11718. DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
  11719. FF_DOF "E",552,-1 'DOFLinx DOF MX - Falcon Fire Miss
  11720. End Sub
  11721.  
  11722. Sub DOFLinx_Falcon_VideoMode_Start() 'DOFLinx_Falcon_VideoMode_Start
  11723. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11724. FF_Dev DV_BK,9999 'DOFLinx - Beacon ON
  11725. FF_DOF "E",407,150 'DOFLinx DOF MX - Beacon ON
  11726. End Sub
  11727.  
  11728. Sub DOFLinx_Falcon_Fire_Hit() 'DOFLinx_Falcon_Fire_Hit
  11729. DOFLinx_Falcon_Fire_Hit_Blast_Stage = 1
  11730. DOFLinx_Falcon_Fire_Hit_Blast.Enabled = True
  11731. FF_Dev DV_SH,150 'DOFLinx - Shaker
  11732. FF_Dev DV_FN,150 'DOFLinx - Fan
  11733. FF_DOF "E",502,10 'DOFLinx DOF MX - Small Explosion
  11734. End Sub
  11735.  
  11736. Sub DOFLinx_VideoMode_Won() 'DOFLinx_VideoMode_Won
  11737. FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
  11738. DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
  11739. DOFLinx_Combo_Jackpot() 'DOFLinx - Combo - Jackpot animation
  11740. FF_DOF "E",553,100 'DOFLinx DOF MX - VICTORY
  11741. End Sub
  11742.  
  11743.  
  11744. '****** Death Star Animations ******
  11745.  
  11746. Sub DOFLinx_DeathStar_BlowUp() 'DOFLinx_DeathStar_BlowUp
  11747. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11748. DOFLinx_DeathStar_Gone_Delay.Set True, 7000
  11749. DOFLinx_DeathStar_BlowUp_Delay.Set True, 5200
  11750. FF_DOF "E",570,100 'DOFLinx DOF MX - Blow Up Death Star - FIRE
  11751. End Sub
  11752.  
  11753. Sub DOFLinx_DeathStar_BlowUp_Delay_Expired()
  11754. DOFLinx_DeathStar_BlowUp_Delay.Enabled=false
  11755. FF_Flasher DV_FLIR,FL_FD,2,80,100,"Yellow"
  11756. FF_Flasher DV_FLOR,FL_FD,2,60,100,"Yellow"
  11757. FF_Flasher DV_FLCN,FL_FD,2,90,100,"Yellow"
  11758. FF_Flasher DV_FLIL,FL_FD,2,60,100,"Yellow"
  11759. FF_Flasher DV_FLOL,FL_FD,2,80,100,"Yellow"
  11760. FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
  11761. FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11762. FF_Dev DV_SH,350 'DOFLinx - Shaker
  11763. FF_Dev DV_FN,350 'DOFLinx - Fan
  11764. FF_DOF "E",502,100 'DOFLinx DOF MX - Explosion
  11765. End Sub
  11766.  
  11767. Sub DOFLinx_Planet_BlowUp() 'DOFLinx_Planet_BlowUp
  11768. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11769. DOFLinx_DeathStar_BlowUp_Delay.Set True, 3600
  11770. DOFLinx_DeathStar_Laser_Delay.Set True, 2600
  11771. End Sub
  11772.  
  11773. Sub DOFLinx_DeathStar_Laser_Delay_Expired()
  11774. DOFLinx_DeathStar_Laser_Delay.Enabled = False
  11775. DOFLinx_RL_Green_Stage=1
  11776. DOFLinx_RL_Green.Enabled = True
  11777. FF_DOF "E",571,-1 'DOFLinx DOF MX - Death Star Lazer - FIRE
  11778. End Sub
  11779.  
  11780. Sub DOFLinx_DeathStar_MB_Start() 'DOFLinx_DeathStar_MB_Start
  11781. FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
  11782. FF_Dev DV_BK,9999 'DOFLinx - Beacon ON
  11783. End Sub
  11784.  
  11785. Sub DOFLinx_DeathStar_Gone_Delay_Expired() 'DOFLinx_DeathStar_Destroyed
  11786. DOFLinx_DeathStar_Destroyed_Stage=1
  11787. DOFLinx_DeathStar_Destroyed.Enabled=True
  11788. DOFLinx_DeathStar_Gone_Delay.Enabled=false
  11789. FF_DOF "E",572,1600 'DOFLinx DOF MX - Death Star Gone
  11790. End Sub
  11791.  
  11792.  
  11793. '****** Victory MultiBall ******
  11794.  
  11795. Sub DOFLinx_VictoryMB_Start() 'DOFLinx_VictoryMB_Start
  11796. FF_Dev DV_BK,99999 'DOFLinx - Beacon ON
  11797. FF_DOF "E",407,-1 'DOFLinx DOF MX - Beacon ON
  11798. DOFLinx_Victory_MB_Undercab_Stage=1
  11799. DOFLinx_Victory_MB_Undercab.Enabled = True
  11800.  
  11801. End Sub
  11802.  
  11803. Sub DOFLinx_Victory_Hit() 'DOFLinx_Victory_Hit
  11804. FF_FlasherForMs 200,200,bulboff,DV_FLOL,100,"Red"
  11805. FF_FlasherForMs 200,200,bulboff,DV_FLIL,100,"Red"
  11806. FF_FlasherForMs 200,200,bulboff,DV_FLIR,100,"Red"
  11807. FF_FlasherForMs 200,200,bulboff,DV_FLOR,100,"Red"
  11808. End Sub
  11809.  
  11810. Sub DOFLinx_VictoryMB_End() 'DOFLinx_VictoryMB_End
  11811. FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
  11812. DOFLinx_Victory_MB_Undercab.Enabled = False
  11813. FF_DOF "E",407,0 'DOFLinx DOF MX - Beacon OFF
  11814. End Sub
  11815.  
  11816. '****** R2-D2 Gear Motor ******
  11817.  
  11818. Sub DOFLinx_R2D2_GearMotor_Short() 'DOFLinx_R2D2_GearMotor Short
  11819. FF_Dev DV_GR,50 'DOFLinx - R2-D2 Gear Motor On Time
  11820. End Sub
  11821.  
  11822. Sub DOFLinx_R2D2_GearMotor_Long() 'DOFLinx_R2D2_GearMotor Long
  11823. FF_Dev DV_GR,75 'DOFLinx - R2-D2 Gear Motor On Time
  11824. End Sub
  11825.  
  11826.  
  11827. '****** DOFLinx MAIN SECTION ENDS ******
  11828.  
  11829.  
  11830.  
  11831.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement