Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' *********************************************************************
- ' ** **
- ' ** STAR WARS: DEATH STAR ASSAULT **
- ' ** **
- ' ** ULTIMATE Pro 1.06 **
- ' ** **
- ' ** Epic Space Battles! **
- ' ** **
- ' *********************************************************************
- ' ** DO NOT STEP OVER TO THE DARK SIDE AND USE ANY RESOURCES I'VE CREATED FOR
- ' THIS GAME IN ANY VISUAL PINBALL PROJECT. THIS GAME IS EXCLUSIVE ONLY FOR
- ' FIGHTERS OF THE REBEL ALLIANCE (FUTURE PINBALL) **
- ' ** MODS ARE PERMITTED FOR ANY FUTURE PINBALL PROJECT **
- ' POSSIBLE MOD IDEAS:
- ' side wall lighting, the light panels illuminate from behind allowing colour-changing (red during alerts)
- ' changable view outside the window on the backwall, possibly animated
- ' cab topper of some kind (for VR experience)
- ' blaster handle for plunger
- ' If you have the skills and time to contribute, then go for it!!
- ' ***************************************************************
- ' Who made the table?
- ' - SLAMT1LT
- ' Original table layout (Sci-Fi Classic)
- ' - Matt Ellis
- ' Toys:
- ' - Death Star toy by Wild
- ' - R2-D2 toy by Steve Paradis
- ' Toys and BAM Custom Models converted by TerryRed:
- ' - Turbo Laser Cannon, X-Wing fighter (original models by Fuzzel) - converted to "PEG"
- ' - Darth Vader Tie Fighter (original model by Fuzzel) - converted to BAM Custom Model
- ' - Tie Fighter - converted to "PEG"
- ' - Millenium Falcon - converted to BAM Custom Model
- ' Epic Space Battles mod (code, lighting, animation, lasers, and explosions):
- ' - TerryRed
- ' Darth Vader (BAM Custom Model):
- ' - converted and animated by Gimli and TerryRed
- ' Lightsaber mod and glow effect:
- ' - TerryRed
- ' Additional table updates:
- ' - TerryRed (detailed below)
- ' =========================================================================
- '****** TerryRed "Epic Space Battles" mod V1 and updates ******
- '- integrated smoke'a ball rolling sounds into table script (no need for external vbs)
- '- integrated shadowmaps into the table as Shadowmaps-shadows.TGA (no need for BAM to generate or cache shadowmaps on startup)
- '- added option to disable new animated sequences for space battles, hovering ships, darth vader, darth vader dancing
- '- added default hovering animations for the ships
- '- added turbo laser animated lighting and lasers
- '- added detached flashers to explosion holograms
- '- added detached flashers to all laser holograms so there will be real lighting following the laser animations across the table
- '- adjusted backwall normal map to smooth out space window
- '- added new Darth Vader character animations for many table events
- '- added new animated sequence: millenium falcon loops around the table for "SOLO" sequences
- '- added new animated sequence: new x-wing and tie fighter fly in and land
- '- added new animated sequence: Darth Vader tie fighter fires lasers and destroys x-wing trying to fly away (explodes)
- '- added new animated sequence: x-wing fires lasers and destroys tie fighter trying to fly away (explodes)
- '- added new animated sequence: x-wing and tie fighter rotating and firing lasers at each other
- '- added new turbo cannon animation and lighting when bumpers are hit
- '- added bump mapping for x-wing, turbo laser, tie fighter
- '- added new BAM custom models (now seen as TGA images in the editor): Darth Vader Tie Fighter, Millennium Falcon, Darth Vader
- '- added new models as pegs: X-wing, Tie Fighter, Turbo Laser Cannon
- '- changed position of X-Wing flasher, Death Star spot-light / flasher, and Level lights to make room for new models
- '- updated and added more playfield images for each lightsaber colour (changes were made to only the colour...not the lightsaber image)
- '- added additional lightsaber colours (blue, green, purple (corrected), yellow, orange)
- '- added option to disable Camera Control prompt
- '- updated Camera Control commands to work with new Static Camera view option
- '- added new custom static camera option (activated with right flipper during attract, special 2 during gameplay)
- '- added option to disable HUD DMD and HUD Videos (added extra code for all "fadein" commands)
- '- added option to disable lightsaber flasher effect (for seizure sensitive / VR users)
- '- added option to adjust brightness of bulbs
- '- added option to adjust brightness of flashers
- '- added option to adjust brightness of playfield inserts
- '- adjusted angle / size / position of lightsaber holograms for a better view of the glow in all camera views (adjusted mini-playfield to match)
- '- added option to disable table script settings for BAM post processing / lighting
- '- adjusted BAM post processing / lighting
- ' =========================================================================
- ' ** TIME ATTACK MODE **
- ' You have 1 ojective - destroy the Death Star but only 5 minutes to do it.
- ' Unlimited balls with numerous opportunities to extend the timer, such as:
- ' - hit the Vader lane 6 times (+15 seconds)
- ' - complete the VADER targets and shoot the Attack saucer (progressive, starting at +10 seconds)
- ' - complete SOLO at the ramp (+15 seconds)
- ' - max the bonus multiplier (+20 seconds)
- ' - make a SOLO ramp combo
- ' The main score display will show time remaining in minutes and seconds.
- ' Clear each wave of 7 TIE fighters to evetually power up to 'Skywalker'.
- ' Then shoot the Vader lane to start the final confrontation with Darth Vader.
- ' Shoot the Death Star saucer with Luke (silver ball only) before time runs out to
- ' destroy the Death Star.
- ' If either ball drains or the table is tilted, the mission is over.
- ' 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,
- ' they will just waste your time. It's hard but it can be done.
- '** ULTIMATE Pro 1.06 **
- ' added more Darth Vader quotes
- ' added fx to lightsabers when they turn on during bonus
- ' improved some timers
- ' fixed rare crash bug
- ' fixed some quotes overlapping or not playing
- ' increased some score values
- '** ULTIMATE Pro 1.05 **
- ' fixed wrong movie clip playing when ball draining down right outlane
- ' fixed Victory Lap multiball not starting after Death Star destroyed
- ' numerous other minor fixes and tweaks
- '** ULTIMATE Pro 1.04 **
- ' added new side wall and back wall art
- ' added animated Death Star and X-Wing toys
- ' added bump mapping to all toys and wall art
- ' New Rule: End of Ball Bonus now adds a Player Perk for the next ball only:
- ' - Chewbacca - Bumper value is increased (temporarily)
- ' - Leia - Kickback can be used 2 times before it turns off
- ' - Obi Wan - all Target values are increased (permanently)
- ' - Han - Video Mode is lit
- ' - Luke - Ball Saver timer is increased by 2 seconds
- ' removed Death Star hologram
- ' fixed some values not set for multiplayer games
- ' improved lighting effects
- ' improved some 'colour DMD' graphics
- ' improved attract sequence (removed my terrible Obi Wan voice over!)
- ' improved audio design
- ' added more quotes
- ' added retractable blades to lightsabres
- ' 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'
- ' added more animations to R2 toy
- ' added more movie clips
- ' New Rule: Added new power up, 'Skywalker'. Power ups increase all playfield score values
- ' New Rule: Added Extra Ball award for reaching 5 Million score
- ' New Rule: Added 'Force Power' magnets, usable only when player is at Jedi Master level or above
- ' New Rule: Added new 'Time Attack' mode
- ' replaced some older low res movie clips
- '** ULTIMATE Pro 1.02 **
- '- fixed black ball not appearing for final multiball
- '- fixed DMD error when Sith Win lightsabre duel
- '- added balance to the force so Sith win Lightsabre duel less frequently
- '- added automatic multiball camera switch (desktop only)
- '- added bump map texture to R2D2 toy
- '- added more quotes
- '- added more DMD graphics
- '- added teaser for Rise of Skywalker during the attract sequence
- '** ULTIMATE Pro 1.01 **
- ' - improved physics, geometry and lighting
- ' - added animation to light sabre and R2D2 toys
- ' - improved mechanical fx
- ' - general bug fixes
- '** ULTIMATE 1.06 **
- '- fixed ball sticking in Vader kicker
- '** ULTIMATE 1.05 **
- '- fixed Vader shot tally resetting when powering up
- '- fixed Vader playfield scoring not resetting when timer runs out
- '- fixed super spinners using wrong multiplier
- '- fixed right out lane wall lights still blinking when ball saved with the force
- '- fixed ball getting stuck on plastics from bumper hit
- '- added models to playfield (flasher wiring poles)
- '- increased Vader scoring time
- '- improved backglass artwork
- '- improved gameroom wall artwork
- '- improved cabinet artwork
- '- improved missing ball search
- '- improved and optimized some older clips
- '- added 3 new movie clips
- '- added more R2D2 activity during attract sequence
- '- added R2D2 alert for last tilt warning (next nudge tilts until reset)
- '- added more quotes from Princess Leia
- '- improved victory multiball
- '- new rule: hit the attack kicker 5 times for bonus held
- '- rule change: Points Rewards are now awarded every 1.5m (previously 1m)
- '- added new alternate artwork for backglass (choice of 3)
- '- moved mapping of reset high scores to keyboard key "R"
- '** ULTIMATE 1.04 **
- '- fixed wrong music playing when starting as Padawan for new game
- '- fixed some quotes overlapping when right in lane hit
- '- fixed missing score value for Jedi Power up
- '- adjusted reaction time for video mode
- '- adjusted Points Reward for Vader advance, + 2 instead of + 1
- '- added more holograms to R2D2
- '- added sound fx for starting game with no credtis
- '- added more quotes
- '- updated quote playlist for some events to avoid repitition
- '- improved and optimised some older clips
- '- rule change: collecting an attack reward also adds 1 TIE kill to the total tally. Hitting the attack kicker
- ' at any other time awards an increasing score value. Movie clip now only plays for collecting attack reward
- '- created quote playlist on some events to avoid repetition
- '- adjusted some timers
- '** ULTIMATE 1.03 **
- '- fixed Points Reward not showing list of adjustments if Points Reward used in previous game
- '- fixed next rank downgrading to Padawan when Jedi Knight selected to start game
- '- fixed Falcon spinner sticking in up position
- '- fixed some quotes overlapping
- '- fixed Attack awards not resetting for new game
- '- fixed ball remaining in plunger lane when Death Star starts firing on rebel base
- '- added more quotes and fx
- '- added more movie clips
- '- added Carrie Fisher (Princess Leia) tribute during attract
- '- added video mode
- '- improved playfield artwork
- '- rule change: only 1 extra ball can be won per ball (Special is awarded if extra ball already won)
- '- rule change: during 2 ball multiball, only the silver ball can make the shot to the Death Star
- ' ** ULTIMATE Edition 1.02 **
- '- fixed multiplayer game not resetting from previous multiplier game
- '- adjusted right spinner damping from normal to loose
- '- added Points Reward feature to end of game
- '- adjusted some volume levels on music and fx
- '- improved attract sequence
- '- rule change: completing the VADER stand up targets also awards a 6 second ball saver
- '- added dynamic lighting effects to backbox
- '- added alternative backglass art (switch with Special 2 key)
- '- added frame to HUD displays
- '- added more movie clips
- '- added a ton of new quotes
- '- improved Death Star destruction sequence
- '- improved sound edits on some quotes and fx
- '- reassigned some quotes to more appropriate events
- ' ** ULTIMATE Edition 1.01 **
- ' updated and improved everything
- ' DOFLinx cabinet devices used in this table:
- ' DV_LF = Left flipper
- ' DV_RF = Right flipper
- ' DV_LS = Left slingshot
- ' DV_RS = Right slingshot
- ' DV_ML = Mid field left solenoid
- ' DV_MC = Mid field centre solenoid
- ' DV_MR = Mid field right solenoid
- ' DV_BL = Back left solenoid
- ' DV_BR = Back right solenoid
- ' DV_FLOL = Flasher, outside left
- ' DV_FLIL = Flasher, inside left
- ' DV_FLCN = Flasher, centre
- ' DV_FLOR = Flasher outside right
- ' DV_FLIR = Flasher, inside right
- ' DV_FN = Blower Fan
- ' DV_SH = Shaker
- ' DV_SR = Strobe
- ' DV_BK = Beacon
- ' BUT_ST = Start button
- ' BUT_CN = Coin button
- ' BUT_LB = Launch Ball button
- ' RGB_ = RGB Undercab Lighting
- ' FF_DOF commands in this table are used for addressable leds (MX)
- Option Explicit
- xBAM.CreateAllExt 'create BAM Extension commands. This should be at the top of the script (below Option Explicit)
- Const BAM_VERSION = 0: AddDebugText "BAM Version: " & BAM_VERSION
- ' Variables
- dim PFLights_Brightness_GI_OFF
- dim PFLights_Brightness_GI_ON
- dim Flashers_Brightness_GI_OFF
- dim Flashers_Brightness_GI_ON
- dim Bulbs_Brightness_GI_OFF
- dim Bulbs_Brightness_GI_ON
- dim use_LightSaberFlasherEffect
- dim use_Table_BAM_LightPresets
- dim use_FP_HUD_DMD_and_Videos
- dim use_CameraControl
- dim use_New_Static_Camera_View
- dim use_Animated_Space_Battles
- dim use_Hovering_Ships
- dim use_Animated_Vader
- dim use_Dancing_Vader
- '/////////////////////////////////////////////////////////////////////////////////////////
- '//////////////////////////////// USER's TABLE OPTIONS ///////////////////////////////////
- use_FP_HUD_DMD_and_Videos = true 'display the HUD for the FP DMD and Videos
- use_CameraControl = true 'enable the prompt to allow BAM camera control (DESKTOP Mode ONLY)
- use_New_Static_Camera_View = true 'enable a better new "static" camera view for desktop mode (requires use_CameraControl = true)
- ' 'Camera Control must be allowed on table startup
- ' 'right flipper switches to the new camera view in attract mode
- ' 'Special 2 button switches to the new camera during gameplay
- '****** Epic Space Battle Options ******
- use_Animated_Space_Battles = true 'enable Epic Space Battle animations (rotating and flying spaceships, lasers, explosions)
- use_Hovering_Ships = true 'enable hovering animations for the spaceships
- use_Animated_Vader = true 'enable Darth Vader animations for table events
- use_Dancing_Vader = true 'enable Darth Vader's dancing animation during Game Over / Attract (needs use_Animated_Vader = true)
- '****** Lighting Options ******
- use_Table_BAM_LightPresets = true 'load BAM's Lighting and Post Processing settings from the table script (default = true)
- PFLights_Brightness_GI_OFF = 2.0 'brightness of light inserts when GI is off (default is 2.0)
- PFLights_Brightness_GI_ON = 1.4 'brightness of light inserts when GI is on (default is 1.4)
- Flashers_Brightness_GI_OFF = 1 'brightness of flashers when GI is off (default is 1.0)
- Flashers_Brightness_GI_ON = 1 'brightness of flashers when GI is on (default is 1.0)
- Bulbs_Brightness_GI_OFF = 2.0 'brightness of bulbs when GI is off (default is 2.0)
- Bulbs_Brightness_GI_ON = 1.6 'brightness of bulbs when GI is on (default is 1.6)
- use_LightSaberFlasherEffect = false 'enable lightsaber flasher flickering effect. Set to False when playing in VR (its hard on the eyes, and can distort visuals)
- '///////////////////////////// END OF USER's TABLE OPTIONS ///////////////////////////////
- '/////////////////////////////////////////////////////////////////////////////////////////
- '###########################################################################################
- '#################################### PHYSICS SETTINGS #####################################
- '=============================== PHYSICS XML ===========================
- '<?xml version="1.0" encoding="utf-8"?>
- '<document>
- ' <!—Custom Physics for Star Wars -->
- ' <physics fps="296" threaded="1"></physics>
- ' <ball newtonDamping="0" mass="75" gravity="6800" damping="0.65"></ball>
- ' <flipper releaseOmega="18" rotationSpeedChart="{0.0,100.0}[0.0,100.0]" newtonDamping="1" mass="20150" omega="43" moeMethod="0"
- ' leftXoff="0" leftYoff="1500" leftZoff="0"
- ' rightXoff="0" rightYoff="1500" rightZoff="0"></flipper>
- ' <bumper impulse="90.0" impulseRandomness="0" vectorRandomness="6"></bumper>
- ' <autoplunger mass="20000.0" force="60000.0"></autoplunger>
- ' <diverter mass="10000.0" omega="33.0"></diverter>
- ' <gate mass="0.5" gravity="3000.0" damping="1.0"></gate>
- ' <kicker impulse="1000.0" vukImpulse="1400.0" impulseRandomness="2" vectorRandomness="1"></kicker>
- ' <plunger mass="20000.0" force="30000.0"></plunger>
- ' <slingshot impulse="650.0" impulseRandomness="15" vectorRandomness="3"></slingshot>
- ' <spindisk mass="10000.0" angularDamp="0.33" linearDamp="0.25"></spindisk>
- ' <spinner mass="50000.0" gravity="9800.0" angularDamp="0.5" angularAccel="5.25"
- ' spinDampLoose="0.30" spinBackLoose="0.90"
- ' spinDampNorm="0.40" spinBackNorm="0.65"
- ' spinDampTight="0.70" spinBackTight="0.65"></spinner>
- ' <emkicker mass="10000.0" omega="80.0"></emkicker>
- ' <varitarget mass="500.0" damping="0.9" tension="3.0" return="15.0"></varitarget>
- ' <magnet impulse="10.0" impulseRandomness="2"></magnet>
- ' <nudge impulse="240.0" impulseRandomness="25.0" warningLevel="290" leftAngle="60" upAngle="0" rightAngle="320"
- ' vectorRandomness="5" visualDistance="3" waitPeriod="300" maxBallVelocity="500.0"></nudge>
- ' <defaultMat softnessCoef="0.03" elasticCoef="0.1" staticFriction="0.01" kineticFriction="0.02"></defaultMat>
- ' <playfieldMat softnessCoef="0.02" elasticCoef="0.1" staticFriction="0.01" kineticFriction="0.02"></playfieldMat>
- ' <metalMat softnessCoef="0.01" elasticCoef="0.15" staticFriction="0.02" kineticFriction="0.02"></metalMat>
- ' <woodMat softnessCoef="0.03" elasticCoef="0.15" staticFriction="0.03" kineticFriction="0.02"></woodMat>
- ' <plasticMat softnessCoef="0.02" elasticCoef="0.2" staticFriction="0.02" kineticFriction="0.01"></plasticMat>
- ' <rubberHardMat softnessCoef="0.08" elasticCoef="0.50" staticFriction="0.04" kineticFriction="0.055"></rubberHardMat>
- ' <rubberIntMat softnessCoef="0.1" elasticCoef="0.72" staticFriction="0.05" kineticFriction="0.065"></rubberIntMat>
- ' <rubberSoftMat softnessCoef="0.12" elasticCoef="0.90" staticFriction="0.06" kineticFriction="0.075"></rubberSoftMat>
- ' <gateMat softnessCoef="0.05" elasticCoef="0.65" staticFriction="0" kineticFriction="0"></gateMat>
- ' <kickerMat softnessCoef="0.01" elasticCoef="0.05" staticFriction="0.8" kineticFriction="0.8"></kickerMat>
- ' <rampMat softnessCoef="0.01" elasticCoef="0.01" staticFriction="0.01" kineticFriction="0.01"></rampMat>
- ' <plungerMat softnessCoef="0.04" elasticCoef="0.55" staticFriction="0.02" kineticFriction="0.02"></plungerMat>
- ' <spindiskMat softnessCoef="0.05" elasticCoef="0.5" staticFriction="1.5" kineticFriction="2"></spindiskMat>
- '</document>
- '=============================== PHYSICS XML ===========================
- ' === Dynamic Flipper Settings ===
- Dim RightFlipperExt,LeftFlipperExt
- Dim omegaCorrectionR
- Dim omegaCorrectionL
- xBAM.BallSpeedLimit = 3000
- Sub OnPreHitFlipperSettings(FlipperExt)
- OnPreHitFlipperSettings_bounceControl(FlipperExt)
- End Sub
- const MaxOmega = 42 'Omega at base of flipper. Must be > MinOmega. Default = 45
- const MinOmega = 32 'Omega at tip of flipper. Must be < MaxOmega. Default = 32
- Sub RightFlipper_prehit()
- OnPreHitFlipperSettings(RightFlipperExt)
- omegaCorrectionR = MaxOmega - (RightFlipperExt.ContactPoint * ((MaxOmega - MinOmega)/1.2))
- If RightFlipperExt.ContactPoint < 0.0 then RightFlipperExt.Omega = MaxOmega
- If RightFlipperExt.ContactPoint > 1.2 then RightFlipperExt.Omega = MinOmega
- If (RightFlipperExt.ContactPoint => 0.0) And (RightFlipperExt.ContactPoint =< 1.2) then
- RightFlipperExt.Omega = omegaCorrectionR
- End if
- End Sub
- Sub LeftFlipper_prehit()
- OnPreHitFlipperSettings(LeftFlipperExt)
- omegaCorrectionL = MaxOmega - (LeftFlipperExt.ContactPoint * ((MaxOmega - MinOmega)/1.2))
- If LeftFlipperExt.ContactPoint < 0.0 then LeftFlipperExt.Omega = MaxOmega
- If LeftFlipperExt.ContactPoint > 1.2 then LeftFlipperExt.Omega = MinOmega
- If (LeftFlipperExt.ContactPoint => 0.0) And (LeftFlipperExt.ContactPoint =< 1.2) then
- LeftFlipperExt.Omega = omegaCorrectionL
- End if
- End Sub
- Sub OnPreHitFlipperSettings_bounceControl(FlipperExt)
- ' Parameters to tweak
- const base_elasticCoef = 0.90 ' very bouncy flipper rubber
- const expected_ball_speed_after_hit = 350 ' calc elasticCoef to get desired ball speed after ball hit flipper
- 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
- const reduction_for_flipper_in_motion = 0.17 ' if flipper is not in starting point, reduce elasticCoef by 20%
- If FlipperExt.Hit Then
- Dim elasticCoef
- Dim maxElasticCoef
- Dim ballSpeed
- ballSpeed = (FlipperExt.BallVSpeed + xBAM.Ball.Speed) * 0.5 ' averge speed of
- maxElasticCoef = base_elasticCoef
- If FlipperExt.AngleDiff > 1 Then maxElasticCoef = maxElasticCoef - reduction_for_flipper_in_motion
- elasticCoef = base_elasticCoef
- If ballSpeed > 1 Then elasticCoef = expected_ball_speed_after_hit / ballSpeed
- elasticCoef = elasticCoef + minimum_elasticCoef_to_scale_fast_balls
- If elasticCoef > maxElasticCoef Then elasticCoef = maxElasticCoef
- FlipperExt.SetMaterial elasticCoef
- End If
- End Sub
- ' === End of Dynamic Flipper Settings ===
- '################################ END OF PHYSICS SETTINGS ###################################
- '############################################################################################
- ' ****** BAM Shadow Maps ******
- Sub BAM_Init
- xBAM.ShadowMap "bulbgi18", 1000 , 1 , 2.5, 2, 2, 1, 0
- xBAM.ShadowMap "bumpermiddle", 1000 , 1 , 2.5, 5, 3, 0.5, 0.02
- xBAM.ShadowMap "leftslingshotbulb1", 1000 , 1 , 2.5, 2, 1.5, 1, 0.05
- xBAM.ShadowMap "rightslingshotbulb1", 1000 , 1 , 2.5, 2, 1.5, 0.15, 0.05
- End Sub
- ' ****** BAM Lighting and Post Processing ******
- Sub SetLightsParamsInBAM()
- xBAM.Lights.EnableNewRenderer = TRUE
- xBAM.Lights.MainLightLock = FALSE
- xBAM.Lights.SetMainLightPosition 0, 200, 2000
- xBAM.Lights.SetMainLightProperties 1, 0.3, 1, 0.075
- xBAM.Lights.SetMainLightAttenuation 1, 0, 0
- xBAM.Lights.SetOtherLightsAttenuation 0.066, 0, 0.333
- xBAM.Lights.EnablePostprocessing = FALSE
- xBAM.Lights.SetPostprocessing 1, 0, 1, 1
- xBAM.Lights.SetPostprocessingForNewRenderer 1, 0, 1, 1, 1.5, 1, 1, 1, 0.6
- xBAM.Lights.BallReflection = 2
- xBAM.Lights.BallShininess = 400
- xBAM.Lights.BallSpecular = 0.4
- End Sub
- '=========================== TEXTURE/COLOUR-CHANGING BALL ===========================
- ' USE THIS COMMAND LINE TO REPLACE 'PLUNGERKICKER.CREATECAPTIVEBALL'
- ' call CreateCustomBall(PlungerKicker, BALL_A)
- ' TO CALL THE FOLLOWING CODE...
- Sub BAM_CreateCaptiveBall(Source, Red, Green, Blue, BallID, Dirt, Reflection, ReflectionInPlayfield)
- If BAM_VERSION Then
- Dim bi
- Set bi = xBAM_CreateBall(Red, Green, Blue, Dirt, Reflection, ReflectionInPlayfield)
- Source.CreateCaptiveBall bi.Red, bi.Green, bi.Blue, BallID
- Else
- Source.CreateCaptiveBall Red, Green, Blue, BallID
- End If
- End Sub
- Dim BALL_A, BALL_B
- BALL_A = 0
- BALL_B = 1
- Const BALL_LAST = 7
- ReDim BM_CustomBalls ( BALL_LAST )
- ' add your own textures here using the usual texture swap feature...
- BM_CustomBalls(BALL_A) = Array(200, 200, 200, "!BallChrome1", "!BallChrome2", "!BallChrome3")
- BM_CustomBalls(BALL_B) = Array(10, 10, 10, "!BallChrome1", "!BallChrome2", "!BallChrome3")
- ' you can add more variations if you wish...
- Const BAM_MAX_BALLS = 4096
- ReDim BM_CustomBallsTypes ( BAM_MAX_BALLS )
- ' here, I need to indentify which ball is Luke and which is Vader for the final mulitball...
- Sub CreateCustomBall ( Source, BallName )
- If BallName > Ubound(BM_CustomBalls) Then ' Create standard ball if BallName is >= BALL_LAST
- Source.CreateCaptiveBall
- Else
- Dim ball : ball = BM_CustomBalls(BallName)
- Dim ballID : ballID = xBAM_BallID
- call BAM_CreateCaptiveBall ( Source, ball(0), ball(1), ball(2), ballID, ball(3), ball(4), ball(5) )
- BM_CustomBallsTypes ( ballID ) = BallName
- End If
- End Sub
- '======================== END OF TEXTURE/COLOUR-CHANGING BALL ===========================
- ' ****** Custom Camera views ******
- If use_CameraControl = TRUE then 'prompt user for choice of Camera Control when table is loaded and starts
- If (xBAM.Camera.ScriptControl = FALSE) Then xBAM.Camera.RequestForControl
- End If
- ' New optional Static Camera view for desktop mode that looks MUCH better than the default scrolling view
- Sub CameraView_Mutliball
- If use_CameraControl = false then Exit Sub
- if use_New_Static_Camera_View = true then CameraView_Default: Exit Sub
- xBAM.Camera.DesktopSet 254.2, 1185.4, 691.7, 254.2, 597.5, 0, 50, 500
- xBAM.Camera.DesktopSetLookAt 254.2, 1185.4, 691.7, 254.2, 597.5, 0, 50, 500
- End Sub
- Sub CameraView_Default
- If use_CameraControl = false then Exit Sub
- if use_New_Static_Camera_View = true then
- xBAM.Camera.DesktopSet 258, 1151.9, 585.7, 257, 570.1, 0, 50, 400
- Exit Sub
- End If
- xBAM.Camera.DesktopRelease
- End Sub
- Sub CameraView_LookAtBackBox
- If use_CameraControl = false then Exit Sub
- xBAM.Camera.DesktopSet 259.3, 861.6, 502.7, 260.2, 361.7, 511.7, 50, 500
- xBAM.Camera.DesktopSetLookAt 259.3, 861.6, 502.7, 260.2, 361.7, 511.7, 50, 500
- End Sub
- ' ****** MISC Startup Events ******
- ' prevents old FP Game Room from loading
- xBAM.GameRoom = False
- ' use the Table's settings for BAM Lighting and Post Processing on Startup (if Enabled)
- If use_Table_BAM_LightPresets = True then SetLightsParamsInBAM()
- ' 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)
- If use_FP_HUD_DMD_and_Videos = false or xBAM.Camera.Mode = 2 then xBAM.HideHud()
- '========================================================================================
- '################### LIGHTS, FLASHERS, BULBS ###################
- '****** DO NOT MODIFY ******
- xBAM.Lights.LockGlowBrightness = true
- xBAM.Lights.LockFlasherBrightness = false
- DSSpot2Ext.DetachLight = True
- DSSpot2Ext.SetPosition 90,105,100
- DSSpot2Ext.Brightness = 2
- TurretFlasherExt.DetachLight = True
- TurretFlasherExt.SetPosition 630,404,45
- XWingExplosionFlashExt.DetachLight = True
- XWingExplosionFlashExt.SetPosition -602,521,1
- TieFighterExplosionFlashExt.DetachLight = True
- TieFighterExplosionFlashExt.SetPosition 869,635,1
- XWingLaserFlash1Ext.DetachLight = True
- XWingLaserFlash1Ext.SetPosition 815,119,0
- XWingLaserFlash2Ext.DetachLight = True
- XWingLaserFlash2Ext.SetPosition 860,119,0
- XWingLaserFlash3Ext.DetachLight = True
- XWingLaserFlash3Ext.SetPosition 905,119,0
- XWingLaserFlash4Ext.DetachLight = True
- XWingLaserFlash4Ext.SetPosition 950,119,0
- XWingLaserFlash1Ext.brightness = 0.4
- XWingLaserFlash2Ext.brightness = 0.4
- XWingLaserFlash3Ext.brightness = 0.4
- XWingLaserFlash4Ext.brightness = 0.4
- TieFighterLaserFlash1Ext.DetachLight = True
- TieFighterLaserFlash1Ext.SetPosition 570,118,0
- TieFighterLaserFlash2Ext.DetachLight = True
- TieFighterLaserFlash2Ext.SetPosition 630,118,0
- TieFighterLaserFlash3Ext.DetachLight = True
- TieFighterLaserFlash3Ext.SetPosition 690,118,0
- TieFighterLaserFlash4Ext.DetachLight = True
- TieFighterLaserFlash4Ext.SetPosition 750,118,0
- TieFighterLaserFlash1Ext.brightness = 0.5
- TieFighterLaserFlash2Ext.brightness = 0.5
- TieFighterLaserFlash3Ext.brightness = 0.5
- TieFighterLaserFlash4Ext.brightness = 0.5
- 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
- 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
- BulbGI16Ext.SetLitColor 0, 0, 0 'turn off bulb to prevent halo passing through Vader
- BulbLSLExt.Brightness = 6.0 'brightness of left lightsaber blade's white core (best to keep this very bright)
- BulbLSRExt.Brightness = 6.0 'brightness of right lightsaber blade's white core (best to keep this very bright)
- BulbLSLExt.GlowRadius = 0
- BulbLSRExt.GlowRadius = 0
- LightDefend1Ext.GlowRadius = 0
- LightDefend2Ext.GlowRadius = 0
- LightDefend3Ext.GlowRadius = 0
- LightDefend4Ext.GlowRadius = 0
- LightDefend5Ext.GlowRadius = 0
- LightDefend6Ext.GlowRadius = 0
- LightDefend7Ext.GlowRadius = 0
- LightDefend8Ext.GlowRadius = 0
- LightDefend9Ext.GlowRadius = 0
- LightDefend10Ext.GlowRadius = 0
- LightDefend20Ext.GlowRadius = 0
- LightAlien1Ext.GlowRadius = 0
- LightAlien2Ext.GlowRadius = 0
- LightAlien3Ext.GlowRadius = 0
- LightAlien4Ext.GlowRadius = 0
- LightAlien5Ext.GlowRadius = 0
- LightAlien6Ext.GlowRadius = 0
- LightAlien7Ext.GlowRadius = 0
- LightAlien8Ext.GlowRadius = 0
- LightAlien9Ext.GlowRadius = 0
- LightAlien10Ext.GlowRadius = 0
- LightAlien20Ext.GlowRadius = 0
- '**** Flashers Brightness Control ****
- Sub Light_Flashers_Brightness_GI_OFF()
- FlasherLeftExt.Brightness = Flashers_Brightness_GI_OFF
- FlasherRightExt.Brightness = PFLights_Brightness_GI_OFF
- Flasher2Ext.Brightness = PFLights_Brightness_GI_OFF
- End Sub
- Sub Light_Flashers_Brightness_GI_ON()
- FlasherLeftExt.Brightness = Flashers_Brightness_GI_ON
- FlasherRightExt.Brightness = PFLights_Brightness_GI_ON
- Flasher2Ext.Brightness = PFLights_Brightness_GI_ON
- End Sub
- '**** Bulbs Brightness Control ****
- Sub Light_Bulbs_Brightness_GI_OFF()
- BulbBumper1Ext.Brightness = Bulbs_Brightness_GI_OFF
- BulbBumper2Ext.Brightness = Bulbs_Brightness_GI_OFF
- BulbBumper3Ext.Brightness = Bulbs_Brightness_GI_OFF
- BulbBottomExt.Brightness = Bulbs_Brightness_GI_OFF
- BulbMiddleExt.Brightness = Bulbs_Brightness_GI_OFF
- BulbTopExt.Brightness = Bulbs_Brightness_GI_OFF
- SoloBulb1Ext.Brightness = Bulbs_Brightness_GI_OFF
- SoloBulb2Ext.Brightness = Bulbs_Brightness_GI_OFF
- SoloBulb3Ext.Brightness = Bulbs_Brightness_GI_OFF
- SoloBulb4Ext.Brightness = Bulbs_Brightness_GI_OFF
- RightOutBulb1Ext.Brightness = Bulbs_Brightness_GI_OFF
- RightOutBulb2Ext.Brightness = Bulbs_Brightness_GI_OFF
- RightOutBulb3Ext.Brightness = Bulbs_Brightness_GI_OFF
- RightOutBulb4Ext.Brightness = Bulbs_Brightness_GI_OFF
- RightOutBulb5Ext.Brightness = Bulbs_Brightness_GI_OFF
- LeftOutBulb1Ext.Brightness = Bulbs_Brightness_GI_OFF
- LeftOutBulb2Ext.Brightness = Bulbs_Brightness_GI_OFF
- LeftOutBulb3Ext.Brightness = Bulbs_Brightness_GI_OFF
- LeftOutBulb4Ext.Brightness = Bulbs_Brightness_GI_OFF
- LeftOutBulb5Ext.Brightness = Bulbs_Brightness_GI_OFF
- R2HeadBulbExt.Brightness = Bulbs_Brightness_GI_OFF
- End Sub
- Sub Light_Bulbs_Brightness_GI_ON()
- BulbBumper1Ext.Brightness = Bulbs_Brightness_GI_ON
- BulbBumper2Ext.Brightness = Bulbs_Brightness_GI_ON
- BulbBumper3Ext.Brightness = Bulbs_Brightness_GI_ON
- BulbBottomExt.Brightness = Bulbs_Brightness_GI_ON
- BulbMiddleExt.Brightness = Bulbs_Brightness_GI_ON
- BulbTopExt.Brightness = Bulbs_Brightness_GI_ON
- SoloBulb1Ext.Brightness = Bulbs_Brightness_GI_ON
- SoloBulb2Ext.Brightness = Bulbs_Brightness_GI_ON
- SoloBulb3Ext.Brightness = Bulbs_Brightness_GI_ON
- SoloBulb4Ext.Brightness = Bulbs_Brightness_GI_ON
- RightOutBulb1Ext.Brightness = Bulbs_Brightness_GI_ON
- RightOutBulb2Ext.Brightness = Bulbs_Brightness_GI_ON
- RightOutBulb3Ext.Brightness = Bulbs_Brightness_GI_ON
- RightOutBulb4Ext.Brightness = Bulbs_Brightness_GI_ON
- RightOutBulb5Ext.Brightness = Bulbs_Brightness_GI_ON
- LeftOutBulb1Ext.Brightness = Bulbs_Brightness_GI_ON
- LeftOutBulb2Ext.Brightness = Bulbs_Brightness_GI_ON
- LeftOutBulb3Ext.Brightness = Bulbs_Brightness_GI_ON
- LeftOutBulb4Ext.Brightness = Bulbs_Brightness_GI_ON
- LeftOutBulb5Ext.Brightness = Bulbs_Brightness_GI_ON
- R2HeadBulbExt.Brightness = Bulbs_Brightness_GI_ON
- End Sub
- '**** Playfield Inserts Brightness Control ****
- Sub Light_Inserts_Brightness_GI_OFF()
- LightShootAgainExt.Brightness = PFLights_Brightness_GI_OFF
- LightBonus2xExt.Brightness = PFLights_Brightness_GI_OFF
- LightBonus3xExt.Brightness = PFLights_Brightness_GI_OFF
- LightBonus4xExt.Brightness = PFLights_Brightness_GI_OFF
- LightBonus5xExt.Brightness = PFLights_Brightness_GI_OFF
- LightBonus6xExt.Brightness = PFLights_Brightness_GI_OFF
- LightSpecialLExt.Brightness = PFLights_Brightness_GI_OFF
- LightLeftInlaneExt.Brightness = PFLights_Brightness_GI_OFF
- LightRightInlaneExt.Brightness = PFLights_Brightness_GI_OFF
- LightSpecialRExt.Brightness = PFLights_Brightness_GI_OFF
- LightDefend1Ext.Brightness = PFLights_Brightness_GI_OFF
- LightDefend2Ext.Brightness = PFLights_Brightness_GI_OFF
- LightDefend3Ext.Brightness = PFLights_Brightness_GI_OFF
- LightDefend4Ext.Brightness = PFLights_Brightness_GI_OFF
- LightDefend5Ext.Brightness = PFLights_Brightness_GI_OFF
- LightDefend6Ext.Brightness = PFLights_Brightness_GI_OFF
- LightDefend7Ext.Brightness = PFLights_Brightness_GI_OFF
- LightDefend8Ext.Brightness = PFLights_Brightness_GI_OFF
- LightDefend9Ext.Brightness = PFLights_Brightness_GI_OFF
- LightDefend10Ext.Brightness = PFLights_Brightness_GI_OFF
- LightDefend20Ext.Brightness = PFLights_Brightness_GI_OFF
- LightAlien1Ext.Brightness = PFLights_Brightness_GI_OFF
- LightAlien2Ext.Brightness = PFLights_Brightness_GI_OFF
- LightAlien3Ext.Brightness = PFLights_Brightness_GI_OFF
- LightAlien4Ext.Brightness = PFLights_Brightness_GI_OFF
- LightAlien5Ext.Brightness = PFLights_Brightness_GI_OFF
- LightAlien6Ext.Brightness = PFLights_Brightness_GI_OFF
- LightAlien7Ext.Brightness = PFLights_Brightness_GI_OFF
- LightAlien8Ext.Brightness = PFLights_Brightness_GI_OFF
- LightAlien9Ext.Brightness = PFLights_Brightness_GI_OFF
- LightAlien10Ext.Brightness = PFLights_Brightness_GI_OFF
- LightAlien20Ext.Brightness = PFLights_Brightness_GI_OFF
- LightKnightExt.Brightness = PFLights_Brightness_GI_OFF
- LightMasterExt.Brightness = PFLights_Brightness_GI_OFF
- LightPadawanExt.Brightness = PFLights_Brightness_GI_OFF
- LightJodaExt.Brightness = PFLights_Brightness_GI_OFF
- LightExtraBallExt.Brightness = PFLights_Brightness_GI_OFF
- LightSpecialExt.Brightness = PFLights_Brightness_GI_OFF
- Light50000PointsExt.Brightness = PFLights_Brightness_GI_OFF
- LightDockExt.Brightness = PFLights_Brightness_GI_OFF
- TIElight1Ext.Brightness = PFLights_Brightness_GI_OFF
- TIElight2Ext.Brightness = PFLights_Brightness_GI_OFF
- LightFourBank1Ext.Brightness = PFLights_Brightness_GI_OFF
- LightFourBank2Ext.Brightness = PFLights_Brightness_GI_OFF
- LightFourBank3Ext.Brightness = PFLights_Brightness_GI_OFF
- LightFourBank4Ext.Brightness = PFLights_Brightness_GI_OFF
- LightThreeBank1Ext.Brightness = PFLights_Brightness_GI_OFF
- LightThreeBank2Ext.Brightness = PFLights_Brightness_GI_OFF
- LightThreeBank3Ext.Brightness = PFLights_Brightness_GI_OFF
- LightShipLeftExt.Brightness = PFLights_Brightness_GI_OFF
- BulbLeftStar1Ext.Brightness = PFLights_Brightness_GI_OFF
- BulbLeftStar2Ext.Brightness = PFLights_Brightness_GI_OFF
- BulbLeftStar3Ext.Brightness = PFLights_Brightness_GI_OFF
- LightLeftPowerUpExt.Brightness = PFLights_Brightness_GI_OFF
- LightLeftLockExt.Brightness = PFLights_Brightness_GI_OFF
- LightShipMiddleExt.Brightness = PFLights_Brightness_GI_OFF
- BulbMiddleStarExt.Brightness = PFLights_Brightness_GI_OFF
- LightShipRightExt.Brightness = PFLights_Brightness_GI_OFF
- BulbRightStarExt.Brightness = PFLights_Brightness_GI_OFF
- LightTopLane1Ext.Brightness = PFLights_Brightness_GI_OFF
- LightTopLane2Ext.Brightness = PFLights_Brightness_GI_OFF
- LightTopLane3Ext.Brightness = PFLights_Brightness_GI_OFF
- LightJackpotExt.Brightness = PFLights_Brightness_GI_OFF
- LightVExt.Brightness = PFLights_Brightness_GI_OFF
- LightAExt.Brightness = PFLights_Brightness_GI_OFF
- LightDExt.Brightness = PFLights_Brightness_GI_OFF
- LightEExt.Brightness = PFLights_Brightness_GI_OFF
- LightRExt.Brightness = PFLights_Brightness_GI_OFF
- LightKickBackExt.Brightness = PFLights_Brightness_GI_OFF
- VaderScoreLightExt.Brightness = PFLights_Brightness_GI_OFF
- End Sub
- Sub Light_Inserts_Brightness_GI_ON()
- LightShootAgainExt.Brightness = PFLights_Brightness_GI_ON
- LightBonus2xExt.Brightness = PFLights_Brightness_GI_ON
- LightBonus3xExt.Brightness = PFLights_Brightness_GI_ON
- LightBonus4xExt.Brightness = PFLights_Brightness_GI_ON
- LightBonus5xExt.Brightness = PFLights_Brightness_GI_ON
- LightBonus6xExt.Brightness = PFLights_Brightness_GI_ON
- LightSpecialLExt.Brightness = PFLights_Brightness_GI_ON
- LightLeftInlaneExt.Brightness = PFLights_Brightness_GI_ON
- LightRightInlaneExt.Brightness = PFLights_Brightness_GI_ON
- LightSpecialRExt.Brightness = PFLights_Brightness_GI_ON
- LightDefend1Ext.Brightness = PFLights_Brightness_GI_ON
- LightDefend2Ext.Brightness = PFLights_Brightness_GI_ON
- LightDefend3Ext.Brightness = PFLights_Brightness_GI_ON
- LightDefend4Ext.Brightness = PFLights_Brightness_GI_ON
- LightDefend5Ext.Brightness = PFLights_Brightness_GI_ON
- LightDefend6Ext.Brightness = PFLights_Brightness_GI_ON
- LightDefend7Ext.Brightness = PFLights_Brightness_GI_ON
- LightDefend8Ext.Brightness = PFLights_Brightness_GI_ON
- LightDefend9Ext.Brightness = PFLights_Brightness_GI_ON
- LightDefend10Ext.Brightness = PFLights_Brightness_GI_ON
- LightDefend20Ext.Brightness = PFLights_Brightness_GI_ON
- LightAlien1Ext.Brightness = PFLights_Brightness_GI_ON
- LightAlien2Ext.Brightness = PFLights_Brightness_GI_ON
- LightAlien3Ext.Brightness = PFLights_Brightness_GI_ON
- LightAlien4Ext.Brightness = PFLights_Brightness_GI_ON
- LightAlien5Ext.Brightness = PFLights_Brightness_GI_ON
- LightAlien6Ext.Brightness = PFLights_Brightness_GI_ON
- LightAlien7Ext.Brightness = PFLights_Brightness_GI_ON
- LightAlien8Ext.Brightness = PFLights_Brightness_GI_ON
- LightAlien9Ext.Brightness = PFLights_Brightness_GI_ON
- LightAlien10Ext.Brightness = PFLights_Brightness_GI_ON
- LightAlien20Ext.Brightness = PFLights_Brightness_GI_ON
- LightKnightExt.Brightness = PFLights_Brightness_GI_ON
- LightMasterExt.Brightness = PFLights_Brightness_GI_ON
- LightPadawanExt.Brightness = PFLights_Brightness_GI_ON
- LightJodaExt.Brightness = PFLights_Brightness_GI_ON
- LightExtraBallExt.Brightness = PFLights_Brightness_GI_ON
- LightSpecialExt.Brightness = PFLights_Brightness_GI_ON
- Light50000PointsExt.Brightness = PFLights_Brightness_GI_ON
- LightDockExt.Brightness = PFLights_Brightness_GI_ON
- TIElight1Ext.Brightness = PFLights_Brightness_GI_ON
- TIElight2Ext.Brightness = PFLights_Brightness_GI_ON
- LightFourBank1Ext.Brightness = PFLights_Brightness_GI_ON
- LightFourBank2Ext.Brightness = PFLights_Brightness_GI_ON
- LightFourBank3Ext.Brightness = PFLights_Brightness_GI_ON
- LightFourBank4Ext.Brightness = PFLights_Brightness_GI_ON
- LightThreeBank1Ext.Brightness = PFLights_Brightness_GI_ON
- LightThreeBank2Ext.Brightness = PFLights_Brightness_GI_ON
- LightThreeBank3Ext.Brightness = PFLights_Brightness_GI_ON
- LightShipLeftExt.Brightness = PFLights_Brightness_GI_ON
- BulbLeftStar1Ext.Brightness = PFLights_Brightness_GI_ON
- BulbLeftStar2Ext.Brightness = PFLights_Brightness_GI_ON
- BulbLeftStar3Ext.Brightness = PFLights_Brightness_GI_ON
- LightLeftPowerUpExt.Brightness = PFLights_Brightness_GI_ON
- LightLeftLockExt.Brightness = PFLights_Brightness_GI_ON
- LightShipMiddleExt.Brightness = PFLights_Brightness_GI_ON
- BulbMiddleStarExt.Brightness = PFLights_Brightness_GI_ON
- LightShipRightExt.Brightness = PFLights_Brightness_GI_ON
- BulbRightStarExt.Brightness = PFLights_Brightness_GI_ON
- LightTopLane1Ext.Brightness = PFLights_Brightness_GI_ON
- LightTopLane2Ext.Brightness = PFLights_Brightness_GI_ON
- LightTopLane3Ext.Brightness = PFLights_Brightness_GI_ON
- LightJackpotExt.Brightness = PFLights_Brightness_GI_ON
- LightVExt.Brightness = PFLights_Brightness_GI_ON
- LightAExt.Brightness = PFLights_Brightness_GI_ON
- LightDExt.Brightness = PFLights_Brightness_GI_ON
- LightEExt.Brightness = PFLights_Brightness_GI_ON
- LightRExt.Brightness = PFLights_Brightness_GI_ON
- LightKickBackExt.Brightness = PFLights_Brightness_GI_ON
- VaderScoreLightExt.Brightness = PFLights_Brightness_GI_ON
- End Sub
- '**** Set Brightness of Lights, Flashers and Bulbs on Table Startup ****
- Light_Inserts_Brightness_GI_OFF() 'set brightness of light inserts
- Light_Flashers_Brightness_GI_OFF() 'set brightness of flashers
- Light_Bulbs_Brightness_GI_OFF() 'set brightness of bulbs
- '===========================================================================================
- BladeColor = 1 ' default blade color is blue...
- Dim PlayersPlayingGame
- Dim CP
- Dim Overlay
- Dim LastSwitchHit
- Dim BallsOnPlayfield
- Dim BallsInLock
- Dim TempState
- Dim bOnTheFirstBall ' First Ball (player one). Used for Adding New Players
- Dim bBallInPlungerLane ' is there a ball in the plunger lane
- Dim bBallSaverActive ' is the ball saver active
- Dim bMultiBallMode ' multiball mode active ?
- Dim bEnteringAHighScore ' player is entering their name into the high score table
- Dim EmpireBonus ' Value of Empire Bonus
- Dim RebellionBonus ' Value of Rebellion Bonus
- Dim AttackAwardLevel
- Dim BonusMultiplier(4)
- Dim BallsRemaining(4)
- Dim ExtraBallsAwards(4)
- Dim bPadawanMode(4)
- Dim bKnightMode(4)
- Dim bMasterMode(4)
- Dim bYodaMode(4)
- Dim bSkyWalker(4)
- Dim TorpedoReady(4)
- Dim PadawanP(4)
- Dim KnightP(4)
- Dim MasterP(4)
- Dim YodaP(4)
- Dim Solo1P(4)
- Dim Solo2P(4)
- Dim Solo3P(4)
- Dim Solo4P(4)
- Dim BulbLvL1P(4)
- Dim BulbLvL2P(4)
- Dim BulbLvL3P(4)
- Dim VictoryLap
- Dim VictoryValue
- Dim VictoryTotal
- Dim bExtraBallWonThisBall ' has the player already won an extra ball this ball
- Dim MusicChannelInUse
- Dim CurrentMusicTunePlaying
- Dim EjectBall
- Dim Eject
- Dim DSHit
- Dim QuoteBusy
- Dim TIETally(4) ' TIE fighters the player has destroyed in each game
- ' 50 = Extra Ball
- ' 100 = Extra Ball + 100,000 pts
- ' 150 = Extra Ball + 500,000 pts (it will never happen.....keep dreaming)
- Dim RampTally(4)
- Dim SoloTally(4)
- Dim DeathStarTally(4) ' adds up the amount of Death Star's destroyed in a single game.,,,detroy 3 and win a free baloon!
- Dim BallSaverTally(4) ' sweet little mystery
- Dim LuckyBastard(4) ' match? you lucky bastard! you win a pointless extra credit but a very useful extra ball!
- Dim MatchPlayed(4)
- Dim TrenchPlay(4)
- Dim SSValue(4)
- Dim VaderHitValue(4)
- Dim EB5m(4),QTE(4)
- Dim Q3PO(4),Q2(4)
- Dim JPHit
- Dim Sabre
- Dim BR
- Dim AttackBonus
- Dim TIEReward
- Dim AutoFire
- Dim TrenchValue
- Dim SSWin
- Dim Squadron
- Dim VaderValue
- Dim BSTime
- Dim FlashME
- Dim NewBall
- Dim Opening
- Dim BonusDelayTime
- Dim NextPlayer
- Dim DMDBusy
- Dim ScoreX
- Dim PointReward
- Dim VMode
- Dim VaderScoring
- Dim RWD
- Dim HoldBonus
- Dim BonusHeld
- Dim RewardSAVER
- Dim RewardSAVER2
- Dim RewardBALL
- Dim RewardJEDI
- Dim RewardSHOTS
- Dim RewardJEDI2
- Dim Vol
- Dim BumpHit
- Dim BumpValue
- Dim PlayMe
- Dim Pilot1,Pilot2,Pilot3,Pilot4
- Dim BGArt
- Dim FireL
- Dim FireR
- Dim Hit
- Dim QFire
- Dim ChewiePerk,LeiaPerk,ObiWanPerk,HanPerk,LukePerk
- Dim FadeTime
- Dim RedWin,BlueWin,LastBall,SithStrike
- Dim TimeAttack
- Dim SpinMe
- Dim BladeColor,TA,VaderLS
- Dim TIEPlay
- Vol = 0.5 ' adjust the music volume...
- function RandomNumber(ByVal max)
- RandomNumber = Int(max * Rnd + 1)
- end function
- nvBallsPerGame = 3 ' Recommended as 3 BALL GAME, too easy and quickly boring with more...but you're the boss...
- ' **************************************************************************
- ' ** **
- ' ** A JEDI USES THE FORCE FOR DEFENSE, NEVER FOR ATTACK **
- ' ** **
- ' **************************************************************************
- ' the table if first powered on...
- Sub FuturePinball_BeginPlay()
- DOFLinx_LINK() 'DOFLinx_LINK
- 'Sub FuturePinball_BeginPlay()
- countdown.frame 31
- Randomize
- MyDMD.AddFont 1, "dmd05x05p"
- MyDMD.AddFont 2, "dmd06x07p"
- MyDMD.AddFont 3, "dmd08x09p"
- MyDMD.AddFont 4, "dmd08x13p"
- MyDMD.AddFont 5, "dmd09x11po"
- MyDMD.AddFont 6, "dmd09x15po"
- MyDMD.AddFont 8, "dmd08x09n"
- MyDMD.SetValue(nvScore1)
- MyDMD2.AddFont 1, "dmd05x05p"
- MyDMD2.AddFont 2, "dmd06x07p"
- MyDMD2.AddFont 3, "dmd08x09p"
- MyDMD2.AddFont 4, "dmd08x13p"
- MyDMD2.AddFont 5, "dmd09x11po"
- MyDMD2.AddFont 6, "dmd09x15po"
- MyDMD2.AddFont 8, "dmd08x09n"
- MyDMD2.SetValue(nvScore1)
- RewardSAVER = FALSE
- RewardSAVER2 = FALSE
- RewardJEDI = FALSE
- RewardBALL = FALSE
- RewardSHOTS = FALSE
- Crossover.Collidable = FALSE
- set LastSwitchHit = TriggerLeftStar1
- PlayMe = 0
- BGArt = 0
- Opening = 0
- MovieOverlay.Frame 985: HUDOverlay.Frame 985
- NewMovie.FadeOut: NewMovieHUD.FadeOut
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- MyDMD.Text = "[na] "
- MyDMD2.Text = "[na] "
- nvCredits = 0
- Sabre = 0
- HologramR2D2.Frame 1
- bOnTheFirstBall = FALSE
- bEnteringAHighScore = FALSE
- BallsOnPlayfield = 0
- BallsInLock = 0
- BackOverlay.FadeOut: BackOverlay.Frame 257
- BGReflect.Render = FALSE
- MachineOnTimer.Set TRUE, 1000
- AllPlasOff()
- LightSeqPF.Play SeqAllOff
- BackBox.Play SeqAllOff: OverlayBG.Frame 2
- FourBank1.PopDown
- FourBank2.PopDown
- FourBank3.PopDown
- FourBank4.PopDown
- ThreeBank1.PopDown
- ThreeBank2.PopDown
- ThreeBank3.PopDown
- VaderLS = FALSE
- LSLOff()
- LSROff()
- End Sub
- Sub MachineOnTimer_Expired()
- Opening = Opening + 1
- MachineOnTimer.Set TRUE, 3000
- Select Case Opening
- Case 1:
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.Frame 169: NewMovieHUD.Frame 169
- Case 2:
- MachineOnTimer.Enabled = FALSE
- NewMovie.FadeOut: NewMovieHUD.FadeOut
- DiscoTimer.Set TRUE, 1500
- AttractDelayTimer.Set TRUE, 7500
- End Select
- End Sub
- Sub DiscoTimer_Expired()
- DiscoTimer.Enabled = FALSE
- LightSeqPF.Play SeqAllOn
- BackBox.StopPlay: OverlayBG.Frame 1
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- PlayMusic 3, "Music_Mode2", FALSE, 0.6
- DOFLinx_StarWars_Startup_Timer.Enabled=True 'DOFLinx_StarWars_Startup_Timer.Enabled=True
- If (nvCredits = 0) Then
- MyDMD.QueueText "[edge3][f4][yc]STAR WARS", deWipeOut, 3000, FALSE
- MyDMD.QueueText "[edge3][f1][y7]CREATED BY[f2][y17]SLAMT1LT", deWipeIn, 2500, FALSE
- MyDMD.QueueText "[edge3][f1][y7]DOFLINX MX Mod 1.1 BY[f2][y17]TerryRed", deWipeIn, 2500, FALSE
- MyDMD.QueueText "[edge3][f1][y7]EPIC SPACE BATTLES BY[f2][y17]TERRYRED", deWipeIn, 2500, FALSE
- MyDMD.QueueText "[edge3][f4][yc]GAME OVER", deScrollRight, 3000, FALSE
- MyDMD.QueueText "[edge3][f4][yc] ", deNone, 500, FALSE
- MyDMD.QueueText "[edge3][b][f4][yc]INSERT COIN[/b]", deWipeOut, 5000, FALSE
- MyDMD.QueueText "[edge3][yc][f3]TOP 3 PILOTS...", deScrollUp, 2000, FALSE
- MyDMD.QueueText "[edge3][yc][f3]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollUp, 1500, FALSE
- MyDMD.QueueText "[edge3][yc][f3]" & left(nvHighScore2Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollUp, 1500, FALSE
- MyDMD.QueueText "[edge3][yc][f3]" & left(nvHighScore3Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollUp, 1500, FALSE
- Else
- MyDMD2.QueueText "[edge3][f4][yc]STAR WARS", deWipeOut, 3000, FALSE
- MyDMD.QueueText "[edge3][f4][yc]GAME OVER", deWipeDown, 2000, FALSE
- MyDMD.QueueText "[edge3][f2][yc][xc]CREDIT " & nvCredits, deNone, 3000, FALSE
- MyDMD.QueueText "[edge3][b][f4][yc][b]PRESS START", deWipeOut, 4000, FALSE
- End If
- If (nvCredits = 0) Then
- MyDMD2.QueueText "[edge3][f4][yc]STAR WARS", deWipeOut, 3000, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]CREATED BY[f2][y17]SLAMT1LT", deWipeIn, 2500, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]DOFLINX MX Mod 1.1 BY[f2][y17]TerryRed", deWipeIn, 2500, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]EPIC SPACE BATTLES BY[f2][y17]TERRYRED", deWipeIn, 2500, FALSE
- MyDMD2.QueueText "[edge3][f4][yc]GAME OVER", deScrollRight, 3000, FALSE
- MyDMD2.QueueText "[edge3][f4][yc] ", deNone, 500, FALSE
- MyDMD2.QueueText "[edge3][b][f4][yc]INSERT COIN[/b]", deWipeOut, 5000, FALSE
- MyDMD2.QueueText "[edge3][yc][f3]TOP 3 PILOTS...", deScrollUp, 2000, FALSE
- MyDMD2.QueueText "[edge3][yc][f3]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollUp, 1500, FALSE
- MyDMD2.QueueText "[edge3][yc][f3]" & left(nvHighScore2Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollUp, 1500, FALSE
- MyDMD2.QueueText "[edge3][yc][f3]" & left(nvHighScore3Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollUp, 1500, FALSE
- Else
- MyDMD2.QueueText "[edge3][f4][yc]STAR WARS", deWipeOut, 3000, FALSE
- MyDMD2.QueueText "[edge3][f4][yc]GAME OVER", deWipeDown, 2000, FALSE
- MyDMD2.QueueText "[edge3][f2][yc][xc]CREDIT " & nvCredits, deNone, 3000, FALSE
- MyDMD2.QueueText "[edge3][b][f4][yc][b]PRESS START", deWipeOut, 4000, FALSE
- End If
- MovieOverlay.UpdateInterval = 80:MovieOverlay.Frame 1, 16
- HUDOverlay.UpdateInterval = 80: HUDOverlay.Frame 1, 16
- End Sub
- Sub FuturePinball_KeyPressed(ByVal KeyCode)
- If (KeyCode = 19) Then
- End If
- If (KeyCode = 20) Then
- End If
- ' turn on the lightsabers during the attract sequence....
- If (KeyCode = GetKeyCode(Special2Key)) and (fpGameInPlay = FALSE) Then
- Select Case Sabre
- case 0: AllPlasOff(): LSLOn(): Sabre = 1: PlayMusic 3, "fx_LightSabreOn": DOFLinx_Blue_Lightsaber_On() 'DOFLinx_Blue_Lightsaber_On
- case 1: LSLOff(): LSROn(): Sabre = 2: PlayMusic 3, "fx_LightSabreOn": DOFLinx_Red_Lightsaber_On() 'DOFLinx_Red_Lightsaber_On
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 3100: PlayMusic 1, "vo_Lightsaber", FALSE, 1, 500
- case 2: AllPlasOn(): LSROff(): Sabre = 3: PlayMusic 3, "fx_LSOff": DOFLinx_Lightsabers_Off() 'DOFLinx_Lightsabers_Off
- case 3: AllPlasOff(): LSLOn(): LSROn(): Sabre = 4: PlayMusic 3, "fx_BothSabresOn": DOFLinx_Lightsabers_On() 'DOFLinx_Lightsabers_On
- case 4: AllPlasOn(): LSLOff(): LSROff(): Sabre = 5: PlayMusic 3, "fx_LSOff": DOFLinx_Lightsabers_Off() 'DOFLinx_Lightsabers_Off
- case 5: Sabre = 0
- case 5: Sabre = 0
- End Select
- End If
- If (KeyCode = GetKeyCode(Special2Key)) and (fpGameInPlay = TRUE) Then
- CameraView_Default 'set the new static camera view if enabled during gameplay
- End If
- ' change backglass art and reset the highscore table...
- If (KeyCode = GetKeyCode(Special1Key)) Then
- If (fpGameInPlay = FALSE) Then
- PlaySound "BeepShort"
- Select Case BGArt
- Case 0:
- BackBox.Play SeqAllOff:OverlayBG.Frame 3: BGArt = 1 ' show alt BG art...
- Case 1:
- BackBox.Play SeqAllOff: OverlayBG.Frame 4: BGArt = 2 ' show alt2 BG art..
- Case 2:
- BackBox.StopPlay: OverlayBG.Frame 1: BGArt = 0 ' show main BG art...
- End Select
- End If
- End If
- If (KeyCode = GetKeyCode(InsertCoinKey)) Then
- If (HighScoreTimer.Enabled = TRUE) Then Exit Sub
- If (MachineOnTimer.Enabled = TRUE) or (DiscoTimer.Enabled = TRUE) Then Exit Sub
- PlaySound "fx_CoinIn"
- DOFLinx_Coin_Inserted() 'DOFLinx Coin Inserted
- nvCredits = nvCredits + 1
- If (fpGameInPlay = TRUE) or (TA = TRUE) Then Exit Sub
- StopMusic 1: StopMusic 3: StopMusic 6
- ' stop all attract sequence nonsence when a coin is inserted, it did it's job and
- ' lured another punter to the machine...
- MusicResume.Enabled = FALSE
- AttractModeTimer.Enabled = FALSE
- AttractDelayTimer.Enabled = FALSE
- WakeUpTimer.Enabled = FALSE
- If (fpTilted = FALSE) Then
- If (nvCredits = 1) Then
- DOFLinx_CoinsIn_StartFlash() 'DOFLinx Coins In, Start Button Flashing
- Select Case RandomNumber(3)
- Case 1: PlayMusic 2, "vo_LiftOff"
- Case 2: PlayMusic 2, "vo_LiftOff2"
- Case 3: PlaySound "vo_GoodLuckCoin"
- PFFlash.Set TRUE, 100: FlashME = 14
- MovieOverlay.UpdateInterval = 80: HUDOverlay.UpdateInterval = 80
- End Select
- MovieOverlay.Frame 554, 577
- HUDOverlay.Frame 554, 577 ' logo in/out
- Else
- R2HeadBulb.FlashForMs 800, 100, BulbOff
- PlaySound "fx_R2Sound10"
- MovieOverlay.Frame 11: HUDoverlay.Frame 11
- End If
- MyDMD.Text = "[edge3][f4][yc][xc]CREDITS: " & nvCredits
- MyDMD2.Text = "[edge3][f4][yc][xc]CREDITS: " & nvCredits
- End If
- End If
- If (Keycode = GetKeyCode(PlungerKey)) Then
- If (PointReward = TRUE) Then
- RewardListTimer.Enabled = FALSE
- MovieOverlay.Frame 989: HUDOverlay.Frame 989
- If (RewardSAVER = TRUE) Then
- PlaySound "vo_AsYouWish": VaderScoreLight.FlashForMs 2000, 2000, VaderScoreLight.State
- PointReward = FALSE
- MyDMD.Text = "[f1][y7]BALL SAVE EXTENDED[f3][y16]+ 5 SECS"
- MyDMD2.Text = "[f1][y7]BALL SAVE EXTENDED[f3][y16]+ 5 SECS"
- RewardsTimer.Set TRUE, 2000
- Exit Sub
- End If
- If (RewardJEDI = TRUE) Then
- PlaySound "vo_Good": VaderScoreLight.FlashForMs 500, 500, VaderScoreLight.State
- PointReward = FALSE
- MyDMD.Text = "[f3][yc]PADAWAN START"
- MyDMD2.Text = "[f3][yc]PADAWAN START"
- RewardsTimer.Set TRUE, 2000
- Exit Sub
- End If
- R2HeadBulb.FlashForMs 800, 150, BulbOff
- PlaySound "vo_R2Laugh"
- If (RewardSHOTS = TRUE) Then
- PlaySound "vo_Correct"
- PointReward = FALSE
- MyDMD.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADV + 2"
- MyDMD2.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADV + 2"
- RewardsTimer.Set TRUE, 2000
- End If
- If (RewardSAVER2 = TRUE) Then
- PointReward = FALSE
- MyDMD.Text = "[f1][y7]BALL SAVE EXTENDED[f3][y16]+ 10 SECS"
- MyDMD2.Text = "[f1][y7]BALL SAVE EXTENDED[f3][y16]+ 10 SECS"
- RewardsTimer.Set TRUE, 2000
- End If
- If (RewardBALL = TRUE) Then
- PointReward = FALSE
- MyDMD.Text = "[f3][yc]BALL ADDED"
- MyDMD2.Text = "[f3][yc]BALL ADDED"
- RewardsTimer.Set TRUE, 2000
- End If
- If (RewardJEDI2 = TRUE) Then
- PointReward = FALSE
- MyDMD.Text = "[f3][yc]JEDI KNIGHT START"
- MyDMD2.Text = "[f3][yc]JEDI KNIGHT START"
- RewardsTimer.Set TRUE, 2000
- End If
- Exit Sub
- End If
- If (bMultiBallMode = FALSE) Then
- If (HighScoreTimer.Enabled = TRUE) Then Exit Sub
- If (bBallInPlungerLane = TRUE) and (JackpotTimer.Enabled = FALSE) Then
- Plunger.SolenoidPulse
- DOFLinx_AutoPlunger() 'DOFLinx - AutoPlunger
- If (SSTimer.Enabled = TRUE) or (SSTimer2.Enabled = TRUE) Then
- If (SSWin = TRUE) Then
- PlaySound "fx_SSFire"
- DOFLinx_Skillshot_Fire() 'DOFLinx - Skillshot Fire
- 'PlaySound "vo_FireItsAway"
- MovieTimer.Set TRUE, 1200
- MovieOverlay.UpdateInterval = 67:MovieOverlay.frame 879, 892
- HUDOverlay.UpdateInterval = 67: HUDOverlay.frame 879, 892
- Else
- StopMusic 3
- PlaySound "Plungerrelease"
- MovieTimer.Set TRUE, 10
- End If
- SSTimer.Enabled = FALSE
- SSTimer2.Enabled = FALSE
- Else
- PlaySound "Plungerrelease"
- End If
- End If
- Else
- If (bBallInPlungerLane = TRUE) and (JackpotTimer.Enabled = FALSE) Then
- PlaySound "plunger2tie"
- Plunger.SolenoidPulse
- DOFLinx_AutoPlunger() 'DOFLinx - AutoPlunger
- End If
- End If
- End If
- If (fpGameInPlay = TRUE) Then
- If (fpTilted = FALSE) Then
- If (KeyCode = GetKeyCode(LeftFlipperKey)) Then
- ' YES to points reward...
- If (PointReward = TRUE) and (RewardListTimer.Enabled = FALSE) Then
- RewardsTimer.Enabled = FALSE
- RewardListTimer.Set TRUE, 1300
- RWD = 0
- R2HeadBulb.FlashForMs 1000, 150, BulbOff
- PlaySound "fx_R2Sound9"
- MyDMD.Text = "[f1][y7]POINTS TO SPEND[f3][y16][bf]" & FormatNumber(nvScore(CP), 0, -1, 0, -1)
- MyDMD2.Text = "[f1][y7]POINTS TO SPEND[f3][y16][bf]" & FormatNumber(nvScore(CP), 0, -1, 0, -1)
- MovieOverlay.Frame 988: HUDOverlay.Frame 988
- Exit Sub
- End If
- ' video mode wrong input...
- If (FireR = TRUE) Then
- PlaySound "BeepShort"
- FireL = FALSE: FireR = FALSE
- MissFire.Set TRUE, 100
- Exit Sub
- End If
- ' video mode correct input...
- If (FireL = TRUE) Then
- PlaySound "fx_TIELaser"
- DOFLinx_Falcon_Fire_Hit() 'DOFLinx_Falcon_Fire_Hit
- Hit = Hit + 1
- If (Hit = 1) Then PlaySound "fx_CanonFire": FalconFire.Set TRUE, 1500
- If (Hit = 2) Then PlaySound "vo_GotHim5": FalconFire.Set TRUE, 2800
- If (Hit = 3) Then PlaySound "vo_HanGotHim2"
- MyDMD.Text = "[edge3][f4][yc][xc]GOOD"
- MyDMD2.Text = "[edge3][f4][yc][xc]GOOD"
- FireL = FALSE
- MissFire.Enabled = FALSE
- 'If (Hit < 3) Then FalconFire.Set TRUE, 1600
- Exit Sub
- End If
- If (BallsOnPlayfield > 0) Then
- LeftFlipper.SolenoidOn: TopFlipper.SolenoidOn
- DOFLinx_Left_Flipper_On() 'DOFLinx - Left Flipper On
- TempState = LightTopLane1.State
- LightTopLane1.State = LightTopLane2.State
- LightTopLane2.State = LightTopLane3.State
- LightTopLane3.State = TempState
- End If
- End If
- If (KeyCode = GetKeyCode(RightFlipperKey)) Then
- ' NO to points reward...
- If (PointReward = TRUE) and (RewardListTimer.Enabled = FALSE) Then
- PlaySound "fx_R2Sound5"
- R2HeadBulb.FlashForMs 1500, 500, BulbOff
- PointReward = FALSE
- MyDMD.Text = "[f1][y7]POINTS REWARD[f3][y16][bf]CANCELLED"
- MyDMD2.Text = "[f1][y7]POINTS REWARD[f3][y16][bf]CANCELLED"
- RewardsTimer.Set TRUE, 1500
- Exit Sub
- End If
- If (FireL = TRUE) Then
- PlaySound "BeepShort"
- FireL = FALSE: FireR = FALSE
- MissFire.Set TRUE, 100
- Exit Sub
- End If
- If (FireR = TRUE) Then
- PlaySound "fx_TIELaser"
- DOFLinx_Falcon_Fire_Hit() 'DOFLinx_Falcon_Fire_Hit
- Hit = Hit + 1
- If (Hit = 1) Then PlaySound "fx_CanonFire": FalconFire.Set TRUE, 1500
- If (Hit = 2) Then PlaySound "vo_GotHim6": FalconFire.Set TRUE, 2800
- If (Hit = 3) Then PlaySound "vo_HanGotHim2"
- MyDMD.Text = "[edge3][f4][yc][xc]GOOD"
- MyDMD2.Text = "[edge3][f4][yc][xc]GOOD"
- FireR = FALSE
- MissFire.Enabled = FALSE
- 'If (Hit < 3) Then FalconFire.Set TRUE, 1600
- Exit Sub
- End If
- If (BallsOnPlayfield > 0) Then
- RightFlipper.SolenoidOn
- DOFLinx_Right_Flipper_On() 'DOFLinx - Right Flipper On
- TempState = LightTopLane3.State
- LightTopLane3.State = LightTopLane2.State
- LightTopLane2.State = LightTopLane1.State
- LightTopLane1.State = TempState
- End If
- End If
- If (KeyCode = GetKeyCode(StartGameKey)) Then
- If (HighScoreTimer.Enabled = TRUE) Then Exit Sub
- ' Max of 4 players per game...
- If ((PlayersPlayingGame < 4) and (bOnTheFirstBall = TRUE)) Then
- ' only if you have Imperial credits...
- DOFLinx_CoinOn_StartOn() 'DOFLinx Coins & Start Button On, Game In Play
- If (nvCredits > 0) and (TimeAttack = FALSE) Then
- DOFLinx_CoinOn_StartOn() 'DOFLinx Coins & Start Button On, Game In Play
- PlayersPlayingGame = PlayersPlayingGame + 1
- nvCredits = nvCredits - 1
- If (PlayersPlayingGame = 2) Then PlayMusic 4, "vo_Red2"
- If (PlayersPlayingGame = 3) Then PlayMusic 4, "vo_Red3"
- If (PlayersPlayingGame = 4) Then PlayMusic 4, "vo_Friends"
- ScoreTimer.Enabled = FALSE ' stop the scrolling message...
- MyDMD.Text = "[edge3][f4][yc][xc]NEW PILOT"
- MyDMD2.Text = "[edge3][f4][yc][xc]NEW PILOT"
- If (FirstBallDelayTimer.Enabled = TRUE) Then
- MovieOverlay.Frame 664: HUDOverlay.Frame 664
- FirstBallDelayTimer.Set TRUE, 1000
- End If
- Else
- PlaySound "fx_Droid"
- MyDMD.Text = "[edge3][f4][yc][xc]1 PLAYER ONLY"
- MyDMD2.Text = "[edge3][f4][yc][xc]1 PLAYER ONLY"
- DOFLinx_NoPay_NoPlay() 'DOFLinx NoPay NoPlay
- End If
- End If
- End If
- End If
- Else
- If (KeyCode = GetKeyCode(LeftFlipperKey)) Then
- ' player selected 'YES' to Time Attack, ok then, let's do it....
- If (TA = TRUE) Then
- TA = FALSE: TimeAttack = TRUE: TAStart = 0: TATimer.Set TRUE, 3200 ' start 5 min timer...
- DSSpot1.FlashForMs 2000, 100, BulbOff
- DSSpot2.FlashForMs 2000, 100, BulbOff
- TATime = 310
- StopMusic 1: PlaySound "fx_TAStart"
- PlayThis = 2: AnimationStart()
- Exit Sub
- End If
- ' pick a colour, any color from baby boy blue, manly green or girly purple...
- ' Vader always has red because he's a cool mo-fo...
- If (BladeColor = 5) Then BladeColor = 0
- BladeColor = BladeColor + 1
- PlaySound "Bonus Counter Left"
- LSLOn()
- Select Case BladeColor
- Case 1:
- MyDMD.Text = "[edge3][f4][yc][xc]BLUE LIGHTSABER"
- MyDMD2.Text = "[edge3][f4][yc][xc]BLUE LIGHTSABER"
- Case 2:
- MyDMD.Text = "[edge3][f4][yc][xc]GREEN LIGHTSABER"
- MyDMD2.Text = "[edge3][f4][yc][xc]GREEN LIGHTSABER"
- Case 3:
- If (VaderLS = FALSE) Then
- VaderLS = TRUE
- Select Case RandomNumber(2)
- Case 1:
- PlayMusic 1, "vo_NewLightsaber", FALSE, 1
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 3200
- VaderScoreLight.FlashForMs 3200, 3200
- Case 2:
- PlayMusic 1, "vo_Lightsaber", FALSE, 1, 200
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 2900
- End Select
- End If
- MyDMD.Text = "[edge3][f4][yc][xc]PURPLE LIGHTSABER"
- MyDMD2.Text = "[edge3][f4][yc][xc]PURPLE LIGHTSABER"
- Case 4:
- MyDMD.Text = "[edge3][f4][yc][xc]YELLOW LIGHTSABER"
- MyDMD2.Text = "[edge3][f4][yc][xc]YELLOW LIGHTSABER"
- Case 5:
- MyDMD.Text = "[edge3][f4][yc][xc]ORANGE LIGHTSABER"
- MyDMD2.Text = "[edge3][f4][yc][xc]ORANGE LIGHTSABER"
- End Select
- AttractModeTimer.Enabled = FALSE
- AttractDelayTimer.Enabled = FALSE
- WakeUpTimer.Enabled = FALSE
- AttractModeTimer.Set TRUE, 8000
- DMDTimer.Set TRUE, 2000
- SabreTimer.Set TRUE, 2000
- End If
- ' player selected 'NO' to Time Attack, so just start the normal game...
- If (KeyCode = GetKeyCode(RightFlipperKey)) Then
- CameraView_Default 'set the new static camera view if enabled
- If (TA = TRUE) Then
- TA = FALSE
- PointReward = FALSE
- DSSpot1.FlashForMs 100, 100, BulbOff
- DSSpot2.FlashForMs 100, 100, BulbOff
- ResetForNewGame()
- Exit Sub
- End If
- End If
- If (KeyCode = GetKeyCode(StartGameKey)) Then
- If (HighScoreTimer.Enabled = TRUE) Then Exit Sub
- If (MachineOnTimer.Enabled = TRUE) or (DiscoTimer.Enabled = TRUE) Then Exit Sub
- If (nvCredits > 0) Then
- ' first, choose a game mode: normal or Time Attack...
- If (BallsOnPlayfield = 0) Then
- StopMusic 2: StopMusic 3: StopMusic 5: StopMusic 6
- MusicResume.Enabled = FALSE
- AttractModeTimer.Enabled = FALSE
- AttractDelayTimer.Enabled = FALSE
- WakeUpTimer.Enabled = FALSE
- DMDTimer.Enabled = FALSE
- nvCredits = nvCredits - 1
- Select Case RandomNumber(2)
- Case 1: PlayMusic 1, "fx_TimeAttackMenu"
- Case 2: PlayMusic 1, "Music_TimeAttackLoop", TRUE, 1
- End Select
- AllPlasOff()
- DSSpot1.State = BulbOn
- DSSpot2.State = BulbOn
- TA = TRUE
- MyDMD.FlushQueue: MyDMD2.FlushQueue
- MyDMD.QueueText "[f1][y7]TIME ATTACK?[f3][y16]< YES NO >", deScrollIn, 1000, TRUE
- MyDMD2.QueueText "[f1][y7]TIME ATTACK?[f3][y16]< YES NO >", deScrollIn, 1000, TRUE
- Else
- PlaySound "fx_Chewie2"
- DOFLinx_NoPay_NoPlay() 'DOFLinx NoPay NoPlay
- DOFLinx_NoCoins_StartOff() 'DOFLinx No Coins, Start Button Off
- MyDMD.Text = "[edge3][f4][yc]NO CREDITS"
- MyDMD2.Text = "[edge3][f4][yc]NO CREDITS"
- End If
- End If
- End If
- End If
- End Sub
- Dim TAStart,TATime,QPlay1,QPlay2,QPlay3,QPlay4,QPlay5
- Sub TATimer_Expired()
- If (TAStart = 2) Then TATime = TATime - 1
- Select Case TAStart
- Case 0:
- EffectMusic 1, FadeOutAndStop, 0, 500
- Select Case RandomNumber(2)
- Case 1: PlayMusic 2, "vo_BestOfLuck", FALSE, 0.7
- Case 2: PlaySound "vo_Hope2"
- End Select
- TATimer.Set TRUE, 1600
- TAStart = 1
- Case 1:
- TATime = 303: TATimer.Set TRUE, 1000 ' start 5 min timer...
- TAStart = 2
- QPlay1 = FALSE ' don't play the same quote again in the game...
- QPlay2 = FALSE
- QPlay3 = FALSE
- QPlay4 = FALSE
- QPlay5 = FALSE
- ResetForNewGame()
- End Select
- If (TATime > 30) Then Countdown.FadeOut: CountDown.Frame 31
- If (TATime > 20) Then DSSpot1.State = BulbOff: DSSpot2.State = BulbOff
- ' to highten the tension, I add special quotes at key moments
- ' these quotes will only play once to preserve the immersion
- Select Case TATime
- Case 120:
- If (QuoteBusy = FALSE) and (QPlay3 = FALSE) Then QPlay3 = TRUE: PlaySound "vo_InRange": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Case 60:
- If (QuoteBusy = FALSE) and (QPlay4 = FALSE) Then QPlay4 = TRUE: QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000: PlaySound "vo_DSRange1"
- Case 40:
- If (QuoteBusy = FALSE) and (QPlay5 = FALSE) Then QPlay5 = TRUE: QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000: PlaySound "vo_StandByAlert"
- Case 30:
- If (QuoteBusy = FALSE) and (QPlay1 = FALSE) Then QPlay1 = TRUE: PlaySound "vo_30SecsLeft": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- MovieOverlay.UpdateInterval = 100: HUDOverLay.UpdateInterval = 100
- MovieOverlay.Frame 319, 337: HUDOverlay.Frame 319, 337
- Case 10:
- If (QuoteBusy = FALSE) Then MusicFade(1000): PlaySound "vo_10Secs": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
- Case 5:
- DSSpot1.FlashForMs 1200, 1200, BulbOn
- DSSpot2.FlashForMs 1200, 1200, BulbOn
- If (QuoteBusy = FALSE) and (QPlay2 = FALSE) Then
- QPlay2 = TRUE
- Select Case RandomNumber(2)
- Case 1:
- MusicFade(1100): PlaySound "vo_FireWhenReady": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1100
- Case 2:
- MusicFade(2500): PlaySound "vo_LukeForce": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2500
- End Select
- End If
- Case 0:
- TATimer.Enabled = FALSE ' you failed, what a numpty...
- DeathStarTimer2_Expired()
- End Select
- If (TATime < 300) Then AddScore(0)
- End Sub
- Sub FuturePinball_KeyReleased(ByVal KeyCode)
- If (KeyCode = GetKeyCode(PlungerKey)) and (bMultiBallMode = TRUE) Then
- End If
- If (Keycode = GetKeyCode(PlungerKey)) and (bMultiBallMode = FALSE) Then
- End If
- If (fpGameInPlay = TRUE) Then
- If (fpTilted = FALSE) Then
- If (KeyCode = GetKeyCode(LeftFlipperKey)) Then
- LeftFlipper.SolenoidOff: TopFlipper.SolenoidOff
- DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
- End If
- If (KeyCode = GetKeyCode(RightFlipperKey)) Then
- RightFlipper.SolenoidOff
- DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
- End If
- End If
- End If
- End Sub
- Sub FuturePinball_Paused()
- PlayMusic 3, "Music_Pause", FALSE, 0.7
- End Sub
- Sub FuturePinball_UnPaused()
- If (fpGameInPlay = TRUE) Then
- EffectMusic 3, FadeOutAndStop, 0, 0
- Else
- EffectMusic 3, FadeOutAndStop, 0, 0
- PlayMusic 3, "Music_Disco", TRUE, 0.7
- End If
- End Sub
- Sub FuturePinball_TiltWarning(ByVal Warnings)
- DOFLinx_TILT_Warning()'DOFLinx - Tilt Warning
- PlaySound "fx_Nudge"
- HologramR2D2.Frame 9,10,9: R2D2Fade.Set TRUE, 2000
- MyDMD.Text = "[edge3][f4][yc][xc][bf]W A R N I N G"
- MyDMD2.Text = "[edge3][f4][yc][xc][bf]W A R N I N G"
- If (bKnightMode(CP) = TRUE) or (bMasterMode(CP) = TRUE) or (bYodaMode(CP) = TRUE) Then
- If (LastSwitchHit.Name = "TheForce") Then
- LightKickBack.State = BulbOn
- MyDMD.Text = "[edge3][f4][yc][xc][bf]FORCE POWER"
- MyDMD2.Text = "[edge3][f4][yc][xc][bf]FORCE POWER"
- End If
- If (LastSwitchHit.Name = "TheForce2") Then
- ForceDivert.Collidable = TRUE
- MyDMD.Text = "[edge3][f4][yc][xc][bf]FORCE POWER"
- MyDMD2.Text = "[edge3][f4][yc][xc][bf]FORCE POWER"
- End If
- PlaySound "fx_Chewie3"
- Else
- Select Case (Warnings)
- Case 1,2:
- PlaySound "fx_Chewie2"
- Case 3:
- If (QuoteBusy = FALSE) Then
- QuoteBusy = TRUE
- Select Case RandomNumber(3)
- Case 1: MusicFade(2800): PlaySound "vo_Aggressive": QuoteTimer.Set TRUE, 2600
- Case 2: MusicFade(1000): PlaySound "vo_WhatTheHell": QuoteTimer.Set TRUE, 1000
- Case 3: MusicFade(1600): PlaySound "vo_MustObey": QuoteTimer.Set TRUE, 1600
- End Select
- End If
- Case 4:
- MyDMD.Text = "[edge3][f4][yc][xc][bf]LAST WARNING"
- MyDMD2.Text = "[edge3][f4][yc][xc][bf]LAST WARNING"
- PlaySound "fx_R2Sound16"
- End Select
- End If
- End Sub
- Sub FuturePinball_Tilted()
- If (bMultiBallMode = TRUE) Then fpTilted = FALSE: Exit Sub
- If (VictoryLap = TRUE) Then
- VictoryLap = FALSE
- DOFLinx_VictoryMB_End() 'DOFLinx_VictoryMB_End
- StopMusic 8
- PlayMusic 1, "Music_Mode1", TRUE, Vol
- ResetTableForNewRound()
- Exit Sub
- End If
- If (BackBoxTimer.Enabled = TRUE) Then
- LeftFlipper.SolenoidOff: TopFlipper.SolenoidOff
- DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
- RightFlipper.SolenoidOff
- DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
- AllPlasOff(): LightSeqPF.Play SeqAllOff
- TurnOffBackBoxLights()
- EmpireBonus = 0
- RebellionBonus = 0
- EffectMusic 1, FadeOutAndStop, 0.0, 100
- TiltRecoveryTimer.Set TRUE, 12000
- DOFLinx_TILTED() 'DOFLinx - Tilted
- Else
- If (TimeAttack = TRUE) Then TATimer.Enabled = FALSE: BallsRemaining(CP) = 1
- DiverterGuide.Collidable = FALSE
- DiverterSurface.Collidable = FALSE
- RampDiverter.SolenoidOff
- RampDiverter2.SolenoidOff
- Select Case RandomNumber(4)
- Case 1: PlaySound "vo_Tilt1": TiltRecoveryTimer.Interval = 4200
- Case 2: PlaySound "vo_Tilt2": TiltRecoveryTimer.Interval = 6000
- Case 3: PlaySound "vo_Tilt3": TiltRecoveryTimer.Interval = 4200
- Case 4: PlaySound "vo_Scruffy": TiltRecoveryTimer.Interval = 4000
- End Select
- TgtRotate.Enabled = FALSE
- LeftFlipper.SolenoidOff: TopFlipper.SolenoidOff
- DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
- RightFlipper.SolenoidOff
- DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
- LightSeqPF.StopPlay
- PFFlash.Enabled = FALSE
- AllPlasOff(): LightSeqPF.Play SeqAllOff
- TurnOffBackBoxLights()
- EmpireBonus = 0
- RebellionBonus = 0
- EffectMusic 1, FadeOutAndStop, 0.0, 100
- MyDMD.Text = "[edge3][f4][yc][xc][b]T I L T"
- MyDMD2.Text = "[edge3][f4][yc][xc][b]T I L T"
- DOFLinx_TILTED() 'DOFLinx - Tilted
- TiltRecoveryTimer.Enabled = TRUE
- TiltCheck = 0
- End If
- End Sub
- Sub TiltRecoveryTimer_Expired()
- TiltRecoveryTimer.Enabled = FALSE
- If (BallsOnPlayfield =< 0) Then
- BallsOnPlayfield = 0
- LightSeqPF.StopPlay
- BallStopper.Collidable = TRUE
- RestartMusic()
- EndOfBall()
- Else
- TiltCheck = TiltCheck + 1
- Select Case TiltCheck
- Case 1:
- PlaySound "vo_BadFeeling"
- MyDMD.Text = "[edge3][f4][yc][xc][b]BALL MISSING"
- MyDMD2.Text = "[edge3][f4][yc][xc][b]BALL MISSING"
- Case 2:
- PlaySound "vo_Pushed"
- MyDMD.Text = "[edge3][f4][yc][xc]SEARCHING..."
- MyDMD2.Text = "[edge3][f4][yc][xc]SEARCHING..."
- KickerVUK.SolenoidPulse: BallsInLock = 0
- BallStopper.Collidable = FALSE
- Case 3:
- PlaySound "fx_R2Sound19": R2HeadBulb.FlashForMs 1200, 1200, BulbOff
- MyDMD.Text = "[edge3][f4][yc][xc][bf]BALL LOST"
- MyDMD2.Text = "[edge3][f4][yc][xc][bf]BALL LOST"
- Case 4:
- PlaySound "vo_Suffering": R2HeadBulb.FlashForMs 700, 100, BulbOff
- MyDMD.Text = "[edge3][f4][yc][xc][b]REPLACING BALL"
- MyDMD2.Text = "[edge3][f4][yc][xc][b]REPLACING BALL"
- BallsOnPlayfield = 0
- If (TimeAttack = FALSE) Then BallsRemaining(CP) = BallsRemaining(CP) + 1
- End Select
- TiltRecoveryTimer.Set TRUE, 5000
- End If
- End Sub
- Dim TiltCheck
- Sub FuturePinball_MusicFinished(ByVal Channel)
- End Sub
- Sub FuturePinball_NameEntryComplete(ByVal Position, ByVal Special)
- If (Position = 1) Then
- EffectMusic 1, FadeOutAndStop, 0.0, 100
- LookAway = 0
- HighScoreTimer.Set TRUE, 15500
- bEnteringAHighScore = FALSE
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 67: NewMovieHUD.UpdateInterval = 67
- NewMovie.Frame 64, 167: NewMovieHUD.Frame 64, 167
- MovieTimer.Set TRUE, 10000
- PlayMusic 5, "fx_R2Sound15", FALSE, 0.5, 2500
- PlayMusic 1, "Music_HighScoreEnd", FALSE, 1
- StopMusic 2: StopMusic 3
- MyDMD.FlushQueue: MyDMD2.FlushQueue
- DOFLinx_Combo_Jackpot() 'DOFLinx - Combo - Jackpot animation
- DOFLinx_HISCORE_MX() 'DOFLinx_HISCORE_MX
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & left(nvHighScore1Name,3), deNone, 1500, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & left(nvHighScore1Name,3), deNone, 1500, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][b]HIGHEST SCORE", deNone, 2000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]HIGHEST SCORE", deNone, 2000, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]WELL PLAYED", deFlip, 2000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]WELL PLAYED", deFlip, 2000, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]YOUR FINAL SCORE", deScrollIn, 1000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]YOUR FINAL SCORE", deScrollIn, 1000, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][b]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 2000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 2000, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 2500, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 2500, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]DON'T GET COCKY", deScrollIn, 2000, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc]DON'T GET COCKY", deScrollIn, 2000, TRUE
- HologramR2D2.Frame 5: R2D2Fade.Set TRUE, 2200
- R2Animate = 2: R2Move = 0: MoveR2_Expired()
- Exit Sub
- End If
- If (Position = 2) Then
- EffectMusic 1, FadeOutAndStop, 0.0, 100
- LookAway = 0
- FlasherRight.Set BulbBlink,"101000", 75
- Flasher2.Set BulbBlink, "000101", 75
- LightSeqPF.Play SeqRandom, 50, , 10000
- HighScoreTimer.Set TRUE, 5400
- bEnteringAHighScore = FALSE
- StopMusic 2
- PlaySound "fx_R2Sound15"
- PlayMusic 3, "Music_HighestScore2", FALSE, 0.7
- HUDOverlay.Frame 983: MovieOverlay.Frame 983
- MyDMD.FlushQueue: MyDMD2.FlushQueue
- DOFLinx_Combo_Jackpot() 'DOFLinx - Combo - Jackpot animation
- DOFLinx_HISCORE_MX() 'DOFLinx_HISCORE_MX
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & left(nvHighScore2Name,3), deNone, 1500, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & left(nvHighScore2Name,3), deNone, 1500, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][b]2ND BEST PILOT", deNone, 2000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]2ND BEST PILOT", deNone, 2000, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]YOUR FINAL SCORE", deScrollIn, 1000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]YOUR FINAL SCORE", deScrollIn, 1000, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][b]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 3000, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 3000, TRUE
- R2Animate = 2: R2Move = 0: MoveR2_Expired()
- Exit Sub
- End If
- If (Position = 3) Then
- EffectMusic 1, FadeOutAndStop, 0.0, 100
- LookAway = 0
- FlasherRight.Set BulbBlink,"101000", 75
- Flasher2.Set BulbBlink, "000101", 75
- LightSeqPF.Play SeqRandom, 50, , 10000
- HighScoreTimer.Set TRUE, 5400
- bEnteringAHighScore = FALSE
- StopMusic 2
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_WhatARide"
- Case 2: PlaySound "vo_SkillsComplete": VaderScoreLight.FlashForMs 1500, 1500, BulbOff
- End Select
- PlayMusic 3, "Music_HighestScore2", FALSE, 0.7
- HUDOverlay.Frame 984: MovieOverlay.Frame 984
- MyDMD.FlushQueue: MyDMD2.FlushQueue
- DOFLinx_Combo_Jackpot() 'DOFLinx - Combo - Jackpot animation
- DOFLinx_HISCORE_MX() 'DOFLinx_HISCORE_MX
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & left(nvHighScore3Name,3), deNone, 1500, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & left(nvHighScore3Name,3), deNone, 1500, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][b]3RD BEST PILOT", deNone, 2000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]3RD BEST PILOT", deNone, 2000, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]YOUR FINAL SCORE", deScrollIn, 1000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]YOUR FINAL SCORE", deScrollIn, 1000, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][b]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 3000, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]"& FormatNumber(nvScore(CP), 0, -1, 0, -1), deNone, 3000, TRUE
- R2Animate = 2: R2Move = 0: MoveR2_Expired()
- Exit Sub
- End If
- 'StopMusic 2
- StopMusic 3
- bEnteringAHighScore = FALSE
- EndOfBallComplete()
- End Sub
- Dim LookAway
- Sub HighScoreTimer_Expired()
- Select Case LookAway
- Case 0:
- LookAway = 1
- HighScoreTimer.Set TRUE, 4000
- Case 1:
- HighScoreTimer.Enabled = FALSE
- FlasherLeft.Set BulbOff, "10", 75
- FlasherRight.Set BulbOff,"10", 75
- Flasher2.Set BulbOff, "10", 75
- LightSeqPF.UpdateInterval = 10
- LightSeqPF.StopPlay
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- NewMovie.FadeOut: NewMovieHUD.FadeOut
- MovieOverlay.UpdateInterval = 40: MovieOverlay.Frame 11 ' return to star wars logo...
- HUDOverlay.UpdateInterval = 40: HUDoverlay.Frame 11
- EndOfBallComplete()
- End Select
- End Sub
- Dim Xpos,PlayThis
- BR = 5
- Sub AnimationStart()
- Xpos = 128
- ScoreTimer.Set TRUE, 4
- End Sub
- Sub ScoreTimer_Expired()
- Xpos = Xpos - 1
- Select Case PlayThis
- Case 1:
- 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 "
- If (Xpos < -200) Then ScoreTimer.Enabled = FALSE
- Case 2:
- 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 "
- If (Xpos < -225) Then ScoreTimer.Enabled = FALSE
- End Select
- End Sub
- ' *************************************************
- ' ** **
- ' ** JEDI MASTER LEVEL CODING **
- ' ** **
- ' *************************************************
- Sub ResetForNewGame()
- DOFLinx_Start_New_Game() 'DOFLinx - Start New Game
- Dim i
- CameraView_Default
- VaderAnimation_Timer_Expired
- BGReflect.Render = TRUE
- HoldBonus = FALSE
- JPHit = FALSE
- BackOverlay.FadeOut
- BeginGame()
- SabreTimer.Enabled = FALSE
- SithStrike = FALSE
- RedWin = 0
- BlueWin = 0
- LastBall = FALSE
- LSLOff()
- LSROff()
- InitTrakedSoundBalls()
- SabreLight1.State = BulbOn
- SabreLight2.State = BulbOn
- SabreLight3.State = BulbOn
- SabreLight4.State = BulbOn
- SoloBulb1.State = BulbOff: SoloBulb2.State = BulbOff: SoloBulb3.State = BulbOff: SoloBulb4.State = BulbOff
- BulbTop.State = BulbOff
- BulbMiddle.State = BulbOff
- BulbBottom.State = BulbOff
- ScoreTimer.Enabled = FALSE
- StopMusic 1: StopMusic 3
- LaneWall.Dropped = FALSE
- AttackAwardLevel = 0
- If (BGArt = 0) Then BackBox.StopPlay: OverlayBG.Frame 1
- MusicResume.Enabled = FALSE
- AttractModeTimer.Enabled = FALSE
- AttractDelayTimer.Enabled = FALSE
- WakeUpTimer.Enabled = FALSE
- CP = 1
- PlayersPlayingGame = 1
- bOnTheFirstBall = TRUE
- bMultiBallMode = FALSE
- If (RewardSAVER = TRUE) Then
- BSTime = 17000
- Else
- If (RewardSAVER2 = TRUE) Then
- BSTime = 22000
- Else
- BSTime = 12000
- End If
- End If
- For i = 1 To 4
- bMasterMode(i) = FALSE
- bYodaMode(i) = FALSE
- bSkyWalker(i) = FALSE
- TorpedoReady(i) = FALSE
- MatchPlayed(i) = FALSE
- EB5m(i) = FALSE
- TIETally(i) = 0
- RampTally(i) = 0
- SoloTally(i) = 0
- TrenchPlay(i) = 0
- SSValue(i) = 0
- XWingValue(i) = 1000
- VaderHitValue(i) = 2500
- ForcePower(i) = 0
- Q3PO(i) = 0
- Q2(i) = 0
- QTE(i) = 410
- Next
- For i = 1 To 4
- If (RewardJEDI = TRUE) Then
- bPadawanMode(i) = TRUE
- Else
- bPadawanMode(i) = FALSE
- End If
- If (RewardJEDI2 = TRUE) Then
- bPadawanMode(i) = TRUE
- bKnightMode(i) = TRUE
- Else
- bKnightMode(i) = FALSE
- End If
- Next
- bExtraBallWonThisBall = FALSE
- TurnOffPlayfieldLights()
- If (RewardJEDI2 = TRUE) Then
- PlayMusic 1, "Music_Mode3", TRUE, vol
- Else
- If (RewardJEDI = TRUE) Then
- PlayMusic 1, "Music_Mode2", TRUE, vol
- Else
- PlayMusic 1, "Music_Mode1", TRUE, vol
- End If
- End If
- AllPlasOff()
- Flasher2.FlashForMs 3400, 3400, BulbOff
- 'XMove = 1
- XWingMove_Expired()
- PlayThis = 1: AnimationStart() ' may the force be with you...
- StopMusic 6: StopMusic 4
- If (TimeAttack = TRUE) Then
- PlaySound "vo_AttackSpeed2"
- Else
- PlayMusic 4, "fx_GameStart"
- End If
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 625, 664
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 625, 664
- RewardSAVER = FALSE
- RewardSAVER2 = FALSE
- RewardJEDI = FALSE
- RewardJEDI2 = FALSE
- FirstBallDelayTimer.Set TRUE, 3400
- End Sub
- ' when any ball drains, reset the table...
- ' some progress will be lost, such as:
- ' Turbo Bumpers
- ' Bonus Multiplier
- ' Vader Scoring progression
- ' Attack Bonus progression
- ' All TIE drops will also reset to a full bank
- ' but I'll let you keep SOLO progression...
- Sub ResetForNewPlayerBall()
- If (HoldBonus = FALSE) Then
- SetBonusMultiplier(1)
- End If
- BonusHeld = 5
- HoldBonus = FALSE
- LightTopLane1.State = BulbOff
- LightTopLane2.State = BulbOff
- LightTopLane3.State = BulbOff
- If (RewardSHOTS = TRUE) Then
- Eject = 2
- DSHit = 2
- Else
- If (bOnTheFirstBall = TRUE) Then
- Eject = 0
- Else
- Eject = 1
- End If
- DSHit = 0
- End If
- BallsInLock = 0
- ScoreX = 1
- AttackBonus = 0
- Squadron = 0
- LightShootAgain.State = BulbOff
- EmpireBonus = 0
- VaderValue = 0
- TrenchValue = 0
- RebellionBonus = 0
- bExtraBallWonThisBall = FALSE
- LightSeqPF.StopPlay
- ResetDropTargets()
- EnableKickback()
- TIEPlay = 1
- LSLOff()
- LSROff()
- AllPlasOn(): TurnOnBackBoxLights()
- ResetVADER()
- BumpValue = 500 ' reset value...
- BumpHit = 0
- Bumper1.State = BulbOff
- Bumper2.State = BulbOff
- Bumper3.State = BulbOff
- BulbBumper1.State = BulbOff
- BulbBumper2.State = BulbOff
- BulbBumper3.State = BulbOff
- VaderScoreTimer.Enabled = FALSE
- VaderScoring = FALSE
- VaderScoreLight.State = BulbOff
- If (PlayersPlayingGame > 1) Then
- LightPadawan.State = PadawanP(CP)
- LightKnight.State = KnightP(CP)
- LightMaster.State = MasterP(CP)
- LightJoda.State = YodaP(CP)
- SoloBulb1.State = Solo1P(CP)
- SoloBulb2.State = Solo2P(CP)
- SoloBulb3.State = Solo3P(CP)
- SoloBulb4.State = Solo4P(CP)
- BulbBottom.State = BulbLvL1P(CP)
- BulbMiddle.State = BulbLvL2P(CP)
- BulbTop.State = BulbLvL3P(CP)
- Light50000Points.State = BulbOff
- LightExtraBall.State = BulbOff
- LightSpecial.State = BulbOff
- LightSpecialL.State = BulbOff
- LightSpecialR.State = BulbOff
- LightDock.State = BulbOff
- AttackAwardLevel = 0
- End If
- SetupTableMode()
- End Sub
- ' set the table up based on player's current Jedi ranking...
- Sub SetupTableMode()
- BulbLeftStar1.State = BulbOff
- BulbLeftStar2.State = BulbOff
- BulbLeftStar3.State = BulbOff
- BulbMiddleStar.State = BulbOff
- LightLeftInlane.State = BulbOff
- LightRightInlane.State = BulbOff
- LightLeftLock.State = BulbOff
- LightLeftPowerUp.State = BulbOff
- ' relight the power up shot...next shot to Vader will rank up...
- If (LightPadawan.State = BulbBlink) and (bPadawanMode(CP) = FALSE) Then
- BulbLeftStar1Ext.SetLitColor 255, 0, 0
- BulbLeftStar2Ext.SetLitColor 255, 0, 0
- BulbLeftStar3Ext.SetLitColor 255, 0, 0
- LightLeftPowerUp.Set BulbBlink, "00010", 125
- BulbLeftStar1.Set BulbBlink, "10000", 125
- BulbLeftStar2.Set BulbBlink, "01000", 125
- BulbLeftStar3.Set BulbBlink, "00100", 125
- End If
- ' relight the power up shot...
- If (LightKnight.State = BulbBlink) and (bKnightMode(CP) = FALSE) Then
- BulbLeftStar1Ext.SetLitColor 255, 0, 0
- BulbLeftStar2Ext.SetLitColor 255, 0, 0
- BulbLeftStar3Ext.SetLitColor 255, 0, 0
- LightLeftPowerUp.Set BulbBlink, "00010", 125
- BulbLeftStar1.Set BulbBlink, "10000", 125
- BulbLeftStar2.Set BulbBlink, "01000", 125
- BulbLeftStar3.Set BulbBlink, "00100", 125
- End If
- ' relight the power up shot...
- If (LightMaster.State = BulbBlink) and (bMasterMode(CP) = FALSE) Then
- BulbLeftStar1Ext.SetLitColor 255, 0, 0
- BulbLeftStar2Ext.SetLitColor 255, 0, 0
- BulbLeftStar3Ext.SetLitColor 255, 0, 0
- LightLeftPowerUp.Set BulbBlink, "00010", 125
- BulbLeftStar1.Set BulbBlink, "10000", 125
- BulbLeftStar2.Set BulbBlink, "01000", 125
- BulbLeftStar3.Set BulbBlink, "00100", 125
- End If
- ' relight the power up shot...
- If (LightJoda.State = BulbBlink) and (bYodaMode(CP) = FALSE) Then
- BulbLeftStar1Ext.SetLitColor 255, 0, 0
- BulbLeftStar2Ext.SetLitColor 255, 0, 0
- BulbLeftStar3Ext.SetLitColor 255, 0, 0
- LightLeftPowerUp.Set BulbBlink, "00010", 125
- BulbLeftStar1.Set BulbBlink, "10000", 125
- BulbLeftStar2.Set BulbBlink, "01000", 125
- BulbLeftStar3.Set BulbBlink, "00100", 125
- End If
- ' player is a Padawan so the table is slightly more profitable...
- If (bPadawanMode(CP) = TRUE) Then
- LightPadawan.State = BulbOn
- LightKnight.State = BulbOff
- LightMaster.State = BulbOff
- LightJoda.State = BulbOff
- XWingValue(CP) = 5000: VaderHitValue(CP) = 7500
- End If
- ' player is a Jedi Knight, now we're talking, some respect at last!...
- If (bKnightMode(CP) = TRUE) Then
- LightPadawan.State = BulbOn
- LightKnight.State = BulbOn
- LightMaster.State = BulbOff
- LightJoda.State = BulbOff
- LightLeftInlane.State = BulbOn
- LightRightInlane.State = BulbOn
- XWingValue(CP) = 10000: VaderHitValue(CP) = 12500
- End If
- ' player is a Jedi Master, the Force flows through them...
- If (bMasterMode(CP) = TRUE) Then
- LightPadawan.State = BulbOn
- LightKnight.State = BulbOn
- LightMaster.State = BulbOn
- LightJoda.State = BulbOff
- BulbLeftStar1Ext.SetLitColor 0, 244, 0
- BulbLeftStar2Ext.SetLitColor 0, 244, 0
- BulbLeftStar3Ext.SetLitColor 0, 244, 0
- BulbLeftStar1.State = BulbOn
- BulbLeftStar2.State = BulbOn
- BulbLeftStar3.State = BulbOn
- BulbMiddleStar.State = BulbOn
- XWingValue(CP) = 15000: VaderHitValue(CP) = 17500
- End If
- ' player is a Jedi Grand Master, now when you die, you can become a spooky hologram (younger version of yourself preferred)
- If (bYodaMode(CP) = TRUE) Then
- LightJoda.State = BulbOn
- LightPadawan.Set BulbBlink, "100", 125
- LightMaster.Set BulbBlink, "010", 125
- LightKnight.Set BulbBlink, "001", 125
- LightPadawan.State = BulbOn
- LightKnight.State = BulbOn
- LightMaster.State = BulbOn
- LightJoda.State = BulbOn
- BulbLeftStar1Ext.SetLitColor 0, 244, 0
- BulbLeftStar2Ext.SetLitColor 0, 244, 0
- BulbLeftStar3Ext.SetLitColor 0, 244, 0
- BulbLeftStar1.State = BulbOn
- BulbLeftStar2.State = BulbOn
- BulbLeftStar3.State = BulbOn
- BulbMiddleStar.State = BulbOn
- ' this time only a single TIE figther needs to be taken out...
- FourBank1.PopDown
- FourBank2.PopDown
- FourBank3.PopDown
- FourBank4.PopDown
- ThreeBank1.PopDown
- ThreeBank2.PopDown
- ThreeBank3.PopDown
- TgtRotate.Set TRUE, 1500
- XWingValue(CP) = 20000: VaderHitValue(CP) = 25000
- End If
- ' player is Skywalker, only Vader can stop you now....
- If (bSkyWalker(CP) = TRUE) Then
- LightLeftLock.Set BulbBlink, "10", 100
- LightLeftPowerUp.Set BulbBlink, "00010", 125
- BulbLeftStar1Ext.SetLitColor 255, 0, 0
- BulbLeftStar2Ext.SetLitColor 255, 0, 0
- BulbLeftStar3Ext.SetLitColor 255, 0, 0
- BulbLeftStar1.Set BulbBlink, "10000", 125
- BulbLeftStar2.Set BulbBlink, "01000", 125
- BulbLeftStar3.Set BulbBlink, "00100", 125
- End If
- ' reset the SOLO Level bulbs...
- If (SoloTally(CP) = 1) Then BulbBottom.State = BulbOn
- If (SoloTally(CP) = 2) Then BulbBottom.State = BulbOn: BulbMiddle.State = BulbOn
- If (SoloTally(CP) = 3) Then BulbBottom.State = BulbOn: BulbMiddle.State = BulbOn: BulbTop.State = BulbOn
- ' another player is spoiling your fun, you have to step aside and wait for them to finish their ball (won't take long)...
- If (PlayersPlayingGame > 1) Then RestartMusic()
- End Sub
- Sub BallSaver()
- AutoFire = TRUE
- CheckRightOutLights()
- CheckLeftOutLights()
- PlungerKicker.CreateBall: AddTrackedBall(PlungerKicker)
- MyDMD.QueueText "[edge3][f4][xc][yc][b]BALL SAVED"
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]BALL SAVED"
- BallsOnPlayfield = BallsOnPlayfield + 1
- PlungerKicker.SolenoidPulse
- DOFLinx_PlungerKicker() 'DOFLinx - PlungerKicker
- LuckyBastard(CP) = 0
- End Sub
- Sub CreateNewBall()
- If (bMultiBallMode = TRUE) Then
- call CreateCustomBall(PlungerKicker, BALL_B) ' create the black ball...
- BallsOnPlayfield = BallsOnPlayfield + 1
- PlungerKicker.SolenoidPulse
- DOFLinx_PlungerKicker() 'DOFLinx - PlungerKicker
- LightShipMiddle.Set BulbBlink, "10", 150: LightShipRight.Set BulbBlink, "10", 150
- AutoFire = TRUE
- Else
- ' turn off the outlane bulbs...
- CheckRightOutLights()
- CheckLeftOutLights()
- If (TorpedoReady(CP) = TRUE) Then ' has the player qualified for the skill shot?...
- TorpedoReady(CP) = FALSE
- SSTimer.Set TRUE, 2750 ' timed to match the movie clip (you have 250ms to make the shot)
- SSTimer2.Set TRUE, 3000
- PlayMusic 3, "fx_SkillShot3"
- DOFLinx_Skillshot_Start() 'DOFLinx - Skillshot Start
- Select Case RandomNumber(3)
- Case 1: MusicFade(1900): PlaySound "vo_LockedOnSignal"
- Case 2,3: MusicFade(1400): PlaySound "vo_TargetingComputers"
- End Select
- MovieOverlay.UpdateInterval = 63: MovieOverlay.Frame 836, 878
- HUDOverLay.UpdateInterval = 63: HUDOverLay.Frame 836, 878
- Else
- ' animate the Launch sequence...
- MovieOverlay.UpdateInterval = 80: HUDOverlay.UpdateInterval = 80
- MovieOverlay.Frame 118, 126, 118
- HUDOverLay.Frame 118, 126, 118
- End If
- MyDMD.FlushQueue: MyDMD2.FlushQueue
- If (PlayersPlayingGame > 1) Then
- MyDMD.QueueText "[edge3][f4][xc][yc][b]GET READY PILOT " & CP, deNone, 1200, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]GET READY PILOT " & CP, deNone, 1200, FALSE
- Else
- Select Case RandomNumber(3)
- Case 1:
- If (EB5m(CP) = FALSE) and (TimeAttack = FALSE) Then
- MyDMD.QueueText "[f1][y7]EXTRA BALL AT[f3][y16][bf]5 MILLION", deScrollIn, 800, FALSE
- MyDMD2.QueueText "[f1][y7]EXTRA BALL AT[f3][y16][bf]5 MILLION", deScrollIn, 800, FALSE
- Else
- MyDMD.QueueText "[edge3][yc][f3]TIE DESTROYED: " & TIETally(CP), deScrollDown, 800, FALSE
- MyDMD2.QueueText "[edge3][yc][f3]TIE DESTROYED: " & TIETally(CP), deScrollDown, 800, FALSE
- End If
- Case 2:
- MyDMD.QueueText "[edge3][f4][yc][xc][yc][b]GET READY", deScrollIn, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc][yc][b]GET READY", deScrollIn, 800, FALSE
- Case 3:
- MyDMD.QueueText "[edge3][yc][f3]TIE DESTROYED " & TIETally(CP), deScrollDown, 800, FALSE
- MyDMD2.QueueText "[edge3][yc][f3]TIE DESTROYED " & TIETally(CP), deScrollDown, 800, FALSE
- End Select
- End If
- If (BallsRemaining(CP) = 1) Then
- If (NewBall = TRUE) and (PlayersPlayingGame = 1) Then
- NewBall = FALSE
- If (ResumeVol.Enabled = FALSE) Then
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1000: MusicFade(1000)
- Select Case RandomNumber(5)
- Case 1: PlaySound "vo_TheForce"
- Case 2: PlaySound "vo_BadFeeling"
- Case 3: PlaySound "vo_BadFeeling2"
- Case 4: PlaySound "vo_TrustFeelings"
- Case 5: PlaySound "vo_Feelings": QuoteTimer.Set TRUE, 2000
- End Select
- End If
- End If
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]LAST BALL", deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]LAST BALL", deNone, 1500, TRUE
- Else
- If (TimeAttack = FALSE) Then
- MyDMD.QueueText "[edge3][f4][yc][xc]BALLS REMAIN: " & BallsRemaining(CP), deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]BALLS REMAIN: " & BallsRemaining(CP), deNone, 1500, TRUE
- Else
- MyDMD.QueueText "[edge3][f4][yc][xc]GOOD LUCK", deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]GOOD LUCK", deNone, 1500, TRUE
- End If
- End If
- NewBall = FALSE
- PlungerKicker.CreateBall: AddTrackedBall(PlungerKicker)
- 'call CreateCustomBall(PlungerKicker, BALL_B)
- DiverterGuide.Collidable = FALSE
- DiverterSurface.Collidable = FALSE
- RampDiverter.SolenoidOff
- RampDiverter2.SolenoidOff
- TopLeftKickerLight.State = BulbOff
- ' reset after multiball finale
- CountDown.FadeOut
- DeathStarTimer2.Enabled = FALSE
- BallsOnPlayfield = BallsOnPlayfield + 1
- ' kick it out..
- PlungerKicker.SolenoidPulse
- DOFLinx_PlungerKicker() 'DOFLinx - PlungerKicker
- End If
- End Sub
- Sub SSTimer_Expired()
- SSTimer.Enabled = FALSE
- SSWin = TRUE
- DOFLinx_Skillshot_Ready_to_Fire() 'DOFLinx - Skillshot Ready to Fire
- End Sub
- Sub SSTimer2_Expired()
- SSTimer2.Enabled = FALSE
- MovieOverlay.Frame 11
- HUDOverlay.Frame 11
- SSWin = FALSE
- End Sub
- Sub DeathStarTimer2_Expired()
- DeathStarTimer2.Enabled = FALSE
- bMultiBallMode = FALSE
- LightJackpot.State = BulbOff
- EffectMusic 1, FadeOutAndStop, 0, 100
- TgtRotate.Enabled = FALSE
- TATimer.Enabled = FALSE
- If (TimeAttack = FALSE) Then MovieOverlay.FadeOut
- DMDBusy = FALSE: DMDTimer.Enabled = FALSE
- MyDMD.QueueText "[f4][xc][yc][bf]TIME UP!", deNone, 2000, FALSE
- MyDMD2.QueueText "[f4][xc][yc][bf]TIME UP!", deNone, 2000, FALSE
- MyDMD.QueueText "[f4][xc][yc]TIME UP!", deNone, 2000, FALSE
- MyDMD2.QueueText "[f4][xc][yc]TIME UP!", deNone, 2000, FALSE
- MyDMD.QueueText "[f4][xc][yc][b]BASE DESTROYED", deNone, 3000, FALSE
- MyDMD2.QueueText "[f4][xc][yc][b]BASE DESTROYED", deNone, 3000, FALSE
- MyDMD.QueueText "[f4][xc][yc]BASE DESTROYED", deNone, 3000, FALSE
- MyDMD2.QueueText "[f4][xc][yc]BASE DESTROYED", deNone, 3000, FALSE
- MyDMD.QueueText "[f4][xc][yc][b]TRY AGAIN", deScrollIn, 1000, TRUE
- MyDMD2.QueueText "[f4][xc][yc][b]TRY AGAIN", deScrollIn, 1000, TRUE
- DSSpot1.State = BulbOff
- DSSpot2.State = BulbOff
- FlasherLeft.FlashForMs 3500, 100, BulbOff
- ' change the camera angle...
- CameraView_LookAtBackBox
- PFFlash.Enabled = FALSE
- LightSeqPF.Play SeqAllOff
- AllPlasOff()
- TurnOffBackBoxLights()
- ' Look at the movie now playing on the backglass.
- ' This clip wasn't in the movie, it's custom made. I overlaid a graphic
- ' of the Death Star on top of a planet to make it look like it's destroyed.
- BackBoxTimer.Set TRUE, 7000
- BackOverlay.FadeIn
- BackOverlay.UpdateInterval = 49
- BackOverlay.Frame 109, 248
- Select Case RandomNumber(5)
- Case 1: PlaySound "fx_Failed2", 0.7: FailTimer.Set TRUE, 12000
- Case 2: PlaySound "fx_Failed3": FailTimer.Set TRUE, 22000
- Case 3: PlaySound "fx_Failed4": FailTimer.Set TRUE, 18000
- Case 4: PlaySound "fx_Failed5": FailTimer.Set TRUE, 14000
- Case 5: PlaySound "fx_Failed6": FailTimer.Set TRUE, 15000
- End Select
- PlaySound "vo_DSFiring"
- fpTilted = TRUE
- LeftFlipper.SolenoidOff: TopFlipper.SolenoidOff
- DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
- RightFlipper.SolenoidOff
- DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
- DiverterGuide.Collidable = FALSE
- DiverterSurface.Collidable = FALSE
- RampDiverter.SolenoidOff
- RampDiverter2.SolenoidOff
- If (bBallInPlungerLane = TRUE) Then
- Plunger.SolenoidPulse
- End If
- End Sub
- Sub BackBoxTimer_Expired()
- BackBoxTimer.Enabled = FALSE
- BackOverlay.FadeOut
- TurnOnBackBoxLights()
- MovieOverlay.FadeIn
- End Sub
- Sub TenSecondTimer_Expired()
- TenSecondTimer.Enabled = FALSE
- If (TopLeftKickerLight.State = BulbOff) Then
- MusicFade(1000): PlaySound "vo_10Secs"
- End If
- End Sub
- Sub EOBDelay_Expired()
- EOBDelay.Enabled = FALSE
- EndOfBall()
- End Sub
- ' end of ball bonuses now add a perk to the next ball:
- ' Chewbacca - Bumper value is increased (temporarily)
- ' Leia - Kickback can be used 2 times before it turns off
- ' Obi Wan - all Target values are increased (permanently)
- ' Han - Video Mode is lit
- ' Luke - Ball Saver timer is increased by 4 seconds
- Sub EndOfBall()
- bOnTheFirstBall = FALSE
- If (TimeAttack = TRUE) Then
- TimeAttack = FALSE
- fpTilted = FALSE
- MatchPlayed(CP) = TRUE
- BallsRemaining(CP) = 0
- TurnOnBackBoxLights()
- AllPlasOn()
- GameOverTimer.Set TRUE, 100
- Exit Sub
- End If
- TurnOnBackBoxLights()
- AllPlasOn()
- If (PlayersPlayingGame > 1) Then
- PadawanP(CP) = LightPadawan.State
- KnightP(CP) = LightKnight.State
- MasterP(CP) = LightMaster.State
- YodaP(CP) = LightJoda.State
- LightPadawan.State = BulbOff
- LightKnight.State = BulbOff
- LightMaster.State = BulbOff
- LightJoda.State = BulbOff
- Solo1P(CP) = SoloBulb1.State
- Solo2P(CP) = SoloBulb2.State
- Solo3P(CP) = SoloBulb3.State
- Solo4P(CP) = SoloBulb4.State
- SoloBulb1.State = BulbOff
- SoloBulb2.State = BulbOff
- SoloBulb3.State = BulbOff
- SoloBulb4.State = BulbOff
- BulbLvL1P(CP) = BulbBottom.State
- BulbLvL2P(CP) = BulbMiddle.State
- BulbLvL3P(CP) = BulbTop.State
- BulbBottom.State = BulbOff
- BulbMiddle.State = BulbOff
- BulbTop.State = BulbOff
- End If
- If (fpTilted = FALSE) Then
- If (EmpireBonus > RebellionBonus) Then
- RedWin = RedWin + 1: SithStrike = TRUE
- Else
- BlueWin = BlueWin + 1
- End If
- ' only the highest perk is awarded...
- ChewiePerk = FALSE
- LeiaPerk = FALSE
- ObiWanPerk = FALSE
- HanPerk = FALSE
- LukePerk = FALSE: BSTime = BSTime - 4000
- BonusDelayTime = 600
- Select Case BonusMultiplier(CP)
- Case 2:
- PlaySound "vo_Chewie"
- BonusDelayTime = BonusDelayTime + 100
- HUDOverlay.Frame 590: MovieOverlay.Frame 590 ' show chewie
- ChewiePerk = TRUE
- Case 3:
- BonusDelayTime = BonusDelayTime + 100
- HUDOverlay.Frame 591: MovieOverlay.Frame 591 ' show leia
- If (TimeAttack = FALSE) Then
- Select Case RandomNumber(3)
- Case 1: PlaySound "vo_Money"
- Case 2: PlaySound "vo_Carpet"
- Case 3: PlaySound "vo_LaserBrain"
- End Select
- LeiaPerk = TRUE
- End If
- Case 4:
- BonusDelayTime = BonusDelayTime + 100
- HUDOverlay.Frame 592: MovieOverlay.Frame 592 ' show obi wan
- If (TimeAttack = FALSE) Then
- Select Case RandomNumber(5)
- Case 1: PlaySound "vo_Eyes"
- Case 2: PlaySound "vo_Droids"
- Case 3: PlaySound "vo_JediPower"
- Case 4: PlaySound "vo_FeelTheForce"
- Case 5: PlaySound "vo_BenChat8"
- End Select
- ObiWanPerk = TRUE
- End If
- Case 5:
- BonusDelayTime = BonusDelayTime + 100
- HUDOverlay.Frame 593: MovieOverlay.Frame 593 ' show han
- If (TimeAttack = FALSE) Then
- Select Case RandomNumber(4)
- Case 1: PlaySound "vo_ForTheMoney"
- Case 2: PlaySound "vo_Fight"
- Case 3: PlaySound "vo_GoodBlaster"
- Case 4: PlaySound "vo_MyDestiny"
- End Select
- HanPerk = TRUE
- End If
- Case 6:
- BonusDelayTime = BonusDelayTime + 100
- HUDOverlay.Frame 594: MovieOverlay.Frame 594 ' show luke
- If (TimeAttack = FALSE) Then
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_DarkSide"
- Case 2: PlaySound "vo_SirLuke"
- End Select
- LukePerk = TRUE
- End If
- End Select
- Else
- BonusDelayTime = 1000
- End If
- EndOfBallTimer.Set TRUE, BonusDelayTime
- End Sub
- Sub MusicFade(FadeTime)
- EffectMusic 1, SetVolume, 0.2, 200
- ResumeVol.Set TRUE, FadeTime
- End Sub
- Sub ResumeVol_Expired()
- ResumeVol.Set FALSE
- EffectMusic 1, SetVolume, vol, 500
- End Sub
- Sub EndOfBallTimer_Expired()
- EndOfBallTimer.Enabled = FALSE
- If ((EmpireBonus =< 0) and (RebellionBonus =< 0)) Then
- DOFLinx_Lightsabers_Off() 'DOFLinx_Lightsabers_Off
- EmpireBonus = 0: RebellionBonus = 0
- fpTilted = FALSE
- If (nvScore(CP) =>5000000) and (EB5m(CP) = FALSE) Then
- EB5m(CP) = TRUE
- PlaySound "Knocker"
- R2HeadBulb.FlashForMs 100, 200, BulbOff
- MyDMD.Text = "[edge3][f4][yc][b]EXTRA BALL"
- MyDMD2.Text = "[edge3][f4][yc][b]EXTRA BALL"
- ExtraBallsAwards(CP) = 1
- bExtraBallWonThisBall = TRUE
- LightShootAgain.FlashForMs 700, 100, BulbOn
- End If
- If (LastBall = TRUE) and (ExtraBallsAwards(CP) = 0) Then
- AllPlasOff()
- StopMusic 1
- If (RedWin > BlueWin) Then
- LSMove = 10: MoveLS_Expired()
- Else
- LSMove = 4: MoveLS_Expired()
- End If
- LSC = TRUE
- Else
- If (SithStrike = TRUE) Then
- LSMove = 2
- Select Case RandomNumber(8)
- Case 1: MoveLS_Expired(): DelayEOB.Set TRUE, 1500
- Case 2: MusicFade(2500): PlaySound "vo_UnWise": MoveLS.Set TRUE, 2200: DelayEOB.Set TRUE, 4000: VaderScoreLight.FlashForMs 2200, 2200, BulbOff
- Case 3: MusicFade(2100): PlaySound "vo_MeetAgain": MoveLS.Set TRUE, 2000: DelayEOB.Set TRUE, 4000: VaderScoreLight.FlashForMs 2100, 2100, BulbOff
- Case 4: MusicFade(4000): PlaySound "vo_MeetDestiny": MoveLS.Set TRUE, 4000: DelayEOB.Set TRUE, 6000: VaderScoreLight.FlashForMs 4000, 4000, BulbOff
- Case 5: MusicFade(2300): PlaySound "vo_MeetDestiny2": MoveLS.Set TRUE, 2300: DelayEOB.Set TRUE, 4000: VaderScoreLight.FlashForMs 2300, 2300, BulbOff
- Case 6: MusicFade(2000): PlaySound "vo_JoinOrDie": MoveLS.Set TRUE, 2000: DelayEOB.Set TRUE, 3800: VaderScoreLight.FlashForMs 2000, 2000, BulbOff
- Case 7: MusicFade(1400): PlaySound "vo_TooEasy": MoveLS.Set TRUE, 1400: DelayEOB.Set TRUE, 3400: VaderScoreLight.FlashForMs 1400, 1400, BulbOff
- Case 8: MusicFade(2500): PlaySound "vo_Hatred": MoveLS.Set TRUE, 2000: DelayEOB.Set TRUE, 3500: VaderScoreLight.FlashForMs 2500, 2500, BulbOff
- End Select
- Else
- LSMove = 0
- Select Case RandomNumber(5)
- Case 1: MusicFade(2200): PlaySound "vo_Powerful": MoveLS_Expired(): DelayEOB.Set TRUE, 2300
- Case 2: MusicFade(2300): PlaySound "vo_Destiny": MoveLS_Expired(): DelayEOB.Set TRUE, 2400
- Case 3: MusicFade(2400): PlaySound "vo_Destroyed": MoveLS.Set TRUE, 2500: DelayEOB.Set TRUE, 4500
- Case 4: MusicFade(2500): PlaySound "vo_LSAlive": MoveLS.Set TRUE, 2500: DelayEOB.Set TRUE, 4500
- Case 5: DelayEOB.Set TRUE, 1500
- End Select
- End If
- SithStrike = FALSE
- End If
- Else
- If (RebellionBonus > 0) Then
- LSLOn(): DOFLinx_Blue_Lightsaber_On() 'DOFLinx_Blue_Lightsabers_On
- If (ShowLSL = FALSE) Then
- PlaySound "fx_LSOnL": ShowLSL = TRUE
- Else
- PlaySound "bonus counter left"
- End If
- IncrementRebellionBonus(-10)
- Else
- LSLOff(): LSROn(): DOFLinx_Red_Lightsaber_On() 'DOFLinx_Red_Lightsabers_On
- If (ShowLSR = FALSE) Then
- PlaySound "fx_LSOnR": ShowLSR = TRUE
- Else
- PlaySound "bonus counter right"
- End If
- IncrementEmpireBonus(-10)
- End If
- Dim AwardPoints
- AwardPoints = 1000 * BonusMultiplier(CP)
- AddScore(AwardPoints)
- If (EndOfBallTimer.Interval > 50) Then
- EndOfBallTimer.Interval = EndOfBallTimer.Interval - 50
- End If
- EndOfBallTimer.Enabled = TRUE
- End If
- End Sub
- Dim LSC,ShowLSL,ShowLSR
- Sub DelayEOB_Expired()
- DelayEOB.Enabled = FALSE
- If (LSC = TRUE) Then
- LSC = FALSE
- FlasherLeft.FlashForMs 500, 250, BulbOff
- FlasherRight.FlashForMs 500, 250, BulbOff
- LightSeqPF.Play SeqBlinking, , 2, 100
- DelayEOB.Set TRUE, 1000
- Exit Sub
- End If
- ShowLSL = FALSE
- ShowLSR = FALSE
- LSLOff()
- LSROff()
- If (ExtraBallsAwards(CP) <> 0) Then
- ExtraBallsAwards(CP) = ExtraBallsAwards(CP) - 1
- If (ExtraBallsAwards(CP) = 0) Then
- LightShootAgain.State = BulbOff
- End If
- AllPlasOn(): TurnOnBackBoxLights()
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1000: MusicFade(1000): PlaySound "vo_ShootAgain"
- If (PlayersPlayingGame > 1) Then
- LightPadawan.State = PadawanP(CP)
- LightKnight.State = KnightP(CP)
- LightMaster.State = MasterP(CP)
- LightJoda.State = YodaP(CP)
- SoloBulb1.State = Solo1P(CP)
- SoloBulb2.State = Solo2P(CP)
- SoloBulb3.State = Solo3P(CP)
- SoloBulb4.State = Solo4P(CP)
- BulbBottom.State = BulbLvL1P(CP)
- BulbMiddle.State = BulbLvL2P(CP)
- BulbTop.State = BulbLvL3P(CP)
- End If
- bExtraBallWonThisBall = FALSE
- CreateNewBall()
- Else
- BallsRemaining(CP) = BallsRemaining(CP) - 1
- If (BallsRemaining(CP) = 1) Then LastBall = TRUE
- TurnOnBackBoxLights()
- If (BallsRemaining(CP) <= 0) Then
- PlaySound "fx_LSOff"
- EffectMusic 1, FadeOutAndStop, 0, 100
- PlayMusic 3, "Music_HSEntry"
- If (QuoteBusy = FALSE) Then
- If (PlayersPlayingGame = 1) Then
- StopMusic 2
- Select Case RandomNumber(6)
- Case 1: PlayMusic 2, "vo_YodaQ1"
- Case 2: PlayMusic 2, "vo_YodaQ2"
- Case 3: PlayMusic 2, "vo_Instinct"
- Case 4: PlayMusic 3, "vo_JoinMe"
- Case 5: PlayMusic 2, "vo_StillAlive"
- Case 6: PlayMusic 2, "vo_TellYou": StopMusic 3
- End Select
- End If
- End If
- MyDMD.Text = "[edge3][f4][xc][yc]HIGH SCORE"
- MyDMD2.Text = "[edge3][f4][xc][yc]HIGH SCORE"
- bEnteringAHighScore = TRUE
- EnterHighScore(CP)
- Else
- EndOfBallComplete()
- End If
- End if
- End Sub
- Sub EndOfBallComplete()
- If (PlayersPlayingGame > 1) Then
- NextPlayer = CP + 1
- If (NextPlayer > PlayersPlayingGame) Then
- NextPlayer = 1
- End If
- Else
- NextPlayer = CP
- End If
- If (BallsRemaining(CP) <= 0) Then ' the Match sequence..."and (BallsRemaining(NextPlayer) <= 0))"
- MovieTimer.Set TRUE, 10
- If (MatchPlayed(CP) = TRUE) Then StopMusic 2: GameOverTimer.Set TRUE, 100: Exit Sub
- PlayMusic 4, "Music_Match", TRUE, 0.6
- MatchPlayed(CP) = TRUE
- dim i
- i = int(10* rnd(1))*10 ' pick a random number...
- MyDMD.FlushQueue
- Dim text1
- Dim text2
- text2 = " "
- text1= left(nvScore(CP),len(nvScore(CP))-2) & "[f3]" & right(text2,len(nvScore(CP))-2) & right(nvScore(CP),2)
- If (int(right(nvScore(CP),2)) = i) Then ' you get the match so keep playing...
- nvcredits = nvcredits + 1: LuckyBastard(CP) = LuckyBastard (CP) + 1
- MyDMD.QueueText "[edge3][f3][y17][x10]" & nvScore(CP) , deNone, 1600, FALSE ' first, show player's score on the left...
- MyDMD.QueueText "[edge3][f8][y17][x10]" & text1 , deNone, 2000, FALSE ' then highlight the last 2 numbers...
- MyDMD2.QueueText "[edge3][f3][y17][x10]" & nvScore(CP) , deNone, 1600, FALSE
- MyDMD2.QueueText "[edge3][f8][y17][x10]" & text1 , deNone, 2000, FALSE
- If (i = 0) Then ' then show match number on the right...
- MyDMD.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]00", deWipeDown, 1200, FALSE
- MyDMD2.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]00", deWipeDown, 1200, FALSE
- Else
- R2HeadBulb.FlashForMs 1200, 100, BulbOff
- MyDMD.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]" & i, deWipeDown, 1200, FALSE
- MyDMD2.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]" & i, deWipeDown, 1200, FALSE
- End if
- R2HeadBulb.FlashForMs 1000, 200, BulbOff
- MyDMD.QueueText "[edge3][f4][yc][b]EXTRA BALL/CREDIT[/b]", deScrollDownOver, 1800, TRUE, "knocker"
- MyDMD2.QueueText "[edge3][f4][yc][b]EXTRA BALL/CREDIT[/b]", deScrollDownOver, 1800, TRUE
- GameOverTimer.Set TRUE, 6500
- Else
- MyDMD.QueueText "[edge3][f3][y17][x10]" & nvScore(CP) , deNone, 1600, FALSE
- MyDMD.QueueText "[edge3][f8][y17][x10]" & text1 , deNone, 2000, FALSE
- MyDMD2.QueueText "[edge3][f3][y17][x10]" & nvScore(CP) , deNone, 1600, FALSE
- MyDMD2.QueueText "[edge3][f8][y17][x10]" & text1 , deNone, 2000, FALSE
- If (i = 0) Then ' then show match number on the right...
- MyDMD.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]00", deWipeDown, 1200, TRUE, "no"
- MyDMD2.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]00", deWipeDown, 1200, TRUE
- Else
- MyDMD.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]" & i, deWipeDown, 1200, TRUE, "no"
- MyDMD2.QueueText "[edge3][f8][y17][x10]" & text1 & "[y7][x97][f6]" & i, deWipeDown, 1200, TRUE
- End If
- GameOverTimer.Set TRUE, 5500
- End If
- Else
- CP = NextPlayer
- ResetForNewPlayerBall()
- NewBall = TRUE
- CreateNewBall()
- End If
- End Sub
- Sub GameOverTimer_Expired()
- GameOverTimer.Enabled = FALSE
- StopMusic 8
- EffectMusic 4, FadeOutAndStop, 0, 500
- If (LuckyBastard(CP) = 1) Then ' match win...
- RestartMusic()
- AllPlasOn(): TurnOnBackBoxLights()
- BallSaver()
- Else
- If (BallsRemaining(NextPlayer) > 0) Then ' let the next player have their go...
- CP = NextPlayer
- ResetForNewPlayerBall()
- NewBall = TRUE
- CreateNewBall()
- Exit Sub
- End If
- If (PlayersPlayingGame = 2) Then
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_Luck", 0.8
- Case 2: PlaySound "vo_GoodBlaster", 0.8
- End Select
- If (Pilot1 > Pilot2) Then ' player 1 wins...
- MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 5"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 5"
- Else ' player 2 wins
- MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 2"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 2"
- End If
- DelayGameEnd.Set TRUE, 3500
- Exit Sub
- End If
- If (PlayersPlayingGame = 3) Then
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_Luck", 0.8
- Case 2: PlaySound "vo_GoodBlaster", 0.8
- End Select
- If (Pilot1 > Pilot2) and (Pilot1 > Pilot3) Then ' player 1 wins...
- MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 5"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 5"
- Else
- If (Pilot2 > Pilot1) and (Pilot2 > Pilot3) Then ' player 2 wins...
- MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 2"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 2"
- Else
- If (Pilot3 > Pilot1) and (Pilot3 > Pilot2) Then ' player 3 wins...
- MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 3"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 3"
- End If
- End If
- End If
- DelayGameEnd.Set TRUE, 3500
- Exit Sub
- End If
- If (PlayersPlayingGame = 4) Then
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_Luck", 0.8
- Case 2: PlaySound "vo_GoodBlaster", 0.8
- End Select
- If (Pilot1 > Pilot2) and (Pilot1 > Pilot3) and (Pilot1 > Pilot4) Then ' player 1 wins...
- MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 5"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 5"
- Else
- If (Pilot2 > Pilot1) and (Pilot2 > Pilot3) and (Pilot2 > Pilot4) Then ' player 2 wins...
- MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 2"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 2"
- Else
- If (Pilot3 > Pilot1) and (Pilot3 > Pilot2) and (Pilot3 > Pilot4) Then ' player 3 wins...
- MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 3"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 3"
- Else
- If (Pilot4 > Pilot1) and (Pilot4 > Pilot2) and (Pilot4 > Pilot3) Then ' player 4 wins...
- MyDMD.Text = "[edge3][f4][xc][yc][b]WINNER: RED 6"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]WINNER: RED 6"
- End If
- End If
- End If
- End If
- DelayGameEnd.Set TRUE, 3500
- Exit Sub
- End If
- If (nvScore(CP) > 1500000) Then
- PointsRewards()
- Else
- If (nvScore(CP) < 1500000) Then
- StopMusic 1: StopMusic 3
- MyDMD.Text = "[edge3][f4][yc][b]PLAY BETTER"
- MyDMD2.Text = "[edge3][f4][yc][b]PLAY BETTER"
- Select Case RandomNumber(7)
- Case 1: PlaySound "vo_FailMe": VaderScoreLight.FlashForMs 2000, 2000, BulbOff: DelayGameEnd.Set TRUE, 2000
- Case 2: PlaySound "vo_CompleteTraining": VaderScoreLight.FlashForMs 1900, 1900, BulbOff: DelayGameEnd.Set TRUE, 1900
- Case 3: PlaySound "vo_LackOfProgress": VaderScoreLight.FlashForMs 3700, 3700, BulbOff: DelayGameEnd.Set TRUE, 3700
- Case 4: PlayMusic 2, "vo_Sister", FALSE, 1, 500: VaderScoreLight.FlashForMs 9050, 9050, BulbOff: DelayGameEnd.Set TRUE, 9050
- Case 5: PlaySound "vo_TurnToDarkSide": VaderScoreLight.FlashForMs 1900, 1900, BulbOff: DelayGameEnd.Set TRUE, 1900
- Case 6: PlaySound "vo_PowerOfDarkSide": VaderScoreLight.FlashForMs 3500, 3500, BulbOff: DelayGameEnd.Set TRUE, 3500
- Case 7: PlaySound "vo_DontKnowPower": VaderScoreLight.FlashForMs 4000, 4000, BulbOff: DelayGameEnd.Set TRUE, 4000
- End Select
- Else
- RewardSHOTS = FALSE
- StopMusic 2
- PlayMusic 6, "GameOver"
- nvTotalGamesPlayed = nvTotalGamesPlayed + 1
- PlayMe = 1
- EndOfGame()
- End If
- End If
- End If
- End Sub
- Sub DelayGameEnd_Expired()
- DelayGameEnd.Enabled = FALSE
- LightSeqPF.StopPlay
- LightSeqGI.StopPlay
- BackBox.StopPlay
- StopMusic 2
- PlayMusic 6, "GameOver"
- nvTotalGamesPlayed = nvTotalGamesPlayed + 1
- RewardSHOTS = FALSE
- PlayMe = 1
- EndOfGame()
- End Sub
- Sub AwardFreeCredit(Credits)
- AwardKnockerTimer.UserData = AwardKnockerTimer.UserData + Credits
- If (AwardKnockerTimer.Enabled = False) Then
- AwardKnockerTimer.Set True, 500
- End If
- End Sub
- Sub AwardKnockerTimer_Expired()
- AwardKnockerTimer.Enabled = False
- nvCredits = nvCredits + 1
- PlaySound "Knocker"
- AwardKnockerTimer.UserData = AwardKnockerTimer.UserData - 1
- If (AwardKnockerTimer.UserData > 0) Then
- AwardKnockerTimer.Set True, 500
- End If
- End Sub
- Sub PointsRewards()
- RewardSHOTS = FALSE
- RewardsTimer.Set TRUE, 4000 ' times out after 4 seconds...
- PointReward = TRUE
- PlayMusic 1, "Music_Yoda"
- DMDBusy = FALSE: DMDTimer.Enabled = FALSE
- MyDMD.FlushQueue: MyDMD2.FlushQueue
- MyDMD.QueueText "[f1][y7]SPEND POINTS[f3][y16]FOR NEXT GAME?", deScrollIn, 1600, FALSE
- MyDMD2.QueueText "[f1][y7]SPEND POINTS[f3][y16]FOR NEXT GAME?", deScrollIn, 1600, FALSE
- MyDMD.QueueText "[f4][yc]< YES NO >", deNone, 1500, TRUE
- MyDMD2.QueueText "[f4][yc]< YES NO >", deNone, 1500, TRUE
- End Sub
- Sub RewardListTimer_Expired()
- RWD = RWD + 1
- ' score is more than 1.5m but less then 2.5m so only 1 option is available....
- If (nvScore(CP) => 1500000) and (nvScore(CP) =< 2500000) and (RewardSAVER = FALSE) Then
- RewardSAVER = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE
- MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
- MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
- PlaySound "BeepCentre"
- RWD = 0
- End If
- ' score is more than 2.5m but less then 4m so only 2 options are available....
- If (nvScore(CP) => 2500000) and (nvScore(CP) =< 4000000) Then
- PlaySound "BeepCentre"
- Select Case RWD
- Case 1:
- RewardSAVER = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE
- MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
- MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
- Case 2:
- RewardJEDI = TRUE: RewardSAVER = FALSE: RewardBALL = FALSE
- MyDMD.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
- MyDMD2.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
- RWD = 0
- End Select
- End If
- ' score is more than 4m but less then 5.5m so only 3 options are available....
- If (nvScore(CP) => 4000000) and (nvScore(CP) =< 5500000) Then
- PlaySound "BeepCentre"
- Select Case RWD
- Case 1:
- RewardSAVER = TRUE: RewardSHOTS = FALSE: RewardJEDI = FALSE
- MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
- MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
- Case 2:
- RewardJEDI = TRUE: RewardSAVER = FALSE: RewardSHOTS = FALSE
- MyDMD.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
- MyDMD2.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
- Case 3:
- RewardSHOTS = TRUE: RewardJEDI = FALSE: RewardSAVER = FALSE
- MyDMD.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
- MyDMD2.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
- RWD = 0
- End Select
- End If
- ' score is more than 5.5m but less than 7m so 4 options are available....
- If (nvScore(CP) => 5500000) and (nvScore(CP) =< 7000000) Then
- PlaySound "BeepCentre"
- Select Case RWD
- Case 1:
- RewardSAVER = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSHOTS = FALSE: RewardSAVER2 = FALSE
- MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
- MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
- Case 2:
- RewardJEDI = TRUE: RewardSAVER = FALSE: RewardBALL = FALSE: RewardSHOTS = FALSE: RewardSAVER2 = FALSE
- MyDMD.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
- MyDMD2.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
- Case 3:
- RewardSHOTS = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSAVER2 = FALSE
- MyDMD.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
- MyDMD2.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
- Case 4:
- RewardSAVER2 = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSHOTS = FALSE
- MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 10 SECONDS?"
- MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 10 SECONDS?"
- RWD = 0
- End Select
- End If
- ' score is more than 7m but less than 8.5m so 5 options are available....
- If (nvScore(CP) => 7000000) and (nvScore(CP) =< 8500000) Then
- PlaySound "BeepCentre"
- Select Case RWD
- Case 1:
- RewardSAVER = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSHOTS = FALSE: RewardSAVER2 = FALSE
- MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
- MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
- Case 2:
- RewardJEDI = TRUE: RewardSAVER = FALSE: RewardBALL = FALSE: RewardSHOTS = FALSE: RewardSAVER2 = FALSE
- MyDMD.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
- MyDMD2.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
- Case 3:
- RewardSHOTS = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSAVER2 = FALSE
- MyDMD.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
- MyDMD2.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
- Case 4:
- RewardSAVER2 = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSHOTS = FALSE
- MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 10 SECONDS?"
- MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 10 SECONDS?"
- Case 5:
- RewardBALL = TRUE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSAVER2 = FALSE: RewardSHOTS = FALSE
- MyDMD.Text = "[f1][y7]ADD ANOTHER[f3][y16]BALL?"
- MyDMD2.Text = "[f1][y7]ADD ANOTHER[f3][y16]BALL?"
- RWD = 0
- End Select
- End If
- ' score is more than 8.5m so all 6 options are available....
- If (nvScore(CP) => 8500000) Then
- PlaySound "BeepCentre"
- Select Case RWD
- Case 1:
- RewardSAVER = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSHOTS = FALSE: RewardSAVER2 = FALSE: RewardJEDI2 = FALSE
- MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
- MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 5 SECONDS?"
- Case 2:
- RewardJEDI = TRUE: RewardSAVER = FALSE: RewardBALL = FALSE: RewardSHOTS = FALSE: RewardSAVER2 = FALSE: RewardJEDI2 = FALSE
- MyDMD.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
- MyDMD2.Text = "[f1][y7]START AS[f3][y16]PADAWAN?"
- Case 3:
- RewardSHOTS = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSAVER2 = FALSE: RewardJEDI2 = FALSE
- MyDMD.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
- MyDMD2.Text = "[f1][y7]VADER AND RED SQUADRON[f3][y16]SHOTS ADVANCE + 2?"
- Case 4:
- RewardSAVER2 = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSHOTS = FALSE: RewardJEDI2 = FALSE
- MyDMD.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 10 SECONDS?"
- MyDMD2.Text = "[f1][y7]BALL SAVER TIME[f3][y16]ADD 10 SECONDS?"
- Case 5:
- RewardBALL = TRUE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSAVER2 = FALSE: RewardSHOTS = FALSE: RewardJEDI2 = FALSE
- MyDMD.Text = "[f1][y7]ADD ANOTHER[f3][y16]BALL?"
- MyDMD2.Text = "[f1][y7]ADD ANOTHER[f3][y16]BALL?"
- Case 6:
- RewardJEDI2 = TRUE: RewardBALL = FALSE: RewardJEDI = FALSE: RewardSAVER = FALSE: RewardSAVER2 = FALSE: RewardSHOTS = FALSE
- MyDMD.Text = "[f1][y7]START AS[f3][y16]JEDI KNIGHT?"
- MyDMD2.Text = "[f1][y7]START AS[f3][y16]JEDI KNIGHT?"
- RWD = 0
- End Select
- End If
- End Sub
- Sub RewardsTimer_Expired()
- RewardsTimer.Enabled = FALSE
- PointReward = FALSE
- StopMusic 1
- PlayMusic 6, "GameOver"
- nvTotalGamesPlayed = nvTotalGamesPlayed + 1
- PlayMe = 1
- EndOfGame()
- End Sub
- Sub EndOfGame()
- AllPlasOn(): TurnOnBackBoxLights()
- EndGame()
- DOFLinx_LightSaber_FireButton_Flash() 'DOFLinx_LightSaber_FireButton_Flash
- If (nvCredits = 0) Then
- DOFLinx_NoCoins_StartOff() 'DOFLinx No Coins, Start Button Off
- MyDMD.FlushQueue
- MyDMD.QueueText "[edge3][f4][yc]GAME OVER", deNone, 2500, FALSE
- MyDMD.QueueText "[edge3][f4][yc] ", deNone, 500, FALSE
- MyDMD.QueueText "[edge3][f4][yc]STAR WARS", deWipeOut, 2000, FALSE
- MyDMD.QueueText "[edge3][f1][y7]CREATED BY[f2][y17]SLAMT1LT", deNone, 2500, FALSE
- MyDMD.QueueText "[edge3][f1][y7]EPIC SPACE BATTLES BY[f2][y17]TERRYRED", deNone, 2500, FALSE
- MyDMD.QueueText "[edge3][f1][y7]OPTIMIZED FOR[f2][y17]B.A.M.", deFlip, 2000, FALSE
- MyDMD.QueueText "[edge3][f1][y7]DOFLinx MX Mod 1.1 by[f2][y17]TerryRed", deFlip, 2000, FALSE
- MyDMD.QueueText "[edge3][b][f4][yc]INSERT COIN[/b]", deWipeOut, 5000, FALSE
- MyDMD.QueueText "[edge3][f1][y7]TOP PILOT SCORE[f2][y17]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollRight, 3000, FALSE
- MyDMD.QueueText "[edge3][f1][y7]2ND PILOT SCORE[f2][y17]" & left(nvHighScore2Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollRight, 2000, FALSE
- MyDMD.QueueText "[edge3][f1][y7]3RD PILOT SCORE[f2][y17]" & left(nvHighScore3Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollRight, 2000, FALSE
- MyDMD.QueueText "[edge3][f1][y7]LAST PILOT SCORE[f2][y17]" & FormatNumber(nvScore(CP), 0, -1, 0, -1), deScrollUp, 3500, FALSE
- MyDMD.QueueText "[edge3][f4][yc]GAMES PLAYED = " & nvTotalGamesPlayed, deNone, 2500, FALSE
- Else
- MyDMD.FlushQueue
- MyDMD.QueueText "[edge3][f4][yc]GAME OVER", deWipeDown, 2500, FALSE
- MyDMD.QueueText "[f2][y7][xc]CREDIT " & nvCredits & "[f1][y17][xc][b]PRESS START", deNone, 3000, FALSE
- MyDMD.QueueText "[edge3][f1][y7]TOP PILOT SCORE[f2][y17]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollRight, 3000, FALSE
- MyDMD.QueueText "[edge3][f1][y7]2ND BEST SCORE[f2][y17]" & left(nvHighScore2Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollRight, 2000, FALSE
- MyDMD.QueueText "[edge3][f1][y7]3RD BEST SCORE[f2][y17]" & left(nvHighScore3Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollRight, 2000, FALSE
- MyDMD.QueueText "[edge3][f1][y7]LAST PILOT SCORE[f2][y17]" & FormatNumber(nvScore(CP), 0, -1, 0, -1), deScrollUp, 3500, FALSE
- MyDMD.QueueText "[edge3][f4][yc]GAMES PLAYED = " & nvTotalGamesPlayed, deNone, 2500, FALSE
- End If
- If (nvCredits = 0) Then
- DOFLinx_NoCoins_StartOff() 'DOFLinx No Coins, Start Button Off
- MyDMD2.FlushQueue
- MyDMD2.QueueText "[edge3][f4][yc]GAME OVER", deNone, 2500, FALSE
- MyDMD2.QueueText "[edge3][f4][yc] ", deNone, 500, FALSE
- MyDMD2.QueueText "[edge3][f4][yc]STAR WARS", deWipeOut, 2000, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]CREATED BY[f2][y17]SLAMT1LT", deNone, 2500, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]EPIC SPACE BATTLES BY[f2][y17]TERRYRED", deNone, 2500, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]OPTIMIZED FOR[f2][y17]B.A.M.", deFlip, 2000, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]DOFLinx MX Mod 1.1 by[f2][y17]TerryRed", deFlip, 2000, FALSE
- MyDMD2.QueueText "[edge3][b][f4][yc]INSERT COIN[/b]", deWipeOut, 5000, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]TOP PILOT SCORE[f2][y17]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollRight, 3000, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]2ND BEST SCORE[f2][y17]" & left(nvHighScore2Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollRight, 2000, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]3RD BEST SCORE[f2][y17]" & left(nvHighScore3Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollRight, 2000, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]LAST PILOT SCORE[f2][y17]" & FormatNumber(nvScore(CP), 0, -1, 0, -1), deScrollUp, 3500, FALSE
- MyDMD2.QueueText "[edge3][f4][yc]GAMES PLAYED = " & nvTotalGamesPlayed, deNone, 2500, FALSE
- Else
- MyDMD2.FlushQueue
- DOFLinx_CoinsIn_StartFlash() 'DOFLinx Coins In, Start Button Flashing
- MyDMD2.QueueText "[edge3][f4][yc]GAME OVER", deWipeDown, 2500, FALSE
- MyDMD2.QueueText "[f2][y7][xc]CREDIT " & nvCredits & "[f1][y17][xc][b]PRESS START", deNone, 3000, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]TOP PILOT SCORE[f2][y17]" & left(nvHighScore1Name,3) & " - " & FormatNumber(nvHighScore1, 0, -1, 0, -1), deScrollRight, 3000, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]2ND PILOT SCORE[f2][y17]" & left(nvHighScore2Name,3) & " - " & FormatNumber(nvHighScore2, 0, -1, 0, -1), deScrollRight, 2000, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]3RD PILOT SCORE[f2][y17]" & left(nvHighScore3Name,3) & " - " & FormatNumber(nvHighScore3, 0, -1, 0, -1), deScrollRight, 2000, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]LAST PILOT SCORE[f2][y17]" & FormatNumber(nvScore(CP), 0, -1, 0, -1), deScrollUp, 3500, FALSE
- MyDMD2.QueueText "[edge3][f4][yc]GAMES PLAYED = " & nvTotalGamesPlayed, deNone, 2500, FALSE
- End If
- TimeAttack = FALSE
- If (SpinMe = 0) Then DSToy.RotateXZ -50, 325
- If (SpinMe = 1) Then DSToy.RotateXZ 50, 325
- DSSpin.Enabled = FALSE
- ' Luke lands the X-Wing, gets out, takes a leak and has a celebration drinkiepoo.
- 'XMove = 4:
- XWingMove_Expired()
- LightPadawan.State = BulbOff
- LightKnight.State = BulbOff
- LightMaster.State = BulbOff
- LightJoda.State = BulbOff
- SoloBulb1.State = BulbOff
- SoloBulb2.State = BulbOff
- SoloBulb3.State = BulbOff
- SoloBulb4.State = BulbOff
- BulbBottom.State = BulbOff
- BulbMiddle.State = BulbOff
- BulbTop.State = BulbOff
- BGReflect.Render = FALSE
- CheckRightOutLights()
- CheckLeftOutLights()
- ' ensure that the flippers are down
- LeftFlipper.SolenoidOff
- DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
- RightFlipper.SolenoidOff
- DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
- SoloBulb1.State = BulbOff: SoloBulb2.State = BulbOff: SoloBulb3.State = BulbOff: SoloBulb4.State = BulbOff
- ' reset the drop targets
- ResetDropTargets()
- DiverterGuide.Collidable = FALSE
- DiverterSurface.Collidable = FALSE
- RampDiverter.SolenoidOff
- RampDiverter2.SolenoidOff
- ' turn off any game music playing and start attract music
- EffectMusic 1, FadeOutAndStop, 0, 100
- PlayMusic 3, "Music_Disco", TRUE, 0.7, 1600
- WakeUpTimer.Set TRUE, 4900
- ' ensure the game over overlay is display the 'intro' graphic
- MovieOverlay.UpdateInterval = 80:MovieOverlay.Frame 1, 16
- HUDOverlay.UpdateInterval = 80: HUDOverlay.Frame 1, 16
- End Sub
- Sub WakeUpTimer_Expired()
- VaderAnimation 35
- WakeUpTimer.Enabled = FALSE
- SetAllLightsForAttractMode()
- If (BGArt = 0) Then BackBox.StopPlay: OverlayBG.Frame 1
- R2HeadBulb.FlashForMs 800, 100, BulbOff
- BackOverlay.FadeOut
- AllPlasOn(): TurnOnBackBoxLights()
- LightSeqPF.StopPlay
- MovieOverlay.UpdateInterval = 67:MovieOverlay.Frame 17, 117
- HUDOverlay.UpdateInterval = 67: HUDOverlay.Frame 17, 117
- End Sub
- ' only when the game is first powered on...
- Sub AttractDelayTimer_Expired()
- AttractDelayTimer.Enabled = FALSE
- PlayMusic 1, "vo_R2WakeUp"
- PlayMusic 3, "Music_Disco", TRUE, 0.7, 2300
- WakeUpTimer.Set TRUE, 2300
- R2Move = 0: R2Animate = 1: MoveR2.Set TRUE, 2300
- End Sub
- ' **********************************************
- ' ** **
- ' ** DRAIN **
- ' ** **
- ' **********************************************
- Sub Drain_Hit()
- Drain.DestroyBall: DeleteTrackedBall(Drain)
- BallsOnPlayfield = BallsOnPlayfield - 1'
- 'PlaySound "fx_Drain"
- DOFLinx_Drain_Hit() 'DOFLinx - Drain Hit
- LaneWall.Dropped = FALSE
- BallSaverTally(CP) = 0
- If (bBallSaverActive = FALSE) and (TimeAttack = FALSE) Then CountDown.FadeOut
- DeathStarTimer2.Enabled = FALSE
- TenSecondTimer.Enabled = FALSE
- ' Time Attack returns the ball back to play...but as a penalty some features are reset...
- If (TimeAttack = TRUE) and (fpTilted = FALSE) and (bMultiballMode = FALSE) Then
- If (FailTimer.Enabled = FALSE) Then
- AutoFire = TRUE
- PlungerKicker.CreateBall: AddTrackedBall(PlungerKicker)
- BallsOnPlayfield = BallsOnPlayfield + 1
- PlungerKicker.SolenoidPulse
- ' reset progress, we're just interested in the Death Star...
- Light50000Points.State = BulbOff
- LightExtraBall.State = BulbOff
- LightSpecial.State = BulbOff
- LightSpecialL.State = BulbOff
- LightSpecialR.State = BulbOff
- LightDock.State = BulbOff
- ResetVADER()
- SoloTally(CP) = 0
- RampTally(CP) = 0
- SoloBulb1.State = BulbOff
- SoloBulb2.State = BulbOff
- SoloBulb3.State = BulbOff
- SoloBulb4.State = BulbOff
- AttackAwardLevel = 0
- End If
- Exit Sub
- End If
- If (JackpotTimer.Enabled = TRUE) Then Exit Sub ' death star has been destroyed...ignore the other drained ball...
- If (fpGameInPlay = TRUE) and (fpTilted = FALSE) Then
- If (bBallSaverActive = TRUE) Then
- BallSaver()
- Else
- If (BallsOnPlayfield = 1) Then ' end of multiball (duel)...
- If (VictoryLap = TRUE) Then
- VictoryLap = FALSE
- StopMusic 8
- PlayMusic 1, "Music_Mode1", TRUE, Vol
- CameraView_Default
- ResetTableForNewRound()
- PlaySound "fx_R2Sound5"
- DMDBusy = TRUE: DMDTimer.Set TRUE, 2500
- MyDMD.FlushQueue: MyDMD2.FlushQueue
- MyDMD.QueueText "[edge3][f4][xc][yc]VICTORY LAP TOTAL", deNone, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]VICTORY LAP TOTAL", deNone, 800, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][b]" & FormatNumber(VictoryTotal, 0, -1, 0, -1), deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]" & FormatNumber(VictoryTotal, 0, -1, 0, -1), deNone, 1500, TRUE
- Exit Sub
- End If
- If (bMultiBallMode = TRUE) and (JackpotTimer.Enabled = FALSE) Then
- bMultiBallMode = FALSE
- LightJackpot.State = BulbOff
- EffectMusic 1, FadeOutAndStop, 0, 100
- MovieOverlay.FadeOut()
- MyDMD.Text = "[edge3][f4][xc][yc]YOU FAILED"
- MyDMD2.Text = "[edge3][f4][xc][yc]YOU FAILED"
- ' change the camera angle...
- CameraView_LookAtBackBox
- TurnOffBackBoxLights()
- BackBoxTimer.Set TRUE, 7000
- FailTimer.Set TRUE, 12000
- BackOverlay.FadeIn()
- BackOverlay.UpdateInterval = 49
- BackOverlay.Frame 109, 248
- PlaySound "fx_Failed2", 0.7
- PlaySound "vo_DSFiring"
- DOFLinx_Planet_BlowUp() 'DOFLinx_Planet_BlowUp
- fpTilted = TRUE
- LeftFlipper.SolenoidOff: TopFlipper.SolenoidOff
- DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
- RightFlipper.SolenoidOff
- DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
- DiverterGuide.Collidable = FALSE
- DiverterSurface.Collidable = FALSE
- RampDiverter.SolenoidOff
- RampDiverter2.SolenoidOff
- DOFLinx_Drained() 'DOFLinx - Drained
- If (bBallInPlungerLane = TRUE) Then
- Plunger.SolenoidPulse
- DOFLinx_AutoPlunger() 'DOFLinx - AutoPlunger
- End If
- TATimer.Enabled = FALSE
- Else
- bMultiBallMode = FALSE
- bPadawanMode(CP) = FALSE
- bKnightMode(CP) = FALSE
- bMasterMode(CP) = FALSE
- bYodaMode(CP) = FALSE
- LightJoda.State = BulbOff
- LightPadawan.State = BulbOff
- LightMaster.State = BulbOff
- LightKnight.State = BulbOff
- LightJackpot.FlashForMs 5000, 100, BulbOff
- LightShipLeft.State = BulbOff
- LightShipMiddle.State = BulbOff
- LightShipRight.State = BulbOff
- PlayMusic 1, "Music_Mode1", TRUE, Vol
- CheckRightOutLights()
- CheckLeftOutLights()
- End If
- TATimer.Enabled = FALSE
- End If
- If (BallsOnPlayfield = 0) Then
- DOFLinx_Drained() 'DOFLinx - Drained
- MovieOverlay.UpdateInterval = 70: MovieOverlay.Frame 563, 577
- HUDOverLay.UpdateInterval = 70: HUDOverLay.Frame 563, 577
- bMultiBallMode = FALSE
- If (TIETally(CP) =>1) Then
- BonusDelayTime = 100
- MyDMD.QueueText "[edge3][yc][f3]TIE DESTROYED " & TIETally(CP) & "[f3]", deScrollDown, 2000, TRUE
- MyDMD2.QueueText "[edge3][yc][f3]TIE DESTROYED " & TIETally(CP) & "[f3]", deScrollDown, 2000, TRUE
- End If
- MovieTimer.Enabled = FALSE
- AllPlasOff(): TurnOffBackBoxLights()
- ' vader will only make a comment if the Bonus Multiplier is set at 1. Basicially, you're crap...
- If (BonusMultiplier(CP) = 1) and (FailTimer.Enabled = FALSE) and (VictoryLap = FALSE) Then
- VaderDrain()
- End If
- EOBDelay.Set TRUE, 1800
- VaderAnimation(4)
- End If
- End If
- End If
- End Sub
- ' *** MAJOR CRASH BUG AFTER FAIL AND RETURNING TO ATTRACT MODE ***
- Sub FailTimer_Expired()
- FailTimer.Enabled = FALSE
- fpTilted = FALSE
- CameraView_Default
- If (TimeAttack = FALSE) Then
- PlayMusic 1, "Music_Mode1", TRUE, Vol
- CheckRightOutLights()
- CheckLeftOutLights()
- PlaySound "fx_R2Sound13"
- ResetTableForNewRound()
- PlungerKicker.CreateBall: PlungerKicker.SolenoidPulse
- DOFLinx_PlungerKicker() 'DOFLinx - PlungerKicker
- BallsOnPlayfield = BallsOnPlayfield + 1
- BallsOnPlayfield = 1
- AutoFire = TRUE
- Else
- DelayGameEnd.Set TRUE, 100
- End If
- End Sub
- Sub CheckRightOutLights()
- If (RightOutBulb1.State <> BulbOff) Then
- TurnOffRightOutLights()
- End If
- End Sub
- Sub CheckLeftOutLights()
- If (LeftOutBulb1.State <> BulbOff) Then
- TurnOffLeftOutLights()
- End If
- End Sub
- ' no Bonus X? Vader will mock you...
- Sub VaderDrain()
- PlaySound "fx_VaderBreathShort", 0.7
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3700
- Select Case RandomNumber(5)
- Case 1: PlaySound "vo_Faith": MusicFade(3200): VaderScoreLight.FlashForMs 3200, 3200, BulbOff
- Case 2: PlaySound "vo_Weak": MusicFade(2800): VaderScoreLight.FlashForMs 2800, 2800, BulbOff
- Case 3: PlaySound "vo_NotJedi": MusicFade(2900): VaderScoreLight.FlashForMs 2900, 2900, BulbOff
- Case 4: PlaySound "vo_Underestimate": MusicFade(3200): VaderScoreLight.FlashForMs 3200, 3200, BulbOff
- Case 5: PlaySound "vo_Unfairly": MusicFade(3200): VaderScoreLight.FlashForMs 3200, 3200, BulbOff
- End Select
- End Sub
- ' A ball is pressing down the trigger in the shooters lane
- Sub TriggerPlungerLane_UnHit()
- DOFLinx_Launch_Button_Off() 'DOFLinx - Launch Button Off
- If (fpTilted = FALSE) Then
- SabreTimer.Set TRUE, 1000
- LSROn()
- AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 1100
- LightSeqPF.UpdateInterval = 10
- LightSeqPF.Play SeqUpOn, 20
- LaneWall.Dropped = TRUE
- End If
- LaunchBulb.State = BulbOff
- bBallInPlungerLane = FALSE
- If (SSWin = FALSE) Then MovieOverlay.Frame 303: HUDOverlay.Frame 303: DOFLinx_Red_Lightsaber_Ball_Launch() 'DOFLinx_Red_Lightsaber_Ball_Launch
- set LastSwitchHit = TriggerPlungerLane
- End Sub
- Sub PlungerKicker_Hit()
- PlungerKicker.SolenoidPulse
- DOFLinx_PlungerKicker() 'DOFLinx - PlungerKicker
- End Sub
- Sub TriggerPlungerLane_Hit()
- bBallInPlungerLane = TRUE
- ForceDivert.Collidable = FALSE
- LaunchBulb.State = BulbBlink
- DOFLinx_Launch_Button_Flashing() 'DOFLinx - Launch Button Flashing
- If (AutoFire = TRUE) Then
- Plunger.SolenoidPulse
- DOFLinx_AutoPlunger() 'DOFLinx - AutoPlunger
- PlaySound "RightBlast"
- End If
- If (LastSwitchHit.Name = "LuckyTrigger") Then
- PlaySound "BeepRight"
- Else
- If (bBallSaverActive = FALSE) and (bMultiBallMode = FALSE) and (TimeAttack = FALSE) Then
- bBallSaverActive = TRUE
- BallSaverTimer.Enabled = FALSE
- If (LukePerk = TRUE) Then
- BSTime = BSTime + 4000
- End If
- BallSaverTimer.Set TRUE, BSTime
- Countdown.FadeIn: Countdown.Frame 32
- End If
- End If
- End Sub
- Sub Trigger42_Hit()
- If (LightJackpot.State = BulbOn) Then
- PlaySound "vo_LockedOn"
- DiverterGuide.Collidable = FALSE
- DiverterSurface.Collidable = FALSE
- RampDiverter.SolenoidOff
- RampDiverter2.SolenoidOff
- End If
- End Sub
- Sub LuckyTrigger_Hit()
- If (LastSwitchHit.Name = "LuckyTrigger") Then Exit Sub
- PlaySound "fx_Droid"
- TurnOffRightOutLights()
- Set LastSwitchHit = LuckyTrigger
- End Sub
- Sub BallSaverTimer_Expired()
- BallSaverTimer.Enabled = FALSE
- bBallSaverActive = FALSE
- If (bMultiBallMode = FALSE) Then Countdown.FadeOut
- End Sub
- ' *********************************************************************
- ' ** **
- ' ** WHAT GOOD IS A REWARD IF YOU AIN'T AROUND TO SPEND IT **
- ' ** **
- ' *********************************************************************
- ' hit things and you get some points, hit lots of things and get a highscore.
- ' during Time Attack the score is disabled and replaced with a countdown timer.
- Sub AddScore(Points)
- If (fpGameInPlay = FALSE) Then
- If (nvCredits >0) Then
- MyDMD.Text = "[f1][y7]GAME OVER[f3][y16][b]PRESS START"
- MyDMD2.Text = "[f1][y7]GAME OVER[f3][y16][b]PRESS START"
- Else
- MyDMD.Text = "[f1][y7]GAME OVER[f3][y16][b]INSERT COIN"
- MyDMD2.Text = "[f1][y7]GAME OVER[f3][y16][b]INSERT COIN"
- End If
- Exit Sub
- End If
- If (fpTilted = FALSE) Then
- ' no points in Time Attack, so stop fannying about and destroy the Death Star!...
- If (TimeAttack = FALSE) Then nvScore(CP) = nvScore(CP) + (Points*ScoreX)
- Select Case (CP)
- Case 1: Pilot1 = nvScore(CP)
- Case 2: Pilot2 = nvScore(CP)
- Case 3: Pilot3 = nvScore(CP)
- Case 4: Pilot4 = nvScore(CP)
- End Select
- If (DMDBusy = TRUE) Then Exit Sub
- If (FailTimer.Enabled = TRUE) Then Exit Sub
- If (SSWin = FALSE) Then
- If (PlayersPlayingGame > 1) Then
- MyDMD.Text = "[f3][y7][xc]" & FormatNumber(nvScore(CP), 0, -1, 0, -1) & "[f1][x2][y17]PILOT: " & CP & "[x90][y17]BALL: " & BallsRemaining(CP)
- MyDMD2.Text = "[f3][y7][xc]" & FormatNumber(nvScore(CP), 0, -1, 0, -1) & "[f1][x2][y17]PILOT: " & CP & "[x90][y17]BALL: " & BallsRemaining(CP)
- Else
- If (TimeAttack = TRUE) Then
- If (TATime < 60) Then
- MyDMD.Text = "[f1][y7]TIME ATTACK[f3][y16]TIME: " & TATime & " SECONDS"
- MyDMD2.Text = "[f1][y7]TIME ATTACK[f3][y16]TIME: " & TATime & " SECONDS"
- Else
- ShowTime()
- MyDMD.Text = "[f1][y7]TIME ATTACK[f3][y16]" & ShowMin & " MIN: " & ShowSec & " SECS"
- MyDMD2.Text = "[f1][y7]TIME ATTACK[f3][y16]" & ShowMin & " MIN: " & ShowSec & " SECS"
- End If
- Else
- MyDMD.Text = "[edge3][f4][yc][xc]" & FormatNumber(nvScore(CP), 0, -1, 0, -1)
- MyDMD2.Text = "[edge3][f4][yc][xc]" & FormatNumber(nvScore(CP), 0, -1, 0, -1)
- End If
- End If
- End If
- End If
- End Sub
- Dim ShowMin,ShowSec
- ' convert the time to minutes and seconds...
- Sub ShowTime()
- If (TATime < 60) Then ShowMin = 0: Exit Sub ' 1 min
- If (TATime => 60) and (TATime < 120) Then ' 1-2 min
- ShowMin = 1: ShowSec = TATime-60
- Exit Sub
- End If
- If (TATime =>120) and (TATime < 180) Then ' 2-3 min
- ShowMin = 2: ShowSec = TATime-120
- Exit Sub
- End If
- If (TATime =>180) and (TATime < 240) Then ' 3-4 min
- ShowMin = 3: ShowSec = TATime-180
- Exit Sub
- End If
- If (TATime =>240) and (TATime < 300) Then ' 4-5 min
- ShowMin = 4: ShowSec = TATime-240
- Exit Sub
- End If
- If (TATime =>300) and (TATime < 350) Then ' over 5 min
- ShowMin = 5: ShowSec = TATime-300
- Exit Sub
- End If
- End Sub
- Sub DMDTimer_Expired()
- DMDTimer.Enabled = FALSE
- DMDBusy = FALSE
- MyDMD.UpdateInterval = 7: MyDMD2.UpdateInterval = 7
- AddScore(0)
- End Sub
- Sub AddJackpot(points)
- If (fpTilted = False) Then
- If (bMultiBallMode = TRUE) Then
- nvJackpot = nvJackpot + points
- End if
- End if
- End Sub
- Sub IncrementBonusMultiplier()
- Dim NewBonusLevel
- If (BonusMultiplier(CP) < 6) Then
- NewBonusLevel = BonusMultiplier(CP) + 1
- SetBonusMultiplier(NewBonusLevel)
- Else
- AddScore(50000)
- DMDBusy = TRUE: DMDTimer.Set TRUE, 1600
- MyDMD.QueueText "[edge3][f4][yc]BONUS MAXED", deNone, 800, FALSE, "fx_R2Sound23"
- MyDMD2.QueueText "[edge3][f4][yc]BONUS MAXED", deNone, 800, FALSE
- MyDMD.QueueText "[edge3][f4][yc]50,000", deNone, 800, TRUE
- MyDMD2.QueueText "[edge3][f4][yc]50,000", deNone, 800, TRUE
- LightBonus2x.FlashForMs 500, 120, BulbOn
- LightBonus3x.FlashForMs 500, 120, BulbOn
- LightBonus4x.FlashForMs 500, 120, BulbOn
- LightBonus5x.FlashForMs 500, 120, BulbOn
- LightBonus6x.FlashForMs 500, 120, BulbOn
- End if
- End Sub
- Sub SetBonusMultiplier(Level)
- BonusMultiplier(CP) = Level
- If (BonusMultiplier(CP) = 1) Then
- LightBonus2x.State = BulbOff
- LightBonus3x.State = BulbOff
- LightBonus4x.State = BulbOff
- LightBonus5x.State = BulbOff
- LightBonus6x.State = BulbOff
- Else
- DMDBusy = TRUE: DMDTimer.Set TRUE, 1500
- If (BonusMultiplier(CP) = 2) Then
- LightBonus2x.FlashForMs 1000, 100, BulbOn
- PlaySound "Multiplier Award 2"
- MyDMD.QueueText "[edge3][f1][y7]CHEWBACCA[f2][y17]BONUS X 2", deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f1][y7]CHEWBACCA[f2][y17]BONUS X 2", deNone, 1500, TRUE
- End If
- If (BonusMultiplier(CP) = 3) Then
- LightBonus3x.FlashForMs 1000, 100, BulbOn
- If (QuoteBusy = FALSE) and (TimeAttack = FALSE) Then
- If (LightLeftLock.State = BulbBlink) Then ' quote duing final mission....
- PlaySound "fx_R2Sound11"
- Else
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1000
- PlaySound "vo_SaveSkins"
- End If
- End If
- MyDMD.QueueText "[edge3][f1][y7]PRINCESS LEIA[f2][y17]BONUS X 3", deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f1][y7]PRINCESS LEIA[f2][y17]BONUS X 3", deNone, 1500, TRUE
- End If
- If (BonusMultiplier(CP) = 4) Then
- LightBonus4x.FlashForMs 1000, 100, BulbOn
- If (QuoteBusy = FALSE) and (TimeAttack = FALSE) Then
- If (LightLeftLock.State = BulbBlink) Then ' quote duing final mission....
- PlaySound "fx_R2Sound15"
- Else
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
- PlaySound "Multiplier Award 4"
- End If
- End If
- MyDMD.QueueText "[edge3][f1][y7]OBI WAN KENOBI[f2][y17]BONUS X 4", deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f1][y7]OBI WAN KENOBI[f2][y17]BONUS X 4", deNone, 1500, TRUE
- End If
- If (BonusMultiplier(CP) = 5) Then
- LightBonus5x.FlashForMs 1000, 100, BulbOn
- If (QuoteBusy = FALSE) and (TimeAttack = FALSE) Then
- If (LightLeftLock.State = BulbBlink) Then ' quote duing final mission....
- PlaySound "fx_R2Sound22"
- Else
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
- PlaySound "Multiplier Award 5"
- End If
- End If
- MyDMD.QueueText "[edge3][f1][y7]HAN SOLO[f2][y17]BONUS X 5", deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f1][y7]HAN SOLO[f2][y17]BONUS X 5", deNone, 1500, TRUE
- End If
- If (BonusMultiplier(CP) = 6) Then
- LightBonus6x.FlashForMs 1000, 100, BulbOn
- If (QuoteBusy = FALSE) and (TimeAttack = FALSE) Then
- If (LightLeftLock.State = BulbBlink) Then ' quote duing final mission....
- PlaySound "fx_R2Sound11"
- Else
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
- PlaySound "Multiplier Award 6"
- End If
- End If
- If (TimeAttack = TRUE) Then
- DMDTimer.Set TRUE, 2000
- MyDMD.QueueText "[edge3][f1][y7]LUKE SKYWALKER[f2][y17]BONUS X 6", deNone, 1000, FALSE
- MyDMD2.QueueText "[edge3][f1][y7]LUKE SKYWALKER[f2][y17]BONUS X 6", deNone, 1000, FALSE
- MyDMD.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
- TATime = TATime + 20
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 100: NewMovieHUD.UpdateInterval = 100
- NewMovie.Frame 357,358,357: NewMovieHUD.Frame 357,358,357
- MovieTimer.Set TRUE, 1000
- Else
- MyDMD.QueueText "[edge3][f1][y7]LUKE SKYWALKER[f2][y17]BONUS X 6", deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f1][y7]LUKE SKYWALKER[f2][y17]BONUS X 6", deNone, 1500, TRUE
- End If
- End If
- End If
- End Sub
- Sub AwardSpecial()
- ' in Star Wars the special is 1,138,000 points
- AddScore(1138000)
- End Sub
- Sub AwardExtraBall()
- ExtraBallsAwards(CP) = ExtraBallsAwards(CP) + 1
- bExtraBallWonThisBall = TRUE
- If (LightShootAgain.State = BulbOff) Then
- LightShootAgain.State = BulbOn
- End if
- End Sub
- ' collect the bonus if full...
- Sub CollectEmpireBonus()
- If (EmpireBonus =>200) Then
- HologramR2D2.Frame 7: R2D2Fade.Set TRUE, 3000
- AddScore(EmpireBonus*1000*BonusMultiplier(CP))
- EmpireBonus = 0
- LightAlien1.State = BulbOff
- LightAlien2.State = BulbOff
- LightAlien3.State = BulbOff
- LightAlien4.State = BulbOff
- LightAlien5.State = BulbOff
- LightAlien6.State = BulbOff
- LightAlien7.State = BulbOff
- LightAlien8.State = BulbOff
- LightAlien9.State = BulbOff
- LightAlien10.State = BulbOff
- LightAlien20.State = BulbOff
- End If
- End Sub
- ' advanced for:
- ' out lanes, vader lane, vader targets, top rollover lanes, random bumper hit
- Sub IncrementEmpireBonus(Amount)
- If (TimeAttack = TRUE) Then Exit Sub
- Dim Value
- EmpireBonus = EmpireBonus + Amount
- If (EmpireBonus => 200) Then
- EmpireBonus = 200
- End If
- If (Amount => 0) Then
- 'PlaySound "Bonus Advance"
- End If
- ' set the lights to match the value specified (0 - 39)
- LightAlien1.State = BulbOff
- LightAlien2.State = BulbOff
- LightAlien3.State = BulbOff
- LightAlien4.State = BulbOff
- LightAlien5.State = BulbOff
- LightAlien6.State = BulbOff
- LightAlien7.State = BulbOff
- LightAlien8.State = BulbOff
- LightAlien9.State = BulbOff
- LightAlien10.State = BulbOff
- LightAlien20.State = BulbOff
- Value = EmpireBonus
- If (Value => 200) Then
- Value = Value - 200
- LightAlien1.Set BulbBlink, "100000100000", 75
- LightAlien2.Set BulbBlink, "010000010000", 75
- LightAlien3.Set BulbBlink, "001000001000", 75
- LightAlien4.Set BulbBlink, "000100000100", 75
- LightAlien5.Set BulbBlink, "000010000010", 75
- LightAlien6.Set BulbBlink, "000001000001", 75
- LightAlien7.Set BulbBlink, "000000100000", 75
- LightAlien8.Set BulbBlink, "100000010000", 75
- LightAlien9.Set BulbBlink, "010000001000", 75
- LightAlien10.Set BulbBlink, "001000000100", 75
- LightAlien20.Set BulbBlink, "000100000010", 75
- End If
- If (Value >= 100) Then
- LightAlien10.State = BulbOn
- Value = Value - 100
- End If
- if (Value >= 90) Then LightAlien9.State = BulbOn End If
- if (Value >= 80) Then LightAlien8.State = BulbOn End If
- if (Value >= 70) Then LightAlien7.State = BulbOn End If
- if (Value >= 60) Then LightAlien6.State = BulbOn End If
- if (Value >= 50) Then LightAlien5.State = BulbOn End If
- if (Value >= 40) Then LightAlien4.State = BulbOn End If
- if (Value >= 30) Then LightAlien3.State = BulbOn End If
- if (Value >= 20) Then LightAlien2.State = BulbOn End If
- if (Value >= 10) Then LightAlien1.State = BulbOn End If
- End Sub
- ' collect the bonus if full...
- Sub CollectRebellionBonus()
- If (RebellionBonus =>200) Then
- HologramR2D2.Frame 8: R2D2Fade.Set TRUE, 3000
- AddScore(RebellionBonus*1000*BonusMultiplier(CP))
- RebellionBonus = 0
- LightDefend1.State = BulbOff
- LightDefend2.State = BulbOff
- LightDefend3.State = BulbOff
- LightDefend4.State = BulbOff
- LightDefend5.State = BulbOff
- LightDefend6.State = BulbOff
- LightDefend7.State = BulbOff
- LightDefend8.State = BulbOff
- LightDefend9.State = BulbOff
- LightDefend10.State = BulbOff
- LightDefend20.State = BulbOff
- End If
- End Sub
- ' advanced for:
- ' in lanes, HanSolo lane, TIE fighter drop targets, trench run lane, random bumper hit
- Sub IncrementRebellionBonus(Amount)
- If (TimeAttack = TRUE) Then Exit Sub
- Dim Value
- RebellionBonus = RebellionBonus + Amount
- If (RebellionBonus > 200) Then
- RebellionBonus = 200
- End If
- If (Amount >= 0) Then
- 'PlaySound "Bonus Advance"
- End If
- LightDefend1.State = BulbOff
- LightDefend2.State = BulbOff
- LightDefend3.State = BulbOff
- LightDefend4.State = BulbOff
- LightDefend5.State = BulbOff
- LightDefend6.State = BulbOff
- LightDefend7.State = BulbOff
- LightDefend8.State = BulbOff
- LightDefend9.State = BulbOff
- LightDefend10.State = BulbOff
- LightDefend20.State = BulbOff
- Value = RebellionBonus
- If (Value >= 200) Then
- Value = Value - 200
- LightDefend1.Set BulbBlink, "100000100000", 75
- LightDefend2.Set BulbBlink, "010000010000", 75
- LightDefend3.Set BulbBlink, "001000001000", 75
- LightDefend4.Set BulbBlink, "000100000100", 75
- LightDefend5.Set BulbBlink, "000010000010", 75
- LightDefend6.Set BulbBlink, "000001000001", 75
- LightDefend7.Set BulbBlink, "100000100000", 75
- LightDefend8.Set BulbBlink, "010000010000", 75
- LightDefend9.Set BulbBlink, "001000001000", 75
- LightDefend10.Set BulbBlink, "000100000100", 75
- LightDefend20.Set BulbBlink, "000010000010", 75
- End If
- If (Value >= 100) Then
- LightDefend10.State = BulbOn
- Value = Value - 100
- End If
- if (Value >= 90) Then LightDefend9.State = BulbOn End If
- if (Value >= 80) Then LightDefend8.State = BulbOn End If
- if (Value >= 70) Then LightDefend7.State = BulbOn End If
- if (Value >= 60) Then LightDefend6.State = BulbOn End If
- if (Value >= 50) Then LightDefend5.State = BulbOn End If
- if (Value >= 40) Then LightDefend4.State = BulbOn End If
- if (Value >= 30) Then LightDefend3.State = BulbOn End If
- if (Value >= 20) Then LightDefend2.State = BulbOn End If
- if (Value >= 10) Then LightDefend1.State = BulbOn End If
- End Sub
- ' *********************************
- ' ** **
- ' ** SlingShots **
- ' ** **
- ' *********************************
- Sub LeftSlingshotRubber_Hit()
- If (fpTilted = FALSE) Then
- If (bPadawanMode(CP) = True) Then
- AddScore(500)
- Else
- AddScore(250)
- End If
- If R2D2.Dropped Then
- R2D2.SolenoidPulse
- DOFLinx_R2D2_GearMotor_Short() 'DOFLinx_R2D2_GearMotor Short
- Else
- R2D2.PopDown
- DOFLinx_R2D2_GearMotor_Long() 'DOFLinx_R2D2_GearMotor Long
- End If
- LSFlash.FlashForMs 250, 50, BulbOff
- FlasherRL1.FlashForMs 250, 50, BulbOn
- LeftSlingShotBulb1.FlashForMs 250, 50, BulbOn
- LeftSlingShotBulb2.FlashForMs 250, 50, BulbOn
- Bulb5.FlashForMs 250, 50, BulbOn
- Bulb6.FlashForMs 250, 50, BulbOn
- DOFLinx_Left_Slingshot_Hit() 'DOFLinx - Left Slingshot Hit
- ' PlaySound "fx_SlingHitL"
- PlaySound "fx_SmallBlaster"
- If (VictoryLap = TRUE) Then Exit Sub
- MovieOverlay.UpdateInterval = 80: MovieOverlay.frame 200, 201
- HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 200, 201
- MovieTimer.Set TRUE, 1000
- End If
- End Sub
- Sub RightSlingshotRubber_Hit()
- If (fpTilted = FALSE) Then
- If (bPadawanMode(CP) = True) Then
- AddScore(500)
- Else
- AddScore(250)
- End If
- If R2D2.Dropped Then
- R2D2.SolenoidPulse
- DOFLinx_R2D2_GearMotor_Short() 'DOFLinx_R2D2_GearMotor Short
- Else
- R2D2.PopDown
- DOFLinx_R2D2_GearMotor_Long() 'DOFLinx_R2D2_GearMotor Long
- End If
- RSFlash.FlashForMs 250, 50, BulbOff
- FlasherRL2.FlashForMs 250, 50, BulbOn
- RightSlingShotBulb1.FlashForMs 250, 50, BulbOn
- RightSlingShotBulb2.FlashForMs 250, 50, BulbOn
- Bulb3.FlashForMs 250, 50, BulbOn
- Bulb4.FlashForMs 250, 50, BulbOn
- DOFLinx_Right_Slingshot_Hit() 'DOFLinx - Right Slingshot Hit
- ' PlaySound "fx_SlingHitR"
- PlaySound "fx_SmallBlaster"
- If (VictoryLap = TRUE) Then Exit Sub
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 198, 199
- HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 198, 199
- MovieTimer.Set TRUE, 1000
- End If
- End Sub
- Sub ClearLCD()
- MovieOverlay.Frame 990: HUDOverlay.Frame 990
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- End Sub
- ' *********************************
- ' ** **
- ' ** Rubber Leaf Switches **
- ' ** **
- ' *********************************
- Sub RubberLeft_Hit()
- DOFLinx_2ndLeft_Slingshot_Hit() 'DOFLinx - 2ndLeft Slingshot Hit
- If (VictoryLap = TRUE) Then Exit Sub
- If (fpTilted = FALSE) Then
- If (MovieTimer.Enabled = FALSE) Then
- Select Case RandomNumber(4)
- Case 1:
- MovieOverlay.UpdateInterval = 66: HUDOverLay.UpdateInterval = 66
- MovieOverlay.Frame 429, 443: HUDOverlay.Frame 429, 443
- PlaySound "fx_XWingFlyBy"
- Case 2:
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- MovieOverlay.UpdateInterval = 66: HUDOverLay.UpdateInterval = 66
- MovieOverlay.Frame 963, 982: HUDOverlay.Frame 963, 982
- PlaySound "fx_XWingFlyBy"
- Case 3:
- MovieTimer.Set TRUE, 1300
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
- PlaySound "fx_TIEFlyby3"
- Case 4:
- MovieTimer.Set TRUE, 1000
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 467, 482
- HUDOverLay.UpdateInterval = 66: HUDOverLay.Frame 467, 482
- PlaySound "fx_TIEFlyby3"
- End Select
- End If
- End If
- set LastSwitchHit = RubberLeft
- End Sub
- Sub RubberFourBank_Hit()
- PlaySound "RubberHitLeft"
- If (VictoryLap = TRUE) Then Exit Sub
- If (fpTilted = FALSE) Then
- PlaySound "fx_TIEFlyby3"
- BulbGI07.FlashForMs 300, 100, BulbOn
- BulbGI08.FlashForMs 300, 100, BulbOn
- Bulb39.FlashForMs 300, 100, BulbOn
- Bulb40.FlashForMs 300, 100, BulbOn
- End If
- set LastSwitchHit = RubberFourBank
- End Sub
- Sub RubberThreeBank_Hit()
- PlaySound "RubberHitCentre"
- If (VictoryLap = TRUE) Then Exit Sub
- If (fpTilted = FALSE) Then
- If (MovieTimer.Enabled = FALSE) Then
- PlaySound "fx_XWingFlyBy"
- BulbGI10.FlashForMs 300, 100, BulbOn
- Bulb7.FlashForMs 300, 100, BulbOn
- Select Case RandomNumber(2)
- Case 1:
- MovieOverlay.UpdateInterval = 66: HUDOverLay.UpdateInterval = 66
- MovieOverlay.Frame 429, 443: HUDOverlay.Frame 429, 443
- Case 2:
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- MovieOverlay.UpdateInterval = 66: HUDOverLay.UpdateInterval = 66
- MovieOverlay.Frame 963, 982: HUDOverlay.Frame 963, 982
- End Select
- End If
- End If
- set LastSwitchHit = RubberThreeBank
- End Sub
- Sub RubberRight_Hit()
- PlaySound "RubberHitRight"
- If (VictoryLap = TRUE) Then Exit Sub
- If (fpTilted = FALSE) Then
- If (MovieTimer.Enabled = FALSE) Then
- PlaySound "fx_XWingFlyBy"
- MovieOverlay.UpdateInterval = 66: HUDOverLay.UpdateInterval = 66
- MovieOverlay.Frame 429, 443: HUDOverlay.Frame 429, 443
- End If
- End If
- set LastSwitchHit = RubberRight
- End Sub
- Sub Guide3_hit()
- PlaySound "HitWallRight"
- End Sub
- Sub Guide12_hit()
- PlaySound "HitWallRight"
- End Sub
- Sub Guide11_hit()
- PlaySound "HitWallLeft"
- End Sub
- Sub Guide9_hit()
- PlaySound "HitWallLeft"
- End Sub
- ' *********************************
- ' ** **
- ' ** Inlane / Outlanes **
- ' ** **
- ' *********************************
- 'RebellionBonus - InOut Lanes
- Sub TriggerLeftInLane_Hit()
- If (VictoryLap = TRUE) Then Exit Sub
- If (fpTilted = FALSE) Then
- DOFLinx_TriggerLeftInLane_Hit() 'DOFLinx - Trigger Left In Lane Hit
- If (LightLeftInlane.State <> BulbOff) Then
- AddScore(5000)
- LightLeftInlane.FlashForMs 150, 75, BulbOn
- IncrementRebellionBonus(20)
- If (MovieTimer.Enabled = FALSE) Then
- If (bMultiballMode = FALSE) Then C3PO()
- Else
- BulbGI01.FlashForMs 300, 50, BulbOn
- BulbGI02.FlashForMs 300, 50, BulbOn
- Bulb16.FlashForMs 300, 50, BulbOn
- Bulb36.FlashForMs 300, 50, BulbOn
- PlaySound "fx_XWingBlasters"
- End If
- Else
- If (LastSwitchHit.Name = "TriggerLeftInLane") Then
- AddScore(2500)
- IncrementRebellionBonus(10)
- Else
- AddScore(2500)
- If (MovieTimer.Enabled = FALSE) Then
- If (bMultiballMode = FALSE) Then C3PO()
- Else
- PlaySound "fx_Beeps5": BulbBeeps.FlashForMs 1300, 75, BulbOff
- End If
- IncrementRebellionBonus(10)
- End If
- End If
- End If
- set LastSwitchHit = TriggerLeftInLane
- End Sub
- Sub TriggerRightInLane_Hit()
- If (VictoryLap = TRUE) Then Exit Sub
- If (fpTilted = FALSE) Then
- DOFLinx_TriggerRightInLane_Hit() 'DOFLinx - Trigger Right In Lane Hit
- If (LightRightInlane.State <> BulbOff) Then
- AddScore(5000): IncrementRebellionBonus(20)
- LightRightInlane.FlashForMs 150, 75, BulbOn
- If (MovieTimer.Enabled = FALSE) Then
- If (bMultiballMode = FALSE) Then Quote()
- Else
- BulbGI03.FlashForMs 300, 50, BulbOn
- BulbGI04.FlashForMs 300, 50, BulbOn
- Bulb37.FlashForMs 300, 50, BulbOn
- Bulb38.FlashForMs 300, 50, BulbOn
- PlaySound "fx_XWingBlasters"
- End If
- Else
- If (LastSwitchHit.Name = "TriggerRightInLane") Then
- AddScore(2500)
- IncrementRebellionBonus(10)
- Else
- AddScore(2500)
- If (bMultiballMode = FALSE) Then
- If (MovieTimer.Enabled = FALSE) and (QuoteBusy = FALSE) Then Quote()
- Else
- If (MovieTimer.Enabled = FALSE) Then
- PlaySound "fx_TIEFlyBy"
- MovieTimer.Set TRUE, 1400
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
- End If
- End If
- IncrementRebellionBonus(10)
- End If
- End If
- End If
- Set LastSwitchHit = TriggerRightInLane
- End Sub
- Sub Quote()
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- Q2(CP) = Q2(CP) + 1
- Select Case Q2(CP)
- Case 1:
- PlaySound "vo_WatchForFighters": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
- Case 2:
- PlaySound "vo_RearDeflectors": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
- Case 3:
- PlaySound "vo_VisualScanning": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
- Case 4:
- Select Case RandomNumber(4)
- Case 1: PlaySound "vo_StayLow": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1000
- Case 2: PlaySound "vo_Jamming": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3200
- Case 3: PlaySound "vo_Mark61": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1900
- Case 4: PlaySound "vo_StartRun": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2400
- End Select
- Case 5:
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_EnemyFighters"
- Case 2: PlaySound "vo_FightersComing"
- End Select
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- PlaySound "fx_TIEFlyBy"
- MovieTimer.Set TRUE, 1400
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
- Case 6:
- PlaySound "vo_HereTheyCome"
- PlaySound "fx_TIEFlyBy"
- MovieTimer.Set TRUE, 1400
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
- Case 7:
- Select Case RandomNumber(3)
- Case 1: PlaySound "vo_ComingIn"
- Case 2: PlaySound "vo_KeepEyesOpen"
- Case 3: PlaySound "vo_HangOnTight"
- End Select
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
- PlaySound "fx_TIEFlyBy"
- MovieTimer.Set TRUE, 1400
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
- Case 8:
- PlaySound "vo_SeeThem"
- PlaySound "fx_TIEFlyBy"
- MovieTimer.Set TRUE, 1400
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
- Case 9:
- PlaySound "fx_TIEAttacks8"
- TieFighter_Move
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 703, 720
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 703, 720
- Case 10:
- TieFighter_Move
- PlaySound "fx_TIEAttacks", 0.8
- Select Case RandomNumber(5)
- Case 1: PlaySound "vo_BehindUs"
- Case 2: PlaySound "vo_WatchIt"
- Case 3: PlaySound "vo_OffYourBack"
- Case 4: PlaySound "vo_OnTail": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
- Case 5: PlaySound "vo_CantShakeHim": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- End Select
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 939, 962
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 939, 962
- Case 11:
- PlaySound "vo_WhereAreYou": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
- Case 12:
- Select Case RandomNumber(5)
- Case 1: PlaySound "vo_WatchIt"
- Case 2: PlaySound "vo_WatchYourself2"
- Case 3: PlaySound "vo_StayTight": QuoteTimer.Set TRUE, 2000
- Case 4: PlaySound "vo_CloseItUp": QuoteTimer.Set TRUE, 1400
- Case 5: PlaySound "vo_ScreenMe": QuoteTimer.Set TRUE, 2400
- End Select
- Case 13:
- PlaySound "vo_MuchFaster"
- PlaySound "fx_TIEFlyBy"
- MovieTimer.Set TRUE, 1400
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 406, 428
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 406, 428
- Case 14:
- TieFighter_Move
- PlaySound "fx_TIEAttacks", 0.8
- Select Case RandomNumber(3)
- Case 1: PlaySound "vo_CantShake": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Case 2: PlaySound "vo_OnYourTail"
- Case 3: PlaySound "vo_LosingControl": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2100
- End Select
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 681, 702
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 681, 702
- Case 15:
- PlaySound "vo_RightBehindUs": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
- Case 16:
- PlaySound "vo_LukeWhereAreYou": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000
- Case 17:
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_HangOnBiggs": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
- Case 2: PlaySound "vo_HangOnBiggs2": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- End Select
- MovieOverlay.UpdateInterval = 67:MovieOverlay.Frame 35, 48
- HUDOverlay.UpdateInterval = 67: HUDOverlay.Frame 35, 48
- MovieTimer.Set TRUE, 1200: Q2(CP) = 0
- End Select
- End Sub
- Sub C3PO()
- If (QuoteBusy = TRUE) Then Exit Sub
- Q3PO(CP) = Q3PO(CP) + 1
- Select Case Q3PO(CP)
- Case 1:
- MusicFade(3000): PlaySound "vo_FullThrottle2": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000
- Case 2:
- PlaySound "fx_TIEAttacks8"
- TieFighter_Move
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 703, 720
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 703, 720
- Case 3:
- If (QuoteBusy = FALSE) Then
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_ThankMaker"
- Case 2: PlaySound "vo_HateSpaceTravel"
- End Select
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 220, 230
- HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 220, 230
- MovieTimer.Set TRUE, 1200
- End If
- Case 4:
- TieFighter_Move
- PlaySound "fx_TIEAttacks", 0.8
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Select Case RandomNumber(3)
- Case 1: PlaySound "vo_BehindUs"
- Case 2: PlaySound "vo_ComingIn"
- Case 3: PlaySound "vo_OnYourTail"
- End Select
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 939, 962
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 939, 962
- Case 5:
- TieFighter_Move
- PlaySound "fx_TIEAttacks", 0.8
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Select Case RandomNumber(4)
- Case 4: PlaySound "vo_BehindMe"
- Case 5: PlaySound "vo_ShakeHim"
- Case 6: PlaySound "vo_AllOverUs"
- End Select
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 939, 962
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 939, 962
- Case 6:
- TieFighter_Move
- PlaySound "fx_TIEAttacks8"
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 703, 720
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 703, 720
- Case 7:
- PlaySound "vo_Madness"
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 220, 230
- HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 220, 230
- MovieTimer.Set TRUE, 1200
- Case 8:
- TieFighter_Move
- PlaySound "fx_TIEAttacks"
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 939, 962
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 939, 962
- End Select
- End Sub
- Sub R2()
- R2HeadBulb.FlashForMs 1000, 100, BulbOff
- Select Case RandomNumber(16)
- Case 1: PlaySound "fx_R2Sound1", 0.8
- Case 2: PlaySound "fx_R2Sound2", 0.8
- Case 3: PlaySound "fx_R2Sound13", 0.8
- Case 4: PlaySound "fx_R2Sound14", 0.8
- Case 5: PlaySound "fx_R2Sound10", 0.8
- Case 6: PlaySound "fx_R2Sound8", 0.8
- Case 7: PlaySound "fx_R2Sound11", 0.8
- Case 8: PlaySound "fx_R2Sound12", 0.8
- Case 9: PlaySound "fx_R2Sound18", 0.8
- Case 10: PlaySound "fx_R2Sound19", 0.8
- Case 11: PlaySound "fx_R2Sound20", 0.8
- Case 12: PlaySound "fx_R2Sound21", 0.8
- Case 13: PlaySound "fx_R2Sound22", 0.8
- Case 14: PlaySound "fx_R2Sound24", 0.8
- Case 15: PlaySound "fx_R2Sound25", 0.8
- Case 16: PlaySound "fx_R2Sound26", 0.8
- End Select
- End Sub
- Sub TriggerLeftOutLane_Hit()
- If (VictoryLap = TRUE) Then Exit Sub
- If (fpTilted = FALSE) Then
- If (LightSpecialL.State = BulbOn) Then
- AddScore(10000)
- LightSpecialL.State = BulbOff
- LightSpecialR.State = BulbOff
- PlaySound "fx_R2Bonus"
- AwardSpecial()
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- MyDMD.QueueText "[edge3][f4][xc][yc]SPECIAL", deNone, 600, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]SPECIAL", deNone, 600, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]1,138,000", deFlip, 1500, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]1,138,000", deFlip, 1500, TRUE
- End If
- If (LightKickBack.State = BulbOff) Then
- If (bMultiballMode = FALSE) and (QuoteBusy = FALSE) Then
- DOFLinx_Left_Drained() 'DOFLinx - Left Drained
- If (bBallSaverActive = FALSE) Then
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 721, 746
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 721, 746
- If (TimeAttack = FALSE) Then
- PlaySound "vo_PullUp"
- LeftOutBulb1.Set BulbBlink, "100000000000000", 100
- LeftOutBulb2.Set BulbBlink, "010000000000000", 100
- LeftOutBulb3.Set BulbBlink, "001000000000000", 100
- LeftOutBulb4.Set BulbBlink, "000100000000000", 100
- LeftOutBulb5.Set BulbBlink, "000010000000000", 100
- Else
- PlaySound "vo_Biggs2"
- End If
- Else
- PlaySound "vo_PullIn"
- End If
- End If
- Else
- SabreTimer.Set TRUE, 1400
- DOFLinx_Blue_Lightsaber_Kickback() 'DOFLinx_Blue_Lightsaber_Kickback
- WallKickBack.Collidable = TRUE
- AutoPlungerKickback.SolenoidPulse
- DOFLinx_AutoPlungerKickback() 'DOFLinx - Kickback
- SabreLight1.FlashForMs 800, 120, BulbOn
- SabreLight2.FlashForMs 800, 120, BulbOn
- AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 1500
- LSLOn(): PlaySound "LSOnShort"
- If (bMultiballMode = FALSE) and (QuoteBusy = FALSE) Then
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000
- Select Case RandomNumber(8)
- Case 1: PlaySound "vo_Alright"
- Case 2: PlaySound "vo_LostEngine"
- Case 3: PlaySound "vo_HitNotBad"
- Case 4: PlaySound "vo_Loose"
- Case 5: PlaySound "vo_Cooked"
- Case 6: PlaySound "vo_WatchYourselfShort"
- Case 7: PlaySound "vo_ImHit"
- Case 8: PlaySound "vo_GotR2"
- End Select
- 'XMove = 5: XWingMove_Expired()
- XWing_Kickback
- End If
- Select Case RandomNumber(3)
- Case 1: PlaySound "Bumper Shootout 1"
- Case 2: PlaySound "Bumper Shootout 2"
- Case 3: PlaySound "Bumper Shootout 3"
- End Select
- If (LeiaPerk = TRUE) Then
- LeiaPerk = FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]KICKBACK", deNone, 600, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]KICKBACK", deNone, 600, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]1 REMAIN", deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc]1 REMAIN", deFlip, 1000, TRUE
- Else
- LightKickBackExt.SetLitColor 255, 0, 0
- LightKickBack.Set BulbBlink, "10", 100
- MyDMD.Text = "[edge3][f4][xc][yc][bf]KICKBACK"
- MyDMD2.Text = "[edge3][f4][xc][yc][bf]KICKBACK"
- KickBackTimer.Set TRUE, 2000
- End If
- MovieTimer.Set TRUE, 1000
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 485, 501
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 485, 501
- 'MovieOverlay.UpdateInterval = 80: MovieOverlay.frame 198, 199
- 'HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 198, 199
- 'MovieTimer.Set TRUE, 1000
- End If
- IncrementEmpireBonus(20)
- End If
- End Sub
- Sub SabreTimer_Expired()
- SabreTimer.Enabled = FALSE
- If (fpGameInPlay = FALSE) or (PlayFX = TRUE) Then PlayMusic 2, "fx_LSOff", FALSE, 0.7
- LSLOff()
- LSROff()
- PlayFX = FALSE
- End Sub
- Dim PlayFX
- ' *********************************
- ' ** **
- ' ** Kickback **
- ' ** **
- ' *********************************
- ' Awarded at the start of each ball and for a new Jedi rank.
- ' Perk: Princess Leia will allow for 2 uses instead of 1 (1 time use)
- Sub EnableKickback()
- KickbackTimer.Enabled = False
- LightKickBack.State = BulbOn
- End Sub
- Sub KickbackTimer_Expired()
- KickbackTimer.Enabled = FALSE
- 'LightKickBackExt.SetLitColor 129, 223, 254
- if BladeColor = 1 then LightKickBackExt.SetLitColor 32, 114, 249
- if BladeColor = 2 then LightKickBackExt.SetLitColor 0, 255, 0
- if BladeColor = 3 then LightKickBackExt.SetLitColor 128, 0, 255
- if BladeColor = 4 then LightKickBackExt.SetLitColor 255, 255, 0
- if BladeColor = 5 then LightKickBackExt.SetLitColor 255, 128, 0
- LightKickBack.State = BulbOff
- WallKickBack.Collidable = FALSE
- End Sub
- Sub TriggerRightOutLane_Hit()
- If (VictoryLap = TRUE) Then Exit Sub
- If (fpTilted = False) Then
- If (LightSpecialR.State = BulbOn) Then
- AddScore(10000)
- LightSpecialL.State = BulbOff
- LightSpecialR.State = BulbOff
- PlaySound "fx_Droid2"
- PlaySound "fx_R2Bonus"
- AwardSpecial()
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- MyDMD.QueueText "[edge3][f4][xc][yc]SPECIAL", deNone, 600, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]SPECIAL", deNone, 600, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]1,138,000", deFlip, 1500, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]1,138,000", deFlip, 1500, TRUE
- Else
- If (bMultiballMode = FALSE) Then
- If (bBallSaverActive = FALSE) Then
- DOFLinx_Right_Drained() 'DOFLinx - Right Drained
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 721, 746
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 721, 746
- PlaySound "vo_PullOut"
- If (TimeAttack = FALSE) Then
- RightOutBulb1.Set BulbBlink, "100000000000000", 100
- RightOutBulb2.Set BulbBlink, "010000000000000", 100
- RightOutBulb3.Set BulbBlink, "001000000000000", 100
- RightOutBulb4.Set BulbBlink, "000100000000000", 100
- RightOutBulb5.Set BulbBlink, "000010000000000", 100
- End If
- Else
- PlaySound "vo_PullIn"
- End If
- End If
- End If
- IncrementEmpireBonus(20)
- End If
- End Sub
- ' *********************************
- ' ** **
- ' ** BUMPERS **
- ' ** **
- ' *********************************
- ' Bumpers fire the Death Star's Turbo Lasers...
- Sub Bumper1_Hit()
- If (fpTilted = FALSE) Then
- 'PlaySound "fx_Bumper"
- DOFLinx_Bumper1_Hit() 'DOFLinx - Bumper 1 Hit
- PBL1.SolenoidPulse
- PBL2.SolenoidPulse
- PBL3.SolenoidPulse
- PBL4.SolenoidPulse
- PBL5.SolenoidPulse
- BRL.PopDown: BumpL.Enabled = TRUE
- If (VictoryLap = TRUE) Then Exit Sub
- TurretCannonFire: TurboLaserFire1
- If (Bumper1.State = BulbOff) Then
- Bumper1.FlashForMs 250, 125, BulbOff: BulbBumper1.FlashForMs 250, 125, BulbOff
- SoundBumper()
- Else
- AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 250
- BumperFlasher.FlashForMs 250, 250, BulbOff
- BumperMiddle.FlashForMs 250, 250, BulbOff
- PlayMusic 3,"fx_Blaster2"
- ClearLCD()
- MovieOverlay.UpdateInterval = 40: MovieOverlay.frame 304, 309
- HUDOverlay.UpdateInterval = 40: HUDoverlay.frame 304, 309
- MovieTimer.Set TRUE, 1000
- End If
- If (ChewiePerk = TRUE) Then
- AddScore(BumpValue+500)
- Else
- AddScore(BumpValue)
- End If
- CheckBUMPERS()
- End If
- set LastSwitchHit = Bumper1
- End Sub
- Sub BumpL_Expired()
- BumpL.Enabled = FALSE
- BRL.SolenoidPulse 10
- End Sub
- Sub Bumper2_Hit()
- If (fpTilted = FALSE) Then
- 'PlaySound "fx_Bumper"
- DOFLinx_Bumper2_Hit() 'DOFLinx - Bumper 2 Hit
- PBR1.SolenoidPulse
- PBR4.SolenoidPulse
- PBR5.SolenoidPulse
- PBR6.SolenoidPulse
- PBR7.SolenoidPulse
- PBR8.SolenoidPulse
- BRR.PopDown: BumpR.Enabled = TRUE
- If (VictoryLap = TRUE) Then Exit Sub
- TurretCannonFire: TurboLaserFire2
- If (Bumper2.State = BulbOff) Then
- Bumper2.FlashForMs 250, 125, BulbOff: BulbBumper2.FlashForMs 250, 125, BulbOff
- SoundBumper()
- Else
- AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 250
- BumperFlasher.FlashForMs 250, 250, BulbOff
- BumperMiddle.FlashForMs 250, 250, BulbOff
- PlayMusic 3,"fx_Blaster2"
- ClearLCD()
- MovieOverlay.UpdateInterval = 40: MovieOverlay.frame 311, 318
- HUDOverlay.UpdateInterval = 40: HUDoverlay.frame 311, 318
- MovieTimer.Set TRUE, 1000
- End If
- If (ChewiePerk = TRUE) Then
- AddScore(BumpValue+500)
- Else
- AddScore(BumpValue)
- End If
- CheckBUMPERS()
- End If
- set LastSwitchHit = Bumper2
- End Sub
- Sub BumpR_Expired()
- BumpR.Enabled = FALSE
- BRR.SolenoidPulse 10
- End Sub
- Sub Bumper3_Hit()
- If (fpTilted = FALSE) Then
- 'PlaySound "fx_Bumper"
- DOFLinx_Bumper3_Hit() 'DOFLinx - Bumper 3 Hit
- PBDR1.SolenoidPulse
- PBDR2.SolenoidPulse
- PBDR3.SolenoidPulse
- PBDR4.SolenoidPulse
- PBDR7.SolenoidPulse
- PBDR8.SolenoidPulse
- BRD.PopDown: BumpD.Enabled = TRUE
- If (VictoryLap = TRUE) Then Exit Sub
- TurretCannonFire: TurboLaserFire3
- If (Bumper3.State = BulbOff) Then
- Bumper3.FlashForMs 250, 125, BulbOff: BulbBumper3.FlashForMs 250, 125, BulbOff
- SoundBumper()
- Else
- AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 250
- BumperFlasher.FlashForMs 250, 250, BulbOff
- BumperMiddle.FlashForMs 250, 250, BulbOff
- PlayMusic 3,"fx_Blaster2"
- ClearLCD()
- MovieOverlay.UpdateInterval = 40: MovieOverlay.frame 304, 309
- HUDOverlay.UpdateInterval = 40: HUDoverlay.frame 304, 309
- MovieTimer.Set TRUE, 1000
- End If
- If (ChewiePerk = TRUE) Then
- AddScore(BumpValue+500)
- Else
- AddScore(BumpValue)
- End If
- CheckBUMPERS()
- End If
- set LastSwitchHit = Bumper3
- End Sub
- Sub BumpD_Expired()
- BumpD.Enabled = FALSE
- BRD.SolenoidPulse 10
- End Sub
- Sub SoundBumper()
- Select Case RandomNumber(3)
- Case 1: PlaySound "fx_BumperHit1"
- Case 2: PlaySound "fx_BumperHit2"
- Case 3: PlaySound "fx_BumperHit3"
- End Select
- End Sub
- Sub TurboBumpers()
- BumperMiddle.FlashForMs 500, 150, BulbOff
- BumperFlasher.FlashForMs 500, 150, BulbOff
- DMDBusy = TRUE: DMDTimer.Set TRUE, 1000
- MyDMD.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TURBO BUMPERS", deNone, 75, FALSE
- MyDMD2.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TURBO BUMPERS", deNone, 75, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]TURBO BUMPERS", deNone, 75, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]TURBO BUMPERS", deNone, 75, FALSE
- PlaySound "fx_Explode"
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 60: NewMovieHUD.UpdateInterval = 60
- NewMovie.Frame 322, 350: NewMovieHUD.Frame 322, 350
- MovieTimer.Set TRUE, 1200
- PFFlash.Set TRUE, 125: FlashME = 12
- Select Case RandomNumber(2)
- Case 1: IncrementEmpireBonus(5)
- Case 2: IncrementRebellionBonus(5)
- End Select
- End Sub
- Sub CheckBUMPERS()
- BumpHit = BumpHit + 1
- If (BumpHit = 20) Then ' first, they all turn on...
- Bumper1.State = BulbOn
- Bumper2.State = BulbOn
- Bumper3.State = BulbOn
- BulbBumper1.State = BulbOn
- BulbBumper2.State = BulbOn
- BulbBumper3.State = BulbOn
- BumpValue = 5000
- TurboBumpers()
- End If
- If (BumpHit = 50) Then ' then they all blink...
- Bumper1.Set BulbBlink, "10", 150
- Bumper2.Set BulbBlink, "10", 150
- Bumper3.Set BulbBlink, "10", 150
- BulbBumper1.Set BulbBlink, "10", 150
- BulbBumper2.Set BulbBlink, "10", 150
- BulbBumper3.Set BulbBlink, "10", 150
- BumpValue = 10000
- TurboBumpers()
- End If
- If (BumpHit = 75) Then ' then they rotate...
- Bumper1.Set BulbBlink, "101000000000", 120
- Bumper2.Set BulbBlink, "000010100000", 120
- Bumper3.Set BulbBlink, "000000001010", 120
- BulbBumper1.Set BulbBlink, "101000000000", 120
- BulbBumper2.Set BulbBlink, "000010100000", 120
- BulbBumper3.Set BulbBlink, "000000001010", 120
- BumpValue = 15000
- TurboBumpers()
- End If
- If (BumpHit = 100) Then
- Bumper1.Set BulbBlink, "101000000000", 100
- Bumper2.Set BulbBlink, "000010100000", 100
- Bumper3.Set BulbBlink, "000000001010", 100
- BulbBumper1.Set BulbBlink, "101000000000", 100
- BulbBumper2.Set BulbBlink, "000010100000", 100
- BulbBumper3.Set BulbBlink, "000000001010", 100
- BumpValue = 20000
- TurboBumpers()
- End If
- If (BumpHit = 125) Then
- BumpValue = 25000
- TurboBumpers()
- End If
- End Sub
- ' ********************************
- ' ** **
- ' ** SPINNERS **
- ' ** **
- ' ********************************
- Sub Spinner_Hit()
- If (fpTilted = FALSE) Then
- AddScore(1000*BonusMultiplier(CP))
- If (SSWin = FALSE) Then PlaySound "fx_Spinner"
- FlasherBulbRight.FlashForMs 50, 50, BulbOff
- FlasherRight.FlashForMs 50, 50, BulbOff
- DOFLinx_Spinner_Hit() 'DOFLinx - Spinner Hit
- End If
- set LastSwitchHit = Spinner
- End Sub
- Sub FalconSpinner_Hit()
- If (fpTilted = FALSE) Then
- AddScore(1000*BonusMultiplier(CP))
- If (RampTally(CP) = 4) Then Exit Sub
- PlaySound "fx_FalconSpin"
- Flasher2.FlashForMs 50, 50, BulbOff
- DOFLinx_Falcon_Spinner_Hit() 'DOFLinx - Falcon Spinner Hit
- End If
- End Sub
- Sub RampDropTrigger_Hit()
- AddScore(50)
- End Sub
- ' *********************************
- ' ** **
- ' ** Top Rollover Triggers **
- ' ** **
- ' *********************************
- Sub TriggerTopLane1_Hit()
- If (fpTilted = False) Then
- AddScore(2000)
- If (VictoryLap = TRUE) Then Exit Sub
- PlaySound "Bonus Advance": IncrementEmpireBonus(10)
- If (LightTopLane1.State = BulbOff) Then
- LightTopLane1.State = BulbOn
- CheckTopRolloverLights()
- End If
- BulbGI16.FlashForMs 400, 200, BulbGI16.State
- BulbGI17.FlashForMs 400, 200, BulbGI17.State
- Bulb12.FlashForMs 400, 200, Bulb12.State
- Bulb13.FlashForMs 400, 200, Bulb13.State
- End If
- set LastSwitchHit = TriggerTopLane1
- End Sub
- Sub TriggerTopLane2_Hit()
- If (fpTilted = False) Then
- AddScore(2000)
- If (VictoryLap = TRUE) Then Exit Sub
- PlaySound "Bonus Advance": IncrementEmpireBonus(10)
- If (LightTopLane2.State = BulbOff) Then
- LightTopLane2.State = BulbOn
- CheckTopRolloverLights()
- End If
- BulbGI17.FlashForMs 400, 200, BulbGI17.State
- BulbGI18.FlashForMs 400, 200, BulbGI18.State
- Bulb14.FlashForMs 400, 200, Bulb14.State
- Bulb13.FlashForMs 400, 200, Bulb13.State
- End If
- set LastSwitchHit = TriggerTopLane2
- End Sub
- Sub TriggerTopLane3_Hit()
- If (fpTilted = False) Then
- AddScore(2000)
- If (VictoryLap = TRUE) Then Exit Sub
- PlaySound "Bonus Advance": IncrementEmpireBonus(10)
- If (LightTopLane3.State = BulbOff) Then
- LightTopLane3.State = BulbOn
- CheckTopRolloverLights()
- End If
- BulbGI18.FlashForMs 400, 200, BulbGI18.State
- BulbGI19.FlashForMs 400, 200, BulbGI19.State
- Bulb15.FlashForMs 400, 200, Bulb15.State
- Bulb14.FlashForMs 400, 200, Bulb14.State
- End If
- set LastSwitchHit = TriggerTopLane3
- End Sub
- Sub CheckTopRolloverLights()
- If (LightTopLane1.State = BulbOn) And (LightTopLane2.State = BulbOn) And (LightTopLane3.State = BulbOn) Then
- IncrementBonusMultiplier()
- LightTopLane1.FlashForMs 300, 100, BulbOff
- LightTopLane2.FlashForMs 300, 100, BulbOff
- LightTopLane3.FlashForMs 300, 100, BulbOff
- BulbGI16.FlashForMs 300, 100, BulbOn
- Bulb12.FlashForMs 300, 100, BulbOn
- BulbGI17.FlashForMs 300, 100, BulbOn
- Bulb13.FlashForMs 300, 100, BulbOn
- BulbGI18.FlashForMs 300, 100, BulbOn
- Bulb14.FlashForMs 300, 100, BulbOn
- BulbGI19.FlashForMs 300, 100, BulbOn
- Bulb15.FlashForMs 300, 100, BulbOn
- Else
- If (VictoryLap = TRUE) Then Exit Sub
- If (QuoteBusy = FALSE) Then
- PlaySound "Uteenie"
- If (MovieTimer.Enabled = FALSE) Then
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 159, 167
- HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 159, 167
- MovieTimer.Set TRUE, 1000
- End If
- End If
- End If
- End Sub
- ' ********************************
- ' ** **
- ' ** VADER LANE **
- ' ** **
- ' ********************************
- Sub TriggerLeftStar1_Hit()
- If (fpTilted = False) Then
- DOFLinx_TriggerLeftStar1_Hit() 'DOFLinx_TriggerLeftStar1_Hit
- If (BulbLeftStar1.State <> BulbOff) Then
- AddScore(2500)
- Else
- AddScore(500)
- End If
- If (BulbLeftStar1.State <> BulbBlink) Then
- BulbLeftStar1.FlashForMs 150, 75, BulbLeftStar1.State
- End If
- End If
- If (LastSwitchHit.Name = "TriggerLeftStar1") Then Exit Sub
- If (LastSwitchHit.Name = "TriggerLeftStar2") Then Exit Sub
- PlaySound "TIE Fighter"
- set LastSwitchHit = TriggerLeftStar1
- End Sub
- Sub TriggerLeftStar2_Hit()
- If (fpTilted = False) Then
- DOFLinx_TriggerLeftStar2_Hit() 'DOFLinx_TriggerLeftStar2_Hit
- If (BulbLeftStar2.State <> BulbOff) Then
- AddScore(2500)
- Else
- AddScore(500)
- End If
- If (BulbLeftStar2.State <> BulbBlink) Then
- BulbLeftStar2.FlashForMs 150, 75, BulbLeftStar2.State
- End If
- End If
- set LastSwitchHit = TriggerLeftStar2
- End Sub
- Sub TriggerLeftStar3_Hit()
- If (fpTilted = False) Then
- DOFLinx_TriggerLeftStar3_Hit() 'DOFLinx_TriggerLeftStar3_Hit
- If (BulbLeftStar3.State <> BulbOff) Then
- AddScore(2500)
- Else
- AddScore(500)
- End If
- If (BulbLeftStar3.State <> BulbBlink) Then
- BulbLeftStar3.FlashForMs 150, 75, BulbLeftStar3.State
- End If
- End If
- set LastSwitchHit = TriggerLeftStar3
- End Sub
- ' **********************************
- ' ** **
- ' ** FALCON SAVE **
- ' ** **
- ' **********************************
- ' the Han Solo lane...
- Sub TriggerMiddleStar_Hit()
- If (fpTilted = False) Then
- If (BulbMiddleStar.State <> BulbOff) Then
- AddScore(5000)
- PlaySound "Bonus Advance": IncrementRebellionBonus(20)
- Else
- AddScore(1500)
- End If
- BulbMiddleStar.FlashForMs 150, 75, BulbMiddleStar.State
- End If
- If (LastSwitchHit.Name = "TriggerMiddleStar") Then Exit Sub
- set LastSwitchHit = TriggerMiddleStar
- End Sub
- ' *********************************
- ' ** **
- ' ** TRENCH RUN **
- ' ** **
- ' *********************************
- ' the right orbit (trench run)...
- Sub TrenchRun_Hit()
- If (VictoryLap = TRUE) Then Exit Sub
- If (fpTilted = FALSE) Then
- If (BulbRightStar.State = BulbOn) Then
- AddScore(2500)
- BulbRightStar.State = BulbOff
- Else
- If (LastSwitchHit.Name = "TrenchRun") Then
- AddScore(500)
- BulbRightStar.FlashForMs 1000, 75, BulbRightStar.State
- Else
- If (bMultiballMode = FALSE) Then
- TrenchHit()
- Else
- AddScore(TrenchValue)
- End If
- BulbRightStar.FlashForMs 1000, 75, BulbRightStar.State
- End If
- End If
- End If
- IncrementRebellionBonus(5)
- set LastSwitchHit = TrenchRun
- End Sub
- Sub TrenchHit()
- If (MovieTimer.Enabled = FALSE) Then
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- NewMovie.FadeOut: NewMovieHUD.FadeOut
- End If
- TrenchValue = TrenchValue + 3500
- AddScore(TrenchValue)
- If (TimeAttack = FALSE) Then
- DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
- MyDMD.QueueText "[edge3][f4][xc][yc]TRENCH RUN", deNone, 600, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]TRENCH RUN", deNone, 600, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(TrenchValue, 0, -1, 0, -1), deFlip, 1200, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(TrenchValue, 0, -1, 0, -1), deFlip, 1200, TRUE
- End If
- If (QuoteBusy = FALSE) Then
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- TrenchPlay(CP) = TrenchPlay(CP) + 1
- Select Case TrenchPlay(CP)
- Case 1:
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_ThisIsItBoys"
- Case 2: PlaySound "vo_InPosition": QuoteTimer.Set TRUE, 2500
- End Select
- Case 2:
- Select Case RandomNumber(3)
- Case 1: MusicFade(1600): PlaySound "vo_PassingThrough"
- Case 2: PlaySound "vo_MagneticField"
- Case 3: PlaySound "vo_MagneticField2"
- End Select
- Case 3:
- PlaySound "vo_AttackPosition"
- PlaySound "fx_XWingFlyBy", 0.8
- MovieTimer.Set TRUE, 1800
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
- NewMovie.Frame 359, 385: NewMovieHUD.Frame 359, 385
- Case 4:
- If (MovieTimer.Enabled = FALSE) Then
- PlaySound "fx_Turbo"
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 991, 1021
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 991, 1021
- End If
- Case 5: PlaySound "vo_HoldTight"
- Case 6:
- MusicFade(1600): PlaySound "vo_GoingIn": PlaySound "fx_Trench", 0.6
- If (MovieTimer.Enabled = FALSE) Then
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 238, 264
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 238, 264
- End If
- Case 7:
- If (MovieTimer.Enabled = FALSE) Then
- PlaySound "vfx_TurretFire"
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
- NewMovie.Frame 485, 515: NewMovieHUD.Frame 485, 515
- MovieTimer.Set TRUE, 2500
- FlashMe = 10: PFFlash.Set TRUE, 125
- End If
- Case 8:
- If (MovieTimer.Enabled = FALSE) Then
- PlaySound "fx_Turbo"
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 991, 1021
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 991, 1021
- End If
- Case 9: PlaySound "vo_Attackspeed"
- If (MovieTimer.Enabled = FALSE) Then
- PlaySound "fx_Turbo"
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 991, 1021
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 991, 1021
- End If
- Case 10: PlaySound "vo_FullThrottle3"
- Case 11:
- PlaySound "vo_SwitchPower"
- MovieTimer.Set TRUE, 1500
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
- NewMovie.Frame 428, 448: NewMovieHUD.Frame 428, 448
- Case 12: PlaySound "vo_WatchForFighters"
- Case 13:
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_DeflectorShields"
- Case 2: PlaySound "vo_Deflectors"
- End Select
- MovieTimer.Set TRUE, 1500
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
- NewMovie.Frame 428, 448: NewMovieHUD.Frame 428, 448
- Case 14:
- If (MovieTimer.Enabled = FALSE) Then
- PlaySound "fx_Turbo"
- MovieOverlay.UpdateInterval = 66:MovieOverlay.Frame 67, 93
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 67, 93
- MovieTimer.Set TRUE, 1500
- End If
- Case 15: PlaySound "vo_PickUp"
- Case 16:
- PlaySound "vo_GoingInAgain"
- MovieOverlay.UpdateInterval = 67:MovieOverlay.Frame 35, 48
- HUDOverlay.UpdateInterval = 67: HUDOverlay.Frame 35, 48
- MovieTimer.Set TRUE, 1200
- Case 17:
- If (MovieTimer.Enabled = FALSE) Then
- PlaySound "vfx_TurretFire"
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
- NewMovie.Frame 485, 515: NewMovieHUD.Frame 485, 515
- MovieTimer.Set TRUE, 2500
- FlashME = 10: PFFlash.Set TRUE, 125
- End If
- Case 18:
- PlaySound "vo_AttackRun"
- PlaySound "fx_XWingFlyBy", 0.8
- MovieTimer.Set TRUE, 1800
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
- NewMovie.Frame 359, 385: NewMovieHUD.Frame 359, 385
- Case 19:
- If (MovieTimer.Enabled = FALSE) Then
- PlaySound "fx_Turbo"
- MovieOverlay.UpdateInterval = 66:MovieOverlay.Frame 67, 93
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 67, 93
- MovieTimer.Set TRUE, 1500
- End If
- Case 20: PlaySound "vo_ExhaustPort"
- Case 21:
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_EyesOpen"
- Case 2: PlaySound "vo_FrontDeflectors"
- End Select
- Case 22: PlaySound "vo_AboveYou"
- Case 23:
- PlaySound "vo_AttackSpeedFX"
- If (MovieTimer.Enabled = FALSE) Then
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 238, 264
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 238, 264
- MovieTimer.Set TRUE, 1500
- End If
- Case 24:
- PlaySound "vo_HeavyFireZone"
- If (MoveTimer.Enabled = FALSE) Then
- PlaySound "fx_Turbo", 0.5
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 991, 1021
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 991, 1021
- End If
- Case 25:
- PlaySound "fx_Trench"
- If (MovieTimer.Enabled = FALSE) Then
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 238, 264
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 238, 264
- MovieTimer.Set TRUE, 1600
- End If
- Case 26:
- If (MovieTimer.Enabled = FALSE) Then
- TrenchPlay(CP) = 24
- PlaySound "vfx_TurretFire"
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
- NewMovie.Frame 485, 515: NewMovieHUD.Frame 485, 515
- MovieTimer.Set TRUE, 2500
- FlashME = 10: PFFlash.Set TRUE, 125
- End If
- End Select
- End If
- End Sub
- ' **************************************
- ' ** **
- ' ** TIE FIGHTER DROP TARGETS **
- ' ** **
- ' **************************************
- ' Knock down all targets to light the Jedi power up at the Vader kicker.
- ' Defeating a wave of TIE fighters also qualifies for the Skill Shot at the start of the next ball.
- Sub ThreeBank1_Hit()
- PlaySound "fx_DropDownC"
- If (fpTilted = False) Then
- DOFLinx_Center_Drop_Target_Hit() 'DOFLinx - Center Drop Target Hit
- LightThreeBank1.State = BulbOn
- CheckDropTargets()
- End If
- End Sub
- Sub ThreeBank2_Hit()
- PlaySound "fx_DropDownC"
- If (fpTilted = False) Then
- DOFLinx_Center_Drop_Target_Hit() 'DOFLinx - Center Drop Target Hit
- LightThreeBank2.State = BulbOn
- CheckDropTargets()
- End If
- End Sub
- Sub ThreeBank3_Hit()
- PlaySound "fx_DropDownC"
- If (fpTilted = False) Then
- DOFLinx_Center_Drop_Target_Hit() 'DOFLinx - Center Drop Target Hit
- LightThreeBank3.State = BulbOn
- CheckDropTargets()
- End If
- End Sub
- ' left side 4 bank...
- Sub FourBank1_Hit()
- PlaySound "fx_DropDownL"
- If (fpTilted = False) Then
- LightFourBank1.State = BulbOn
- CheckDropTargets()
- End If
- End Sub
- Sub FourBank2_Hit()
- PlaySound "fx_DropDownL"
- If (fpTilted = False) Then
- DOFLinx_Left_Drop_Target_Hit() 'DOFLinx - Left Drop Target Hit
- LightFourBank2.State = BulbOn
- CheckDropTargets()
- End If
- End Sub
- Sub FourBank3_Hit()
- PlaySound "fx_DropDownL"
- If (fpTilted = False) Then
- DOFLinx_Left_Drop_Target_Hit() 'DOFLinx - Left Drop Target Hit
- LightFourBank3.State = BulbOn
- CheckDropTargets()
- End If
- End Sub
- Sub FourBank4_Hit()
- PlaySound "fx_DropDownL"
- If (fpTilted = False) Then
- DOFLinx_Left_Drop_Target_Hit() 'DOFLinx - Left Drop Target Hit
- LightFourBank4.State = BulbOn
- CheckDropTargets()
- End If
- End Sub
- Dim TgtMove
- Sub TgtRotate_Expired()
- TgtMove = TgtMove + 1
- PlaySound "fx_DropDownC", 0.5
- Select Case TgtMove
- Case 1: FourBank1.SolenoidPulse
- Case 2: FourBank1.PopDown: FourBank2.SolenoidPulse
- Case 3: FourBank2.PopDown: FourBank3.SolenoidPulse
- Case 4: FourBank3.PopDown: FourBank4.SolenoidPulse
- Case 5: FourBank4.PopDown: ThreeBank1.SolenoidPulse
- Case 6: ThreeBank1.PopDown: ThreeBank2.SolenoidPulse
- Case 7: ThreeBank2.PopDown: ThreeBank3.SolenoidPulse
- Case 8: ThreeBank3.PopDown: TgtMove = 0
- End Select
- End Sub
- Sub CheckDropTargets()
- If (fpTilted = FALSE) Then
- If (FourBank1.Dropped And FourBank2.Dropped And FourBank3.Dropped And _
- FourBank4.Dropped And ThreeBank1.Dropped And ThreeBank2.Dropped And _
- ThreeBank3.Dropped) Then
- If (VictoryLap = FALSE) Then
- TorpedoReady(CP) = TRUE
- PlaySound "fx_R2Bonus"
- DOFLinx_Wave_Destroyed() 'DOFLinx Wave Destroyed
- LightSeqPF.Play SeqBlinking, , 2, 100
- FlashME = 14: PFFlash.Set TRUE, 100
- TgtRotate.Enabled = FALSE
- AddScore(XWingValue(CP)*10)
- DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
- MyDMD.QueueText "[edge3][f4][yc]WAVE DESTROYED", deNone, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][yc]WAVE DESTROYED", deNone, 800, FALSE
- MyDMD.QueueText "[edge3][f4][yc][b]POWER UP READY", deScrollIn, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][b]POWER UP READY", deScrollIn, 1000, TRUE
- ' now you can rank up to a new Jedi level...
- If (bPadawanMode(CP) = FALSE) Then
- LightPadawan.Set BulbBlink, "10", 150
- Else
- If (bKnightMode(CP) = FALSE) Then
- LightKnight.Set BulbBlink, "10", 150
- Else
- If (bMasterMode(CP) = FALSE) Then
- LightMaster.Set BulbBlink, "10", 150
- Else
- If (bYodaMode(CP) = FALSE) Then
- LightJoda.Set BulbBlink, "10", 150
- Else
- AwardSpecial()
- End If
- End If
- End If
- End If
- BulbLeftStar1Ext.SetLitColor 255, 0, 0
- BulbLeftStar2Ext.SetLitColor 255, 0, 0
- BulbLeftStar3Ext.SetLitColor 255, 0, 0
- BulbLeftStar1.Set BulbBlink, "10000", 125
- BulbLeftStar2.Set BulbBlink, "01000", 125
- BulbLeftStar3.Set BulbBlink, "00100", 125
- LightLeftPowerUp.Set BulbBlink, "00010", 125
- R2HeadBulb.State = BulbOn
- HologramR2D2.Frame 3: R2D2Fade.Set TRUE, 3000
- Else
- VictoryHit()
- End If
- ResetDropTargets()
- Else
- 'If (XWingMove.Enabled = FALSE) Then XMove = 2: XWingMove_Expired()
- XWing_Move
- Flasher2.FlashForMs 300, 75, BulbOff: AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 300
- PlayMusic 5, "fx_XwingAttack"
- DOFLinx_Droptarget_XWingBlast() 'DOFLinx Droptarget XWingBlast
- If (ObiWanPerk = TRUE) Then
- XWingValue(CP) = XWingValue(CP) + 250
- End If
- If (TimeAttack = FALSE) Then
- AddScore(XWingValue(CP))
- DMDBusy = TRUE: DMDTimer.Set TRUE, 1000
- MyDMD.QueueText "[edge3][f4][yc]TIE HIT - " & FormatNumber(XWingValue(CP), 0, -1, 0, -1), deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc]TIE HIT - " & FormatNumber(XWingValue(CP), 0, -1, 0, -1), deNone, 1000, TRUE
- End If
- If (MovieTimer.Enabled = FALSE) Then
- MovieOverlay.UpdateInterval = 67: MovieOverlay.frame 523, 540
- HUDOverlay.UpdateInterval = 67: HUDOverlay.frame 523, 540
- MovieTimer.Set TRUE, 500
- End If
- LightSeqPF.Play SeqBlinking, , 2, 100
- End If
- IncrementRebellionBonus(10)
- TIETally(CP) = TIETally (CP) + 1
- CheckTIETally()
- End If
- End Sub
- ' swat those pesky TIE fighters to earn big rewards...
- Sub CheckTIETally()
- If (TIETally(CP) = 50) Then
- If (bExtraBallWonThisBall = FALSE) Then
- AwardExtraBall()
- MusicFade(800): PlaySound "vo_ExtraBall"
- Else
- AddScore(1138000)
- End If
- End If
- If (TIETally(CP) = 100) Then
- If (bExtraBallWonThisBall = FALSE) Then
- AwardExtraBall()
- MusicFade(800): PlaySound "vo_ExtraBall"
- Else
- AddScore(1138000)
- End If
- End If
- If (TIETally(CP) = 150) Then
- If (bExtraBallWonThisBall = FALSE) Then
- AwardExtraBall()
- MusicFade(800): PlaySound "vo_ExtraBall"
- Else
- AddScore(1138000)
- End If
- End If
- End Sub
- Sub ResetDropTargets()
- ResetDropTargetsTimer.UserData = 0
- ResetDropTargetsTimer.Set True, 70
- End Sub
- Sub ResetDropTargetsTimer_Expired()
- ResetDropTargetsTimer.Enabled = FALSE
- Select Case (ResetDropTargetsTimer.UserData)
- Case 0: FourBank1.SolenoidPulse
- If (fpGameInPlay = True) Then
- LightFourBank1.State = BulbOff
- End If
- ResetDropTargetsTimer.UserData = 1
- ResetDropTargetsTimer.Enabled = True
- Case 1: FourBank2.SolenoidPulse
- DOFLinx_Left_Drop_Targets_Reset() 'DOFLinx - Left Drop Target Reset Hit
- If (fpGameInPlay = True) Then
- LightFourBank2.State = BulbOff
- End If
- ResetDropTargetsTimer.UserData = 2
- ResetDropTargetsTimer.Enabled = True
- Case 2: FourBank3.SolenoidPulse
- If (fpGameInPlay = True) Then
- LightFourBank3.State = BulbOff
- End If
- ResetDropTargetsTimer.UserData = 3
- ResetDropTargetsTimer.Enabled = True
- Case 3: FourBank4.SolenoidPulse
- If (fpGameInPlay = True) Then
- LightFourBank4.State = BulbOff
- End If
- ResetDropTargetsTimer.UserData = 4
- ResetDropTargetsTimer.Enabled = True
- Case 4: ThreeBank1.SolenoidPulse
- If (fpGameInPlay = True) Then
- LightThreeBank1.State = BulbOff
- End If
- ResetDropTargetsTimer.UserData = 5
- ResetDropTargetsTimer.Enabled = True
- Case 5: ThreeBank2.SolenoidPulse
- If (fpGameInPlay = True) Then
- LightThreeBank2.State = BulbOff
- End If
- ResetDropTargetsTimer.UserData = 6
- ResetDropTargetsTimer.Enabled = True
- Case 6: ThreeBank3.SolenoidPulse
- If (fpGameInPlay = True) Then
- LightThreeBank3.State = BulbOff
- End If
- ResetDropTargetsTimer.UserData = 7
- ResetDropTargetsTimer.Enabled = True
- Case 7:
- If (fpGameInPlay = True) Then
- LightThreeBank1.Set BulbBlink, "10", 125
- LightThreeBank2.Set BulbBlink, "10", 125
- LightThreeBank3.Set BulbBlink, "10", 125
- LightFourBank1.Set BulbBlink, "01", 125
- LightFourBank2.Set BulbBlink, "01", 125
- LightFourBank3.Set BulbBlink, "01", 125
- LightFourBank4.Set BulbBlink, "01", 125
- End If
- End Select
- End Sub
- ' *********************************
- ' ** **
- ' ** VADER TARGETS **
- ' ** **
- ' *********************************
- ' His menacing presence is announced by breathing like a chain smoker.
- ' Complete VADER to light the awards at the right saucer.
- Sub TgtV_Hit()
- If (VictoryLap = TRUE) Then VictoryHit(): Exit Sub
- If (fpTilted = FALSE) Then
- DOFLinx_Vader_Target_V_Hit() 'DOFLinx - Vader Target V Hi
- If (LightV.State = BulbBlink) Then
- LightV.State = BulbOn
- If (MovieTimer.Enabled = FALSE) Then
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
- HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 127, 137
- End If
- CheckVADERLights()
- Else
- PlaySound "fx_Vader", 0.7
- AddScore(500)
- End If
- End If
- End Sub
- Sub TgtA_Hit()
- If (VictoryLap = TRUE) Then VictoryHit(): Exit Sub
- If (fpTilted = False) Then
- DOFLinx_Vader_Target_A_Hit() 'DOFLinx - Vader Target A Hit
- If (LightA.State = BulbBlink) Then
- LightA.State = BulbOn
- CheckVADERLights()
- Else
- PlaySound "fx_Vader", 0.7
- AddScore(500)
- End If
- End If
- End Sub
- Sub TgtD_Hit()
- If (VictoryLap = TRUE) Then VictoryHit(): Exit Sub
- If (fpTilted = False) Then
- DOFLinx_Vader_Target_D_Hit() 'DOFLinx - Vader Target D Hit
- If (LightD.State = BulbBlink) Then
- LightD.State = BulbOn
- If (MovieTimer.Enabled = FALSE) Then
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
- End If
- CheckVADERLights()
- Else
- PlaySound "fx_Vader", 0.7
- AddScore(500)
- End If
- End If
- End Sub
- Sub TgtE_Hit()
- If (VictoryLap = TRUE) Then VictoryHit(): Exit Sub
- If (fpTilted = False) Then
- DOFLinx_Vader_Target_E_Hit() 'DOFLinx - Vader Target E Hit
- If (LightE.State = BulbBlink) Then
- LightE.State = BulbOn
- If (MovieTimer.Enabled = FALSE) Then
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
- End If
- CheckVADERLights()
- Else
- PlaySound "fx_Vader", 0.7
- AddScore(500)
- End If
- End If
- End Sub
- Sub TgtR_Hit()
- If (VictoryLap = TRUE) Then VictoryHit(): Exit Sub
- If (fpTilted = False) Then
- DOFLinx_Vader_Target_R_Hit() 'DOFLinx - Vader Target R Hit
- If (LightR.State = BulbBlink) Then
- LightR.State = BulbOn
- If (MovieTimer.Enabled = FALSE) Then
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 127, 137
- End If
- CheckVADERLights()
- Else
- PlaySound "fx_Vader", 0.7
- AddScore(500)
- End If
- End If
- End Sub
- Sub CheckVADERLights()
- If (LightV.State = BulbOn And LightA.State = BulbOn And LightD.State = BulbOn And LightE.State = BulbOn And LightR.State = BulbOn) Then
- AddScore(15000)
- LightSeqPF.Play SeqBlinking, , 2, 100
- FlashMe = 16: PFFlash.Set TRUE, 200
- If (LightDock.State = BulbOff) Then
- LightDock.Set BulbBlink, "10", 150
- If (QuoteBusy = FALSE) Then
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- VaderAnimation(5)
- Select Case RandomNumber(5)
- Case 1: MusicFade(600): PlaySound "vo_Impressive": VaderScoreLight.FlashForMs 600, 600, VaderScoreLight.State
- Case 2: MusicFade(1000): PlaySound "vo_ForceIsStrong": VaderScoreLight.FlashForMs 1000, 1000, VaderScoreLight.State
- Case 3: MusicFade(1000): PlaySound "vo_MostImpressive": VaderScoreLight.FlashForMs 1000, 1000, VaderScoreLight.State
- End Select
- End If
- If (MovieTimer.Enabled = FALSE) Then
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 169, 170, 169
- HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 169, 170, 169
- MovieTimer.Set TRUE, 1500
- End If
- Select Case (AttackAwardLevel) ' for now, these rewards will loop...
- Case 0: LightSpecial.State = BulbOff: LightExtraBall.State = BulbOff
- Light50000Points.Set BulbBlink, "10", 150
- Case 1: LightSpecial.Set BulbBlink, "10", 150
- Case 2: If (bExtraBallWonThisBall = FALSE) Then ' only 1 extra ball per ball...
- LightExtraBall.Set BulbBlink, "10", 150
- Else
- LightSpecial.Set BulbBlink, "10", 150
- AttackAwardLevel = 2
- End If
- End Select
- If (bBallSaverActive = FALSE) and (bMultiBallMode = FALSE) and (TimeAttack = FALSE) Then
- bBallSaverActive = TRUE
- BallSaverTimer.Enabled = FALSE
- BallSaverTimer.Set TRUE, 6000
- Countdown.FadeIn: Countdown.Frame 32
- End If
- End If
- Else
- If (ObiWanPerk = TRUE) Then
- VaderHitValue(CP) = VaderHitValue(CP) + 250
- End If
- If (TimeAttack = FALSE) Then
- AddScore(VaderHitValue(CP))
- DMDBusy = TRUE: DMDTimer.Set TRUE, 1000
- MyDMD.QueueText "[edge3][f4][yc]VADER - " & FormatNumber(VaderHitValue(CP), 0, -1, 0, -1), deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc]VADER - " & FormatNumber(VaderHitValue(CP), 0, -1, 0, -1), deNone, 1000, TRUE
- End If
- VaderAnimation(8)
- PlaySound "fx_VDHit"
- LightSeqPF.Play SeqBlinking, , 2, 100
- IncrementEmpireBonus(10)
- End If
- End Sub
- Sub ResetVADER()
- LightV.Set BulbBlink, "10", 125
- LightA.Set BulbBlink, "10", 125
- LightD.Set BulbBlink, "10", 125
- LightE.Set BulbBlink, "10", 125
- LightR.Set BulbBlink, "10", 125
- End Sub
- ' *********************************
- ' ** **
- ' ** FALCON KICKER **
- ' ** **
- ' *********************************
- ' Han Solo and the Millenium Falcon will award you with special Combo awards, Extra Balls, Specials and start
- ' the Video Mode.
- Sub FalconKicker_Hit()
- 'PlaySound "fx_SolenoidHitL"
- DOFLinx_FalconKicker_Hit() 'DOFLinx - Falcon Kicker Hit
- If (fpTilted = TRUE) Then
- FalconKicker.SolenoidPulse
- Exit Sub
- End If
- If (VictoryLap = TRUE) Then VictoryHit(): FalconKicker.SolenoidPulse: DOFLinx_FalconKicker(): Exit Sub
- AddScore (10000)
- AllPlasOff()
- MovieTimer.Enabled = FALSE
- Crossover.Collidable = FALSE
- ' a combo shot will automatically advance to the next Level...(2 shots in quick succession)...
- If (FalconComboTimer.Enabled = TRUE) Then ' a combo hit...
- SoloBulb1.Set BulbBlink, "1000", 100
- SoloBulb2.Set BulbBlink, "0100", 100
- SoloBulb3.Set BulbBlink, "0010", 100
- SoloBulb4.Set BulbBlink, "0001", 100
- LightShipMiddle.Set BulbBlink, "10", 150
- MyDMD.QueueText "[edge3][f4][yc][xc][bf]COMBO SHOT", deNone, 1000, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc][bf]COMBO SHOT", deNone, 1000, FALSE
- If (TimeAttack = TRUE) Then
- MyDMD.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
- TATime = TATime + 10
- End If
- RampTally(CP) = 4
- FalconKicker.SolenoidPulse
- DOFLinx_FalconKicker() 'DOFLinx - FalconKicker
- DOFLinx_Solo_Sequence() 'DOFLinx_Solo_Sequence
- If (R2Out = FALSE) Then
- PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1)
- End If
- PlaySound "vo_YeeHa": PlaySound "fx_FalconEject"
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 794, 835
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 794, 835
- FalconComboTimer.Set TRUE, 4000
- Exit Sub
- End If
- ' Han Solo will save Luke from Vader allowing an easy shot to the Death Star's exhaust port...
- If (bMultiballMode = TRUE) Then
- If (LightJackpot.State = BulbOff) Then
- FalconKicker.SolenoidPulse
- DOFLinx_FalconKicker() 'DOFLinx - FalconKicker
- If (fpBallID = 1) Then
- DOFLinx_Solo_Sequence() 'DOFLinx_Solo_Sequence
- PlaySound "fx_FalconEject"
- PlaySound "vo_YeeHa"
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 794, 835
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 794, 835
- End If
- End If
- Exit Sub
- End If
- ' go straight to the video mode if Han Perk is active...
- If (HanPerk = TRUE) Then
- HanPerk = FALSE
- DMDTimer.Enabled = FALSE: DMDBusy = FALSE
- MyDMD.FlushQueue: MyDMD2.FlushQueue
- MyDMD.QueueText "[edge3][f4][yc][xc]VIDEO MODE", deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]VIDEO MODE", deNone, 1000, TRUE
- EffectMusic 1, FadeOutAndPause, 0, 0
- PlaySound "fx_Beeps"
- PlaySound "vo_HoldThemOff"
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.Frame 318: NewMovieHUD.Frame 318
- VMStart.Set TRUE, 1600
- Exit Sub
- End If
- If (RampTally(CP) = 4) Then
- DMDTimer.Enabled = FALSE: DMDBusy = FALSE
- MyDMD.FlushQueue: MyDMD2.FlushQueue
- MyDMD.QueueText "[edge3][f4][yc][xc][bf]LEVEL UP", deNone, 1000, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc][bf]LEVEL UP", deNone, 1000, FALSE
- If (TimeAttack = TRUE) Then
- MyDMD.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1500, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1500, TRUE
- TATime = TATime + 15
- TurnOffBackBoxLights()
- FalconKicker.SolenoidPulse
- DOFLinx_FalconKicker() 'DOFLinx - FalconKicker
- DOFLinx_Solo_Sequence() 'DOFLinx_Solo_Sequence
- PlaySound "fx_FalconEject"
- If (R2Out = FALSE) Then
- PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1)
- End If
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 138, 158
- HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 138, 158
- FalconComboTimer.Set TRUE, 4000
- Else
- MyDMD.QueueText "[edge3][f4][yc][xc]VIDEO MODE", deFlip, 2000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]VIDEO MODE", deFlip, 2000, TRUE
- EffectMusic 1, FadeOutAndPause, 0, 0
- PlaySound "fx_Beeps"
- PlaySound "vo_HoldThemOff"
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.Frame 318: NewMovieHUD.Frame 318
- VMStart.Set TRUE, 1600
- End If
- Else
- TurnOffBackBoxLights()
- FalconKicker.SolenoidPulse
- PlaySound "fx_FalconEject"
- If (R2Out = FALSE) Then
- PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1)
- End If
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 138, 158
- HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 138, 158
- FalconComboTimer.Set TRUE, 4000
- End If
- End Sub
- Sub FalconTimer_Expired()
- FalconTimer.Enabled = FALSE
- PlaySound "fx_FalconEject"
- FalconKicker.SolenoidPulse
- DOFLinx_FalconKicker() 'DOFLinx - FalconKicker
- DOFLinx_Solo_Sequence() 'DOFLinx_Solo_Sequence
- End Sub
- Sub FalconComboTimer_Expired()
- FalconComboTimer.Enabled = FALSE
- End Sub
- Sub VMStart_Expired()
- VMStart.Enabled = FALSE
- VMode = TRUE
- DOFLinx_Falcon_VideoMode_Start() 'DOFLinx_Falcon_VideoMode_Start
- PlayMusic 2, "Music_VMStart"
- PlaySound "fx_TIEAttacks"
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
- NewMovie.Frame 170, 316: NewMovieHUD.Frame 170, 316
- QFire = 0: Hit = 0
- FalconFire.Set TRUE, 2500
- VMEnd.Set TRUE, 12300
- End Sub
- Sub FalconFire_Expired()
- FalconFire.Enabled = FALSE
- PlaySound "fx_ShortBeep"
- MissFire.Set TRUE, QTE(CP)
- Select Case RandomNumber(2)
- Case 1:
- FireL = TRUE: FireR = FALSE
- DOFLinx_Falcon_FireL() 'DOFLinx_Falcon_FireL
- MyDMD.Text = "[edge3][f4][yc][xc][bf]< FIRE "
- MyDMD2.Text = "[edge3][f4][yc][xc][bf]< FIRE "
- Case 2:
- FireR = TRUE: FireL = FALSE
- DOFLinx_Falcon_FireR() 'DOFLinx_Falcon_FireR
- MyDMD.Text = "[edge3][f4][yc][xc][bf] FIRE >"
- MyDMD2.Text = "[edge3][f4][yc][xc][bf] FIRE > "
- End Select
- End Sub
- Sub MissFire_Expired()
- MissFire.Enabled = FALSE
- FireL = FALSE: FireR = FALSE
- VMEnd.Enabled = FALSE
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_Missed"
- Case 2: PlaySound "vo_TooLate": VaderScoreLight.FlashForMs 600, 600, VaderScoreLight.State
- End Select
- DOFLinx_Falcon_Fire_Miss() 'DOFLinx_Falcon_Fire_Miss
- MyDMD.Text = "[edge3][f4][yc][xc]MISS"
- MyDMD2.Text = "[edge3][f4][yc][xc]MISS"
- NewMovie.Frame 319: NewMovieHUD.Frame 319
- MovieTimer.Set TRUE, 1000
- FalconTimer.Set TRUE, 1000
- StopMusic 2
- EffectMusic 1, PlayAndFadeIn, (vol), 100
- End Sub
- Sub VMEnd_Expired()
- VMEnd.Enabled = FALSE
- MissFire.Enabled = FALSE
- AddScore(350000)
- MyDMD.QueueText "[edge3][f4][yc][xc]GREAT JOB", deNone, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc]GREAT JOB", deNone, 800, FALSE
- MyDMD.QueueText "[edge3][f4][yc][xc][bf]350,000", deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc][bf]350,000", deFlip, 1000, TRUE
- PlaySound "vo_WeDidIt"
- DOFLinx_VideoMode_Won() 'DOFLinx_VideoMode_Won
- NewMovie.UpdateInterval = 200: NewMovieHUD.UpdateInterval = 200
- NewMovie.Frame 320, 321, 320: NewMovieHUD.Frame 320, 321, 320
- MovieTimer.Set TRUE, 2000
- FalconTimer.Set TRUE, 2000
- StopMusic 2
- EffectMusic 1, PlayAndFadeIn, vol, 100
- QTE(CP) = QTE(CP) - 10
- End Sub
- ' Mr John Williams, you are a god amongst men...
- Sub RestartMusic()
- If (bPadawanMode(CP) = TRUE) Then PlayMusic 1, "Music_Mode2", TRUE, Vol: Exit Sub
- If (bKnightMode(CP) = TRUE) Then PlayMusic 1, "Music_Mode3", TRUE, Vol: Exit Sub
- If (bMasterMode(CP) = TRUE) Then PlayMusic 1, "Music_Mode6", TRUE, Vol: Exit Sub
- If (bYodaMode(CP) = TRUE) Then PlayMusic 1, "Music_Mode5", TRUE, Vol: Exit Sub
- If (bSkywalker(CP) = TRUE) Then PlayMusic 1, "Music_Mode7", TRUE, Vol: Exit Sub
- PlayMusic 1, "Music_Mode1", TRUE, Vol
- End Sub
- ' **************************************
- ' ** **
- ' ** SOLO RAMP TRIGGER **
- ' ** **
- ' **************************************
- ' The Falcon Ramp trigger which lights a S-O-L-O letter.
- ' Complete S-O-L-O to gain level rewards.
- Sub SoloRampTrigger_Hit()
- set LastSwitchHit = SoloRampTrigger
- If (fpTilted = TRUE) Then Exit Sub
- If (VictoryLap = TRUE) Then Exit Sub
- RampTally(CP) = RampTally(CP) + 1
- If (bMultiBallMode = TRUE) Then
- If (fpBallID = 1) Then ' silver ball only...
- ' divert the ball into the plunger lane...
- LightJackpot.State = BulbOn
- DiverterGuide.Collidable = TRUE
- DiverterSurface.Collidable = TRUE
- RampDiverter.SolenoidOn
- RampDiverter2.SolenoidOn
- 'PlaySound "vo_TakeOff"
- TopLeftKickerLight.State = BulbOn
- FlasherLeft.FlashForMs 750, 75, BulbOff
- FlasherRight.FlashForMs 750, 75, BulbOff
- LightSeqPF.Play SeqDownOn, 45
- DMDBusy = TRUE: DMDTimer.Set TRUE, 3000
- MyDMD.QueueText "[edge3][f4][xc][yc][b]FIRE!", deNone, 3000, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]FIRE!", deNone, 3000, TRUE
- End If
- Else
- FalconFly
- If (RampTally(CP) = 1) Then
- SoloBulb1.FlashForMs 1500, 50, BulbOn
- DMDBusy = TRUE: DMDTimer.Set TRUE, 2000
- MyDMD.QueueText "[edge3][f4][yc][x40][bf]S[/bf][x56]O L O", deNone, 2000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][x40][bf]S[/bf][x56]O L O", deNone, 2000, TRUE
- DOFLinx_Solo_S_MX() 'DOFLinx_Solo_S_MX
- End If
- If (RampTally(CP) = 2) Then
- SoloBulb2.FlashForMs 1500, 50, BulbOn
- DMDBusy = TRUE: DMDTimer.Set TRUE, 2000
- MyDMD.QueueText "[edge3][f4][yc][x40]S[x56][bf]O[/bf][x72]L O", deNone, 2000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][x40]S[x56][bf]O[/bf][x72]L O", deNone, 2000, TRUE
- DOFLinx_Solo_O_MX() 'DOFLinx_Solo_O_MX
- End If
- If (RampTally(CP) = 3) Then
- SoloBulb3.FlashForMs 1500, 50, BulbOn
- DMDBusy = TRUE: DMDTimer.Set TRUE, 2000
- MyDMD.QueueText "[edge3][f4][yc][x40]S O[x72][bf]L[/bf][x88]O", deNone, 2000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][x40]S O[x72][bf]L[/bf][x88]O", deNone, 2000, TRUE
- DOFLinx_Solo_L_MX() 'DOFLinx_Solo_L_MX
- End If
- If (RampTally(CP) = 4) Then
- SoloBulb1.Set BulbBlink, "1000", 100
- SoloBulb2.Set BulbBlink, "0100", 100
- SoloBulb3.Set BulbBlink, "0010", 100
- SoloBulb4.Set BulbBlink, "0001", 100
- LightShipMiddle.Set BulbBlink, "10", 150
- DMDBusy = TRUE: DMDTimer.Set TRUE, 2000
- MyDMD.QueueText "[edge3][f4][yc][xc][bf]S O L O", deNone, 2000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc][bf]S O L O", deNone, 2000, TRUE
- DOFLinx_Solo_SOLO_MX() 'DOFLinx_Solo_SOLO_MX
- HologramR2D2.Frame 4: R2D2Fade.Set TRUE, 3000
- End If
- If (RampTally(CP) => 5) Then
- SoloBulb1.State = BulbOff: SoloBulb2.State = BulbOff: SoloBulb3.State = BulbOff: SoloBulb4.State = BulbOff
- RampTally (CP) = 0
- LightShipMiddle.State = BulbOff
- SoloTally(CP) = SoloTally(CP) + 1
- CheckSoloTally()
- End If
- PlaySound "fx_SaberClash2"
- FlasherLeft.Set BulbBlink, "101000000000", 75
- FlasherLeftBulb.Set BulbBlink, "101000000000", 75
- FlasherRight.Set BulbBlink, "000000101000", 75
- LightSeqPF.Play SeqDownOn, 55
- End If
- End Sub
- Sub CheckSoloTally()
- DMDBusy = TRUE: DMDTimer.Set TRUE, 2000
- If (SoloTally(CP) = 1) Then
- BulbBottom.FlashForMs 1500, 100, BulbOn
- If (TimeAttack = TRUE) Then
- MyDMD.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
- MyDMD.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
- TATime = TATime + 15
- Else
- AddScore (150000)
- MyDMD.QueueText "[edge3][f4][yc][xc][bf]LVL 1 - 150,000", deNone, 2000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc][bf]LVL 1 - 150,000", deNone, 2000, TRUE
- End If
- PFFlash.Set TRUE, 125: FlashME = 10
- End If
- If (SoloTally(CP) = 2) Then
- BulbMiddle.FlashForMs 1500, 100, BulbOn
- If (TimeAttack = TRUE) Then
- MyDMD.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
- MyDMD.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
- TATime = TATime + 15
- Else
- AddScore(1138000)
- PlaySound "vo_Special"
- MyDMD.QueueText "[edge3][f3][yc][xc][bf]LVL 2 - SPECIAL", deNone, 2000, TRUE
- MyDMD2.QueueText "[edge3][f3][yc][xc][bf]LVL 2 - SPECIAL", deNone, 2000, TRUE
- End If
- PFFlash.Set TRUE, 125: FlashME = 10
- End If
- If (SoloTally(CP) = 3) Then
- BulbTop.FlashForMs 1500, 100, BulbOn
- If (TimeAttack = TRUE) Then
- MyDMD.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
- MyDMD.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
- TATime = TATime + 15
- Else
- If (bExtraBallWonThisBall = FALSE) Then
- AwardExtraBall()
- PlaySound "vo_ExtraBall"
- MyDMD.QueueText "[edge3][f3][yc][xc][bf]LVL 3 - EXTRA BALL", deNone, 2000, TRUE
- MyDMD2.QueueText "[edge3][f3][yc][xc][bf]LVL 3 - EXTRA BALL", deNone, 2000, TRUE
- Else
- AddScore(1138000)
- End If
- End If
- SoloTally(CP) = 0
- BulbBottom.State = BulbOff: BulbMiddle.State = BulbOff: BulbTop.State = BulbOff
- PFFlash.Set TRUE, 125: FlashME = 10
- End If
- End Sub
- Sub Trigger19_Hit()
- AllPlasOn(): TurnOnBackBoxLights()
- FlasherLeft.State = BulbOff: FlasherLeftBulb.State = BulbOff
- FlasherRight.State = BulbOff
- End Sub
- Sub Trigger30_Hit()
- AllPlasOn(): TurnOnBackBoxLights()
- FlasherLeft.State = BulbOff: FlasherLeftBulb.State = BulbOff
- FlasherRight.State = BulbOff
- DiverterGuide.Collidable = FALSE
- DiverterSurface.Collidable = FALSE
- RampDiverter.SolenoidOff
- RampDiverter2.SolenoidOff
- End Sub
- Sub Trigger4_Hit()
- AllPlasOn(): TurnOnBackBoxLights()
- FlasherLeft.State = BulbOff: FlasherLeftBulb.State = BulbOff
- Flasher2.State = BulbOff
- End Sub
- ' ***********************************
- ' ** **
- ' ** ATTACK KICKER **
- ' ** **
- ' ***********************************
- ' attack bonuses - 50k, extra ball, special, bonus held.
- ' progress resets for each new ball.
- Sub AttackKicker_Hit()
- 'PlaySound "fx_SolenoidHitR"
- DOFLinx_AttackKicker_Hit() 'DOFLinx - AttackKicker_Hit
- If (fpTilted = TRUE) Then EjectTimer.Set TRUE, 500: Exit Sub
- If (VictoryLap = TRUE) Then VictoryHit(): EjectTimer.Set TRUE, 500: Exit Sub
- ' if Rebellion Bonus is full, collect it...
- CollectRebellionBonus()
- If (LightDock.State = BulbBlink) Then
- DMDBusy = TRUE: DMDTimer.Set TRUE, 2500
- MyDMD.UpdateInterval = 5: MyDMD2.UpdateInterval = 5
- If (Light50000Points.State = BulbBlink) Then
- Light50000Points.State = BulbOn
- AttackAwardLevel = 1
- If (TimeAttack = TRUE) Then
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000: MusicFade(2900): PlaySound "vo_StillApproaching2"
- DMDTimer.Set TRUE, 1600
- MyDMD.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
- MyDMD.QueueText "[edge3][f4][yc][xc]+ 10 SECONDS", deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]+ 10 SECONDS", deFlip, 1000, TRUE
- PlaySound "fx_Beeps5": BulbBeeps.FlashForMs 1300, 75, BulbOff
- TATime = TATime + 10
- EjectTimer.Set TRUE, 1300
- Else
- AddScore(50000)
- MyDMD.QueueText "[edge3][f4][yc][xc]ATTACK BONUS", deNone, 1000, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc]ATTACK BONUS", deNone, 1000, FALSE
- MyDMD.QueueText "[edge3][f4][yc][xc][b]50,000", deFlip, 1500, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc][b]50,000", deFlip, 1500, FALSE
- DockTimer.Set TRUE, 2300
- End If
- End If
- If (LightSpecial.State = BulbBlink) Then
- LightSpecial.State = BulbOn
- AttackAwardLevel = 2
- If (TimeAttack = TRUE) Then
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000: MusicFade(2900): PlaySound "vo_StillApproaching2"
- DMDTimer.Set TRUE, 1600
- MyDMD.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
- MyDMD.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]+ 15 SECONDS", deFlip, 1000, TRUE
- PlaySound "fx_Beeps5": BulbBeeps.FlashForMs 1300, 75, BulbOff
- TATime = TATime + 15
- EjectTimer.Set TRUE, 1300
- Else
- LightSpecialL.FlashForMs 1200, 150, BulbOn
- LightSpecialR.FlashForMs 1200, 150, BulbOn
- MyDMD.QueueText "[edge3][f4][yc][xc]ATTACK BONUS", deNone, 1000, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc]ATTACK BONUS", deNone, 1000, FALSE
- MyDMD.QueueText "[edge3][f4][yc][xc][b]SPECIAL IS LIT", deFlip, 1500, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc][b]SPECIAL IS LIT", deFlip, 1500, FALSE
- DockTimer.Set TRUE, 2300
- End If
- End If
- If (LightExtraBall.State = BulbBlink) Then
- LightExtraBall.FlashForMs 1200, 150, BulbOn
- AttackAwardLevel = 0
- If (TimeAttack = TRUE) Then
- PlaySound "vo_GreatShot"
- DMDTimer.Set TRUE, 1600
- MyDMD.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc][bf]TIME EXTENDED", deFlip, 800, FALSE
- MyDMD.QueueText "[edge3][f4][yc][xc]+ 20 SECONDS", deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]+ 20 SECONDS", deFlip, 1000, TRUE
- PlaySound "fx_Beeps5": BulbBeeps.FlashForMs 1300, 75, BulbOff
- TATime = TATime + 20
- EjectTimer.Set TRUE, 1300
- Else
- If (bExtraBallWonThisBall = FALSE) Then
- AwardExtraBall()
- Else
- AddScore(1138000)
- End If
- MyDMD.QueueText "[edge3][f4][yc][xc]ATTACK BONUS", deNone, 1000, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc]ATTACK BONUS", deNone, 1000, FALSE
- MyDMD.QueueText "[edge3][f4][yc][xc][b]EXTRA BALL", deFlip, 1500, FALSE
- MyDMD2.QueueText "[edge3][f4][yc][xc][b]EXTRA BALL", deFlip, 1500, FALSE
- DockTimer.Set TRUE, 2300
- End If
- End If
- TIETally(CP) = TIETally (CP) + 1: CheckTIETally()
- If (TimeAttack = TRUE) Then Exit Sub
- AllPlasOff(): TurnOffBackBoxLights()
- LightSeqPF.Play SeqBlinking, , 4, 125
- If (bMultiballMode = FALSE) Then
- Select Case RandomNumber(2)
- Case 1:
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
- NewMovie.Frame 449, 484: NewMovieHUD.Frame 449, 484
- PlaySound "fx_AttackHitGS"
- MovieTimer.Set TRUE, 2300
- TieFighter_Explosion
- Case 2:
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 511, 546
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 511, 546
- TieFighter_Explosion
- Select Case RandomNumber(4)
- Case 1: PlaySound "fx_AttackHitGS": DOFLinx_Attack_Kicker_XWingBlast_Explosion() 'DOFLinx_Attack_Kicker_XWingBlast_Explosion
- Case 2: PlaySound "fx_AttackHitGS2": DOFLinx_Attack_Kicker_XWingBlast_Explosion() 'DOFLinx_Attack_Kicker_XWingBlast_Explosion
- Case 3,4: PlaySound "fx_AttackHit": DOFLinx_Attack_Kicker_XWingBlast_Explosion() 'DOFLinx_Attack_Kicker_XWingBlast_Explosion
- End Select
- End Select
- If (BonusHeld = FALSE) Then BonusHeld = BonusHeld - 1
- if use_Animated_Space_Battles = true then Flasher2.FlashForMs 1200, 50, BulbOff
- if use_Animated_Space_Battles = false then FlasherRight.FlashForMs 1200, 50, BulbOff
- If (BonusHeld > 0) Then
- MyDMD.QueueText "[edge3][f4][xc][yc] ", deNone, 100, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc] ", deNone, 100, TRUE
- EjectTimer.Set TRUE, 2300
- Else
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]BONUS HELD", deNone, 1200, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]BONUS HELD", deNone, 1200, TRUE
- BonusHeld = 5
- HoldBonus = TRUE
- EjectTimer.Set TRUE, 3500
- End If
- End If
- Else
- ' don't shoot this if unlit during Time Attack, it just wastes time...
- If (TimeAttack = TRUE) Then
- PlaySound "fx_Probe"
- PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
- DMDBusy = TRUE: DMDTimer.Set TRUE, 1000
- If (TATime < 60) Then
- MyDMD.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]TIME: " & TATime & " SECONDS"
- MyDMD2.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]TIME: " & TATime & " SECONDS"
- Else
- ShowTime()
- MyDMD.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]" & ShowMin & " MIN: " & ShowSec & " SECS"
- MyDMD2.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]" & ShowMin & " MIN: " & ShowSec & " SECS"
- End If
- EjectTimer.Set TRUE, 1200
- Exit Sub
- End If
- If (bMultiballMode = FALSE) Then
- AttackBonus = AttackBonus + 2500
- AllPlasOff(): TurnOffBackBoxLights()
- AddScore(AttackBonus)
- If (HoldBonus = FALSE) Then
- BonusHeld = BonusHeld - 1
- If (BonusHeld <= 0) Then
- BonusHeld = 5
- EffectMusic 1, FadeOutAndPause, 0, 50: MusicResume2.Set TRUE, 2000
- PlaySound "vo_Held"
- DMDTimer.Set TRUE, 2500
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]BONUS HELD", deNone, 1200, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]BONUS HELD", deNone, 1200, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(AttackBonus, 0, -1, 0, -1), deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(AttackBonus, 0, -1, 0, -1), deNone, 1000, TRUE
- HoldBonus = TRUE
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 190, 191, 190
- HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 190, 191, 190
- MovieTimer.Set TRUE, 1500
- EjectTimer.Set TRUE, 2000
- Else
- LightSeqPF.Play SeqBlinking, , 4, 125
- FlasherRight.FlashForMs 1000, 50, BulbOff
- If (MovieTimer.Enabled = FALSE) Then
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- Select Case TIEPlay
- Case 1:
- PlaySound "fx_TIEAttacks8"
- TieFighter_Move
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 681, 702
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 681, 702
- TIEPlay = 2
- Case 2:
- PlaySound "fx_TIEAttacks8"
- TieFighter_Move
- PlaySound "vo_WatchIt"
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 939, 962
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 939, 962
- TIEPlay = 3
- Case 3:
- PlaySound "fx_TIEAttacks8"
- TieFighter_Move
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 703, 720
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 703, 720
- TIEPlay = 4
- Case 4:
- FlasherRight.Set BulbBlink, "01010001000000111000111000", 50
- PlaySound "fx_TIEAttacks6"
- TieFighter_Move
- End Select
- Else
- FlasherRight.Set BulbBlink, "01010001000000111000111000", 50
- PlaySound "fx_TIEAttacks7"
- TieFighter_Move
- End If
- DMDTimer.Set TRUE, 3000
- MyDMD.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD2.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD2.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD2.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD2.QueueText "[edge3][box2,1,1,128,16][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]TIE ATTACK!", deNone, 75, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]BONUS HELD IN " & BonusHeld, deNone, 1000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]BONUS HELD IN " & BonusHeld, deNone, 1000, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(AttackBonus, 0, -1, 0, -1), deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(AttackBonus, 0, -1, 0, -1), deNone, 1500, TRUE
- EjectTimer.Set TRUE, 1000
- End If
- Else
- LightSeqPF.Play SeqBlinking, , 4, 125
- FlasherRight.FlashForMs 1000, 50, BulbOff
- PlaySound "fx_BallEject2", 0.8
- DMDTimer.Set TRUE, 2300
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]ATTACK BONUS", deNone, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]ATTACK BONUS", deNone, 800, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(AttackBonus, 0, -1, 0, -1), deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(AttackBonus, 0, -1, 0, -1), deNone, 1500, TRUE
- EjectTimer.Set TRUE, 800
- End If
- End If
- End If
- If (bMultiballMode = TRUE) Then
- PlaySound "fx_Explode2"
- EjectTimer.Set TRUE, 500
- Else
- If (R2Out = FALSE) Then
- PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1200
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, -25, 1, 1.2)
- End If
- End If
- End Sub
- Sub DockTimer_Expired()
- DockTimer.Enabled = FALSE
- Select Case AttackAwardLevel
- Case 1:
- MovieOverlay.UpdateInterval = 80: MovieOverlay.Frame 551, 552, 551
- HUDOverLay.UpdateInterval = 80: HUDOverLay.Frame 551, 552, 551
- If (bMultiballMode = FALSE) Then
- DOFLinx_50000_MX() 'DOFLinx_50000_MX
- MusicFade(800): PlaySound "vo_50k"
- 'PlaySound "vo_Why50K"
- End If
- Case 2:
- MovieOverlay.UpdateInterval = 80: MovieOverlay.Frame 549, 550, 549
- If (bMultiballMode = FALSE) Then MusicFade(600): PlaySound "vo_Special", 0.8
- DOFLinx_Special_MX() 'DOFLinx_Special_MX
- HUDOverLay.UpdateInterval = 80: HUDOverLay.Frame 549, 550, 549
- Case 0:
- MovieOverlay.UpdateInterval = 80:MovieOverlay.Frame 547, 548, 547
- If (bMultiballMode = FALSE) Then MusicFade(800): PlaySound "vo_ExtraBall", 0.8
- DOFLinx_ExtraBall_MX() 'DOFLinx_ExtraBall_MX
- HUDOverLay.UpdateInterval = 80: HUDOverLay.Frame 547, 548, 547
- End Select
- MovieTimer.Set TRUE, 1500
- End Sub
- Sub EjectTimer_Expired()
- EjectTimer.Enabled = False
- AttackKicker.SolenoidPulse
- DOFLinx_AttackKicker() 'DOFLinx - AttackKicker
- If (fpTilted = TRUE) Then Exit Sub
- AllPlasOn(): TurnOnBackBoxLights()
- FlasherRight.Set BulbOff, "10", 125
- If (R2Out = FALSE) Then
- PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1)
- End If
- If (LightDock.State = BulbBlink) Then
- ResetVADER()
- LightDock.State = BulbOff: 'DockLight.State = BulbOff
- 'If (bMultiballMode = FALSE) Then PlaySound "vo_GreatShot"
- Else
- 'NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- 'NewMovie.UpdateInterval = 60: NewMovieHUD.UpdateInterval = 60
- 'NewMovie.Frame 322, 350: NewMovieHUD.Frame 322, 350
- 'MovieTimer.Set TRUE, 1200
- 'PlaySound "fx_Explode"
- End If
- If (TimeAttack = TRUE) and (fpTilted = FALSE) Then PlaySound "fx_SmallBlaster2": LightSeqPF.Play SeqBlinking, , 1, 100
- DOLFinx_AttackKicker_Explosion() 'DOLFinx_AttackKicker_Explosion
- End Sub
- Sub ResetDockLights()
- LightDock.State = BulbOff
- Light50000Points.State = BulbOff
- LightSpecial.State = BulbOff
- LightExtraBall.State = BulbOff
- End Sub
- Dim DoubleHit
- ' *****************************
- ' ** **
- ' ** VADER KICKER **
- ' ** **
- ' *****************************
- ' Darth Vader, the man himself, will join the fight in his ridiculously cool and pimped out TIE Fighter.
- ' Keep shooting his lane to start Double Playfield Scoring for a limited time.
- ' This shot also awards a new Jedi ranking, when lit.
- Sub VaderKicker_Hit()
- If (fpTilted = TRUE) Then KickerVUKTimer.Set TRUE, 100: Exit Sub
- If (DoubleHit = TRUE) Then DoubleHit = FALSE: Exit Sub
- If (VictoryLap = TRUE) Then VictoryHit(): KickerVUK.SolenoidPulse: DOFLinx_KickerVUK(): DOFLinx_KickerVUK_MX(): Exit Sub
- If (BallsInLock =>1) Then
- MyDMD.Text = "[f2][edge3][yc][xc][b]KICKER IN USE"
- MyDMD2.Text = "[f2][edge3][yc][xc][b]KICKER IN USE"
- Exit Sub
- End If
- If (R2Out = FALSE) Then
- PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1200
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 25, 1, 1.2)
- End If
- ' if Empire Bonus is full, collect it...
- CollectEmpireBonus()
- IncrementEmpireBonus(10)
- PlaySound "fx_SolenoidHitL"
- DOFLinx_VaderKicker_Hit() 'DOFLinx - VaderKicker Hit
- EjectBall = TRUE
- If (LightLeftLock.State = BulbBlink) Then ' final confrontation with Vader...
- bMultiBallMode = TRUE
- ' change the camera angle...
- CameraView_Mutliball
- PlayMusic 1, "Music_Final", TRUE, Vol
- If (TimeAttack = FALSE) Then
- PlaySound "vo_30SecsLeft"
- DOFLinx_DeathStar_MB_Start() 'DOFLinx_DeathStar_MB_Start
- DeathStarTimer2.Enabled = TRUE: TenSecondTimer.Set TRUE, 20000
- CountDown.FadeIn: Countdown.Frame 1, 31
- Else
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1500
- MusicFade(1500): PlaySound "vo_FaceHim": VaderScoreLight.FlashForMs 1500, 1500, VaderScoreLight.State
- End If
- MovieOverlay.UpdateInterval = 100: HUDOverLay.UpdateInterval = 100
- MovieOverlay.Frame 319, 337: HUDOverlay.Frame 319, 337
- MyDMD.QueueText "[f3][edge3][yc][xc][bf]DESTROY DEATH STAR!", deNone, 1500, FALSE
- MyDMD2.QueueText "[f3][edge3][yc][xc][bf]DESTROY DEATH STAR!", deNone, 1500, FALSE
- MyDMD.QueueText "[f3][edge3][yc][xc][b]SHOOT SOLO LANE", deFlip, 2000, TRUE
- MyDMD2.QueueText "[f3][edge3][yc][xc][b]SHOOT SOLO LANE", deFlip, 2000, TRUE
- LightLeftLock.State = BulbOff
- LightLeftPowerUp.State = BulbOff
- BulbLeftStar1.State = BulbOn
- BulbLeftStar2.State = BulbOn
- BulbLeftStar3.State = BulbOn
- MBDelay.Set TRUE, 2200 ' another ball is ejected and auto-fireed from the plunger lane...
- DoubleHit = TRUE
- EjectBall = FALSE
- ' the ball in the Vader VUK now turns into Vader (black) and is ejected along the wire ramp...
- VaderKicker.DestroyBall: DeleteTrackedBall(VaderKicker)
- VaderKicker.CreateCaptiveBall 200, 200, 200, 1: AddTrackedBall(VaderKicker)
- ' timer to eject Vader...
- KickerVUKTimer.Set TRUE, 3700
- ' Remember Luke: only you (the silver ball) can make the shot to destroy the Death Star...
- Exit Sub
- End If
- If (LightLeftPowerUp.State = BulbBlink) and (bMultiballMode = FALSE) Then
- LightLeftPowerUp.State = BulbOff
- BulbLeftStar1Ext.SetLitColor 129, 223, 254
- BulbLeftStar2Ext.SetLitColor 129, 223, 254
- BulbLeftStar3Ext.SetLitColor 129, 223, 254
- BulbLeftStar1.State = BulbOff
- BulbLeftStar2.State = BulbOff
- BulbLeftStar3.State = BulbOff
- AddScore(500000)
- AllPlasOff(): TurnOffBackBoxLights()
- If (MovieTimer.Enabled = FALSE) Then
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
- NewMovie.Frame 449, 484: NewMovieHUD.Frame 449, 484
- PlaySound "fx_AttackHit"
- Flasher2.FlashForMs 1200, 100, BulbOff
- PowerMeUp.Set TRUE, 1900
- TieFighter_Explosion
- 'PFFlash.Set TRUE, 110: FlashME = 4
- Else
- PowerMeUp.Set TRUE, 50
- End If
- Exit Sub
- End If
- BallsInLock = BallsInLock + 1
- If (EjectBall = TRUE) Then
- dim ET
- Eject = Eject + 1
- VaderValue = VaderValue + 5000
- AddScore(VaderValue)
- If (Eject > 1) Then
- DMDBusy = TRUE: DMDTimer.Set TRUE, 3000
- MyDMD.QueueText "[edge3][f4][xc][yc][b]VADER ATTACKS", deNone, 1000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]VADER ATTACKS", deNone, 1000, FALSE
- If (TimeAttack = FALSE) Then
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(VaderValue, 0, -1, 0, -1), deNone, 2000, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]" & FormatNumber(VaderValue, 0, -1, 0, -1), deNone, 2000, TRUE
- End If
- End If
- AllPlasOff(): TurnOffBackBoxLights()
- If (bMultiballMode = FALSE) Then
- MovieTimer.Enabled = FALSE: StopMovie()
- If (QuoteBusy = TRUE) Then
- If (Eject = 6) Then
- If (TimeAttack = TRUE) Then
- MyDMD.FlushQueue: MyDMD2.FlushQueue: DMDTimer.Set TRUE, 3000
- MyDMD.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
- TATime = TATime + 20
- Else
- ScoreX = BonusMultiplier(CP)
- If (BonusMultiplier(CP) = 1) Then ScoreX = 2
- MyDMD.FlushQueue: MyDMD2.FlushQueue: DMDTimer.Set TRUE, 2000
- MyDMD.QueueText "[edge3][f4][xc][yc][b]X " & ScoreX & " SCORING", deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]X " & ScoreX & " SCORING", deNone, 1000, TRUE
- VaderScoreTimer.Set TRUE, 37000
- VaderScoring = TRUE
- VaderScoreLight.State = BulbBlink
- End If
- Eject = 1
- End If
- KickerTopLeftTimer.Set TRUE, 500
- Exit Sub
- End If
- Select Case Eject
- Case 1:
- VaderAnimation(6)
- FlasherLeft.State = BulbOn
- Select Case RandomNumber(3)
- Case 1: MusicFade(4900): PlaySound "vo_SmallForce2": ET = 4900: VaderScoreLight.FlashForMs 4900, 4900, VaderScoreLight.State
- Case 2: MusicFade(2100): PlaySound "vo_RebelAlerted": ET = 2000: VaderScoreLight.FlashForMs 2000, 2000, VaderScoreLight.State
- Case 3: MusicFade(2400): PlaySound "vo_DeployFleet": ET = 2300: VaderScoreLight.FlashForMs 2400, 2400, VaderScoreLight.State
- End Select
- KickerTopLeftTimer.Set TRUE, ET
- Case 2:
- VaderAnimation 9
- FlasherLeft.State = BulbOn
- Select Case RandomNumber(3)
- Case 1:
- PlaySound "vo_TakeThem": ET = 1000
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 609, 623
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 609, 623
- Case 2:
- PlaySound "vo_MainGroup": ET = 1800
- Case 3:
- MusicFade(1200): PlaySound "vo_ShipToShip": ET = 1400
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 444, 466
- HUDOverLay.UpdateInterval = 66: HUDOverlay.Frame 444, 466
- End Select
- KickerTopLeftTimer.Set TRUE, ET
- Case 3:
- VaderAnimation(2)
- FlasherLeft.State = BulbOn
- Select Case RandomNumber(3)
- Case 1: PlaySound "vo_AttackFormation": ET = 1000
- Case 2: PlaySound "vo_CloseFormation": ET = 800
- Case 3: PlaySound "vo_WantShip": ET = 1000
- End Select
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 609, 623
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 609, 623
- KickerTopLeftTimer.Set TRUE, ET
- Case 4:
- VaderAnimation(11)
- KickerVUKTimer.Set TRUE, 800: FlasherLeft.State = BulbOn: PlaySound "vo_HaveYouNow"
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 609, 623
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 609, 623
- Case 5:
- PFFlash.Set TRUE, 110: FlashME = 0
- TIElight1.Set BulbBlink, "0101", 75
- TIElight2.Set BulbBlink, "0101", 75
- Select Case RandomNumber(2)
- Case 1:
- XWing_Explosion
- MovieTimer.Set TRUE, 2700
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 66: NewMovieHUD.UpdateInterval = 66
- NewMovie.Frame 386, 427: NewMovieHUD.Frame 386, 427
- PlaySound "vfx_VaderKill"
- KickerTopLeftTimer.Set TRUE, 1500
- FlasherLeft.FlashForMs 1500, 50, BulbOff
- TieVaderBulb1.FlashForMs 1500, 50, BulbOff
- TieVaderBulb2.FlashForMs 1500, 50, BulbOff
- Case 2:
- XWing_Explosion
- PlaySound "fx_BallEject"
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 39: MovieOverlay.Frame 339, 405
- HUDOverlay.UpdateInterval = 39: HUDOverlay.Frame 339, 405
- KickerTopLeftTimer.Set TRUE, 1800
- FlasherLeft.FlashForMs 1800, 50, BulbOff
- TieVaderBulb1.FlashForMs 1800, 50, BulbOff
- TieVaderBulb2.FlashForMs 1800, 50, BulbOff
- End Select
- Case 6:
- If (TimeAttack = TRUE) Then
- MyDMD.FlushQueue: MyDMD2.FlushQueue
- MyDMD.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc][b]TIME EXTENDED", deFlip, 1000, TRUE
- TATime = TATime + 20
- Else
- ScoreX = BonusMultiplier(CP)
- If (BonusMultiplier(CP) = 1) Then ScoreX = 2
- MyDMD.FlushQueue: MyDMD2.FlushQueue
- MyDMD.QueueText "[edge3][f4][xc][yc][b]X " & ScoreX & " SCORING", deNone, 2500, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]X " & ScoreX & " SCORING", deNone, 2500, TRUE
- VaderScoreTimer.Set TRUE, 37000
- VaderScoring = TRUE
- VaderScoreLight.State = BulbBlink
- End If
- XWing_Explosion
- KickerVUKTimer.Set TRUE, 3000
- PlaySound "fx_VaderAttacks"
- PlayMusic 5, "vo_Lost", FALSE, 1, 2200
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 747, 793
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 747, 793
- FlasherLeft.FlashForMs 1800, 50, BulbOff
- TIElight1.Set BulbBlink, "0101", 75
- TIElight2.Set BulbBlink, "0101", 75
- TieVaderBulb1.FlashForMs 1800, 50, BulbOff
- TieVaderBulb2.FlashForMs 1800, 50, BulbOff
- PFFlash.Set TRUE, 110: FlashME = 4
- Eject = 1
- HologramR2D2.Frame 5: R2D2Fade.Set TRUE, 3000
- End Select
- Else
- AddScore(VaderValue*2)
- KickerVUKTimer.Set TRUE, 500: FlasherLeft.State = BulbOn
- End If
- End If
- set LastSwitchHit = VaderKicker
- End Sub
- Sub PadawanTimer_Expired()
- PadawanTimer.Enabled = FALSE
- DOFLinx_Padawan_Powerup() 'DOFLinx_Padawan_Powerup
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 231, 232, 231: MusicFade(1200): PlaySound "vo_Padawan"
- HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 231, 232, 231
- MovieTimer.Set TRUE, 3000
- End Sub
- Sub JediKnightTimer_Expired()
- JediKnightTimer.Enabled = FALSE
- DOFLinx_Jedi_Powerup() 'DOFLinx_Jedi_Powerup
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 233, 234, 233: MusicFade(1200): PlaySound "vo_JediKnight"
- HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 233, 234, 233
- MovieTimer.Set TRUE, 3000
- End Sub
- Sub JediMasterTimer_Expired()
- JediMasterTimer.Enabled = FALSE
- DOFLinx_Jedi_Powerup() 'DOFLinx_Jedi_Powerup
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 235, 236, 235: MusicFade(1200): PlaySound "vo_JediMaster"
- HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 235, 236, 235
- MovieTimer.Set TRUE, 3000
- End Sub
- Sub JodaTimer_Expired()
- JodaTimer.Enabled = FALSE
- DOFLinx_Yoda_Powerup() 'DOFLinx_Yoda_Powerup
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 194,195,194
- HUDOverlay.UpdateInterval = 80: HUDOverlay.frame 194, 195, 194
- MovieTimer.Set TRUE, 3000
- MusicFade(1200): PlaySound "vo_YodaPowerUp": PlayMusic 3, "vo_YodaQ3", FALSE, 1, 1200
- End Sub
- Sub PowerMeUp_Expired()
- PowerMeUp.Enabled = FALSE
- If (fpTilted = TRUE) Then KickerVUKTimer.Set 100: Exit Sub
- AllPlasOff()
- FlasherLeft.State = BulbOn
- EnableKickback()
- NewMovie.FadeOut: NewMovieHUD.FadeOut
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- ' now it's on baby, take on Vader...
- If (bYodaMode(CP) = TRUE) Then
- bYodaMode(CP) = FALSE
- bSkyWalker(CP) = TRUE
- TgtRotate.Enabled = FALSE
- DMDBusy = TRUE: DMDTimer.Set TRUE, 3000
- MyDMD.QueueText "[edge3][f4][xc][yc]JEDI POWER UP", deNone, 1000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]JEDI POWER UP", deNone, 1000, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][b]SKYWALKER", deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]SKYWALKER", deNone, 1000, TRUE
- LightLeftLock.Set BulbBlink, "10", 100
- LightLeftPowerUp.Set BulbBlink, "00010", 125
- BulbLeftStar1.Set BulbBlink, "10000", 125
- BulbLeftStar2.Set BulbBlink, "01000", 125
- BulbLeftStar3.Set BulbBlink, "00100", 125
- PlayMusic 1, "Music_Mode7", TRUE, Vol
- MusicFade(3000): PlayMusic 2, "vo_PowerfulSkywalker", FALSE, 1, 500
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000
- VaderScoreLight.FlashForMs 3000, 3000, VaderScoreLight.State
- ForcePower(CP) = 1
- KickerVUKTimer.Set TRUE, 3000
- Exit Sub
- End If
- VaderAnimation(3)
- PlaySound "PowerUp"
- DMDBusy = TRUE: DMDTimer.Set TRUE, 2000
- MyDMD.QueueText "[edge3][f4][xc][yc][b]JEDI POWER UP", deNone, 2000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]JEDI POWER UP", deNone, 2000, FALSE
- If (bPadawanMode(CP) = FALSE) Then
- ResetDropTargets()
- PlayMusic 1, "Music_Mode2", TRUE, Vol
- bPadawanMode(CP) = TRUE: PadawanTimer.Set TRUE, 300: KickerVUKTimer.Set TRUE, 1800
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Else
- If (bKnightMode(CP) = FALSE) Then
- ResetDropTargets()
- PlayMusic 1, "Music_Mode3", TRUE, Vol
- bKnightMode(CP) = TRUE: JediKnightTimer.Set TRUE, 300: KickerVUKTimer.Set TRUE, 1600
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Else
- If (bMasterMode(CP) = FALSE) Then
- ResetDropTargets()
- PlayMusic 1, "Music_Mode6", TRUE, Vol
- bMasterMode(CP) = TRUE: JediMasterTimer.Set TRUE, 300: KickerVUKTimer.Set TRUE, 2000
- ForcePower(CP) = 1
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Else
- If (bYodaMode(CP) = FALSE) Then
- PlayMusic 1, "Music_Mode5", TRUE, Vol
- bYodaMode(CP) = TRUE: JodaTimer.Set TRUE, 300: KickerVUKTimer.Set TRUE, 3000
- ForcePower(CP) = 1
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 3000
- End If
- End If
- End If
- End If
- SetupTableMode()
- End Sub
- Sub KickerTopLeftTimer_Expired()
- BallsInLock = 0
- If (bMultiBallMode = FALSE) Then
- If (Eject = 1) or (Eject = 2) or (Eject = 3) Then
- PlaySound "fx_TIEFlyby2", 0.8
- MovieTimer.Set TRUE, 1000
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 467, 482
- HUDOverLay.UpdateInterval = 66: HUDOverLay.Frame 467, 482
- End If
- End If
- If (R2Out = FALSE) Then
- PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1)
- End If
- FlasherLeft.State = BulbOff
- AllPlasOn(): TurnOnBackBoxLights()
- KickerTopLeftTimer.Enabled = FALSE
- VaderKicker.SolenoidPulse
- DOFLinx_VaderKicker() 'DOFLinx - VaderKicker
- TIElight1.State = BulbOff
- TIElight2.State = BulbOff
- TieVaderBulb1.State = BulbOff
- TieVaderBulb2.State = BulbOff
- End Sub
- Sub FirstBallDelayTimer_Expired()
- FirstBallDelayTimer.Enabled = FALSE
- dim i
- dim b
- If (RewardBALL = TRUE) Then
- b = 4
- Else
- b = 3
- End If
- For i = 1 To 4
- BonusMultiplier(i) = 1
- BallsRemaining(i) = b
- ExtraBallsAwards(i) = 0
- Next
- DSSpin.Set TRUE, 1000
- RewardBALL = FALSE
- ResetForNewPlayerBall()
- CreateNewBall()
- End Sub
- Sub KickerVUKTimer_Expired()
- KickerVUKTimer.Enabled = FALSE
- KickerVUK.SolenoidPulse
- DOFLinx_KickerVUK() 'DOFLinx - KickerVUK
- If (fpTilted = TRUE) Then Exit Sub
- TIElight1.State = BulbOff
- TIElight2.State = BulbOff
- TieVaderBulb1.State = BulbOff
- TieVaderBulb2.State = BulbOff
- If (bMultiBallMode = TRUE) Then
- PlaySound "fx_TIEFlyby2"
- DOFLinx_KickerVUK_MX() 'DOFLinx_KickerVUK_MX
- ' show Vader in his fighter....he's coming to get ya!!....
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 444, 466
- HUDOverLay.UpdateInterval = 66: HUDOverlay.Frame 444, 466
- Else
- If (Eject = 4) Then
- XWing_Explosion
- TieVaderBulb1.FlashForMs 1800, 50, BulbOff
- TieVaderBulb2.FlashForMs 1800, 50, BulbOff
- PlaySound "fx_TIEAttacks4"
- DOFLinx_TIEAttacks4() 'DOFLinx_TIEAttacks4
- MovieTimer.Set TRUE, 2500
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 747, 793
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 747, 793
- FlasherLeft.FlashForMs 1800, 50, BulbOff
- PFFlash.Set TRUE, 110: FlashME = 2
- BallsInLock = 0
- Exit Sub
- End If
- If (Eject = 1) Then PlaySound "fx_TIEFlyby2", 0.6
- DOFLinx_KickerVUK_MX() 'DOFLinx_KickerVUK_MX
- End If
- If (R2Out = FALSE) Then
- PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1)
- End If
- BallsInLock = 0
- PlaySound "RightBlast"
- PFFlash.Set TRUE, 100: FlashME = 12
- FlasherLeft.FlashForMs 500, 75, BulbOff
- FlasherLeftBulb.FlashForMs 500, 75, BulbOff
- End Sub
- Sub MBDelay_Expired()
- MBDelay.Enabled = FALSE
- CreateNewBall()
- End Sub
- Sub VaderScoreTimer_Expired()
- VaderScoreTimer.Enabled = FALSE
- VaderScoring = FALSE
- ScoreX = 1
- VaderScoreLight.State = BulbOff
- End Sub
- ' *********************************
- ' ** **
- ' ** DEATH STAR KICKER **
- ' ** **
- ' *********************************
- ' The Death Star kicker has multiple functions in the game:
- ' - advances the Red Squadron bonus, up to an Extra Ball
- ' - collects the Skill Shot bonus
- ' - fires a torpedo at the Death Star's exhaust port to destroy it (harder shot)
- ' - stops the ball for R2-D2 interaction, then ejects into rollover lanes
- Sub DeathStarKicker_Hit()
- If (fpTilted = TRUE) and (DeathStarTimer.Enabled = FALSE) Then
- KickerTopRightTimer.Set TRUE, 500
- Exit Sub
- End If
- If (DoubleHit = TRUE) Then DoubleHit = FALSE: Exit Sub ' ignore if hit twice...
- If (VictoryLap = TRUE) Then VictoryHit(): KickerTopRightTimer.Set TRUE, 500: Exit Sub
- 'PlaySound "fx_SolenoidHitL"
- DOFLinx_DeathStarKicker_Hit() 'DOFLinx - DeathStarKicker Hit
- ' get the SKILL SHOT...
- If (SSWin = TRUE) Then
- PlaySound "fx_Alarm"
- If (R2Out = FALSE) Then
- PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 25, 1, 1)
- End If
- Select Case RandomNumber(3)
- Case 1:
- Select Case RandomNumber(2)
- Case 1: PlaySound "fx_SSHit2": DOFLinx_Skillshot_Hit() 'DOFLinx_Skillshot_Hit
- Case 2: PlaySound "fx_SSHit3": DOFLinx_Skillshot_Hit() 'DOFLinx_Skillshot_Hit
- End Select
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 893, 938
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 893, 938
- KickerTopRightTimer.Set TRUE, 2000
- Case 2:
- MovieTimer.Enabled = FALSE
- PlaySound "fx_SSHit4"
- MovieOverlay.UpdateInterval = 67:MovieOverlay.frame 202, 216
- HUDOverlay.UpdateInterval = 67: HUDOverlay.frame 202, 216
- KickerTopRightTimer.Set TRUE, 1200
- Case 3:
- MovieTimer.Enabled = FALSE
- PlaySound "fx_SSHit5"
- MovieOverlay.UpdateInterval = 67:MovieOverlay.frame 171, 189
- HUDOverlay.UpdateInterval = 67: HUDOverlay.frame 171, 189
- KickerTopRightTimer.Set TRUE, 1200
- End Select
- HologramR2D2.Frame 11: R2D2Fade.Set TRUE, 2000
- SSValue(CP) = SSValue(CP) + 100000
- AddScore(SSValue(CP))
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]SKILL SHOT", deNone, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]SKILL SHOT", deNone, 800, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]" & FormatNumber(SSValue(CP), 0, -1, 0, -1), deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc]" & FormatNumber(SSValue(CP), 0, -1, 0, -1), deNone, 1500, TRUE
- FlashMe = 10: PFFlash.Set TRUE, 175
- DSSpot1.FlashForMs 1200, 1200, BulbOff
- DSSpot2.FlashForMs 1200, 1200, BulbOff
- BSTime = BSTime + 1000
- If (RewardSHOTS = TRUE) Then
- DSHit = 2
- Else
- DSHit = 1
- End If
- Exit Sub
- End If
- ' first hit after multiball starts...
- If (bMultiballMode = TRUE) and (LightJackpot.State = BulbOff) Then
- If (QuoteBusy = FALSE) Then
- Select Case RandomNumber(4)
- Case 1: PlaySound "vo_LeaderOnBack"
- Case 2: PlaySound "vo_WhatsWrong2"
- Case 3: PlaySound "vo_R2Power"
- Case 4: PlaySound "vo_InRange": MovieOverlay.UpdateInterval = 98: MovieOverlay.Frame 319, 338: HUDOverLay.UpdateInterval = 98: HUDOverlay.Frame 319, 338
- End Select
- Else
- PlaySound "fx_Beeps5": BulbBeeps.FlashForMs 1300, 75, BulbOff
- End If
- KickerTopRightTimer.Set TRUE, 2000
- KickerVUKTimer.Set TRUE, 1000
- Exit Sub
- End If
- ' quickly swap the ball in the Death Star saucer...this will be released for the Victory Lap mulitball...
- If (fpBallID = 1) and (bMultiballMode = TRUE) and (LightJackpot.State = BulbOn) Then
- DoubleHit = TRUE
- DeathStarKicker.DestroyBall: DeleteTrackedBall(DeathStarKicker): DeathStarKicker.CreateBall: AddTrackedBall(DeathStarKicker)
- End If
- ' you did it!...the Death Star is history...
- If (LightJackpot.State = BulbOn) Then
- bMultiBallMode = FALSE
- TATimer.Enabled = FALSE
- JPHit = FALSE
- AddScore(1000000)
- AllPlasOff()
- ' change the camera angle...
- CameraView_LookAtBackBox
- TurnOffBackBoxLights()
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.UpdateInterval = 54: NewMovieHUD.UpdateInterval = 54
- NewMovie.Frame 2, 63: NewMovieHUD.Frame 2, 63
- MovieTimer.Set TRUE, 4000
- PlaySound "fx_Finale", 0.8
- DOFLinx_DeathStar_BlowUp() 'DOFLinx_DeathStar_BlowUp
- DeathStarTimer.Set TRUE, 11000 ' play the message on the translite...
- DSExplode.Set TRUE, 4000
- Deathstartimer2.Enabled = FALSE
- JackpotTimer.Set TRUE, 22000
- CountDown.FadeOut
- TenSecondTimer.Enabled = FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][b]TORPEDO AWAY", deNone, 3500, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][b]TORPEDO AWAY", deNone, 3500, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]GREAT SHOT!", deScrollIn, 3500, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]GREAT SHOT!", deScrollIn, 3500, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]1 IN A MILLION", deFlip, 2500, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]1 IN A MILLION", deFlip, 2500, FALSE
- EffectMusic 1, FadeOutAndStop, 0.0, 100
- DeathStarTally(CP) = DeathStarTally(CP) + 1
- LightJackpot.State = BulbOff
- fpTilted = TRUE ' allow the other ball to drain...
- LeftFlipper.SolenoidOff: TopFlipper.SolenoidOff
- DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
- DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
- RightFlipper.SolenoidOff
- If (bExtraBallWonThisBall = FALSE) Then
- AwardExtraBall()
- MyDMD.QueueText "[edge3][f4][xc][yc]EXTRA BALL", deScrollOut, 2000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]EXTRA BALL", deScrollOut, 2000, FALSE
- Else
- AddScore(1138000)
- MyDMD.QueueText "[edge3][f4][xc][yc]SPECIAL", deScrollOut, 2000, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc]SPECIAL", deScrollOut, 2000, FALSE
- End If
- MyDMD.QueueText "[f1][y7]MAY THE FORCE[f3][y16]BE WITH YOU", deFlip, 1000, TRUE
- MyDMD2.QueueText "[f1][y7]MAY THE FORCE[f3][y16]BE WITH YOU", deFlip, 1000, TRUE
- Else
- If (BackBoxTimer.Enabled = FALSE) and (TimeAttack = FALSE) Then
- ' advance the Red Squadron bonus...
- AdvRedSquadron()
- If (R2Out = FALSE) Then
- PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 1000
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 25, 1, 1)
- End If
- Else
- ' ball has entered kicker when Death Star is firing at rebel base...
- KickerTopRightTimer.Set TRUE, 500
- If (TimeAttack = TRUE) Then
- PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
- DMDBusy = TRUE: DMDTimer.Set TRUE, 1000
- If (TATime < 60) Then
- MyDMD.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]TIME: " & TATime & " SECONDS"
- MyDMD2.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]TIME: " & TATime & " SECONDS"
- Else
- ShowTime()
- MyDMD.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]" & ShowMin & " MIN: " & ShowSec & " SECS"
- MyDMD2.Text = "[f1][y7]TIME REMAINING[f3][y16][bf]" & ShowMin & " MIN: " & ShowSec & " SECS"
- End If
- End If
- End If
- End If
- End Sub
- Dim NoR2
- ' a normal hit advances Red Squadron, leading to an Extra Ball...
- Sub AdvRedSquadron()
- DSHit = DSHit + 1
- Squadron = Squadron + 2000
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- NewMovie.FadeOut: NewMovieHUD.FadeOut
- Select Case DSHit
- Case 1:
- AddScore(Squadron)
- KickerTopRightTimer.Set True, 1800
- TurnOffBackBoxLights()
- TorpedoLight.Set BulbBlink, "1010", 100
- Select Case RandomNumber(2)
- Case 1:
- ' first hit is the most common hit, so add lots of random quotes here, otherwise it gets rather repeatative....
- If (QuoteBusy = FALSE) Then
- Select Case RandomNumber(11)
- Case 1: PlaySound "vo_R2IncreasePower": R2HeadBulb.FlashForMs 1500, 100, BulbOff
- Case 2: PlaySound "vo_BackThere": R2HeadBulb.FlashForMs 1500, 100, BulbOff
- Case 3: PlaySound "vo_HangOnR2": R2HeadBulb.FlashForMs 1500, 100, BulbOff
- Case 4: PlaySound "vo_R2TopSide": R2HeadBulb.FlashForMs 1500, 100, BulbOff
- Case 5: PlaySound "vo_R2Targetting": R2HeadBulb.FlashForMs 1500, 100, BulbOff
- Case 6: PlaySound "vo_HangOnTightR2": R2HeadBulb.FlashForMs 1500, 100, BulbOff: KickerTopRightTimer.Set TRUE, 1500
- Case 7: PlaySound "vo_Hope": R2HeadBulb.FlashForMs 2000, 100, BulbOff: KickerTopRightTimer.Set TRUE, 2000
- Case 8: PlaySound "vo_OkBackThere": R2HeadBulb.FlashForMs 1700, 100, BulbOff
- Case 9:
- MusicFade(3200)
- PlaySound "vo_CutChatter": KickerTopRightTimer.Set TRUE, 3200: NoR2 = TRUE
- AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 3200
- DSSpot1.FlashForMs 3200, 3200, BulbOff
- DSSpot2.FlashForMs 3200, 3200, BulbOff
- Case 10: MusicFade(3700): PlaySound "vo_TargetShaft": KickerTopRightTimer.Set TRUE, 3700: NoR2 = TRUE
- Case 11: PlaySound "vo_R2Damage"
- If (R2D2.Dropped) Then
- R2D2.SolenoidPulse
- DOFLinx_R2D2_GearMotor_Short() 'DOFLinx_R2D2_GearMotor Short
- Else
- R2D2.PopDown
- DOFLinx_R2D2_GearMotor_Long() 'DOFLinx_R2D2_GearMotor Long
- End If
- End Select
- Else
- PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
- End If
- If (NoR2 = FALSE) Then
- MovieTimer.Enabled = FALSE
- MovieOverlay.UpdateInterval = 66:MovieOverlay.Frame 665, 680
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 665, 680
- End If
- NoR2 = FALSE
- Case 2:
- If (QuoteBusy = FALSE) Then
- If (bYodaMode(CP) = TRUE) Then
- PlaySound "vo_DSRange1"
- Else
- If (TimeAttack = FALSE) Then
- Select Case RandomNumber(2)
- Case 1: PlaySound "vo_StandByAlert"
- Case 2: PlaySound "vo_DSRange5"
- End Select
- Else
- PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
- PlaySound "fx_Alarm"
- End If
- KickerTopRightTimer.Set TRUE, 2200
- MusicFade(2200):QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2200
- AllPlasOff(): FlashMe = 16: PFFlash.Set TRUE, 2200
- DSSpot1.FlashForMs 2200, 2200, BulbOff
- DSSpot2.FlashForMs 2200, 2200, BulbOff
- End If
- Else
- PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
- End If
- MovieOverlay.UpdateInterval = 66: MovieOverlay.Frame 265, 291
- HUDOverlay.UpdateInterval = 66: HUDOverlay.Frame 265, 291
- End Select
- ' after the 2nd hit, not from a freebie launch, start collecting Red Squadron...8 hits needed...
- Case 2:
- KickerTopRightTimer.Set TRUE, 800: AddScore(Squadron)
- HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
- HUDOverlay.Frame 597,598,597: MovieOverlay.Frame 597,598,597: MovieTimer.Set TRUE, 1800
- MyDMD.QueueText "[edge3][f4][yc][xc]RED 10 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]RED 10 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- If (QuoteBusy = FALSE) Then
- PlaySound "vo_Red10": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Else
- PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
- End If
- Case 3:
- KickerTopRightTimer.Set TRUE, 1200: AddScore(Squadron)
- HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
- HUDOverlay.Frame 599,600,599: MovieOverlay.Frame 599,600,599: MovieTimer.Set TRUE, 1800
- MyDMD.QueueText "[edge3][f4][yc][xc]RED 7 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]RED 7 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- If (QuoteBusy = FALSE) Then
- PlaySound "vo_Red7": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Else
- PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
- End If
- Case 4:
- KickerTopRightTimer.Set TRUE, 1000: AddScore(Squadron)
- HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
- HUDOverlay.Frame 601: MovieOverlay.Frame 601: MovieTimer.Set TRUE, 1800
- MyDMD.QueueText "[edge3][f4][yc][xc]RED 3 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]RED 3 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- If (QuoteBusy = FALSE) Then
- PlaySound "vo_Red3": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Else
- PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
- End If
- Case 5:
- KickerTopRightTimer.Set TRUE, 800: AddScore(Squadron)
- HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
- HUDOverlay.Frame 603: MovieOverlay.Frame 603: MovieTimer.Set TRUE, 1800
- MyDMD.QueueText "[edge3][f4][yc][xc]RED 6 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]RED 6 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- If (QuoteBusy = FALSE) Then
- PlaySound "vo_Red6": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Else
- PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
- End If
- Case 6:
- KickerTopRightTimer.Set TRUE, 1200: AddScore(Squadron)
- HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
- HUDOverlay.Frame 605: MovieOverlay.Frame 605: MovieTimer.Set TRUE, 1800
- MyDMD.QueueText "[edge3][f4][yc][xc]RED 9 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]RED 9 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- If (QuoteBusy = FALSE) Then
- PlaySound "vo_Red9": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Else
- PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
- End If
- Case 7:
- KickerTopRightTimer.Set TRUE, 1000: AddScore(Squadron)
- HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
- HUDOverlay.Frame 595,596,595: MovieOverlay.Frame 595,596,595: MovieTimer.Set TRUE, 1800
- MyDMD.QueueText "[edge3][f4][yc][xc]RED 2 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]RED 2 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- If (QuoteBusy = FALSE) Then
- PlaySound "vo_Red2": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Else
- PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
- End If
- Case 8:
- KickerTopRightTimer.Set TRUE, 1200: AddScore(Squadron)
- HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
- HUDOverlay.Frame 607: MovieOverlay.Frame 607: MovieTimer.Set TRUE, 1800
- MyDMD.QueueText "[edge3][f4][yc][xc]RED 11 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][xc]RED 11 - " & FormatNumber(Squadron, 0, -1, 0, -1), deNone, 1000, TRUE
- If (QuoteBusy = FALSE) Then
- PlaySound "vo_Red11": QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2000
- Else
- PlaySound "fx_Beeps2": BulbBeeps.FlashForMs 1300, 75, BulbOff
- End If
- Case 9:
- AddScore(Squadron)
- KickerTopRightTimer.Set TRUE, 1000
- HUDOverlay.UpdateInterval = 200: MovieOverlay.UpdateInterval = 200
- MovieOverlay.Frame 547, 548, 547: HUDOverlay.Frame 547, 548, 547: MovieTimer.Set TRUE, 1800
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 2500
- If (bExtraBallWonThisBall = FALSE) Then
- AwardExtraBall()
- R2HeadBulb.FlashForMs 1200, 100, BulbOff
- PlaySound "vo_EB"
- MyDMD.Text = "[edge3][f4][yc][xc][bf]EXTRA BALL"
- MyDMD2.Text = "[edge3][f4][yc][xc][bf]EXTRA BALL"
- KickerTopRightTimer.Set TRUE, 2000
- Else
- AddScore(1138000)
- MyDMD.Text = "[edge3][f4][yc][xc][bf]SPECIAL AWARD"
- MyDMD2.Text = "[edge3][f4][yc][xc][bf]SPECIAL AWARD"
- End If
- If (RewardSHOTS = TRUE) Then
- DSHit = 1
- Else
- DSHit = 0
- End If
- End Select
- End Sub
- Sub DSExplode_Expired()
- DSExplode.Enabled = FALSE
- LightSeqPF.Play SeqBlinking, , 5, 100
- FlasherLeft.FlashForMs 2000, 75, BulbOff
- FlasherRight.FlashForMs 2000, 75, BulbOff
- BackOverlay.FadeIn
- BackOverlay.UpdateInterval = 54
- BackOverlay.Frame 1, 108
- If (BGArt = 0) Then BackBox.Play SeqAllOff: OverlayBG.Frame 2
- End Sub
- Sub DeathStarTimer_Expired()
- DeathStarTimer.Enabled = FALSE
- BackOverlay.UpdateInterval = 1000
- BackOverlay.Frame 249, 256
- EffectMusic 1, FadeOutAndStop, 0.0, 100
- JPHit = FALSE
- End Sub
- Sub ResetTableForNewRound()
- bPadawanMode(CP) = FALSE
- bKnightMode(CP) = FALSE
- bMasterMode(CP) = FALSE
- bYodaMode(CP) = FALSE
- bSkyWalker(CP) = FALSE
- TrenchPlay(CP) = 0
- LightDock.State = BulbOff
- Light50000Points.State = BulbOff
- LightSpecial.State = BulbOff
- LightExtraBall.State = BulbOff
- LightV.State = BulbBlink
- LightA.State = BulbBlink
- LightD.State = BulbBlink
- LightE.State = BulbBlink
- LightR.State = BulbBlink
- LightJoda.State = BulbOff
- LightPadawan.State = BulbOff
- LightMaster.State = BulbOff
- LightKnight.State = BulbOff
- LightJackpot.State = BulbOff
- LightShipLeft.State = BulbOff ' TIE to vader lane...
- LightShipMiddle.State = BulbOff ' solo shot...
- LightShipRight.State = BulbOff ' trench lane to DS...
- BulbLeftStar1Ext.SetLitColor 129, 223, 254
- BulbLeftStar2Ext.SetLitColor 129, 223, 254
- BulbLeftStar3Ext.SetLitColor 129, 223, 254
- BulbLeftStar1.State = BulbOff
- BulbLeftStar2.State = BulbOff
- BulbLeftStar3.State = BulbOff
- BulbMiddleStar.State = BulbOff
- BulbRightStar.State = BulbOff
- LightLeftInLane.State = BulbOff
- LightRightInLane.State = BulbOff
- LightKickBack.State = BulbOn
- LightBonus2x.State = BulbOff
- LightBonus3x.State = BulbOff
- LightBonus4x.State = BulbOff
- LightBonus5x.State = BulbOff
- LightBonus6x.State = BulbOff
- LightDefend1.State = BulbOff
- LightDefend2.State = BulbOff
- LightDefend3.State = BulbOff
- LightDefend4.State = BulbOff
- LightDefend5.State = BulbOff
- LightDefend6.State = BulbOff
- LightDefend7.State = BulbOff
- LightDefend8.State = BulbOff
- LightDefend9.State = BulbOff
- LightDefend10.State = BulbOff
- LightDefend20.State = BulbOff
- LightAlien1.State = BulbOff
- LightAlien2.State = BulbOff
- LightAlien3.State = BulbOff
- LightAlien4.State = BulbOff
- LightAlien5.State = BulbOff
- LightAlien6.State = BulbOff
- LightAlien7.State = BulbOff
- LightAlien8.State = BulbOff
- LightAlien9.State = BulbOff
- LightAlien10.State = BulbOff
- LightAlien20.State = BulbOff
- LightShootAgain.State = BulbOff
- ResetDropTargets()
- SoloTally(CP) = 0
- RampTally(CP) = 0
- Bumper1.State = BulbOff
- Bumper2.State = BulbOff
- Bumper3.State = BulbOff
- LightTopLane1.State = BulbOff
- LightTopLane2.State = BulbOff
- LightTopLane3.State = BulbOff
- BulbTop.State = BulbOff
- BulbMiddle.State = BulbOff
- BulbBottom.State = BulbOff
- SoloBulb1.State = BulbOff
- SoloBulb2.State = BulbOff
- SoloBulb3.State = BulbOff
- SoloBulb4.State = BulbOff
- QTE(CP) = 410
- Q2(CP) = 0
- Q3PO(CP) = 0
- End Sub
- Sub KickerTopRightTimer_Expired()
- KickerTopRightTimer.Enabled = FALSE
- DeathStarKicker.SolenoidPulse
- DOFLinx_DeathStarKicker() 'DOFLinx - DeathStarKicker
- If (fpTilted = TRUE) Then Exit Sub
- PlaySound "fx_SmallBlaster2": LightSeqPF.Play SeqBlinking, , 1, 100
- If (R2Out = FALSE) Then
- PlayMusic 4, "fx_R2Move": MoveFx.Set TRUE, 500
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 0.5)
- End If
- TurnOnBackBoxLights()
- MovieOverlay.FadeIn
- TorpedoLight.State = BulbOff
- SSWin = FALSE
- End Sub
- Sub JackpotTimer_Expired()
- JackpotTimer.Enabled = FALSE
- ' land the X-Wing toy, you're just running around the room high-fiving everyone...
- 'XMove = 4:
- XWingMove_Expired()
- BackOverlay.Frame 320
- BackOverlay.FadeOut
- AllPlasOn(): TurnOnBackBoxLights()
- If (BGArt = 0) Then BackBox.StopPlay: OverlayBG.Frame 1
- MovieOverlay.FadeIn
- TurnOffRightOutLights()
- TurnOffLeftOutLights()
- ' No victory lap for Time Attack, just the quickest time acolade...maybe a medal in a future update.
- ' Honestly, I don't expect anyone to get this far without cheating, only me...it's a challenge not even
- ' a Jedi Master could achieve...
- If (TimeAttack = TRUE) Then
- CameraView_Default
- DeathStarKicker.DestroyBall: BallsOnPlayfield = 0
- PlayMusic 8, "fx_Applause"
- PlayMusic 1, "Music_Mode4", TRUE, Vol
- MyDMD.QueueText "[f4][xc][yc]CONGRATULATIONS", deScrollIn, 1000, FALSE
- MyDMD2.QueueText "[f4][xc][yc]CONGRATULATIONS", deScrollIn, 1000, FALSE
- MyDMD.QueueText "[f1][y7][b]YOU COMPLETED[f3][y16]TIME ATTACK", deNone, 2000, FALSE
- MyDMD2.QueueText "[f1][y7][b]YOU COMPLETED[f3][y16]TIME ATTACK", deNone, 2000, FALSE
- If (TATime < 60) Then
- MyDMD.QueueText "[f1][y7]TIME REMAINING[f3][y16][b]" & TATime & " SECONDS", deNone, 2500, FALSE
- MyDMD2.QueueText "[f1][y7]TIME REMAINING[f3][y16][b]" & TATime & " SECONDS", deNone, 2500, FALSE
- Else
- ShowTime()
- MyDMD.QueueText "[f1][y7]TIME REMAINING[f3][y16][b]" & ShowMin & " MIN: " & ShowSec & " SECS", deNone, 2500, FALSE
- MyDMD2.QueueText "[f1][y7]TIME REMAINING[f3][y16][b]" & ShowMin & " MIN: " & ShowSec & " SECS", deNone, 2500, FALSE
- End If
- ' now calculate and convert the best time...next update...
- MyDMD.QueueText "[f1][y7]YOUR FINAL TIME[f3][y16]", deScrollIn, 1000, FALSE
- MyDMD2.QueueText "[f1][y7]YOUR FINAL TIME[f3][y16]", deScrollIn, 1000, FALSE
- MyDMD.QueueText "[f1][y7]YOUR FINAL TIME[f3][y16][bf]VERSION 1.05", deNone, 2000, TRUE
- MyDMD2.QueueText "[f1][y7]YOUR FINAL TIME[f3][y16][bf]VERSION 1.05", deNone, 2000, TRUE
- TimeAttack = FALSE
- fpTilted = FALSE
- MatchPlayed(CP) = TRUE
- BallsRemaining(CP) = 0
- GameOverTimer.Set TRUE, 8500
- Exit Sub
- End If
- VictoryLap = TRUE
- VictoryValue = 0: VictoryTotal = 0
- ' change the camera angle...
- CameraView_Mutliball
- PlaySound "vo_Ovation"
- MyDMD.QueueText "[f4][xc][yc]VICTORY LAP", deNone, 2000, FALSE
- MyDMD2.QueueText "[f4][xc][yc]VICTORY LAP", deNone, 2000, FALSE
- MyDMD.QueueText "[f1][y7]FAST SCORING[f3][y16]MULTIBALL", deScrollIn, 500, FALSE
- MyDMD2.QueueText "[f1][y7]FAST SCROING[f3][y16]MULTIBALL", deScrollIn, 500, FALSE
- MyDMD.QueueText "[f1][y7]FAST SCORING[f3][y16][bf]MULTIBALL", deNone, 1500, TRUE
- MyDMD2.QueueText "[f1][y7]FAST SCROING[f3][y16][bf]MULTIBALL", deNone, 1500, TRUE
- StartVictory.Set TRUE, 4000
- End Sub
- ' *************************************
- ' ** **
- ' ** VICTORY LAP **
- ' ** **
- ' *************************************
- ' 4 ball multiball
- ' all the surviving heroes (non droid) - Luke, Han, Leia and Chewie all run around
- ' high-fiving everyone, not seen in the movie, but it did happen.
- Sub StartVictory_Expired()
- StartVictory.Enabled = FALSE
- DOFLinx_VictoryMB_Start() 'DOFLinx_VictoryMB_Start
- fpTilted = FALSE
- ' create a ball in every available hole and shoot it out...(4 balls)....
- ' TerryRed update: for some reason, the plungerkicker WILL NOT create and kick out a ball (for me at least)
- ' - this usually results in only 3 balls for MB (which messes up BallsOnPlayfield
- ' - I changed BallsOnPlayfield to 3 in order to allow MB to work correctly (until a fix is found)
- VaderKicker.CreateBall: AddTrackedBall(VaderKicker): VaderKicker.SolenoidPulse: DOFLinx_KickerVUK() 'DOFLinx - KickerVUK
- FalconKicker.CreateBall: AddTrackedBall(FalconKicker): FalconKicker.SolenoidPulse: DOFLinx_FalconKicker() 'DOFLinx - FalconKicker
- PlungerKicker.CreateBall: AddTrackedBall(PlungerKicker): PlungerKicker.SolenoidPulse: AutoFire = TRUE
- DeathStarKicker.SolenoidPulse ' fire the ball back into play for a new round...
- DOFLinx_DeathStarKicker() 'DOFLinx - DeathStarKicker
- BallsOnPlayfield = 3
- FlasherLeft.FlashForMs 300, 100, BulbOff
- PlayMusic 8, "fx_Applause", TRUE, 0.8
- TorpedoLight.State = BulbOff
- PlayMusic 1, "Music_Mode4", TRUE, Vol
- DiverterGuide.Collidable = FALSE
- DiverterSurface.Collidable = FALSE
- RampDiverter.SolenoidOff
- RampDiverter2.SolenoidOff
- LightKickBack.State = BulbOff
- ' ok Luke, turns out the Empire had an infinate amount of Death Star's, get back out there kid and make me proud...
- ' (raise up the X-Wing toy)
- 'XMove = 1
- XWingMove_Expired()
- ResetTableForNewRound()
- End Sub
- Sub VictoryHit()
- DOFLinx_Victory_Hit() 'DOFLinx_Victory_Hit
- VictoryValue = VictoryValue + 7500
- AddScore(VictoryValue)
- MyDMD.UpdateInterval = 5: MyDMD2.UpdateInterval = 5
- MyDMD.QueueText "[edge3][f4][yc]VICTORY JACKPOT", deNone, 500, FALSE
- MyDMD2.QueueText "[edge3][f4][yc]VICTORY JACKPOT", deNone, 500, FALSE
- MyDMD.QueueText "[edge3][f4][yc][bf]" & FormatNumber(VictoryValue, 0, -1, 0, -1), deFlip, 1000, TRUE
- MyDMD2.QueueText "[edge3][f4][yc][bf]" & FormatNumber(VictoryValue, 0, -1, 0, -1), deFlip, 1000, TRUE
- DMDBusy = TRUE: DMDTimer.Set TRUE, 1800
- VictoryTotal = VictoryTotal + VictoryValue
- PlaySound "RightBlast"
- FlashMe = 16: PFFlash.Set TRUE, 200
- FlasherRight.FlashForMs 200, 200, BulbOff
- FlasherBulbRight.FlashForMs 200, 200, BulbOff
- Flasher2.FlashForMs 200, 200, BulbOff
- FlasherLeft.FlashForMs 200, 200, BulbOff
- Select Case RandomNumber(2)
- Case 1:
- MovieOverlay.UpdateInterval = 80: MovieOverlay.frame 200, 201
- HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 200, 201
- Case 2:
- MovieOverlay.UpdateInterval = 80:MovieOverlay.frame 198, 199
- HUDOverlay.UpdateInterval = 80: HUDoverlay.frame 198, 199
- End Select
- MovieTimer.Set TRUE, 1000
- End Sub
- Sub GatePlungerExit_Hit()
- bBallInPlungerLane = FALSE
- AutoFire = FALSE
- If ((bMultiBallMode = True) and (BallsInLock = 1)) Then ' release the held ball only when 2nd ball in play...
- VaderKicker.DestroyBall: DeleteTrackedBall(VaderKicker)
- VaderKicker.CreateCaptiveBall: AddTrackedBall(VaderKicker)
- KickerTopLeftTimer.Set True, 1000
- FlasherLeft.FlashForMs 1000, 50, BulbOff
- End If
- End Sub
- Dim XWingValue(4)
- ' ********************************************
- ' ** **
- ' ** ATTRACT MODE **
- ' ** **
- ' ********************************************
- Sub SetAllLightsForAttractMode()
- LightShootAgain.Set BulbBlink, "10", 150
- ' Bonus Multiplier Lights
- LightBonus2x.Set BulbBlink, "1000010", 150
- LightBonus3x.Set BulbBlink, "0100100", 150
- LightBonus4x.Set BulbBlink, "0100100", 150
- LightBonus5x.Set BulbBlink, "1000010", 150
- LightBonus6x.Set BulbBlink, "0011000", 150
- ' Outlane and Inlane Lights
- LightSpecialL.Set BulbBlink, "01010000", 100
- LightLeftInlane.Set BulbBlink, "00000101", 100
- LightRightInlane.Set BulbBlink, "00000101", 100
- LightSpecialR.Set BulbBlink,"01010000", 100
- ' Kickback light
- LightKickBack.Set BulbBlink, "01", 150
- ' Defend Points Bar
- LightDefend1.Set BulbBlink, "100000100000", 75
- LightDefend2.Set BulbBlink, "010000010000", 75
- LightDefend3.Set BulbBlink, "001000001000", 75
- LightDefend4.Set BulbBlink, "000100000100", 75
- LightDefend5.Set BulbBlink, "000010000010", 75
- LightDefend6.Set BulbBlink, "000001000001", 75
- LightDefend7.Set BulbBlink, "100000100000", 75
- LightDefend8.Set BulbBlink, "010000010000", 75
- LightDefend9.Set BulbBlink, "001000001000", 75
- LightDefend10.Set BulbBlink, "000100000100", 75
- LightDefend20.Set BulbBlink, "000010000010", 75
- ' Alien Points Bar
- LightAlien1.Set BulbBlink, "100000100000", 75
- LightAlien2.Set BulbBlink, "010000010000", 75
- LightAlien3.Set BulbBlink, "001000001000", 75
- LightAlien4.Set BulbBlink, "000100000100", 75
- LightAlien5.Set BulbBlink, "000010000010", 75
- LightAlien6.Set BulbBlink, "000001000001", 75
- LightAlien7.Set BulbBlink, "100000100000", 75
- LightAlien8.Set BulbBlink, "010000010000", 75
- LightAlien9.Set BulbBlink, "001000001000", 75
- LightAlien10.Set BulbBlink, "000100000100", 75
- LightAlien20.Set BulbBlink, "000010000010", 75
- ' Invasion/Amarda Cluster
- LightKnight.Set BulbBlink, "1010000000000000", 150
- LightMaster.Set BulbBlink, "0000101000001010", 150
- LightPadawan.Set BulbBlink, "0000000010100000", 150
- LightJoda.Set BulbBlink, "0101", 150
- ' Dock Lights
- LightExtraBall.Set BulbBlink, "10000", 125
- LightSpecial.Set BulbBlink, "01000", 125
- Light50000Points.Set BulbBlink, "00100", 125
- LightDock.Set BulbBlink, "00010", 125
- 'DockLight.Set BulbBlink, "00001", 125
- ' TIE Lasers
- TIElight1.Set BulbBlink, "0101", 75
- TIElight2.Set BulbBlink, "0101", 75
- TieVaderBulb1.Set BulbBlink, "0101", 75
- TieVaderBulb2.Set BulbBlink, "0101", 75
- ' Ramp Level Lights
- BulbBottom.Set BulbBlink, "1000001010000010111000111000", 150
- BulbMiddle.Set BulbBlink, "0100010001000100111000111000", 150
- BulbTop.Set BulbBlink, "0010100000101000111000111000", 150
- ' Solo Lights
- SoloBulb1.Set BulbBlink, "1000000010100000011000111000", 150
- SoloBulb2.Set BulbBlink, "0100000100010001100110111000", 150
- SoloBulb3.Set BulbBlink, "0010001000001001100110111000", 150
- SoloBulb4.Set BulbBlink, "0001010000000100011000111000", 150
- ' OutLaneLights
- RightOutBulb1.Set BulbBlink, "10000000100001000", 100
- RightOutBulb2.Set BulbBlink, "01000000010010000", 100
- RightOutBulb3.Set BulbBlink, "00100000001100000", 100
- RightOutBulb4.Set BulbBlink, "00010000010010000", 100
- RightOutBulb5.Set BulbBlink, "00001000100001000", 100
- LeftOutBulb1.Set BulbBlink, "10000000100001000", 100
- LeftOutBulb2.Set BulbBlink, "01000000010010000", 100
- LeftOutBulb3.Set BulbBlink, "00100000001100000", 100
- LeftOutBulb4.Set BulbBlink, "00010000010010000", 100
- LeftOutBulb5.Set BulbBlink, "00001000100001000", 100
- ' Four Bank Targets
- LightFourBank1.Set BulbBlink, "0001000100011111110101010101", 150
- LightFourBank2.Set BulbBlink, "0100010001111111101010101010", 150
- LightFourBank3.Set BulbBlink, "0010001111111111110101010101", 150
- LightFourBank4.Set BulbBlink, "0001111111111111101010101010", 150
- ' Three Bank Targets
- LightThreeBank1.Set BulbBlink, "0001111111111111101010101010", 150
- LightThreeBank2.Set BulbBlink, "0010001111111111110101010101", 150
- LightThreeBank3.Set BulbBlink, "0100010001111111101010101010", 150
- ' Left Lock
- BulbLeftStar1Ext.SetLitColor 129, 223, 254
- BulbLeftStar2Ext.SetLitColor 129, 223, 254
- BulbLeftStar3Ext.SetLitColor 129, 223, 254
- LightShipLeft.Set BulbBlink, "100000", 125
- BulbLeftStar1.Set BulbBlink, "010000", 125
- BulbLeftStar2.Set BulbBlink, "001000", 125
- BulbLeftStar3.Set BulbBlink, "000100", 125
- LightLeftPowerUp.Set BulbBlink, "000010", 125
- LightLeftLock.Set BulbBlink, "000001", 125
- ' Middle
- LightShipMiddle.Set BulbBlink, "01010000", 100
- BulbMiddleStar.Set BulbBlink, "00000101", 100
- ' and Right
- LightShipRight.Set BulbBlink, "01010000", 100
- BulbRightStar.Set BulbBlink, "00000101", 100
- ' Top Rollover Lights
- LightTopLane1.Set BulbBlink, "10100000", 150
- LightTopLane2.Set BulbBlink, "00001010", 150
- LightTopLane3.Set BulbBlink, "10100000", 150
- ' Jackpot Light
- LightJackpot.Set BulbBlink, "10", 150
- ' Sci-Fi Targets
- LightV.Set BulbBlink, "100000001", 100
- LightA.Set BulbBlink, "010000010", 100
- LightD.Set BulbBlink, "001000100", 100
- LightE.Set BulbBlink, "000101000", 100
- LightR.Set BulbBlink, "000010000", 100
- ' Bumpers
- Bumper1.Set BulbBlink, "101000000000", 125
- Bumper2.Set BulbBlink, "000010100000", 125
- Bumper3.Set BulbBlink, "000000001010", 125
- BulbBumper1.Set BulbBlink, "101000000000", 125
- BulbBumper2.Set BulbBlink, "000010100000", 125
- BulbBumper3.Set BulbBlink, "000000001010", 125
- SabreLight1.Set BulbBlink, "10", 400
- SabreLight2.Set BulbBlink, "01", 400
- SabreLight3.Set BulbBlink, "10", 400
- SabreLight4.Set BulbBlink, "01", 400
- MovieOverlay.FadeIn()
- AttractModeTimer.Set TRUE, 9500
- End Sub
- ' the attract sequence, so-called because it's supposed to lure punters to the machine.
- ' non of this stuff is needed in a free video game but it's a lot of fun so I like doing it...
- Sub AttractModeTimer_Expired()
- Select Case PlayMe
- Case 0:
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.Frame 355: NewMovieHUD.Frame 355
- EffectMusic 3, FadeOutAndPause, 0, 100: MusicResume.Set TRUE, 3500
- AllPlasOff(): LSLOn(): LSROn(): Sabre = 4: PlayMusic 1, "fx_BothSabresOn"
- R2HeadBulb.FlashForMs 3500, 3500, BulbOff: PlaySound "fx_R2Sound15"
- AttractModeTimer.Set TRUE, 3500
- PlayMe = 1
- Case 1:
- NewMovie.FadeOut: NewMovieHUD.FadeOut
- LSLOff(): LSROff()
- StopMusic 1
- MovieOverlay.UpdateInterval = 67:MovieOverlay.Frame 17, 117
- HUDOverlay.UpdateInterval = 67: HUDOverlay.Frame 17, 117
- LightSeqPF.Play SeqUpOn, 150, 1
- AttractModeTimer.Set TRUE, 9500
- PlayMe = 2
- Case 2:
- Select Case RandomNumber(3)
- Case 1:
- R2HeadBulb.State = BulbOff
- EffectMusic 3, FadeOutAndPause, 0, 100
- PlayMusic 1, "fx_ROS": MusicResume.Set TRUE, 7000
- MovieOverlay.Frame 986: HUDOverlay.Frame 986
- AttractModeTimer.Set TRUE, 8000
- PlayMe = 3
- Case 2,3:
- AttractModeTimer.Set TRUE, 1000
- PlayMe = 4
- End Select
- Case 3:
- MovieOverlay.UpdateInterval = 67:MovieOverlay.Frame 17, 117
- HUDOverlay.UpdateInterval = 67: HUDOverlay.Frame 17, 117
- PlayMe = 4
- ' Carrie Fisher sadly died in 2016, and in that year I added this little tribute
- ' no longer needed, but it can be used again if another cast member snuffs it...
- 'Case 4:
- ' R2HeadBulb.State = BulbOff
- ' MovieOverlay.Frame 990: HUDOverlay.Frame 990
- ' EffectMusic 3, FadeOutAndPause, 0, 100
- ' PlayMusic 1, "Music_Leia": MusicResume.Set TRUE, 9000
- ' PlayMe = 5
- Case 4:
- Select Case RandomNumber(3)
- Case 1:
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.Frame 356: NewMovieHUD.Frame 356
- EffectMusic 3, FadeOutAndPause, 0, 100
- PlayMusic 1, "fx_FallenOrder", FALSE, 1, 800: MusicResume.Set TRUE, 11300
- AttractModeTimer.Set TRUE, 5800
- PlayMe = 5
- Case 2,3:
- R2HeadBulb.FlashForMs 1200, 100, BulbOff
- PlaySound "fx_R2Sound20"
- AttractModeTimer.Set TRUE, 2000
- PlayMe = 7
- End Select
- Case 5:
- AllPlasOff(): LSLOn(): LSROn()
- AttractModeTimer.Set TRUE, 5500
- PlayMe = 6
- Case 6:
- LSLOff(): LSROff()
- NewMovie.FadeOut: NewMovieHUD.FadeOut
- MovieOverlay.UpdateInterval = 67:MovieOverlay.Frame 17, 117
- HUDOverlay.UpdateInterval = 67: HUDOverlay.Frame 17, 117
- LightSeqPF.Play SeqUpOn, 150, 1
- PlayMe = 7
- Case 7:
- R2HeadBulb.FlashForMs 800, 100, BulbOff
- PlaySound "vo_Boasting"
- MovieOverlay.Frame 987: HUDOverlay.Frame 987
- PlayMe = 8
- Case 8:
- AttractModeTimer.Set TRUE, 8500
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 7600
- PlayMusic 1, "vo_BenChat"
- PlayMe = 9
- Case 9:
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 2600
- PlayMusic 1, "vo_BenChat2"
- PlayMe = 10
- Case 10:
- LSLOn(): PlayMusic 2, "fx_LightSabreOn": SabreTimer.Set TRUE, 7000
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 7000
- PlayMusic 1, "vo_BenChat3"
- PlayMe = 11
- Case 11:
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 2600
- PlayMusic 1, "vo_CloseDown"
- PlayMe = 12
- Case 12:
- LSLOn(): PlayMusic 2, "fx_LightSabreOn": SabreTimer.Set TRUE, 6400
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 6400
- PlayMusic 1, "vo_BenChat4"
- PlayMe = 13
- Case 13:
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 6600
- PlayMusic 1, "vo_BenChat5"
- PlayMe = 14
- Case 14:
- AttractModeTimer.Set TRUE, 6000
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 3600
- PlayMusic 1, "vo_BenChat6"
- PlayMe = 15
- Case 15:
- AttractModeTimer.Set TRUE, 12000
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 10600
- PlayMusic 1, "vo_BenChat7"
- PlayMe = 16
- Case 16:
- AttractModeTimer.Set TRUE, 5000
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 2100
- PlayMusic 1, "vo_BenChat8"
- PlayMe = 17
- Case 17:
- LSLOn(): PlayMusic 2, "fx_LightSabreOn": SabreTimer.Set TRUE, 4000
- AttractModeTimer.Set TRUE, 16000
- EffectMusic 3, FadeOutAndPause, 0, 0: MusicResume.Set TRUE, 16000
- PlayMusic 1, "vo_Vader"
- PlayMe = 0
- End Select
- End Sub
- Sub TurnOffRightOutLights()
- RightOutBulb1.State = BulbOff
- RightOutBulb2.State = BulbOff
- RightOutBulb3.State = BulbOff
- RightOutBulb4.State = BulbOff
- RightOutBulb5.State = BulbOff
- End Sub
- Sub TurnOffLeftOutLights()
- LeftOutBulb1.State = BulbOff
- LeftOutBulb2.State = BulbOff
- LeftOutBulb3.State = BulbOff
- LeftOutBulb4.State = BulbOff
- LeftOutBulb5.State = BulbOff
- End Sub
- Sub MusicResume_Expired()
- MusicResume.Enabled = FALSE
- StopMusic 1
- EffectMusic 3, PlayAndFadeIn, 0.7, 100
- End Sub
- Sub MusicResume2_Expired()
- MusicResume2.Enabled = FALSE
- EffectMusic 1, PlayAndFadeIn, (vol), 50
- End Sub
- Sub LightSeqPF_Empty()
- If (fpGameInPlay = FALSE) Then
- SetAllLightsForAttractMode()
- End If
- End Sub
- Sub TurnOffPlayfieldLights()
- LightShootAgain.State = BulbOff
- LightBonus2x.State = BulbOff
- LightBonus3x.State = BulbOff
- LightBonus4x.State = BulbOff
- LightBonus5x.State = BulbOff
- LightBonus6x.State = BulbOff
- LightSpecialL.State = BulbOff
- LightLeftInlane.State = BulbOff
- LightRightInlane.State = BulbOff
- LightSpecialR.State = BulbOff
- LightDefend1.State = BulbOff
- LightDefend2.State = BulbOff
- LightDefend3.State = BulbOff
- LightDefend4.State = BulbOff
- LightDefend5.State = BulbOff
- LightDefend6.State = BulbOff
- LightDefend7.State = BulbOff
- LightDefend8.State = BulbOff
- LightDefend9.State = BulbOff
- LightDefend10.State = BulbOff
- LightDefend20.State = BulbOff
- LightAlien1.State = BulbOff
- LightAlien2.State = BulbOff
- LightAlien3.State = BulbOff
- LightAlien4.State = BulbOff
- LightAlien5.State = BulbOff
- LightAlien6.State = BulbOff
- LightAlien7.State = BulbOff
- LightAlien8.State = BulbOff
- LightAlien9.State = BulbOff
- LightAlien10.State = BulbOff
- LightAlien20.State = BulbOff
- LightKnight.State = BulbOff
- LightMaster.State = BulbOff
- LightPadawan.State = BulbOff
- LightJoda.State = BulbOff
- LightExtraBall.State = BulbOff
- LightSpecial.State = BulbOff
- Light50000Points.State = BulbOff
- LightDock.State = BulbOff
- TIElight1.State = BulbOff
- TIElight2.State = BulbOff
- TieVaderBulb1.State = BulbOff
- TieVaderBulb2.State = BulbOff
- LightFourBank1.State = BulbOff
- LightFourBank2.State = BulbOff
- LightFourBank3.State = BulbOff
- LightFourBank4.State = BulbOff
- LightThreeBank1.State = BulbOff
- LightThreeBank2.State = BulbOff
- LightThreeBank3.State = BulbOff
- LightShipLeft.State = BulbOff
- BulbLeftStar1.State = BulbOff
- BulbLeftStar2.State = BulbOff
- BulbLeftStar3.State = BulbOff
- LightLeftPowerUp.State = BulbOff
- LightLeftLock.State = BulbOff
- LightShipMiddle.State = BulbOff
- BulbMiddleStar.State = BulbOff
- LightShipRight.State = BulbOff
- BulbRightStar.State = BulbOff
- LightTopLane1.State = BulbOff
- LightTopLane2.State = BulbOff
- LightTopLane3.State = BulbOff
- LightJackpot.State = BulbOff
- LightV.State = BulbOff
- LightA.State = BulbOff
- LightD.State = BulbOff
- LightE.State = BulbOff
- LightR.State = BulbOff
- LightKickBack.State = BulbOff
- Bumper1.State = BulbOff
- Bumper2.State = BulbOff
- Bumper3.State = BulbOff
- BulbBumper1.State = BulbOff
- BulbBumper2.State = BulbOff
- BulbBumper3.State = BulbOff
- BulbBottom.State = BulbOff
- BulbMiddle.State = BulbOff
- BulbTop.State = BulbOff
- SoloBulb1.State = BulbOff
- SoloBulb2.State = BulbOff
- SoloBulb3.State = BulbOff
- SoloBulb4.State = BulbOff
- RightOutBulb1.State = BulbOff
- RightOutBulb2.State = BulbOff
- RightOutBulb3.State = BulbOff
- RightOutBulb4.State = BulbOff
- RightOutBulb5.State = BulbOff
- LeftOutBulb1.State = BulbOff
- LeftOutBulb2.State = BulbOff
- LeftOutBulb3.State = BulbOff
- LeftOutBulb4.State = BulbOff
- LeftOutBulb5.State = BulbOff
- R2HeadBulb.State = BulbOff
- End Sub
- Sub AllPlasOff()
- LightSeqGI.Play SeqAllOff
- FlasherRL1.State = BulbOff
- FlasherRL2.State = BulbOff
- LSDark.Render = TRUE
- RSDark.Render = TRUE
- LMDark.Render = TRUE
- RMDark.Render = TRUE
- MidDark.Render = TRUE
- Surface24.Render = TRUE
- Surface31.Render = TRUE
- Surface32.Render = TRUE
- Surface33.Render = TRUE
- Surface34.Render = TRUE
- Surface36.Render = TRUE
- Surface37.Render = TRUE
- Surface38.Render = TRUE
- TopLeftInLane.Render = FALSE
- TopRighInLane.Render = FALSE
- Apron.Render = FALSE
- Surface16.Render = FALSE
- Surface1.Render = FALSE
- Surface2.Render = FALSE
- Surface13.Render = FALSE
- Surface12.Render = FALSE
- Surface14.Render = FALSE
- Surface17.Render = FALSE
- Surface19.Render = FALSE
- LeftSlingShotSurface.Render = FALSE
- RightSlingShotSurface.Render = FALSE
- xBam.SetPlayfieldTexture "!SW_PFDark"
- Light_Inserts_Brightness_GI_OFF
- Light_Flashers_Brightness_GI_OFF
- Light_Bulbs_Brightness_GI_OFF
- ' xBAM.Lights.Brightness = 1.45 ' slightly increase the brightness of the playfield inserts...
- End Sub
- Sub AllPlasOn()
- LightSeqGI.StopPlay
- FlasherRL1.State = BulbOn
- FlasherRL2.State = BulbOn
- LSDark.Render = FALSE
- RSDark.Render = FALSE
- LMDark.Render = FALSE
- RMDark.Render = FALSE
- MidDark.Render = FALSE
- Surface24.Render = FALSE
- Surface31.Render = FALSE
- Surface32.Render = FALSE
- Surface33.Render = FALSE
- Surface34.Render = FALSE
- Surface36.Render = FALSE
- Surface37.Render = FALSE
- Surface38.Render = FALSE
- TopLeftInLane.Render = TRUE
- TopRighInLane.Render = TRUE
- Apron.Render = TRUE
- Surface16.Render = TRUE
- Surface1.Render = TRUE
- Surface2.Render = TRUE
- Surface13.Render = TRUE
- Surface12.Render = TRUE
- Surface14.Render = TRUE
- Surface17.Render = TRUE
- Surface19.Render = TRUE
- LeftSlingShotSurface.Render = TRUE
- RightSlingShotSurface.Render = TRUE
- if BladeColor = 1 then xBam.SetPlayfieldTexture "!SW_PF"
- if BladeColor = 2 then xBam.SetPlayfieldTexture "!SW_PF_Green"
- if BladeColor = 3 then xBam.SetPlayfieldTexture "!SW_PF_Purple"
- if BladeColor = 4 then xBam.SetPlayfieldTexture "!SW_PF_Yellow"
- if BladeColor = 5 then xBam.SetPlayfieldTexture "!SW_PF_Orange"
- Light_Inserts_Brightness_GI_ON
- Light_Flashers_Brightness_GI_ON
- Light_Bulbs_Brightness_GI_ON
- ' xBAM.Lights.Brightness = 1.10
- End Sub
- 'xBAM.Lights.Brightness = 1.10
- Sub PFFlash_Expired()
- FlashME = FlashME + 1
- Select Case FlashME
- Case 1,3,5,7,9,11,13,15: AllPlasOff(): TurnOffBackBoxLights()
- Case 2,4,6,8,10,12,14,16: AllPlasOn(): TurnOnBackBoxLights()
- Case 17: AllPlasOn(): PFFlash.Enabled = FALSE: TurnOnBackBoxLights()
- End Select
- End Sub
- Sub TurnOffBackBoxLights()
- If (BGArt = 0) Then BackBox.Play SeqAllOff: OverlayBG.Frame 2
- End Sub
- Sub TurnOnBackBoxLights()
- If (BGArt = 0) Then BackBox.StopPlay: OverlayBG.Frame 1
- End Sub
- Sub MovieTimer_Expired()
- MovieTimer.Enabled = FALSE
- If (HighScoreTimer.Enabled = TRUE) Then
- NewMovie.Frame 317: NewMovieHUD.Frame 317
- FlasherRight.Set BulbBlink,"101000", 75
- Flasher2.Set BulbBlink, "000101", 75
- LightSeqPF.Play SeqRandom, 50, , 10000
- Exit Sub
- End If
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- NewMovie.FadeOut: NewMovieHUD.FadeOut
- MovieOverlay.UpdateInterval = 40: MovieOverlay.Frame 11 ' return to star wars logo...
- HUDOverlay.UpdateInterval = 40: HUDoverlay.Frame 11
- If (SSWin = TRUE) Then ' skill shot didn't go in but award it anyway...
- SSWin = FALSE
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 4000
- PlaySound "fx_SSHit"
- DOFLinx_Skillshot_Hit() 'DOFLinx_Skillshot_Hit
- MovieTimer.Set TRUE, 700
- MovieOverlay.UpdateInterval = 66:MovieOverlay.frame 893, 938
- HUDOverlay.UpdateInterval = 66: HUDOverlay.frame 893, 938
- SSValue(CP) = SSValue(CP) + 100000
- AddScore(SSValue(CP))
- MyDMD.QueueText "[edge3][f4][xc][yc][bf]SKILL SHOT", deNone, 800, FALSE
- MyDMD2.QueueText "[edge3][f4][xc][yc][bf]SKILL SHOT", deNone, 800, FALSE
- MyDMD.QueueText "[edge3][f4][xc][yc]" & FormatNumber(SSValue(CP), 0, -1, 0, -1), deNone, 1500, TRUE
- MyDMD2.QueueText "[edge3][f4][xc][yc]" & FormatNumber(SSValue(CP), 0, -1, 0, -1), deNone, 1500, TRUE
- PFFlash.Set TRUE, 175: FlashME = 10
- BSTime = BSTime + 1000
- End If
- End Sub
- Sub StopMovie()
- NewMovie.Frame 1: NewMovieHUD.Frame 1
- NewMovie.FadeOut: NewMovieHUD.FadeOut
- MovieOverlay.UpdateInterval = 40: MovieOverlay.Frame 11 ' return to star wars logo...
- HUDOverlay.UpdateInterval = 40: HUDoverlay.Frame 11
- End Sub
- Sub QuoteTimer_Expired()
- QuoteTimer.Enabled = FALSE
- QuoteBusy = FALSE
- End Sub
- Sub Surface39_Hit()
- PlaySound "fx_RubBDL"
- End Sub
- Sub TriggerCrossPre_Hit()
- Crossover.Collidable = TRUE
- End Sub
- Sub TriggerCrossPost_Hit()
- Crossover.Collidable = FALSE
- End Sub
- Dim LSMove,R2Move,R2Out,R2Animate
- ' Thanks to BAM's mini playfield feature, you can grab and move anything on the playfield...even the entire playfield...
- ' Left Lightsabre...
- Dim MiniPlayField_0 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_0 = xBAM.CreateMiniPlayfield( 4.8, 40, 420, 1000, 54.6, 140, 20, 906, 80)
- ' DstX DstY DstZ RotX RotY RotZ Scale Time
- Call MiniPlayField_0.MoveTo( 20, 906, 80, 0, 0, 0, 1, 0)
- ' Left Lightsabre (handle only)...
- Dim MiniPlayField_4 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_4 = xBAM.CreateMiniPlayfield( -133, -70, 816, 1024, 50, 100, -102, 918, 80)
- ' DstX DstY DstZ RotX RotY RotZ Scale Time
- Call MiniPlayField_4.MoveTo( 20, 920, -80, 0, 0, 0, 1, 0)
- ' Right Lightsabre...
- Dim MiniPlayField_1 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_1 = xBAM.CreateMiniPlayfield( 473, 515, 163, 1077, 65, 159, 497, 910, 80)
- ' DstX DstY DstZ RotX RotY RotZ Scale Time
- Call MiniPlayField_1.MoveTo( 497, 910, 80, 0, 0, 0, 1, 0)
- ' Right Lightsabre (handle only)...
- Dim MiniPlayField_5 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_5 = xBAM.CreateMiniPlayfield( 591, 640, 813, 1024, 50, 100, 617, 916, 80)
- ' DstX DstY DstZ RotX RotY RotZ Scale Time
- Call MiniPlayField_5.MoveTo( 497, 910, -80, 0, 0, 0, 1, 0)
- ' R2D2 Toy...
- Dim MiniPlayField_2 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_2 = xBAM.CreateMiniPlayfield(391.203, 496.607, 26, 100, 55.2, 150.999, 461, 56, 50)
- ' DstX DstY DstZ RotX RotY RotZ Scale Time
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 0)
- Sub MoveLS_Expired()
- MoveLS.Set TRUE, 1200
- LSMove = LSMove + 1
- Dim QT
- Select Case LSMove
- Case 1:
- AllPlasOff()
- LightSeqPF.Play SeqAllOff
- Flasher1.State = BulbBlink
- BulbLSClash1.State = BulbBlink
- PlaySound "fx_SaberClash2"
- MyDMD.Text = "[edge3][f4][xc][yc][b]JEDI STRIKE"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]JEDI STRIKE"
- LSLOn(): LSROn()
- Call MiniPlayField_0.MoveTo( 90, 906, 80, -5, 0, 25, 1, 0.2) ' cross swords, blue on top (Jedi strike)...
- Call MiniPlayField_1.MoveTo( 407, 910, 80, 0, 0, -25, 1, 0.2)
- Case 2:
- PlaySound "fx_LSAway", 0.8
- LightSeqPF.StopPlay
- Flasher1.State = BulbOff
- BulbLSClash1.State = BulbOff
- Call MiniPlayField_0.MoveTo( 20, 906, 80, 0, 0, 0, 1, 0.2) ' move back to original position...
- Call MiniPlayField_1.MoveTo( 497, 910, 80, 0, 0, 0, 1, 0.2)
- MoveLS.Enabled = FALSE
- Case 3:
- AllPlasOff()
- Flasher1.State = BulbBlink
- BulbLSClash2.State = BulbBlink
- PlaySound "fx_SaberClash3"
- MyDMD.Text = "[edge3][f4][xc][yc][b]SITH STRIKE"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]SITH STRIKE"
- LSLOn(): LSROn()
- Call MiniPlayField_0.MoveTo( 90, 906, 80, 0, 0, 25, 1, 0.2) ' cross swords, red on top (Sith strike)...
- Call MiniPlayField_1.MoveTo( 407, 910, 80, -5, 0, -25, 1, 0.2)
- Case 4:
- PlaySound "fx_LSAway", 0.8
- AllPlasOn()
- Flasher1.State = BulbOff
- BulbLSClash2.State = BulbOff
- Call MiniPlayField_0.MoveTo( 20, 906, 80, 0, 0, 0, 1, 0.2)
- Call MiniPlayField_1.MoveTo( 497, 910, 80, 0, 0, 0, 1, 0.2) ' move back to original position...
- MoveLS.Enabled = FALSE
- ' blue wins...
- Case 5:
- AllPlasOff()
- LightSeqPF.Play SeqAllOff
- Flasher1.State = BulbBlink
- BulbLSClash1.State = BulbBlink
- PlaySound "fx_SaberClash", 0.7
- LSLOn(): LSROn()
- Call MiniPlayField_0.MoveTo( 90, 906, 80, -5, 0, 25, 1, 0.2) ' cross swords, blue on top (Jedi strike)...
- Call MiniPlayField_1.MoveTo( 407, 910, 80, 0, 0, -25, 1, 0.2)
- MoveLS.Set TRUE, 2500
- Case 6:
- Flasher1.State = BulbOff
- BulbLSClash1.State = BulbOff
- PlaySound "fx_LSMove"
- Call MiniPlayField_0.MoveTo( 90, 906, 80, -20, 0, 25, 1, 0.1): MoveLS.Set TRUE, 100 ' blue raises up to hit red...
- Case 7:
- Flasher1.State = BulbOn
- BulbLSClash1.State = BulbOn
- PlaySound "fx_LSHit"
- Call MiniPlayField_0.MoveTo( 90, 906, 80, -2, 0, 25, 1, 0.1): MoveLS.Set TRUE, 100 ' blue strikes down hard on red...
- Call MiniPlayField_1.MoveTo( 407, 910, 80, 2, 0, -25, 1, 0.1)
- Case 8:
- Flasher1.State = BulbOff
- BulbLSClash1.State = BulbOff
- PlaySound "fx_LSMove"
- Call MiniPlayField_0.MoveTo( 90, 906, 80, -20, 0, 25, 1, 0.1): MoveLS.Set TRUE, 100 ' blue raises up to hit red...
- Case 9:
- Flasher1.State = BulbOn
- BulbLSClash1.State = BulbOn
- PlaySound "fx_LSHit"
- Call MiniPlayField_0.MoveTo( 90, 906, 80, -4, 0, 25, 1, 0.1): MoveLS.Set TRUE, 500 ' blue strikes down hard on red...
- Call MiniPlayField_1.MoveTo( 407, 910, 80, 4, 0, -25, 1, 0.1)
- Case 10:
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- MovieTimer.Set TRUE, 3100: QT = 3100
- If (NoPlay = FALSE) Then
- Select Case RandomNumber(8)
- Case 1: PlaySound "fx_JediWin": NewMovie.Frame 352: NewMovieHUD.Frame 352
- Case 2: PlaySound "fx_JediWin2": NewMovie.Frame 353: NewMovieHUD.Frame 353
- Case 3: PlaySound "fx_JediWin3": NewMovie.Frame 353: NewMovieHUD.Frame 353: VaderScoreLight.FlashForMs 3300, 3300, BulbOff
- Case 4: PlaySound "fx_JediWin4": NewMovie.Frame 353: NewMovieHUD.Frame 353: VaderScoreLight.FlashForMs 1600, 1600, BulbOff: QT = 1600
- Case 5: PlaySound "fx_JediWin5": NewMovie.Frame 353: NewMovieHUD.Frame 353: VaderScoreLight.FlashForMs 2500, 2500, BulbOff:QT = 2500
- Case 6: PlaySound "fx_JediWin6": NewMovie.Frame 353: NewMovieHUD.Frame 353: VaderScoreLight.FlashForMs 1700, 1700, BulbOff:QT = 1700
- Case 7: PlaySound "fx_JediWin7": NewMovie.Frame 353: NewMovieHUD.Frame 353: VaderScoreLight.FlashForMs 4500, 4500, BulbOff:QT = 4500
- Case 8: PlaySound "fx_JediWin8": NewMovie.Frame 353: NewMovieHUD.Frame 353: VaderScoreLight.FlashForMs 2500, 2500, BulbOff: QT = 2500
- End Select
- Else
- NewMovie.Frame 352: NewMovieHUD.Frame 352
- End If
- NoPlay = FALSE
- MyDMD.Text = "[edge3][f4][xc][yc][b]JEDI WIN"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]JEDI WIN"
- PlaySound "fx_LSAway", 0.8
- LightSeqPF.StopPlay
- Flasher1.State = BulbOff
- BulbLSClash1.State = BulbOff
- Call MiniPlayField_0.MoveTo( 20, 906, 80, 0, 0, 0, 1, 0.3) ' return to resting position...
- Call MiniPlayField_1.MoveTo( 497, 910, 80, 0, 0, 0, 1, 0.3)
- MoveLS.Enabled = FALSE
- MovieTimer.Set TRUE, QT: DelayEOB.Set TRUE, QT
- ' red wins...
- Case 11:
- AllPlasOff()
- LightSeqPF.Play SeqAllOff
- Flasher1.State = BulbBlink
- BulbLSClash2.State = BulbBlink
- PlaySound "fx_SaberClash", 0.7
- LSLOn(): LSROn()
- Call MiniPlayField_0.MoveTo( 90, 906, 80, 0, 0, 25, 1, 0.2) ' cross swords, blue on top (Jedi strike)...
- Call MiniPlayField_1.MoveTo( 407, 910, 80, -5, 0, -25, 1, 0.2)
- MoveLS.Set TRUE, 2500
- Case 12:
- Flasher1.State = BulbOff
- BulbLSClash2.State = BulbOff
- PlaySound "fx_LSMove"
- Call MiniPlayField_1.MoveTo( 407, 910, 80, -20, 0, 25, 1, 0.1): MoveLS.Set TRUE, 100 ' red raises up to hit blue...
- Case 13:
- Flasher1.State = BulbOn
- BulbLSClash2.State = BulbOn
- PlaySound "fx_LSHit"
- Call MiniPlayField_0.MoveTo( 90, 906, 80, 2, 0, 25, 1, 0.1): MoveLS.Set TRUE, 100 ' red strikes down hard on blue...
- Call MiniPlayField_1.MoveTo( 407, 910, 80, -2, 0, -25, 1, 0.1)
- Case 14:
- Flasher1.State = BulbOff
- BulbLSClash2.State = BulbOff
- PlaySound "fx_LSMove"
- Call MiniPlayField_1.MoveTo( 407, 910, 80, -20, 0, 25, 1, 0.1): MoveLS.Set TRUE, 100 ' red raises up to hit blue...
- Case 15:
- Flasher1.State = BulbOn
- BulbLSClash2.State = BulbOn
- PlaySound "fx_LSHit"
- Call MiniPlayField_0.MoveTo( 90, 906, 80, 4, 0, 25, 1, 0.1): MoveLS.Set TRUE, 500 ' red strikes down hard on blue...
- Call MiniPlayField_1.MoveTo( 407, 910, 80, -4, 0, -25, 1, 0.1)
- Case 16:
- NewMovie.FadeIn: If use_FP_HUD_DMD_and_Videos = true then NewMovieHUD.FadeIn
- NewMovie.Frame 351: NewMovieHUD.Frame 351
- MovieTimer.Set TRUE, 3100: QT = 3100
- If (NoPlay = FALSE) Then
- Select Case RandomNumber(9)
- Case 1: PlaySound "fx_SithWin": VaderScoreLight.FlashForMs 3100, 3100, BulbOff
- Case 2: PlaySound "fx_SithWin2": VaderScoreLight.FlashForMs 2900, 2900, BulbOff
- Case 3: PlaySound "fx_SithWin3": VaderScoreLight.FlashForMs 2500, 2500, BulbOff: QT = 2500
- Case 4: PlaySound "fx_SithWin4": VaderScoreLight.FlashForMs 3200, 3200, BulbOff
- Case 5: PlaySound "fx_SithWin5": VaderScoreLight.FlashForMs 4000, 4000, BulbOff: QT = 4000
- Case 6: PlaySound "fx_SithWin6": VaderScoreLight.FlashForMs 2500, 2500, BulbOff: QT = 2500
- Case 7: PlaySound "fx_SithWin7": VaderScoreLight.FlashForMs 2100, 2100, BulbOff: QT = 2100
- Case 8: PlaySound "fx_SithWin8": VaderScoreLight.FlashForMs 3200, 3200, BulbOff: QT = 3200
- Case 9: PlaySound "fx_SithWin9": VaderScoreLight.FlashForMs 1800, 1800, BulbOff: QT = 1800
- End Select
- End If
- NoPlay = FALSE
- MyDMD.Text = "[edge3][f4][xc][yc][b]SITH WIN"
- MyDMD2.Text = "[edge3][f4][xc][yc][b]SITH WIN"
- PlaySound "fx_LSAway", 0.8
- LightSeqPF.StopPlay
- Flasher1.State = BulbOff
- BulbLSClash2.State = BulbOff
- Call MiniPlayField_0.MoveTo( 20, 906, 80, 0, 0, 0, 1, 0.3) ' return to resting position...
- Call MiniPlayField_1.MoveTo( 497, 910, 80, 0, 0, 0, 1, 0.3)
- MoveLS.Enabled = FALSE
- MovieTimer.Set TRUE, QT: DelayEOB.Set TRUE, QT
- End Select
- End Sub
- Dim NoPlay
- Sub VaderQuotes()
- PlaySound "vo_LandTroops"
- End Sub
- ' As we change the lightsabre colour, we also change the lights on the handle and the bulbs on
- ' the left outlane...
- ' ...and we change the playfield image, so the Rebel Lights match the Lightsaber colour.
- Sub LSLOn()
- Call MiniPlayField_0.MoveTo( 20, 906, 80, 0, 0, 0, 1, 0) ' move the full lightsabre back into place...
- Call MiniPlayField_4.MoveTo( 22, 917.8, -80, 0, 0, 0, 1, 0) ' hide the handle only...
- BulbLSL.State = BulbOn
- FlasherRL1.State = BulbOn
- SaberBlueGlow.UpdateInterval = 25
- Select Case BladeColor
- Case 1: SaberBlueGlow.Frame 2, 3, 2 ' blue
- FlasherSabreLExt.SetLitColor 32, 114, 249
- SabreLight1Ext.SetLitColor 32, 114, 249
- SabreLight2Ext.SetLitColor 32, 114, 249
- BulbLSClash1Ext.SetLitColor 32, 114, 249
- LeftOutBulb1Ext.SetLitColor 32, 114, 249
- LeftOutBulb2Ext.SetLitColor 32, 114, 249
- LeftOutBulb3Ext.SetLitColor 32, 114, 249
- LeftOutBulb4Ext.SetLitColor 32, 114, 249
- LeftOutBulb5Ext.SetLitColor 32, 114, 249
- LightKickBackExt.SetLitColor 32, 114, 249
- FlasherRL1Ext.SetLitColor 32,114,249
- If use_LightSaberFlasherEffect = True then
- FlasherSabreL.Set BulbBlink, "10", 25
- Else
- FlasherSabreL.Set BulbOn
- End If
- xBAM.SetTexture "LightDefend1", "!SW_PF", "0"
- xBAM.SetTexture "LightDefend2", "!SW_PF", "0"
- xBAM.SetTexture "LightDefend3", "!SW_PF", "0"
- xBAM.SetTexture "LightDefend4", "!SW_PF", "0"
- xBAM.SetTexture "LightDefend5", "!SW_PF", "0"
- xBAM.SetTexture "LightDefend6", "!SW_PF", "0"
- xBAM.SetTexture "LightDefend7", "!SW_PF", "0"
- xBAM.SetTexture "LightDefend8", "!SW_PF", "0"
- xBAM.SetTexture "LightDefend9", "!SW_PF", "0"
- xBAM.SetTexture "LightDefend10", "!SW_PF", "0"
- xBAM.SetTexture "LightDefend20", "!SW_PF", "0"
- xBam.SetPlayfieldTexture "!SW_PF"
- Case 2: SaberBlueGlow.Frame 7, 8, 7 ' green
- FlasherSabreLExt.SetLitColor 0, 255, 0
- SabreLight1Ext.SetLitColor 0, 255, 0
- SabreLight2Ext.SetLitColor 0, 255, 0
- BulbLSClash1Ext.SetLitColor 0, 255, 0
- LeftOutBulb1Ext.SetLitColor 0, 255, 0
- LeftOutBulb2Ext.SetLitColor 0, 255, 0
- LeftOutBulb3Ext.SetLitColor 0, 255, 0
- LeftOutBulb4Ext.SetLitColor 0, 255, 0
- LeftOutBulb5Ext.SetLitColor 0, 255, 0
- FlasherRL1Ext.SetLitColor 0,255,0
- LightKickBackExt.SetLitColor 0, 255, 0
- If use_LightSaberFlasherEffect = True then
- FlasherSabreL.Set BulbBlink, "10", 25
- Else
- FlasherSabreL.Set BulbOn
- End If
- xBAM.SetTexture "LightDefend1", "!SW_PF_Green", "0"
- xBAM.SetTexture "LightDefend2", "!SW_PF_Green", "0"
- xBAM.SetTexture "LightDefend3", "!SW_PF_Green", "0"
- xBAM.SetTexture "LightDefend4", "!SW_PF_Green", "0"
- xBAM.SetTexture "LightDefend5", "!SW_PF_Green", "0"
- xBAM.SetTexture "LightDefend6", "!SW_PF_Green", "0"
- xBAM.SetTexture "LightDefend7", "!SW_PF_Green", "0"
- xBAM.SetTexture "LightDefend8", "!SW_PF_Green", "0"
- xBAM.SetTexture "LightDefend9", "!SW_PF_Green", "0"
- xBAM.SetTexture "LightDefend10", "!SW_PF_Green", "0"
- xBAM.SetTexture "LightDefend20", "!SW_PF_Green", "0"
- xBam.SetPlayfieldTexture "!SW_PF_Green"
- Case 3: SaberBlueGlow.Frame 9, 10, 9 ' Samual L. Jackson
- FlasherSabreLExt.SetLitColor 128, 0, 255
- SabreLight1Ext.SetLitColor 128, 0, 255
- SabreLight2Ext.SetLitColor 128, 0, 255
- BulbLSClash1Ext.SetLitColor 128, 0, 255
- LeftOutBulb1Ext.SetLitColor 128, 0, 255
- LeftOutBulb2Ext.SetLitColor 128, 0, 255
- LeftOutBulb3Ext.SetLitColor 128, 0, 255
- LeftOutBulb4Ext.SetLitColor 128, 0, 255
- LeftOutBulb5Ext.SetLitColor 128, 0, 255
- FlasherRL1Ext.SetLitColor 128, 0, 255
- LightKickBackExt.SetLitColor 128, 0, 255
- If use_LightSaberFlasherEffect = True then
- FlasherSabreL.Set BulbBlink, "10", 25
- Else
- FlasherSabreL.Set BulbOn
- End If
- xBAM.SetTexture "LightDefend1", "!SW_PF_Purple", "0"
- xBAM.SetTexture "LightDefend2", "!SW_PF_Purple", "0"
- xBAM.SetTexture "LightDefend3", "!SW_PF_Purple", "0"
- xBAM.SetTexture "LightDefend4", "!SW_PF_Purple", "0"
- xBAM.SetTexture "LightDefend5", "!SW_PF_Purple", "0"
- xBAM.SetTexture "LightDefend6", "!SW_PF_Purple", "0"
- xBAM.SetTexture "LightDefend7", "!SW_PF_Purple", "0"
- xBAM.SetTexture "LightDefend8", "!SW_PF_Purple", "0"
- xBAM.SetTexture "LightDefend9", "!SW_PF_Purple", "0"
- xBAM.SetTexture "LightDefend10", "!SW_PF_Purple", "0"
- xBAM.SetTexture "LightDefend20", "!SW_PF_Purple", "0"
- xBam.SetPlayfieldTexture "!SW_PF_Purple"
- Case 4: SaberBlueGlow.Frame 11, 12, 11 ' Yellow
- FlasherSabreLExt.SetLitColor 255, 255, 0
- SabreLight1Ext.SetLitColor 255, 255, 0
- SabreLight2Ext.SetLitColor 255, 255, 0
- BulbLSClash1Ext.SetLitColor 255, 255, 0
- LeftOutBulb1Ext.SetLitColor 255, 255, 0
- LeftOutBulb2Ext.SetLitColor 255, 255, 0
- LeftOutBulb3Ext.SetLitColor 255, 255, 0
- LeftOutBulb4Ext.SetLitColor 255, 255, 0
- LeftOutBulb5Ext.SetLitColor 255, 255, 0
- FlasherRL1Ext.SetLitColor 255, 255, 0
- LightKickBackExt.SetLitColor 255, 255, 0
- If use_LightSaberFlasherEffect = True then
- FlasherSabreL.Set BulbBlink, "10", 25
- Else
- FlasherSabreL.Set BulbOn
- End If
- xBAM.SetTexture "LightDefend1", "!SW_PF_Yellow", "0"
- xBAM.SetTexture "LightDefend2", "!SW_PF_Yellow", "0"
- xBAM.SetTexture "LightDefend3", "!SW_PF_Yellow", "0"
- xBAM.SetTexture "LightDefend4", "!SW_PF_Yellow", "0"
- xBAM.SetTexture "LightDefend5", "!SW_PF_Yellow", "0"
- xBAM.SetTexture "LightDefend6", "!SW_PF_Yellow", "0"
- xBAM.SetTexture "LightDefend7", "!SW_PF_Yellow", "0"
- xBAM.SetTexture "LightDefend8", "!SW_PF_Yellow", "0"
- xBAM.SetTexture "LightDefend9", "!SW_PF_Yellow", "0"
- xBAM.SetTexture "LightDefend10", "!SW_PF_Yellow", "0"
- xBAM.SetTexture "LightDefend20", "!SW_PF_Yellow", "0"
- xBam.SetPlayfieldTexture "!SW_PF_Yellow"
- Case 5: SaberBlueGlow.Frame 13, 14, 13 ' Orange
- FlasherSabreLExt.SetLitColor 255, 128, 0
- SabreLight1Ext.SetLitColor 255, 128, 0
- SabreLight2Ext.SetLitColor 255, 128, 0
- BulbLSClash1Ext.SetLitColor 255, 128, 0
- LeftOutBulb1Ext.SetLitColor 255, 128, 0
- LeftOutBulb2Ext.SetLitColor 255, 128, 0
- LeftOutBulb3Ext.SetLitColor 255, 128, 0
- LeftOutBulb4Ext.SetLitColor 255, 128, 0
- LeftOutBulb5Ext.SetLitColor 255, 128, 0
- FlasherRL1Ext.SetLitColor 255, 128, 0
- LightKickBackExt.SetLitColor 255, 128, 0
- If use_LightSaberFlasherEffect = True then
- FlasherSabreL.Set BulbBlink, "10", 25
- Else
- FlasherSabreL.Set BulbOn
- End If
- xBAM.SetTexture "LightDefend1", "!SW_PF_Orange", "0"
- xBAM.SetTexture "LightDefend2", "!SW_PF_Orange", "0"
- xBAM.SetTexture "LightDefend3", "!SW_PF_Orange", "0"
- xBAM.SetTexture "LightDefend4", "!SW_PF_Orange", "0"
- xBAM.SetTexture "LightDefend5", "!SW_PF_Orange", "0"
- xBAM.SetTexture "LightDefend6", "!SW_PF_Orange", "0"
- xBAM.SetTexture "LightDefend7", "!SW_PF_Orange", "0"
- xBAM.SetTexture "LightDefend8", "!SW_PF_Orange", "0"
- xBAM.SetTexture "LightDefend9", "!SW_PF_Orange", "0"
- xBAM.SetTexture "LightDefend10", "!SW_PF_Orange", "0"
- xBAM.SetTexture "LightDefend20", "!SW_PF_Orange", "0"
- xBam.SetPlayfieldTexture "!SW_PF_Orange"
- End Select
- End Sub
- Sub LSLOff()
- Call MiniPlayField_0.MoveTo( 20, 906, -80, 0, 0, 0, 1, 0) ' move the full lightsabre below the table, hide it...
- Call MiniPlayField_4.MoveTo( 22, 917.8, 80, 0, 0, 0, 1, 0) ' replace with handle only...
- BulbLSL.State = BulbOff
- FlasherRL1.State = BulbOff
- FlasherRL1Ext.SetLitColor 130,94,40
- FlasherSabreL.State = BulbOff
- SaberBlueGlow.Frame 1
- End Sub
- Sub LSROn()
- Call MiniPlayField_1.MoveTo( 497, 910, 80, 0, 0, 0, 1, 0) ' move the full lightsabre below the table, hide it...
- Call MiniPlayField_5.MoveTo( 496, 915, -80, 0, 0, 0, 1, 0) ' replace with handle only...
- BulbLSR.State = BulbOn
- FlasherRL2.State = BulbOn
- FlasherRL2Ext.SetLitColor 255,0,0
- If use_LightSaberFlasherEffect = True then
- FlasherSabreR.Set BulbBlink, "10", 25
- Else
- FlasherSabreR.Set BulbOn
- End If
- SaberRedGlow.UpdateInterval = 25
- SaberRedGlow.Frame 5, 6, 5
- End Sub
- Sub LSROff()
- Call MiniPlayField_1.MoveTo( 497, 910, -80, 0, 0, 0, 1, 0)' move the full lightsabre back into place...
- Call MiniPlayField_5.MoveTo( 496, 915, 80, 0, 0, 0, 1, 0)' hide the handle only...
- BulbLSR.State = BulbOff
- FlasherRL2.State = BulbOff
- FlasherRL2Ext.SetLitColor 79,100,132
- FlasherSabreR.State = BulbOff
- SaberRedGlow.Frame 1
- End Sub
- ' the R2-D2 toy is controlled here, make him do whatever you wish, fetch a beer if you like...
- ' after his little showoff dance when the game is first powered on, he only moves left and right during the game, but he will
- ' come out and celebrate a highscore.....beep-bop-beepy-bop
- Sub MoveR2_Expired()
- R2Move = R2Move + 1
- Select Case R2Animate
- Case 1:
- Select Case R2Move
- Case 1: ' R2 moves out from his resting position, across the glass bridge to the plastic...
- HologramR2D2.Frame 1
- R2Out = TRUE
- PlayMusic 8, "fx_R2Move": MoveFx.Set TRUE, 2200
- Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 0, 1, 2.2): MoveR2.Set TRUE, 3500
- Case 2: ' R2 moves left...
- R2HeadBulb.State = BulbOn
- Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, -25, 1, 1.5): MoveR2.Set TRUE, 2500
- Case 3: ' R2 moves right...
- Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 25, 1, 3): MoveR2.Set TRUE, 4000
- Case 4: ' R2 moves centre...
- R2HeadBulb.State = BulbBlink
- PlaySound "fx_R2Sound5"
- Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 0, 1, 1.5): MoveR2.Set TRUE, 2500
- Case 5: ' R2 turns around 180 degrees...
- R2HeadBulb.State = BulbOff
- PlayMusic 8, "fx_R2Move"
- PlaySound "fx_R2Sound21"
- PlaySound "fx_R2HeadMotor2"
- R2D2.PopDown
- Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 180, 1, 1.2): MoveR2.Set TRUE, 1200
- Case 6: ' R2 turns around 180 degrees...
- PlayMusic 8, "fx_R2Move": MoveFx.Set TRUE, 2.4
- PlaySound "fx_R2HeadMotor2"
- Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 355, 1, 1.2): MoveR2.Set TRUE, 2500
- Case 7: ' R2 turns around 180 degrees...
- PlaySound "fx_R2Sound18"
- PlaySound "fx_R2HeadMotor2"
- R2D2.PopDown
- Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 180, 1, 2.5): MoveR2.Set TRUE, 2500
- Case 8: ' R2 moves back to his resting area...
- PlayMusic 8, "fx_R2Move"
- If (fpGameInPlay = FALSE) Then PlaySound "fx_R2Sound13"
- PlaySound "fx_R2HeadMotor2"
- R2D2.SolenoidPulse
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 180, 1, 2.2): MoveR2.Set TRUE, 2200
- Case 9: ' R2 turns around to face forward...
- R2Out = FALSE
- PlayMusic 8, "fx_R2Move": MoveFx.Set TRUE, 2000
- If (fpGameInPlay = FALSE) Then PlaySound "fx_R2Sound14"
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 2): MoveR2.Set TRUE, 2000
- Case 10:
- MoveR2.Enabled = FALSE
- R2Animate = 1
- R2Move = 0
- If (fpGameInPlay = FALSE) Then
- PlaySound "fx_R2Sound20"
- R2HeadBulb.State = BulbOn
- HologramR2D2.Frame 12: R2D2Fade.Set TRUE, 4000
- End If
- End Select
- Case 2:
- Select Case R2Move
- Case 1: ' R2 moves out from his resting position, across the glass bridge to the plastic...
- HologramR2D2.Frame 1
- R2Out = TRUE
- PlayMusic 8, "fx_R2Move": MoveFx.Set TRUE, 2200
- Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 0, 1, 1.8): MoveR2.Set TRUE, 1800
- Case 2: ' R2 turns around 180 degrees...
- R2HeadBulb.State = BulbOff
- PlayMusic 8, "fx_R2Move"
- PlaySound "fx_R2HeadMotor2"
- R2D2.PopDown
- Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 180, 1, 1.2): MoveR2.Set TRUE, 1200
- Case 3: ' R2 turns around 180 degrees...
- PlayMusic 8, "fx_R2Move": MoveFx.Set TRUE, 2.4
- PlaySound "fx_R2Sound15"
- PlaySound "fx_R2HeadMotor2"
- Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 355, 1, 1.2): MoveR2.Set TRUE, 2000
- Case 4: ' R2 turns around 180 degrees...
- PlaySound "fx_R2HeadMotor2"
- R2D2.PopDown
- Call MiniPlayField_2.MoveTo( 402, 184, 50, 0, 0, 180, 1, 2): MoveR2.Set TRUE, 2000
- Case 5: ' R2 moves back to his resting area...
- PlayMusic 8, "fx_R2Move"
- PlaySound "fx_R2HeadMotor2"
- R2D2.SolenoidPulse
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 180, 1, 1.8): MoveR2.Set TRUE, 1800
- Case 6: ' R2 turns around to face forward...
- R2Out = FALSE
- PlayMusic 8, "fx_R2Move": MoveFx.Set TRUE, 1800
- Call MiniPlayField_2.MoveTo( 461, 56, 50, 0, 0, 0, 1, 1.8): MoveR2.Set TRUE, 1800
- Case 7:
- MoveR2.Enabled = FALSE
- R2Animate = 1
- R2Move = 0
- End Select
- End Select
- End Sub
- Dim XMove
- ' X-Wing Toy...
- ' 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.
- Dim MiniPlayField_3 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_3 = xBAM.CreateMiniPlayfield( 45, 50, 320, 335, 60, 70, 50, 325, 50)
- Call MiniPlayField_3.MoveTo( 60, 325, 40, 0, 0, 0, 1, 0) ' resting on plastics, facing down...
- ' 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!!!
- 'Sub XWingMove_Expired()
- ' XWingMove.Enabled = FALSE
- ' Select Case XMove
- ' Case 1:
- 'Call MiniPlayField_3.MoveTo( 60, 325, 50, 0, 0, -30, 1.3, 3.4) ' raise up and turn to the right...(game start)
- ' Case 2:
- 'Call MiniPlayField_3.MoveTo( 60, 325, 50, 0, 0, -20, 1.3, 0.1) ' move quickly to the left...(fire on TIE fighter)
- 'XWingMove.Set TRUE, 500: XMove = 3
- ' Case 3:
- 'Call MiniPlayField_3.MoveTo( 60, 325, 50, 0, 0, -30, 1.3, 0.1) ' move quickly to the right...(back to formation)
- ' Case 4:
- 'Call MiniPlayField_3.MoveTo( 60, 325, 40, 0, 0, 0, 1, 2) ' resting on plastics, facing down...(landing, game over)
- ' Case 5:
- 'Call MiniPlayField_3.MoveTo( 60, 325, 50, -15, 0, -50, 1.3, 0.1) ' luke takes a hit...(kickback)
- 'XWingMove.Set TRUE, 300: XMove = 6
- ' Case 6:
- 'Call MiniPlayField_3.MoveTo( 60, 325, 50, 0, 0, -30, 1.3, 0.1) ' back to formation...
- ' End Select
- 'End Sub
- Sub MoveFx_Expired()
- MoveFx.Enabled = FALSE
- StopMusic 8
- End Sub
- Sub Guide36_Hit(): PlaySound "fx_RubberSoftHit": End Sub
- Sub Guide37_Hit(): PlaySound "fx_RubberSoftHit": End Sub
- Sub Guide38_Hit(): PlaySound "fx_RubberSoftHit": End Sub
- Sub Guide39_Hit(): PlaySound "fx_RubberSoftHit": End Sub
- Sub R2D2Fade_Expired()
- R2D2Fade.Enabled = FALSE
- HologramR2D2.Frame 1
- R2HeadBulb.State = BulbOff
- End Sub
- ' the Death Star toy will slowly rotate left and right during the game...just enough to let you know it's a menacing threat...
- ' a spot lamp in front of it will highlight it during certain events in the game...
- Sub DSSpin_Expired()
- DSSpin.Set TRUE, 6000
- Select Case SpinMe
- Case 0: DSToy.RotateXZ 5: SpinMe = 1
- Case 1: DSToy.RotateXZ -5: SpinMe = 0
- End Select
- End Sub
- Dim MSaveR,MSActive,MagPower,ForcePower(4)
- Set MSaveR = xBAM.CreateMagneticField(MagnetR.X, MagnetR.Y, -20, 65, 0)
- ' ** 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
- ' feel a little bit special...
- Sub ForcePowerOnR()
- MSActive = TRUE
- ForcePower(CP) = 0
- If (QuoteBusy = FALSE) Then
- QuoteBusy = TRUE: QuoteTimer.Set TRUE, 1200
- Select Case RandomNumber(3)
- Case 1: MusicFade(1100): PlaySound "vo_ForceWithYou2": VaderScoreLight.FlashForMs 1100, 1100, VaderScoreLight.State
- Case 2: MusicFade(1200): PlaySound "vo_JediMaster2"
- Case 3: MusicFade(3200): PlaySound "vo_TheForce": QuoteTimer.Set TRUE, 3200
- End Select
- End If
- LightSeqPF.Play SeqBlinking, , 3, 75
- PlayMusic 6, "fx_Magnet", FALSE, 0.7
- MSaveR.MaxForce = 15
- MSaveR.Strength = 70
- MagPower = 0: MSaveTimer.Set TRUE, 100
- End Sub
- Sub MSaveTimer_Expired()
- MagPower = MagPower + 1
- Select Case MagPower
- Case 1:
- MagnoWall.Collidable = TRUE
- Case 2:
- MSaveTimer.Set TRUE, 1000
- MSaveR.Strength = 30
- Case 3:
- StopMusic 6
- MSaveR.Strength = 0
- MSActive = FALSE
- Case 4:
- MSaveTimer.Enabled = FALSE
- MagnoWall.Collidable = FALSE
- MagnoWall2.Collidable = FALSE
- End Select
- End Sub
- Sub MagnetR_Hit()
- If (MSActive = TRUE) Then
- MagnoWall.Collidable = FALSE
- MagnoWall2.Collidable = TRUE
- End If
- End Sub
- Sub TheForce2_Hit()
- If (ForcePower(CP) = 1) Then ForcePowerOnR()
- set LastSwitchHit = TheForce
- End Sub
- Sub TheForce_Hit()
- set LastSwitchHit = TheForce2
- End Sub
- ' thanks for scrolling this far down.....it gets rather lonely down here :(
- '////////////////////////////// Smoke's FP Ball Rolling Sounds //////////////////////////////
- dim ZRBrampHeight
- dim ZRBtablewide
- dim ZRBrampVolNormLevel
- dim ZRBsoundballchan
- dim ZRBrampSoundballchan
- dim ZRBvolNormLevel
- dim ZRBrollingSound
- dim ZRBPitchTunning
- dim ZRBrampRollingSound
- dim ZRBrampPitchTunning
- dim ZRBwireVolNormLevel
- dim ZRBwireRollingSound
- dim ZRBwirePitchTunning
- dim zmaxspeedworldrecord
- '**************************************
- ' TABLE SETTINGS - Ball Rolling Sounds
- '**************************************
- ZRBrampHeight = 27
- ZRBtablewide = 516
- ZRBsoundballchan = 7
- ZRBvolNormLevel = 1 'Future Pinball ball rolling volume
- ZRBrollingSound = "zfx_ballrollingb2"
- ZRBPitchTunning = -40
- ZRBrampSoundballchan = -1 'set to -1 to disable rampsound roll
- ZRBrampVolNormLevel = 0.1
- ZRBrampRollingSound = "zfx_ballrolramp"
- ZRBrampPitchTunning = 40 '20
- ZRBwireVolNormLevel = 2.0
- ZRBwireRollingSound = "zfx_ballrolwire"
- ZRBwirePitchTunning = 10 '60
- '*********************************************
- ' End of TABLE SETTINGS - Ball Rolling Sounds
- '*********************************************
- Const ZRBsearchshifterror = 900 'max radius*radius-> 30mm*30mm=900
- Const ZRBvelTuning = 25
- Const ZRBvolTuning = 2300
- Dim ZRBtrakedSoundBalls(20)
- Dim ZRBwireSoundBalls(20)
- dim ZRBlastfoundFastBallResultPF
- dim ZRBlastfoundFastBallResultRamp
- dim ZRBlastRampSound
- dim ZRBchanRampPaused
- dim ZRBchanPFPaused
- Sub RollingBallUpdateTimer_Expired()
- dim volRampFactor,invvolRampFactor,tmpPitch,tmpVol,tmpballonwire
- dim foundFastBallResultPF,foundFastBallResultRamp
- 'SOUND MODE
- set foundFastBallResultPF=foundFastBallPlayfield()
- set foundFastBallResultRamp=foundFastBallRamp()
- tmpballonwire=stillBallOnWire()
- volRampFactor=1.0
- invvolRampFactor=0.0
- if (foundFastBallResultPF is nothing) then
- if not(ZRBlastfoundFastBallResultPF is nothing) then
- ZRBchanPFPaused=true
- set ZRBlastfoundFastBallResultPF=nothing
- EffectMusic ZRBsoundballchan, Pause, 0, 0
- end if
- else
- set ZRBlastfoundFastBallResultPF = foundFastBallResultPF
- ' play the rolling sound for each ball
- If ((zfunBallVel(foundFastBallResultPF)>1)) Then
- volRampFactor=1.0/((relativeBallHeight(foundFastBallResultPF.PositionGlobal.z)/7) ^2 +1)
- if (ZRBchanPFPaused) then
- ZRBchanPFPaused=false
- EffectMusic ZRBsoundballchan, ResumePlaying, 0, 0
- end if
- EffectMusic ZRBsoundballchan, SetVolume, zfunVol(foundFastBallResultPF)*volRampFactor*ZRBvolNormLevel, 0
- EffectMusic ZRBsoundballchan, SetFrequency, 0, zfunPitch(foundFastBallResultPF)+ZRBPitchTunning
- 'AddDebugText ( relativeBallHeight(foundFastBallResultPF.PositionGlobal.z) ) & " " & volRampFactor &" P"&time()
- 'if (round(100*(zfunVol(foundFastBallResultPF)*volRampFactor))>10) then
- 'AddDebugText "v "&round(100*(zfunVol(foundFastBallResultPF)*volRampFactor)) & " P "&(zfunPitch(foundFastBallResultPF)+ZRBPitchTunning)
- 'end if
- Else
- if not(ZRBchanPFPaused) then
- ZRBchanPFPaused=true
- EffectMusic ZRBsoundballchan, Pause, 0, 0
- end if
- End If
- end if
- if (ZRBrampSoundballchan>0) then
- if (foundFastBallResultRamp is nothing) then
- if not(ZRBlastfoundFastBallResultRamp is nothing) then
- set ZRBlastfoundFastBallResultRamp=nothing
- ZRBchanRampPaused=true
- EffectMusic ZRBrampSoundballchan, Pause, 0, 0
- end if
- else
- set ZRBlastfoundFastBallResultRamp = foundFastBallResultRamp
- ' play the rolling sound for each ball
- If ((zfunBallVel(foundFastBallResultRamp)>1)) Then
- volRampFactor=1.0-1.0/((relativeBallHeight(foundFastBallResultRamp.PositionGlobal.z)/7) ^2 +1)
- if (volRampFactor<0.0) then
- volRampFactor=0.0
- end if
- if (tmpballonwire) then
- if (ZRBlastRampSound=ZRBrampRollingSound) then
- ZRBlastRampSound=ZRBwireRollingSound
- StopMusic ZRBrampSoundballchan
- PlayMusic ZRBrampSoundballchan, ZRBwireRollingSound, TRUE ,0 ,0
- else
- if (ZRBchanRampPaused) then
- ZRBchanRampPaused=false
- EffectMusic ZRBrampSoundballchan, ResumePlaying, 0, 0
- end if
- end if
- EffectMusic ZRBrampSoundballchan, SetVolume, zfunVol(foundFastBallResultRamp)*volRampFactor*ZRBwireVolNormLevel, 0
- EffectMusic ZRBrampSoundballchan, SetFrequency, 0, zfunPitch(foundFastBallResultRamp)+ZRBwirePitchTunning
- 'AddDebugText "ww->"&zfunVol(foundFastBallResultRamp)*volRampFactor*ZRBwireVolNormLevel
- else
- if not(ZRBlastRampSound=ZRBrampRollingSound) then
- ZRBlastRampSound=ZRBrampRollingSound
- StopMusic ZRBrampSoundballchan
- PlayMusic ZRBrampSoundballchan, ZRBrampRollingSound, TRUE ,0 ,0
- else
- if (ZRBchanRampPaused) then
- ZRBchanRampPaused=false
- EffectMusic ZRBrampSoundballchan, ResumePlaying, 0, 0
- end if
- end if
- EffectMusic ZRBrampSoundballchan, SetVolume, zfunVol(foundFastBallResultRamp)*volRampFactor*ZRBrampVolNormLevel, 0
- EffectMusic ZRBrampSoundballchan, SetFrequency, 0, zfunPitch(foundFastBallResultRamp)+ZRBrampPitchTunning
- end if
- ' AddDebugText relativeBallHeight(foundFastBallResultRamp.PositionGlobal.z) & " " & volRampFactor &" R"&time()
- 'if (round(100*(zfunVol(foundFastBallResultRamp)*volRampFactor))>10) then
- 'AddDebugText "v2 "&round(100*(zfunVol(foundFastBallResultRamp)*volRampFactor)) & "P2 "&(zfunPitch(foundFastBallResultRamp)+ZRBPitchTunning)
- 'end if
- Else
- if not(ZRBchanRampPaused) then
- ZRBchanRampPaused=true
- EffectMusic ZRBrampSoundballchan, Pause, 0, 0
- end if
- End If
- end if
- end if
- End Sub
- Function relativeBallHeight(zzz)
- if (zzz<ZRBrampHeight) then
- relativeBallHeight=0.0
- else
- relativeBallHeight=(zzz-ZRBrampHeight)
- end if
- end Function
- Function zfunVol(ball) ' Calculates the Volume of the sound based on the ball speed
- 'zfunVol = (zfunBallVel(ball) + zfunBallVel(ball) ^2) / ZRBvolTuning
- zfunVol = (zfunBallVel(ball) ^2) / ZRBvolTuning
- if (zfunVol>1.0) then
- zfunVol=1.0
- end if
- End Function
- Function foundFastBallPlayfield() ' Calculates the Volume of the sound based on the ball speed
- dim speed,speedtmp,tmpball,j
- speed=1
- set foundFastBallPlayfield=nothing
- For j = 1 To 20
- set tmpball=ZRBtrakedSoundBalls(j)
- if (not(tmpball is nothing)) then
- speedtmp=zfunBallVel(tmpball)
- if (speedtmp>speed and (tmpball.PositionGlobal.z<ZRBrampHeight)) then
- set foundFastBallPlayfield=tmpball
- speed=speedtmp
- 'AddDebugText j& "fast "& speed
- end if
- end if
- Next
- End Function
- Function foundFastBallRamp() ' Calculates the Volume of the sound based on the ball speed
- dim speed,speedtmp,tmpball,j
- speed=1
- set foundFastBallRamp=nothing
- For j = 1 To 20
- set tmpball= ZRBtrakedSoundBalls(j)
- if (not(tmpball is nothing)) then
- speedtmp=zfunBallVel(tmpball)
- if (speedtmp>speed and (tmpball.PositionGlobal.z>=ZRBrampHeight)) then
- set foundFastBallRamp=tmpball
- speed=speedtmp
- 'AddDebugText j& "fastramp "& speed
- end if
- end if
- Next
- End Function
- 'add a call to this in FuturePinball_BeginPlay
- Sub initTrakedSoundBalls()
- dim j
- RollingBallUpdateTimer.userdata = nothing
- For j = 1 To 20
- set ZRBtrakedSoundBalls(j)=nothing
- set ZRBwireSoundBalls(j)=nothing
- Next
- 'limited to 1 ball sound sorry
- StopMusic ZRBsoundballchan
- PlayMusic ZRBsoundballchan, ZRBrollingSound, TRUE ,0 ,0
- EffectMusic ZRBsoundballchan, Pause, 0, 0
- if (ZRBrampSoundballchan>0) then
- StopMusic ZRBrampSoundballchan
- PlayMusic ZRBrampSoundballchan, ZRBrampRollingSound, TRUE ,0 ,0
- EffectMusic ZRBrampSoundballchan, Pause, 0, 0
- end if
- set ZRBlastfoundFastBallResultPF= nothing
- set ZRBlastfoundFastBallResultRamp= nothing
- ZRBchanRampPaused=true
- ZRBchanPFPaused=true
- zmaxspeedworldrecord=0.0
- ZRBlastRampSound=ZRBrampRollingSound
- AddDebugText "ZRBrampHeight "&ZRBrampHeight
- AddDebugText "ZRBtablewide "& ZRBtablewide
- AddDebugText "ZRBsoundballchan "& ZRBsoundballchan
- AddDebugText "ZRBvolNormLevel "& ZRBvolNormLevel
- AddDebugText "ZRBrollingSound "& ZRBrollingSound
- AddDebugText "ZRBPitchTunning "& ZRBPitchTunning
- AddDebugText "ZRBrampSoundballchan "& ZRBrampSoundballchan
- AddDebugText "ZRBrampVolNormLevel "& ZRBrampVolNormLevel
- AddDebugText "ZRBrampRollingSound "& ZRBrampRollingSound
- AddDebugText "ZRBrampPitchTunning "& ZRBrampPitchTunning
- AddDebugText "ZRBwireVolNormLevel "& ZRBwireVolNormLevel
- AddDebugText "ZRBwireRollingSound "& ZRBwireRollingSound
- AddDebugText "ZRBwirePitchTunning "& ZRBwirePitchTunning
- RollingBallUpdateTimer.set true,50
- end sub
- 'called when creating a ball (PlungerKicker ?)
- 'zbrcreator=trigger/kicker
- 'zbrtriggheight=height of the trigger (default to 0)
- Sub addTrackedBall(zbrcreator)
- addTrackedBallHeight zbrcreator,0.0
- end sub
- Sub addTrackedBallHeight(zbrcreator,zbrcreatorheight)
- dim j , tmpfoundindex ,tmpball
- RollingBallUpdateTimer.set false
- set tmpball = xBAM_BallCloseTo(zbrcreator.x, zbrcreator.y,zbrcreatorheight)
- 'AddDebugText zbrcreator.x&" "&zbrcreator.y
- if (tmpball is nothing) then
- AddDebugText "BUUGGGGGGGGG xBAM_BallCloseTo"
- end if
- tmpfoundindex=-1
- For j = 1 To 20
- if (ZRBtrakedSoundBalls(j) is nothing) then
- if (tmpfoundindex=-1) then
- tmpfoundindex = j
- end if
- else
- 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
- tmpfoundindex=-2
- 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)
- end if
- end if
- Next
- if (tmpfoundindex>-1) then
- set ZRBtrakedSoundBalls(tmpfoundindex) = tmpball
- 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)
- end if
- RollingBallUpdateTimer.set true,50
- end Sub
- 'called when creating a ball is on metal ramp
- 'zbrtrigg=trigger
- 'zbrtriggheight=height of the trigger (default to 0)
- Sub addWireRampTrackedBall(zbrtrigg)
- addWireRampTrackedBallHeight zbrtrigg,0.0
- end sub
- Sub addWireRampTrackedBallHeight(zbrtrigg,zbrtriggheight)
- dim j , tmpfoundindex ,tmpball
- RollingBallUpdateTimer.set false
- set tmpball = xBAM_BallCloseTo(zbrtrigg.x, zbrtrigg.y,zbrtriggheight)
- 'AddDebugText zbrtrigg.x&" "&zbrtrigg.y
- if (tmpball is nothing) then
- AddDebugText "BUUGGGGGGGGG xBAM_BallCloseTo"
- end if
- tmpfoundindex=-1
- For j = 1 To 20
- if (ZRBwireSoundBalls(j) is nothing) then
- if (tmpfoundindex=-1) then
- tmpfoundindex = j
- end if
- else
- 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
- tmpfoundindex=-2
- 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)
- end if
- end if
- Next
- if (tmpfoundindex>-1) then
- set ZRBwireSoundBalls(tmpfoundindex) = tmpball
- 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)
- end if
- RollingBallUpdateTimer.set true,50
- end Sub
- 'to force a remove for wire sound in some case
- 'zbrtrigg=trigger
- 'zbrtriggheight=height of the trigger (default to 0)
- Sub removeWireRampTrackedBall(zbrtrigg)
- removeWireRampTrackedBallHeight zbrtrigg,0.0
- end sub
- Sub removeWireRampTrackedBallHeight(zbrtrigg,zbrtriggheight)
- dim j,tmpball
- 'AddDebugText "remove wire " &zbrtrigg.x&" "&zbrtrigg.y
- RollingBallUpdateTimer.set false
- For j = 1 To 20
- if not(ZRBwireSoundBalls(j) is nothing) then
- set tmpball=ZRBwireSoundBalls(j)
- if ( ((tmpball.PositionGlobal.x-zbrtrigg.x)^2+(tmpball.PositionGlobal.y-zbrtrigg.y)^2+(tmpball.PositionGlobal.z-zbrtriggheight)^2)<ZRBsearchshifterror ) then
- set ZRBwireSoundBalls(j)=nothing
- AddDebugText "delw "&j&" "&(((tmpball.PositionGlobal.x-zbrtrigg.x)^2+(tmpball.PositionGlobal.y-zbrtrigg.y)^2+(tmpball.PositionGlobal.z-zbrtriggheight)^2))
- else
- 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))
- end if
- end if
- Next
- RollingBallUpdateTimer.set true,50
- end sub
- 'called by drain_hit
- 'zbrdestroyer=trigger/kicker
- 'zbrdestroyerheight=height of the trigger (default to 0)
- Sub deleteTrackedBall(zbrdestroyer)
- deleteTrackedBallHeight zbrdestroyer,0.0
- end sub
- Sub deleteTrackedBallHeight(zbrdestroyer,zbrdestroyerheight)
- dim j,tmpball
- RollingBallUpdateTimer.set false
- For j = 1 To 20
- if not(ZRBtrakedSoundBalls(j) is nothing) then
- set tmpball=ZRBtrakedSoundBalls(j)
- if ( ((tmpball.PositionGlobal.x-zbrdestroyer.x)^2+(tmpball.PositionGlobal.y-zbrdestroyer.y)^2+(tmpball.PositionGlobal.z-zbrdestroyerheight)^2)<ZRBsearchshifterror ) then
- set ZRBtrakedSoundBalls(j)=nothing
- AddDebugText "del "&j&" "&(((tmpball.PositionGlobal.x-zbrdestroyer.x)^2+(tmpball.PositionGlobal.y-zbrdestroyer.y)^2+(tmpball.PositionGlobal.z-zbrdestroyerheight)^2))
- end if
- end if
- Next
- RollingBallUpdateTimer.set true,50
- end sub
- function stillBallOnWire()
- dim j,tmpball
- stillBallOnWire=false
- For j = 1 To 20
- if not(ZRBwireSoundBalls(j) is nothing) then
- set tmpball=ZRBwireSoundBalls(j)
- if (tmpball.PositionGlobal.z>=ZRBrampHeight) then
- 'AddDebugText "wire "&j&" "&tmpball.PositionGlobal.z
- stillBallOnWire=true
- else
- 'AddDebugText "nowire "&j&" "&tmpball.PositionGlobal.z
- set ZRBwireSoundBalls(j)=nothing
- end if
- end if
- Next
- end Function
- Function zfunPan(ball) ' Calculates the pan for a ball based on the X position on the table.
- Dim tmp
- tmp = ball.PositionGlobal.x * 2 / ZRBtablewide-1
- If tmp > 0 Then
- zfunPan = (tmp ^10)
- Else
- zfunPan = (-((- tmp) ^10))
- End If
- End Function
- Function zfunPitch(ball) ' Calculates the pitch of the sound based on the ball speed
- zfunPitch = round(100+zfunBallVel(ball)/4)
- if (zfunPitch>120) then
- zfunPitch=120
- end if
- End Function
- Function zfunBallVel(ball) 'Calculates the ball speed
- 'yes we don't use the Z that we want
- zfunBallVel = INT( SQR( (ball.velocity.x^2 + ball.velocity.y^2) )/ZRBvelTuning )
- if (zfunBallVel>zmaxspeedworldrecord) then
- zmaxspeedworldrecord = zfunBallVel
- AddDebugText "speedworldrecord "& zmaxspeedworldrecord
- end if
- End Function
- '////////////////////// End of Smoke's FP Ball Rolling Sounds ///////////////////////////
- '#########################################################################
- '################# Epic Space Battles Mini Playfields ####################
- '****** Turbo Laser Turret ******
- Dim MiniPlayField_6 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_6 = xBAM.CreateMiniPlayfield( 603, 658, 276, 331, 40, 90, 632.9, 300.5, 65)
- Call MiniPlayField_6.MoveTo( 352.5, 255.9, 63.8, 0, 0, 50, 1, 0)
- '****** Turbo Laser Cannon ******
- Dim MiniPlayField_7 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_7 = xBAM.CreateMiniPlayfield( 603, 658, 336, 431, 5, 60, 632.901, 345.599, 0)
- Call MiniPlayField_7.MoveTo( 352.5, 255.9, 15.5, 0, 0, 50, 1, 0)
- '****** Millenium Falcon ******
- Dim MiniPlayField_8 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_8 = xBAM.CreateMiniPlayfield( 447, 513, 361, 461, 60, 100, 200, 411, 80)
- Call MiniPlayField_8.MoveTo( 200, 411, 80, 0, 0, 0, 1, 0)
- ' ****** X-Wing (Fly and Explode) ******
- Dim MiniPlayField_9 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_9 = xBAM.CreateMiniPlayfield( -342, -192, 461, 606, 0, 100, -267, -300, 50)
- Call MiniPlayField_9.MoveTo( 203.2, -60, -96.8, 0, 0, 15, 0.7, 0)
- ' ****** Explosion (X-Wing) ******
- Dim MiniPlayField_10 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_10 = xBAM.CreateMiniPlayfield( -767, -427, 361, 661, 0, 160, -600, -355, 50)
- Call MiniPlayField_10.MoveTo( 203.2, -60, 96.8, 0, 0, 15, 0.7, 0)
- ' ****** Tie Fighter: Vader ******
- Dim MiniPlayField_11 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_11 = xBAM.CreateMiniPlayfield( 223, 297, 11, 101, 95, 150, 260, 56, 122.5)
- Call MiniPlayField_11.MoveTo( 260, 56, 122.5, 0, 0, 0, 1, 0)
- '****** Tie Fighter (Stationary and Rotate) ******
- Dim MiniPlayField_12 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_12 = xBAM.CreateMiniPlayfield( 700, 734, 719, 751, 0, 55, 717, 735, 27.5)
- Call MiniPlayField_12.MoveTo( 277, 406.8, 55.9, 0, 0, 30, 2.25, 0)
- '****** X-Wing (Stationary and Rotate) ******
- Dim MiniPlayField_13 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_13 = xBAM.CreateMiniPlayfield( -342, -192, 181, 326, 0, 100, -267, 253.5, 50)
- Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 15, 0.7, 0)
- '****** Tie Fighter (Fly and Explode) ******
- Dim MiniPlayField_14 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_14 = xBAM.CreateMiniPlayfield( 700, 734, 619, 651, 0, 55, 817, 635, 27.5)
- Call MiniPlayField_14.MoveTo( 471.8, 509.4, 55.9, 0, 0, 30, 2.25, 0)
- '****** Explosion (Tie Fighter) ******
- Dim MiniPlayField_15 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_15 = xBAM.CreateMiniPlayfield( 820, 919, 579, 691, 0, 55, 980, 635, 27.5)
- Call MiniPlayField_14.MoveTo( 471.8, 519.4, 55.9, 0, 0, 30, 0, 0)
- '****** Tie Fighter (Fly in and Land)
- Dim MiniPlayField_16 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_16 = xBAM.CreateMiniPlayfield( 700, 734, 519, 551, 0, 55, 422, 535, 27.5)
- Call MiniPlayField_16.MoveTo( 170.6, -401, 190, 0, 0, -90, 2.25, 0)
- '****** Tie Fighter Lasers ******
- Dim MiniPlayField_17 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_17 = xBAM.CreateMiniPlayfield( 553, 588, 71, 171, -20, 5, 570.5, 121, -7.5)
- Dim MiniPlayField_18 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_18 = xBAM.CreateMiniPlayfield( 616.6, 643, 71, 171, -20, 5, 629.8, 121, -7.5)
- Dim MiniPlayField_19 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_19 = xBAM.CreateMiniPlayfield( 676.6, 703, 71, 171, -20, 5, 689.8, 121, -7.5)
- Dim MiniPlayField_20 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_20 = xBAM.CreateMiniPlayfield( 736.6, 763, 71, 171, -20, 5, 749.8, 121, -7.5)
- Call MiniPlayField_17.MoveTo( 229.1, 121.4, 105.1, 0, 0, 25, 0, 0)
- Call MiniPlayField_18.MoveTo( 232.1, 121.4, 105.1, 0, 0, 20, 0, 0)
- Call MiniPlayField_19.MoveTo( 237.7, 121.4, 105.1, 0, 0, 15, 0, 0)
- Call MiniPlayField_20.MoveTo( 247.7, 121.4, 105.1, 0, 0, 10, 0, 0)
- '****** X-Wing Lasers ******
- Dim MiniPlayField_21 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_21 = xBAM.CreateMiniPlayfield( 806.6, 823, 71, 171, -10, 5, 814.8, 121, -2.5)
- Dim MiniPlayField_22 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_22 = xBAM.CreateMiniPlayfield( 851.6, 868, 71, 171, -10, 5, 859.8, 121, -2.5)
- Dim MiniPlayField_23 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_23 = xBAM.CreateMiniPlayfield( 896.6, 913, 71, 171, -10, 5, 904.8, 121, -2.5)
- Dim MiniPlayField_24 ' Xmin Xmax Ymin Ymax Zmin Zmax CenX CenY CenZ
- Set MiniPlayField_24 = xBAM.CreateMiniPlayfield( 941.6, 958, 71, 171, -10, 5, 949.8, 121, -2.5)
- Call MiniPlayField_21.MoveTo( 100.2, 445.4, 80.1, 0, 0, -110, 0, 0)
- Call MiniPlayField_22.MoveTo( 125.2, 516.8, 62.1, 0, 0, -110, 0, 0)
- Call MiniPlayField_23.MoveTo( 100.2, 445.4, 62.1, 0, 0, -110, 0, 0)
- Call MiniPlayField_24.MoveTo( 125.2, 516.8, 80.1, 0, 0, -110, 0, 0)
- '###############################################################
- '################# Mini Playfield Animations ###################
- ' ****** X-Wing: Hover ******
- Dim XWingHover: XWingHover = false
- Dim XWingHovering: XWingHovering = 0
- Sub XWing_Hover
- if use_Hovering_Ships = false then exit sub
- XWingHover = true
- XWingHovering = 1
- XWingMove.Set TRUE, 1000
- MiniPlayField_13.EasingRotation = xBAM.easeInOutQuad
- MiniPlayField_13.EasingPosition = xBAM.easeInOutQuad
- End Sub
- ' ****** X-Wing: Rotate and Fire at Tie Fighter ******
- Sub XWing_Move
- if use_Animated_Space_Battles = false then exit sub
- If XWingExplode >0 then Exit Sub
- XWingHover = false
- XWingMove.Set TRUE, 500
- MiniPlayField_13.EasingRotation = xBAM.easeInOutQuad
- Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, -20, 0.7, 0.15)
- XWing_Laser_Timer.set True, 150: XWingLaser = 17
- End Sub
- ' ****** X-Wing: Kickback ******
- Sub XWing_Kickback
- if use_Animated_Space_Battles = false then exit sub
- If XWingExplode >0 then Exit Sub
- XWingHover = false
- XWingMove.Set TRUE, 300
- MiniPlayField_13.EasingRotation = xBAM.easeInOutQuad
- Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 50, 0.7, 0.15)
- End Sub
- ' ****** X-Wing: Hovering or Return to Default Position ******
- Sub XWingMove_Expired()
- if XWingHover = true then
- Select Case XWingHovering
- Case 1: XWingHovering = 2: XWingMove.Set TRUE, 5500
- Call MiniPlayField_13.MoveTo( 51.8, 505, 91, 0, 0, 15, 0.7, 5.5)
- Case 2: XWingHovering = 1: XWingMove.Set TRUE, 6000
- Call MiniPlayField_13.MoveTo( 51.8, 505, 101, 0, 0, 15, 0.7, 6)
- End Select
- Exit Sub
- End if
- 'return to default position
- Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 15, 0.7, 0.15)
- XWing_Hover 're-enable hovering
- End Sub
- ' ****** X-Wing: Fly Away, Explode, and Return Sequence ******
- Dim XWingExplode: XWingExplode = 0
- Sub XWing_Explosion
- if use_Animated_Space_Battles = false then exit sub
- If XWingExplode >0 then Exit Sub
- XWingHover = false: XWingMove.enabled = false
- TieFighterHover = false: TieFighterMove.enabled = false
- VaderTieFighterHover = false: VaderTieFighterMove.enabled = false
- Vader_Tie_Laser_Timer.set true, 250: VaderTieLaser = 1
- XWingExplode = 1
- XWing_Explode_Timer.set true, 800
- MiniPlayField_9.EasingRotation = xBAM.easeInOutQuad
- MiniPlayField_10.EasingRotation = xBAM.easeInOutQuad
- MiniPlayField_11.EasingRotation = xBAM.easeInOutQuad
- Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 0, 0, 15, 0.7, 0)
- Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 15, 0, 0)
- Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 10, 0, 15, 0.7, 0.8)
- Call MiniPlayField_10.MoveTo( 203.2, -60, 96.8, 10, 0, 15, 0.7, 0.8)
- Call MiniPlayField_11.MoveTo( 260, 56, 122.5, 0, 0, 25, 1, 0.25)
- End Sub
- Sub XWing_Explode_Timer_Expired
- Select Case XWingExplode
- Case 1:
- XWing_Explode_Timer.set true, 600
- XWingExplode = 2
- MiniPlayField_9.EasingRotation = xBAM.easeInOutQuad
- MiniPlayField_10.EasingRotation = xBAM.easeInOutQuad
- MiniPlayField_11.EasingRotation = xBAM.easeInOutQuad
- Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 10, 0, 335, 0.7, 2)
- Call MiniPlayField_10.MoveTo( 203.2, -60, 96.8, 10, 0, 335, 0.7, 2)
- Call MiniPlayField_11.MoveTo( 260, 56, 122.5, 0, 0, -35, 1, 2)
- Case 2:
- XWing_Explode_Timer.set true, 700
- Explosion.UpdateInterval = 30: Explosion.Frame 1, 45
- XWingExplode = 3
- XWingExplosionFlash.FlashForMs 2000, 1000, BulbOff
- Exit Sub
- Case 3:
- Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 10, 0, 175, 0.7, 0)
- MiniPlayField_9.EasingRotation = xBAM.easeOutQuad
- MiniPlayField_11.EasingRotation = xBAM.easeInOutQuad
- Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 10, 0, 15, 0.7, 2)
- Call MiniPlayField_11.MoveTo( 260, 56, 122.5, 0, 0, 0, 1, 1)
- XWing_Explode_Timer.set true, 2000
- XWingExplode = 4
- Case 4:
- MiniPlayField_9.EasingRotation = xBAM.easeInOutQuad
- MiniPlayField_10.EasingRotation = xBAM.easeInOutQuad
- Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 0, 0, 15, 0.7, 1)
- Call MiniPlayField_10.MoveTo( 203.2, -60, 96.8, 0, 0, 15, 0.7, 1)
- XWing_Explode_Timer.set true, 1100
- XWingExplode = 5
- VaderTieFighter_Hover
- Case 5:
- MiniPlayField_9.EasingRotation = xBAM.easeInOutQuad
- Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 15, 0.7, 0)
- Call MiniPlayField_9.MoveTo( 203.2, -60, 96.8, 0, 0, 15, 0, 0)
- XWing_Explode_Timer.enabled = false
- XWingExplode = 0
- XWing_Hover
- TieFighter_Hover
- End Select
- End Sub
- ' ****** Tie Fighter: Hover ******
- Dim TieFighterHover: TieFighterHover = false
- Dim TieFighterHovering: TieFighterHovering = 0
- Sub TieFighter_Hover
- if use_Hovering_Ships = false then exit sub
- TieFighterHover = true
- TieFighterHovering = 1
- TieFighterMove.Set TRUE, 1000
- MiniPlayField_12.EasingRotation = xBAM.easeInOutQuad
- MiniPlayField_12.EasingPosition = xBAM.easeInOutQuad
- End Sub
- '****** Tie Fighter: Rotate and Fire at X-Wing ******
- Sub TieFighter_Move
- if use_Animated_Space_Battles = false then exit sub
- If TieFighterExplode >0 then Exit Sub
- TieFighterHover = false
- TieFighterMove.Set TRUE, 1000
- MiniPlayField_12.EasingRotation = xBAM.easeInOutQuad
- Call MiniPlayField_12.MoveTo( 277, 406.8, 55.9, 0, 0, 65, 2.25, 0.15)
- Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 8
- End Sub
- ' ****** Tie Fighter: Hovering or Return to Default Position ******
- Sub TieFighterMove_Expired()
- if TieFighterHover = true then
- Select Case TieFighterHovering
- Case 1: TieFighterHovering = 2: TieFighterMove.Set TRUE, 6000
- Call MiniPlayField_12.MoveTo( 277, 406.8, 65.9, 0, 0, 30, 2.25, 6)
- Case 2: TieFighterHovering = 1: TieFighterMove.Set TRUE, 5500
- Call MiniPlayField_12.MoveTo( 277, 406.8, 55.9, 0, 0, 30, 2.25, 5.5)
- End Select
- Exit Sub
- End if
- 'return to default position
- Call MiniPlayField_12.MoveTo( 277, 406.8, 55.9, 0, 0, 30, 2.25, 0.3)
- TieFighter_Hover 're-enable hovering
- End Sub
- ' ****** Tie Fighter: Fly Away, Explode, and Return Sequence ******
- Dim TieFighterExplode: TieFighterExplode = 0
- Sub TieFighter_Explosion
- if use_Animated_Space_Battles = false then exit sub
- If TieFighterExplode >0 then Exit Sub
- XWingHover = false: XWingMove.enabled = false
- TieFighterHover = false: TieFighterMove.enabled = false
- XWing_Laser_Timer.set true, 100: XWingLaser = 1
- TieFighterExplode = 1
- TieFighter_Explode_Timer.set true, 500
- MiniPlayField_13.EasingRotation = xBAM.easeInOutQuad
- MiniPlayField_14.EasingRotation = xBAM.easeInOutQuad
- MiniPlayField_15.EasingRotation = xBAM.easeInOutQuad
- Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 15, 0.7, 0)
- Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, -20, 0.7, 0.2)
- Call MiniPlayField_14.MoveTo( 471.8, 519.4, 55.9, 0, 0, 30, 2.25, 0)
- Call MiniPlayField_12.MoveTo( 597, 107, 190, 0, 0, 50, 0, 0)
- Call MiniPlayField_14.MoveTo( 471.8, 519.4, 110, 0, 0, -90, 2.25, 2)
- Call MiniPlayField_15.MoveTo( 513, 539.4, 110, 0, 0, 30, 2.2, 0)
- Call MiniPlayField_15.MoveTo( 513, 539.4, 110, 0, 0, -90, 2.2, 2.25)
- Call MiniPlayField_16.MoveTo( 170.6, -401, 190, 0, 0, -90, 2.25, 0)
- End Sub
- Sub TieFighter_Explode_Timer_Expired
- Select Case TieFighterExplode
- Case 1:
- TieFighter_Explode_Timer.set true, 500
- TieFighterExplode = 2
- Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 35, 0.7, 0.6)
- Case 2:
- TieFighter_Explode_Timer.set true, 300
- Explosion2.UpdateInterval = 30: Explosion2.Frame 1, 45
- TieFighterExplode = 3
- TieFighterExplosionFlash.FlashForMs 2000, 1000, BulbOff
- Exit Sub
- Case 3:
- Call MiniPlayField_13.MoveTo( 51.8, 505, 96.8, 0, 0, 15, 0.7, 0.5)
- Call MiniPlayField_14.MoveTo( 471.8, 519.4, 55.9, 0, 0, 30, 0, 0)
- Call MiniPlayField_16.MoveTo( 170.6, -401, 190, 0, 0, 50, 2.25, 1.25)
- TieFighter_Explode_Timer.set true, 1250
- TieFighterExplode = 4
- Case 4:
- MiniPlayField_12.EasingRotation = xBAM.easeOutQuad
- MiniPlayField_12.EasingPosition = xBAM.easeOutQuad
- Call MiniPlayField_12.MoveTo( 597, 107, 190, 0, 0, 50, 2.25, 0)
- Call MiniPlayField_12.MoveTo( 277, 406.8, 190, 0, 0, 50, 2.25, 1)
- Call MiniPlayField_16.MoveTo( 170.6, -401, 190, 0, 0, -90, 0, 0)
- TieFighter_Explode_Timer.set true, 1000
- TieFighterExplode = 5
- Case 5:
- MiniPlayField_12.EasingRotation = xBAM.easeInOutQuad
- MiniPlayField_12.EasingPosition = xBAM.easeInOutQuad
- Call MiniPlayField_12.MoveTo( 277, 406.8, 55.9, 0, 0, 30, 2.25, 1)
- TieFighter_Explode_Timer.set true, 1100
- TieFighterExplode = 6
- Case 6:
- Call MiniPlayField_12.MoveTo( 277, 406.8, 55.9, 0, 0, 30, 2.25, 0)
- TieFighter_Explode_Timer.enabled = false
- TieFighterExplode = 0
- XWing_Hover
- TieFighter_Hover
- End Select
- End Sub
- ' ****** Vader Tie Fighter: Hover ******
- Dim VaderTieFighterHover: VaderTieFighterHover = false
- Dim VaderTieFighterHovering: VaderTieFighterHovering = 0
- Sub VaderTieFighter_Hover
- if use_Hovering_Ships = false then exit sub
- VaderTieFighterHover = true
- VaderTieFighterHovering = 1
- VaderTieFighterMove.Set TRUE, 1000
- MiniPlayField_11.EasingRotation = xBAM.easeInOutQuad
- MiniPlayField_11.EasingPosition = xBAM.easeInOutQuad
- End Sub
- ' ****** Vader Tie Fighter: Hovering ******
- Sub VaderTieFighterMove_Expired()
- if VaderTieFighterHover = true then
- Select Case VaderTieFighterHovering
- Case 1: VaderTieFighterHovering = 2: VaderTieFighterMove.Set TRUE, 5750
- Call MiniPlayField_11.MoveTo( 260, 56, 127, 0, 0, 0, 1, 5.75)
- Case 2: VaderTieFighterHovering = 1: VaderTieFighterMove.Set TRUE, 6000
- Call MiniPlayField_11.MoveTo( 260, 56, 117, 0, 0, 0, 1, 6)
- End Select
- Exit Sub
- End if
- 'return to default position
- Call MiniPlayField_11.MoveTo( 260, 56, 122.5, 0, 0, 0, 1, 0.3)
- VaderTieFighter_Hover 're-enable hovering
- End Sub
- '****** Vader Tie Fighter: Laser Animations ******
- Dim VaderTieLaser: VaderTieLaser = 0
- Sub Vader_Tie_Laser_Timer_Expired
- Select Case VaderTieLaser
- Case 1: VaderTieLaser = VaderTieLaser + 1
- Call MiniPlayField_17.MoveTo( 229.1, 121.4, 105.1, 0, 0, 25, 1, 0)
- Call MiniPlayField_17.MoveTo( -276.1, 1261.4, 105.1, 0, 0, 25, 1, 0.5)
- TieFighterLaserFlash1.state = BulbOn
- Case 2: VaderTieLaser = VaderTieLaser + 1
- Call MiniPlayField_18.MoveTo( 229.1, 121.4, 105.1, 0, 0, 25, 1, 0)
- Call MiniPlayField_18.MoveTo( -276.1, 1261.4, 105.1, 0, 0, 25, 1, 0.5)
- TieFighterLaserFlash2.state = BulbOn
- Case 3: VaderTieLaser = VaderTieLaser + 1
- Call MiniPlayField_19.MoveTo( 229.1, 121.4, 105.1, 0, 0, 25, 1, 0)
- Call MiniPlayField_19.MoveTo( -276.1, 1261.4, 105.1, 0, 0, 25, 1, 0.5)
- Call MiniPlayField_17.MoveTo( 229.1, 121.4, 105.1, 0, 0, 25, 0, 0)
- TieFighterLaserFlash3.state = BulbOn
- TieFighterLaserFlash1.state = BulbOff
- Case 4: VaderTieLaser = VaderTieLaser + 1:Vader_Tie_Laser_Timer.set true, 300
- Call MiniPlayField_18.MoveTo( 232.1, 121.4, 105.1, 0, 0, 20, 1, 0)
- Call MiniPlayField_18.MoveTo( -107.9, 1261.4, 105.1, 0, 0, 20, 1, 0.5)
- TieFighterLaserFlash2.state = BulbOn
- Case 5: VaderTieLaser = VaderTieLaser + 1:Vader_Tie_Laser_Timer.set true, 150
- Call MiniPlayField_19.MoveTo( 237.7, 121.4, 105.1, 0, 0, 15, 1, 0)
- Call MiniPlayField_19.MoveTo( -32.1, 1116.4, 200, 0, 0, 15, 1, 0.5)
- TieFighterLaserFlash3.state = BulbOn
- Case 6: VaderTieLaser = VaderTieLaser + 1:Vader_Tie_Laser_Timer.set true, 150
- Call MiniPlayField_20.MoveTo( 247.7, 121.4, 105.1, 0, 0, 10, 1, 0)
- Call MiniPlayField_20.MoveTo( 122.7, 1116.4, 200, 0, 0, 10, 1, 0.5)
- Call MiniPlayField_19.MoveTo( 237.7, 121.4, 105.1, 0, 0, 15, 0, 0)
- Call MiniPlayField_18.MoveTo( 232.1, 121.4, 105.1, 0, 0, 20, 0, 0)
- TieFighterLaserFlash4.state = BulbOn
- TieFighterLaserFlash3.state = BulbOff
- TieFighterLaserFlash2.state = BulbOff
- Case 7: VaderTieLaser = VaderTieLaser + 1
- Call MiniPlayField_20.MoveTo( 247.7, 121.4, 105.1, 0, 0, 10, 0, 0)
- TieFighterLaserFlash4.state = BulbOff
- Vader_Tie_Laser_Timer.enabled = false: VaderTieLaser = 0
- Case 8:
- Call MiniPlayField_17.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0.6, 0)
- Call MiniPlayField_17.MoveTo( -685.3, 802.4, 55.3, 0, 0, 65, 0.6, 0.5)
- TieFighterLaserFlash1.state = BulbOn
- Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 9
- Case 9:
- Call MiniPlayField_18.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0.6, 0)
- Call MiniPlayField_18.MoveTo( -685.3, 802.4, 55.3, 0, 0, 65, 0.6, 0.5)
- TieFighterLaserFlash2.state = BulbOn
- Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 10
- Case 10:
- Call MiniPlayField_19.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0.6, 0)
- Call MiniPlayField_19.MoveTo( -685.3, 802.4, 55.3, 0, 0, 65, 0.6, 0.5)
- TieFighterLaserFlash3.state = BulbOn
- Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 11
- Case 11:
- Call MiniPlayField_20.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0.6, 0)
- Call MiniPlayField_20.MoveTo( -685.3, 802.4, 55.3, 0, 0, 65, 0.6, 0.5)
- TieFighterLaserFlash4.state = BulbOn
- Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 12
- Case 12:
- Call MiniPlayField_17.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0, 0)
- TieFighterLaserFlash1.state = BulbOff
- Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 13
- Case 13:
- Call MiniPlayField_18.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0, 0)
- TieFighterLaserFlash2.state = BulbOff
- Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 14
- Case 14:
- Call MiniPlayField_19.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0, 0)
- TieFighterLaserFlash3.state = BulbOff
- Vader_Tie_Laser_Timer.set true, 150: VaderTieLaser = 15
- Case 15:
- Call MiniPlayField_20.MoveTo( 229.7, 427.4, 55.3, 0, 0, 65, 0, 0)
- TieFighterLaserFlash4.state = BulbOff
- Vader_Tie_Laser_Timer.enabled = false: VaderTieLaser = 0
- End Select
- End Sub
- '****** X-Wing: Laser Animations ******
- Dim XWingLaser: XWingLaser = 0
- Sub XWing_Laser_Timer_Expired
- Select Case XWingLaser
- Case 1: XWingLaser = XWingLaser + 1
- Call MiniPlayField_21.MoveTo( 100.2, 445.4, 80.1, 0, 0, -110, 1, 0)
- Call MiniPlayField_21.MoveTo( 1345.2, 20.4, 80.1, 0, 0, -110, 1, 0.5)
- XWingLaserFlash1.state = BulbOn
- Case 2: XWingLaser = XWingLaser + 1
- Call MiniPlayField_22.MoveTo( 123.2, 523.8, 62.1, 0, 0, -105, 1, 0)
- Call MiniPlayField_22.MoveTo( 1312.6, 215.401, 62.1, 0, 0, -105, 1, 0.5)
- Case 3: XWingLaser = XWingLaser + 1
- XWingLaserFlash2.state = BulbOn
- Call MiniPlayField_23.MoveTo( 107.6, 455.2, 62.1, 0, 0, -100, 1, 0)
- Call MiniPlayField_23.MoveTo( 1302.6, 270.2, 62.1, 0, 0, -100, 1, 0.5)
- Case 4: XWingLaser = XWingLaser + 1
- XWingLaserFlash3.state = BulbOn
- Call MiniPlayField_24.MoveTo( 119, 535.8, 80.1, 0, 0, -95, 1, 0)
- Call MiniPlayField_24.MoveTo( 1259, 455.8, 80.1, 0, 0, -95, 1, 0.5)
- Case 5: XWingLaser = XWingLaser + 1
- XWingLaserFlash4.state = BulbOn
- Call MiniPlayField_21.MoveTo( 117, 466.2, 80.1, 0, 0, -90, 1, 0)
- Call MiniPlayField_21.MoveTo( 1247, 466.2, 80.1, 0, 0, -90, 1, 0.5)
- Case 6: XWingLaser = XWingLaser + 1
- Call MiniPlayField_22.MoveTo( 111.2, 548, 62.1, 0, 0, -85, 1, 0)
- Call MiniPlayField_22.MoveTo( 1236.2, 618, 62.1, 0, 0, -85, 1, 0.5)
- Case 7: XWingLaser = XWingLaser + 1
- Call MiniPlayField_23.MoveTo( 121, 477.6, 62.1, 0, 0, -80, 1, 0)
- Call MiniPlayField_23.MoveTo( 1236, 647.6, 62.1, 0, 0, -80, 1, 0.5)
- Case 8: XWingLaser = XWingLaser + 1
- Call MiniPlayField_24.MoveTo( 103.4, 556.8, 80.1, 0, 0, -75, 1, 0)
- Call MiniPlayField_24.MoveTo( 1198.4, 737, 80.1, 0, 0, -75, 1, 0.5)
- Case 9: XWingLaser = XWingLaser + 1
- Call MiniPlayField_21.MoveTo( 128.4, 490.8, 80.1, 0, 0, -70, 1, 0)
- Call MiniPlayField_21.MoveTo( 1186.8, 785.8, 80.1, 0, 0, -70, 1, 0.5)
- Case 10: XWingLaser = XWingLaser + 1
- Call MiniPlayField_22.MoveTo( 95.2, 565.4, 62.1, 0, 0, -65, 1, 0)
- Call MiniPlayField_22.MoveTo( 1150.2, 980.4, 62.1, 0, 0, -65, 1, 0.5)
- Case 11: XWingLaser = XWingLaser + 1
- Call MiniPlayField_23.MoveTo( 128.4, 504.2, 62.1, 0, 0, -60, 1, 0)
- Call MiniPlayField_23.MoveTo( 1143.4, 1024.2, 62.1, 0, 0, -60, 1, 0.5)
- Case 12: XWingLaser = XWingLaser + 1
- Call MiniPlayField_24.MoveTo( 83.4, 571.8, 62.1, 0, 0, -55, 1, 0)
- Call MiniPlayField_24.MoveTo( 788.8, 1106.8, 62.1, 0, 0, -55, 1, 0.5)
- Case 13: XWingLaser = XWingLaser + 1
- XWingLaserFlash1.state = BulbOff
- Call MiniPlayField_21.MoveTo( 128.4, 490.8, 80.1, 0, 0, -70, 0, 0)
- Case 14: XWingLaser = XWingLaser + 1
- XWingLaserFlash2.state = BulbOff
- Call MiniPlayField_22.MoveTo( 95.2, 565.4, 62.1, 0, 0, -65, 0, 0)
- Case 15: XWingLaser = XWingLaser + 1
- XWingLaserFlash3.state = BulbOff
- Call MiniPlayField_23.MoveTo( 128.4, 504.2, 62.1, 0, 0, -60, 0, 0)
- Case 16: XWingLaser = XWingLaser + 1
- XWingLaserFlash4.state = BulbOff
- Call MiniPlayField_24.MoveTo( 83.4, 571.8, 62.1, 0, 0, -55, 0, 0)
- XWing_Laser_Timer.enabled = false: XWingLaser = 0
- Case 17: XWing_Laser_Timer.set True, 500: XWingLaser = 18
- Call MiniPlayField_21.MoveTo( 100.2, 445.4, 80.1, 0, 0, -110, 1, 0)
- Call MiniPlayField_21.MoveTo( 1345.2, 20.4, 80.1, 0, 0, -110, 1, 0.5)
- Call MiniPlayField_22.MoveTo( 123.2, 523.8, 62.1, 0, 0, -105, 1, 0)
- Call MiniPlayField_22.MoveTo( 1312.6, 215.401, 62.1, 0, 0, -105, 1, 0.5)
- XWingLaserFlash1.state = BulbOn
- XWingLaserFlash2.state = BulbOn
- Case 18: XWingLaser = XWingLaser + 1
- Call MiniPlayField_21.MoveTo( 100.2, 445.4, 80.1, 0, 0, -110, 0, 0)
- Call MiniPlayField_22.MoveTo( 123.2, 523.8, 62.1, 0, 0, -105, 0, 0)
- XWingLaserFlash1.state = BulbOff
- XWingLaserFlash2.state = BulbOff
- XWing_Laser_Timer.enabled = false: XWingLaser = 0
- End Select
- End Sub
- ' ****** Millennium Falcon: Hover ******
- Dim FalconHover: FalconHover = false
- Dim FalconHovering: FalconHovering = 0
- Sub Falcon_Hover
- if use_Hovering_Ships = false then exit sub
- FalconHover = true
- FalconHovering = 1
- Falcon_Timer.Set TRUE, 1000
- MiniPlayField_8.EasingPosition = xBAM.easeInOutQuad
- End Sub
- '****** Millennium Falcon: Loop Around ******
- Sub FalconFly
- if use_Animated_Space_Battles = false then exit sub
- FalconHover = false
- Falcon_Timer.set true, 1000
- MiniPlayField_8.EasingRotation = xBAM.easeLinear
- Call MiniPlayField_8.MoveTo( 200, 411, 80, 0, 0, 1, 1, 0)
- MiniPlayField_8.EasingRotation = xBAM.easeInQuad
- Call MiniPlayField_8.MoveTo( 200, 411, 200, 0, 0, 180, 1, 1)
- End Sub
- '****** Millennium Falcon: Hovering or Finish Loop Around ******
- Sub Falcon_Timer_Expired()
- if FalconHover = true then
- Select Case FalconHovering
- Case 1: FalconHovering = 2: Falcon_Timer.Set TRUE, 6000
- Call MiniPlayField_8.MoveTo( 200, 411, 85, 0, 0, 0, 1, 6)
- Case 2: FalconHovering = 1: Falcon_Timer.Set TRUE, 5750
- Call MiniPlayField_8.MoveTo( 200, 411, 75, 0, 0, 0, 1, 5.75)
- End Select
- Exit Sub
- End if
- 'finish last half of the loop around
- MiniPlayField_8.EasingRotation = xBAM.easeLinear
- Call MiniPlayField_8.MoveTo( 200, 411, 200, 0, 0, 181, 1, 0)
- MiniPlayField_8.EasingRotation = xBAM.easeOutQuad
- Call MiniPlayField_8.MoveTo( 200, 411, 80, 0, 0, 0, 1, 1)
- Falcon_Hover 're-enable hovering
- End Sub
- '****** Turbo Laser: Fire ******
- Sub TurretCannonFire
- TurretCannonTimer.set True, 100
- TurretFlasher.FlashForMs 250, 250, BulbOff
- TurretBulb1.FlashForMs 250, 250, BulbOff
- TurretBulb2.FlashForMs 250, 250, BulbOff
- Call MiniPlayField_7.MoveTo( 357.1, 252.1, 15.5, 0, 0, 50, 1, 0.1)
- End Sub
- Sub TurretCannonTimer_Expired
- TurretCannonTimer.enabled = false
- Call MiniPlayField_7.MoveTo( 352.5, 255.9, 15.5, 0, 0, 50, 1, 0.2)
- End Sub
- Sub TurboLaserFire1
- if use_Animated_Space_Battles = false then exit sub
- TurboLaser_Fire1_Timer.set True, 500
- Call MiniPlayField_17.MoveTo( 251.1, 338.8, 47.3, 0, 0, 50, 1.6, 0)
- Call MiniPlayField_17.MoveTo( -700, 1100, 47.3, 0, 0, 50, 1.6, 0.5)
- TieFighterLaserFlash1.state = BulbOn
- End Sub
- Sub TurboLaser_Fire1_Timer_Expired
- TurboLaser_Fire1_Timer.enabled = false
- TieFighterLaserFlash1.state = BulbOff
- Call MiniPlayField_17.MoveTo( -700, 1100, 47.3, 0, 0, 50, 0, 0)
- End Sub
- Sub TurboLaserFire2
- if use_Animated_Space_Battles = false then exit sub
- TurboLaser_Fire2_Timer.set True, 500
- Call MiniPlayField_18.MoveTo( 251.1, 338.8, 47.3, 0, 0, 50, 1.6, 0)
- Call MiniPlayField_18.MoveTo( -700, 1100, 47.3, 0, 0, 50, 1.6, 0.5)
- TieFighterLaserFlash2.state = BulbOn
- End Sub
- Sub TurboLaser_Fire2_Timer_Expired
- TurboLaser_Fire2_Timer.enabled = false
- TieFighterLaserFlash2.state = BulbOff
- Call MiniPlayField_18.MoveTo( -700, 1100, 47.3, 0, 0, 50, 0, 0)
- End Sub
- Sub TurboLaserFire3
- if use_Animated_Space_Battles = false then exit sub
- TurboLaser_Fire3_Timer.set True, 500
- Call MiniPlayField_19.MoveTo( 251.1, 338.8, 47.3, 0, 0, 50, 1.6, 0)
- Call MiniPlayField_19.MoveTo( -700, 1100, 47.3, 0, 0, 50, 1.6, 0.5)
- TieFighterLaserFlash3.state = BulbOn
- End Sub
- Sub TurboLaser_Fire3_Timer_Expired
- TurboLaser_Fire3_Timer.enabled = false
- TieFighterLaserFlash3.state = BulbOff
- Call MiniPlayField_19.MoveTo( -800, 1100, 47.3, 0, 0, 50, 0, 0)
- End Sub
- '****** Startup: Ships Hovering ******
- if use_Hovering_Ships = true then
- Falcon_Hover
- XWing_Hover
- TieFighter_Hover
- VaderTieFighter_Hover
- End If
- '****** BAM CUSTOM MODELS ******
- ' - use BAM's Model Importer to convert "OBJ" or "FBX" models into a TGA file (so FP will accept the file)
- ' - textures and animation data for the model are included in the TGA file
- ' - add TGA to Texture Manager (FP will accept it, and BAM knows it's a Custom Model)
- ' - use xBAM.CreateModel command to add custom model to the table
- ' - SAVE THE TABLE FIRST before running the table, or the model won't be used when the table loads!
- ' - use BAM in-game Custom Model menu to setup and position the custom model the way you want
- ' - use CTRL+C to copy new custom model settings
- ' - paste new settings into the script to replace the current xBAM.CreateModel code
- ' - SAVE THE TABLE after making any changes to custom models!
- ' - 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!
- ' - you can use other bam commands to control the render layering of custom models to prevent the halo problem
- ' - however with this table's many holograms this isn't a benefit (it causes models to appear above holograms)
- Dim cm_TieVader
- Set cm_TieVader = xBAM.CreateModel("TieVader", 259.4, 13.2, 121.2, 8.1, 90, 0, -0, True, False)
- cm_TieVader.Scale.X = 10
- cm_TieVader.Scale.Y = 10
- cm_TieVader.Scale.Z = 10
- cm_TieVader.Kd.Set 0.5, 0.5, 0.5
- cm_TieVader.Ks.Set 1, 1, 1, 1
- cm_TieVader.Rim.Set 1, 1, 1, 0
- cm_TieVader.Spe.Set 10, 5, 1
- Dim cm_MFalcon
- Set cm_MFalcon = xBAM.CreateModel("MFalcon", 472.8, 410.8, 70, 8.5, 177, -156.6, 0, True, False)
- cm_MFalcon.Scale.X = 2.5
- cm_MFalcon.Scale.Y = 2.5
- cm_MFalcon.Scale.Z = 2.5
- cm_MFalcon.Kd.Set 0.5, 0.5, 0.5
- cm_MFalcon.Ks.Set 1, 1, 1, 1
- cm_MFalcon.Rim.Set 1, 1, 1, 0
- cm_MFalcon.Spe.Set 10, 5, 1
- Dim cm_DarthVader
- Set cm_DarthVader = xBAM.CreateModel("DarthVader", 174.6, 180, 32, 1.3, 0, 0, 29, False, False)
- cm_DarthVader.Scale.X = 90
- cm_DarthVader.Scale.Y = 90
- cm_DarthVader.Scale.Z = 90
- cm_DarthVader.Kd.Set 1, 1, 1
- cm_DarthVader.Ks.Set 0, 0, 0, 1
- cm_DarthVader.Rim.Set 1, 1, 1, 0
- cm_DarthVader.Spe.Set 10, 5, 1
- Dim cm_DarthVader_SC
- Set cm_DarthVader_SC = xBAM.CreateModel("DarthVader_SmallCape", 174.6, 180, 32, 1.3, 0, 0, 29, False, False)
- cm_DarthVader_SC.Scale.X = 0
- cm_DarthVader_SC.Scale.Y = 0
- cm_DarthVader_SC.Scale.Z = 0
- cm_DarthVader_SC.Kd.Set 1, 1, 1
- cm_DarthVader_SC.Ks.Set 0, 0, 0, 1
- cm_DarthVader_SC.Rim.Set 1, 1, 1, 0
- cm_DarthVader_SC.Spe.Set 10, 5, 1
- if use_Animated_Vader = true then cm_DarthVader.loop "A" 'startup - default vader animation loop
- ' 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.
- ' I make one of the models sized to 0 when the other is used, then change it back when the Timer / animation is completed.
- ' 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.
- ' Letter A = 0, B = 1 and so forth.
- Sub VaderAnimation(animation)
- if use_Animated_Vader = false then exit sub
- cm_DarthVader.Reset()
- cm_DarthVader_SC.Reset()
- if animation > 25 then
- cm_DarthVader.Scale.X = 0
- cm_DarthVader.Scale.Y = 0
- cm_DarthVader.Scale.Z = 0
- cm_DarthVader_SC.Scale.X = 90
- cm_DarthVader_SC.Scale.Y = 90
- cm_DarthVader_SC.Scale.Z = 90
- End If
- 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
- if animation = 1 then Call cm_DarthVader.Animation(1).Frame(1, cm_DarthVader.Animation(1).NumFrames):VaderAnimation_Timer.set True,3300 'B - standing still
- if animation = 2 then Call cm_DarthVader.Animation(2).Frame(1, cm_DarthVader.Animation(2).NumFrames):VaderAnimation_Timer.set True,1100 'C - force push
- if animation = 3 then Call cm_DarthVader.Animation(3).Frame(1, cm_DarthVader.Animation(3).NumFrames):VaderAnimation_Timer.set True,4200 'D - shucks... darn
- 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?
- 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
- 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
- if animation = 7 then Call cm_DarthVader.Animation(7).Frame(1, cm_DarthVader.Animation(7).NumFrames):VaderAnimation_Timer.set True,4800 'H - Vader smash
- if animation = 8 then Call cm_DarthVader.Animation(8).Frame(1, cm_DarthVader.Animation(8).NumFrames):VaderAnimation_Timer.set True,1260 'I - Punch
- if animation = 9 then Call cm_DarthVader.Animation(9).Frame(1, cm_DarthVader.Animation(9).NumFrames):VaderAnimation_Timer.set True,1030 'J - Force Choke
- if animation = 10 then Call cm_DarthVader.Animation(10).Frame(1, cm_DarthVader.Animation(10).NumFrames):VaderAnimation_Timer.set True,1200 'K - Kick
- 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
- if animation = 12 then Call cm_DarthVader.Animation(12).Frame(1, cm_DarthVader.Animation(12).NumFrames):VaderAnimation_Timer.set True,2400 'M - Angry Point
- if animation = 13 then Call cm_DarthVader.Animation(13).Frame(1, cm_DarthVader.Animation(13).NumFrames):VaderAnimation_Timer.set True,9760 'N - Laughing
- if animation = 14 then Call cm_DarthVader.Animation(14).Frame(1, cm_DarthVader.Animation(14).NumFrames):VaderAnimation_Timer.set True,3766 'O - dude, really?
- if animation = 15 then Call cm_DarthVader.Animation(15).Frame(1, cm_DarthVader.Animation(15).NumFrames):VaderAnimation_Timer.set True,9433 'P - Dancing - Twist
- 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
- 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
- ' 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
- if animation = 18 then Call cm_DarthVader.Animation(18).Frame(1, cm_DarthVader.Animation(18).NumFrames):VaderAnimation_Timer.set True,2200 'S - Angry Gesture
- 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
- if animation = 20 then Call cm_DarthVader.Animation(20).Frame(1,30):VaderAnimation_Timer.set True,1000 'U - Being Cocky
- if animation = 21 then Call cm_DarthVader.Animation(21).Frame(1, cm_DarthVader.Animation(21).NumFrames):VaderAnimation_Timer.set True,3260 'V - Dissmissive
- if animation = 22 then Call cm_DarthVader.Animation(22).Frame(1, cm_DarthVader.Animation(22).NumFrames):VaderAnimation_Timer.set True,1630 'W - Head Nod
- if animation = 23 then Call cm_DarthVader.Animation(23).Frame(1, cm_DarthVader.Animation(23).NumFrames):VaderAnimation_Timer.set True,1730 'X - Look Up
- 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
- 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
- ' 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- if animation = 35 and use_Dancing_Vader = true then cm_DarthVader_SC.Anim("OPSTU"):VaderAnimation_Timer.set True,43823
- if animation = 35 and use_Dancing_Vader = false then VaderAnimation_Timer_Expired
- End sub
- Sub VaderAnimation_Timer_Expired
- VaderAnimation_Timer.enabled = false
- cm_DarthVader.Reset()
- cm_DarthVader_SC.Reset()
- cm_DarthVader.Scale.X = 90
- cm_DarthVader.Scale.Y = 90
- cm_DarthVader.Scale.Z = 90
- cm_DarthVader_SC.Scale.X = 0
- cm_DarthVader_SC.Scale.Y = 0
- cm_DarthVader_SC.Scale.Z = 0
- cm_DarthVader.loop "A"
- End Sub
- '################# DOFLinx MAIN SECTION ###################
- '############## DOFLinx variables #################
- Dim DOFLinx_Left_Drain_Stage
- Dim DOFLinx_Right_Drain_Stage
- Dim DOFLinx_Drain_Stage
- Dim DOFLinx_LR_Gray_Stage
- Dim DOFLinx_XWingBlast_Explosion_Stage
- Dim DOFLinx_Explosion_Stage
- Dim DOFLinx_XWingBlast_Stage
- Dim DOFLinx_Skillshot_Blast_Stage
- Dim DOFLinx_Falcon_Fire_Hit_Blast_Stage
- Dim DOFLinx_RL_Green_Stage
- Dim DOFLinx_Victory_MB_Undercab_Stage
- Dim DOFLinx_DeathStar_Destroyed_Stage
- Dim DOFLinx_VaderBlasersMX_Stage
- ExecuteGlobal LoadExternalScript ("doflinx.vbs") ' DOFLinx - Load vbs script
- '****** DOFLinx Initial Timer and Table First Start Events ******
- Sub DOFLinx_LINK() 'DOFLinx_LINK
- FF_Init ' Start the DOFLinx link
- FF_DOFLinx=1 ' Set this to 0 to manually disable the link to DOFLinx. If a link is not present it will disable itself.
- ' DOFLinx must be active and set to link for this to make a difference
- End Sub
- Sub DOFTimer_expired() 'DOFLinx - Table First Loaded Timer Expired
- if FF_Active = true then
- DOFTimer.enabled=false
- FF_ROM "fp_swdsa_ultimate" 'DOFLinx DOF Rom Load
- else
- DOFWaitCount=DOFWaitCount+1
- if DOFWaitCount>=30 then
- DOFTimer.enabled=false
- end if
- end if
- End Sub
- '***** Star Wars Specific Table First Load Events ******
- Sub DOFLinx_StarWars_Startup_Timer_expired() 'DOFLinx_StarWars_Startup_Timer
- FF_Flasher DV_FLOL,FL_FD,2,30,100,"Blue"
- FF_Flasher DV_FLIL,FL_FD,2,30,100,"Blue"
- FF_Flasher DV_FLCN,FL_FD,2,30,100,"Yellow"
- FF_Flasher DV_FLIR,FL_FD,2,30,100,"Red"
- FF_Flasher DV_FLOR,FL_FD,2,30,100,"Red"
- if nvCredits >= 1 then
- FF_Button BUT_ST,BA_FL,9999,40 'DOFLinx - Start - Flash
- FF_Button BUT_CN,BA_ON,0,0 'DOFLinx - Coin - ON
- Else
- FF_Button BUT_ST,BA_FL,0,0 'DOFLinx - Start - OFF
- FF_Button BUT_CN,BA_FL,9999,40 'DOFLinx - Coin - Flash
- end if
- FF_Button BUT_EX,BA_ON,0,0 'DOFLinx - Exit - ON
- FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- DOFLinx_LightSaber_FireButton_Flash() 'DOFLinx_LightSaber_FireButton_Flash
- FF_Dev DV_BK,100 'DOFLinx - Beacon On
- FF_Dev DV_SR,100 'DOFLinx - Strobe On
- DOFLinx_StarWars_Startup_Timer.Enabled=False
- End Sub
- '********** SOLENOIDS Section ************
- ' Flippers, Slingshots, Bumpers, Drop Targets
- ' Auto Plunger, PlungerKicker
- ' Drain, Kickback, Kickers, VUKs
- '*** Flippers ***
- Sub DOFLinx_Left_Flipper_On() 'DOFLinx - Left Flipper On
- FF_Sound DV_LF,9999,"fx_FlipL"
- End Sub
- Sub DOFLinx_Right_Flipper_On() 'DOFLinx - Right Flipper On
- FF_Sound DV_RF,9999,"fx_FlipR"
- End Sub
- Sub DOFLinx_Left_Flipper_Off() 'DOFLinx - Left Flipper Off
- FF_Sound DV_LF,0,"fx_FlipDownL"
- End Sub
- Sub DOFLinx_Right_Flipper_Off() 'DOFLinx - Right Flipper Off
- FF_Sound DV_RF,0,"fx_FlipDownR"
- End Sub
- '*** Slingshots ***
- Sub DOFLinx_Left_Slingshot_Hit() 'DOFLinx - Left Slingshot Hit
- FF_Sound DV_LS,-1,"fx_SlingL"
- FF_FlasherForMs 250,50,bulboff,DV_FLOL,100,"Blue"
- FF_DOF "E",110,-1 'DOFLinx DOF MX - Left Slingshot
- End Sub
- Sub DOFLinx_2ndLeft_Slingshot_Hit() 'DOFLinx - 2ndLeft Slingshot Hit
- FF_Sound DV_LS,-1,"fx_SlingL"
- End Sub
- Sub DOFLinx_Right_Slingshot_Hit() 'DOFLinx - Right Slingshot Hit
- FF_Sound DV_RS,-1,"fx_SlingR"
- FF_FlasherForMs 250,50,bulboff,DV_FLOR,100,"Blue"
- FF_DOF "E",111,-1 'DOFLinx DOF MX - Right Slingshot
- End Sub
- '*** Bumpers ***
- Sub DOFLinx_Bumper1_Hit() 'DOFLinx - Bumper 1 Hit
- FF_Sound DV_BL,-1,"fx_Bumper"
- FF_FlasherForMs 250,125,bulboff,DV_FLIL,100,"Cyan"
- FF_Colour "Cyan",RGB_TT,2 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",120,-1 'DOFLinx DOF MX - Bumper 1
- End Sub
- Sub DOFLinx_Bumper2_Hit() 'DOFLinx - Bumper 2 Hit
- FF_Sound DV_BR,-1,"fx_Bumper"
- FF_FlasherForMs 250,125,bulboff,DV_FLIR,100,"Cyan"
- FF_Colour "Cyan",RGB_TT,2 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",121,-1 'DOFLinx DOF MX - Bumper 2
- End Sub
- Sub DOFLinx_Bumper3_Hit() 'DOFLinx - Bumper 3 Hit
- FF_Sound DV_BC,-1,"fx_Bumper"
- FF_FlasherForMs 250,125,bulboff,DV_FLCN,100,"Cyan"
- FF_Colour "Cyan",RGB_TT,2 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",122,-1 'DOFLinx DOF MX - Bumper 3
- End Sub
- '*** Plunger, Drain ***
- Sub DOFLinx_AutoPlunger() 'DOFLinx - AutoPlunger
- FF_Sound DV_RS,-1,"fx_AutoFireR"
- FF_DOF "E",132,-1 'DOFLinx DOF MX - Ball Launched
- End Sub
- Sub DOFLinx_PlungerKicker() 'DOFLinx - PlungerKicker
- FF_Sound DV_RF,-1,"fx_BallRelease"
- End Sub
- Sub DOFLinx_Drain_Hit() 'DOFLinx - Drain Hit
- FF_Sound DV_RF,-1, "fx_Drain"
- End Sub
- Sub DOFLinx_AutoPlungerKickback() 'DOFLinx - Kickback
- FF_Sound DV_LS,-1,"fx_AutoFireL"
- FF_DOF "E",133,-1 'DOFLinx DOF MX - Kickback
- End Sub
- '*** Drop Targets ***
- Sub DOFLinx_Left_Drop_Target_Hit() 'DOFLinx - Left Drop Target Hit
- FF_Sound DV_ML,-1,"fx_DropDownL"
- End Sub
- Sub DOFLinx_Droptarget_XWingBlast() 'DOFLinx Droptarget XWingBlast
- DOFLinx_XWingBlast_Stage=1
- DOFLinx_XWingBlast.Enabled=True
- End Sub
- Sub DOFLinx_Center_Drop_Target_Hit() 'DOFLinx - Center Drop Target Hit
- FF_Sound DV_MC,-1,"fx_DropDownC"
- End Sub
- Sub DOFLinx_Left_Drop_Targets_Reset() 'DOFLinx - Left Drop Targets Reset
- FF_Sound DV_BL,-1,"droptargetresetleft"
- End Sub
- Sub DOFLinx_Center_Drop_Targets_Reset() 'DOFLinx - Center Drop Targets Reset
- FF_Sound DV_BC,-1,"droptargetresetleft"
- End Sub
- '*** Kickers ***
- Sub DOFLinx_AttackKicker() 'DOFLinx - AttackKicker
- FF_Sound DV_MR,-1,"fx_ScoopExit"
- FF_Dev DV_SR,50 'DOFLinx - Strobe ON
- End Sub
- Sub DOFLinx_AttackKicker_Hit() 'DOFLinx - AttackKicker_Hit
- FF_Sound DV_MR,-1,"fx_SolenoidHitR"
- End Sub
- Sub DOFLinx_FalconKicker() 'DOFLinx - FalconKicker
- FF_Dev DV_BL,-1
- FF_Dev DV_SR,50 'DOFLinx - Strobe ON
- End Sub
- Sub DOFLinx_FalconKicker_Hit() 'DOFLinx - FalconKicker Hit
- FF_Sound DV_BL,-1,"fx_SolenoidHitL"
- End Sub
- Sub DOFLinx_VaderKicker() 'DOFLinx - VaderKicker
- FF_Sound DV_BL,-1,"fx_ScoopExit"
- FF_Dev DV_SR,50 'DOFLinx - Strobe ON
- End Sub
- Sub DOFLinx_VaderKicker_Hit() 'DOFLinx - VaderKicker Hit
- FF_Sound DV_BL,-1,"fx_SolenoidHitL"
- End Sub
- Sub DOFLinx_KickerVUK() 'DOFLinx - KickerVUK
- FF_Sound DV_BL,-1,"fx_ScoopHit"
- FF_Dev DV_SR,50 'DOFLinx - Strobe ON
- End Sub
- Sub DOFLinx_KickerVUK_MX() 'DOFLinx_KickerVUK_MX
- FF_DOF "E",441,-1 'DOFLinx DOF MX - Vader Kicker Left Rail Guide
- FF_DOF "E",406,-1 'DOFLinx DOF MX - Strobe
- End Sub
- Sub DOFLinx_DeathStarKicker() 'DOFLinx - DeathStarKicker
- FF_Sound DV_BC,-1,"fx_ScoopExit"
- FF_Dev DV_SR,50 'DOFLinx - Strobe ON
- FF_DOF "E",406,-1 'DOFLinx DOF MX - Strobe
- End Sub
- Sub DOFLinx_DeathStarKicker_Hit() 'DOFLinx - DeathStarKicker Hit
- FF_Sound DV_BC,-1,"fx_SolenoidHitL"
- End Sub
- '********** SOLENOIDS - Section Ends ************
- '****** START NEW GAME *******
- Sub DOFLinx_Start_New_Game() 'DOFLinx - Start New Game
- FF_Flasher DV_FLOL,FL_FD,2,20,100,"Blue"
- FF_Flasher DV_FLIL,FL_FD,2,20,100,"Blue"
- FF_Flasher DV_FLCN,FL_FD,2,20,100,"Yellow"
- FF_Flasher DV_FLIR,FL_FD,2,20,100,"Red"
- FF_Flasher DV_FLOR,FL_FD,2,20,100,"Red"
- FF_Button BUT_CN,BA_ON,0,0 'DOFLinx - Coin - ON
- FF_Button BUT_ST,BA_ON,0,0 'DOFLinx - Start - ON
- FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- DOFLinx_LightSaber_FireButton_Off() 'DOFLinx_LightSaber_FireButton_Off
- DOFLinx_Lightsabers_Off() 'DOFLinx Lightsabers OFF
- FF_DOF "E",422,0 'DOFLinx DOF MX - Ready to Start Game (Credits In) - OFF
- End Sub
- '****** COIN, START Buttons ******
- Sub DOFLinx_NoCoins_StartOff() 'DOFLinx No Coins, Start Button Off
- FF_Button BUT_CN,BA_FL,9999,40 'DOFLinx - Coin - Flash
- FF_Button BUT_ST,BA_OFF,0,0 'DOFLinx - Start - Off
- End Sub
- Sub DOFLinx_CoinsIn_StartFlash() 'DOFLinx Coins In, Start Button Flashing
- FF_Button BUT_CN,BA_ON,0,0 'DOFLinx - Coin - ON
- FF_Button BUT_ST,BA_FL,9999,40 'DOFLinx - Start - Flash
- FF_DOF "E",422,-1 'DOFLinx DOF MX - Ready to Start Game (Credits In) - ON
- End Sub
- Sub DOFLinx_Coin_Inserted() 'DOFLinx Coin Inserted
- FF_Button BUT_CN,BA_ON,0,0 'DOFLinx - Coin - ON
- FF_Button BUT_ST,BA_FL,9999,40 'DOFLinx - Start - Flash
- FF_Dev DV_SR,50 'DOFLinx - Strobe ON
- End Sub
- Sub DOFLinx_NoPay_NoPlay() 'DOFLinx NoPay NoPlay
- FF_Flasher DV_FLOL,FL_FD,2,10,100,"Red"
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Red"
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"Red"
- FF_Flasher DV_FLOR,FL_FD,2,10,100,"Red"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Red"
- FF_Dev DV_SH,50 'DOFLinx - Shaker ON
- FF_DOF "E",420,-1 'DOFLinx DOF MX - No Pay No Play
- End Sub
- Sub DOFLinx_CoinOn_StartOn() 'DOFLinx Coins & Start Button On, Game In Play
- FF_Button BUT_CN,BA_ON,0,0 'DOFLinx - Coin - ON
- FF_Button BUT_ST,BA_ON,0,0 'DOFLinx - Start - ON
- FF_DOF "E",422,0 'DOFLinx DOF MX - Ready to Start Game (Credits In) - OFF
- End Sub
- '****** LAUNCH Button ******
- Sub DOFLinx_Launch_Button_Flashing() 'DOFLinx - Launch Button Flashing
- FF_Button BUT_LB,BA_FL,9999,40
- FF_DOF "E",310,-1 'DOFLinx - DOF MX - Ball is Ready to Shoot - ON
- End Sub
- Sub DOFLinx_Launch_Button_Off() 'DOFLinx - Launch Button Off
- FF_Button BUT_LB,BA_FL,0,0
- FF_DOF "E",310,0 'DOFLinx - DOF MX - Ball is Ready to Shoot - OFF
- End Sub
- '************ DRAIN **************
- Sub DOFLinx_Drained() 'DOFLinx - Drained
- FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
- FF_Dev DV_SH,0 'DOFLinx - Shaker OFF
- FF_Dev DV_SR,0 'DOFLinx - Strobe OFF
- FF_Dev DV_FN,0 'DOFLinx - Fan OFF
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- DOFLinx_Drain_Stage=1
- DOFLinx_Drain.Enabled=True
- FF_DOF "E",130,-1 'DOFLinx DOF MX - Drained
- End Sub
- Sub DOFLinx_Left_Drained() 'DOFLinx - Left Drained
- DOFLinx_Left_Drain_Stage=1
- DOFLinx_Left_Drain.Enabled=True
- FF_DOF "E",300,-1 'DOFLinx DOF MX - Left OuterLane Rollover / Drain
- End Sub
- Sub DOFLinx_Right_Drained() 'DOFLinx - Right Drained
- DOFLinx_Right_Drain_Stage=1
- DOFLinx_Right_Drain.Enabled=True
- FF_DOF "E",309,-1 'DOFLinx DOF MX - Right OuterLane Rollover / Drain
- End Sub
- '********** TILT WARNING ************
- Sub DOFLinx_TILT_Warning()'DOFLinx - Tilt Warning
- FF_Colour "Red",RGB_TT,10 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",401,-1 'DOFLinx DOF MX - TILT Warning
- End Sub
- '*********** TILTED *************
- Sub DOFLinx_TILTED() 'DOFLinx - Tilted
- FF_Flasher DV_FLOL,FL_FL,10,20,100,"Red"
- FF_Flasher DV_FLIL,FL_FL,10,20,100,"Red"
- FF_Flasher DV_FLCN,FL_FL,10,20,100,"Red"
- FF_Flasher DV_FLOR,FL_FL,10,20,100,"Red"
- FF_Flasher DV_FLIR,FL_FL,10,20,100,"Red"
- FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
- FF_Dev DV_SH,0 'DOFLinx - Shaker OFF
- FF_Dev DV_SR,0 'DOFLinx - Strobe OFF
- FF_Dev DV_FN,0 'DOFLinx - Fan OFF
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",400,-1 'DOFLinx DOF MX - TILT
- End Sub
- '******* COMBO - JACKPOT - animation *******
- Sub DOFLinx_Combo_Jackpot() 'DOFLinx - Combo - Jackpot animation
- FF_FlasherForMs 1000,50,bulboff,DV_FLOL,100,"Red"
- FF_FlasherForMs 1000,50,bulboff,DV_FLIL,100,"Purple"
- FF_FlasherForMs 1000,50,bulboff,DV_FLCN,100,"Yellow"
- FF_FlasherForMs 1000,50,bulboff,DV_FLIR,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLOR,100,"Blue"
- FF_Dev DV_SR,100 'DOFLinx - Strobe ON
- End Sub
- '******* RGB FLASHERS Animation section *****************
- 'DOFLinx - Flashers animation - Left Drain - Left to Center
- Sub DOFLinx_Left_Drain_Expired()
- Select Case DOFLinx_Left_Drain_Stage
- Case 1 : DOFLinx_Left_Drain_Stage=2
- FF_Flasher DV_FLOL,FL_FD,2,10,100,"Red"
- Case 2 : DOFLinx_Left_Drain_Stage=3
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Red"
- Case 3 : DOFLinx_Left_Drain_Stage=1
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"Red"
- DOFLinx_Left_Drain.Enabled=false
- end Select
- End Sub
- 'DOFLinx - Flashers animation - Right Drain - Right to Center
- Sub DOFLinx_Right_Drain_Expired()
- Select Case DOFLinx_Right_Drain_Stage
- Case 1 : DOFLinx_Right_Drain_Stage=2
- FF_Flasher DV_FLOR,FL_FD,2,10,100,"Red"
- Case 2 : DOFLinx_Right_Drain_Stage=3
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Red"
- Case 3 : DOFLinx_Right_Drain_Stage=1
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"Red"
- DOFLinx_Right_Drain.Enabled=false
- end Select
- End Sub
- 'DOFLinx - Flashers animation - Drain - Center to Outer
- Sub DOFLinx_Drain_Expired()
- Select Case DOFLinx_Drain_Stage
- Case 1 : DOFLinx_Drain_Stage=2
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"Red"
- Case 2 : DOFLinx_Drain_Stage=3
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Red"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Red"
- Case 3 : DOFLinx_Drain_Stage=1
- FF_Flasher DV_FLOL,FL_FD,2,10,100,"Red"
- FF_Flasher DV_FLOR,FL_FD,2,10,100,"Red"
- DOFLinx_Drain.Enabled=false
- end Select
- End Sub
- 'DOFLinx - Flashers animation - Left to Right - Gray
- Sub DOFLinx_LR_Gray_Expired()
- Select Case DOFLinx_LR_Gray_Stage
- Case 1 : DOFLinx_LR_Gray_Stage=2
- FF_Flasher DV_FLOL,FL_FD,2,10,100,"Gray"
- Case 2 : DOFLinx_LR_Gray_Stage=3
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Gray"
- Case 3 : DOFLinx_LR_Gray_Stage=4
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"Gray"
- Case 4 : DOFLinx_LR_Gray_Stage=5
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Gray"
- Case 5 : DOFLinx_LR_Gray_Stage=1
- FF_Flasher DV_FLOR,FL_FD,2,10,100,"Gray"
- DOFLinx_LR_Gray.Enabled=false
- end Select
- End Sub
- 'DOFLinx - Flashers animation - Right to Left - Green
- Sub DOFLinx_RL_Green_Expired()
- Select Case DOFLinx_RL_Green_Stage
- Case 1 : DOFLinx_RL_Green_Stage=2
- FF_Flasher DV_FLOR,FL_FD,2,10,100,"Green"
- Case 2 : DOFLinx_RL_Green_Stage=3
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Green"
- Case 3 : DOFLinx_RL_Green_Stage=4
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"Green"
- Case 4 : DOFLinx_RL_Green_Stage=5
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Green"
- Case 5 : DOFLinx_RL_Green_Stage=1
- FF_Flasher DV_FLOL,FL_FD,2,10,100,"Green"
- DOFLinx_RL_Green.Enabled=false
- end Select
- End Sub
- 'DOFLinx - Flashers animation - X-Wing Blast Explosion
- Sub DOFLinx_XWingBlast_Explosion_Expired()
- Select Case DOFLinx_XWingBlast_Explosion_Stage
- Case 1 : DOFLinx_XWingBlast_Explosion_Stage=2
- FF_Flasher DV_FLOL,FL_FL,2,10,100,"Red"
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",500,-1 'DOFLinx DOF MX - X-Wing Left Blaster
- Case 2 : DOFLinx_XWingBlast_Explosion_Stage=3
- FF_Flasher DV_FLIR,FL_FL,2,10,100,"Red"
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",501,-1 'DOFLinx DOF MX - X-Wing Right Blaster
- Case 3 : DOFLinx_XWingBlast_Explosion_Stage=4
- FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 4 : DOFLinx_XWingBlast_Explosion_Stage=5
- FF_Flasher DV_FLIL,FL_FL,2,10,100,"Red"
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",500,-1 'DOFLinx DOF MX - X-Wing Left Blaster
- Case 5 : DOFLinx_XWingBlast_Explosion_Stage=6
- FF_Flasher DV_FLOR,FL_FL,2,10,100,"Red"
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",501,-1 'DOFLinx DOF MX - X-Wing Right Blaster
- Case 6 : DOFLinx_XWingBlast_Explosion_Stage=7
- FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 7 : DOFLinx_XWingBlast_Explosion_Stage=8
- FF_Flasher DV_FLOL,FL_FL,2,10,100,"Red"
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",500,-1 'DOFLinx DOF MX - X-Wing Left Blaster
- Case 8 : DOFLinx_XWingBlast_Explosion_Stage=9
- FF_Flasher DV_FLIR,FL_FL,2,10,100,"Red"
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",501,-1 'DOFLinx DOF MX - X-Wing Right Blaster
- Case 9 : DOFLinx_XWingBlast_Explosion_Stage=10
- FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 10 : DOFLinx_XWingBlast_Explosion_Stage=11
- FF_Flasher DV_FLIL,FL_FL,2,10,100,"Red"
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",500,-1 'DOFLinx DOF MX - X-Wing Left Blaster
- Case 11 : DOFLinx_XWingBlast_Explosion_Stage=12
- FF_Flasher DV_FLOR,FL_FL,2,10,100,"Red"
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",501,-1 'DOFLinx DOF MX - X-Wing Right Blaster
- Case 12 : DOFLinx_XWingBlast_Explosion_Stage=13
- FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 13 : DOFLinx_XWingBlast_Explosion_Stage=14
- FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 14 : DOFLinx_XWingBlast_Explosion_Stage=1
- FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
- DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
- DOFLinx_XWingBlast_Explosion.Enabled=false
- DOFLinx_Explosion_Stage=4
- DOFLinx_Explosion.Set True, 60
- FF_Dev DV_SH,60 'DOFLinx - Shaker
- FF_Dev DV_FN,60 'DOFLinx - Fan
- FF_DOF "E",502,30 'DOFLinx DOF MX - Small Explosion
- end Select
- End Sub
- 'DOFLinx - Flashers animation - X-Wing Blast
- Sub DOFLinx_XWingBlast_Expired()
- Select Case DOFLinx_XWingBlast_Stage
- Case 1 : DOFLinx_XWingBlast_Stage=2
- FF_Flasher DV_FLOL,FL_FL,2,10,100,"Red"
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",500,-1 'DOFLinx DOF MX - X-Wing Left Blaster
- Case 2 : DOFLinx_XWingBlast_Stage=3
- FF_Flasher DV_FLIR,FL_FL,2,10,100,"Red"
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",501,-1 'DOFLinx DOF MX - X-Wing Right Blaster
- Case 3 : DOFLinx_XWingBlast_Stage=4
- FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 4 : DOFLinx_XWingBlast_Stage=5
- FF_Flasher DV_FLIL,FL_FL,2,10,100,"Red"
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",500,-1 'DOFLinx DOF MX - X-Wing Left Blaster
- Case 5 : DOFLinx_XWingBlast_Stage=6
- FF_Flasher DV_FLOR,FL_FL,2,10,100,"Red"
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",501,-1 'DOFLinx DOF MX - X-Wing Right Blaster
- Case 6 : DOFLinx_XWingBlast_Stage=1
- FF_Flasher DV_FLCN,FL_FL,2,10,100,"Black"
- DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
- DOFLinx_XWingBlast.Enabled = False
- DOFLinx_Explosion_Stage=7
- DOFLinx_Explosion.Set True, 60
- FF_DOF "E",502,20 'DOFLinx DOF MX - Small Explosion
- end Select
- End Sub
- 'DOFLinx - Flashers animation - Falcon_Fire_Hit_Blast
- Sub DOFLinx_Falcon_Fire_Hit_Blast_Expired()
- Select Case DOFLinx_Falcon_Fire_Hit_Blast_Stage
- Case 1 : DOFLinx_Falcon_Fire_Hit_Blast_Stage=2
- FF_Flasher DV_FLOL,FL_FL,2,10,100,"Orange"
- FF_Flasher DV_FLIL,FL_FL,2,10,100,"Orange"
- FF_Colour "Orange",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 2 : DOFLinx_Falcon_Fire_Hit_Blast_Stage=3
- FF_Flasher DV_FLOR,FL_FL,2,10,100,"Orange"
- FF_Flasher DV_FLIR,FL_FL,2,10,100,"Orange"
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 3 : DOFLinx_Falcon_Fire_Hit_Blast_Stage=4
- FF_Flasher DV_FLOL,FL_FL,2,10,100,"Orange"
- FF_Flasher DV_FLIL,FL_FL,2,10,100,"Orange"
- FF_Colour "Orange",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 4 : DOFLinx_Falcon_Fire_Hit_Blast_Stage=5
- FF_Flasher DV_FLOR,FL_FL,2,10,100,"Orange"
- FF_Flasher DV_FLIR,FL_FL,2,10,100,"Orange"
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 5 : DOFLinx_Falcon_Fire_Hit_Blast_Stage=6
- FF_Flasher DV_FLOL,FL_FL,2,10,100,"Orange"
- FF_Flasher DV_FLIL,FL_FL,2,10,100,"Orange"
- FF_Colour "Orange",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 6 : DOFLinx_Falcon_Fire_Hit_Blast_Stage=1
- FF_Flasher DV_FLOR,FL_FL,2,10,100,"Orange"
- FF_Flasher DV_FLIR,FL_FL,2,10,100,"Orange"
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- DOFLinx_Falcon_Fire_Hit_Blast.Enabled = False
- DOFLinx_Explosion_Stage=1
- DOFLinx_Explosion.Set True, 60
- end Select
- End Sub
- 'DOFLinx - Explosion - Flashers animation
- Sub DOFLinx_Explosion_Expired()
- Select Case DOFLinx_Explosion_Stage
- Case 1 : DOFLinx_Explosion_Stage=2
- DOFLinx_Vader_Explode_Delay.Enabled=False
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"Orange_red"
- FF_Colour "Orange_red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 2 : DOFLinx_Explosion_Stage=3
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
- FF_Colour "Orange_red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 3: DOFLinx_Explosion_Stage=4
- FF_Flasher DV_FLOL,FL_FD,2,10,100,"Orange_red"
- FF_Flasher DV_FLOR,FL_FD,2,10,100,"Orange_red"
- FF_Colour "Orange_red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 4 : DOFLinx_Explosion_Stage=5
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"Yellow"
- FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 5 : DOFLinx_Explosion_Stage=6
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Yellow"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Yellow"
- FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 6: DOFLinx_Explosion_Stage=7
- FF_Flasher DV_FLOL,FL_FD,2,10,100,"Yellow"
- FF_Flasher DV_FLOR,FL_FD,2,10,100,"Yellow"
- FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 7 : DOFLinx_Explosion_Stage=8
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"White"
- FF_Colour "White",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 8 : DOFLinx_Explosion_Stage=9
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"White"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"White"
- FF_Colour "White",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 9: DOFLinx_Explosion_Stage=10
- FF_Flasher DV_FLOL,FL_FD,2,10,100,"White"
- FF_Flasher DV_FLOR,FL_FD,2,10,100,"White"
- FF_Colour "White",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 10 : DOFLinx_Explosion_Stage=11
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"Orange_red"
- FF_Colour "Orange_red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 11 : DOFLinx_Explosion_Stage=12
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
- FF_Colour "Orange_red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 12: DOFLinx_Explosion_Stage=1
- FF_Flasher DV_FLOL,FL_FD,2,10,100,"Orange_red"
- FF_Flasher DV_FLOR,FL_FD,2,10,100,"Orange_red"
- DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
- DOFLinx_Explosion.Enabled=false
- end Select
- End Sub
- 'DOFLinx - Flashers animation - Skillshot Blast - Outer to Center
- Sub DOFLinx_Skillshot_Blast_Expired()
- Select Case DOFLinx_Skillshot_Blast_Stage
- Case 1 : DOFLinx_Skillshot_Blast_Stage=2
- FF_Flasher DV_FLOL,FL_FD,2,10,100,"Blue"
- FF_Flasher DV_FLOR,FL_FD,2,10,100,"Blue"
- Case 2 : DOFLinx_Skillshot_Blast_Stage=3
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Blue"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Blue"
- Case 3 : DOFLinx_Skillshot_Blast_Stage=1
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"Blue"
- DOFLinx_Skillshot_Blast.Enabled=false
- end Select
- End Sub
- 'DOFLinx - Victory MB Undercab - animation
- Sub DOFLinx_Victory_MB_Undercab_Expired()
- Select Case DOFLinx_Victory_MB_Undercab_Stage
- Case 1 : DOFLinx_Victory_MB_Undercab_Stage=2
- FF_Colour "Purple",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",485,-1 'DOFLinx DOF MX - Victory MB
- Case 2 : DOFLinx_Victory_MB_Undercab_Stage=3
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",486,-1 'DOFLinx DOF MX - Victory MB
- Case 3: DOFLinx_Victory_MB_Undercab_Stage=4
- FF_Colour "Blue",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",483,-1 'DOFLinx DOF MX - Victory MB
- Case 4 : DOFLinx_Victory_MB_Undercab_Stage=5
- FF_Colour "Green",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",484,-1 'DOFLinx DOF MX - Victory MB
- Case 5 : DOFLinx_Victory_MB_Undercab_Stage=6
- FF_Colour "Cyan",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",487,-1 'DOFLinx DOF MX - Victory MB
- Case 6: DOFLinx_Victory_MB_Undercab_Stage=7
- FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",488,-1 'DOFLinx DOF MX - Victory MB
- Case 7 : DOFLinx_Victory_MB_Undercab_Stage=1
- FF_Colour "White",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- end Select
- End Sub
- 'DOFLinx - DOFLinx_DeathStar_Destroyed - animation
- Sub DOFLinx_DeathStar_Destroyed_Expired()
- Select Case DOFLinx_DeathStar_Destroyed_Stage
- Case 1 : DOFLinx_DeathStar_Destroyed_Stage=2
- FF_Flasher DV_FLOL,FL_FD,2,50,100,"Purple"
- FF_Flasher DV_FLIL,FL_FD,2,50,100,"Purple"
- FF_Flasher DV_FLCN,FL_FD,2,50,100,"Purple"
- FF_Flasher DV_FLIR,FL_FD,2,50,100,"Purple"
- FF_Flasher DV_FLOR,FL_FD,2,50,100,"Purple"
- FF_Colour "Purple",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 2 : DOFLinx_DeathStar_Destroyed_Stage=3
- FF_Flasher DV_FLOL,FL_FD,2,50,100,"Red"
- FF_Flasher DV_FLIL,FL_FD,2,50,100,"Red"
- FF_Flasher DV_FLCN,FL_FD,2,50,100,"Red"
- FF_Flasher DV_FLIR,FL_FD,2,50,100,"Red"
- FF_Flasher DV_FLOR,FL_FD,2,50,100,"Red"
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 3: DOFLinx_DeathStar_Destroyed_Stage=4
- FF_Flasher DV_FLOL,FL_FD,2,50,100,"Blue"
- FF_Flasher DV_FLIL,FL_FD,2,50,100,"Blue"
- FF_Flasher DV_FLCN,FL_FD,2,50,100,"Blue"
- FF_Flasher DV_FLIR,FL_FD,2,50,100,"Blue"
- FF_Flasher DV_FLOR,FL_FD,2,50,100,"Blue"
- FF_Colour "Blue",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 4 : DOFLinx_DeathStar_Destroyed_Stage=5
- FF_Flasher DV_FLOL,FL_FD,2,50,100,"Green"
- FF_Flasher DV_FLIL,FL_FD,2,50,100,"Green"
- FF_Flasher DV_FLCN,FL_FD,2,50,100,"Green"
- FF_Flasher DV_FLIR,FL_FD,2,50,100,"Green"
- FF_Flasher DV_FLOR,FL_FD,2,50,100,"Green"
- FF_Colour "Green",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 5 : DOFLinx_DeathStar_Destroyed_Stage=6
- FF_Flasher DV_FLOL,FL_FD,2,50,100,"Cyan"
- FF_Flasher DV_FLIL,FL_FD,2,50,100,"Cyan"
- FF_Flasher DV_FLCN,FL_FD,2,50,100,"Cyan"
- FF_Flasher DV_FLIR,FL_FD,2,50,100,"Cyan"
- FF_Flasher DV_FLOR,FL_FD,2,50,100,"Cyan"
- FF_Colour "Cyan",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 6: DOFLinx_DeathStar_Destroyed_Stage=7
- FF_Flasher DV_FLOL,FL_FD,2,50,100,"Yellow"
- FF_Flasher DV_FLIL,FL_FD,2,50,100,"Yellow"
- FF_Flasher DV_FLCN,FL_FD,2,50,100,"Yellow"
- FF_Flasher DV_FLIR,FL_FD,2,50,100,"Yellow"
- FF_Flasher DV_FLOR,FL_FD,2,50,100,"Yellow"
- FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- Case 7 : DOFLinx_DeathStar_Destroyed_Stage=1
- FF_Flasher DV_FLOL,FL_FD,2,50,100,"White"
- FF_Flasher DV_FLIL,FL_FD,2,50,100,"White"
- FF_Flasher DV_FLCN,FL_FD,2,50,100,"White"
- FF_Flasher DV_FLIR,FL_FD,2,50,100,"White"
- FF_Flasher DV_FLOR,FL_FD,2,50,100,"White"
- FF_Colour "White",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- DOFLinx_DeathStar_Destroyed.Enabled=False
- end Select
- End Sub
- '****** Mode Jackpots, Bonus, Score, etc... ******
- '****** Jedi Power Ups ******
- Sub DOFLinx_Padawan_Powerup() 'DOFLinx_Padawan_Powerup
- FF_FlasherForMs 1000,50,bulboff,DV_FLOL,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLIL,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLCN,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLIR,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLOR,100,"Green"
- FF_Dev DV_SR,100 'DOFLinx - Strobe ON
- FF_Dev DV_BK,100 'DOFLinx - Beacon ON
- FF_Colour "Green",RGB_TT,20 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",460,100 'DOFLinx DOF MX - Padawan PowerUP (Back MX)
- End Sub
- Sub DOFLinx_Jedi_Powerup() 'DOFLinx_Jedi_Powerup
- FF_FlasherForMs 1000,50,bulboff,DV_FLOL,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLIL,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLCN,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLIR,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLOR,100,"Green"
- FF_Dev DV_SR,100 'DOFLinx - Strobe ON
- FF_Dev DV_BK,100 'DOFLinx - Beacon ON
- FF_Colour "Green",RGB_TT,20 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",461,100 'DOFLinx DOF MX - Jedi PowerUP (Back MX)
- End Sub
- Sub DOFLinx_Yoda_Powerup() 'DOFLinx_Yoda_Powerup
- FF_FlasherForMs 1000,50,bulboff,DV_FLOL,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLIL,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLCN,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLIR,100,"Green"
- FF_FlasherForMs 1000,50,bulboff,DV_FLOR,100,"Green"
- FF_Dev DV_SR,100 'DOFLinx - Strobe ON
- FF_Dev DV_BK,100 'DOFLinx - Beacon ON
- FF_Colour "Green",RGB_TT,20 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",462,100 'DOFLinx DOF MX - Yoda PowerUP (Back MX)
- End Sub
- Sub DOFLinx_Wave_Destroyed() 'DOFLinx Wave Destroyed
- FF_FlasherForMs 1000,50,bulboff,DV_FLOL,100,"Blue"
- FF_FlasherForMs 1000,50,bulboff,DV_FLIL,100,"Blue"
- FF_FlasherForMs 1000,50,bulboff,DV_FLCN,100,"Blue"
- FF_FlasherForMs 1000,50,bulboff,DV_FLIR,100,"Blue"
- FF_FlasherForMs 1000,50,bulboff,DV_FLOR,100,"Blue"
- FF_Colour "Blue",RGB_TT,20 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",459,60 'DOFLinx DOF MX - Wave Destroyed
- End Sub
- Sub DOFLinx_HISCORE_MX() 'DOFLinx_HISCORE_MX
- FF_DOF "E",450,100 'DOFLinx DOF MX - Wave Destroyed
- End Sub
- Sub DOFLinx_50000_MX() 'DOFLinx_50000_MX
- FF_DOF "E",452,100 'DOFLinx DOF MX - 50,000
- End Sub
- Sub DOFLinx_ExtraBall_MX() 'DOFLinx_ExtraBall_MX
- FF_DOF "E",451,100 'DOFLinx DOF MX - ExtraBall
- End Sub
- Sub DOFLinx_Special_MX() 'DOFLinx_Special_MX
- FF_DOF "E",453,100 'DOFLinx DOF MX - 50,000
- End Sub
- '******** RGB UNDER CABINET Lighting Modes ********
- Sub DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
- FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet - Normal Mode
- End Sub
- '****** Spinners ******
- Sub DOFLinx_Spinner_Hit() 'DOFLinx - Spinner Hit
- FF_FlasherForMs 50,50,bulboff,DV_FLIR,100,"White"
- FF_FlasherForMs 50,50,bulboff,DV_FLOR,100,"White"
- FF_DOF "E",236,50 'DOFLinx DOF MX - Right Spinner (Back MX)
- End Sub
- Sub DOFLinx_Falcon_Spinner_Hit() 'DOFLinx - Falcon Spinner Hit
- FF_FlasherForMs 50,50,bulboff,DV_FLIL,100,"Gray"
- FF_FlasherForMs 50,50,bulboff,DV_FLOL,100,"Gray"
- FF_DOF "E",235,50 'DOFLinx DOF MX - Left Spinner (Back MX)
- End Sub
- '****** Vader Targets ******
- Sub DOFLinx_Vader_Target_V_Hit() 'DOFLinx - Vader Target V Hit
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
- FF_DOF "E",230,-1 'DOFLinx DOF MX - Vader Target V Hit (Back MX)
- End Sub
- Sub DOFLinx_Vader_Target_A_Hit() 'DOFLinx - Vader Target A Hit
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
- FF_DOF "E",231,-1 'DOFLinx DOF MX - Vader Target A Hit (Back MX)
- End Sub
- Sub DOFLinx_Vader_Target_D_Hit() 'DOFLinx - Vader Target D Hit
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
- FF_DOF "E",232,-1 'DOFLinx DOF MX - Vader Target D Hit (Back MX)
- End Sub
- Sub DOFLinx_Vader_Target_E_Hit() 'DOFLinx - Vader Target E Hit
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
- FF_DOF "E",233,-1 'DOFLinx DOF MX - Vader Target E Hit (Back MX)
- End Sub
- Sub DOFLinx_Vader_Target_R_Hit() 'DOFLinx - Vader Target R Hit
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Orange_red"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Orange_red"
- FF_DOF "E",234,-1 'DOFLinx DOF MX - Vader Target R Hit (Back MX)
- End Sub
- '****** Rebel RollOvers ******
- Sub DOFLinx_TriggerLeftInLane_Hit() 'DOFLinx - Trigger Left In Lane Hit
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Yellow"
- FF_DOF "E",301,-1 'DOFLinx DOF MX - Left InnerLane Rollover
- End Sub
- Sub DOFLinx_TriggerRightInLane_Hit() 'DOFLinx - Trigger Right In Lane Hit
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Yellow"
- FF_DOF "E",308,-1 'DOFLinx DOF MX - Right InnerLane Rollover
- End Sub
- '****** Lightsaber - FIRE Button ******
- Sub DOFLinx_LightSaber_FireButton_Flash() 'DOFLinx_LightSaber_FireButton_Flash
- FF_Button BUT_FR,BA_FL,9999,40 'DOFLinx - Fire - Flash
- End Sub
- Sub DOFLinx_LightSaber_FireButton_Off() 'DOFLinx_LightSaber_FireButton_Off
- FF_Button BUT_FR,BA_FL,0,0 'DOFLinx - Fire - Off
- End Sub
- '****** Lightsabers - Undercab, flashers,etc ******
- Sub DOFLinx_Red_Lightsaber_On() 'DOFLinx_Red_Lightsaber_On
- FF_Flasher DV_FLIL,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLOL,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLCN,FL_FD,1,30,100,"Red"
- FF_Flasher DV_FLIR,FL_FD,1,20,100,"Red"
- FF_Flasher DV_FLOR,FL_FD,1,10,100,"Red"
- FF_Colour "Red",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_Dev DV_SH,50 'DOFLinx - Shaker
- FF_DOF "E",561,-1 'DOFLinx DOF MX - Red Lightsaber ON
- FF_DOF "E",560,0 'DOFLinx DOF MX - Blue Lightsaber OFF
- End Sub
- Sub DOFLinx_Blue_Lightsaber_On() 'DOFLinx_Blue_Lightsaber_On
- FF_Flasher DV_FLIR,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLOR,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLCN,FL_FD,1,30,100,"Cyan"
- FF_Flasher DV_FLIL,FL_FD,1,20,100,"Cyan"
- FF_Flasher DV_FLOL,FL_FD,1,10,100,"Cyan"
- FF_Colour "Cyan",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_Dev DV_SH,50 'DOFLinx - Shaker
- FF_DOF "E",560,-1 'DOFLinx DOF MX - Blue Lightsaber ON
- FF_DOF "E",561,0 'DOFLinx DOF MX - Red Lightsaber OFF
- End Sub
- Sub DOFLinx_Blue_Lightsaber_Kickback() 'DOFLinx_Blue_Lightsaber_Kickback
- FF_Flasher DV_FLIR,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLOR,FL_FD,0,0,100,"Black"
- FF_FlasherForMs 1600,1600,bulboff,DV_FLOL,100,"Cyan"
- FF_FlasherForMs 1600,1600,bulboff,DV_FLIL,100,"Cyan"
- FF_FlasherForMs 1600,1600,bulboff,DV_FLCN,100,"Cyan"
- FF_Colour "Cyan",RGB_TT,15 'DOFLinx - RGB Under Cabinet
- FF_Dev DV_SH,50 'DOFLinx - Shaker
- End Sub
- Sub DOFLinx_Lightsabers_On() 'DOFLinx_Lightsabers_On
- FF_Flasher DV_FLIR,FL_FD,1,20,100,"Red"
- FF_Flasher DV_FLOR,FL_FD,1,10,100,"Red"
- FF_Flasher DV_FLCN,FL_FD,1,30,100,"Purple"
- FF_Flasher DV_FLIL,FL_FD,1,20,100,"Cyan"
- FF_Flasher DV_FLOL,FL_FD,1,10,100,"Cyan"
- FF_Colour "Purple",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_Dev DV_SH,50 'DOFLinx - Shaker
- FF_DOF "E",560,-1 'DOFLinx DOF MX - Blue Lightsaber ON
- FF_DOF "E",561,-1 'DOFLinx DOF MX - Red Lightsaber ON
- End Sub
- Sub DOFLinx_Lightsabers_Off() 'DOFLinx_Lightsabers_Off
- FF_Flasher DV_FLIR,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLOR,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLCN,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLIL,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLOL,FL_FD,0,0,100,"Black"
- DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
- FF_DOF "E",560,0 'DOFLinx DOF MX - Blue Lightsaber OFF
- FF_DOF "E",561,0 'DOFLinx DOF MX - Red Lightsaber OFF
- End Sub
- Sub DOFLinx_Red_Lightsaber_Off() 'DOFLinx_Red_Lightsaber_Off
- FF_Flasher DV_FLCN,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLIR,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLOR,FL_FD,0,0,100,"Black"
- DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
- FF_DOF "E",561,0 'DOFLinx DOF MX - Red Lightsaber OFF
- End Sub
- Sub DOFLinx_Blue_Lightsaber_Off() 'DOFLinx_Blue_Lightsaber_Off
- FF_Flasher DV_FLCN,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLIR,FL_FD,0,0,100,"Black"
- FF_Flasher DV_FLOR,FL_FD,0,0,100,"Black"
- DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
- FF_DOF "E",560,0 'DOFLinx DOF MX - Blue Lightsaber OFF
- End Sub
- Sub DOFLinx_Red_Lightsaber_Ball_Launch() 'DOFLinx_Red_Lightsaber_Ball_Launch
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"Red"
- FF_Flasher DV_FLIR,FL_FD,2,10,100,"Red"
- FF_Flasher DV_FLOR,FL_FD,2,10,100,"Red"
- FF_Colour "Red",RGB_TT,10 'DOFLinx - RGB Under Cabinet
- End Sub
- '****** Left Star Triggers ******
- Sub DOFLinx_TriggerLeftStar1_Hit() 'DOFLinx_TriggerLeftStar1_Hit
- FF_Flasher DV_FLOL,FL_FD,2,10,100,"Purple"
- FF_DOF "E",430,-1 'DOFLinx DOF MX - Orbit Trigger: Outer Left
- End Sub
- Sub DOFLinx_TriggerLeftStar2_Hit() 'DOFLinx_TriggerLeftStar2_Hit
- FF_Flasher DV_FLIL,FL_FD,2,10,100,"Purple"
- FF_DOF "E",431,-1 'DOFLinx DOF MX - Orbit Trigger: Left
- End Sub
- Sub DOFLinx_TriggerLeftStar3_Hit() 'DOFLinx_TriggerLeftStar3_Hit
- FF_Flasher DV_FLCN,FL_FD,2,10,100,"Purple"
- FF_DOF "E",432,-1 'DOFLinx DOF MX - Orbit Center
- End Sub
- '****** Solo - Falcon - Sequence ******
- Sub DOFLinx_Solo_Sequence() 'DOFLinx_Solo_Sequence
- DOFLinx_LR_Gray_Stage=1
- DOFLinx_LR_Gray.Enabled=True
- FF_Dev DV_FN,100 'DOFLinx - Fan ON
- FF_Colour "Gray",RGB_TT,20 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",440,-1 'DOFLinx DOF MX - Right Rail Guide
- End Sub
- Sub DOFLinx_Solo_S_MX() 'DOFLinx_Solo_S_MX
- FF_DOF "E",540,160 'DOFLinx DOF MX - SOLO "S" Flash
- End Sub
- Sub DOFLinx_Solo_O_MX() 'DOFLinx_Solo_O_MX
- FF_DOF "E",541,160 'DOFLinx DOF MX - SOLO "O" Flash
- End Sub
- Sub DOFLinx_Solo_L_MX() 'DOFLinx_Solo_L_MX
- FF_DOF "E",542,160 'DOFLinx DOF MX - SOLO "L" Flash
- End Sub
- Sub DOFLinx_Solo_SOLO_MX() 'DOFLinx_Solo_SOLO_MX
- FF_DOF "E",543,160 'DOFLinx DOF MX - SOLO "SOLO" Flash
- End Sub
- '****** Attack Kicker Animations ******
- Sub DOFLinx_Attack_Kicker_XWingBlast_Explosion() 'DOFLinx_Attack_Kicker_XWingBlast_Explosion
- DOFLinx_XWingBlast_Explosion_Stage=1
- DOFLinx_XWingBlast_Explosion.Enabled = True
- End Sub
- Sub DOLFinx_AttackKicker_Explosion() 'DOLFinx_AttackKicker_Explosion
- DOFLinx_Explosion_Stage=4
- DOFLinx_Explosion.Set True, 60
- End Sub
- '****** Vader Kicker Animations ******
- Sub DOFLinx_Vader_Kicker_Attack() 'DOFLinx_Vader_Kicker_Attack
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_Dev DV_BK,500 'DOFLinx - Beacon ON
- FF_FlasherForMs 1700,50,bulboff,DV_FLOL,100,"Green"
- FF_FlasherForMs 1700,50,bulboff,DV_FLIL,100,"Green"
- FF_FlasherForMs 1700,50,bulboff,DV_FLIR,100,"Green"
- FF_FlasherForMs 1700,50,bulboff,DV_FLOR,100,"Green"
- DOFLinx_Vader_Explode_Delay.Set True, 1700
- DOFLinx_VaderBlasersMX_Stage=1
- DOFLinx_VaderBlasersMX.enabled=True
- End Sub
- Sub DOFLinx_Vader_Explode_Delay_Expired()
- FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
- DOFLinx_Explosion_Stage=1
- DOFLinx_Explosion.Set True, 100
- FF_Dev DV_SH,150 'DOFLinx - Shaker
- FF_Dev DV_FN,150 'DOFLinx - Fan
- End Sub
- Sub DOFLinx_VaderAttacks() 'DOFLinx_VaderAttacks
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_Dev DV_BK,500 'DOFLinx - Beacon ON
- FF_FlasherForMs 900,50,bulboff,DV_FLOL,100,"Green"
- FF_FlasherForMs 900,50,bulboff,DV_FLIL,100,"Green"
- FF_FlasherForMs 900,50,bulboff,DV_FLIR,100,"Green"
- FF_FlasherForMs 900,50,bulboff,DV_FLOR,100,"Green"
- DOFLinx_Vader_Explode_Delay.Set True, 900
- DOFLinx_VaderBlasersMX_Stage=8
- DOFLinx_VaderBlasersMX.enabled=True
- End Sub
- Sub DOFLinx_TIEAttacks4() 'DOFLinx_TIEAttacks4
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_Dev DV_BK,500 'DOFLinx - Beacon ON
- FF_FlasherForMs 900,50,bulboff,DV_FLOL,100,"Green"
- FF_FlasherForMs 900,50,bulboff,DV_FLIL,100,"Green"
- FF_FlasherForMs 900,50,bulboff,DV_FLIR,100,"Green"
- FF_FlasherForMs 900,50,bulboff,DV_FLOR,100,"Green"
- DOFLinx_Vader_Explode_Delay.Set True, 900
- DOFLinx_VaderBlasersMX_Stage=8
- DOFLinx_VaderBlasersMX.enabled=True
- End Sub
- Sub DOFLinx_VaderBlasersMX_Expired() 'DOFLinx Vader Blasters MX
- Select Case DOFLinx_VaderBlasersMX_Stage
- Case 1 : DOFLinx_VaderBlasersMX_Stage=2
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 2 : DOFLinx_VaderBlasersMX_Stage=3
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 3: DOFLinx_VaderBlasersMX_Stage=4
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 4 : DOFLinx_VaderBlasersMX_Stage=5
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 5 : DOFLinx_VaderBlasersMX_Stage=6
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 6: DOFLinx_VaderBlasersMX_Stage=7
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 7 : DOFLinx_VaderBlasersMX_Stage=8
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 8 : DOFLinx_VaderBlasersMX_Stage=9
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 9 : DOFLinx_VaderBlasersMX_Stage=10
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 10: DOFLinx_VaderBlasersMX_Stage=11
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 11 : DOFLinx_VaderBlasersMX_Stage=12
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 12 : DOFLinx_VaderBlasersMX_Stage=13
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 13: DOFLinx_VaderBlasersMX_Stage=14
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- Case 14 : DOFLinx_VaderBlasersMX_Stage=15
- FF_DOF "E",503,-1 'DOFLinx DOF MX - Vader Blasters (Left, Right MX)
- FF_DOF "E",502,30 'DOFLinx DOF MX - Small Explosion
- DOFLinx_VaderBlasersMX.enabled=False
- end Select
- End Sub
- '****** Skillshot ******
- Sub DOFLinx_Skillshot_Start() 'DOFLinx - Skillshot Start
- FF_Dev DV_BK,310 'DOFLinx - Beacon ON
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",563,20 'DOFLinx DOF MX - Skillshot Targetting
- End Sub
- Sub DOFLinx_Skillshot_Ready_to_Fire() 'DOFLinx - Skillshot Ready To Fire
- FF_FlasherForMs 500,50,bulboff,DV_FLOL,100,"Yellow"
- FF_FlasherForMs 500,50,bulboff,DV_FLIL,100,"Yellow"
- FF_FlasherForMs 500,50,bulboff,DV_FLCN,100,"Yellow"
- FF_FlasherForMs 500,50,bulboff,DV_FLIR,100,"Yellow"
- FF_FlasherForMs 500,50,bulboff,DV_FLOR,100,"Yellow"
- FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_DOF "E",564,40 'DOFLinx DOF MX - Skillshot Ready To Fire
- End Sub
- Sub DOFLinx_Skillshot_Fire() 'DOFLinx - Skillshot Fire
- DOFLinx_Skillshot_Blast_Stage=1
- DOFLinx_Skillshot_Blast.Enabled=True
- FF_Dev DV_SR,100 'DOFLinx - Strobe ON
- FF_DOF "E",565,-1 'DOFLinx DOF MX - Skillshot Fire
- End Sub
- Sub DOFLinx_Skillshot_Hit() 'DOFLinx_Skillshot_Hit
- DOFLinx_Explosion_Stage=1
- DOFLinx_Explosion.Set True, 100
- FF_Dev DV_SH,150 'DOFLinx - Shaker
- FF_Dev DV_FN,150 'DOFLinx - Fan
- FF_DOF "E",502,30 'DOFLinx DOF MX - Small Explosion
- End Sub
- '****** Falcon Video Mode ******
- Sub DOFLinx_Falcon_FireL() 'DOFLinx_Falcon_FireL
- FF_FlasherForMs 500,50,bulboff,DV_FLOL,100,"Green"
- FF_FlasherForMs 500,50,bulboff,DV_FLIL,100,"Green"
- FF_DOF "E",550,40 'DOFLinx DOF MX - Left Arrow Flash
- End Sub
- Sub DOFLinx_Falcon_FireR() 'DOFLinx_Falcon_FireR
- FF_FlasherForMs 500,50,bulboff,DV_FLIR,100,"Green"
- FF_FlasherForMs 500,50,bulboff,DV_FLOR,100,"Green"
- FF_DOF "E",551,40 'DOFLinx DOF MX - Right Arrow Flash
- End Sub
- Sub DOFLinx_Falcon_Fire_Miss() 'DOFLinx_Falcon_Fire_Miss
- FF_FlasherForMs 500,50,bulboff,DV_FLOL,100,"Red"
- FF_FlasherForMs 500,50,bulboff,DV_FLIL,100,"Red"
- FF_FlasherForMs 500,50,bulboff,DV_FLCN,100,"Red"
- FF_FlasherForMs 500,50,bulboff,DV_FLIR,100,"Red"
- FF_FlasherForMs 500,50,bulboff,DV_FLOR,100,"Red"
- FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
- DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
- FF_DOF "E",552,-1 'DOFLinx DOF MX - Falcon Fire Miss
- End Sub
- Sub DOFLinx_Falcon_VideoMode_Start() 'DOFLinx_Falcon_VideoMode_Start
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_Dev DV_BK,9999 'DOFLinx - Beacon ON
- FF_DOF "E",407,150 'DOFLinx DOF MX - Beacon ON
- End Sub
- Sub DOFLinx_Falcon_Fire_Hit() 'DOFLinx_Falcon_Fire_Hit
- DOFLinx_Falcon_Fire_Hit_Blast_Stage = 1
- DOFLinx_Falcon_Fire_Hit_Blast.Enabled = True
- FF_Dev DV_SH,150 'DOFLinx - Shaker
- FF_Dev DV_FN,150 'DOFLinx - Fan
- FF_DOF "E",502,10 'DOFLinx DOF MX - Small Explosion
- End Sub
- Sub DOFLinx_VideoMode_Won() 'DOFLinx_VideoMode_Won
- FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
- DOFLinx_RGB_UnderCab_Modes() 'DOFLinx - RGB UnderCab Modes
- DOFLinx_Combo_Jackpot() 'DOFLinx - Combo - Jackpot animation
- FF_DOF "E",553,100 'DOFLinx DOF MX - VICTORY
- End Sub
- '****** Death Star Animations ******
- Sub DOFLinx_DeathStar_BlowUp() 'DOFLinx_DeathStar_BlowUp
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- DOFLinx_DeathStar_Gone_Delay.Set True, 7000
- DOFLinx_DeathStar_BlowUp_Delay.Set True, 5200
- FF_DOF "E",570,100 'DOFLinx DOF MX - Blow Up Death Star - FIRE
- End Sub
- Sub DOFLinx_DeathStar_BlowUp_Delay_Expired()
- DOFLinx_DeathStar_BlowUp_Delay.Enabled=false
- FF_Flasher DV_FLIR,FL_FD,2,80,100,"Yellow"
- FF_Flasher DV_FLOR,FL_FD,2,60,100,"Yellow"
- FF_Flasher DV_FLCN,FL_FD,2,90,100,"Yellow"
- FF_Flasher DV_FLIL,FL_FD,2,60,100,"Yellow"
- FF_Flasher DV_FLOL,FL_FD,2,80,100,"Yellow"
- FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
- FF_Colour "Yellow",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_Dev DV_SH,350 'DOFLinx - Shaker
- FF_Dev DV_FN,350 'DOFLinx - Fan
- FF_DOF "E",502,100 'DOFLinx DOF MX - Explosion
- End Sub
- Sub DOFLinx_Planet_BlowUp() 'DOFLinx_Planet_BlowUp
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- DOFLinx_DeathStar_BlowUp_Delay.Set True, 3600
- DOFLinx_DeathStar_Laser_Delay.Set True, 2600
- End Sub
- Sub DOFLinx_DeathStar_Laser_Delay_Expired()
- DOFLinx_DeathStar_Laser_Delay.Enabled = False
- DOFLinx_RL_Green_Stage=1
- DOFLinx_RL_Green.Enabled = True
- FF_DOF "E",571,-1 'DOFLinx DOF MX - Death Star Lazer - FIRE
- End Sub
- Sub DOFLinx_DeathStar_MB_Start() 'DOFLinx_DeathStar_MB_Start
- FF_Colour "Black",RGB_CH,0 'DOFLinx - RGB Under Cabinet
- FF_Dev DV_BK,9999 'DOFLinx - Beacon ON
- End Sub
- Sub DOFLinx_DeathStar_Gone_Delay_Expired() 'DOFLinx_DeathStar_Destroyed
- DOFLinx_DeathStar_Destroyed_Stage=1
- DOFLinx_DeathStar_Destroyed.Enabled=True
- DOFLinx_DeathStar_Gone_Delay.Enabled=false
- FF_DOF "E",572,1600 'DOFLinx DOF MX - Death Star Gone
- End Sub
- '****** Victory MultiBall ******
- Sub DOFLinx_VictoryMB_Start() 'DOFLinx_VictoryMB_Start
- FF_Dev DV_BK,99999 'DOFLinx - Beacon ON
- FF_DOF "E",407,-1 'DOFLinx DOF MX - Beacon ON
- DOFLinx_Victory_MB_Undercab_Stage=1
- DOFLinx_Victory_MB_Undercab.Enabled = True
- End Sub
- Sub DOFLinx_Victory_Hit() 'DOFLinx_Victory_Hit
- FF_FlasherForMs 200,200,bulboff,DV_FLOL,100,"Red"
- FF_FlasherForMs 200,200,bulboff,DV_FLIL,100,"Red"
- FF_FlasherForMs 200,200,bulboff,DV_FLIR,100,"Red"
- FF_FlasherForMs 200,200,bulboff,DV_FLOR,100,"Red"
- End Sub
- Sub DOFLinx_VictoryMB_End() 'DOFLinx_VictoryMB_End
- FF_Dev DV_BK,0 'DOFLinx - Beacon OFF
- DOFLinx_Victory_MB_Undercab.Enabled = False
- FF_DOF "E",407,0 'DOFLinx DOF MX - Beacon OFF
- End Sub
- '****** R2-D2 Gear Motor ******
- Sub DOFLinx_R2D2_GearMotor_Short() 'DOFLinx_R2D2_GearMotor Short
- FF_Dev DV_GR,50 'DOFLinx - R2-D2 Gear Motor On Time
- End Sub
- Sub DOFLinx_R2D2_GearMotor_Long() 'DOFLinx_R2D2_GearMotor Long
- FF_Dev DV_GR,75 'DOFLinx - R2-D2 Gear Motor On Time
- End Sub
- '****** DOFLinx MAIN SECTION ENDS ******
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement