Advertisement
Arngrim

Scarface

Oct 16th, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 237.08 KB | None | 0 0
  1. '**************far*******************
  2. ' Scarface - Balls and Power v 1.0
  3. ' VP table by JPSalas
  4. ' Graphics & Rules by hassanchop
  5. '*********************************
  6.  
  7. '**************far*************
  8. 'DOF version by Arngrim v 1.1
  9.  
  10. 'DOF mapping
  11.  
  12. 'E107 bumper right
  13. 'E108 ball release
  14. 'E109 middle yellow target left
  15. 'E110 middle yellow target center
  16. 'E111 middle yellow target right
  17. 'E112 middle yellow targets drop reset
  18. 'E113 B of Bank target
  19. 'E114 A of Bank target
  20. 'E115 N of Bank target
  21. 'E116 K of Bank target
  22. 'E117 Central bank hit
  23. 'E118 World is yours VUK
  24. 'E119 Car eject
  25. 'E120 Left Ramp done
  26. 'E121 Centerblock open
  27. 'E122 Platform rotating
  28. 'E123 Autoplunger
  29. 'E124 Plunger lane exit
  30. 'E125 Plunger lane diverter
  31. 'E126 Car hit
  32. 'E127 Shooter lane switch
  33. 'E128 Left outer lane
  34. 'E129 Left inner lane
  35. 'E130 Right inner lane
  36. 'E131 Right outer lane
  37. 'E132 Start button light
  38. 'E133 Right ramp done
  39. 'E134 Knocker
  40. 'E135 Lockpost
  41. 'E136 Backdoorpost
  42. 'E137 Win event
  43.  
  44. 'E201 rollover middle left
  45. 'E202 rollover middle right
  46. 'E203 rollover left
  47. 'E204 rollover right
  48. 'E205 rotation lights from platform 1
  49. 'E206 rotation lights from platform 2
  50. 'E207 rotation lights from platform 3
  51. 'E208 rotation lights from platform 4
  52. 'E209 rotation lights from platform 5
  53. 'E210 flash when skillshot made
  54. 'E211
  55. 'E212
  56. 'E213
  57. 'E214 Bumper flash
  58. 'E219 left lane light
  59. 'E222 Easter egg beacon
  60.  
  61. '**************far***********
  62.  
  63. Option Explicit
  64. Randomize
  65.  
  66. On Error Resume Next
  67. ExecuteGlobal GetTextFile("controller.vbs")
  68. If Err Then MsgBox "Can't open controller.vbs"
  69. On Error Goto 0
  70.  
  71. '************************************** B2S additions / Rosve **************************************
  72.  
  73. Const FullBackglassFX=1 'When set to 0 some backglass effects are skipped. Change to 1 if you have a fast PC.
  74. Const LWMaxBallsOnPF=1 'Some flasher effects are skipped if there are more than LWMaxBallsOnPF in play.
  75. ' This setting can be increased on a fast PC.
  76.  
  77. ' B2S *******************************************************************************
  78. Const cGameName = "scarface"
  79.  
  80. ' some B2S vars
  81. Dim B2SCurrentFrame
  82.  
  83. ' initialize this vars
  84. B2SCurrentFrame = ""
  85.  
  86. ' B2S *******************************************************************************
  87.  
  88. ' some constants
  89. Const BallSavedTime = 20 'in seconds
  90. Const MaxMultiplier = 10
  91. Const BallsPerGame = 3
  92. Const MaxBalls = 5 'Max number of balls on the table at the same time
  93. Const MusicOn = True
  94. Dim Version:Version = chr(193) & "0" 'chr(193) is "1,"
  95.  
  96. Const BallSize = 25 'Ball radius
  97.  
  98.  
  99. Dim DesktopMode: DesktopMode = Table1.ShowDT
  100.  
  101. If DesktopMode = True Then 'Show Desktop components and DT DMD
  102. Ramp16.visible=1
  103. Ramp15.visible=1
  104. Primitive13.visible=1
  105. dim xxx
  106. For each xxx in DMDElements:xxx.Visible = 1: Next
  107. Else
  108. Ramp16.visible=0
  109. Ramp15.visible=0
  110. Primitive13.visible=0
  111. For each xxx in DMDElements:xxx.Visible = 0: Next
  112. End if
  113.  
  114. '********************
  115. ' Table Init & Events
  116. '********************
  117.  
  118. Dim GameStarted
  119. Dim Tilt
  120. Dim Tilted
  121. Dim TiltWarning
  122. Dim AutoPlungerReady
  123. Dim BallsRemaining
  124. Dim BallsOnPlayfield
  125. Dim Special
  126. Dim SpecialIsLit
  127. Dim SpecialAwarded
  128. Dim Match
  129. Dim LastSwitchHit
  130. Dim BallLockEnabled
  131. Dim BallsInLock
  132. Dim BallSaved
  133. Dim ExtraBallIsLit
  134. Dim ExtraBallAwarded
  135. Dim MultiBallMode
  136. Dim Credits
  137. Dim Player
  138. Dim Players
  139. Dim BonusAward
  140.  
  141. Sub Table1_Init()
  142. LoadEM
  143. GameStarted = 0
  144. Credits = 0
  145. Player = 0
  146. Players = 0
  147. Loadhs
  148. GiOff
  149. AllLampsOff
  150. DMDInit
  151.  
  152. ' Init bumpers, slingshots, targets and other VP objects
  153. LockPost.Isdropped = 1:
  154. BackDoorPost.Isdropped = 1
  155.  
  156. GameTimer.Enabled = 1
  157. AutoPlunger.Pullback
  158. If Credits > 0 Then
  159. DOF 132, DOFOn
  160. End If
  161. ' Start Attrack mode
  162. AttractMode_On
  163. End Sub
  164.  
  165. Sub Table1_Exit()
  166. If B2SOn Then
  167. Controller.Stop
  168. End If
  169. End Sub
  170.  
  171. Sub Initialize ' First Ball
  172. ResetLights
  173. Score(0) = 0 'used in the EE
  174. Score(1) = 0
  175. Score(2) = 0
  176. Score(3) = 0
  177. Score(4) = 0
  178. Bonus = 0
  179. BallsRemaining = BallsPerGame + 1 ' first ball
  180. BallsOnPlayfield = 0
  181. BallLockEnabled = 0
  182. BallsInLock = 0
  183. BallsInDesk = 0
  184. BallSaved = 0
  185. BonusMultiplier = 1
  186. MultiballDelay = 0
  187. NextBallBusy = 0
  188. TiltDelay = 0
  189. Tilted = False
  190. Tilt = 0
  191. TiltWarning = 0
  192. Special = 0
  193. SpecialIsLit = 0
  194. SpecialAwarded = 0
  195. AutoPlungerDelay = 0
  196. AutoPlungerReady = 0
  197. MultiBallMode = 0
  198. ExtraBallIsLit = 0
  199. ExtraBallAwarded = 0
  200. GameStarted = 1
  201. Goal1 = 2000000
  202. Goal2 = 6000000
  203. Made1(1) = False
  204. Made1(2) = False
  205. Made1(3) = False
  206. Made1(4) = False
  207. Made2(1) = False
  208. Made2(2) = False
  209. Made2(3) = False
  210. Made2(4) = False
  211. 'PlaySong "scarface_NOE.mp3"
  212. ' Reset Variables
  213. InitVariables
  214. ' Init Modes
  215. ResetDroptargets
  216. InitModes
  217. InitTV
  218. InitSkillShot
  219. InitLaneLights
  220. InitExtraBall
  221. InitLock
  222. InitYeyo
  223. InitBumpers
  224. InitScarface
  225. InitKillRamp
  226. InitGetCar
  227. InitMiniLoops
  228. InitTWIY
  229. InitEvents
  230. InitEasterEgg
  231. End Sub
  232.  
  233. Sub StartGame
  234. If B2SOn Then Controller.B2SStopAllAnimations()
  235. Initialize
  236. AttractMode_Off
  237. GiOn
  238. DisPlayScoreNow
  239. NextBallDelay = 30
  240. End Sub
  241.  
  242. Sub ResetLights
  243. AllLampsOff
  244. End Sub
  245.  
  246. '******************************
  247. ' Game Timer Loop
  248. ' used for all the small waits
  249. '******************************
  250.  
  251. Dim BallRelDelay, BonusDelay, NextBallDelay, TiltDelay
  252. Dim GameOverDelay, MatchDelay, MultiballDelay, AutoPlungerDelay, EjectLockedBallsDelay, EjectRightBallDelay
  253. Dim ComboDelay, NextBallBusy, VukDelay
  254.  
  255. Sub GameTimer_Timer
  256. Dim x
  257. ' Check some subs - update realtime variables
  258. 'check the delays
  259.  
  260. If NextBallDelay> 0 Then
  261. NextBallDelay = NextBallDelay - 1
  262. If NextBallDelay = 0 Then
  263. NextBall
  264. End If
  265. End If
  266.  
  267. If TiltDelay> 0 Then
  268. TiltDelay = TiltDelay - 1
  269. If TiltDelay = 0 Then
  270. Tilt = Tilt - 1
  271. If Tilt> 0 Then
  272. TiltDelay = 20
  273. Else
  274. TiltWarning = 0
  275. End If
  276. End If
  277. End If
  278.  
  279. If GameOverDelay> 0 Then
  280. GameOverDelay = GameOverDelay - 1
  281. If GameOverDelay = 0 Then GameOver
  282. End If
  283.  
  284. If BonusDelay> 0 Then
  285. BonusDelay = BonusDelay - 1
  286. If BonusDelay = 39 Then
  287. 'add bonus to score
  288. BonusMultiplier = EventsFinished 'only for this table
  289. DD CenterTop("BONUS"), CenterBottom(FormatScore(Bonus) & " X" & BonusMultiplier), "", eNone, eNone, 0, 2000, True, ""
  290. AddScore Bonus * BonusMultiplier
  291. If BonusHeld Then
  292. BonusMultiplier = 1 'reset only the multiplier
  293. Else
  294. Bonus = 0:BonusMultiplier = 1
  295. End If
  296. End If
  297. If BonusDelay = 0 Then NextBallDelay = 40:End If
  298. End If
  299.  
  300. If MatchDelay> 0 then 'it works with the two digits of the last player's score
  301. MatchDelay = MatchDelay - 1
  302.  
  303. If MatchDelay = 99 then
  304. DisplayFlushQueue()
  305. DD FormatScore(Score(player) ) & " ", " 30 ", "", eNone, eNone, 0, 150, False, ""
  306. DD FormatScore(Score(player) ) & " ", " 70 ", "", eNone, eNone, 0, 150, False, ""
  307. DD FormatScore(Score(player) ) & " ", " 20 ", "", eNone, eNone, 0, 150, False, ""
  308. DD FormatScore(Score(player) ) & " ", " 60 ", "", eNone, eNone, 0, 150, False, ""
  309. DD FormatScore(Score(player) ) & " ", " 90 ", "", eNone, eNone, 0, 150, False, ""
  310. DD FormatScore(Score(player) ) & " ", " 10 ", "", eNone, eNone, 0, 150, False, ""
  311. End If
  312.  
  313. If MatchDelay = 0 then
  314. Match = 10 * (INT(10 * Rnd(1) ) ):If Match <10 Then Match = "00"
  315. x = Match
  316. If Match = "00" Then x = 0
  317. If x = Score(player) MOD 100 Then
  318. DisplayFlushQueue
  319. DD FormatScore(Score(player) ) & " ", " MATCH " &Match, "", eNone, eBlinkFast, 0, 2000, True, ""
  320. PlaySound SoundFXDOF("fx_knocker",134,DOFPulse,DOFKnocker)
  321. Credits = Credits + 1
  322. If Credits = 1 then
  323. DOF 132, DOFOn
  324. End If
  325. Else
  326. DD FormatScore(Score(player) ) & " ", " " &Match, "", eNone, eNone, 0, 2000, True, ""
  327. End If
  328. GameOverDelay = 60
  329. End If
  330. End If
  331.  
  332. If BallSavedDelay> 0 Then
  333. BallSavedDelay = BallSavedDelay - 1
  334. If BallSavedDelay = 100 Then
  335. BlinkFastBallSaved 'blink fast the last 5 seconds
  336. End If
  337. If BallSavedDelay = 0 Then
  338. EndBallSaved
  339. End If
  340. End If
  341.  
  342. ' If ComboDelay> 0 Then
  343. ' ComboDelay = ComboDelay - 1
  344. ' If ComboDelay = 0 AND ComboStarted = 1 Then
  345. ' ResetCombo
  346. ' End If
  347. ' End If
  348.  
  349. If AutoPlungerDelay> 0 Then
  350. AutoPlungerDelay = AutoPlungerDelay - 1
  351. If AutoPlungerDelay = 0 Then
  352. AutoPlungerFire
  353. AutoPlungerReady = 0
  354. End If
  355. Else
  356. If BallInPlunger AND MultiBallMode AND EventStarted <> 8 Then AutoPlungerDelay = 1
  357. End If
  358.  
  359. If MultiballDelay> 0 Then ' Eject the balls to the autoplunger
  360. MultiballDelay = MultiballDelay - 1
  361. If MultiballDelay = 80 Then MultiBallMode = 1:NewBall:AutoPlungerReady = 1:AutoPlungerDelay = 10:End If
  362.  
  363. If MultiballDelay = 60 Then MultiBallMode = 1:NewBall:AutoPlungerReady = 1:AutoPlungerDelay = 10:End If
  364. If MultiballDelay = 40 Then MultiBallMode = 1:NewBall:AutoPlungerReady = 1:AutoPlungerDelay = 10:End If
  365. If MultiballDelay = 20 Then MultiBallMode = 1:NewBall:AutoPlungerReady = 1:AutoPlungerDelay = 10:End If
  366. If MultiballDelay = 0 Then MultiBallMode = 1:NewBall:AutoPlungerReady = 1:AutoPlungerDelay = 10:End If
  367. End If
  368.  
  369. ' only for this table
  370.  
  371. If PlungerLaneKDelay> 0 Then
  372. PlungerLaneKDelay = PlungerLaneKDelay - 1
  373. If PlungerLaneKDelay = 0 Then
  374. BallsInPlungerLane = BallsInPlungerLane - 1
  375. PlungerLaneExit
  376. If BallsInPlungerLane> 0 Then PlungerLaneKDelay = 20
  377. End If
  378. End If
  379.  
  380. If OpenLockBlockDelay> 0 Then
  381. OpenLockBlockDelay = OpenLockBlockDelay - 1
  382. If OpenLockBlockDelay = 0 Then
  383. OpenLockBlock
  384. End If
  385. End If
  386.  
  387. If LaneGateDelay> 0 Then
  388. LaneGateDelay = LaneGateDelay - 1
  389. If LaneGateDelay = 0 Then
  390. LaneGateClose
  391. End If
  392. End If
  393.  
  394. If CarHoleDelay> 0 Then
  395. CarHoleDelay = CarHoleDelay - 1
  396. If CarHoleDelay = 0 Then
  397. CarHoleExit
  398. End If
  399. End If
  400.  
  401. If CarHole8Delay> 0 Then
  402. CarHole8Delay = CarHole8Delay - 1
  403. If CarHole8Delay = 0 Then
  404. CarHole8Exit
  405. End If
  406. End If
  407.  
  408. If bumperoffdelay> 0 Then
  409. bumperoffdelay = bumperoffdelay - 1
  410. If bumperoffdelay = 0 Then
  411. InitBumpers
  412. End If
  413. End If
  414.  
  415. If BankDelay> 0 Then
  416. BankDelay = BankDelay - 1
  417. If BankDelay = 0 Then
  418. EndBank
  419. End If
  420. End If
  421.  
  422. If GetCarDelay> 0 Then
  423. GetCarDelay = GetCarDelay - 1
  424. If GetCarDelay = 0 Then
  425. EndGetCar
  426. End If
  427. End If
  428.  
  429. If StartTWIYDelay> 0 Then
  430. StartTWIYDelay = StartTWIYDelay - 1
  431. If StartTWIYDelay = 0 Then
  432. StartTWIY
  433. End If
  434. End If
  435.  
  436. If Event1Delay> 0 Then
  437. Event1Delay = Event1Delay - 1
  438. If Event1Delay = 400 Then Say "doing_a_great_job", "13252527":If B2SOn Then Controller.B2SStartAnimation("Tony")
  439. If Event1Delay = 300 Then Say "wastemytime", "13121324461":If B2SOn Then Controller.B2SStartAnimation("Tony")
  440. If Event1Delay = 200 Then Say "You_fuckin_hossa", "13172617171":If B2SOn Then Controller.B2SStartAnimation("Tony")
  441. If Event1Delay = 0 Then
  442. EndMainEvent
  443. End If
  444. End If
  445.  
  446. If Event2Delay> 0 Then
  447. Event2Delay = Event2Delay - 1
  448. If Event2Delay = 700 Then Say "No_fuckin_way", "1314251":If B2SOn Then Controller.B2SStartAnimation("Tony")
  449. If Event2Delay = 300 Then Say "Ok_your_starting_to_piss_me_off", "222514122315421":If B2SOn Then Controller.B2SStartAnimation("Tony")
  450. If Event2Delay = 0 Then
  451. EndMainEvent
  452. End If
  453. End If
  454.  
  455. If Event3Delay> 0 Then
  456. Event3Delay = Event3Delay - 1
  457. If Event3Delay = 700 Then Say "Thats_ok", "26351":If B2SOn Then Controller.B2SStartAnimation("Tony")
  458. If Event3Delay = 400 Then Say "Ok", "32341":If B2SOn Then Controller.B2SStartAnimation("Tony")
  459. If Event3Delay = 300 Then Say "Ok_so_what_you_doing_later", "3223841214131":If B2SOn Then Controller.B2SStartAnimation("Tony")
  460. If Event3Delay = 0 Then
  461. EndMainEvent
  462. End If
  463. End If
  464.  
  465. If Event4Delay> 0 Then
  466. Event4Delay = Event4Delay - 1
  467. If Event4Delay = 0 Then
  468. EndMainEvent
  469. End If
  470. End If
  471.  
  472. If Event5Delay> 0 Then
  473. Event5Delay = Event5Delay - 1
  474. If Event5Delay = 700 Then Say "Hello_pussy_cat", "16242424":If B2SOn Then Controller.B2SStartAnimation("Tony")
  475. If Event5Delay = 400 Then Say "Hey_there_sweet_cheeks", "2414131314":If B2SOn Then Controller.B2SStartAnimation("Tony")
  476. If Event5Delay = 300 Then Say "Cmon_pussy_cat", "16272538":If B2SOn Then Controller.B2SStartAnimation("Tony")
  477. If Event5Delay = 0 Then
  478. EndMainEvent
  479. End If
  480. End If
  481.  
  482. If Event6Delay> 0 Then
  483. Event6Delay = Event6Delay - 1
  484. If Event6Delay = 700 Then Say "You_fuckin_kidding_me_man", "2324133413141":If B2SOn Then Controller.B2SStartAnimation("Tony")
  485. If Event6Delay = 600 Then Say "Dont_you_fucken_listen_man", "2313432613131336":If B2SOn Then Controller.B2SStartAnimation("Tony")
  486. If Event6Delay = 400 Then Say "Fuckin_cock_sucker", "8524252524":If B2SOn Then Controller.B2SStartAnimation("Tony")
  487. If Event6Delay = 300 Then Say "For_fuck_sake", "231323241":If B2SOn Then Controller.B2SStartAnimation("Tony")
  488. If Event6Delay = 150 Then Say "Fuck_you_chico", "16574539":If B2SOn Then Controller.B2SStartAnimation("Tony")
  489. If Event6Delay = 0 Then
  490. EndMainEvent
  491. End If
  492. End If
  493.  
  494. If Event7Delay> 0 Then
  495. Event7Delay = Event7Delay - 1
  496.  
  497. If Event7Delay = 400 Then Say "hello1", "391":If B2SOn Then Controller.B2SStartAnimation("Tony")
  498. If Event7Delay = 300 Then Say "hello2", "281":If B2SOn Then Controller.B2SStartAnimation("Tony")
  499. If Event7Delay = 0 Then
  500. EndMainEvent
  501. End If
  502. End If
  503.  
  504. If Event8Delay> 0 Then
  505. Event8Delay = Event8Delay - 1
  506. If Event8Delay = 400 Then Say "Bring_my_car_dont_fuck_around", "179517972636663925":If B2SOn Then Controller.B2SStartAnimation("Tony")
  507. If Event8Delay = 200 Then Say "I_need_my_fuckin_car_man", "162424161476371":If B2SOn Then Controller.B2SStartAnimation("Tony")
  508. End If
  509.  
  510. If Event9Delay> 0 Then
  511. Event9Delay = Event9Delay - 1
  512. If Event9Delay = 700 Then Say "I_piss_in_your_face", "2333131313131313132":If B2SOn Then Controller.B2SStartAnimation("Tony")
  513. If Event9Delay = 400 Then Say "Im_Tony_fuckin_Montana", "13362526251":If B2SOn Then Controller.B2SStartAnimation("Tony")
  514. If Event9Delay = 300 Then Say "Now_your_fucked", "26361":If B2SOn Then Controller.B2SStartAnimation("Tony")
  515. If Event9Delay = 0 Then
  516. EndMainEvent
  517. End If
  518. End If
  519.  
  520. If StartEvent11Delay> 0 Then
  521. StartEvent11Delay = StartEvent11Delay - 1
  522. If StartEvent11Delay = 0 Then
  523. StartEvent11
  524. End If
  525. End If
  526.  
  527. If Event11VoiceDelay> 0 Then
  528. Event11VoiceDelay = Event11VoiceDelay - 1
  529. If Event11VoiceDelay = 800 Then Say "You_know_who_your_fuckin_with", "25162424261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  530. If Event11VoiceDelay = 700 Then Say "You_need_an_army_to_take_me", "13151414141413331":If B2SOn Then Controller.B2SStartAnimation("Tony")
  531. If Event11VoiceDelay = 600 Then SayEvent11
  532. If Event11VoiceDelay = 500 Then Say "You_picked_the_wrong_guy_to_fuck_with", "23232523233334261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  533. If Event11VoiceDelay = 400 Then Say "Cmon_bring_your_army", "13144814":If B2SOn Then Controller.B2SStartAnimation("Tony")
  534. If Event11VoiceDelay = 300 Then SayEvent11
  535. If Event11VoiceDelay = 200 Then Say "You_think_you_can_fuck_with_me", "2414141423261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  536. If Event11VoiceDelay = 100 Then Say "Cmon_come_and_get_me", "12132643233414":If B2SOn Then Controller.B2SStartAnimation("Tony")
  537. If Event11VoiceDelay = 0 Then
  538. SayEvent11
  539. Event11VoiceDelay = 800
  540. End If
  541. End If
  542.  
  543. If EndEvent11Delay> 0 Then
  544. EndEvent11Delay = EndEvent11Delay - 1
  545. If EndEvent11Delay = 0 Then
  546. EndEvent11
  547. End If
  548. End If
  549.  
  550. If EndWinEvent11Delay> 0 Then
  551. EndWinEvent11Delay = EndWinEvent11Delay - 1
  552. If EndWinEvent11Delay = 0 Then
  553. EndWinEvent11
  554. End If
  555. End If
  556.  
  557. If ResetDropDelay> 0 Then
  558. ResetDropDelay = ResetDropDelay - 1
  559. If ResetDropDelay = 0 Then
  560. ResetDroptargets
  561. End If
  562. End If
  563.  
  564. If VukDelay> 0 Then
  565. VukDelay = VukDelay - 1
  566. If VukDelay = 20 Then
  567. PlaySound "reload3_shotgun"
  568. End If
  569. If VukDelay = 0 Then
  570. VukEject
  571. End If
  572. End If
  573.  
  574. If EndEEDelay> 0 Then
  575. EndEEDelay = EndEEDelay - 1
  576. If EndEEDelay = 0 Then
  577. EndEE
  578. End If
  579. End If
  580.  
  581. If EndEEDelay2> 0 Then
  582. EndEEDelay2 = EndEEDelay2 - 1
  583. If EndEEDelay2 = 0 Then
  584. If BallsOnPlayfield Then
  585. EndEEDelay2 = 10
  586. Else
  587. GameOver_Part2
  588. End If
  589. End If
  590. End If
  591.  
  592. If StartEasterEggShootingDelay> 0 Then
  593. StartEasterEggShootingDelay = StartEasterEggShootingDelay - 1
  594. If StartEasterEggShootingDelay = 0 Then
  595. StartEasterEggShooting
  596. End If
  597. End If
  598.  
  599. If StartHitManDelay> 0 Then
  600. StartHitManDelay = StartHitManDelay - 1
  601. If StartHitManDelay = 0 Then
  602. StartHitMan2
  603. End If
  604. End If
  605.  
  606. If CTDelay> 0 Then
  607. CTDelay = CTDelay - 1
  608. If CTDelay = 90 Then l40.State = 0:l38.State = 1:CurrentCT = 1
  609. If CTDelay = 60 Then l38.State = 0:l39.State = 1:CurrentCT = 2
  610. If CTDelay = 30 Then l39.State = 0:l40.State = 1:CurrentCT = 3
  611. If CTDelay = 0 Then CTDelay = 91
  612. End If
  613.  
  614. If EjectXLockedBallDelay> 0 Then 'eject extra ball
  615. EjectXLockedBallDelay = EjectXLockedBallDelay - 1
  616. If EjectXLockedBallDelay = 0 Then
  617. BallsInLock = BallsInLock - 1
  618. BallsOnPlayfield = BallsOnPlayfield + 1
  619. LockExit
  620. End If
  621. End If
  622.  
  623. If EjectBallsInDeskDelay> 0 Then 'eject balls from under the desk
  624. EjectBallsInDeskDelay = EjectBallsInDeskDelay - 1
  625. If EjectBallsInDeskDelay = 0 Then
  626. If BallsInDesk> 0 Then
  627. BallsInDesk = BallsInDesk - 1
  628. BallsOnPlayfield = BallsOnPlayfield + 1
  629. LockExit
  630. End If
  631. If BallsInDesk> 0 Then EjectBallsInDeskDelay = 20
  632. End If
  633. End If
  634. End Sub
  635.  
  636. '*****
  637. 'Drain
  638. '*****
  639.  
  640. Sub Drain_Hit
  641.  
  642. Drain.DestroyBall
  643. BallsOnPlayfield = BallsOnPlayfield -1
  644. PlaySound "fx_drain"
  645. LastSwitchHit = "drain"
  646.  
  647. ' end modes
  648.  
  649. If Tilted Then
  650. If BallsOnPlayfield = 0 Then
  651. Tilted = false:TiltObjects 0
  652. LightSeqTilt.StopPlay
  653. TiltDelay = 0
  654. TiltWarning = 0
  655. If EE Then
  656. EndEE
  657. Else
  658. BallSaved = 0
  659. AutoPlungerReady = 0
  660. MultiBallMode = 0
  661. NextBallDelay = 40
  662. End If
  663. End If
  664. Exit Sub
  665. End If
  666.  
  667. 'only for this table
  668.  
  669. If EE Then
  670. If BallSaved Then
  671. StartScarShooting 1
  672. Else
  673. If BallsOnPlayfield = 0 Then
  674. EndEE
  675. End If
  676. End If
  677. Exit Sub
  678. End If
  679.  
  680. If EventStarted = 8 Then
  681. Exit Sub
  682. End If
  683.  
  684. If BallSaved Then
  685. DD "-", CenterBottom("DONT MOVE"), "", eNone, eBlink, 0, 1000, True, "vo_ballsaved"
  686. AutoPlungerReady = 1
  687. If MultiBallMode = 1 Then
  688. MultiBallDelay = MultiBallDelay + 20 'add a new multiball
  689. Else
  690. EndBallSaved
  691. If EventStarted Then
  692. NewBall8
  693. Else
  694. NewBall
  695. End If
  696. End If
  697. Exit Sub
  698. End If
  699.  
  700. If BallsOnPlayfield = 1 Then 'this is the last multiball so turn off multiballs and other effects
  701. MultiBallMode = 0
  702. AutoPlungerReady = 0
  703. 'end multiball modes
  704. If EventStarted = 11 Then
  705. EndEvent11
  706. End If
  707. EndHitMan
  708. EndYeyoRun
  709. EndTWIY
  710. End If
  711.  
  712. If BallsOnPlayfield = 0 Then ' this is the last ball
  713. If ExtraBallAwarded Then
  714. DD "", CenterBottom("SAME PLAYER"), "", eNone, eBlink, 0, 500, True, "vo_shootagain"
  715. DD "", CenterBottom("SHOOT AGAIN"), "", eNone, eBlink, 0, 500, True, ""
  716. InitExtraBall
  717. AutoPlungerReady = 0
  718. NewBall
  719. Else
  720. SkillshotReady = 1
  721. StopSong
  722. PlaySound "drainball"
  723. GiOff
  724. 'FlashEffectOff 0
  725. DisplayFlushQueue()
  726. BonusDelay = 40
  727. 'end modes
  728. 'EndSideMode will be executed through each side end event
  729. EndMainEvent
  730. CloseLockBlock
  731. EndGetCar
  732. EndBank
  733. End If
  734. End If
  735. End Sub
  736.  
  737. '******************
  738. ' New Ball Release
  739. '******************
  740.  
  741. Sub NextBall
  742. Player = Player + 1 'otherwise move to the next player
  743. If Player> Players Then
  744. BallsRemaining = BallsRemaining - 1
  745. Player = 1
  746. End If
  747.  
  748. If BallsRemaining = 0 Then
  749. StopSong
  750. AllLampsOff
  751. MatchDelay = 100
  752. Exit Sub
  753. End If
  754.  
  755. ' GiEffect1
  756. GiOn
  757. If SkillshotReady Then
  758. StartSkillshot
  759. End If
  760. 'DisplayScoreNow
  761. If Balls = 1 Then Say "Free_advice_dont_fuck_with_me", "14242424247313132222722424":If B2SOn Then Controller.B2SStartAnimation("Tony")
  762. If Balls = 2 Then Say "I_feel_like_I_already_know_you", "1324171223122413":If B2SOn Then Controller.B2SStartAnimation("Tony")
  763. If Balls >= 3 Then Say "Watch_yourself_man", "1324238523133435212314241":If B2SOn Then Controller.B2SStartAnimation("Tony")
  764. NewBall
  765. End Sub
  766.  
  767. Sub NewBall
  768. If(BallsOnPlayfield + BallsinLock) = MaxBalls Then Exit Sub 'Exit sub if total balls on table is maxed out
  769. BallRelease.createball
  770. BallsOnPlayfield = BallsOnPlayfield + 1
  771. BallRelease.Kick 90, 8
  772. PlaySound SoundFXDOF("fx_ballrel",108, DOFPulse,DOFContactors)
  773. If SkillshotReady Then
  774. 'PlaySong "scarface_NOE.mp3"
  775. Else
  776. PlayTheme
  777. End If
  778. End Sub
  779.  
  780. Function Balls
  781. Dim tmp
  782. tmp = BallsPerGame - BallsRemaining + 1
  783. If tmp> BallsPerGame Then
  784. Balls = BallsPerGame
  785. Else
  786. Balls = tmp
  787. End If
  788. End Function
  789.  
  790. '***********************
  791. ' BALL SAVE
  792. '***********************
  793.  
  794. ' lights: l1 (this is the Ball Save light)
  795.  
  796. Dim BallSavedDelay
  797.  
  798. Sub InitBallSaver
  799. BallSavedDelay = 0
  800. BallSaved = 0
  801. l1.State = 0
  802. End Sub
  803.  
  804. Sub StartBallSaved(seconds)
  805. If BallSavedDelay <20 * seconds Then
  806. BallSavedDelay = BallSavedDelay + 20 * seconds ' times 20 because of the game timer being 50 units, 1000 = 1 sec
  807. End If
  808. BallSaved = 1
  809. l1.BlinkInterval = 100
  810. l1.State = 2
  811. End Sub
  812.  
  813. Sub BlinkFastBallSaved
  814. l1.State = 0
  815. l1.BlinkInterval = 20
  816. l1.State = 2
  817. End Sub
  818.  
  819. Sub EndBallSaved
  820. 'AutoPlungerReady = 0
  821. If MultiBallmode = 1 Then 'turn off the ballsaver timer during multiball when the timer is 0
  822. If BallSavedDelay = 0 Then
  823. AutoPlungerReady = 0
  824. BallSaved = 0
  825. l1.State = 0
  826. End If
  827. Else
  828. BallSavedDelay = 0
  829. BallSaved = 0
  830. l1.State = 0
  831. End If
  832. End Sub
  833.  
  834. '************
  835. ' Extra ball
  836. '************
  837. ' only one extra ball per player
  838. 'light 49
  839.  
  840. Sub GiveExtraBall
  841. ExtraBallAwarded = 1
  842. ExtraBallIsLit = 0
  843. l49.State = 0
  844. l1.State = 1
  845. PlaySound SoundFXDOF("fx_knocker", 134, DOFPulse, DOFKnocker)
  846. DD "", "", "dmdextraball1", eNone, eNone, 0, 300, FALSE, ""
  847. DD "", "", "dmdextraball2", eNone, eNone, 0, 300, FALSE, ""
  848. DD "", "", "dmdextraball3", eNone, eNone, 0, 300, FALSE, ""
  849. DD "", "", "dmdextraball4", eNone, eNone, 0, 300, FALSE, ""
  850. DD "", "", "dmdextraball5", eNone, eNone, 0, 300, FALSE, ""
  851. DD "", "", "dmdextraball4", eNone, eNone, 0, 150, FALSE, ""
  852. DD "", "", "dmdextraball5", eNone, eNone, 0, 150, FALSE, ""
  853. DD "", "", "dmdextraball4", eNone, eNone, 0, 150, FALSE, ""
  854. DD "", "", "dmdextraball5", eNone, eNone, 0, 150, FALSE, ""
  855. DD "", "", "dmdextraball4", eNone, eNone, 0, 150, FALSE, ""
  856. DD "", "", "dmdextraball5", eNone, eNone, 0, 150, FALSE, ""
  857. DD "", "", "dmdextraball4", eNone, eNone, 0, 150, TRUE, ""
  858. Say "Want_to_get_a_drink", "3425233424261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  859. End Sub
  860.  
  861. Sub InitExtraBall
  862. ExtraBallAwarded = 0
  863. ExtraBallIsLit = 0
  864. l1.State = 0
  865. l49.State = 0
  866. End Sub
  867.  
  868. Sub LitExtraBall
  869. If ExtraBallAwarded Then Exit Sub 'do not lit the extraball light if already awarded since only one extra ball per ball
  870. DD "-", "EXTRABALL IS LIT", "", eNone, eBlinkFast, 0, 1000, True, "vo_extraballislit"
  871. ExtraBallIsLit = 1
  872. l49.State = 2
  873. OnlyOpenLockBlock
  874. End Sub
  875.  
  876. '************
  877. ' Special
  878. '************
  879.  
  880. Sub GiveSpecial
  881. SpecialAwarded = 1
  882. SpecialIsLit = 0
  883. l55.State = 0
  884. PlaySound SoundFXDOF("fx_knocker", 134, DOFPulse, DOFKnocker)
  885. Credits = Credits + 1:DisplayCredits
  886. If Credits = 1 then
  887. DOF 132, DOFOn
  888. End If
  889. DD "-", CenterBottom("SPECIAL"), "", eNone, eBlinkFast, 0, 1000, True, "vo_special"
  890. End Sub
  891.  
  892. Sub LitSpecial
  893. DD "-", CenterBottom("SPECIAL IS LIT"), "", eNone, eBlinkFast, 0, 1000, True, "vo_specialislit"
  894. SpecialIsLit = 1
  895. l55.State = 2
  896. End Sub
  897.  
  898. Sub InitSpecial
  899. SpecialAwarded = 0
  900. SpecialIsLit = 0
  901. l55.State = 0
  902. End Sub
  903.  
  904. '***************
  905. ' Add Multiballs
  906. '***************
  907. ' Used to add mutiballs to the table
  908.  
  909. Sub AddMultiballs(nr)
  910. MultiBallMode = 1
  911. MultiballDelay = MultiballDelay + nr * 20
  912. End Sub
  913.  
  914. '******
  915. ' Keys
  916. '******
  917.  
  918. Sub Table1_KeyDown(ByVal keycode)
  919. If Gamestarted AND NOT Tilted AND EventStarted <> 8 Then
  920. If keycode = LeftFlipperKey Then SolLFlipper 1
  921. If keycode = RightFlipperKey Then SolRFlipper 1
  922. Else
  923. If keycode = LeftFlipperKey Then PlaySound "WilliamsBong":TempEgg = TempEgg + "l":CheckStartEgg
  924. If keycode = RightFlipperKey Then PlaySound "WilliamsBong":TempEgg = TempEgg + "r":CheckStartEgg
  925. End If
  926.  
  927. If keycode = AddCreditKey Then
  928. If credits = 0 Then Say "Ok_lets_make_this_happen", "12361214231":If B2SOn Then Controller.B2SStartAnimation("Tony")
  929. credits = credits + 1
  930. If credits = 1 Then
  931. DOF 132, DOFOn
  932. End If
  933. PlaySound "fx_Coin"
  934. If credits> 15 Then credits = 15
  935. DisplayCredits
  936. savehs()
  937. End If
  938.  
  939. If keycode = AddCreditKey2 Then
  940. If credits = 0 Then Say "Ok_lets_make_this_happen", "12361214231":If B2SOn Then Controller.B2SStartAnimation("Tony")
  941. credits = credits + 5
  942. If credits = 5 Then
  943. DOF 132, DOFOn
  944. End If
  945. PlaySound "fx_Coin"
  946. If credits> 15 Then credits = 15
  947. DisplayCredits
  948. savehs()
  949. End If
  950.  
  951. If keycode = StartGameKey Then
  952. If credits> 0 Then
  953.  
  954. ' B2S turn off gameover 2-10-13
  955. If B2SOn Then
  956. Controller.B2SSetGameOver 0
  957. End If
  958. If players <4 Then
  959. If GameStarted = 0 Then
  960. Players = Players + 1
  961. Player = 1
  962. credits = credits - 1
  963. If credits = 0 Then
  964. DOF 132, DOFOff
  965. End If
  966. DisplayFlushQueue()
  967. DD CenterTop("CREDITS " &Credits), CenterBottom(Players & " PLAYERS"), "", eNone, eNone, 0, 1000, True, ""
  968. savehs()
  969. If players = 1 AND BallsOnPlayfield = 0 Then StartGame
  970. Else
  971. If Player = 1 AND BallsRemaining = BallsPerGame Then
  972. Players = Players + 1
  973. credits = credits - 1
  974. If credits = 0 Then
  975. DOF 132, DOFOff
  976. End If
  977. DisplayFlushQueue()
  978. DD CenterTop("CREDITS " &Credits), CenterBottom(Players & " PLAYERS"), "", eNone, eNone, 0, 1000, True, ""
  979. savehs()
  980. End If
  981. End If
  982. End If
  983. Else
  984. SaySomethingWhileWaiting
  985. DisplayFlushQueue()
  986.  
  987. DD CenterTop("CREDITS " &Credits), CenterBottom("INSERT COIN"), "", eNone, eBlink, 0, 1000, FALSE, ""
  988. If GameStarted = 0 Then ShowTableInfo
  989. End If
  990. End If
  991.  
  992. If keycode = LeftTiltKey Then LeftNudge 80, 1, 20:PlaySound SoundFX("fx_nudge_left",0):Bump
  993. If keycode = RightTiltKey Then RightNudge 280, 1, 20:PlaySound SoundFX("fx_nudge_right",0):Bump
  994. If keycode = CenterTiltKey Then CenterNudge 0, 1, 25:PlaySound SoundFX("fx_nudge_forward",0):Bump
  995. If keycode = PlungerKey Then :Plunger.Pullback::AutoPlungerReady = 0
  996. If hsbModeActive Then HighScoreProcessKey(keycode)
  997. If keycode = 35 Then ResetHighscore 'H key
  998. End Sub
  999.  
  1000. Sub Table1_KeyUp(ByVal keycode)
  1001. If keycode = PlungerKey Then
  1002. :Plunger.Fire
  1003. If(BallinPlunger = 1) then 'the ball is in the plunger lane
  1004. PlaySound "fx_Plunger2"
  1005. else
  1006. PlaySound "fx_Plunger"
  1007. end if
  1008. End If
  1009. If GameStarted = 1 AND NOT Tilted AND EventStarted <> 8 Then
  1010. If keycode = LeftFlipperKey Then SolLFlipper 0
  1011. If keycode = RightFlipperKey Then SolRFlipper 0
  1012. End If
  1013. End Sub
  1014.  
  1015. '********************
  1016. ' Special JP Flippers
  1017. '********************
  1018.  
  1019. Sub SolLFlipper(Enabled)
  1020. If Enabled Then
  1021. PlaySound SoundFXDOF("fx_flipperup", 101, DOFOn, DOFContactors)
  1022. LeftFlipper.RotateToEnd
  1023. RotateLightsLeft
  1024. Else
  1025. PlaySound SoundFXDOF("fx_flipperdown", 101, DOFOff, DOFContactors)
  1026. LeftFlipper.RotateToStart
  1027. End If
  1028. End Sub
  1029.  
  1030. Sub SolRFlipper(Enabled)
  1031. If Enabled Then
  1032. PlaySound SoundFXDOF("fx_flipperup", 102, DOFOn, DOFContactors)
  1033. RightFlipper.RotateToEnd
  1034. RotateLightsRight
  1035. Else
  1036. PlaySound SoundFXDOF("fx_flipperdown", 102, DOFOff, DOFContactors)
  1037. RightFlipper.RotateToStart
  1038. End If
  1039. End Sub
  1040.  
  1041.  
  1042.  
  1043.  
  1044. '*******************************
  1045. ' JP's Alpha Ramp Plunger
  1046. ' for non-vpm tables
  1047. '*******************************
  1048.  
  1049. Dim BallinPlunger
  1050.  
  1051. Sub swPlunger_Hit 'plunger lane switch
  1052. NextBallBusy = 1
  1053. BallinPlunger = 1
  1054. LastSwitchHit = "swPlunger"
  1055. If EventStarted = 8 Then AutoPlungerReady = 0
  1056. If AutoPlungerReady Then AutoPlungerDelay = 10
  1057. End Sub
  1058.  
  1059. Sub swPlunger_UnHit
  1060. BallinPlunger = 0
  1061. AutoPlungerDelay = 0
  1062. AutoPlungerReady = 0
  1063. NextBallBusy = 0
  1064. End Sub
  1065.  
  1066.  
  1067. 'Autoplunger
  1068.  
  1069. Sub AutoPlungerFire:PlaySound SoundFXDOF("fx_popper", 123, DOFPulse, DOFContactors):AutoPlunger.Fire:AutoPlunger.TimerEnabled = 1:End Sub
  1070. Sub AutoPlunger_Timer:AutoPlunger.PullBack:AutoPlunger.TimerEnabled = 0:End Sub
  1071.  
  1072. '*****************
  1073. ' Tilt
  1074. '*****************
  1075.  
  1076. Sub Bump()
  1077. If GameStarted AND Tilted = 0 AND Tilt <8 Then
  1078. Tilt = Tilt + 1
  1079. If Tilt = 3 AND TiltWarning = 0 Then
  1080. TiltWarning = 1
  1081. Say "You_fuckin_high_or_what", "131426141":If B2SOn Then Controller.B2SStartAnimation("Tony")
  1082. DD "", "", "dmdtilt1", eNone, eNone, 0, 600, FALSE, ""
  1083. DD "", "", "dmdtilt2", eNone, eNone, 0, 300, FALSE, ""
  1084. DD "", "", "dmdtilt3", eNone, eNone, 0, 300, FALSE, ""
  1085. DD "", "", "dmdtilt4", eNone, eNone, 0, 300, FALSE, ""
  1086. DD "", "", "dmdtilt5", eNone, eNone, 0, 200, FALSE, ""
  1087. DD "", "", "dmdtilt4", eNone, eNone, 0, 200, FALSE, ""
  1088. DD "", "", "dmdtilt5", eNone, eNone, 0, 200, FALSE, ""
  1089. DD "", "", "dmdtilt4", eNone, eNone, 0, 200, FALSE, ""
  1090. DD "", "", "dmdtilt5", eNone, eNone, 0, 200, FALSE, ""
  1091. DD "", "", "dmdtilt4", eNone, eNone, 0, 200, FALSE, ""
  1092. DD "", "", "dmdtilt5", eNone, eNone, 0, 200, True, ""
  1093. End If
  1094. If Tilt = 5 AND TiltWarning = 1 Then
  1095. TiltWarning = 2
  1096. Say "Fuckin_cock_sucker", "8524252524":If B2SOn Then Controller.B2SStartAnimation("Tony")
  1097. DD "", "", "dmdtilt1", eNone, eNone, 0, 600, FALSE, ""
  1098. DD "", "", "dmdtilt2", eNone, eNone, 0, 300, FALSE, ""
  1099. DD "", "", "dmdtilt3", eNone, eNone, 0, 300, FALSE, ""
  1100. DD "", "", "dmdtilt4", eNone, eNone, 0, 300, FALSE, ""
  1101. DD "", "", "dmdtilt5", eNone, eNone, 0, 200, FALSE, ""
  1102. DD "", "", "dmdtilt4", eNone, eNone, 0, 200, FALSE, ""
  1103. DD "", "", "dmdtilt5", eNone, eNone, 0, 200, FALSE, ""
  1104. DD "", "", "dmdtilt4", eNone, eNone, 0, 200, FALSE, ""
  1105. DD "", "", "dmdtilt5", eNone, eNone, 0, 200, FALSE, ""
  1106. DD "", "", "dmdtilt4", eNone, eNone, 0, 200, FALSE, ""
  1107. DD "", "", "dmdtilt5", eNone, eNone, 0, 200, True, ""
  1108. End If
  1109. If Tilt> 7 Then
  1110. DisplayFlushQueue()
  1111. Say "heyfuckyouman", "162527171":If B2SOn Then Controller.B2SStartAnimation("Tony")
  1112. DD "", "", "dmdtilt6", eNone, eNone, 0, 600, FALSE, ""
  1113. DD "", "", "dmdtilt7", eNone, eNone, 0, 300, FALSE, ""
  1114. DD "", "", "dmdtilt8", eNone, eNone, 0, 900, FALSE, ""
  1115. DD "", "", "dmdtilt9", eNone, eNone, 0, 3000, FALSE, ""
  1116. Tilted = True
  1117. for i = 210 to 224
  1118. DOF i, DOFOff
  1119. next
  1120. GiOff
  1121. LightSeqTilt.Play SeqAllOff
  1122. TiltObjects 1
  1123. End If
  1124.  
  1125. TiltDelay = 20
  1126. End If
  1127. End Sub
  1128.  
  1129. Sub TiltObjects(Enabled)
  1130. If Enabled Then
  1131. LeftFlipper.RotateToStart
  1132. RightFlipper.RotateToStart
  1133. Bumper1.Disabled = 1
  1134. Bumper2.Disabled = 1
  1135. Bumper3.Disabled = 1
  1136. LeftSlingshot.Disabled = 1
  1137. RightSlingshot.Disabled = 1
  1138. Else
  1139. Bumper1.Disabled = 0
  1140. Bumper2.Disabled = 0
  1141. Bumper3.Disabled = 0
  1142. LeftSlingshot.Disabled = 0
  1143. RightSlingshot.Disabled = 0
  1144. End If
  1145. End Sub
  1146.  
  1147. '*************************************
  1148. ' Nudge System
  1149. ' based on Noah's nudgetest table
  1150. '*************************************
  1151.  
  1152. Dim LeftNudgeEffect, RightNudgeEffect, NudgeEffect
  1153.  
  1154. Sub LeftNudge(angle, strength, delay)
  1155. Nudge angle, (strength * (delay-LeftNudgeEffect) / delay) + RightNudgeEffect / delay
  1156. LeftNudgeEffect = delay
  1157. RightNudgeEffect = 0
  1158. RightNudgeTimer.Enabled = 0
  1159. LeftNudgeTimer.Interval = delay
  1160. LeftNudgeTimer.Enabled = 1
  1161. End Sub
  1162.  
  1163. Sub RightNudge(angle, strength, delay)
  1164. Nudge angle, (strength * (delay-RightNudgeEffect) / delay) + LeftNudgeEffect / delay
  1165. RightNudgeEffect = delay
  1166. LeftNudgeEffect = 0
  1167. LeftNudgeTimer.Enabled = 0
  1168. RightNudgeTimer.Interval = delay
  1169. RightNudgeTimer.Enabled = 1
  1170. End Sub
  1171.  
  1172. Sub CenterNudge(angle, strength, delay)
  1173. Nudge angle, strength * (delay-NudgeEffect) / delay
  1174. NudgeEffect = delay
  1175. NudgeTimer.Interval = delay
  1176. NudgeTimer.Enabled = 1
  1177. End Sub
  1178.  
  1179. Sub LeftNudgeTimer_Timer()
  1180. LeftNudgeEffect = LeftNudgeEffect-1
  1181. If LeftNudgeEffect = 0 then LeftNudgeTimer.Enabled = 0
  1182. End Sub
  1183.  
  1184. Sub RightNudgeTimer_Timer()
  1185. RightNudgeEffect = RightNudgeEffect-1
  1186. If RightNudgeEffect = 0 then RightNudgeTimer.Enabled = 0
  1187. End Sub
  1188.  
  1189. Sub NudgeTimer_Timer()
  1190. NudgeEffect = NudgeEffect-1
  1191. If NudgeEffect = 0 then NudgeTimer.Enabled = 0
  1192. End Sub
  1193.  
  1194. '**********
  1195. ' Game Over
  1196. '**********
  1197.  
  1198. Sub GameOver
  1199.  
  1200. 'B2S gameover 2-10-13 added
  1201. 'Random ending line
  1202. Dim wiseguy
  1203. DOF 210, DOFOff
  1204. Wiseguy = CInt(Int((10 * Rnd()) + 1))
  1205. Select Case wiseguy
  1206. Case 1:Say "saygoodnight", "251414152424231":If B2SOn Then Controller.B2SStartAnimation("Tony") '2-10-13 added
  1207. Case 2:Say "I_tell_you_something_fuck_you_man", "232414239535251":If B2SOn Then Controller.B2SStartAnimation("Tony")
  1208. Case 3:Say "I_told_you_not_to_fuck_with_me", "2335145336543332151":If B2SOn Then Controller.B2SStartAnimation("Tony")
  1209. Case 4:Say "Now_your_fucked", "26361":If B2SOn Then Controller.B2SStartAnimation("Tony")
  1210. Case 5:Say "Ok_your_starting_to_piss_me_off", "222514122315421":If B2SOn Then Controller.B2SStartAnimation("Tony")
  1211. Case 6:Say "Run_while_you_can_stupid_fuck", "13131335142121431":If B2SOn Then Controller.B2SStartAnimation("Tony")
  1212. Case 7:Say "You_boring_you_know_that", "153634151":If B2SOn Then Controller.B2SStartAnimation("Tony")
  1213. Case 8:Say "You_just_fucked_up_man", "24251423341":If B2SOn Then Controller.B2SStartAnimation("Tony")
  1214. Case 9:Say "You_need_an_army_to_take_me", "13151414141413331":If B2SOn Then Controller.B2SStartAnimation("Tony")
  1215. Case 10:Say "You_picked_the_wrong_guy_to_fuck_with", "23232523233334261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  1216. End Select
  1217. If B2SOn Then Controller.B2SSetGameOver 1
  1218. Dim tmp
  1219. tmp = Score(1)
  1220. If Score(2)> tmp Then tmp = Score(2)
  1221. If Score(3)> tmp Then tmp = Score(3)
  1222. If Score(4)> tmp Then tmp = Score(4)
  1223.  
  1224. If tmp> HighScore(1) Then 'add 1 credit for beating the highscore
  1225. credits = credits + 1
  1226. If Credits = 1 then
  1227. DOF 132, DOFOn
  1228. End If
  1229. End If
  1230.  
  1231. If tmp> HighScore(3) Then
  1232. PlaySound SoundFXDOF("fx_knocker", 134, DOFPulse, DOFKnocker)
  1233. HighScore(3) = tmp
  1234. 'enter player's name
  1235. HighScoreEntryInit()
  1236. Else
  1237. GameOver_Part2
  1238. End If
  1239.  
  1240. End Sub
  1241.  
  1242. Sub GameOver_Part2
  1243. Savehs
  1244. GameStarted = 0
  1245. AllLampsOff
  1246. GiOff
  1247. LeftFlipper.RotateToStart
  1248. RightFlipper.RotateToStart
  1249. AttractMode_On
  1250. Players = 0
  1251. Player = 0
  1252. StopSong
  1253. End Sub
  1254.  
  1255. '************************
  1256. ' Play Musics MP3 version
  1257. '************************
  1258.  
  1259. Dim SongPlaying
  1260.  
  1261. Sub PlaySong(sng)
  1262. If MusicOn Then
  1263. If SongPlaying <> sng Then
  1264. PlayMusic sng
  1265. SongPlaying = sng
  1266. End If
  1267. End If
  1268. End Sub
  1269.  
  1270. Sub table1_MusicEnded 'repeats the same song again
  1271. SongPlaying = ""
  1272. PlayTheme
  1273. End Sub
  1274.  
  1275. Sub StopSong 'stop current song
  1276. SongPlaying = ""
  1277. EndMusic
  1278. End Sub
  1279.  
  1280. Sub PlayTheme 'select a song depending of the mode
  1281. If SideEventStarted Then
  1282. ' Select Case SideEventNr
  1283. ' Case 1:PlaySong "scarface_SEHU.mp3"
  1284. ' Case 2:PlaySong "scarface_SEH.mp3"
  1285. ' Case 3:PlaySong "scarface_MB.mp3"
  1286. ' Case 4:PlaySong "scarface_SEY.mp3"
  1287. ' Case 5:PlaySong "scarface_SEHU.mp3"
  1288. ' End Select
  1289.  
  1290. Exit Sub
  1291. End If
  1292.  
  1293. If EventStarted Then
  1294. ' Select Case EventStarted
  1295. ' Case 1:PlaySong "scarface_ME1.mp3"
  1296. ' Case 2:PlaySong "scarface_ME2.mp3"
  1297. ' Case 3:PlaySong "scarface_ME3.mp3"
  1298. ' Case 4:PlaySong "scarface_ME4.mp3"
  1299. ' Case 5:PlaySong "scarface_ME5.mp3"
  1300. ' Case 6:PlaySong "scarface_ME6.mp3"
  1301. ' Case 7:PlaySong "scarface_ME7.mp3"
  1302. ' Case 8:PlaySong "scarface_ME8.mp3"
  1303. ' Case 9:PlaySong "scarface_ME9.mp3"
  1304. ' Case 10:PlaySong "scarface_ME10.mp3"
  1305. ' Case 11:PlaySong "scarface_ME11.mp3"
  1306. ' End Select
  1307. Else
  1308. ' PlaySong "scarface_NOE.mp3"
  1309. End If
  1310.  
  1311. End Sub
  1312.  
  1313. '***********************
  1314. ' Ramp Helpers & Others
  1315. '***********************
  1316.  
  1317. Sub RHelp1_Hit()
  1318. StopSound "Wire Ramp"
  1319.  
  1320. End Sub
  1321.  
  1322. Sub RHelp2_Hit()
  1323. StopSound "Wire Ramp"
  1324.  
  1325. End Sub
  1326.  
  1327. Sub RHelp3_Hit()
  1328. RotRounds = 0
  1329. TurnTableOn
  1330. StopSound "Wire Ramp"
  1331.  
  1332. SetLamp 5, 1, 2, 4
  1333. LockPost.IsDropped = 0:DOF 135, DOFPulse
  1334. If YeyoStarted Then
  1335. StartRightRampJackpot
  1336. End If
  1337. End Sub
  1338.  
  1339.  
  1340. '*****************
  1341. ' Display Credits
  1342. '*****************
  1343.  
  1344. Sub DisplayCredits
  1345. DisplayFlushQueue()
  1346. DD CenterTop("CREDITS " &Credits), "-", "", eNone, eNone, 0, 500, True, ""
  1347. If GameStarted = 0 Then ShowTableInfo
  1348. End Sub
  1349.  
  1350. '*****************
  1351. ' Scores AND Bonus
  1352. '*****************
  1353.  
  1354. Dim Score(4), Bonus, BonusCount, BonusMultiplier, BonusHeld
  1355. Dim HighScore(4), HighScoreName(4)
  1356. Dim JackpotValue, Goal1, Goal2, Made1(4), Made2(4)
  1357.  
  1358. Sub AddScore(sumtoadd)
  1359. If NOT Tilted Then
  1360. Score(player) = Score(player) + sumtoadd ' * (xMultiplier) * SpecialMultiplier
  1361. If EndWinEvent11Delay Then Exit Sub 'do not display the score while animating the end.
  1362. If EventStarted Then
  1363. UpdateEventsDMD
  1364. Else
  1365. DisplayScore
  1366. End If
  1367. ' Extra Ball check
  1368. If Score(player)> Goal1 Then
  1369. If Made1(player) = False Then:Made1(player) = True:GiveExtraBall():End If
  1370. End If
  1371. If Score(player)> Goal2 Then
  1372. If Made2(player) = False Then Made2(player) = True:GiveExtraBall():End If
  1373. End If
  1374. End If
  1375. End Sub
  1376.  
  1377. Sub ResetHighscore
  1378. HighScore(0) = 6000000
  1379. HighScoreName(0) = "HAS"
  1380. HighScore(1) = 5500000
  1381. HighScoreName(1) = "JPS"
  1382. HighScore(2) = 4000000
  1383. HighScoreName(2) = "DWS"
  1384. HighScore(3) = 3500000
  1385. HighScoreName(3) = "SOF"
  1386. JackpotValue = 3000000
  1387. savehs
  1388. End Sub
  1389.  
  1390. Sub AddBonus(sumtoadd)
  1391. If NOT Tilted Then
  1392. Bonus = Bonus + sumtoadd
  1393. DisplayBottom 0
  1394. End If
  1395. End Sub
  1396.  
  1397. Sub AddBonusMultiplier 'Increment the BonusMultiplier by 1
  1398. If NOT Tilted Then
  1399. BonusMultiplier = BonusMultiplier + 1
  1400. DisplayBottom 0
  1401. End If
  1402. End Sub
  1403.  
  1404. '************
  1405. ' GI Effects
  1406. '************
  1407.  
  1408. Sub GiOn
  1409. dim xx
  1410. For each xx in GI:xx.State = 1: Next
  1411. PlaySound "fx_relay"
  1412. DOF 138, DOFOn
  1413. End Sub
  1414.  
  1415. Sub GiOff
  1416. dim xx
  1417. For each xx in GI:xx.State = 0: Next
  1418. PlaySound "fx_relay"
  1419. DOF 138, DOFOff
  1420. End Sub
  1421.  
  1422. '*****************************
  1423. ' Load / Save / Highscore
  1424. '*****************************
  1425.  
  1426. Sub Loadhs
  1427. Dim x
  1428. x = LoadValue("scarface", "HighScore1")
  1429. If(x <> "") Then HighScore(0) = CDbl(x) Else HighScore(0) = 6000000 End If
  1430.  
  1431. x = LoadValue("scarface", "HighScore1Name")
  1432. If(x <> "") Then HighScoreName(0) = x Else HighScoreName(0) = "HAS" End If
  1433.  
  1434. x = LoadValue("scarface", "HighScore2")
  1435. If(x <> "") then HighScore(1) = CDbl(x) Else HighScore(1) = 5500000 End If
  1436.  
  1437. x = LoadValue("scarface", "HighScore2Name")
  1438. If(x <> "") then HighScoreName(1) = x Else HighScoreName(1) = "JPS" End If
  1439.  
  1440. x = LoadValue("scarface", "HighScore3")
  1441. If(x <> "") then HighScore(2) = CDbl(x) Else HighScore(2) = 5000000 End If
  1442.  
  1443. x = LoadValue("scarface", "HighScore3Name")
  1444. If(x <> "") then HighScoreName(2) = x Else HighScoreName(2) = "DWS" End If
  1445.  
  1446. x = LoadValue("scarface", "HighScore4")
  1447. If(x <> "") then HighScore(3) = CDbl(x) Else HighScore(3) = 4500000 End If
  1448.  
  1449. x = LoadValue("scarface", "HighScore4Name")
  1450. If(x <> "") then HighScoreName(3) = x Else HighScoreName(3) = "SOF" End If
  1451.  
  1452. x = LoadValue("scarface", "credits")
  1453. If(x <> "") then Credits = CInt(x) Else Credits = 0 End If
  1454. End Sub
  1455.  
  1456. Sub Savehs
  1457. SaveValue "scarface", "HighScore1", HighScore(0)
  1458. SaveValue "scarface", "HighScore1Name", HighScoreName(0)
  1459. SaveValue "scarface", "HighScore2", HighScore(1)
  1460. SaveValue "scarface", "HighScore2Name", HighScoreName(1)
  1461. SaveValue "scarface", "HighScore3", HighScore(2)
  1462. SaveValue "scarface", "HighScore3Name", HighScoreName(2)
  1463. SaveValue "scarface", "HighScore4", HighScore(3)
  1464. SaveValue "scarface", "HighScore4Name", HighScoreName(3)
  1465. SaveValue "scarface", "Credits", Credits
  1466. End Sub
  1467.  
  1468. ' ***********************************************************
  1469. ' High Score Initals Entry Functions - based on Black's code
  1470. ' ***********************************************************
  1471.  
  1472. Dim hsbModeActive
  1473. Dim hsEnteredName
  1474. Dim hsEnteredDigits(3)
  1475. Dim hsCurrentDigit
  1476. Dim hsValidLetters
  1477. Dim hsCurrentLetter
  1478. Dim hsLetterFlash
  1479.  
  1480. Sub HighScoreEntryInit()
  1481. hsbModeActive = True
  1482. hsLetterFlash = 0
  1483.  
  1484. hsEnteredDigits(0) = " "
  1485. hsEnteredDigits(1) = " "
  1486. hsEnteredDigits(2) = " "
  1487. hsCurrentDigit = 0
  1488.  
  1489. hsValidLetters = " ABCDEFGHIJKLMNOPQRSTUVWXYZ'<>*+-/=\^0123456789`" ' ` is back arrow
  1490. hsCurrentLetter = 1
  1491. DisplayFlushQueue()
  1492. HighScoreDisplayNameNow()
  1493.  
  1494. HighScoreFlashTimer.Interval = 250
  1495. HighScoreFlashTimer.Enabled = True
  1496. End Sub
  1497.  
  1498. Sub HighScoreProcessKey(keycode)
  1499. If keycode = LeftFlipperKey Then
  1500. playsound "fx_Previous"
  1501. hsCurrentLetter = hsCurrentLetter - 1
  1502. if(hsCurrentLetter = 0) then
  1503. hsCurrentLetter = len(hsValidLetters)
  1504. end if
  1505. HighScoreDisplayNameNow()
  1506. End If
  1507.  
  1508. If keycode = RightFlipperKey Then
  1509. playsound "fx_Next"
  1510. hsCurrentLetter = hsCurrentLetter + 1
  1511. if(hsCurrentLetter> len(hsValidLetters) ) then
  1512. hsCurrentLetter = 1
  1513. end if
  1514. HighScoreDisplayNameNow()
  1515. End If
  1516.  
  1517. If keycode = PlungerKey Then
  1518. if(mid(hsValidLetters, hsCurrentLetter, 1) <> "`") then
  1519. playsound "fx_Enter"
  1520. hsEnteredDigits(hsCurrentDigit) = mid(hsValidLetters, hsCurrentLetter, 1)
  1521. hsCurrentDigit = hsCurrentDigit + 1
  1522. if(hsCurrentDigit = 3) then
  1523. HighScoreCommitName()
  1524. else
  1525. HighScoreDisplayNameNow()
  1526. end if
  1527. else
  1528. playsound "fx_Esc"
  1529. hsEnteredDigits(hsCurrentDigit) = " "
  1530. if(hsCurrentDigit> 0) then
  1531. hsCurrentDigit = hsCurrentDigit - 1
  1532. end if
  1533. HighScoreDisplayNameNow()
  1534. end if
  1535. end if
  1536. End Sub
  1537.  
  1538. Sub HighScoreDisplayNameNow()
  1539. HighScoreFlashTimer.Enabled = False
  1540. hsLetterFlash = 0
  1541. HighScoreDisplayName()
  1542. HighScoreFlashTimer.Enabled = True
  1543. End Sub
  1544.  
  1545. Sub HighScoreDisplayName()
  1546. Dim i
  1547. Dim TempTopStr
  1548. Dim TempBotStr
  1549.  
  1550. TempTopStr = "ENTER YOUR NAME "
  1551. DispCurrentTopLine = TempTopStr
  1552. DMDTop TempTopStr
  1553.  
  1554. TempBotStr = " > "
  1555. if(hsCurrentDigit> 0) then TempBotStr = TempBotStr & hsEnteredDigits(0)
  1556. if(hsCurrentDigit> 1) then TempBotStr = TempBotStr & hsEnteredDigits(1)
  1557. if(hsCurrentDigit> 2) then TempBotStr = TempBotStr & hsEnteredDigits(2)
  1558.  
  1559. if(hsCurrentDigit <> 3) then
  1560. if(hsLetterFlash <> 0) then
  1561. TempBotStr = TempBotStr & "_"
  1562. else
  1563. TempBotStr = TempBotStr & mid(hsValidLetters, hsCurrentLetter, 1)
  1564. end if
  1565. end if
  1566.  
  1567. if(hsCurrentDigit <1) then TempBotStr = TempBotStr & hsEnteredDigits(1)
  1568. if(hsCurrentDigit <2) then TempBotStr = TempBotStr & hsEnteredDigits(2)
  1569.  
  1570. TempBotStr = TempBotStr & " < "
  1571. DispCurrentBottomLine = TempBotStr
  1572. DMDBottom TempBotStr
  1573. End Sub
  1574.  
  1575. Sub HighScoreFlashTimer_Timer()
  1576. HighScoreFlashTimer.Enabled = False
  1577. hsLetterFlash = hsLetterFlash + 1
  1578. if(hsLetterFlash = 2) then hsLetterFlash = 0
  1579. HighScoreDisplayName()
  1580. HighScoreFlashTimer.Enabled = True
  1581. End Sub
  1582.  
  1583. Sub HighScoreCommitName()
  1584. HighScoreFlashTimer.Enabled = False
  1585. hsbModeActive = False
  1586. hsEnteredName = hsEnteredDigits(0) & hsEnteredDigits(1) & hsEnteredDigits(2)
  1587. if(hsEnteredName = " ") then
  1588. hsEnteredName = "JPS"
  1589. end if
  1590.  
  1591. HighScoreName(3) = hsEnteredName
  1592. SortHighscore
  1593. GameOver_Part2
  1594. End Sub
  1595.  
  1596. Sub SortHighscore
  1597. Dim tmp, tmp2, i, j
  1598. For i = 0 to 3
  1599. For j = 0 to 2
  1600. If HighScore(j) <HighScore(j + 1) Then
  1601. tmp = HighScore(j + 1)
  1602. tmp2 = HighScoreName(j + 1)
  1603. HighScore(j + 1) = HighScore(j)
  1604. HighScoreName(j + 1) = HighScoreName(j)
  1605. HighScore(j) = tmp
  1606. HighScoreName(j) = tmp2
  1607. End If
  1608. Next
  1609. Next
  1610. End Sub
  1611.  
  1612. ' *********************************************************************
  1613. ' Easy Display Driver Functions (based on script by Black)
  1614. ' only 5 effects: none, scroll left, scroll right, blink and fast blink
  1615. ' JP: added support for DMD images and animations
  1616. ' *********************************************************************
  1617.  
  1618. Const dcTopCHARSPERLINE = 10
  1619. Const dcBottomCHARSPERLINE = 16
  1620.  
  1621. Const eNone = 0 ' Instantly displayed
  1622. Const eScrollLeft = 1 ' scroll on from the right
  1623. Const eScrollRight = 2 ' scroll on from the left
  1624. Const eBlink = 3 ' Blink (blinks for 'TimeOn')
  1625. Const eBlinkFast = 4 ' Blink (blinks for 'TimeOn') at user specified intervals (fast speed)
  1626.  
  1627. Dim DispQueueSize
  1628. Dim DispQueueHead
  1629. Dim DispQueueTail
  1630. Dim DisplayTopBlankLine
  1631. Dim DisplayBottomBlankLine
  1632. Dim DispCurrentTopLine
  1633. Dim DispCurrentBottomLine
  1634. Dim DispCurrentBottomLine2
  1635. Dim DispSwapBottomLine
  1636. Dim DispEffectCountT1
  1637. Dim DispEffectCountT1End
  1638. Dim DispEffectBlinkCycleT1
  1639. Dim DispEffectCountT2
  1640. Dim DispEffectCountT2End
  1641. Dim DispEffectCountT2Dly
  1642. Dim DispEffectSpeed
  1643. Dim DispEffectBlinkSlowRate
  1644. Dim DispEffectBlinkFastRate
  1645. Dim DispEffectBlinkCycleT2
  1646. Dim DispQueueText1(64)
  1647. Dim DispQueueText2(64)
  1648. Dim DispQueueText3(64)
  1649. Dim DispQueueEffectOnT1(64)
  1650. Dim DispQueueEffectOnT2(64)
  1651. Dim DispQueueEffectOnT2Dly(64)
  1652. Dim DispQueueTimeOn(64)
  1653. Dim DispQueuebFlush(64)
  1654. Dim DispQueueSound(64)
  1655.  
  1656. Sub DisplayInit(EffectSpeed, SlowBlinkRate, QuickBlinkRate)
  1657. Dim i
  1658. DispQueueSize = 64
  1659. DisplayFlushQueue()
  1660. DispEffectSpeed = EffectSpeed
  1661. DispEffectBlinkSlowRate = SlowBlinkRate
  1662. DispEffectBlinkFastRate = QuickBlinkRate
  1663. DisplayTopBlankLine = Space(dcTopCHARSPERLINE)
  1664. DisplayBottomBlankLine = Space(dcBottomCHARSPERLINE)
  1665. DispCurrentTopLine = DisplayTopBlankLine
  1666. DispCurrentBottomLine = DisplayBottomBlankLine
  1667. DispSwapBottomLine = 0
  1668. DMDTop DispCurrentTopLine
  1669. DMDBottom DispCurrentBottomLine
  1670. End Sub
  1671.  
  1672. Sub DisplayFlushQueue()
  1673. DisplayTimer.Enabled = False
  1674. DisplayEffectTimer.Enabled = False
  1675. DispQueueHead = 0
  1676. DispQueueTail = 0
  1677. DispEffectCountT1 = 0
  1678. DispEffectCountT1End = 0
  1679. DispEffectBlinkCycleT1 = 0
  1680. DispEffectCountT2 = 0
  1681. DispEffectCountT2End = 0
  1682. DispEffectCountT2Dly = 0
  1683. DispEffectBlinkCycleT2 = 0
  1684. ActivateAnimationFrame 0
  1685. End Sub
  1686.  
  1687. Sub DisplayTop(EffectOnT1) 'only updates the top line
  1688. DD CenterTop(FormatScore(Score(player) ) ), "-", "", EffectOnT1, eNone, 0, 25, True, ""
  1689. End Sub
  1690.  
  1691. Sub DisplayBottom(EffectOnT1) 'In this table is only used to display the bonus hits
  1692. DisplayFlushQueue
  1693. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom(FormatScore(Bonus) & " X" &BonusMultiplier), "", eNone, EffectOnT1, 0, 150, True, ""
  1694. End Sub
  1695.  
  1696. Function DisplayGetQueueSize()
  1697. DisplayGetQueueSize = DispQueueTail - DispQueueHead
  1698. End Function
  1699.  
  1700. Sub DD(Text1, Text2, Text3, EffectOnT1, EffectOnT2, DelayT2, TimeOn, bFlush, Sound)
  1701. if(DispQueueTail <DispQueueSize) Then
  1702. if(Text1 = "-") Then EffectOnT1 = eNone
  1703. if(Text2 = "-") Then EffectOnT2 = eNone
  1704. Text1 = Ucase(Text1)
  1705. Text2 = Ucase(Text2)
  1706. DispQueueText1(DispQueueTail) = Text1
  1707. DispQueueText2(DispQueueTail) = Text2
  1708. DispQueueText3(DispQueueTail) = Text3
  1709. DispQueueEffectOnT1(DispQueueTail) = EffectOnT1
  1710. DispQueueEffectOnT2(DispQueueTail) = EffectOnT2
  1711. DispQueueEffectOnT2Dly(DispQueueTail) = DelayT2
  1712. DispQueueTimeOn(DispQueueTail) = TimeOn
  1713. DispQueuebFlush(DispQueueTail) = bFlush
  1714. DispQueueSound(DispQueueTail) = Sound
  1715. DispQueueTail = DispQueueTail + 1
  1716. if(DispQueueTail = 1) Then
  1717. DisplayHead()
  1718. End If
  1719. End If
  1720. End Sub
  1721.  
  1722. Sub DisplayHead()
  1723. DispEffectCountT1 = 0
  1724. DispEffectCountT2 = 0
  1725. DisplayEffectTimer.Interval = DispEffectSpeed
  1726. DispEffectCountT2Dly = DispQueueEffectOnT2Dly(DispQueueHead)
  1727.  
  1728. Select Case(DispQueueEffectOnT1(DispQueueHead) )
  1729. Case eNone:DispEffectCountT1End = 1
  1730. Case eScrollLeft:DispEffectCountT1End = Len(DispQueueText1(DispQueueHead) )
  1731. Case eScrollRight:DispEffectCountT1End = Len(DispQueueText1(DispQueueHead) )
  1732. Case eBlink:DispEffectCountT1End = int(DispQueueTimeOn(DispQueueHead) / DispEffectSpeed)
  1733. DispEffectBlinkCycleT1 = 0
  1734. Case eBlinkFast:DispEffectCountT1End = int(DispQueueTimeOn(DispQueueHead) / DispEffectSpeed)
  1735. DispEffectBlinkCycleT1 = 0
  1736. End Select
  1737.  
  1738. Select Case(DispQueueEffectOnT2(DispQueueHead) )
  1739. Case eNone:DispEffectCountT2End = 1
  1740. Case eScrollLeft:DispEffectCountT2End = Len(DispQueueText2(DispQueueHead) )
  1741. Case eScrollRight:DispEffectCountT2End = Len(DispQueueText2(DispQueueHead) )
  1742. Case eBlink:DispEffectCountT2End = int(DispQueueTimeOn(DispQueueHead) / DispEffectSpeed)
  1743. DispEffectBlinkCycleT2 = 0
  1744. Case eBlinkFast:DispEffectCountT2End = int(DispQueueTimeOn(DispQueueHead) / DispEffectSpeed)
  1745. DispEffectBlinkCycleT2 = 0
  1746. End Select
  1747.  
  1748. If DispQueueText3(DispQueueHead) <> "" Then
  1749. ActivateAnimationFrame 1
  1750. DMDAnim DispQueueText3(DispQueueHead)
  1751. Else
  1752. ActivateAnimationFrame 0
  1753. End If
  1754.  
  1755. if(DispQueueSound(DispQueueHead) <> "") Then
  1756. PlaySound(DispQueueSound(DispQueueHead) )
  1757. End If
  1758. DisplayEffectTimer.Enabled = True
  1759. End Sub
  1760.  
  1761. Sub DisplayScoreNow()
  1762. DisplayFlushQueue()
  1763. DisplayScore()
  1764. End Sub
  1765.  
  1766. Sub DisplayScore()
  1767. Dim tmp
  1768. if(DispQueueHead = DispQueueTail) Then
  1769. DispCurrentTopLine = CenterTop(FormatScore(Score(player) ) )
  1770. DMDTop DispCurrentTopLine
  1771. DispCurrentBottomLine = "PLAYER " & Player & " BALL " &Chr(Balls + 48)
  1772. DMDBottom DispCurrentBottomLine
  1773. End If
  1774. End Sub
  1775.  
  1776. Sub DisplayEffectTimer_Timer()
  1777. DisplayEffectTimer.Enabled = False
  1778. DisplayProcessEffectOn()
  1779. End Sub
  1780.  
  1781. Sub DisplayTimer_Timer()
  1782. ' B2S *******************************************************************************
  1783. If B2SCurrentFrame <> "" and B2SOn Then
  1784. Controller.B2SSetData B2SCurrentFrame, 0
  1785. B2SCurrentFrame = ""
  1786. End If
  1787. ' B2S *******************************************************************************
  1788. Dim Head
  1789. DisplayTimer.Enabled = False
  1790. Head = DispQueueHead
  1791. DispQueueHead = DispQueueHead + 1
  1792. if(DispQueueHead = DispQueueTail) Then
  1793. if(DispQueuebFlush(Head) = True) Then
  1794. DisplayFlushQueue()
  1795. DisplayScore()
  1796. Else
  1797. DispQueueHead = 0
  1798. DisplayHead()
  1799. End If
  1800. Else
  1801. DisplayHead()
  1802. End If
  1803. End Sub
  1804.  
  1805. Sub DisplayProcessEffectOn()
  1806. Dim i
  1807. Dim BlinkEffect
  1808. Dim TempTopStr
  1809. Dim TempBottomStr
  1810. Dim TempLeftStr
  1811. Dim TempRightStr
  1812. Dim MaskCharacter
  1813.  
  1814. BlinkEffect = False
  1815.  
  1816. TempLeftStr = ""
  1817. TempRightStr = ""
  1818.  
  1819. if(DispEffectCountT1 <> DispEffectCountT1End) Then
  1820. DispEffectCountT1 = DispEffectCountT1 + 1
  1821.  
  1822. select case(DispQueueEffectOnT1(DispQueueHead) )
  1823. case eNone:
  1824. TempTopStr = DispQueueText1(DispQueueHead)
  1825. case eScrollLeft:
  1826. TempTopStr = Right(DispCurrentTopLine, dcTopCHARSPERLINE - 1)
  1827. TempTopStr = TempTopStr & Mid(DispQueueText1(DispQueueHead), DispEffectCountT1, 1)
  1828. case eScrollRight:
  1829. TempTopStr = Mid(DispQueueText1(DispQueueHead), (dcTopCHARSPERLINE + 1) - DispEffectCountT1, 1)
  1830. TempTopStr = TempTopStr & Left(DispCurrentTopLine, dcTopCHARSPERLINE - 1)
  1831. case eBlink:
  1832. BlinkEffect = True
  1833. if((DispEffectCountT1 MOD DispEffectBlinkSlowRate) = 0) Then
  1834. DispEffectBlinkCycleT1 = DispEffectBlinkCycleT1 xor 1
  1835. End If
  1836.  
  1837. if(DispEffectBlinkCycleT1 = 0) Then
  1838. TempTopStr = DispQueueText1(DispQueueHead)
  1839. Else
  1840. TempTopStr = DisplayTopBlankLine
  1841. End If
  1842. case eBlinkFast:
  1843. BlinkEffect = True
  1844. if((DispEffectCountT1 MOD DispEffectBlinkFastRate) = 0) Then
  1845. DispEffectBlinkCycleT1 = DispEffectBlinkCycleT1 xor 1
  1846. End If
  1847.  
  1848. if(DispEffectBlinkCycleT1 = 0) Then
  1849. TempTopStr = DispQueueText1(DispQueueHead)
  1850. Else
  1851. TempTopStr = DisplayTopBlankLine
  1852. End If
  1853. End Select
  1854.  
  1855. if(DispQueueText1(DispQueueHead) <> "-") Then
  1856. if(Len(TempTopStr)> dcTopCHARSPERLINE) Then
  1857. TempTopStr = Left(TempTopStr, dcTopCHARSPERLINE)
  1858. Else
  1859. if(Len(TempTopStr) <dcTopCHARSPERLINE) Then
  1860. TempTopStr = TempTopStr & Space(dcTopCHARSPERLINE-Len(TempTopStr) )
  1861. End If
  1862. End If
  1863. DispCurrentTopLine = TempTopStr
  1864. DMDTop DispCurrentTopLine
  1865. End If
  1866. End If
  1867.  
  1868. TempLeftStr = ""
  1869. TempRightStr = ""
  1870.  
  1871. if(DispEffectCountT2 <> DispEffectCountT2End) Then
  1872. if(DispEffectCountT2Dly = 0) Then
  1873. DispEffectCountT2 = DispEffectCountT2 + 1
  1874. select case(DispQueueEffectOnT2(DispQueueHead) )
  1875. case eNone:
  1876. TempBottomStr = DispQueueText2(DispQueueHead)
  1877. case eScrollLeft:
  1878. TempBottomStr = Right(DispCurrentBottomLine, dcBottomCHARSPERLINE - 1)
  1879. TempBottomStr = TempBottomStr & Mid(DispQueueText2(DispQueueHead), DispEffectCountT2, 1)
  1880. case eScrollRight:
  1881. TempBottomStr = Mid(DispQueueText2(DispQueueHead), (dcBottomCHARSPERLINE + 1) - DispEffectCountT2, 1)
  1882. TempBottomStr = TempBottomStr & Left(DispCurrentBottomLine, dcBottomCHARSPERLINE - 1)
  1883. case eBlink:
  1884. BlinkEffect = True
  1885. if((DispEffectCountT2 MOD DispEffectBlinkSlowRate) = 0) Then
  1886. DispEffectBlinkCycleT2 = DispEffectBlinkCycleT2 xor 1
  1887. End If
  1888.  
  1889. if(DispEffectBlinkCycleT2 = 0) Then
  1890. TempBottomStr = DispQueueText2(DispQueueHead)
  1891. Else
  1892. TempBottomStr = DisplayTopBlankLine
  1893. End If
  1894. case eBlinkFast:
  1895. BlinkEffect = True
  1896. if((DispEffectCountT2 MOD DispEffectBlinkFastRate) = 0) Then
  1897. DispEffectBlinkCycleT2 = DispEffectBlinkCycleT2 xor 1
  1898. End If
  1899.  
  1900. if(DispEffectBlinkCycleT2 = 0) Then
  1901. TempBottomStr = DispQueueText2(DispQueueHead)
  1902. Else
  1903. TempBottomStr = DisplayBottomBlankLine
  1904. End If
  1905. End Select
  1906. if(DispQueueText2(DispQueueHead) <> "-") Then
  1907. if(Len(TempBottomStr)> dcBottomCHARSPERLINE) Then TempBottomStr = Left(TempBottomStr, dcBottomCHARSPERLINE)
  1908. if(Len(TempBottomStr) <dcBottomCHARSPERLINE) Then TempBottomStr = TempBottomStr & Space(dcBottomCHARSPERLINE-Len(TempBottomStr) )
  1909. DispCurrentBottomLine = TempBottomStr
  1910. DMDBottom DispCurrentBottomLine
  1911. End If
  1912. Else
  1913. DispEffectCountT2Dly = DispEffectCountT2Dly - 1
  1914. End If
  1915. End If
  1916.  
  1917. if(DispEffectCountT1 = DispEffectCountT1End) and(DispEffectCountT2 = DispEffectCountT2End) Then
  1918.  
  1919. if(DispQueueTimeOn(DispQueueHead) = 0) Then
  1920. DisplayFlushQueue()
  1921. Else
  1922. if(BlinkEffect = True) Then
  1923. DisplayTimer.Interval = 10
  1924. Else
  1925. DisplayTimer.Interval = DispQueueTimeOn(DispQueueHead)
  1926. End If
  1927.  
  1928. DisplayTimer.Enabled = True
  1929. End If
  1930. Else
  1931. DisplayEffectTimer.Enabled = True
  1932. End If
  1933. End Sub
  1934.  
  1935. Function FormatScore(ByVal Num) 'it returns a string with commas as defined in Black's original font
  1936. dim i
  1937. dim NumString
  1938.  
  1939. NumString = CStr(abs(Num) )
  1940.  
  1941. For i = Len(NumString) -3 to 1 step -3
  1942. if IsNumeric(mid(NumString, i, 1) ) then
  1943. NumString = left(NumString, i-1) &chr(asc(mid(NumString, i, 1) ) + 144) &right(NumString, Len(NumString) - i)
  1944. end if
  1945. Next
  1946. FormatScore = NumString
  1947. End function
  1948.  
  1949. Function CenterTop(NumString)
  1950. Dim tmp
  1951. tmp = (dcTopCHARSPERLINE - Len(NumString) ) \ 2
  1952. CenterTop = Space(tmp) & NumString & Space(tmp)
  1953. End Function
  1954.  
  1955. Function CenterBottom(NumString)
  1956. Dim tmp
  1957. tmp = (dcBottomCHARSPERLINE - Len(NumString) ) \ 2
  1958. CenterBottom = Space(tmp) & NumString & Space(tmp)
  1959. End Function
  1960.  
  1961. '***********
  1962. ' JP's DMD
  1963. '***********
  1964. Dim Digits, Chars(255)
  1965.  
  1966. Sub DMDInit
  1967.  
  1968.  
  1969. If B2SOn Then
  1970. Controller.B2SSetLED 5, 63
  1971. Controller.B2SSetLED 25, 63
  1972. End If
  1973.  
  1974. Dim i
  1975. Digits = Array(digit0, digit1, digit2, digit3, digit4, digit5, digit6, digit7, digit8, digit9, digit10, digit11, _
  1976. digit12, digit13, digit14, digit15, digit16, digit17, digit18, digit19, digit20, digit21, digit22, digit23, digit24, digit25)
  1977.  
  1978. For i = 0 to 255:Chars(i) = "dempty":Next
  1979.  
  1980. ' Chars(34) = '"
  1981. ' Chars(36) = '$
  1982. ' Chars(39) = ''
  1983. ' Chars(42) = '*
  1984. ' Chars(43) = '+
  1985. ' Chars(45) = '-
  1986. ' Chars(47) = '/
  1987. Chars(48) = "d0" '0
  1988. Chars(49) = "d1" '1
  1989. Chars(50) = "d2" '2
  1990. Chars(51) = "d3" '3
  1991. Chars(52) = "d4" '4
  1992. Chars(53) = "d5" '5
  1993. Chars(54) = "d6" '6
  1994. Chars(55) = "d7" '7
  1995. Chars(56) = "d8" '8
  1996. Chars(57) = "d9" '9
  1997. ' Chars(60) = '<
  1998. ' Chars(61) = '=
  1999. ' Chars(62) = '>
  2000. ' Chars(64) = '@
  2001. Chars(65) = "da" 'A
  2002. Chars(66) = "db" 'B
  2003. Chars(67) = "dc" 'C
  2004. Chars(68) = "dd" 'D
  2005. Chars(69) = "de" 'E
  2006. Chars(70) = "df" 'F
  2007. Chars(71) = "dg" 'G
  2008. Chars(72) = "dh" 'H
  2009. Chars(73) = "di" 'I
  2010. Chars(74) = "dj" 'J
  2011. Chars(75) = "dk" 'K
  2012. Chars(76) = "dl" 'L
  2013. Chars(77) = "dm" 'M
  2014. Chars(78) = "dn" 'N
  2015. Chars(79) = "do" 'O
  2016. Chars(80) = "dp" 'P
  2017. Chars(81) = "dq" 'Q
  2018. Chars(82) = "dr" 'R
  2019. Chars(83) = "ds" 'S
  2020. Chars(84) = "dt" 'T
  2021. Chars(85) = "du" 'U
  2022. Chars(86) = "dv" 'V
  2023. Chars(87) = "dw" 'W
  2024. Chars(88) = "dx" 'X
  2025. Chars(89) = "dy" 'Y
  2026. Chars(90) = "dz" 'Z
  2027. ' Chars(92) = '\
  2028. ' Chars(94) = '^
  2029. ' Chars(95) = '_
  2030. ' Chars(96) = '`
  2031. Chars(192) = "d0a" '0.
  2032. Chars(193) = "d1a" '1.
  2033. Chars(194) = "d2a" '2.
  2034. Chars(195) = "d3a" '3.
  2035. Chars(196) = "d4a" '4.
  2036. Chars(197) = "d5a" '5.
  2037. Chars(198) = "d6a" '6.
  2038. Chars(199) = "d7a" '7.
  2039. Chars(200) = "d8a" '8.
  2040. Chars(201) = "d9a" '9
  2041.  
  2042. DisplayInit 20, 5, 2
  2043. End Sub
  2044.  
  2045. Sub DMDBottom(astr)
  2046. 'TextBox2.text = astr
  2047. Dim digit
  2048. For digit = 0 to 15
  2049. DMDDisplayChar mid(astr, digit + 1, 1), digit
  2050. If B2SOn Then
  2051. B2SDMDDisplayChar mid(astr, digit + 1, 1), digit
  2052. End If
  2053. Next
  2054.  
  2055. dmdR.State = ABS(dmdR.State -1)
  2056. End Sub
  2057.  
  2058. Sub DMDTop(astr)
  2059. 'TextBox1.text = astr
  2060. Dim digit
  2061. For digit = 16 to 25
  2062. DMDDisplayChar mid(astr, digit-15, 1), digit
  2063. If B2SOn Then
  2064. B2SDMDDisplayChar mid(astr, digit - 16 + 1, 1), digit
  2065. End If
  2066. Next
  2067.  
  2068. dmdR.State = ABS(dmdR.State -1)
  2069. End Sub
  2070.  
  2071. Sub DMDDisplayChar(achar, adigit)
  2072. Dim i
  2073. If achar = "" Then achar = " "
  2074. achar = ASC(achar)
  2075. Digits(adigit).ImageA = Chars(achar)
  2076. End Sub
  2077.  
  2078. ''''''
  2079.  
  2080. Sub B2SDMDDisplayChar(achar, adigit)
  2081. dim ledvalue
  2082. ledvalue = 0
  2083. If achar = "" Then achar = " "
  2084. achar = ASC(achar)
  2085. Select Case achar
  2086. ' 0
  2087. Case 48: ledvalue = 1+2+4+8+16+32
  2088. Case 49: ledvalue = 2+4+1024
  2089. Case 50: ledvalue = 1+2+8+16+64+2048
  2090. Case 51: ledvalue = 1+2+4+8+2048
  2091. Case 52: ledvalue = 2+4+32+64+2048
  2092. ' 5
  2093. Case 53: ledvalue = 1+4+8+32+64+2048
  2094. Case 54: ledvalue = 1+4+8+16+32+64+2048
  2095. Case 55: ledvalue = 1+2+4
  2096. Case 56: ledvalue = 1+2+4+8+16+32+64+2048
  2097. Case 57: ledvalue = 1+2+4+8+32+64+2048
  2098. ' A
  2099. Case 65: ledvalue = 1+2+4+16+32+64+2048
  2100. Case 66: ledvalue = 1+2+4+8+512+2048+8192
  2101. Case 67: ledvalue = 1+8+16+32
  2102. Case 68: ledvalue = 1+2+4+8+512+8192
  2103. Case 69: ledvalue = 1+8+16+32+64
  2104. ' F
  2105. Case 70: ledvalue = 1+16+32+64
  2106. Case 71: ledvalue = 1+4+8+16+32+2048
  2107. Case 72: ledvalue = 2+4+16+32+64+2048
  2108. Case 73: ledvalue = 1+8+512+8192
  2109. Case 74: ledvalue = 2+4+8+16
  2110. ' K
  2111. Case 75: ledvalue = 16+32+64+1024+4096
  2112. Case 76: ledvalue = 8+16+32
  2113. Case 77: ledvalue = 2+4+16+32+256+1024
  2114. Case 78: ledvalue = 2+4+16+32+256+4096
  2115. Case 79: ledvalue = 1+2+4+8+16+32
  2116. ' P
  2117. Case 80: ledvalue = 1+2+16+32+64+2048
  2118. Case 81: ledvalue = 1+2+4+8+16+32+4096
  2119. Case 82: ledvalue = 1+2+16+32+64+2048+4096
  2120. Case 83: ledvalue = 1+4+8+32+64+2048
  2121. Case 84: ledvalue = 1+512+8192
  2122. ' U
  2123. Case 85: ledvalue = 2+4+8+16+32
  2124. Case 86: ledvalue = 16+32+1024+16384
  2125. Case 87: ledvalue = 2+4+16+32+4096+16384
  2126. Case 88: ledvalue = 256+1024+4096+16384
  2127. Case 89: ledvalue = 256+1024+8192
  2128. ' Z
  2129. Case 90: ledvalue = 1+8+1024+16384
  2130. ' 0.
  2131. Case 192: ledvalue = 1+2+4+8+16+32+128
  2132. Case 193: ledvalue = 2+4+1024+128
  2133. Case 194: ledvalue = 1+2+8+16+64+2048+128
  2134. Case 195: ledvalue = 1+2+4+8+2048+128
  2135. Case 196: ledvalue = 2+4+32+64+2048+128
  2136. ' 5.
  2137. Case 197: ledvalue = 1+4+8+32+64+2048+128
  2138. Case 198: ledvalue = 1+4+8+16+32+64+2048+128
  2139. Case 199: ledvalue = 1+2+4+128
  2140. Case 200: ledvalue = 1+2+4+8+16+32+64+2048+128
  2141. Case 201: ledvalue = 1+2+4+8+32+64+2048+128
  2142. '
  2143. Case Else: ledvalue = 0
  2144. End Select
  2145. If B2SOn Then Controller.B2SSetLED adigit+1, ledvalue
  2146. End Sub
  2147. ' B2S *******************************************************************************
  2148.  
  2149. ''''''
  2150. Sub ActivateAnimationFrame(Enabled) 'switch the normal score display and teh animation display
  2151. Dim i
  2152. For i = 0 to 25
  2153. Digits(i).visible = Not Enabled
  2154. Next
  2155.  
  2156. digit26.visible = Enabled
  2157.  
  2158. If B2SOn Then
  2159. If Enabled Then
  2160. Controller.B2SHideScoreDisplays
  2161. Else
  2162. If B2SCurrentFrame <> "" Then
  2163. Controller.B2SSetData B2SCurrentFrame, 0
  2164. B2SCurrentFrame = ""
  2165. End If
  2166. Controller.B2SShowScoreDisplays
  2167. End If
  2168. End If
  2169. End Sub
  2170.  
  2171. Sub DMDAnim(frame)
  2172. digit26.ImageA = frame
  2173. dmdR.State = ABS(dmdR.State -1)
  2174.  
  2175. If B2SOn Then
  2176. B2SCurrentFrame = frame
  2177. Controller.B2SSetData frame, 1
  2178. End If
  2179. End Sub
  2180.  
  2181. ' ********************************
  2182. ' Table info & Attract Mode
  2183. ' ********************************
  2184.  
  2185. Sub ShowTableInfo
  2186. 'PlaySong "scarface_ME1.mp3" '2-10-13 added
  2187. 'DD CenterTop("GAME OVER"), " ", "", eBlink, eNone, 0, 2000, False, ""
  2188. DD "", "", "gameover", eNone, eNone, 0, 200, FALSE, ""
  2189. DD "", "", "", eNone, eNone, 0, 200, FALSE, ""
  2190. DD "", "", "gameover", eNone, eNone, 0, 200, FALSE, ""
  2191. DD "", "", "", eNone, eNone, 0, 200, FALSE, ""
  2192. DD "", "", "gameover", eNone, eNone, 0, 200, FALSE, ""
  2193. DD "", "", "", eNone, eNone, 0, 200, FALSE, ""
  2194. DD "", "", "gameover", eNone, eNone, 0, 200, FALSE, ""
  2195. DD "", "", "", eNone, eNone, 0, 400, FALSE, ""
  2196. If Credits> 0 Then
  2197. DD CenterTop("CREDITS " &Credits), CenterBottom("PRESS START"), "", eNone, eBlink, 0, 2000, FALSE, ""
  2198. Else
  2199. DD CenterTop("CREDITS " &Credits), CenterBottom("INSERT COIN"), "", eNone, eBlink, 0, 2000, FALSE, ""
  2200. End If
  2201. DD CenterTop("JPSALAS"), CenterBottom("AND"), "", eNone, eNone, 0, 2000, False, ""
  2202. DD CenterTop("hassanchop"), CenterBottom("presents"), "", eNone, eNone, 0, 2000, False, ""
  2203. DD "", "", "DMD AM1", eNone, eNone, 0, 200, FALSE, ""
  2204. DD "", "", "DMD AM2", eNone, eNone, 0, 200, FALSE, ""
  2205. DD "", "", "DMD AM3", eNone, eNone, 0, 200, FALSE, ""
  2206. DD "", "", "DMD AM4", eNone, eNone, 0, 200, FALSE, ""
  2207. DD "", "", "DMD AM5", eNone, eNone, 0, 200, FALSE, ""
  2208. DD "", "", "DMD AM6", eNone, eNone, 0, 200, FALSE, ""
  2209. DD "", "", "DMD AM7", eNone, eNone, 0, 2000, FALSE, ""
  2210. DD "", "", "DMD AM8", eNone, eNone, 0, 200, FALSE, ""
  2211. DD "", "", "DMD AM9", eNone, eNone, 0, 200, FALSE, ""
  2212. DD "", "", "DMD AM10", eNone, eNone, 0, 200, FALSE, ""
  2213. DD "", "", "DMD AM11", eNone, eNone, 0, 200, FALSE, ""
  2214. DD "", "", "DMD AM10", eNone, eNone, 0, 200, FALSE, ""
  2215. DD "", "", "DMD AM11", eNone, eNone, 0, 200, FALSE, ""
  2216. DD "", "", "DMD AM10", eNone, eNone, 0, 200, FALSE, ""
  2217. DD "", "", "DMD AM11", eNone, eNone, 0, 200, FALSE, ""
  2218. DD "", "", "DMD AM10", eNone, eNone, 0, 200, FALSE, ""
  2219. DD "", "", "DMD AM11", eNone, eNone, 0, 200, FALSE, ""
  2220. DD "", "", "DMD AM13", eNone, eNone, 0, 2000, FALSE, ""
  2221. DD CenterTop("SCARFACE"), CenterBottom("VERSION " &Version), "", eNone, eNone, 0, 2500, False, ""
  2222. DD SPACE(dcTopCHARSPERLINE), SPACE(dcBottomCHARSPERLINE), "", eScrollLeft, eScrollLeft, 6, 20, False, ""
  2223. DD CenterTop("HIGHSCORES"), SPACE(dcBottomCHARSPERLINE), "", eScrollLeft, eScrollLeft, 0, 20, FALSE, ""
  2224. ' DD CenterTop("HIGHSCORES"), "-", eBlinkFast, eNone, 0, 1000, FALSE, ""
  2225. DD "-", Left("1 " &HighScoreName(0) & " " &FormatScore(HighScore(0) ) & " ", dcBottomCHARSPERLINE), "", eNone, eScrollLeft, 6, 2000, FALSE, ""
  2226. DD "-", Left("2 " &HighScoreName(1) & " " &FormatScore(HighScore(1) ) & " ", dcBottomCHARSPERLINE), "", eNone, eScrollLeft, 6, 2000, FALSE, ""
  2227. DD "-", Left("3 " &HighScoreName(0) & " " &FormatScore(HighScore(2) ) & " ", dcBottomCHARSPERLINE), "", eNone, eScrollLeft, 6, 2000, FALSE, ""
  2228. DD "-", Left("4 " &HighScoreName(1) & " " &FormatScore(HighScore(3) ) & " ", dcBottomCHARSPERLINE), "", eNone, eScrollLeft, 6, 2000, FALSE, ""
  2229. DD "-", SPACE(dcBottomCHARSPERLINE), "", eNone, eScrollLeft, 6, 20, FALSE, ""
  2230. DD Right(Space(dcTopCHARSPERLINE) & FormatScore(Score(player) ), dcBottomCHARSPERLINE), " ", "", eNone, eNone, 0, 2000, FALSE, ""
  2231. DD SPACE(dcTopCHARSPERLINE), SPACE(dcBottomCHARSPERLINE), "", eScrollLeft, eScrollLeft, 0, 500, FALSE, ""
  2232. End Sub
  2233.  
  2234. Sub AttractMode_On()
  2235. If B2SOn Then
  2236. Controller.B2SStartAnimation("Title")
  2237. Controller.B2SStartAnimation("Startup")
  2238. Controller.B2SStartAnimation("Muzzle")
  2239. End If
  2240. 'PlaySong "scarface_ME1.mp3" '2-10-13 added
  2241. SetupAttractMode()
  2242. 'PlaySong "scarface_NOE.mp3"
  2243. DisplayFlushQueue
  2244. ShowTableInfo
  2245. End Sub
  2246.  
  2247. Sub AttractMode_Off()
  2248. LightSeqAttract.StopPlay
  2249. End Sub
  2250.  
  2251. Sub SetupAttractMode()
  2252. LightSeqAttract.Play SeqBlinking, , 5, 150
  2253. LightSeqAttract.UpdateInterval = 25
  2254. LightSeqAttract.Play SeqRandom, 40, , 4000
  2255. LightSeqAttract.Play SeqAllOff
  2256. LightSeqAttract.UpdateInterval = 8
  2257. LightSeqAttract.Play SeqUpOn, 50, 1
  2258. LightSeqAttract.UpdateInterval = 8
  2259. LightSeqAttract.Play SeqDownOn, 25, 1
  2260. LightSeqAttract.UpdateInterval = 8
  2261. LightSeqAttract.Play SeqCircleOutOn, 15, 2
  2262. LightSeqAttract.UpdateInterval = 8
  2263. LightSeqAttract.Play SeqUpOn, 25, 1
  2264. LightSeqAttract.UpdateInterval = 8
  2265. LightSeqAttract.Play SeqDownOn, 25, 1
  2266. LightSeqAttract.UpdateInterval = 8
  2267. LightSeqAttract.Play SeqUpOn, 25, 1
  2268. LightSeqAttract.UpdateInterval = 8
  2269. LightSeqAttract.Play SeqDownOn, 25, 1
  2270. LightSeqAttract.UpdateInterval = 10
  2271. LightSeqAttract.Play SeqCircleOutOn, 15, 3
  2272. LightSeqAttract.UpdateInterval = 5
  2273. LightSeqAttract.Play SeqRightOn, 50, 1
  2274. LightSeqAttract.UpdateInterval = 5
  2275. LightSeqAttract.Play SeqLeftOn, 50, 1
  2276. LightSeqAttract.UpdateInterval = 8
  2277. LightSeqAttract.Play SeqRightOn, 50, 1
  2278. LightSeqAttract.UpdateInterval = 8
  2279. LightSeqAttract.Play SeqLeftOn, 50, 1
  2280. LightSeqAttract.UpdateInterval = 8
  2281. LightSeqAttract.Play SeqRightOn, 40, 1
  2282. LightSeqAttract.UpdateInterval = 8
  2283. LightSeqAttract.Play SeqLeftOn, 40, 1
  2284. LightSeqAttract.UpdateInterval = 10
  2285. LightSeqAttract.Play SeqRightOn, 30, 1
  2286. LightSeqAttract.UpdateInterval = 10
  2287. LightSeqAttract.Play SeqLeftOn, 30, 1
  2288. LightSeqAttract.UpdateInterval = 8
  2289. LightSeqAttract.Play SeqRightOn, 25, 1
  2290. LightSeqAttract.UpdateInterval = 8
  2291. LightSeqAttract.Play SeqLeftOn, 25, 1
  2292. LightSeqAttract.UpdateInterval = 8
  2293. LightSeqAttract.Play SeqRightOn, 15, 1
  2294. LightSeqAttract.UpdateInterval = 8
  2295. LightSeqAttract.Play SeqLeftOn, 15, 1
  2296. LightSeqAttract.UpdateInterval = 10
  2297. LightSeqAttract.Play SeqCircleOutOn, 15, 3
  2298. LightSeqAttract.UpdateInterval = 8
  2299. LightSeqAttract.Play SeqLeftOn, 25, 1
  2300. LightSeqAttract.UpdateInterval = 8
  2301. LightSeqAttract.Play SeqRightOn, 25, 1
  2302. LightSeqAttract.UpdateInterval = 8
  2303. LightSeqAttract.Play SeqLeftOn, 25, 1
  2304. LightSeqAttract.UpdateInterval = 8
  2305. LightSeqAttract.Play SeqUpOn, 25, 1
  2306. LightSeqAttract.UpdateInterval = 8
  2307. LightSeqAttract.Play SeqDownOn, 25, 1
  2308. LightSeqAttract.UpdateInterval = 8
  2309. LightSeqAttract.Play SeqUpOn, 25, 1
  2310. LightSeqAttract.UpdateInterval = 8
  2311. LightSeqAttract.Play SeqDownOn, 25, 1
  2312. LightSeqAttract.UpdateInterval = 5
  2313. LightSeqAttract.Play SeqStripe1VertOn, 50, 2
  2314. LightSeqAttract.UpdateInterval = 8
  2315. LightSeqAttract.Play SeqCircleOutOn, 15, 2
  2316. LightSeqAttract.UpdateInterval = 8
  2317. LightSeqAttract.Play SeqStripe1VertOn, 50, 3
  2318. LightSeqAttract.UpdateInterval = 8
  2319. LightSeqAttract.Play SeqLeftOn, 25, 1
  2320. LightSeqAttract.UpdateInterval = 8
  2321. LightSeqAttract.Play SeqRightOn, 25, 1
  2322. LightSeqAttract.UpdateInterval = 8
  2323. LightSeqAttract.Play SeqLeftOn, 25, 1
  2324. LightSeqAttract.UpdateInterval = 8
  2325. LightSeqAttract.Play SeqUpOn, 25, 1
  2326. LightSeqAttract.UpdateInterval = 8
  2327. LightSeqAttract.Play SeqDownOn, 25, 1
  2328. LightSeqAttract.UpdateInterval = 8
  2329. LightSeqAttract.Play SeqCircleOutOn, 15, 2
  2330. LightSeqAttract.UpdateInterval = 8
  2331. LightSeqAttract.Play SeqStripe2VertOn, 50, 3
  2332. LightSeqAttract.UpdateInterval = 8
  2333. LightSeqAttract.Play SeqLeftOn, 25, 1
  2334. LightSeqAttract.UpdateInterval = 8
  2335. LightSeqAttract.Play SeqRightOn, 25, 1
  2336. LightSeqAttract.UpdateInterval = 8
  2337. LightSeqAttract.Play SeqLeftOn, 25, 1
  2338. LightSeqAttract.UpdateInterval = 8
  2339. LightSeqAttract.Play SeqUpOn, 25, 1
  2340. LightSeqAttract.UpdateInterval = 8
  2341. LightSeqAttract.Play SeqDownOn, 25, 1
  2342. LightSeqAttract.UpdateInterval = 8
  2343. LightSeqAttract.Play SeqUpOn, 25, 1
  2344. LightSeqAttract.UpdateInterval = 8
  2345. LightSeqAttract.Play SeqDownOn, 25, 1
  2346. LightSeqAttract.UpdateInterval = 8
  2347. LightSeqAttract.Play SeqStripe1VertOn, 25, 3
  2348. LightSeqAttract.UpdateInterval = 8
  2349. LightSeqAttract.Play SeqStripe2VertOn, 25, 3
  2350. LightSeqAttract.UpdateInterval = 8
  2351. LightSeqAttract.Play SeqUpOn, 15, 1
  2352. LightSeqAttract.UpdateInterval = 8
  2353. LightSeqAttract.Play SeqDownOn, 15, 1
  2354. LightSeqAttract.UpdateInterval = 8
  2355. LightSeqAttract.Play SeqUpOn, 15, 1
  2356. LightSeqAttract.UpdateInterval = 8
  2357. LightSeqAttract.Play SeqDownOn, 15, 1
  2358. LightSeqAttract.UpdateInterval = 8
  2359. LightSeqAttract.Play SeqUpOn, 15, 1
  2360. LightSeqAttract.UpdateInterval = 8
  2361. LightSeqAttract.Play SeqDownOn, 15, 1
  2362. LightSeqAttract.UpdateInterval = 8
  2363. LightSeqAttract.Play SeqRightOn, 15, 1
  2364. LightSeqAttract.UpdateInterval = 8
  2365. LightSeqAttract.Play SeqLeftOn, 15, 1
  2366. LightSeqAttract.UpdateInterval = 8
  2367. LightSeqAttract.Play SeqRightOn, 15, 1
  2368. LightSeqAttract.UpdateInterval = 8
  2369. LightSeqAttract.Play SeqLeftOn, 15, 1
  2370. End Sub
  2371.  
  2372. Sub LightSeqAttract_PlayDone()
  2373. SetupAttractMode()
  2374. End Sub
  2375.  
  2376. Sub LightSeqSkillshot_PlayDone()
  2377. LightSeqSkillshot.Play SeqAllOff
  2378. End Sub
  2379.  
  2380. Sub LightSeqTilt_PlayDone()
  2381. LightSeqTilt.Play SeqAllOff
  2382. End Sub
  2383.  
  2384. Sub LightSeqEE_PlayDone()
  2385. EasterLights
  2386. End Sub
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393. '*******************************************************************
  2394. ' >>> Here starts game code <<<
  2395. '*******************************************************************
  2396. ' Any target hit sub will follow this:
  2397. ' - play a sound
  2398. ' - do some physical movement
  2399. ' - add a score
  2400. ' - check some variables/modes this trigger is a member of
  2401. ' - set the "LastSwicthHit" variable
  2402. '*******************************************************************
  2403.  
  2404. 'Variables
  2405.  
  2406. Dim ScoreSkillShot
  2407. Dim ScoreBumpers
  2408. Dim ScoreSuperBumpers
  2409. Dim ScoreCar
  2410. Dim ScoreOuterLoop
  2411. Dim ScoreRightRamp
  2412. Dim ScoreMiniLoop
  2413. Dim ScoreCenterHole
  2414. Dim ScoreLeftRamp
  2415. Dim ScoreBankLights
  2416. Dim ScoreDrops
  2417. Dim ScoreTWIYJackpot
  2418. Dim ScoreLock
  2419. Dim ScoreSpinnerTargets
  2420. Dim ScoreCollectYeyo
  2421. Dim ScoreME1Complete
  2422. Dim ScoreME2Part
  2423. Dim ScoreME2Complete
  2424. Dim ScoreME3Part
  2425. Dim ScoreME3Complete
  2426. Dim ScoreME4Part
  2427. Dim ScoreME4Complete
  2428. Dim ScoreME5Part
  2429. Dim ScoreME5Complete
  2430. Dim ScoreME6Part
  2431. Dim ScoreME6Complete
  2432. Dim ScoreME7Part
  2433. Dim ScoreME7Complete
  2434. Dim ScoreME8Skill
  2435. Dim ScoreME8Miss
  2436. Dim ScoreME9PArt
  2437. Dim ScoreME9Complete
  2438. Dim ScoreME10Part
  2439. Dim ScoreME10Complete
  2440. Dim ScoreME11Jackpot
  2441. Dim ScoreME11SuperJackpot
  2442. Dim ScoreCompleteLanes
  2443. Dim ScoreHitmanJackpot
  2444. Dim ScoreHitmanJackpotIncrease
  2445. Dim ScoreCarJackpot
  2446. Dim ScoreBankRunJackpot
  2447. Dim ScoreSlingshots
  2448. Dim ScoreYeyoJackpot
  2449.  
  2450. Sub InitVariables
  2451. 'score variables
  2452. ScoreSkillShot = 25000
  2453. ScoreBumpers = 100
  2454. ScoreSuperBumpers = 1 'this is a multiplier
  2455. ScoreCar = 500
  2456. ScoreOuterLoop = 1000
  2457. ScoreRightRamp = 5000
  2458. ScoreMiniLoop = 150
  2459. ScoreCenterHole = 100
  2460. ScoreLeftRamp = 2000
  2461. ScoreBankLights = 500
  2462. ScoreDrops = 30
  2463. ScoreTWIYJackpot = 500000
  2464. ScoreLock = 2000
  2465. ScoreSpinnerTargets = 100
  2466. ScoreCollectYeyo = 2000
  2467. ScoreME1Complete = 200000
  2468. ScoreME2Part = 2500
  2469. ScoreME2Complete = 200000
  2470. ScoreME3Part = 2500
  2471. ScoreME3Complete = 400000
  2472. ScoreME4Part = 2500
  2473. ScoreME4Complete = 400000
  2474. ScoreME5Part = 2500
  2475. ScoreME5Complete = 500000
  2476. ScoreME6Part = 2500
  2477. ScoreME6Complete = 400000
  2478. ScoreME7Part = 2500
  2479. ScoreME7Complete = 800000
  2480. ScoreME8Skill = 20000
  2481. ScoreME8Miss = 0
  2482. ScoreME9PArt = 2500
  2483. ScoreME9Complete = 400000
  2484. ScoreME10Part = 50000
  2485. ScoreME10Complete = 1000000
  2486. ScoreME11Jackpot = 200000
  2487. ScoreME11SuperJackpot = 10000000
  2488. ScoreCompleteLanes = 60
  2489. ScoreHitmanJackpot = 300000
  2490. ScoreHitmanJackpotIncrease = 10000
  2491. ScoreCarJackpot = 500000
  2492. ScoreBankRunJackpot = 500000
  2493. ScoreSlingshots = 10
  2494. ScoreYeyoJackpot = 500000
  2495.  
  2496. ' other variables
  2497. BumperHits = 0
  2498. VukDelay = 0
  2499. EjectBallsInDeskDelay = 0
  2500. End Sub
  2501.  
  2502. '************************
  2503. ' Lock hole
  2504. '************************
  2505. ' kicker: lock
  2506. ' lights 50, 51, 52
  2507.  
  2508. Dim EjectXLockedBallDelay, OpenLockBlockDelay, StartTWIYDelay
  2509.  
  2510. Sub OpenLockBlock
  2511. If EventStarted = 11 Then Exit Sub
  2512. DD "", "", "dmdlocklit", eNone, eNone, 0, 2000, TRUE, ""
  2513. PlaySound SoundFX("fx_solenoidon", DOFContactors)
  2514. LockBlock.IsDropped = 1
  2515. lockblock1.IsDropped = 0
  2516. BallLockEnabled = 1
  2517. UpdateLockLights
  2518. End Sub
  2519.  
  2520. Sub OnlyOpenLockBlock
  2521. If EventStarted = 11 Then Exit Sub
  2522. PlaySound SoundFX("fx_solenoidon", DOFContactors)
  2523. LockBlock.IsDropped = 1
  2524. lockblock1.IsDropped = 0
  2525. End Sub
  2526.  
  2527. Sub CloseLockBlock
  2528. PlaySound SoundFX("fx_solenoidoff", DOFContactors)
  2529. LockBlock.IsDropped = 0
  2530. lockblock1.IsDropped = 1
  2531. End Sub
  2532.  
  2533. Sub InitLock
  2534. l50.State = 0
  2535. l51.State = 0
  2536. l52.State = 0
  2537. BallsInLock = 0
  2538. LockBlock.IsDropped = 0
  2539. LockBlock1.IsDropped = 1
  2540. BallLockEnabled = 0
  2541. OpenLockBlockDelay = 0
  2542. End Sub
  2543.  
  2544. Sub Lock_Hit
  2545. PlaySound "fx_ballhit"
  2546.  
  2547. Lock.Destroyball
  2548. BallsInLock = BallsInLock + 1
  2549. BallsOnPlayfield = BallsOnPlayfield - 1
  2550. If ExtraBallIsLit Then
  2551. GiveExtraBall
  2552. End If
  2553. If BallLockEnabled = 0 Then 'not in lock mode so eject back the ball and close the gate
  2554. PlaySound "fx_solenoidoff"
  2555. LockBlock.IsDropped = 0
  2556. lockblock1.IsDropped = 1
  2557. EjectXLockedBallDelay = 40
  2558. Exit Sub
  2559. End If
  2560. If BallLockEnabled AND BallsInLock = 1 Then '1st ball locked
  2561. Say "Oh_baby", "44241":If B2SOn Then Controller.B2SStartAnimation("Tony")
  2562. UpdateLockLights
  2563. DD "", "", "dmdlock1", eNone, eNone, 0, 400, FALSE, ""
  2564. DD "", "", "dmdlock2", eNone, eNone, 0, 400, FALSE, ""
  2565. DD "", "", "dmdlock3", eNone, eNone, 0, 1500, True, ""
  2566. AddMultiballs 1 'add one ball to the plunger
  2567. End If
  2568.  
  2569. If BallLockEnabled AND BallsInLock = 2 Then '2nd ball locked
  2570. Say "Dont_make_me_spank_you", "3323242413631313121313":If B2SOn Then Controller.B2SStartAnimation("Tony")
  2571. UpdateLockLights
  2572. DD "", "", "dmdlock4", eNone, eNone, 0, 400, FALSE, ""
  2573. DD "", "", "dmdlock5", eNone, eNone, 0, 400, FALSE, ""
  2574. DD "", "", "dmdlock6", eNone, eNone, 0, 1500, True, ""
  2575. AddMultiballs 1 'add one ball to the plunger
  2576. End If
  2577.  
  2578. If BallLockEnabled AND BallsInLock = 3 Then '3rd ball locked
  2579. Say "Im_Tony_fuckin_M", "13362526251":If B2SOn Then Controller.B2SStartAnimation("Tony")
  2580. UpdateLockLights
  2581. DD "", "", "dmdlock6", eNone, eNone, 0, 400, FALSE, ""
  2582. DD "", "", "dmdlock7", eNone, eNone, 0, 400, FALSE, ""
  2583. DD "", "", "dmdlock8", eNone, eNone, 0, 800, FALSE, ""
  2584. DD "", "", "dmdlock9", eNone, eNone, 0, 200, FALSE, ""
  2585. DD "", "", "dmdlock10", eNone, eNone, 0, 200, FALSE, ""
  2586. DD "", "", "dmdlock9", eNone, eNone, 0, 200, FALSE, ""
  2587. DD "", "", "dmdlock10", eNone, eNone, 0, 200, FALSE, ""
  2588. DD "", "", "dmdlock9", eNone, eNone, 0, 200, FALSE, ""
  2589. DD "", "", "dmdlock10", eNone, eNone, 0, 2000, TRUE, ""
  2590. BallLockEnabled = 0:CloseLockBlock
  2591. StartTWIYDelay = 100
  2592. End If
  2593. End Sub
  2594.  
  2595. Sub UpdateLockLights
  2596. Select Case BallsInLock
  2597. Case 0:l50.State = 2
  2598. Case 1:l50.State = 1:l51.State = 2
  2599. Case 2:l50.State = 1:l51.State = 1:l52.State = 2
  2600. Case 3:l50.State = 1:l51.State = 1:l52.State = 1
  2601. End Select
  2602. End Sub
  2603.  
  2604. Sub EjectBallsLocked 'all the locked balls
  2605. If BallsInLock> 0 Then EjectLockedBallsDelay = 40
  2606. End Sub
  2607.  
  2608. Sub LockExit 'from the front of the desk
  2609. Dropall 'in case they are up
  2610. ResetDropDelay = 10 'reset them right after
  2611. Deskin.createball
  2612. Deskin.Kick 188 + RND(3) * 3, 20 + RND(1) * 3
  2613. End Sub
  2614.  
  2615. '******************
  2616. ' Helpers & effects
  2617. '******************
  2618.  
  2619. Dim LaneGateDelay
  2620.  
  2621. Sub LaneGateT_Hit
  2622. LaneBlock.IsDropped = 1
  2623. DOF 125, DOFPulse
  2624. LaneGateDelay = 6
  2625. End Sub
  2626.  
  2627. Sub LaneGateClose
  2628. LaneBlock.IsDropped = 0
  2629. End Sub
  2630.  
  2631. '*************
  2632. ' Holes & Vuks
  2633. '*************
  2634.  
  2635. Dim PlungerLaneKDelay, BallsInPlungerLane
  2636. Dim CarHoleDelay
  2637.  
  2638. Sub plungerlanein_Hit
  2639. If EventStarted = 8 Then
  2640.  
  2641. BallsOnPlayfield = BallsOnPlayfield - 1
  2642. plungerlanein.destroyball
  2643. PlaySound "fx_kicker_enter"
  2644. NewBall8
  2645. Exit Sub
  2646. End If
  2647.  
  2648. If SkillshotReady Then
  2649. StartBallSaved(BallSavedTime) 'start ball save time if 1st ball
  2650. End If
  2651. PlaySound "fx_kicker_enter"
  2652. If SkillshotStarted Then PlaySound "car_not_start":EndSkillshot
  2653. BallsInPlungerLane = BallsInPlungerLane + 1
  2654.  
  2655. plungerlanein.destroyball
  2656. PlungerLaneKDelay = 20
  2657. End Sub
  2658.  
  2659. Sub PlungerLaneExit
  2660. If ExtraBallislit OR BallLockEnabled Then 'close the diverter
  2661. CloseLockBlock
  2662. OpenLockBlockDelay = 20
  2663. End If
  2664. plungerlaneout.createball
  2665. plungerlaneout.kick 0, 26 + Int(RND(1) * 8)
  2666. PlaySound SoundFXDOF("fx_popper", 124, DOFPulse, DOFContactors)
  2667. End Sub
  2668.  
  2669. Sub Vukin_Hit
  2670.  
  2671. PlaySound "fx_kicker_enter"
  2672. VukDelay = 30
  2673. End Sub
  2674.  
  2675. Sub VukEject
  2676. vukin.destroyball
  2677. vukout.createball
  2678. vukout.kick 90, 24, 1.28
  2679. PlaySound SoundFXDOF("fx_popper", 118, DOFPulse, DOFContactors)
  2680. End Sub
  2681.  
  2682. '**********Sling Shot Animations
  2683. ' Rstep and Lstep are the variables that increment the animation
  2684. '****************
  2685. Dim RStep, Lstep
  2686.  
  2687. Sub RightSlingShot_Slingshot
  2688.  
  2689. PlaySound SoundFXDOF("right_slingshot", 104, DOFPulse, DOFContactors)
  2690. RSling.Visible = 0
  2691. RSling1.Visible = 1
  2692. sling1.TransZ = -20
  2693. RStep = 0
  2694. RightSlingShot.TimerEnabled = 1
  2695.  
  2696. If EE Then
  2697. PlayRamdomPunch
  2698. AddScore 1
  2699. Exit Sub
  2700. End If
  2701. Addscore ScoreSlingshots
  2702. LastSwitchHit = "rightslingshot"
  2703. 'modes
  2704. LightNextEvent
  2705.  
  2706. End Sub
  2707.  
  2708. Sub RightSlingShot_Timer
  2709. Select Case RStep
  2710. Case 3:RSLing1.Visible = 0:RSLing2.Visible = 1:sling1.TransZ = -10
  2711. Case 4:RSLing2.Visible = 0:RSLing.Visible = 1:sling1.TransZ = 0:RightSlingShot.TimerEnabled = 0
  2712. End Select
  2713. RStep = RStep + 1
  2714. End Sub
  2715.  
  2716. Sub LeftSlingShot_Slingshot
  2717. PlaySound SoundFXDOF("left_slingshot", 103, DOFPulse, DOFContactors)
  2718. LSling.Visible = 0
  2719. LSling1.Visible = 1
  2720. sling2.TransZ = -20
  2721. LStep = 0
  2722. LeftSlingShot.TimerEnabled = 1
  2723.  
  2724. If EE Then
  2725. PlayRamdomPunch
  2726. AddScore 1
  2727. Exit Sub
  2728. End If
  2729. Addscore ScoreSlingshots
  2730. LastSwitchHit = "leftslingshot"
  2731. 'modes
  2732. LightNextEvent
  2733.  
  2734. End Sub
  2735.  
  2736. Sub LeftSlingShot_Timer
  2737. Select Case LStep
  2738. Case 3:LSLing1.Visible = 0:LSLing2.Visible = 1:sling2.TransZ = -10
  2739. Case 4:LSLing2.Visible = 0:LSLing.Visible = 1:sling2.TransZ = 0:LeftSlingShot.TimerEnabled = 0
  2740. End Select
  2741. LStep = LStep + 1
  2742. End Sub
  2743.  
  2744. '**********
  2745. ' Bumpers
  2746. '**********
  2747.  
  2748. Dim BumperHits, bumperoffdelay
  2749.  
  2750. Sub Bumper1_Hit
  2751. PlaySound SoundFXDOF("fx_bumper1", 105, DOFPulse, DOFContactors):Bumper1.TimerEnabled = 1:DOF 214, DOFPulse
  2752. 'score & bonus
  2753. 'checkmodes this switch is part of
  2754. If EE Then
  2755. PlayRamdomPunch
  2756. AddScore 1
  2757. Exit Sub
  2758. End If
  2759. If EventStarted = 5 Then
  2760. PlaySound "drums1"
  2761. CheckEvent5Bumps
  2762. Else
  2763. SetLamp 2, 1, 0, 0
  2764. BumperHits = BumperHits + 1
  2765. AddScore ScoreBumpers * ScoreSuperBumpers
  2766. CheckSuperPops
  2767. End If
  2768. LastSwitchHit = "bumper1"
  2769. End Sub
  2770.  
  2771. Sub Bumper1_Timer()
  2772. SetLamp 2, 0, 0, 0
  2773. l48.State = 0:
  2774. Bumper1.TimerEnabled = 0
  2775. End Sub
  2776.  
  2777. Sub Bumper2_Hit
  2778. PlaySound SoundFXDOF("fx_bumper2", 107, DOFPulse, DOFContactors):Bumper2.TimerEnabled = 1:DOF 214, DOFPulse
  2779. 'score & bonus
  2780. 'checkmodes this switch is part of
  2781. If EE Then
  2782. PlayRamdomPunch
  2783. AddScore 1
  2784. Exit Sub
  2785. End If
  2786. If EventStarted = 5 Then
  2787. PlaySound "drums2"
  2788. CheckEvent5Bumps
  2789. Else
  2790. SetLamp 2, 1, 0, 0
  2791. BumperHits = BumperHits + 1
  2792. AddScore ScoreBumpers * ScoreSuperBumpers
  2793. CheckSuperPops
  2794. End If
  2795. LastSwitchHit = "bumper2"
  2796. End Sub
  2797.  
  2798. Sub Bumper2_Timer()
  2799. SetLamp 2, 0, 0, 0
  2800. l48.State = 0:
  2801. Bumper1.TimerEnabled = 0
  2802. End Sub
  2803.  
  2804. Sub Bumper3_Hit
  2805. PlaySound SoundFXDOF("fx_bumper3", 106, DOFPulse, DOFContactors):Bumper3.TimerEnabled = 1:DOF 214, DOFPulse
  2806. 'score & bonus
  2807. 'checkmodes this switch is part of
  2808. If EE Then
  2809. PlayRamdomPunch
  2810. AddScore 1
  2811. Exit Sub
  2812. End If
  2813. If EventStarted = 5 Then
  2814. PlaySound "drums2"
  2815. CheckEvent5Bumps
  2816. Else
  2817. SetLamp 2, 1, 0, 0
  2818. BumperHits = BumperHits + 1
  2819. AddScore ScoreBumpers * ScoreSuperBumpers
  2820. CheckSuperPops
  2821. End If
  2822. LastSwitchHit = "bumper3"
  2823. End Sub
  2824.  
  2825. Sub Bumper3_Timer()
  2826. SetLamp 2, 0, 0, 0
  2827. l48.State = 0:
  2828. Bumper1.TimerEnabled = 0
  2829. End Sub
  2830.  
  2831. Sub CheckSuperPops
  2832. Dim tmp
  2833. DisplayFlushQueue
  2834. If BumperHits <100 Then
  2835. DD "-", CenterBottom("BUMPER HITS " &BumperHits), "", eNone, eNone, 0, 200, True, ""
  2836. tmp = INT(RND(1) * 3)
  2837. Select case tmp
  2838. Case 0:PlaySound "punch1"
  2839. Case 1:PlaySound "punch1"
  2840. Case 2:PlaySound "punch1"
  2841. End Select
  2842. Else
  2843. DD "-", CenterBottom("SUPER BUMPER HIT"), "", eNone, eNone, 0, 200, True, "snap1"
  2844. End If
  2845.  
  2846. If BumperHits = 100 Then
  2847. LightBumer1.State = 2
  2848. LightBumer2.State = 2
  2849. LightBumer3.State = 2
  2850. LightBumer1a.State = 2
  2851. LightBumer2a.State = 2
  2852. LightBumer3a.State = 2
  2853. ScoreSuperBumpers = 100 ' multiplier
  2854. bumperoffdelay = 60 * 20 '20 because the gametimer is 50. 1000 is 1 second
  2855. End If
  2856. End Sub
  2857.  
  2858. Sub InitBumpers
  2859. LightBumer1.State = 1
  2860. LightBumer2.State = 1
  2861. LightBumer3.State = 1
  2862. LightBumer1a.State = 1
  2863. LightBumer2a.State = 1
  2864. LightBumer3a.State = 1
  2865. ScoreSuperBumpers = 1 ' multiplier
  2866. bumperoffdelay = 0
  2867. End Sub
  2868.  
  2869. '***********
  2870. ' Rollovers
  2871. '***********
  2872.  
  2873. Sub lat1_Hit
  2874. PlaySound "fx_sensor"
  2875. DOF 128, DOFOn
  2876. 'score & bonus
  2877. If EE Then
  2878. PlayRamdomPunch
  2879. AddScore 1
  2880. Exit Sub
  2881. End If
  2882. If l7.State = 1 Then
  2883. PlaySound "scpoing4"
  2884. Else
  2885. PlaySound "reload4"
  2886. End If
  2887. AddScore 10 '???
  2888. l7.State = 1
  2889. 'checkmodes this switch is part of
  2890. LastSwitchHit = "lat1"
  2891. CheckFlipperLights
  2892. End Sub
  2893.  
  2894. Sub lat1_UnHit
  2895. DOF 128, DOFOff
  2896. End Sub
  2897.  
  2898. Sub lat2_Hit
  2899. PlaySound "fx_sensor"
  2900. DOF 129, DOFOn
  2901. 'score & bonus
  2902. If EE Then
  2903. PlayRamdomPunch
  2904. AddScore 1
  2905. Exit Sub
  2906. End If
  2907. If l7.State = 1 Then
  2908. PlaySound "scpoing4"
  2909. Else
  2910. PlaySound "reload4"
  2911. End If
  2912. AddScore 10 '???
  2913. l8.State = 1
  2914. 'checkmodes this switch is part of
  2915. LastSwitchHit = "lat2"
  2916. CheckFlipperLights
  2917. End Sub
  2918.  
  2919. Sub lat2_UnHit
  2920. DOF 129, DOFOff
  2921. End Sub
  2922.  
  2923. Sub lat3_Hit
  2924. PlaySound "fx_sensor"
  2925. DOF 130, DOFOn
  2926. 'score & bonus
  2927. If EE Then
  2928. PlayRamdomPunch
  2929. AddScore 1
  2930. Exit Sub
  2931. End If
  2932. If l7.State = 1 Then
  2933. PlaySound "scpoing4"
  2934. Else
  2935. PlaySound "reload4"
  2936. End If
  2937. AddScore 10 '???
  2938. l9.State = 1
  2939. 'checkmodes this switch is part of
  2940. LastSwitchHit = "lat3"
  2941. CheckFlipperLights
  2942. End Sub
  2943.  
  2944. Sub lat3_UnHit
  2945. DOF 130, DOFOff
  2946. End Sub
  2947.  
  2948. Sub lat4_Hit
  2949. PlaySound "fx_sensor"
  2950. DOF 131, DOFOn
  2951. 'score & bonus
  2952. If EE Then
  2953. PlayRamdomPunch
  2954. AddScore 1
  2955. Exit Sub
  2956. End If
  2957. If l7.State = 1 Then
  2958. PlaySound "scpoing4"
  2959. Else
  2960. PlaySound "reload4"
  2961. End If
  2962. AddScore 10 '???
  2963. l10.State = 1
  2964. 'checkmodes this switch is part of
  2965. LastSwitchHit = "lat4"
  2966. CheckFlipperLights
  2967. End Sub
  2968.  
  2969. Sub lat4_UnHit
  2970. DOF 131, DOFOff
  2971. End Sub
  2972.  
  2973. Sub lat5_Hit
  2974. PlaySound "fx_sensor"
  2975. DOF 203, DOFOn
  2976. 'score & bonus
  2977. If EE Then
  2978. PlayRamdomPunch
  2979. AddScore 1
  2980. Exit Sub
  2981. End If
  2982. PlaySound "scpoing10"
  2983. 'checkmodes this switch is part of
  2984. If EventStarted = 10 Then
  2985. Event10Hits(1) = 1
  2986. l16.State = 0
  2987. CheckEvent10
  2988. Else
  2989. AddScore 10 '???
  2990. End If
  2991. LastSwitchHit = "lat5"
  2992. End Sub
  2993.  
  2994. Sub lat5_UnHit
  2995. DOF 203, DOFOff
  2996. End Sub
  2997.  
  2998. Sub lat6_Hit
  2999. PlaySound "fx_sensor"
  3000. DOF 201, DOFOn
  3001. 'score & bonus
  3002. 'checkmodes this switch is part of
  3003. If EE Then
  3004. PlayRamdomPunch
  3005. AddScore 1
  3006. Exit Sub
  3007. End If
  3008. LastSwitchHit = "lat6"
  3009. End Sub
  3010.  
  3011. Sub lat6_UnHit
  3012. DOF 201, DOFOff
  3013. End Sub
  3014.  
  3015. Sub lat7_Hit
  3016. PlaySound "fx_sensor"
  3017. DOF 202, DOFOn
  3018. 'score & bonus
  3019. 'checkmodes this switch is part of
  3020. If EE Then
  3021. PlayRamdomPunch
  3022. AddScore 1
  3023. Exit Sub
  3024. End If
  3025. LastSwitchHit = "lat7"
  3026. End Sub
  3027.  
  3028. Sub lat7_UnHit
  3029. DOF 202, DOFOff
  3030. End Sub
  3031.  
  3032. Sub lat8_Hit
  3033. PlaySound "fx_sensor"
  3034. DOF 204, DOFOn
  3035. 'score & bonus
  3036. If EE Then
  3037. PlayRamdomPunch
  3038. AddScore 1
  3039. Exit Sub
  3040. End If
  3041. PlaySound "Ba_Dum_Tss1"
  3042. 'checkmodes this switch is part of
  3043. If EventStarted = 10 Then
  3044. Event10Hits(2) = 1
  3045. l53.State = 0
  3046. CheckEvent10
  3047. Else
  3048. AddScore 10 '???
  3049. End If
  3050. LastSwitchHit = "lat8"
  3051. End Sub
  3052.  
  3053. Sub lat8_UnHit
  3054. DOF 204, DOFOff
  3055. End Sub
  3056.  
  3057. Sub LeftRampDone_Hit
  3058. If B2SOn Then
  3059. Controller.B2SStartAnimation("PalmTrees")
  3060. End If
  3061. SetLamp 3, 0, 1, 10
  3062. PlaySound "Wire Ramp":DOF 120, DOFPulse
  3063. 'score & bonus
  3064. 'checkmodes this switch is part of
  3065. If EE Then
  3066. PlayRamdomPunch
  3067. AddScore 1
  3068. Exit Sub
  3069. End If
  3070. If EventStarted = 10 Then
  3071. AddScore ScoreLeftRamp
  3072. Event10Hits(3) = 1
  3073. l23.State = 0
  3074. CheckEvent10
  3075. Exit Sub
  3076. End If
  3077. If EventStarted = 6 AND Event6Drop Then
  3078. AddScore ScoreLeftRamp
  3079. WinEvent6
  3080. Exit Sub
  3081. End If
  3082. If EventStarted = 1 Then
  3083. AddScore ScoreLeftRamp
  3084. WinEvent1
  3085. Exit Sub
  3086. End If
  3087. If TWIYStarted AND LeftRampJackpotEnabled Then
  3088. If RightRampJackpotEnabled = 0 Then
  3089. l25.State = 2
  3090. l42.State = 2
  3091. End If
  3092. StopLeftRampJackpot
  3093. GiveTWIYJackpot
  3094. Exit Sub
  3095. End If
  3096. If HitManStarted Then
  3097. AddScore ScoreHitmanJackpot
  3098. DisplayFlushQueue
  3099. PlaySound "chananJPk"
  3100. DD "", "", "dmdhitman1", eNone, eNone, 0, 300, FALSE, ""
  3101. DD "", "", "dmdhitman2", eNone, eNone, 0, 300, FALSE, ""
  3102. DD "", "", "dmdhitman3", eNone, eNone, 0, 300, FALSE, ""
  3103. DD "", "", "dmdhitman4", eNone, eNone, 0, 400, FALSE, ""
  3104. DD CenterTop("JACKPOT "), CenterBottom(FormatScore(ScoreHitmanJackpot) ), "", eNone, eNone, 0, 1000, True, ""
  3105. Else
  3106. AddScore ScoreLeftRamp
  3107. PlaySound "gun2"
  3108. KillRampHits = KillRampHits + 1
  3109. CheckKillRamp
  3110. End if
  3111. LastSwitchHit = "leftrampdone"
  3112. End Sub
  3113.  
  3114. Sub RightRampDone_Hit
  3115. PlaySound "Wire Ramp":DOF 133, DOFPulse
  3116. TurnTableOff 'turn off the rotating platform
  3117. 'checkmodes this switch is part of
  3118. LastSwitchHit = "RightRampDone"
  3119. End Sub
  3120.  
  3121. '***********
  3122. ' Targets
  3123. '***********
  3124.  
  3125. Sub rott1_Hit
  3126. PlaySound SoundFX("fx_target",DOFTargets)
  3127. ' score
  3128. If EE Then
  3129. PlayRamdomPunch
  3130. AddScore 1
  3131. Exit Sub
  3132. End If
  3133. AddScore ScoreSpinnerTargets
  3134. PlaySound "scpoing9"
  3135. AddBonus 30
  3136. 'checkmodes this switch is part of
  3137. LastSwitchHit = "rott1"
  3138. If EventStarted = 4 Then
  3139. CheckrottHits
  3140. Else
  3141. CheckYeyo
  3142. End If
  3143. End Sub
  3144.  
  3145.  
  3146. Sub rott2_Hit
  3147. PlaySound SoundFX("fx_target",DOFTargets)
  3148. ' score
  3149. If EE Then
  3150. PlayRamdomPunch
  3151. AddScore 1
  3152. Exit Sub
  3153. End If
  3154. AddScore ScoreSpinnerTargets
  3155. PlaySound "scpoing9"
  3156. AddBonus 30
  3157. 'checkmodes this switch is part of
  3158. LastSwitchHit = "rott2"
  3159. If EventStarted = 4 Then
  3160. CheckrottHits
  3161. Else
  3162. CheckYeyo
  3163. End If
  3164. End Sub
  3165.  
  3166.  
  3167. Sub rott3_Hit
  3168. PlaySound SoundFXDOF("fx_target", 205, DOFPulse, DOFTargets)
  3169. ' score
  3170. If EE Then
  3171. PlayRamdomPunch
  3172. AddScore 1
  3173. Exit Sub
  3174. End If
  3175. AddScore ScoreSpinnerTargets
  3176. PlaySound "scpoing9"
  3177. AddBonus 30
  3178. 'checkmodes this switch is part of
  3179. LastSwitchHit = "rott3"
  3180. If EventStarted = 4 Then
  3181. CheckrottHits
  3182. Else
  3183. CheckYeyo
  3184. End If
  3185. End Sub
  3186.  
  3187.  
  3188.  
  3189. Sub rott4_Hit
  3190. PlaySound SoundFXDOF("fx_target", 206, DOFPulse, DOFTargets)
  3191. ' score
  3192. If EE Then
  3193. PlayRamdomPunch
  3194. AddScore 1
  3195. Exit Sub
  3196. End If
  3197. AddScore ScoreSpinnerTargets
  3198. PlaySound "scpoing9"
  3199. AddBonus 30
  3200. 'checkmodes this switch is part of
  3201. LastSwitchHit = "rott4"
  3202. If EventStarted = 4 Then
  3203. CheckrottHits
  3204. Else
  3205. CheckYeyo
  3206. End If
  3207. End Sub
  3208.  
  3209.  
  3210.  
  3211. Sub rott5_Hit
  3212. PlaySound SoundFXDOF("fx_target", 207, DOFPulse, DOFTargets)
  3213. ' score
  3214. If EE Then
  3215. PlayRamdomPunch
  3216. AddScore 1
  3217. Exit Sub
  3218. End If
  3219. AddScore ScoreSpinnerTargets
  3220. PlaySound "scpoing9"
  3221. AddBonus 30
  3222. 'checkmodes this switch is part of
  3223. LastSwitchHit = "rott5"
  3224. If EventStarted = 4 Then
  3225. CheckrottHits
  3226. Else
  3227. CheckYeyo
  3228. End If
  3229. End Sub
  3230.  
  3231.  
  3232.  
  3233. Sub rott6_Hit
  3234. PlaySound SoundFXDOF("fx_target", 208, DOFPulse, DOFTargets)
  3235. ' score
  3236. If EE Then
  3237. PlayRamdomPunch
  3238. AddScore 1
  3239. Exit Sub
  3240. End If
  3241. AddScore ScoreSpinnerTargets
  3242. PlaySound "scpoing9"
  3243. AddBonus 30
  3244. 'checkmodes this switch is part of
  3245. LastSwitchHit = "rott6"
  3246. If EventStarted = 4 Then
  3247. CheckrottHits
  3248. Else
  3249. CheckYeyo
  3250. End If
  3251. End Sub
  3252.  
  3253.  
  3254.  
  3255. Sub rott7_Hit
  3256. PlaySound SoundFXDOF("fx_target", 209, DOFPulse, DOFTargets)
  3257. ' score
  3258. If EE Then
  3259. PlayRamdomPunch
  3260. AddScore 1
  3261. Exit Sub
  3262. End If
  3263. AddScore ScoreSpinnerTargets
  3264. PlaySound "scpoing9"
  3265. AddBonus 30
  3266. 'checkmodes this switch is part of
  3267. LastSwitchHit = "rott7"
  3268. If EventStarted = 4 Then
  3269. CheckrottHits
  3270. Else
  3271. CheckYeyo
  3272. End If
  3273. End Sub
  3274.  
  3275.  
  3276. '*****************************************************************************
  3277. 'Drop Targets
  3278. '*****************************************************************************
  3279.  
  3280. Sub lt1_Hit
  3281. PlaySound SoundFXDOF("fx_target", 113, DOFPulse, DOFDropTargets)
  3282. lt1.isdropped = 1::lt1.timerenabled = 1
  3283. l11.State = 1
  3284. ' score
  3285. If EE Then
  3286. PlayRamdomPunch
  3287. AddScore 1
  3288. Exit Sub
  3289. End If
  3290. If BankStarted Then
  3291. DisplayFlushQueue
  3292. LightSeqWinEvent.Play SeqRandom, 60, , 1000
  3293. DD "", "", "dmdbankrun1", eNone, eNone, 0, 300, FALSE, ""
  3294. DD "", "", "dmdbankrun2", eNone, eNone, 0, 300, FALSE, ""
  3295. DD "", "", "dmdbankrun3", eNone, eNone, 0, 300, FALSE, ""
  3296. DD "", "", "dmdbankrun4", eNone, eNone, 0, 300, FALSE, ""
  3297. DD "", "", "dmdbankrun5", eNone, eNone, 0, 300, FALSE, ""
  3298. DD "", "", "dmdbankrun6", eNone, eNone, 0, 800, TRUE, ""
  3299. AddScore ScoreBankRunJackpot
  3300. EndBank
  3301. Exit Sub
  3302. End If
  3303. If EventStarted = 7 AND Event7State = 0 Then
  3304. CheckEvent7
  3305. AddScore ScoreDrops
  3306. Exit Sub
  3307. End If
  3308. If EventStarted = 10 Then
  3309. Event10Hits(4) = 1
  3310. l11.State = 0
  3311. l12.State = 0
  3312. l13.State = 0
  3313. l14.State = 0
  3314. CheckEvent10
  3315. AddScore ScoreDrops
  3316. Exit Sub
  3317. End If
  3318. AddScore ScoreDrops
  3319. BankTargets(1) = 1
  3320. PlaySound "ker-chin1"
  3321. CheckBank
  3322. 'checkmodes this switch is part of
  3323. LastSwitchHit = "lt1"
  3324. End Sub
  3325.  
  3326. Sub lt1_Timer:lt1.isdropped = 0::lt1.timerenabled = 0:End Sub
  3327.  
  3328. Sub lt2_Hit
  3329. PlaySound SoundFXDOF("fx_target", 114, DOFPulse, DOFDropTargets)
  3330. lt2.isdropped = 1::lt2.timerenabled = 1
  3331. l12.State = 1
  3332. ' score
  3333. If EE Then
  3334. PlayRamdomPunch
  3335. AddScore 1
  3336. Exit Sub
  3337. End If
  3338. If BankStarted Then
  3339. DisplayFlushQueue
  3340. LightSeqWinEvent.Play SeqRandom, 60, , 1000
  3341. DD "", "", "dmdbankrun1", eNone, eNone, 0, 300, FALSE, ""
  3342. DD "", "", "dmdbankrun2", eNone, eNone, 0, 300, FALSE, ""
  3343. DD "", "", "dmdbankrun3", eNone, eNone, 0, 300, FALSE, ""
  3344. DD "", "", "dmdbankrun4", eNone, eNone, 0, 300, FALSE, ""
  3345. DD "", "", "dmdbankrun5", eNone, eNone, 0, 300, FALSE, ""
  3346. DD "", "", "dmdbankrun6", eNone, eNone, 0, 800, TRUE, ""
  3347. AddScore ScoreBankRunJackpot
  3348. EndBank
  3349. Exit Sub
  3350. End If
  3351. AddScore ScoreDrops
  3352. If EventStarted = 7 AND Event7State = 0 Then
  3353. CheckEvent7
  3354. Exit Sub
  3355. End If
  3356. If EventStarted = 10 Then
  3357. Event10Hits(4) = 1
  3358. l11.State = 0
  3359. l12.State = 0
  3360. l13.State = 0
  3361. l14.State = 0
  3362. CheckEvent10
  3363. Exit Sub
  3364. End If
  3365. BankTargets(2) = 1
  3366. AddScore ScoreDrops
  3367. PlaySound "ker-chin1"
  3368. CheckBank
  3369. 'checkmodes this switch is part of
  3370. LastSwitchHit = "lt2"
  3371. End Sub
  3372.  
  3373. Sub lt2_Timer:lt2.isdropped = 0::lt2.timerenabled = 0:End Sub
  3374.  
  3375. Sub lt3_Hit
  3376. PlaySound SoundFXDOF("fx_target", 115, DOFPulse, DOFDropTargets)
  3377. lt3.isdropped = 1::lt3.timerenabled = 1
  3378. l13.State = 1
  3379. ' score
  3380. If EE Then
  3381. PlayRamdomPunch
  3382. AddScore 1
  3383. Exit Sub
  3384. End If
  3385. If BankStarted Then
  3386. DisplayFlushQueue
  3387. LightSeqWinEvent.Play SeqRandom, 60, , 1000
  3388. DD "", "", "dmdbankrun1", eNone, eNone, 0, 300, FALSE, ""
  3389. DD "", "", "dmdbankrun2", eNone, eNone, 0, 300, FALSE, ""
  3390. DD "", "", "dmdbankrun3", eNone, eNone, 0, 300, FALSE, ""
  3391. DD "", "", "dmdbankrun4", eNone, eNone, 0, 300, FALSE, ""
  3392. DD "", "", "dmdbankrun5", eNone, eNone, 0, 300, FALSE, ""
  3393. DD "", "", "dmdbankrun6", eNone, eNone, 0, 800, TRUE, ""
  3394. AddScore ScoreBankRunJackpot
  3395. EndBank
  3396. Exit Sub
  3397. End If
  3398. AddScore ScoreDrops
  3399. If EventStarted = 7 AND Event7State = 0 Then
  3400. CheckEvent7
  3401. Exit Sub
  3402. End If
  3403. If EventStarted = 10 Then
  3404. Event10Hits(4) = 1
  3405. l11.State = 0
  3406. l12.State = 0
  3407. l13.State = 0
  3408. l14.State = 0
  3409. CheckEvent10
  3410. Exit Sub
  3411. End If
  3412. BankTargets(3) = 1
  3413. AddScore ScoreDrops
  3414. PlaySound "ker-chin1"
  3415. CheckBank
  3416. 'checkmodes this switch is part of
  3417. LastSwitchHit = "lt3"
  3418. End Sub
  3419.  
  3420. Sub lt3_Timer:lt3.isdropped = 0::lt3.timerenabled = 0:End Sub
  3421.  
  3422. Sub lt4_Hit
  3423. PlaySound SoundFXDOF("fx_target", 116, DOFPulse, DOFDropTargets)
  3424. lt4.isdropped = 1::lt4.timerenabled = 1
  3425. l14.State = 1
  3426. ' score
  3427. If EE Then
  3428. PlayRamdomPunch
  3429. AddScore 1
  3430. Exit Sub
  3431. End If
  3432. If BankStarted Then
  3433. DisplayFlushQueue
  3434. LightSeqWinEvent.Play SeqRandom, 60, , 1000
  3435. DD "", "", "dmdbankrun1", eNone, eNone, 0, 300, FALSE, ""
  3436. DD "", "", "dmdbankrun2", eNone, eNone, 0, 300, FALSE, ""
  3437. DD "", "", "dmdbankrun3", eNone, eNone, 0, 300, FALSE, ""
  3438. DD "", "", "dmdbankrun4", eNone, eNone, 0, 300, FALSE, ""
  3439. DD "", "", "dmdbankrun5", eNone, eNone, 0, 300, FALSE, ""
  3440. DD "", "", "dmdbankrun6", eNone, eNone, 0, 800, TRUE, ""
  3441. AddScore ScoreBankRunJackpot
  3442. EndBank
  3443. Exit Sub
  3444. End If
  3445. AddScore ScoreDrops
  3446. If EventStarted = 7 AND Event7State = 0 Then
  3447. CheckEvent7
  3448. Exit Sub
  3449. End If
  3450. If EventStarted = 10 Then
  3451. Event10Hits(4) = 1
  3452. l11.State = 0
  3453. l12.State = 0
  3454. l13.State = 0
  3455. l14.State = 0
  3456. CheckEvent10
  3457. Exit Sub
  3458. End If
  3459. BankTargets(4) = 1
  3460. AddScore ScoreDrops
  3461. PlaySound "ker-chin1"
  3462. CheckBank
  3463. 'checkmodes this switch is part of
  3464. LastSwitchHit = "lt4"
  3465. End Sub
  3466.  
  3467. Sub lt4_Timer:lt4.isdropped = 0::lt4.timerenabled = 0:End Sub
  3468.  
  3469.  
  3470. '*************
  3471. ' Car Side
  3472. '*************
  3473.  
  3474.  
  3475. Sub rt1_Hit
  3476. PlaySound SoundFX("fx_target",DOFContactors)
  3477. SetLamp 4, 0, 1, 8
  3478. ' score
  3479. If EE Then
  3480. PlayRamdomPunch
  3481. AddScore 1
  3482. Exit Sub
  3483. End If
  3484. If EventStarted = 10 Then
  3485. AddScore ScoreCar
  3486. Event10Hits(5) = 1
  3487. l17.State = 0
  3488. CheckEvent10
  3489. Exit Sub
  3490. End If
  3491. If GetCarStarted Then
  3492. CarHits = 0
  3493. setlamp 1, 0, 1, 10
  3494. AddScore ScoreCarJackpot
  3495. DisplayFlushQueue
  3496. LightSeqWinEvent.Play SeqRandom, 60, , 1000
  3497. DD "", "", "dmdgetcar2", eNone, eNone, 0, 300, FALSE, "car_start"
  3498. DD "", "", "dmdgetcar3", eNone, eNone, 0, 300, FALSE, "car_start"
  3499. DD "", "", "dmdgetcar4", eNone, eNone, 0, 300, FALSE, "car_start"
  3500. DD "", "", "dmdgetcar5", eNone, eNone, 0, 1500, TRUE, ""
  3501. EndGetCar
  3502. Exit Sub
  3503. End If
  3504. 'checkmodes this switch is part of
  3505. AddScore ScoreCar
  3506. LastSwitchHit = "rt1"
  3507. CarHits = CarHits + 1
  3508. PlaySound "car_acell":DOF 126, DOFPulse
  3509. CheckCarHits
  3510. End Sub
  3511.  
  3512. '*****************************************************************************
  3513. 'Drop Targets Center
  3514. '*****************************************************************************
  3515.  
  3516. Dim DroppedTargets(3), CurrentCT, CTDelay
  3517. Dim ResetDropDelay
  3518.  
  3519. Sub ResetDroptargets
  3520. PlaySound SoundFXDOF("fx_resetdrop", 112, DOFPulse, DOFContactors)
  3521. ct1.isdropped = 0
  3522. ct2.isdropped = 0
  3523. ct3.isdropped = 0
  3524. DroppedTargets(0) = 0
  3525. DroppedTargets(1) = 0
  3526. DroppedTargets(2) = 0
  3527. DroppedTargets(3) = 0
  3528. CenterBlock.Open = 0
  3529. Door.RotX = 0
  3530. CurrentCT = 0
  3531. If EventStarted = 0 Then
  3532. CTDelay = 91
  3533. l38.State = 0
  3534. l39.State = 0
  3535. l40.State = 0
  3536. l37.State = 0
  3537. End If
  3538. ResetDropDelay = 0
  3539. End Sub
  3540.  
  3541. Sub DropAll
  3542. PlaySound SoundFX("fx_droptarget", DOFcontactors)
  3543. DOF 112, DOFPulse
  3544. ct1.isdropped = 1
  3545. ct2.isdropped = 1
  3546. ct3.isdropped = 1
  3547. DroppedTargets(1) = 1
  3548. DroppedTargets(2) = 1
  3549. DroppedTargets(3) = 1
  3550. CenterBlock.Open = 1
  3551. Door.RotX = 85
  3552. CTDelay = 0
  3553. If EventStarted = 0 Then
  3554. l38.State = 1
  3555. l39.State = 1
  3556. l40.State = 1
  3557. l37.State = 2
  3558. End If
  3559. End Sub
  3560.  
  3561. Sub CenterBlock_Hit:PlaySound "fx_metalhit":DOF 117, DOFPulse:End Sub
  3562.  
  3563. Sub ct1_Hit
  3564. PlaySound SoundFXDOF("fx_droptarget", 109, DOFPulse, DOFDropTargets)
  3565. ct1.isdropped = 1
  3566. l38.State = 1
  3567. DroppedTargets(1) = 1
  3568. ' score
  3569. 'checkmodes this switch is part of
  3570. If EE Then
  3571. PlayRamdomPunch
  3572. ct1.TimerEnabled = 1
  3573. AddScore 1
  3574. Exit Sub
  3575. End If
  3576. If EventStarted = 10 Then
  3577. AddScore ScoreDrops
  3578. ct1.TimerEnabled = 1
  3579. l37.State = 0
  3580. l38.State = 0
  3581. l39.State = 0
  3582. l40.State = 0
  3583. Event10Hits(6) = 1
  3584. CheckEvent10
  3585. Exit Sub
  3586. End If
  3587. If EventStarted = 6 Then
  3588. AddScore ScoreDrops
  3589. CheckEvent6
  3590. Exit Sub
  3591. End If
  3592. If HitManStarted Then
  3593. AddScore ScoreDrops
  3594. ScoreHitmanJackpot = ScoreHitmanJackpot + ScoreHitmanJackpotIncrease
  3595. DD "-", CenterBottom("JACKPOT IS " & FormatScore(ScoreHitmanJackpot) ), "", eNone, eNone, 0, 2000, True, ""
  3596. ct1.TimerEnabled = 1
  3597. Exit Sub
  3598. End If
  3599. If EventStarted = 2 Then
  3600. ct1.TimerEnabled = 1
  3601. l38.State = 2
  3602. AddScore ScoreDrops
  3603. CTHits = CTHits + 1
  3604. If CTHits = 6 Then WinEvent2
  3605. Exit Sub
  3606. End If
  3607.  
  3608. If EventStarted OR SideEventStarted Then 'if any other event is started then also raise up again the target, but only score points
  3609. ct1.TimerEnabled = 1
  3610. l38.State = 0
  3611. AddScore ScoreDrops
  3612. Exit Sub
  3613. End If
  3614.  
  3615. ' normal working of the droptargets before en event
  3616. If CurrentCT = 1 Then
  3617. CTDelay = 0
  3618. CurrentCT = 0
  3619. DropAll
  3620. AddScore ScoreDrops * 3
  3621. Else
  3622. AddScore ScoreDrops
  3623. PlaySound "gun6"
  3624. If CTDelay> 0 then
  3625. l39.State = 0
  3626. l40.State = 0
  3627. CTDelay = 0
  3628. CurrentCT = 0
  3629. End If
  3630. CheckDropTargets
  3631. End If
  3632. End Sub
  3633.  
  3634. Sub ct1_Timer
  3635. ct1.TimerEnabled = 0
  3636. PlaySound "fx_resetdrop"
  3637. ct1.IsDropped = 0
  3638. End Sub
  3639.  
  3640. Sub ct2_Hit
  3641. PlaySound SoundFXDOF("fx_droptarget", 110, DOFPulse, DOFDropTargets)
  3642. ct2.isdropped = 1
  3643. l39.State = 1
  3644. DroppedTargets(2) = 1
  3645. ' score
  3646. If EE Then
  3647. PlayRamdomPunch
  3648. ct2.TimerEnabled = 1
  3649. AddScore 1
  3650. Exit Sub
  3651. End If
  3652. 'checkmodes this switch is part of
  3653. If EventStarted = 6 Then
  3654. AddScore ScoreDrops
  3655. CheckEvent6
  3656. Exit Sub
  3657. End If
  3658. If EventStarted = 10 Then
  3659. AddScore ScoreDrops
  3660. ct2.TimerEnabled = 1
  3661. l37.State = 0
  3662. l38.State = 0
  3663. l39.State = 0
  3664. l40.State = 0
  3665. Event10Hits(6) = 1
  3666. CheckEvent10
  3667. Exit Sub
  3668. End If
  3669. If HitManStarted Then
  3670. AddScore ScoreDrops
  3671. ScoreHitmanJackpot = ScoreHitmanJackpot + ScoreHitmanJackpotIncrease
  3672. DD "-", CenterBottom("JACKPOT IS " & FormatScore(ScoreHitmanJackpot) ), "", eNone, eNone, 0, 2000, True, ""
  3673. ct2.TimerEnabled = 1
  3674. Exit Sub
  3675. End If
  3676. If EventStarted = 2 Then 'raise up again the target
  3677. ct2.TimerEnabled = 1
  3678. l39.State = 2
  3679. AddScore ScoreDrops
  3680. CTHits = CTHits + 1
  3681. If CTHits = 6 Then WinEvent2
  3682. Exit Sub
  3683. End If
  3684.  
  3685. If EventStarted OR SideEventStarted Then 'if any other event is started then also raise up again the target, but only score points
  3686. ct2.TimerEnabled = 1
  3687. l39.State = 0
  3688. AddScore ScoreDrops
  3689. Exit Sub
  3690. End If
  3691.  
  3692. ' normal working of the droptargets before en event
  3693. If CurrentCT = 2 Then
  3694. CTDelay = 0
  3695. CurrentCT = 0
  3696. DropAll
  3697. AddScore ScoreDrops * 3
  3698. Else
  3699. AddScore ScoreDrops
  3700. PlaySound "gun6"
  3701. If CTDelay> 0 then
  3702. l38.State = 0
  3703. l40.State = 0
  3704. CTDelay = 0
  3705. CurrentCT = 0
  3706. End If
  3707. CheckDropTargets
  3708. End If
  3709. End Sub
  3710.  
  3711. Sub ct2_Timer
  3712. ct2.TimerEnabled = 0
  3713. PlaySound "fx_resetdrop"
  3714. ct2.IsDropped = 0
  3715. End Sub
  3716.  
  3717. Sub ct3_Hit
  3718. PlaySound SoundFXDOF("fx_droptarget", 111, DOFPulse, DOFDropTargets)
  3719. ct3.isdropped = 1
  3720. l40.State = 1
  3721. DroppedTargets(3) = 1
  3722. ' score
  3723. If EE Then
  3724. PlayRamdomPunch
  3725. ct3.TimerEnabled = 1
  3726. AddScore 1
  3727. Exit Sub
  3728. End If
  3729. 'checkmodes this switch is part of
  3730. If EventStarted = 6 Then
  3731. AddScore ScoreDrops
  3732. CheckEvent6
  3733. Exit Sub
  3734. End If
  3735. If EventStarted = 10 Then
  3736. AddScore ScoreDrops
  3737. ct3.TimerEnabled = 1
  3738. l37.State = 0
  3739. l38.State = 0
  3740. l39.State = 0
  3741. l40.State = 0
  3742. Event10Hits(6) = 1
  3743. CheckEvent10
  3744. Exit Sub
  3745. End If
  3746. If HitManStarted Then
  3747. AddScore ScoreDrops
  3748. ScoreHitmanJackpot = ScoreHitmanJackpot + ScoreHitmanJackpotIncrease
  3749. DD "-", CenterBottom("JACKPOT IS " & FormatScore(ScoreHitmanJackpot) ), "", eNone, eNone, 0, 2000, True, ""
  3750. ct3.TimerEnabled = 1
  3751. Exit Sub
  3752. End If
  3753. If EventStarted = 2 Then 'raise up again the target
  3754. ct3.TimerEnabled = 1
  3755. l40.State = 2
  3756. AddScore ScoreDrops
  3757. CTHits = CTHits + 1
  3758. If CTHits = 6 Then WinEvent2
  3759. Exit Sub
  3760. End If
  3761.  
  3762. If EventStarted OR SideEventStarted Then 'if any other event is started then also raise up again the target, but only score points
  3763. ct3.TimerEnabled = 1
  3764. l40.State = 0
  3765. AddScore ScoreDrops
  3766. Exit Sub
  3767. End If
  3768.  
  3769. ' normal working of the droptargets before en event
  3770. If CurrentCT = 3 Then
  3771. CTDelay = 0
  3772. CurrentCT = 0
  3773. DropAll
  3774. AddScore ScoreDrops * 3
  3775. Else
  3776. AddScore ScoreDrops
  3777. PlaySound "gun6"
  3778. If CTDelay> 0 then
  3779. l38.State = 0
  3780. l39.State = 0
  3781. CTDelay = 0
  3782. CurrentCT = 0
  3783. End If
  3784. CheckDropTargets
  3785. End If
  3786. End Sub
  3787.  
  3788. Sub ct3_Timer
  3789. ct3.TimerEnabled = 0
  3790. PlaySound "fx_resetdrop"
  3791. ct3.IsDropped = 0
  3792. End Sub
  3793.  
  3794. Sub CheckDropTargets
  3795. DroppedTargets(0) = DroppedTargets(1) + DroppedTargets(2) + DroppedTargets(3)
  3796. If DroppedTargets(0) = 3 Then DropAll
  3797. End Sub
  3798.  
  3799. '****************************
  3800. ' Rotate lights with flippers
  3801. '****************************
  3802. ' lights are l7, l8, l9 and l10
  3803.  
  3804. Dim LaneLightsTimes, LaneLightsGoal
  3805.  
  3806. Sub InitLaneLights
  3807. LaneLightsTimes = 0
  3808. LaneLightsGoal = 10
  3809. End Sub
  3810.  
  3811. Sub RotateLightsLeft
  3812. Dim tmp
  3813. tmp = l7.state
  3814. l7.state = l8.state
  3815. l8.state = l9.state
  3816. l9.state = l10.state
  3817. l10.state = tmp
  3818. End Sub
  3819.  
  3820. Sub RotateLightsRight
  3821. Dim tmp
  3822. tmp = l10.state
  3823. l10.state = l9.state
  3824. l9.state = l8.state
  3825. l8.state = l7.state
  3826. l7.state = tmp
  3827. End Sub
  3828.  
  3829. Sub CheckFlipperLights
  3830. If l7.State = 1 AND l8.State = 1 AND l9.State = 1 AND l10.State = 1 Then
  3831. LightSeqFlipper.Play SeqBlinking, , 5, 40
  3832. PlaySound "reload5"
  3833. l7.state = 0
  3834. l8.state = 0
  3835. l9.state = 0
  3836. l10.state = 0
  3837. LaneLightsTimes = LaneLightsTimes + 1
  3838. If LaneLightsTimes = LaneLightsGoal Then 'turn on Extraball Light
  3839. LaneLightsGoal = 40 ' you need 40 for the next extra ball
  3840. LitExtraBall
  3841. End If
  3842. End If
  3843. End Sub
  3844.  
  3845. '************
  3846. ' Turn Table
  3847. '************
  3848.  
  3849. Dim RotSpeed, RotDir, RotOn, RotRounds
  3850.  
  3851. Sub TurnHelp_Hit
  3852. RotRounds = RotRounds + 1
  3853. If RotOn = 0 Then TurnTableOn
  3854. If RotRounds> 2 Then LockPost.IsDropped = 1:DOF 135, DOFPulse
  3855. TurnHelp.kick 275, 15 + RND(1) * 5
  3856. End Sub
  3857.  
  3858. Sub TurnHelp1_Hit
  3859. If RotOn = 0 Then
  3860. TurnTableOn
  3861. End If
  3862. TurnHelp1.kick 320, 15 + RND(1) * 5
  3863. End Sub
  3864.  
  3865. Sub TurnTableON
  3866. RotOn = 1
  3867. SetLamp 5, 0, 2, 0
  3868. RotSpeed = 0
  3869. RotDir = 1
  3870. Rotation.Enabled = 1:DOF 122, DOFOn
  3871. End Sub
  3872.  
  3873. Sub TurnTableOff
  3874. RotOn = 0
  3875. SetLamp 5, 0, 0, 0
  3876. RotDir = -1
  3877. End Sub
  3878.  
  3879. Sub Rotation_Timer
  3880. RotSpeed = RotSpeed + RotDir
  3881. If RotSpeed >= 30 Then RotSpeed = 30
  3882. If RotSpeed <= 0 Then
  3883. Rotation.Enabled = 0:DOF 122, DOFOff
  3884. End If
  3885. RotatingPlatform.RotAndTra2 = RotatingPlatform.RotAndTra2 + RotSpeed
  3886. End Sub
  3887.  
  3888. '**************
  3889. ' Head Tracking
  3890. '**************
  3891.  
  3892. Dim HeadPos
  3893. HeadPos = 3:UpdateHead
  3894.  
  3895. Sub UpdateHead
  3896. If ShootingBalls then Exit Sub
  3897. Select Case HeadPos
  3898. Case 1:doll.Image = "doll1":DollR.State = ABS(DollR.State -1)
  3899. Case 2:doll.Image = "doll2":DollR.State = ABS(DollR.State -1)
  3900. Case 3:doll.Image = "doll3":DollR.State = ABS(DollR.State -1)
  3901. Case 4:doll.Image = "doll4":DollR.State = ABS(DollR.State -1)
  3902. Case 5:doll.Image = "doll5":DollR.State = ABS(DollR.State -1)
  3903. End Select
  3904. End Sub
  3905.  
  3906. Sub Head1_Hit:HeadPos = 1:UpdateHead:End Sub
  3907. Sub Head2_Hit:HeadPos = 2:UpdateHead:End Sub
  3908. Sub Head3_Hit:HeadPos = 3:UpdateHead:End Sub
  3909. Sub Head4_Hit:HeadPos = 4:UpdateHead:End Sub
  3910. Sub Head5_Hit:HeadPos = 5:UpdateHead:End Sub
  3911.  
  3912. '***********************
  3913. 'Mouth talking animation
  3914. '***********************
  3915.  
  3916. Dim MouthPos, MouthReps, MouthIntervals, Voice
  3917. MouthPos = 0
  3918. MouthReps = 0
  3919. MouthIntervals = ""
  3920. Voice = ""
  3921.  
  3922. Sub Say(sound, interval)
  3923. StopSound Voice
  3924. MouthPos = 0
  3925. Voice = sound
  3926. MouthReps = LEN(interval)
  3927. MouthIntervals = interval
  3928. PlaySound Voice
  3929. If ShootingBalls = 0 Then
  3930. Mouth.Enabled = 1
  3931. End If
  3932. End Sub
  3933.  
  3934. Sub Mouth_Timer
  3935. Dim tmp, tmpinterval
  3936. tmp = HeadPos + MouthPos * 5
  3937. Select Case tmp
  3938. Case 1, 2, 3, 4, 5:UpdateHead:Mouth.Interval = 20 * ABS(MID(MouthIntervals, Len(MouthIntervals) - MouthReps + 1, 1) )
  3939. Case 6:doll.Image = "doll1a":DollR.State = ABS(DollR.State -1):Mouth.Interval = 20 * ABS(MID(MouthIntervals, Len(MouthIntervals) - MouthReps + 1, 1) )
  3940. Case 7:doll.Image = "doll2a":DollR.State = ABS(DollR.State -1):Mouth.Interval = 20 * ABS(MID(MouthIntervals, Len(MouthIntervals) - MouthReps + 1, 1) )
  3941. Case 8:doll.Image = "doll3a":DollR.State = ABS(DollR.State -1):Mouth.Interval = 20 * ABS(MID(MouthIntervals, Len(MouthIntervals) - MouthReps + 1, 1) )
  3942. Case 9:doll.Image = "doll4a":DollR.State = ABS(DollR.State -1):Mouth.Interval = 20 * ABS(MID(MouthIntervals, Len(MouthIntervals) - MouthReps + 1, 1) )
  3943. Case 10:doll.Image = "doll5a":DollR.State = ABS(DollR.State -1):Mouth.Interval = 20 * ABS(MID(MouthIntervals, Len(MouthIntervals) - MouthReps + 1, 1) )
  3944. End Select
  3945.  
  3946. MouthPos = ABS(MouthPos -1)
  3947. MouthReps = MouthReps -1
  3948. If MouthReps <= 0 Then
  3949. Mouth.Enabled = 0
  3950. Updatehead
  3951. End If
  3952. End Sub
  3953.  
  3954. '*************************
  3955. 'Say Something stupid test
  3956. '*************************
  3957. ' for example Say "Bring_it_to_me_cockroach", 313211131111
  3958. ' the higher the number the longer the pause: 1 short delay, 9 long delay
  3959. ' first number is always with the mouth close,
  3960.  
  3961. Sub SaySomethingStupid
  3962. Dim currentsay
  3963. currentsay = INT(81 * RND(1) )
  3964. Select Case currentsay
  3965. Case 0:Say "Boyfriend_fuck_him", "191589159218121813":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3966. Case 1:Say "Bring_it_to_me_cockroach", "1622111115121":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3967. Case 2:Say "Bring_my_car_dont_fuck_around", "179517972636663925":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3968. Case 3:Say "Cmon_bring_your_army", "13144814":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3969. Case 4:Say "Cmon_come_and_get_me", "12132643233414":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3970. Case 5:Say "Cmon_pussy_cat", "16272538":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3971. Case 6:Say "doing_a_great_job", "13252527":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3972. Case 7:Say "Dont_fuck_with_me", "34433337":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3973. Case 8:Say "Dont_make_me_spank_you", "3323242413631313121313":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3974. Case 9:Say "Dont_you_fucken_listen_man", "2313432613131336":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3975. Case 10:Say "Dont_you_got_something_better_2_do", "122121212121212122123":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3976. Case 11:Say "Free_advice_dont_fuck_with_me", "14242424247313132222722424":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3977. Case 12:Say "Fuck_off", "2939":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3978. Case 13:Say "Fuck_you_chico", "16574539":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3979. Case 14:Say "Fuckin_cock_sucker", "8524252524":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3980. Case 15:Say "fuckin_cockroach", "1934242624":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3981. Case 16:Say "Fuckin_fuck", "29381":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3982. Case 17:Say "Go_fuck_yourself", "353528":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3983. Case 18:Say "Have_my_car_set_to_me_ok", "24152414141726":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3984. Case 19:Say "Hello_pussy_cat", "16242424":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3985. Case 20:Say "Hello_you_there", "176427":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3986. Case 21:Say "hello1", "391":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3987. Case 22:Say "hello2", "281":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3988. Case 23:Say "hey", "161":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3989. Case 24:Say "Hey_there_sweet_cheeks", "2414131314":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3990. Case 25:Say "heyfuckyouman", "162527171":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3991. Case 26:Say "How_about_we_get_some_ice_cream", "2792131314141413131131":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3992. Case 27:Say "I_dont_give_a_fuck", "262423141":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3993. Case 28:Say "I_feel_like_I_already_know_you", "1324171223122413":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3994. Case 29:Say "I_like_you_your_like_a_tiger", "2713931234131":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3995. Case 30:Say "I_need_my_fuckin_car_man", "162424161476371":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3996. Case 31:Say "I_piss_in_your_face", "2333131313131313132":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3997. Case 32:Say "I_tell_you_something_fuck_you_man", "232414239535251":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3998. Case 33:Say "I_told_you_not_to_fuck_with_me", "2335145336543332151":If B2SOn Then Controller.B2SStartAnimation("Tony")
  3999. Case 34:Say "I_want_to_talk_2_George", "16873332362":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4000. Case 35:Say "Im_fucked", "5417191":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4001. Case 36:Say "Im_Tony_fuckin_M", "13362526251":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4002. Case 37:Say "Im_Tony_fuckin_Montana", "13362526251":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4003. Case 38:Say "Its_obvious_you_got_an_attitude", "131414242224231414141":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4004. Case 39:Say "My_name_is_Tony_M", "2414133413341":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4005. Case 40:Say "No_fuckin_way", "1314251":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4006. Case 41:Say "Now_your_fucked", "26361":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4007. Case 42:Say "Oh_baby", "44241":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4008. Case 43:Say "Ok", "32341":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4009. Case 44:Say "Ok_lets_make_this_happen", "12361214231":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4010. Case 45:Say "Ok_so_what_you_doing_later", "3223841214131":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4011. Case 46:Say "Ok_so_why_dont_we_get_together", "322384121413141":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4012. Case 47:Say "Ok_your_starting_to_piss_me_off", "222514122315421":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4013. Case 48:Say "Run_while_you_can_stupid_fuck", "13131335142121431":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4014. Case 49:Say "saygoodnight", "251414152424231":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4015. Case 50:Say "sayhello2", "1415142926161":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4016. Case 51:Say "Shit_ass_fuck", "362434":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4017. Case 52:Say "Thats_ok", "26351":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4018. Case 53:Say "Tony_would_like_a_word", "131312363628273414141":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4019. Case 54:Say "Want_to_get_a_drink", "3425233424261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4020. Case 55:Say "wastemytime", "13121324461":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4021. Case 56:Say "Watch_yourself_man", "1324238523133435212314241":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4022. Case 57:Say "What_are_you_going_to_do_for_me", "1312121312131":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4023. Case 58:Say "Who_you_think_you_fuckin_with", "1324313131313761":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4024. Case 59:Say "Why_dont_you_get_fucked", "241414251":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4025. Case 60:Say "WTF_do_you_want", "27391":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4026. Case 61:Say "Yeah_its_Tony", "3633371":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4027. Case 62:Say "Yeah1", "271":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4028. Case 63:Say "Yeah2", "261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4029. Case 64:Say "You_better_not_be_comunist", "12131313253423231413325272":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4030. Case 65:Say "You_boring_you_know_that", "153634151":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4031. Case 66:Say "You_fuckin_high_or_what", "131426141":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4032. Case 67:Say "You_fuckin_hossa", "13172617171":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4033. Case 68:Say "You_fuckin_kidding_me_man", "2324133413141":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4034. Case 69:Say "You_fuckin_prick", "232423441":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4035. Case 70:Say "You_guys_dont_quit", "1423142324453313332324253453433233343252433341534341":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4036. Case 71:Say "You_just_fucked_up_man", "24251423341":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4037. Case 72:Say "You_know_what_you_are_soft", "242673333574324242423241":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4038. Case 73:Say "You_know_what_you_need", "26279965342515351":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4039. Case 74:Say "You_know_who_your_fuckin_with", "25162424261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4040. Case 75:Say "You_need_an_army_to_take_me", "13151414141413331":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4041. Case 76:Say "You_picked_the_wrong_guy_to_fuck_with", "23232523233334261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4042. Case 77:Say "You_think_you_can_fuck_with_me", "2414141423261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4043. Case 78:Say "You_want_me_dont_you", "4415151":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4044. Case 79:Say "For_fuck_sake", "231323241":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4045. Case 80:Say "Hey_who_the_fuck_r_u", "232424241":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4046.  
  4047. End Select
  4048. End Sub
  4049.  
  4050. Sub SaySomethingWhileWaiting
  4051. Dim tmp
  4052. tmp = INT(RND(1) * 6)
  4053. Select Case tmp
  4054. Case 0:Say "Dont_you_got_something_better_2_do", "122121212121212122123":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4055. Case 1:Say "Fuck_off", "2939":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4056. Case 2:Say "You_want_me_dont_you", "4415151":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4057. Case 3:Say "You_better_not_be_comunist", "12131313253423231413325272":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4058. Case 4:Say "WTF_do_you_want", "27391":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4059. Case 5:Say "You_guys_dont_quit", "1423142324453313332324253453433233343252433341534341":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4060. End Select
  4061. End Sub
  4062.  
  4063. '*******************
  4064. ' Scarface Shooting
  4065. '*******************
  4066. ' animation and shooting av balls
  4067. ' 1-disable the head triggers and mouth
  4068. ' 2-start animation
  4069. ' 3-shoot balls
  4070.  
  4071. Dim ShootingBalls, ScarShootPos, ScarShootBall
  4072.  
  4073. Sub InitScarface
  4074. ShootingBalls = 0
  4075. ScarShootPos = 0
  4076. ScarShootBall = 0
  4077. End Sub
  4078.  
  4079. Sub StartScarShooting(nballs) 'it shoot the ball which started the multiball + multiballs
  4080. ScarShootBall = ScarShootBall + nballs
  4081. If ShootingBalls = 0 Then
  4082. ShootingBalls = 1
  4083. Mouth.Enabled = 0
  4084. ScarShootPos = 0
  4085. ScarAnim.Enabled = 1
  4086. End If
  4087. End Sub
  4088.  
  4089. Sub ScarAnim_Timer
  4090. Select Case ScarShootPos
  4091. Case 0:doll.Image = "doll2"
  4092. Case 1:doll.Image = "doll2"
  4093. Case 2:doll.Image = "dollg1"
  4094. Case 3:doll.Image = "dollg1"
  4095. Case 4:doll.Image = "dollg1"
  4096. Case 5:doll.Image = "dollg2"
  4097. If ScarShootBall AND(BallsOnPlayfield + BallsinLock) <MaxBalls + 1 Then
  4098. cannon1.createball
  4099. cannon1.kick 160, 16 + RND(1) * 3
  4100. If EE AND ScarShootBall = 1 Then PlaySound "sf_hadouken"
  4101. ScarShootBall = ScarShootBall -1
  4102. BallsOnPlayfield = BallsOnPlayfield + 1
  4103. If BallsOnPlayfield> 1 Then MultiBallMode = 1
  4104. PlaySound "machinegun1"
  4105. If B2SOn Then Controller.B2SStartAnimation("Muzzle")
  4106. End IF
  4107. Case 6:doll.Image = "dollg3"
  4108. If ScarShootBall AND(BallsOnPlayfield + BallsinLock) <MaxBalls Then
  4109. cannon2.createball
  4110. cannon2.kick 170, 16 + RND(1) * 3
  4111. If EE AND ScarShootBall = 1 Then PlaySound "sf_hadouken"
  4112. ScarShootBall = ScarShootBall -1
  4113. BallsOnPlayfield = BallsOnPlayfield + 1
  4114. If BallsOnPlayfield> 1 Then MultiBallMode = 1
  4115. PlaySound "machinegun1"
  4116. If B2SOn Then Controller.B2SStartAnimation("Muzzle")
  4117. End IF
  4118. Case 7:doll.Image = "dollg4"
  4119. If ScarShootBall AND(BallsOnPlayfield + BallsinLock) <MaxBalls Then
  4120. cannon3.createball
  4121. cannon3.kick 178, 16 + RND(1) * 3
  4122. If EE AND ScarShootBall = 1 Then PlaySound "sf_hadouken"
  4123. ScarShootBall = ScarShootBall -1
  4124. BallsOnPlayfield = BallsOnPlayfield + 1
  4125. If BallsOnPlayfield> 1 Then MultiBallMode = 1
  4126. PlaySound "machinegun1"
  4127. If B2SOn Then Controller.B2SStartAnimation("Muzzle")
  4128. End IF
  4129. Case 8:doll.Image = "dollg5"
  4130. If ScarShootBall AND(BallsOnPlayfield + BallsinLock) <MaxBalls Then
  4131. cannon4.createball
  4132. cannon4.kick 190, 16 + RND(1) * 3
  4133. If EE AND ScarShootBall = 1 Then PlaySound "sf_hadouken"
  4134. ScarShootBall = ScarShootBall -1
  4135. BallsOnPlayfield = BallsOnPlayfield + 1
  4136. If BallsOnPlayfield> 1 Then MultiBallMode = 1
  4137. PlaySound "machinegun1"
  4138. If B2SOn Then Controller.B2SStartAnimation("Muzzle")
  4139. End IF
  4140. Case 9:doll.Image = "dollg6"
  4141. If ScarShootBall AND(BallsOnPlayfield + BallsinLock) <MaxBalls Then
  4142. cannon5.createball
  4143. cannon5.kick 199, 16 + RND(1) * 3
  4144. If EE AND ScarShootBall = 1 Then PlaySound "sf_hadouken"
  4145. ScarShootBall = ScarShootBall -1
  4146. BallsOnPlayfield = BallsOnPlayfield + 1
  4147. If BallsOnPlayfield> 1 Then MultiBallMode = 1
  4148. PlaySound "machinegun1"
  4149. If B2SOn Then Controller.B2SStartAnimation("Muzzle")
  4150. End IF
  4151. Case 10:doll.Image = "dollg7"
  4152. Case 11:doll.Image = "dollg7"
  4153. Case 12:doll.Image = "dollg6"
  4154. If ScarShootBall AND(BallsOnPlayfield + BallsinLock) <MaxBalls Then
  4155. cannon5.createball
  4156. cannon5.kick 199, 16 + RND(1) * 3
  4157. If EE AND ScarShootBall = 1 Then PlaySound "sf_hadouken"
  4158. ScarShootBall = ScarShootBall -1
  4159. BallsOnPlayfield = BallsOnPlayfield + 1
  4160. If BallsOnPlayfield> 1 Then MultiBallMode = 1
  4161. PlaySound "machinegun1"
  4162. If B2SOn Then Controller.B2SStartAnimation("Muzzle")
  4163. End IF
  4164. Case 13:doll.Image = "dollg5"
  4165. If ScarShootBall AND(BallsOnPlayfield + BallsinLock) <MaxBalls Then
  4166. cannon4.createball
  4167. cannon4.kick 190, 16 + RND(1) * 3
  4168. If EE AND ScarShootBall = 1 Then PlaySound "sf_hadouken"
  4169. ScarShootBall = ScarShootBall -1
  4170. BallsOnPlayfield = BallsOnPlayfield + 1
  4171. If BallsOnPlayfield> 1 Then MultiBallMode = 1
  4172. PlaySound "machinegun1"
  4173. If B2SOn Then Controller.B2SStartAnimation("Muzzle")
  4174. End IF
  4175. Case 14:doll.Image = "dollg4"
  4176. If ScarShootBall AND(BallsOnPlayfield + BallsinLock) <MaxBalls Then
  4177. cannon3.createball
  4178. cannon3.kick 178, 16 + RND(1) * 3
  4179. If EE AND ScarShootBall = 1 Then PlaySound "sf_hadouken"
  4180. ScarShootBall = ScarShootBall -1
  4181. BallsOnPlayfield = BallsOnPlayfield + 1
  4182. If BallsOnPlayfield> 1 Then MultiBallMode = 1
  4183. PlaySound "machinegun1"
  4184. If B2SOn Then Controller.B2SStartAnimation("Muzzle")
  4185. End IF
  4186. Case 15:doll.Image = "dollg3"
  4187. If ScarShootBall AND(BallsOnPlayfield + BallsinLock) <MaxBalls Then
  4188. cannon2.createball
  4189. cannon2.kick 170, 16 + RND(1) * 3
  4190. If EE AND ScarShootBall = 1 Then PlaySound "sf_hadouken"
  4191. ScarShootBall = ScarShootBall -1
  4192. BallsOnPlayfield = BallsOnPlayfield + 1
  4193. If BallsOnPlayfield> 1 Then MultiBallMode = 1
  4194. PlaySound "machinegun1"
  4195. If B2SOn Then Controller.B2SStartAnimation("Muzzle")
  4196. End IF
  4197. Case 16:doll.Image = "dollg2"
  4198. If ScarShootBall AND(BallsOnPlayfield + BallsinLock) <MaxBalls + 1 Then
  4199. cannon1.createball
  4200. cannon1.kick 160, 16 + RND(1) * 3
  4201. If EE AND ScarShootBall = 1 Then PlaySound "sf_hadouken"
  4202. ScarShootBall = ScarShootBall -1
  4203. BallsOnPlayfield = BallsOnPlayfield + 1
  4204. If BallsOnPlayfield> 1 Then MultiBallMode = 1
  4205. PlaySound "machinegun1"
  4206. If B2SOn Then Controller.B2SStartAnimation("Muzzle")
  4207. End IF
  4208. Case 17:doll.Image = "dollg1"
  4209. Case 18:doll.Image = "dollg1"
  4210. If ScarShootBall Then
  4211. ScarShootPos = 4
  4212. End If
  4213. Case 19:doll.Image = "dollg1"
  4214. Case 20:doll.Image = "doll2":ScarAnim.Enabled = 0:ShootingBalls = 0:If B2SOn Then Controller.B2SStopAnimation("Muzzle")
  4215. End Select
  4216.  
  4217. ScarShootPos = ScarShootPos + 1
  4218. DollR.State = ABS(DollR.State -1)
  4219. End Sub
  4220.  
  4221. '*************
  4222. ' TV animation
  4223. '*************
  4224.  
  4225. Dim TVPos
  4226.  
  4227. Sub InitTV
  4228. TVPos = 0
  4229. TV2.IsDropped = 1
  4230. TV3.IsDropped = 1
  4231. TV4.IsDropped = 1
  4232. TV5.IsDropped = 1
  4233. TV6.IsDropped = 1
  4234. TV7.IsDropped = 1
  4235. End Sub
  4236.  
  4237. Sub TVTimer_Timer
  4238. Select case TVPos
  4239. Case 0:TV8.IsDropped = 1:Tv1.IsDropped = 0
  4240. Case 1:TV1.IsDropped = 1:Tv2.IsDropped = 0
  4241. Case 2:TV2.IsDropped = 1:Tv3.IsDropped = 0
  4242. Case 3:TV3.IsDropped = 1:Tv4.IsDropped = 0
  4243. Case 4:TV4.IsDropped = 1:Tv5.IsDropped = 0
  4244. Case 5:TV5.IsDropped = 1:Tv6.IsDropped = 0
  4245. Case 6:TV6.IsDropped = 1:Tv7.IsDropped = 0
  4246. Case 7:TV7.IsDropped = 1:Tv8.IsDropped = 0
  4247. End Select
  4248.  
  4249. TVPos = TVPos + 1
  4250. If TVPos> 7 Then TVPos = 0
  4251. End Sub
  4252.  
  4253. '*******************************************************************************
  4254. ' << MODES >>
  4255. ' In any MODE there will be a:
  4256. ' - list of switches, lights
  4257. ' - list of variables
  4258. ' - init sub -init variables and ready to start
  4259. ' - check sub -check if it has started, and check if it is completed, give award
  4260. ' - start sub -mostly it setups a variable, mode started, used in the check sub
  4261. ' - end sub -to turn off the mode. Many modes will end with the ball others will
  4262. ' continue until completed or until the end of the game.
  4263. '*******************************************************************************
  4264.  
  4265. Dim SideEventNr, SideEventStarted, SideEventPrepared, BallsInDesk, EjectBallsInDeskDelay, SideEvents(5), SideEventsFinished, SidesCompleted
  4266.  
  4267. Sub InitModes
  4268. Dim i
  4269. SideEventNr = 0 ' contains the side mode nr
  4270. SideEventStarted = 0
  4271. SideEventPrepared = 0
  4272. l24.State = 0
  4273. l41.State = 0
  4274. SideEventsFinished = 0
  4275. SidesCompleted = 0
  4276. For i = 0 To 5
  4277. SideEvents(i) = 0
  4278. Next
  4279.  
  4280. UpdateSideLights
  4281. End Sub
  4282.  
  4283. Sub EndSideMode
  4284. SideEvents(SideEventNr) = 1
  4285. SideEventsFinished = SideEvents(1) + SideEvents(2) + SideEvents(3) + SideEvents(4) + SideEvents(5)
  4286. If SidesCompleted = 0 Then
  4287. If SideEventsFinished = 5 Then
  4288. SidesCompleted = 1
  4289. End If
  4290. End If
  4291. SideEventPrepared = 0
  4292. l24.State = 0
  4293. l41.State = 0
  4294. SideEventStarted = 0
  4295. BackDoorPost.IsDropped = 1:DOF 136, DOFPulse
  4296. SideEventNr = 0
  4297. UpdateSideLights
  4298. DisplayScoreNow
  4299. PlayTheme
  4300. End Sub
  4301.  
  4302. Sub PrepareSideMode 'make ready to start sidemode
  4303. SideEventPrepared = 1
  4304. UpdateSideLights
  4305. l24.State = 2
  4306. l41.State = 2
  4307. BackDoorPost.IsDropped = 0:DOF 136, DOFPulse
  4308. End Sub
  4309.  
  4310. Sub UpdateSideLights
  4311. If SideEvents(1) Then
  4312. l2.State = 1
  4313. Else
  4314. l2.State = 0
  4315. End If
  4316.  
  4317. If SideEvents(2) Then
  4318. l3.State = 1
  4319. Else
  4320. l3.State = 0
  4321. End If
  4322.  
  4323. If SideEvents(3) Then
  4324. l4.State = 1
  4325. Else
  4326. l4.State = 0
  4327. End If
  4328.  
  4329. If SideEvents(4) Then
  4330. l5.State = 1
  4331. Else
  4332. l5.State = 0
  4333. End If
  4334.  
  4335. If SideEvents(5) Then
  4336. l6.State = 1
  4337. Else
  4338. l6.State = 0
  4339. End If
  4340.  
  4341. If SideEventPrepared Then
  4342. Select Case SideEventNr
  4343. Case 1:l2.State = 2
  4344. Case 2:l3.State = 2
  4345. Case 3:l4.State = 2
  4346. Case 4:l5.State = 2
  4347. Case 5:l6.State = 2
  4348. End Select
  4349. End If
  4350. End Sub
  4351.  
  4352. Sub BackDoorPost_Hit
  4353. PlaySound "fx_metalhit"
  4354. End Sub
  4355.  
  4356. Sub BackDoor_Hit
  4357. PlaySound "fx_Ballhit"
  4358. BackDoorPost.IsDropped = 1:DOF 136, DOFPulse
  4359.  
  4360. BackDoor.DestroyBall
  4361. BallsInDesk = BallsInDesk + 1
  4362. BallsOnPlayfield = BallsOnPlayfield - 1
  4363. l24.State = 0
  4364. l41.State = 0
  4365. If EventStarted = 11 Then
  4366. If Event11Kill Then
  4367. WinEvent11
  4368. Exit Sub
  4369. Else
  4370. Say "Hey_who_the_fuck_r_u", "232424241":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4371. EjectBallsInDeskDelay = 40 'shoot back the ball
  4372. Exit Sub
  4373. End If
  4374. End If
  4375. If SideEventNr AND SideEventStarted = 0 Then 'a side event is prepared to run so start it
  4376. SideEventStarted = 1
  4377. Select Case SideEventNr
  4378. Case 1:StartBank
  4379. Case 2:StartHitMan
  4380. Case 3:StartTWIY 'started from the lock hole not here
  4381. case 4:StartYeyoRun
  4382. case 5:StartGetCar
  4383. End Select
  4384. Else
  4385. Say "Hey_who_the_fuck_r_u", "232424241":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4386. EjectBallsInDeskDelay = 40 'shoot back the ball
  4387. End If
  4388. End Sub
  4389.  
  4390. Sub DeskIn_Hit
  4391. PlaySound "fx_Ballhit"
  4392.  
  4393. DeskIn.DestroyBall
  4394. BallsInDesk = BallsInDesk + 1
  4395. BallsOnPlayfield = BallsOnPlayfield - 1
  4396. If EventStarted = 11 Then
  4397. DeskHits = DeskHits + 1
  4398. SetLamp 1, 0, 1, 8
  4399. AddScore ScoreME11Jackpot
  4400. If DeskHits = 10 Then
  4401. CenterBlock.Open = 0
  4402. Door.RotZ = 0
  4403. NextPartEvent11
  4404. Else
  4405. StartScarShooting BallsInDesk
  4406. BallsInDesk = 0
  4407. End If
  4408. Exit Sub
  4409. End If
  4410. CenterBlock.Open = 0
  4411. Door.RotZ = 0
  4412. If EventsFinished = 10 AND SidesCompleted Then
  4413. StartEvent11Delay = 30
  4414. Exit Sub
  4415. End If
  4416. l38.state = 0
  4417. l39.state = 0
  4418. l40.state = 0
  4419. l37.state = 0
  4420. StartMainEvent 'start the current event
  4421. End Sub
  4422.  
  4423. '*********************
  4424. ' Skillshot - Car Hole
  4425. '*********************
  4426.  
  4427. 'switches: carhole
  4428. 'lights: rflaher
  4429.  
  4430. Dim SkillshotStarted, SkillShotReady, CarHole8Delay
  4431.  
  4432. Sub InitSkillShot
  4433. CarHole8Delay = 0
  4434. SkillshotStarted = 0
  4435. SkillShotReady = 1
  4436. End Sub
  4437.  
  4438. Sub StartSkillshot
  4439. SkillshotStarted = 1 'Started
  4440. LightSeqPFLights.Play SeqAllOff 'turn off playfield lights
  4441. LightSeqSkillshot.Play SeqBlinking, , 5000, 50
  4442. SetLamp 4, 1, 0, 0
  4443. End Sub
  4444.  
  4445. Sub EndSkillshot
  4446. If SkillShotStarted Then
  4447. SkillShotReady = 0
  4448. SkillShotStarted = 0
  4449. LightSeqPFLights.StopPlay
  4450. SetLamp 4, 0, 0, 0
  4451. LightSeqSkillshot.StopPlay
  4452. End If
  4453. End Sub
  4454.  
  4455. Sub CarHole_Hit
  4456. PlaySound SoundFXDOF("fx_kicker_enter", 210, DOFPulse, DOFContactors)
  4457. setlamp 1, 0, 1, 10
  4458.  
  4459. If EventStarted = 8 Then
  4460. AddScore ScoreME8Skill
  4461. DisplayFlushQueue
  4462. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("GET INTO THE CAR"), "", eNone, eBlink, 0, 1500, FALSE, ""
  4463. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  4464. DD "", "", "dmdevent8-2", eNone, eNone, 0, 300, FALSE, ""
  4465. DD "", "", "dmdevent8-3", eNone, eNone, 0, 300, FALSE, ""
  4466. DD "", "", "dmdevent8-4", eNone, eNone, 0, 300, FALSE, ""
  4467. DD "", "", "dmdevent8-5", eNone, eNone, 0, 300, FALSE, ""
  4468. DD "", "", "dmdevent8-6", eNone, eNone, 0, 300, FALSE, ""
  4469. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  4470. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  4471. DD "", "", "dmdevent8-2", eNone, eNone, 0, 300, FALSE, ""
  4472. DD "", "", "dmdevent8-3", eNone, eNone, 0, 300, FALSE, ""
  4473. DD "", "", "dmdevent8-4", eNone, eNone, 0, 300, FALSE, ""
  4474. DD "", "", "dmdevent8-5", eNone, eNone, 0, 300, FALSE, ""
  4475. DD "", "", "dmdevent8-6", eNone, eNone, 0, 300, FALSE, ""
  4476. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  4477. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  4478. DD "", "", "dmdevent8-2", eNone, eNone, 0, 300, FALSE, ""
  4479. DD "", "", "dmdevent8-3", eNone, eNone, 0, 300, FALSE, ""
  4480. PlaySound "car_start"
  4481.  
  4482. Set aBall = ActiveBall
  4483. aZpos = aBall.Z
  4484. CarHole8Delay = 14
  4485. Exit Sub
  4486. End If
  4487.  
  4488. If SkillshotStarted Then
  4489. StartBallSaved(BallSavedTime) 'start ball save time if 1st ball
  4490. AddScore ScoreSkillShot
  4491. DD CenterTop("SKILLSHOT"), CenterBottom(FormatScore(ScoreSkillShot) ), "", eNone, eBlinkFast, 0, 1000, True, "car_start"
  4492. End If
  4493. CarHoleDelay = 20
  4494. End Sub
  4495.  
  4496. Sub CarHoleExit 'normal skillshot
  4497. EndSkillshot
  4498. PlaySound SoundFXDOF("fx_popper", 119, DOFPulse, DOFContactors)
  4499. CarHole.Kick 294, 60
  4500. End Sub
  4501.  
  4502. Sub CarHole8Exit 'exit from the event 8
  4503. CarHole.TimerInterval = 2
  4504. CarHole.TimerEnabled = 1
  4505. End Sub
  4506.  
  4507. ' Car Hole with animation
  4508. Dim aBall, aZpos
  4509.  
  4510. Sub CarHole_Timer
  4511. aBall.Z = aZpos
  4512. aZpos = aZpos-4
  4513. If aZpos <0 Then
  4514. Me.TimerEnabled = 0
  4515. Me.DestroyBall
  4516. BallsOnPlayfield = BallsOnPlayfield -1
  4517. PlaySound "fx_ballhit"
  4518. NewBall8
  4519. End If
  4520. End Sub
  4521.  
  4522. '********************************
  4523. ' Left Ramp - kill ramp - Hit Man
  4524. ' 2 ball multiball
  4525. '********************************
  4526. 'triggers: leftramp
  4527. 'lights 18,19,20,21,22, 23 and 3
  4528.  
  4529. Dim KillRampHits, HitmanStarted, LeftRampJackpotEnabled, StartHitManDelay
  4530.  
  4531. Sub InitKillRamp
  4532. KillRampHits = 0
  4533. HitmanStarted = 0
  4534. LeftRampJackpotEnabled = 0
  4535. DOF 216, DOFOff
  4536. l18.State = 0
  4537. l19.State = 0
  4538. l20.State = 0
  4539. l21.State = 0
  4540. l22.State = 0
  4541. l23.State = 0
  4542. l3.State = 0
  4543. StartHitManDelay = 0
  4544. End Sub
  4545.  
  4546. Sub CheckKillRamp
  4547. If B2SOn Then Controller.B2SStopAnimation("Muzzle")
  4548. Select Case KillRampHits
  4549. Case 1:l18.State = 1
  4550. Case 2:l19.State = 1
  4551. Case 3:l20.State = 1
  4552. Case 4:l21.State = 1
  4553. Case Else
  4554. If EventStarted = 11 Then Exit Sub
  4555. l22.State = 1
  4556. l12.State = 1
  4557. 'PrepareHitMan
  4558. l3.State = 2
  4559. SideEventNr = 2
  4560. PrepareSideMode
  4561. If B2SOn Then Controller.B2SStopAnimation("Muzzle")
  4562. End Select
  4563. End Sub
  4564.  
  4565. Sub StartHitMan
  4566.  
  4567. DisplayFlushQueue
  4568. DD CenterTop("HIT MAN"), CenterBottom("STARTING"), "", eNone, eBlinkFast, 0, 1000, FALSE, ""
  4569. DD CenterTop("HIT MAN"), CenterBottom("SHOOT KILL RAMP"), "", eNone, eBlink, 0, 500, FALSE, ""
  4570. DD CenterTop("HIT MAN"), CenterBottom("FOR JACKPOT"), "", eNone, eBlink, 0, 500, TRUE, ""
  4571. l18.State = 0
  4572. l19.State = 0
  4573. l20.State = 0
  4574. l21.State = 0
  4575. l22.State = 0
  4576. l23.State = 0
  4577. l24.State = 0
  4578. l41.State = 0
  4579. PlayTheme
  4580. ResetDroptargets 'droptargets increase the jackpot during this event
  4581. CTDelay = 0
  4582. l38.State = 1
  4583. l39.State = 1
  4584. l40.State = 1
  4585. StartHitManDelay = 100
  4586. End Sub
  4587.  
  4588. Sub StartHitMan2
  4589. StartScarShooting BallsInDesk + 1 'shoot the ball/s which started the event + 1 multiball
  4590. BallsinDesk = 0
  4591. StartBallSaved 20 '20 seconds
  4592. HitmanStarted = 1
  4593. StartLeftRampJackpot 'lights
  4594. End Sub
  4595.  
  4596. Sub EndHitMan
  4597. If l3.State = 2 Then l3.State = 1
  4598. If HitmanStarted Then 'hitman was started
  4599. KillRampHits = 0
  4600. HitmanStarted = 0
  4601. LeftRampJackpotEnabled = 0
  4602. StopLeftRampJackpot 'Lights
  4603. l3.State = 1 'hitman done
  4604. ResetDroptargets
  4605. EndSideMode
  4606. End If
  4607. End Sub
  4608.  
  4609. Sub StartLeftRampJackpot
  4610. LeftRampJackpotEnabled = 1
  4611. LightSeqLeftRamp.Play SeqRandom, 10, 10
  4612. If B2SOn Then Controller.B2SStartAnimation("Muzzle")
  4613. End Sub
  4614.  
  4615. Sub LightSeqLeftRamp_PlayDone()
  4616. LightSeqLeftRamp.Play SeqRandom, 10, 10
  4617. End Sub
  4618.  
  4619. Sub StopLeftRampJackpot
  4620. LeftRampJackpotEnabled = 0
  4621. LightSeqLeftRamp.StopPlay
  4622. If B2SOn Then Controller.B2SStopAnimation("Muzzle")
  4623. End Sub
  4624.  
  4625. '********************
  4626. ' Spinner - sell Yeyo
  4627. '********************
  4628.  
  4629. 'switches : rott1, rott2, rott3, rott4, rott5
  4630. 'lights 43, 44, 45, 46, 47, 48
  4631. 'YeyoLights: 0 off, 1 blinking, 2 collected
  4632.  
  4633. Dim YeyoHits, YeyoLight, YeyoStarted, RightRampJackpotEnabled
  4634.  
  4635. Sub InitYeyo
  4636. YeyoHits = 0
  4637. l43.State = 0
  4638. l44.State = 0
  4639. l45.State = 0
  4640. l46.State = 0
  4641. l47.State = 0
  4642. YeyoLight = 0
  4643. l5.state = 0
  4644. YeyoStarted = 0
  4645. RightRampJackpotEnabled = 0
  4646. End Sub
  4647.  
  4648. Sub CheckYeyo
  4649. YeyoHits = YeyoHits + 1
  4650. If YeyoStarted AND YeyoHits >= 10 Then '10 hits turn on the jackpot on the right ramp
  4651. YeyoHits = 0
  4652. StartRightRampJackpot
  4653. End If
  4654.  
  4655. If YeyoHits >= 30 Then
  4656. YeyoHits = 0
  4657. YeyoLight = YeyoLight + 1
  4658. Addscore ScoreCollectYeyo
  4659. Select Case YeyoLight
  4660. Case 1:l43.State = 2
  4661. Case 2:l44.State = 2
  4662. Case 3:l45.State = 2
  4663. Case 4:l46.State = 2
  4664. Case 5:l47.State = 2
  4665. End Select
  4666. End If
  4667. End Sub
  4668.  
  4669. Sub RightRamp_Hit
  4670. If B2SOn Then Controller.B2SStartAnimation("PalmTrees")
  4671. SetLamp 3, 0, 1, 10
  4672. 'AddScore ScoreRightRamp
  4673. PlaySound "money1"
  4674. If EE Then
  4675. PlayRamdomPunch
  4676. AddScore 1
  4677. Exit Sub
  4678. End If
  4679. If EventStarted = 7 Then
  4680. If Event7State = 1 Then
  4681. CheckEvent7
  4682. AddScore ScoreRightRamp
  4683. End If
  4684. Exit Sub
  4685. End If
  4686. If EventStarted = 10 Then
  4687. Event10Hits(7) = 1
  4688. l48.State = 0
  4689. CheckEvent10
  4690. AddScore ScoreRightRamp
  4691. Exit Sub
  4692. End If
  4693. If YeyoStarted AND RightRampJackpotEnabled Then
  4694. AddScore ScoreYeyoJackpot
  4695. StopRightRampJackpot
  4696. Exit Sub
  4697. End If
  4698. If TWIYStarted AND RightRampJackpotEnabled Then
  4699. If LeftRampJackpotEnabled = 0 Then
  4700. l25.State = 2
  4701. l42.State = 2
  4702. End If
  4703. StopRightRampJackpot
  4704. GiveTWIYJackpot
  4705. Exit Sub
  4706. End If
  4707. If l43.State = 2 Then
  4708. AddScore ScoreRightRamp
  4709. l43.State = 1
  4710. Exit Sub
  4711. End If
  4712.  
  4713. If l44.State = 2 Then
  4714. AddScore ScoreRightRamp
  4715. l44.State = 1
  4716. Exit Sub
  4717. End If
  4718.  
  4719. If l45.State = 2 Then
  4720. AddScore ScoreRightRamp
  4721. l45.State = 1
  4722. Exit Sub
  4723. End If
  4724.  
  4725. If l46.State = 2 Then
  4726. AddScore ScoreRightRamp
  4727. l46.State = 1
  4728. Exit Sub
  4729. End If
  4730.  
  4731. If l47.State = 2 Then
  4732. AddScore ScoreRightRamp
  4733. l47.State = 1
  4734. PrepareYeyoRun
  4735. End If
  4736. End Sub
  4737.  
  4738. '**************
  4739. ' Yeyo Run
  4740. '**************
  4741. ' 2 multiball
  4742. ' lights 5, 24, 41
  4743.  
  4744. Sub PrepareYeyoRun
  4745. If EventStarted = 11 Then Exit Sub
  4746. l5.State = 2
  4747. SideEventNr = 4
  4748. PrepareSideMode
  4749. End Sub
  4750.  
  4751. Sub StartYeyoRun
  4752. SideEventNr = 4
  4753. l5.state = 2
  4754. YeyoStarted = 1
  4755. StartScarShooting 2 'shoot 2 multiballs
  4756. BallsInDesk = 0
  4757. StartBallSaved 20 '20 seconds
  4758. ' StartRightRampJackpot
  4759. l41.State = 0
  4760. l24.State = 0
  4761. l15.State = 2
  4762. PlayTheme
  4763. End Sub
  4764.  
  4765. Sub EndYeyoRun
  4766. If l5.State = 2 Then l5.State = 1
  4767. If YeyoStarted Then
  4768. YeyoHits = 0
  4769. l43.State = 0
  4770. l44.State = 0
  4771. l45.State = 0
  4772. l46.State = 0
  4773. l47.State = 0
  4774. YeyoLight = 0
  4775. l15.State = 0
  4776. YeyoStarted = 0
  4777. StopRightRampJackpot
  4778. EndSideMode
  4779. End If
  4780. End Sub
  4781.  
  4782. Sub StartRightRampJackpot
  4783. RightRampJackpotEnabled = 1
  4784. LightSeqRightRamp.Play SeqRandom, 10, 10
  4785. If B2SOn Then Controller.B2SStartAnimation("Muzzle")
  4786. End Sub
  4787.  
  4788. Sub LightSeqRightRamp_PlayDone()
  4789. LightSeqRightRamp.Play SeqRandom, 10, 10
  4790. End Sub
  4791.  
  4792. Sub StopRightRampJackpot
  4793. RightRampJackpotEnabled = 0
  4794. LightSeqRightRamp.StopPlay
  4795. If B2SOn Then Controller.B2SStopAnimation("Muzzle")
  4796. End Sub
  4797.  
  4798. '************
  4799. ' Get Car
  4800. '************
  4801. '20 seconds hurry up
  4802. ' targets: rt1
  4803. ' lights 17, 6
  4804.  
  4805. Dim CarHits, GetCarStarted, GetCarDelay
  4806.  
  4807. Sub InitGetCar
  4808. CarHits = 0
  4809. l17.State = 0
  4810. l6.State = 0
  4811. GetCarDelay = 0
  4812. GetCarStarted = 0
  4813. End Sub
  4814.  
  4815. Sub CheckCarHits
  4816. If EventStarted = 11 Then Exit Sub
  4817. If EventStarted = 9 Then
  4818. SetLamp 1, 0, 1, 5
  4819. If CarHits = 5 Then
  4820. WinEvent9
  4821. End If
  4822. Exit Sub
  4823. End If
  4824. If CarHits >= 10 Then 'PrepareGetCar
  4825. CarHits = 0
  4826. l6.State = 2
  4827. SideEventNr = 5
  4828. PrepareSideMode
  4829. End If
  4830. End Sub
  4831.  
  4832. Sub StartGetCar
  4833. Say "Run_while_you_can_stupid_fuck", "13131335142121431":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4834. DD "", "", "dmdgetcar1", eNone, eNone, 0, 300, FALSE, ""
  4835. DD "", "", "dmdgetcar2", eNone, eNone, 0, 300, FALSE, ""
  4836. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT THE CAR"), "", eNone, eBlinkFast, 0, 500, FALSE, ""
  4837. DD "", "", "dmdgetcar1", eNone, eNone, 0, 300, FALSE, ""
  4838. DD "", "", "dmdgetcar2", eNone, eNone, 0, 300, FALSE, ""
  4839. DD "", "", "dmdgetcar1", eNone, eNone, 0, 300, FALSE, ""
  4840. DD "", "", "dmdgetcar2", eNone, eNone, 0, 300, FALSE, ""
  4841. DD "", "", "dmdgetcar1", eNone, eNone, 0, 300, FALSE, ""
  4842. DD "", "", "dmdgetcar2", eNone, eNone, 0, 300, FALSE, ""
  4843. GetCarDelay = 20 * 20
  4844. l6.state = 2
  4845. GetCarStarted = 1
  4846. PlayTheme
  4847. EjectBallsInDeskDelay = 80 'shoot back the ball
  4848. l41.State = 0
  4849. l24.State = 0
  4850. l17.State = 2
  4851. SetLamp 4, 0, 2, -1
  4852. If B2SOn Then Controller.B2SStartAnimation("PalmTrees")
  4853. SetLamp 3, 0, 1, -1
  4854. End Sub
  4855.  
  4856. Sub EndGetCar
  4857. If l6.State = 2 Then l6.State = 1
  4858. If GetCarStarted Then
  4859. l6.State = 1
  4860. l17.State = 0
  4861. GetCarStarted = 0
  4862. GetCarDelay = 0
  4863. SetLamp 3, 0, 0, 0
  4864. SetLamp 4, 0, 0, 0
  4865. EndSideMode
  4866. End If
  4867. End Sub
  4868.  
  4869. '***************
  4870. ' Mini Loop
  4871. '***************
  4872.  
  4873. 'triggers: miniloop
  4874.  
  4875. Dim MiniLoopHits
  4876.  
  4877. Sub InitMiniLoops
  4878. MiniLoopHits = 0
  4879. End Sub
  4880.  
  4881. Sub MiniLoop_Hit
  4882. Dim tmp
  4883. If EE Then
  4884. Exit Sub
  4885. End If
  4886. If EventStarted = 10 Then
  4887. Event10Hits(8) = 1
  4888. l25.State = 0
  4889. l42.State = 0
  4890. CheckEvent10
  4891. Exit Sub
  4892. End If
  4893. If TWIYStarted Then 'enable jackpot on the ramps
  4894. l25.State = 0
  4895. l42.State = 0
  4896. tmp = INT(RND(1) * 5)
  4897. Select case tmp
  4898. Case 0:Say "Yeah1", "271":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4899. Case 1:Say "Yeah2", "261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4900. Case 2:Say "Ok", "32341":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4901. Case 3:Say "Thats_ok", "26351":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4902. Case 4:Say "Yeah_its_Tony", "3633371":If B2SOn Then Controller.B2SStartAnimation("Tony")
  4903. End Select
  4904.  
  4905. If LeftRampJackpotEnabled = 0 AND RightRampJackpotEnabled = 0 Then
  4906. DD "", "", "dmdmultiball1", eNone, eNone, 0, 200, FALSE, ""
  4907. DD "", "", "dmdmultiball3", eNone, eNone, 0, 200, FALSE, ""
  4908. DD "", "", "dmdmultiball1", eNone, eNone, 0, 200, FALSE, ""
  4909. DD "", "", "dmdmultiball3", eNone, eNone, 0, 200, FALSE, ""
  4910. DD "", "", "dmdmultiball1", eNone, eNone, 0, 200, FALSE, ""
  4911. DD "", "", "dmdmultiball3", eNone, eNone, 0, 200, FALSE, ""
  4912. DD "", "", "dmdmultiball1", eNone, eNone, 0, 200, FALSE, ""
  4913. DD "", "", "dmdmultiball3", eNone, eNone, 0, 200, FALSE, ""
  4914. DD "", "", "dmdmultiball1", eNone, eNone, 0, 200, FALSE, ""
  4915. DD "", "", "dmdmultiball3", eNone, eNone, 0, 200, TRUE, ""
  4916. StartLeftRampJackpot
  4917. StartRightRampJackpot
  4918. Exit Sub
  4919. End If
  4920. End If
  4921. If RND(1) <0.5 Then
  4922. PlaySound "ricochet1"
  4923. Else
  4924. PlaySound "ricochet2"
  4925. End If
  4926. ' normal mode
  4927. AddScore ScoreMiniLoop
  4928. If EventStarted = 11 Then Exit Sub
  4929. MiniLoopHits = MiniLoopHits + 1
  4930. CheckMiniLoop
  4931. End Sub
  4932.  
  4933. Sub CheckMiniLoop
  4934. If EventStarted = 3 Then
  4935. If MiniLoopHits > 2 Then
  4936. MiniLoopHits = 0
  4937. WinEvent3
  4938. End If
  4939. Exit Sub
  4940. End If
  4941. If MiniLoopHits >= 3 Then
  4942. MiniLoopHits = 0
  4943. OpenLockBlock 'enable lock
  4944. End If
  4945. End Sub
  4946.  
  4947. '******************************
  4948. ' The World if Yours Multiball
  4949. '******************************
  4950.  
  4951. 'triggers: miniloop trigger, Ramp triggers for Jackpot
  4952. 'lights: l4, l25, l42
  4953.  
  4954. Dim TWIYStarted
  4955.  
  4956. Sub InitTWIY
  4957. TWIYStarted = 0
  4958. l4.State = 0
  4959. End Sub
  4960.  
  4961. Sub StartTWIY
  4962. DisplayFlushQueue
  4963. DD "", "", "dmdmultiball1", eNone, eNone, 0, 300, FALSE, ""
  4964. DD "", "", "dmdmultiball2", eNone, eNone, 0, 300, FALSE, ""
  4965. DD "", "", "dmdmultiball1", eNone, eNone, 0, 300, FALSE, ""
  4966. DD "", "", "dmdmultiball2", eNone, eNone, 0, 300, FALSE, ""
  4967. DD "", "", "dmdmultiball1", eNone, eNone, 0, 300, FALSE, ""
  4968. DD "", "", "dmdmultiball2", eNone, eNone, 0, 300, FALSE, ""
  4969. DD "", "", "dmdmultiball1", eNone, eNone, 0, 300, FALSE, ""
  4970. DD "", "", "dmdmultiball2", eNone, eNone, 0, 300, FALSE, ""
  4971. DD "", "", "dmdmultiball1", eNone, eNone, 0, 300, FALSE, ""
  4972. DD "", "", "dmdmultiball2", eNone, eNone, 0, 300, TRUE, ""
  4973. l50.State = 0
  4974. l51.State = 0
  4975. l52.State = 0
  4976. StartBallSaved 20
  4977. SideEventStarted = 1
  4978. SideEventNr = 3
  4979. PlayTheme
  4980. TWIYStarted = 1
  4981. l4.State = 2
  4982. l25.State = 2
  4983. l42.State = 2
  4984. BackDoorPost.IsDropped = 1 'drop the post to enable the trigger for the mode
  4985. DOF 136, DOFPulse
  4986. StartScarShooting BallsInLock + BallsInDesk 'BallsinDesk should be 0, but just in case we eject all the balls
  4987. BallsInLock = 0 'empty the 3 locked balls
  4988. BallsInDesk = 0 'empty the desk balls
  4989. End Sub
  4990.  
  4991. Sub UpdateTWIYdmd
  4992. End Sub
  4993.  
  4994. Sub EndTWIY
  4995. If l4.State = 2 Then l4.State = 1
  4996. If TWIYStarted Then
  4997. TWIYStarted = 0
  4998. l4.State = 1
  4999. l25.State = 0
  5000. l42.State = 0
  5001. StopLeftRampJackpot
  5002. StopRightRampJackpot
  5003. EndSideMode
  5004. End If
  5005. End Sub
  5006.  
  5007. Sub GiveTWIYJackpot
  5008. AddScore ScoreTWIYJackpot
  5009. DisplayFlushQueue
  5010. DD "", "", "dmdmultiball4", eNone, eNone, 0, 300, FALSE, ""
  5011. DD "", "", "dmdmultiball5", eNone, eNone, 0, 300, FALSE, ""
  5012. DD "", "", "dmdmultiball6", eNone, eNone, 0, 300, FALSE, ""
  5013. DD "", "", "dmdmultiball7", eNone, eNone, 0, 150, FALSE, ""
  5014. DD "", "", "dmdmultiball4", eNone, eNone, 0, 150, FALSE, ""
  5015. DD "", "", "dmdmultiball7", eNone, eNone, 0, 150, FALSE, ""
  5016. DD "", "", "dmdmultiball4", eNone, eNone, 0, 150, FALSE, ""
  5017. DD "", "", "dmdmultiball7", eNone, eNone, 0, 150, FALSE, ""
  5018. DD "", "", "dmdmultiball4", eNone, eNone, 0, 150, FALSE, ""
  5019. DD "", "", "dmdmultiball7", eNone, eNone, 0, 150, FALSE, ""
  5020. DD "", "", "dmdmultiball4", eNone, eNone, 0, 150, FALSE, ""
  5021. DD "", "", "dmdmultiball7", eNone, eNone, 0, 150, FALSE, ""
  5022. DD "", "", "dmdmultiball4", eNone, eNone, 0, 150, FALSE, ""
  5023. DD "", "", "dmdmultiball7", eNone, eNone, 0, 150, FALSE, ""
  5024. DD "", "", "dmdmultiball4", eNone, eNone, 0, 150, FALSE, ""
  5025. DD CenterTop(FormatScore(ScoreTWIYJackpot) ), "", "", eBlinkFast, eNone, 0, 800, True, ""
  5026. ScoreTWIYJackpot = ScoreTWIYJackpot + 50000
  5027. PlaySound "chanan3"
  5028. End Sub
  5029.  
  5030. '****************
  5031. ' Bank Targets
  5032. '****************
  5033.  
  5034. 'targets: lt1, lt2, lt3, lt4
  5035. 'lights: 11, 12, 13, 14 and l2
  5036.  
  5037. Dim BankTargets(4), BankDelay, BankStarted
  5038.  
  5039. Sub InitBank
  5040. BankTargets(0) = 0
  5041. BankTargets(1) = 0
  5042. BankTargets(2) = 0
  5043. BankTargets(3) = 0
  5044. BankTargets(4) = 0
  5045. l11.State = 0
  5046. l12.State = 0
  5047. l13.State = 0
  5048. l14.State = 0
  5049. l2.State = 0
  5050. BankDelay = 0
  5051. BankStarted = 0
  5052. End Sub
  5053.  
  5054. Sub CheckBank
  5055. If EventStarted = 11 Then Exit Sub
  5056. BankTargets(0) = BankTargets(1) + BankTargets(2) + BankTargets(3) + BankTargets(4)
  5057. If BankTargets(0) = 4 Then
  5058. AddScore ScoreBankLights
  5059. l2.State = 2
  5060. SideEventNr = 1
  5061. PrepareSideMode
  5062. End If
  5063. End Sub
  5064.  
  5065. Sub StartBank
  5066. Say "Run_while_you_can_stupid_fuck", "13131335142121431":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5067. BankStarted = 1
  5068. DD "", "", "dmdbankrun1", eNone, eNone, 0, 300, FALSE, ""
  5069. DD "", "", "dmdbankrun2", eNone, eNone, 0, 300, FALSE, ""
  5070. BankDelay = 20 * 20 '20 seconds
  5071. l24.State = 0
  5072. l41.State = 0
  5073. EjectBallsInDeskDelay = 80
  5074. PlayTheme
  5075. SetLamp 3, 0, 2, -1
  5076. If B2SOn Then Controller.B2SStartAnimation("PalmTrees")
  5077. LightSeqBankRun.Play SeqRandom, 50, , 4000
  5078. End Sub
  5079.  
  5080. Sub LightSeqBankRun_PlayDone()
  5081. LightSeqBankRun.Play SeqRandom, 50, , 4000
  5082. End Sub
  5083.  
  5084. Sub EndBank
  5085. If l2.State = 2 Then l2.State = 1
  5086. If BankStarted Then
  5087. BankStarted = 0
  5088. SetLamp 3, 0, 0, 0
  5089. LightSeqBankRun.StopPlay
  5090. InitBank
  5091. l2.State = 1
  5092. EndSideMode
  5093. End If
  5094. End Sub
  5095.  
  5096. '*******************
  5097. ' Main Events
  5098. '*******************
  5099. ' slingshots increase the actual event if none is started
  5100. 'lights 26,27,28,29,30,31,32,33,34,35,36
  5101. ' EventStarted is set to 1 when any event is started
  5102.  
  5103. Dim Events(11), EventLights, CurrentEvent, EventStarted
  5104.  
  5105. Sub InitEvents
  5106. Dim i
  5107. EventLights = Array(dummy, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36)
  5108. For i = 0 To 11
  5109. Events(i) = 0
  5110.  
  5111. EventLights(i).State = 0
  5112. Next
  5113.  
  5114. CurrentEvent = 1
  5115. EventLights(CurrentEvent).State = 2
  5116. EventStarted = 0
  5117. Event1Delay = 0
  5118. Event2Delay = 0
  5119. Event3Delay = 0
  5120. Event4Delay = 0
  5121. Event5Delay = 0
  5122. Event6Delay = 0
  5123. Event7Delay = 0
  5124. Event8Delay = 0
  5125. Event9Delay = 0
  5126. StartEvent11Delay = 0
  5127. Event11VoiceDelay = 0
  5128. EndEvent11Delay = 0
  5129. EndWinEvent11Delay = 0
  5130. rottHits = 0
  5131. Event5Bumps = 0
  5132. Event11Kill = 0
  5133. End Sub
  5134.  
  5135. Sub LightNextEvent
  5136. If EventStarted Then Exit Sub 'if any event is started then do not change the lights
  5137. If Events(CurrentEvent) = 0 Then 'the event is not finished so you may turn off the light :)
  5138. EventLights(CurrentEvent).State = 0
  5139. End If
  5140. LightNextEvent2
  5141. End Sub
  5142.  
  5143. Sub LightNextEvent2
  5144. CurrentEvent = CurrentEvent + 1
  5145. If CurrentEvent = 12 Then CurrentEvent = 1
  5146. If CurrentEvent = 11 AND EventsFinished <10 Then
  5147. CurrentEvent = 1
  5148. End If
  5149. If Events(CurrentEvent) = 1 Then
  5150. LightNextEvent2
  5151. Else
  5152. EventLights(CurrentEvent).State = 2
  5153. End If
  5154. End Sub
  5155.  
  5156. Sub StartMainEvent
  5157. If EventStarted OR EventsFinished = 10 Then ' another event is started so just return the ball
  5158. EjectBallsInDeskDelay = 10 'shoot back the ball
  5159. Else
  5160. If B2SOn Then
  5161. Select Case CurrentEvent
  5162. Case 1:StartEvent1:Controller.B2SStartAnimation("Logo")
  5163. Case 2:StartEvent2:Controller.B2SStartAnimation("Logo")
  5164. Case 3:StartEvent3:Controller.B2SStartAnimation("Logo")
  5165. Case 4:StartEvent4:Controller.B2SStartAnimation("Logo")
  5166. Case 5:StartEvent5:Controller.B2SStartAnimation("Logo")
  5167. Case 6:StartEvent6:Controller.B2SStartAnimation("Logo")
  5168. case 7:StartEvent7:Controller.B2SStartAnimation("Logo")
  5169. case 8:StartEvent8:Controller.B2SStartAnimation("Logo")
  5170. case 9:StartEvent9:Controller.B2SStartAnimation("Logo")
  5171. case 10:StartEvent10:Controller.B2SStartAnimation("Logo")
  5172. case 11:StartEvent11:Controller.B2SStartAnimation("Logo")
  5173. End Select
  5174. End If
  5175. End If
  5176. End Sub
  5177.  
  5178. Sub EndMainEvent 'due to time out
  5179. If B2SOn Then
  5180. If EventStarted Then
  5181. Select Case CurrentEvent
  5182. Case 1:EndEvent1:Controller.B2SStopAnimation("Logo")
  5183. Case 2:EndEvent2:Controller.B2SStopAnimation("Logo")
  5184. Case 3:EndEvent3:Controller.B2SStopAnimation("Logo")
  5185. Case 4:EndEvent4:Controller.B2SStopAnimation("Logo")
  5186. Case 5:EndEvent5:Controller.B2SStopAnimation("Logo")
  5187. Case 6:EndEvent6:Controller.B2SStopAnimation("Logo")
  5188. case 7:EndEvent7:Controller.B2SStopAnimation("Logo")
  5189. case 8:EndEvent8:Controller.B2SStopAnimation("Logo")
  5190. case 9:EndEvent9:Controller.B2SStopAnimation("Logo")
  5191. case 10:EndEvent10:Controller.B2SStopAnimation("Logo")
  5192. case 11:EndEvent11:Controller.B2SStopAnimation("Logo")
  5193. End Select
  5194. End If
  5195. End If
  5196. End Sub
  5197.  
  5198. Sub ResetEvents 'make ready the next event after playing an event (winning or not)
  5199. If EventsFinished = 3 Then LitExtraBall
  5200. EventStarted = 0
  5201. EventLights(CurrentEvent).State = 1
  5202. ResetDroptargets
  5203. LightNextEvent
  5204. PlayTheme
  5205. End Sub
  5206.  
  5207. Function EventsFinished
  5208. Dim i, tmp
  5209. tmp = 0
  5210. For i = 1 to 10
  5211. tmp = tmp + Events(i)
  5212. Next
  5213.  
  5214. EventsFinished = tmp
  5215. End Function
  5216.  
  5217. Sub WinEventLights
  5218. LightSeqWinEvent.Play SeqRandom, 60, , 1000
  5219. GiOn
  5220. SetLamp 1, 0, 1, 8
  5221. SetLamp 2, 1, 0, 0
  5222. If B2SOn Then Controller.B2SStartAnimation("PalmTrees")
  5223. SetLamp 3, 0, 1, 8
  5224. SetLamp 4, 0, 1, 8
  5225. SetLamp 5, 0, 1, 8
  5226. End Sub
  5227.  
  5228. 'these are the lines displayed during the main events
  5229. 'they are updated whenever the score changes
  5230. 'otherwise they go in a loop until the event is finished
  5231.  
  5232. Sub UpdateEventsDMD
  5233. DisplayFlushQueue
  5234. Select Case EventStarted
  5235. Case 1
  5236. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT KILL RAMP"), "", eNone, eBlink, 0, 500, FALSE, ""
  5237. DD "", "", "dmdevent1-1", eNone, eNone, 0, 600, FALSE, ""
  5238. DD "", "", "dmdevent1-2", eNone, eNone, 0, 400, FALSE, ""
  5239. DD "", "", "dmdevent1-3", eNone, eNone, 0, 400, FALSE, ""
  5240. DD "", "", "dmdevent1-4", eNone, eNone, 0, 400, FALSE, ""
  5241. DD "", "", "dmdevent1-3", eNone, eNone, 0, 400, FALSE, ""
  5242. DD "", "", "dmdevent1-4", eNone, eNone, 0, 400, FALSE, ""
  5243. DD "", "", "dmdevent1-3", eNone, eNone, 0, 400, FALSE, ""
  5244. DD "", "", "dmdevent1-4", eNone, eNone, 0, 600, FALSE, ""
  5245. Case 2
  5246. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT 6 DROPTARGET"), "", eNone, eBlink, 0, 500, FALSE, ""
  5247. DD "", "", "dmdevent2-loop1", eNone, eNone, 0, 400, FALSE, ""
  5248. DD "", "", "dmdevent2-loop2", eNone, eNone, 0, 400, FALSE, ""
  5249. DD "", "", "dmdevent2-loop1", eNone, eNone, 0, 400, FALSE, ""
  5250. DD "", "", "dmdevent2-loop2", eNone, eNone, 0, 400, FALSE, ""
  5251. DD "", "", "dmdevent2-loop1", eNone, eNone, 0, 400, FALSE, ""
  5252. DD "", "", "dmdevent2-loop2", eNone, eNone, 0, 400, FALSE, ""
  5253. DD "", "", "dmdevent2-loop3", eNone, eNone, 0, 400, FALSE, ""
  5254. DD "", "", "dmdevent2-loop2", eNone, eNone, 0, 400, FALSE, ""
  5255. DD "", "", "dmdevent2-loop3", eNone, eNone, 0, 400, FALSE, ""
  5256. DD "", "", "dmdevent2-loop2", eNone, eNone, 0, 400, FALSE, ""
  5257. DD "", "", "dmdevent2-loop3", eNone, eNone, 0, 600, FALSE, ""
  5258. Case 3
  5259. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT 3 MINI LOOPS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5260. DD "", "", "dmdevent3-1", eNone, eNone, 0, 400, FALSE, ""
  5261. DD "", "", "dmdevent3-2", eNone, eNone, 0, 400, FALSE, ""
  5262. DD "", "", "dmdevent3-3", eNone, eNone, 0, 400, FALSE, ""
  5263. DD "", "", "dmdevent3-1", eNone, eNone, 0, 400, FALSE, ""
  5264. DD "", "", "dmdevent3-2", eNone, eNone, 0, 400, FALSE, ""
  5265. DD "", "", "dmdevent3-3", eNone, eNone, 0, 400, FALSE, ""
  5266. DD "", "", "dmdevent3-1", eNone, eNone, 0, 400, FALSE, ""
  5267. DD "", "", "dmdevent3-2", eNone, eNone, 0, 400, FALSE, ""
  5268. DD "", "", "dmdevent3-3", eNone, eNone, 0, 400, FALSE, ""
  5269. DD "", "", "dmdevent3-4", eNone, eNone, 0, 200, FALSE, ""
  5270. DD "", "", "dmdevent3-3", eNone, eNone, 0, 200, FALSE, ""
  5271. DD "", "", "dmdevent3-4", eNone, eNone, 0, 200, FALSE, ""
  5272. DD "", "", "dmdevent3-3", eNone, eNone, 0, 200, FALSE, ""
  5273. DD "", "", "dmdevent3-4", eNone, eNone, 0, 200, FALSE, ""
  5274. DD "", "", "dmdevent3-3", eNone, eNone, 0, 200, FALSE, ""
  5275. DD "", "", "dmdevent3-4", eNone, eNone, 0, 200, FALSE, ""
  5276. DD "", "", "dmdevent3-3", eNone, eNone, 0, 200, FALSE, ""
  5277. DD "", "", "dmdevent3-4", eNone, eNone, 0, 200, FALSE, ""
  5278. Case 4
  5279. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT 50"), "", eNone, eBlink, 0, 500, FALSE, ""
  5280. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SPINNER TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5281. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT 50"), "", eNone, eBlink, 0, 500, FALSE, ""
  5282. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SPINNER TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5283. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT 50"), "", eNone, eBlink, 0, 500, FALSE, ""
  5284. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SPINNER TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5285. DD "", "", "dmdevent4-1", eNone, eNone, 0, 300, FALSE, ""
  5286. DD "", "", "dmdevent4-2", eNone, eNone, 0, 300, FALSE, ""
  5287. DD "", "", "dmdevent4-3", eNone, eNone, 0, 300, FALSE, ""
  5288. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT 50"), "", eNone, eBlink, 0, 500, FALSE, ""
  5289. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SPINNER TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5290. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT 50"), "", eNone, eBlink, 0, 500, FALSE, ""
  5291. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SPINNER TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5292. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT 50"), "", eNone, eBlink, 0, 500, FALSE, ""
  5293. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SPINNER TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5294. DD "", "", "dmdevent4-4", eNone, eNone, 0, 300, FALSE, ""
  5295. DD "", "", "dmdevent4-5", eNone, eNone, 0, 300, FALSE, ""
  5296. DD "", "", "dmdevent4-6", eNone, eNone, 0, 300, FALSE, ""
  5297. Case 5
  5298. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT 25 BUMPERS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5299. DD "", "", "dmdevent5-1", eNone, eNone, 0, 300, FALSE, ""
  5300. DD "", "", "dmdevent5-2", eNone, eNone, 0, 300, FALSE, ""
  5301. DD "", "", "dmdevent5-3", eNone, eNone, 0, 300, FALSE, ""
  5302. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5303. DD "", "", "dmdevent5-A", eNone, eNone, 0, 300, FALSE, ""
  5304. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5305. DD "", "", "dmdevent5-A", eNone, eNone, 0, 300, FALSE, ""
  5306. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5307. DD "", "", "dmdevent5-A", eNone, eNone, 0, 300, FALSE, ""
  5308. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5309. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT 25 BUMPERS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5310. DD "", "", "dmdevent5-1", eNone, eNone, 0, 300, FALSE, ""
  5311. DD "", "", "dmdevent5-2", eNone, eNone, 0, 300, FALSE, ""
  5312. DD "", "", "dmdevent5-3", eNone, eNone, 0, 300, FALSE, ""
  5313. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5314. DD "", "", "dmdevent5-B", eNone, eNone, 0, 300, FALSE, ""
  5315. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5316. DD "", "", "dmdevent5-B", eNone, eNone, 0, 300, FALSE, ""
  5317. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5318. DD "", "", "dmdevent5-B", eNone, eNone, 0, 300, FALSE, ""
  5319. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5320. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT 25 BUMPERS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5321. DD "", "", "dmdevent5-final1", eNone, eNone, 0, 300, FALSE, ""
  5322. DD "", "", "dmdevent5-final2", eNone, eNone, 0, 300, FALSE, ""
  5323. DD "", "", "dmdevent5-final1", eNone, eNone, 0, 300, FALSE, ""
  5324. DD "", "", "dmdevent5-final2", eNone, eNone, 0, 300, FALSE, ""
  5325. DD "", "", "dmdevent5-final1", eNone, eNone, 0, 300, FALSE, ""
  5326. DD "", "", "dmdevent5-final2", eNone, eNone, 0, 300, FALSE, ""
  5327. DD "", "", "dmdevent5-final1", eNone, eNone, 0, 300, FALSE, ""
  5328. DD "", "", "dmdevent5-final2", eNone, eNone, 0, 300, FALSE, ""
  5329. DD "", "", "dmdevent5-final1", eNone, eNone, 0, 300, FALSE, ""
  5330. DD "", "", "dmdevent5-final2", eNone, eNone, 0, 300, FALSE, ""
  5331. Case 6
  5332. If Event6Drop Then
  5333. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT KILL RAMP"), "", eNone, eBlink, 0, 500, FALSE, ""
  5334. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5335. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5336. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5337. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5338. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5339. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5340. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5341. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5342. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5343. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5344. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5345. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5346. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5347. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5348. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5349. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5350. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5351. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5352. Else
  5353. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT DROPTARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5354. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5355. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5356. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5357. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5358. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5359. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5360. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5361. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5362. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5363. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5364. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5365. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5366. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5367. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5368. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5369. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5370. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5371. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5372. End If
  5373. Case 7
  5374. Select Case Event7Hits
  5375. Case 0, 2, 4
  5376. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT BANK TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5377. DD "", "", "dmdevent7-1", eNone, eNone, 0, 300, FALSE, ""
  5378. DD "", "", "dmdevent7-2", eNone, eNone, 0, 300, FALSE, ""
  5379. DD "", "", "dmdevent7-3", eNone, eNone, 0, 300, FALSE, ""
  5380. DD "", "", "dmdevent7-4", eNone, eNone, 0, 300, FALSE, ""
  5381. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  5382. DD "", "", "dmdevent7-4", eNone, eNone, 0, 300, FALSE, ""
  5383. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  5384. DD "", "", "dmdevent7-4", eNone, eNone, 0, 300, FALSE, ""
  5385. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  5386. DD "", "", "dmdevent7-6", eNone, eNone, 0, 200, FALSE, ""
  5387. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  5388. DD "", "", "dmdevent7-6", eNone, eNone, 0, 200, FALSE, ""
  5389. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  5390. DD "", "", "dmdevent7-6", eNone, eNone, 0, 200, FALSE, ""
  5391. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  5392. DD "", "", "dmdevent7-6", eNone, eNone, 0, 200, FALSE, ""
  5393. Case 1, 3, 5
  5394. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT RIGHT RAMP"), "", eNone, eBlink, 0, 500, FALSE, ""
  5395. DD "", "", "dmdevent7-1", eNone, eNone, 0, 300, FALSE, ""
  5396. DD "", "", "dmdevent7-2", eNone, eNone, 0, 300, FALSE, ""
  5397. DD "", "", "dmdevent7-3", eNone, eNone, 0, 300, FALSE, ""
  5398. DD "", "", "dmdevent7-4", eNone, eNone, 0, 300, FALSE, ""
  5399. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  5400. DD "", "", "dmdevent7-4", eNone, eNone, 0, 300, FALSE, ""
  5401. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  5402. DD "", "", "dmdevent7-4", eNone, eNone, 0, 300, FALSE, ""
  5403. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  5404. DD "", "", "dmdevent7-6", eNone, eNone, 0, 200, FALSE, ""
  5405. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  5406. DD "", "", "dmdevent7-6", eNone, eNone, 0, 200, FALSE, ""
  5407. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  5408. DD "", "", "dmdevent7-6", eNone, eNone, 0, 200, FALSE, ""
  5409. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  5410. DD "", "", "dmdevent7-6", eNone, eNone, 0, 200, FALSE, ""
  5411. End Select
  5412. Case 8
  5413. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("GET INTO THE CAR"), "", eNone, eBlink, 0, 500, FALSE, ""
  5414. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  5415. DD "", "", "dmdevent8-2", eNone, eNone, 0, 300, FALSE, ""
  5416. DD "", "", "dmdevent8-3", eNone, eNone, 0, 300, FALSE, ""
  5417. DD "", "", "dmdevent8-4", eNone, eNone, 0, 300, FALSE, ""
  5418. DD "", "", "dmdevent8-5", eNone, eNone, 0, 300, FALSE, ""
  5419. DD "", "", "dmdevent8-6", eNone, eNone, 0, 300, FALSE, ""
  5420. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  5421. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  5422. DD "", "", "dmdevent8-2", eNone, eNone, 0, 300, FALSE, ""
  5423. DD "", "", "dmdevent8-3", eNone, eNone, 0, 300, FALSE, ""
  5424. DD "", "", "dmdevent8-4", eNone, eNone, 0, 300, FALSE, ""
  5425. DD "", "", "dmdevent8-5", eNone, eNone, 0, 300, FALSE, ""
  5426. DD "", "", "dmdevent8-6", eNone, eNone, 0, 300, FALSE, ""
  5427. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  5428. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  5429. DD "", "", "dmdevent8-2", eNone, eNone, 0, 300, FALSE, ""
  5430. DD "", "", "dmdevent8-3", eNone, eNone, 0, 300, FALSE, ""
  5431. Case 9
  5432. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT THE CAR"), "", eNone, eBlink, 0, 500, FALSE, ""
  5433. DD "", "", "dmdevent9-1", eNone, eNone, 0, 300, FALSE, ""
  5434. DD "", "", "dmdevent9-2", eNone, eNone, 0, 300, FALSE, ""
  5435. DD "", "", "dmdevent9-1", eNone, eNone, 0, 300, FALSE, ""
  5436. DD "", "", "dmdevent9-2", eNone, eNone, 0, 300, FALSE, ""
  5437. DD "", "", "dmdevent9-3", eNone, eNone, 0, 300, FALSE, ""
  5438. DD "", "", "dmdevent9-4", eNone, eNone, 0, 300, FALSE, ""
  5439. DD "", "", "dmdevent9-3", eNone, eNone, 0, 300, FALSE, ""
  5440. DD "", "", "dmdevent9-4", eNone, eNone, 0, 300, FALSE, ""
  5441. DD "", "", "dmdevent9-3", eNone, eNone, 0, 300, FALSE, ""
  5442. DD "", "", "dmdevent9-4", eNone, eNone, 0, 300, FALSE, ""
  5443. DD "", "", "dmdevent9-3", eNone, eNone, 0, 300, FALSE, ""
  5444. DD "", "", "dmdevent9-4", eNone, eNone, 0, 300, FALSE, ""
  5445. DD "", "", "dmdevent9-3", eNone, eNone, 0, 300, FALSE, ""
  5446. DD "", "", "dmdevent9-4", eNone, eNone, 0, 300, FALSE, ""
  5447. Case 10
  5448. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT FLASH SHOTS"), "", eNone, eBlink, 0, 1500, FALSE, ""
  5449. DD "", "", "dmdevent10-1", eNone, eNone, 0, 300, FALSE, ""
  5450. DD "", "", "dmdevent10-2", eNone, eNone, 0, 300, FALSE, ""
  5451. DD "", "", "dmdevent10-3", eNone, eNone, 0, 300, FALSE, ""
  5452. DD "", "", "dmdevent10-1", eNone, eNone, 0, 300, FALSE, ""
  5453. DD "", "", "dmdevent10-2", eNone, eNone, 0, 300, FALSE, ""
  5454. DD "", "", "dmdevent10-3", eNone, eNone, 0, 300, FALSE, ""
  5455. DD "", "", "dmdevent10-1", eNone, eNone, 0, 300, FALSE, ""
  5456. DD "", "", "dmdevent10-2", eNone, eNone, 0, 300, FALSE, ""
  5457. DD "", "", "dmdevent10-3", eNone, eNone, 0, 300, FALSE, ""
  5458. Case 11
  5459. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("KILL TONY"), "", eNone, eBlinkFast, 0, 500, FALSE, ""
  5460. DD "", "", "dmdevent11-1", eNone, eNone, 0, 300, FALSE, ""
  5461. DD "", "", "dmdevent11-3", eNone, eNone, 0, 300, FALSE, ""
  5462. DD "", "", "dmdevent11-1", eNone, eNone, 0, 300, FALSE, ""
  5463. DD "", "", "dmdevent11-3", eNone, eNone, 0, 300, FALSE, ""
  5464. DD "", "", "dmdevent11-1", eNone, eNone, 0, 300, FALSE, ""
  5465. DD "", "", "dmdevent11-3", eNone, eNone, 0, 300, FALSE, ""
  5466. DD "", "", "dmdevent11-1", eNone, eNone, 0, 200, FALSE, ""
  5467. DD "", "", "dmdevent11-2", eNone, eNone, 0, 200, FALSE, ""
  5468. DD "", "", "dmdevent11-3", eNone, eNone, 0, 200, FALSE, ""
  5469. DD "", "", "dmdevent11-4", eNone, eNone, 0, 200, FALSE, ""
  5470. DD "", "", "dmdevent11-1", eNone, eNone, 0, 200, FALSE, ""
  5471. DD "", "", "dmdevent11-2", eNone, eNone, 0, 200, FALSE, ""
  5472. DD "", "", "dmdevent11-3", eNone, eNone, 0, 200, FALSE, ""
  5473. DD "", "", "dmdevent11-4", eNone, eNone, 0, 200, FALSE, ""
  5474. DD "", "", "dmdevent11-1", eNone, eNone, 0, 300, FALSE, ""
  5475. DD "", "", "dmdevent11-3", eNone, eNone, 0, 300, FALSE, ""
  5476. End Select
  5477. End Sub
  5478.  
  5479. '****************************
  5480. ' Event 1 : Shoot kill ramp
  5481. '****************************
  5482. ' triggers: LeftRampDone
  5483. ' lights: l23
  5484.  
  5485. Dim Event1Delay
  5486.  
  5487. Sub StartEvent1
  5488. Dim Balls
  5489. Say "You_better_not_be_comunist", "12131313253423231413325272":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5490. DD "", "", "dmdevent1-1", eNone, eNone, 0, 600, FALSE, ""
  5491. DD "", "", "dmdevent1-2", eNone, eNone, 0, 400, FALSE, ""
  5492. DD "", "", "dmdevent1-3", eNone, eNone, 0, 400, FALSE, ""
  5493. DD "", "", "dmdevent1-4", eNone, eNone, 0, 400, FALSE, ""
  5494. DD "", "", "dmdevent1-3", eNone, eNone, 0, 400, FALSE, ""
  5495. DD "", "", "dmdevent1-4", eNone, eNone, 0, 400, FALSE, ""
  5496. DD "", "", "dmdevent1-3", eNone, eNone, 0, 400, FALSE, ""
  5497. DD "", "", "dmdevent1-4", eNone, eNone, 0, 600, FALSE, ""
  5498. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT KILL RAMP"), "", eNone, eBlink, 0, 2000, FALSE, ""
  5499. EventStarted = 1
  5500. l23.State = 2
  5501. l37.State = 0
  5502. l38.State = 0
  5503. l39.State = 0
  5504. l40.State = 0
  5505. EjectBallsInDeskDelay = 80
  5506. Event1Delay = 30 * 20 '30 seconds
  5507. PlayTheme
  5508. End Sub
  5509.  
  5510. Sub WinEvent1
  5511. DOF 137, DOFPulse
  5512. Say "fuckin_cockroach", "1934242624":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5513. WinEventLights
  5514. Event1Delay = 0
  5515. Events(1) = 1 'finished
  5516. AddScore ScoreME1Complete
  5517. l23.State = 0
  5518. ResetEvents
  5519. DisplayFlushQueue
  5520. DD "", "", "dmdevent1-7", eNone, eNone, 0, 600, FALSE, ""
  5521. DD "", "", "dmdevent1-8", eNone, eNone, 0, 300, FALSE, ""
  5522. DD "", "", "dmdevent1-9", eNone, eNone, 0, 300, FALSE, ""
  5523. DD "", "", "dmdevent1-10", eNone, eNone, 0, 300, FALSE, ""
  5524. DD "", "", "dmdevent1-9", eNone, eNone, 0, 200, FALSE, ""
  5525. DD "", "", "dmdevent1-10", eNone, eNone, 0, 200, FALSE, ""
  5526. DD "", "", "dmdevent1-9", eNone, eNone, 0, 200, FALSE, ""
  5527. DD "", "", "dmdevent1-10", eNone, eNone, 0, 200, FALSE, ""
  5528. DD "", "", "dmdevent1-9", eNone, eNone, 0, 200, FALSE, ""
  5529. DD "", "", "dmdevent1-10", eNone, eNone, 0, 200, FALSE, ""
  5530. DD "", "", "dmdevent1-9", eNone, eNone, 0, 200, FALSE, ""
  5531. DD "", "", "dmdevent1-10", eNone, eNone, 0, 200, FALSE, ""
  5532. DD "", "", "dmdevent1-9", eNone, eNone, 0, 200, FALSE, ""
  5533. DD "", "", "dmdevent1-10", eNone, eNone, 0, 200, True, ""
  5534. End Sub
  5535.  
  5536. Sub EndEvent1
  5537. Say "You_know_what_you_are_soft", "242673333574324242423241":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5538. Event1Delay = 0
  5539. Events(1) = 1 'finished event if it is not finished
  5540. l23.State = 0
  5541. ResetEvents
  5542. DisplayFlushQueue
  5543. DD "", "", "dmdevent1-7", eNone, eNone, 0, 600, FALSE, ""
  5544. DD "", "", "dmdevent1-8", eNone, eNone, 0, 300, FALSE, ""
  5545. DD "", "", "dmdevent1-9", eNone, eNone, 0, 300, FALSE, ""
  5546. DD "", "", "dmdevent1-10", eNone, eNone, 0, 300, FALSE, ""
  5547. DD "", "", "dmdevent1-9", eNone, eNone, 0, 200, FALSE, ""
  5548. DD "", "", "dmdevent1-10", eNone, eNone, 0, 200, FALSE, ""
  5549. DD "", "", "dmdevent1-9", eNone, eNone, 0, 200, FALSE, ""
  5550. DD "", "", "dmdevent1-10", eNone, eNone, 0, 200, FALSE, ""
  5551. DD "", "", "dmdevent1-9", eNone, eNone, 0, 200, FALSE, ""
  5552. DD "", "", "dmdevent1-10", eNone, eNone, 0, 200, FALSE, ""
  5553. DD "", "", "dmdevent1-9", eNone, eNone, 0, 200, FALSE, ""
  5554. DD "", "", "dmdevent1-10", eNone, eNone, 0, 200, FALSE, ""
  5555. DD "", "", "dmdevent1-9", eNone, eNone, 0, 200, FALSE, ""
  5556. DD "", "", "dmdevent1-10", eNone, eNone, 0, 200, True, ""
  5557. End Sub
  5558.  
  5559. '************************************
  5560. ' Event 2 : shoot 5 center drop targets
  5561. '************************************
  5562. ' triggers: ct1, ct2, ct3
  5563.  
  5564. Dim CTHits, Event2Delay
  5565.  
  5566. Sub StartEvent2
  5567. Say "I_want_to_talk_2_George", "16873332362":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5568. DD "", "", "dmdevent2-loop1", eNone, eNone, 0, 400, FALSE, ""
  5569. DD "", "", "dmdevent2-loop2", eNone, eNone, 0, 400, FALSE, ""
  5570. DD "", "", "dmdevent2-loop1", eNone, eNone, 0, 400, FALSE, ""
  5571. DD "", "", "dmdevent2-loop2", eNone, eNone, 0, 400, FALSE, ""
  5572. DD "", "", "dmdevent2-loop1", eNone, eNone, 0, 400, FALSE, ""
  5573. DD "", "", "dmdevent2-loop2", eNone, eNone, 0, 400, FALSE, ""
  5574. DD "", "", "dmdevent2-loop3", eNone, eNone, 0, 400, FALSE, ""
  5575. DD "", "", "dmdevent2-loop2", eNone, eNone, 0, 400, FALSE, ""
  5576. DD "", "", "dmdevent2-loop3", eNone, eNone, 0, 400, FALSE, ""
  5577. DD "", "", "dmdevent2-loop2", eNone, eNone, 0, 400, FALSE, ""
  5578. DD "", "", "dmdevent2-loop3", eNone, eNone, 0, 600, FALSE, ""
  5579. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT 6 DROPTARGET"), "", eNone, eBlink, 0, 2000, FALSE, ""
  5580. EventStarted = 2
  5581. DOF 112, DOFPulse
  5582. ct1.isdropped = 0
  5583. ct2.isdropped = 0
  5584. ct3.isdropped = 0
  5585. PlaySound "fx_resetdrop"
  5586. l38.State = 2
  5587. l39.State = 2
  5588. l40.State = 2
  5589. CTHits = 0
  5590. EjectBallsInDeskDelay = 80
  5591. Event2Delay = 45 * 20 '45 seconds
  5592. PlayTheme
  5593. End Sub
  5594.  
  5595. Sub WinEvent2
  5596. DOF 137, DOFPulse
  5597. Say "Dont_fuck_with_me", "34433337":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5598. WinEventLights
  5599. Event2Delay = 0
  5600. Events(2) = 1
  5601. AddScore ScoreME2Complete
  5602. l37.State = 0
  5603. l38.State = 0
  5604. l39.State = 0
  5605. l40.State = 0
  5606. ResetEvents
  5607. DisplayFlushQueue
  5608. DD "", "", "dmdevent2-final1", eNone, eNone, 0, 600, FALSE, ""
  5609. DD "", "", "dmdevent2-final2", eNone, eNone, 0, 200, FALSE, ""
  5610. DD "", "", "dmdevent2-final1", eNone, eNone, 0, 200, FALSE, ""
  5611. DD "", "", "dmdevent2-final2", eNone, eNone, 0, 200, FALSE, ""
  5612. DD "", "", "dmdevent2-final1", eNone, eNone, 0, 200, FALSE, ""
  5613. DD "", "", "dmdevent2-final2", eNone, eNone, 0, 200, FALSE, ""
  5614. DD "", "", "dmdevent2-final1", eNone, eNone, 0, 200, FALSE, ""
  5615. DD "", "", "dmdevent2-final2", eNone, eNone, 0, 200, FALSE, ""
  5616. DD "", "", "dmdevent2-final1", eNone, eNone, 0, 200, FALSE, ""
  5617. DD "", "", "dmdevent2-final2", eNone, eNone, 0, 200, True, ""
  5618. End Sub
  5619.  
  5620. Sub EndEvent2
  5621. Say "You_boring_you_know_that", "153634151":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5622. Event2Delay = 0
  5623. Events(2) = 1
  5624. AddScore ScoreME2Part
  5625. l37.State = 0
  5626. l38.State = 0
  5627. l39.State = 0
  5628. l40.State = 0
  5629. ResetEvents
  5630. DisplayFlushQueue
  5631. DD "", "", "dmdevent2-final1", eNone, eNone, 0, 600, FALSE, ""
  5632. DD "", "", "dmdevent2-final2", eNone, eNone, 0, 200, FALSE, ""
  5633. DD "", "", "dmdevent2-final1", eNone, eNone, 0, 200, FALSE, ""
  5634. DD "", "", "dmdevent2-final2", eNone, eNone, 0, 200, FALSE, ""
  5635. DD "", "", "dmdevent2-final1", eNone, eNone, 0, 200, FALSE, ""
  5636. DD "", "", "dmdevent2-final2", eNone, eNone, 0, 200, FALSE, ""
  5637. DD "", "", "dmdevent2-final1", eNone, eNone, 0, 200, FALSE, ""
  5638. DD "", "", "dmdevent2-final2", eNone, eNone, 0, 200, FALSE, ""
  5639. DD "", "", "dmdevent2-final1", eNone, eNone, 0, 200, FALSE, ""
  5640. DD "", "", "dmdevent2-final2", eNone, eNone, 0, 200, True, ""
  5641. End Sub
  5642.  
  5643. '************************************
  5644. ' Event 3 : shoot 3 center mini loops
  5645. '************************************
  5646. ' 3 loops in 45 seconds
  5647.  
  5648. Dim Event3Delay
  5649.  
  5650. Sub StartEvent3
  5651. Say "Tony_would_like_a_word", "131312363628273414141":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5652. DD "", "", "dmdevent3-1", eNone, eNone, 0, 400, FALSE, ""
  5653. DD "", "", "dmdevent3-2", eNone, eNone, 0, 400, FALSE, ""
  5654. DD "", "", "dmdevent3-3", eNone, eNone, 0, 400, FALSE, ""
  5655. DD "", "", "dmdevent3-1", eNone, eNone, 0, 400, FALSE, ""
  5656. DD "", "", "dmdevent3-2", eNone, eNone, 0, 400, FALSE, ""
  5657. DD "", "", "dmdevent3-3", eNone, eNone, 0, 400, FALSE, ""
  5658. DD "", "", "dmdevent3-1", eNone, eNone, 0, 400, FALSE, ""
  5659. DD "", "", "dmdevent3-2", eNone, eNone, 0, 400, FALSE, ""
  5660. DD "", "", "dmdevent3-3", eNone, eNone, 0, 400, FALSE, ""
  5661. DD "", "", "dmdevent3-4", eNone, eNone, 0, 200, FALSE, ""
  5662. DD "", "", "dmdevent3-3", eNone, eNone, 0, 200, FALSE, ""
  5663. DD "", "", "dmdevent3-4", eNone, eNone, 0, 200, FALSE, ""
  5664. DD "", "", "dmdevent3-3", eNone, eNone, 0, 200, FALSE, ""
  5665. DD "", "", "dmdevent3-4", eNone, eNone, 0, 200, FALSE, ""
  5666. DD "", "", "dmdevent3-3", eNone, eNone, 0, 200, FALSE, ""
  5667. DD "", "", "dmdevent3-4", eNone, eNone, 0, 200, FALSE, ""
  5668. DD "", "", "dmdevent3-3", eNone, eNone, 0, 200, FALSE, ""
  5669. DD "", "", "dmdevent3-4", eNone, eNone, 0, 200, FALSE, ""
  5670. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT 3 MINI LOOPS"), "", eNone, eBlink, 0, 2000, FALSE, ""
  5671. EventStarted = 3
  5672. DOF 112, DOFPulse
  5673. ct1.isdropped = 0
  5674. ct2.isdropped = 0
  5675. ct3.isdropped = 0
  5676. PlaySound SoundFX("fx_resetdrop", DOFContactors)
  5677. InitMiniLoops
  5678. l25.State = 2
  5679. l42.State = 2
  5680. EjectBallsInDeskDelay = 80
  5681. Event3Delay = 45 * 20 '45 seconds
  5682. PlayTheme
  5683. End Sub
  5684.  
  5685. Sub WinEvent3
  5686. DOF 137, DOFPulse
  5687. Say "Fuckin_fuck", "29381":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5688. WinEventLights
  5689. Event3Delay = 0
  5690. Events(3) = 1
  5691. AddScore ScoreME3Complete
  5692. l25.State = 0
  5693. l42.State = 0
  5694. ResetEvents
  5695. DisplayFlushQueue
  5696. DD "", "", "dmdevent3-4", eNone, eNone, 0, 400, FALSE, ""
  5697. DD "", "", "dmdevent3-5", eNone, eNone, 0, 400, FALSE, ""
  5698. DD "", "", "dmdevent3-6", eNone, eNone, 0, 400, FALSE, ""
  5699. DD "", "", "dmdevent3-7", eNone, eNone, 0, 400, FALSE, ""
  5700. DD "", "", "dmdevent3-8", eNone, eNone, 0, 400, FALSE, ""
  5701. DD "", "", "dmdevent3-9", eNone, eNone, 0, 400, FALSE, ""
  5702. DD "", "", "dmdevent3-10", eNone, eNone, 0, 400, FALSE, ""
  5703. DD "", "", "dmdevent3-9", eNone, eNone, 0, 200, FALSE, ""
  5704. DD "", "", "dmdevent3-10", eNone, eNone, 0, 200, FALSE, ""
  5705. DD "", "", "dmdevent3-9", eNone, eNone, 0, 200, FALSE, ""
  5706. DD "", "", "dmdevent3-10", eNone, eNone, 0, 200, FALSE, ""
  5707. DD "", "", "dmdevent3-9", eNone, eNone, 0, 200, FALSE, ""
  5708. DD "", "", "dmdevent3-10", eNone, eNone, 0, 200, FALSE, ""
  5709. DD "", "", "dmdevent3-9", eNone, eNone, 0, 200, FALSE, ""
  5710. DD "", "", "dmdevent3-10", eNone, eNone, 0, 200, TRUE, ""
  5711. End Sub
  5712.  
  5713. Sub EndEvent3
  5714. Say "You_fuckin_kidding_me_man", "2324133413141"
  5715. Event3Delay = 0
  5716. Events(3) = 1
  5717. AddScore ScoreME3Part
  5718. l25.State = 0
  5719. l42.State = 0
  5720. ResetEvents
  5721. DisplayFlushQueue
  5722. DD "", "", "dmdevent3-4", eNone, eNone, 0, 400, FALSE, ""
  5723. DD "", "", "dmdevent3-5", eNone, eNone, 0, 400, FALSE, ""
  5724. DD "", "", "dmdevent3-6", eNone, eNone, 0, 400, FALSE, ""
  5725. DD "", "", "dmdevent3-7", eNone, eNone, 0, 400, FALSE, ""
  5726. DD "", "", "dmdevent3-8", eNone, eNone, 0, 400, FALSE, ""
  5727. DD "", "", "dmdevent3-9", eNone, eNone, 0, 400, FALSE, ""
  5728. DD "", "", "dmdevent3-10", eNone, eNone, 0, 400, FALSE, ""
  5729. DD "", "", "dmdevent3-9", eNone, eNone, 0, 200, FALSE, ""
  5730. DD "", "", "dmdevent3-10", eNone, eNone, 0, 200, FALSE, ""
  5731. DD "", "", "dmdevent3-9", eNone, eNone, 0, 200, FALSE, ""
  5732. DD "", "", "dmdevent3-10", eNone, eNone, 0, 200, FALSE, ""
  5733. DD "", "", "dmdevent3-9", eNone, eNone, 0, 200, FALSE, ""
  5734. DD "", "", "dmdevent3-10", eNone, eNone, 0, 200, FALSE, ""
  5735. DD "", "", "dmdevent3-9", eNone, eNone, 0, 200, FALSE, ""
  5736. DD "", "", "dmdevent3-10", eNone, eNone, 0, 200, TRUE, ""
  5737. End Sub
  5738.  
  5739. '************************************
  5740. ' Event 4 : shoot the spinner
  5741. '************************************
  5742. ' 50 hits in 45 seconds
  5743.  
  5744. Dim rottHits, Event4Delay
  5745.  
  5746. Sub StartEvent4
  5747. Say "I_tell_you_something_fuck_you_man", "232414239535251":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5748. DD "", "", "dmdevent4-1", eNone, eNone, 0, 300, FALSE, ""
  5749. DD "", "", "dmdevent4-2", eNone, eNone, 0, 300, FALSE, ""
  5750. DD "", "", "dmdevent4-3", eNone, eNone, 0, 300, FALSE, ""
  5751. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT 50"), "", eNone, eBlink, 0, 500, FALSE, ""
  5752. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SPINNER TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5753. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT 50"), "", eNone, eBlink, 0, 500, FALSE, ""
  5754. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SPINNER TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5755. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT 50"), "", eNone, eBlink, 0, 500, FALSE, ""
  5756. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SPINNER TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5757. DD "", "", "dmdevent4-4", eNone, eNone, 0, 300, FALSE, ""
  5758. DD "", "", "dmdevent4-5", eNone, eNone, 0, 300, FALSE, ""
  5759. DD "", "", "dmdevent4-6", eNone, eNone, 0, 300, FALSE, ""
  5760. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT 50"), "", eNone, eBlink, 0, 500, FALSE, ""
  5761. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SPINNER TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5762. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT 50"), "", eNone, eBlink, 0, 500, FALSE, ""
  5763. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SPINNER TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5764. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT 50"), "", eNone, eBlink, 0, 500, FALSE, ""
  5765. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SPINNER TARGETS"), "", eNone, eBlink, 0, 500, FALSE, ""
  5766. DOF 112, DOFPulse
  5767. ct1.isdropped = 0
  5768. ct2.isdropped = 0
  5769. ct3.isdropped = 0
  5770. PlaySound SoundFX("fx_resetdrop", DOFContactors)
  5771. EventStarted = 4
  5772. rottHits = 0
  5773. l16.State = 2
  5774. EjectBallsInDeskDelay = 80
  5775. Event4Delay = 45 * 20 '45 seconds
  5776. PlayTheme
  5777. End Sub
  5778.  
  5779. Sub WinEvent4
  5780. DOF 137, DOFPulse
  5781. Say "How_about_we_get_some_ice_cream", "2792131314141413131131":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5782. WinEventLights
  5783. Event4Delay = 0
  5784. Events(4) = 1
  5785. AddScore ScoreME4Complete
  5786. rottHits = 0
  5787. l16.State = 0
  5788. ResetEvents
  5789. DisplayFlushQueue
  5790. DD "", "", "dmdevent4-7", eNone, eNone, 0, 400, FALSE, ""
  5791. DD "", "", "dmdevent4-8", eNone, eNone, 0, 400, FALSE, ""
  5792. DD "", "", "dmdevent4-9", eNone, eNone, 0, 400, FALSE, ""
  5793. DD "", "", "dmdevent4-10", eNone, eNone, 0, 200, FALSE, ""
  5794. DD "", "", "dmdevent4-9", eNone, eNone, 0, 200, FALSE, ""
  5795. DD "", "", "dmdevent4-10", eNone, eNone, 0, 200, FALSE, ""
  5796. DD "", "", "dmdevent4-9", eNone, eNone, 0, 200, FALSE, ""
  5797. DD "", "", "dmdevent4-10", eNone, eNone, 0, 200, FALSE, ""
  5798. DD "", "", "dmdevent4-9", eNone, eNone, 0, 200, FALSE, ""
  5799. DD "", "", "dmdevent4-10", eNone, eNone, 0, 200, FALSE, ""
  5800. DD "", "", "dmdevent4-9", eNone, eNone, 0, 200, FALSE, ""
  5801. DD "", "", "dmdevent4-10", eNone, eNone, 0, 200, TRUE, ""
  5802. End Sub
  5803.  
  5804. Sub EndEvent4
  5805. Say "I_dont_give_a_fuck", "262423141":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5806. Event4Delay = 0
  5807. Events(4) = 1
  5808. AddScore ScoreME4Part
  5809. rottHits = 0
  5810. l16.State = 0
  5811. ResetEvents
  5812. DisplayFlushQueue
  5813. DD "", "", "dmdevent4-7", eNone, eNone, 0, 400, FALSE, ""
  5814. DD "", "", "dmdevent4-8", eNone, eNone, 0, 400, FALSE, ""
  5815. DD "", "", "dmdevent4-9", eNone, eNone, 0, 400, FALSE, ""
  5816. DD "", "", "dmdevent4-10", eNone, eNone, 0, 200, FALSE, ""
  5817. DD "", "", "dmdevent4-9", eNone, eNone, 0, 200, FALSE, ""
  5818. DD "", "", "dmdevent4-10", eNone, eNone, 0, 200, FALSE, ""
  5819. DD "", "", "dmdevent4-9", eNone, eNone, 0, 200, FALSE, ""
  5820. DD "", "", "dmdevent4-10", eNone, eNone, 0, 200, FALSE, ""
  5821. DD "", "", "dmdevent4-9", eNone, eNone, 0, 200, FALSE, ""
  5822. DD "", "", "dmdevent4-10", eNone, eNone, 0, 200, FALSE, ""
  5823. DD "", "", "dmdevent4-9", eNone, eNone, 0, 200, FALSE, ""
  5824. DD "", "", "dmdevent4-10", eNone, eNone, 0, 200, TRUE, ""
  5825. End Sub
  5826.  
  5827. Sub CheckrottHits
  5828. rottHits = rottHits + 1
  5829. If rottHits >= 50 Then
  5830. WinEvent4
  5831. End If
  5832. End Sub
  5833.  
  5834. '************************************
  5835. ' Event 5 : shoot 50 bumpers
  5836. '************************************
  5837.  
  5838. Dim Event5Bumps, Event5Delay
  5839.  
  5840. Sub StartEvent5
  5841. Say "You_know_what_you_need", "26279965342515351":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5842. DD "", "", "dmdevent5-1", eNone, eNone, 0, 300, FALSE, ""
  5843. DD "", "", "dmdevent5-2", eNone, eNone, 0, 300, FALSE, ""
  5844. DD "", "", "dmdevent5-3", eNone, eNone, 0, 300, FALSE, ""
  5845. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5846. DD "", "", "dmdevent5-A", eNone, eNone, 0, 300, FALSE, ""
  5847. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5848. DD "", "", "dmdevent5-A", eNone, eNone, 0, 300, FALSE, ""
  5849. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5850. DD "", "", "dmdevent5-A", eNone, eNone, 0, 300, FALSE, ""
  5851. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5852. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT 25 BUMPERS"), "", eNone, eBlink, 0, 1500, FALSE, ""
  5853. DD "", "", "dmdevent5-1", eNone, eNone, 0, 300, FALSE, ""
  5854. DD "", "", "dmdevent5-2", eNone, eNone, 0, 300, FALSE, ""
  5855. DD "", "", "dmdevent5-3", eNone, eNone, 0, 300, FALSE, ""
  5856. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5857. DD "", "", "dmdevent5-B", eNone, eNone, 0, 300, FALSE, ""
  5858. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5859. DD "", "", "dmdevent5-B", eNone, eNone, 0, 300, FALSE, ""
  5860. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5861. DD "", "", "dmdevent5-B", eNone, eNone, 0, 300, FALSE, ""
  5862. DD "", "", "dmdevent5-4", eNone, eNone, 0, 300, FALSE, ""
  5863. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT 25 BUMPERS"), "", eNone, eBlink, 0, 1500, FALSE, ""
  5864. DD "", "", "dmdevent5-final1", eNone, eNone, 0, 300, FALSE, ""
  5865. DD "", "", "dmdevent5-final2", eNone, eNone, 0, 300, FALSE, ""
  5866. DD "", "", "dmdevent5-final1", eNone, eNone, 0, 300, FALSE, ""
  5867. DD "", "", "dmdevent5-final2", eNone, eNone, 0, 300, FALSE, ""
  5868. DD "", "", "dmdevent5-final1", eNone, eNone, 0, 300, FALSE, ""
  5869. DD "", "", "dmdevent5-final2", eNone, eNone, 0, 300, FALSE, ""
  5870. DD "", "", "dmdevent5-final1", eNone, eNone, 0, 300, FALSE, ""
  5871. DD "", "", "dmdevent5-final2", eNone, eNone, 0, 300, FALSE, ""
  5872. DD "", "", "dmdevent5-final1", eNone, eNone, 0, 300, FALSE, ""
  5873. DD "", "", "dmdevent5-final2", eNone, eNone, 0, 300, FALSE, ""
  5874. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT 25 BUMPERS"), "", eNone, eBlink, 0, 1500, FALSE, ""
  5875. EventStarted = 5
  5876. Event5Bumps = 0
  5877. SetLamp 2, 1, 0, 0
  5878. SetLamp 3, 0, 1, -1
  5879. LightBumer1.State = 2
  5880. LightBumer2.State = 2
  5881. LightBumer3.State = 2
  5882. LightBumer1a.State = 2
  5883. LightBumer2a.State = 2
  5884. LightBumer3a.State = 2
  5885. l53.State = 2
  5886. EjectBallsInDeskDelay = 80
  5887. Event5Delay = 45 * 20 '45 seconds
  5888. PlayTheme
  5889. End Sub
  5890.  
  5891. Sub WinEvent5
  5892. DOF 137, DOFPulse
  5893. Say "Boyfriend_fuck_him", "191589159218121813":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5894. WinEventLights
  5895. DisplayFlushQueue
  5896. Events(5) = 1
  5897. Event5Delay = 0
  5898. SetLamp 2, 0, 0, 0
  5899. SetLamp 3, 0, 0, 0
  5900. AddScore ScoreME5Complete
  5901. LightBumer1.State = 0
  5902. LightBumer2.State = 0
  5903. LightBumer3.State = 0
  5904. LightBumer1a.State = 0
  5905. LightBumer2a.State = 0
  5906. LightBumer3a.State = 0
  5907. l53.State = 0
  5908. ResetEvents
  5909. End Sub
  5910.  
  5911. Sub EndEvent5
  5912. Say "Its_obvious_you_got_an_attitude", "131414242224231414141":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5913. DisplayFlushQueue
  5914. Events(5) = 1
  5915. Event5Delay = 0
  5916. SetLamp 2, 0, 0, 0
  5917. SetLamp 3, 0, 0, 0
  5918. AddScore ScoreME5Part
  5919. LightBumer1.State = 0
  5920. LightBumer2.State = 0
  5921. LightBumer3.State = 0
  5922. LightBumer1a.State = 0
  5923. LightBumer2a.State = 0
  5924. LightBumer3a.State = 0
  5925. l53.State = 0
  5926. ResetEvents
  5927. End Sub
  5928.  
  5929. Sub CheckEvent5Bumps
  5930. Event5Bumps = Event5Bumps + 1
  5931. If Event5Bumps >= 15 Then
  5932. WinEvent5
  5933. End If
  5934. End Sub
  5935.  
  5936. '*********************************************************
  5937. ' Event 6 : drop 3 center droptargets and shoot left ramp
  5938. '*********************************************************
  5939.  
  5940. Dim Event6Drop, Event6Delay
  5941.  
  5942. Sub StartEvent6
  5943. Say "You_fuckin_prick", "232423441":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5944. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5945. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5946. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5947. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5948. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5949. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5950. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5951. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5952. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5953. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5954. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5955. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5956. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5957. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5958. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5959. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5960. DD "", "", "dmdevent6-3", eNone, eNone, 0, 300, FALSE, ""
  5961. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5962. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT DROPTARGETS"), "", eNone, eBlink, 0, 1500, FALSE, ""
  5963. EventStarted = 6
  5964. 'prepare drop targets
  5965. PlaySound SoundFX("fx_resetdrop", DOFContactors)
  5966. DroppedTargets(0) = 0
  5967. DroppedTargets(1) = 0
  5968. DroppedTargets(2) = 0
  5969. DroppedTargets(3) = 0
  5970. DOF 112, DOFContactors
  5971. ct1.isdropped = 0
  5972. ct2.isdropped = 0
  5973. ct3.isdropped = 0
  5974. l38.State = 2
  5975. l39.State = 2
  5976. l40.State = 2
  5977. l37.State = 0
  5978. Event6Drop = 0
  5979. EjectBallsInDeskDelay = 80
  5980. Event6Delay = 45 * 20 '45 seconds
  5981. PlayTheme
  5982. End Sub
  5983.  
  5984. Sub WinEvent6
  5985. DOF 137, DOFPulse
  5986. Say "Who_you_think_you_fuckin_with", "1324313131313761":If B2SOn Then Controller.B2SStartAnimation("Tony")
  5987. WinEventLights
  5988. Events(6) = 1
  5989. Event6Delay = 0
  5990. l23.State = 0
  5991. AddScore ScoreME6Complete
  5992. ResetEvents
  5993. DisplayFlushQueue
  5994. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  5995. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5996. DD "", "", "dmdevent6-4", eNone, eNone, 0, 300, FALSE, ""
  5997. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  5998. DD "", "", "dmdevent6-4", eNone, eNone, 0, 200, FALSE, ""
  5999. DD "", "", "dmdevent6-2", eNone, eNone, 0, 200, FALSE, ""
  6000. DD "", "", "dmdevent6-4", eNone, eNone, 0, 200, FALSE, ""
  6001. DD "", "", "dmdevent6-2", eNone, eNone, 0, 200, FALSE, ""
  6002. DD "", "", "dmdevent6-4", eNone, eNone, 0, 200, FALSE, ""
  6003. DD "", "", "dmdevent6-5", eNone, eNone, 0, 300, FALSE, ""
  6004. DD "", "", "dmdevent6-6", eNone, eNone, 0, 300, FALSE, ""
  6005. DD "", "", "dmdevent6-7", eNone, eNone, 0, 200, FALSE, ""
  6006. DD "", "", "dmdevent6-6", eNone, eNone, 0, 300, FALSE, ""
  6007. DD "", "", "dmdevent6-7", eNone, eNone, 0, 200, FALSE, ""
  6008. DD "", "", "dmdevent6-6", eNone, eNone, 0, 300, FALSE, ""
  6009. DD "", "", "dmdevent6-7", eNone, eNone, 0, 200, FALSE, ""
  6010. DD "", "", "dmdevent6-6", eNone, eNone, 0, 300, TRUE, ""
  6011. End Sub
  6012.  
  6013. Sub EndEvent6
  6014. Say "You_just_fucked_up_man", "24251423341":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6015. Events(6) = 1
  6016. Event6Delay = 0
  6017. l23.State = 0
  6018. AddScore ScoreME6Part
  6019. ResetEvents
  6020. DisplayFlushQueue
  6021. DD "", "", "dmdevent6-1", eNone, eNone, 0, 300, FALSE, ""
  6022. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  6023. DD "", "", "dmdevent6-4", eNone, eNone, 0, 300, FALSE, ""
  6024. DD "", "", "dmdevent6-2", eNone, eNone, 0, 300, FALSE, ""
  6025. DD "", "", "dmdevent6-4", eNone, eNone, 0, 200, FALSE, ""
  6026. DD "", "", "dmdevent6-2", eNone, eNone, 0, 200, FALSE, ""
  6027. DD "", "", "dmdevent6-4", eNone, eNone, 0, 200, FALSE, ""
  6028. DD "", "", "dmdevent6-2", eNone, eNone, 0, 200, FALSE, ""
  6029. DD "", "", "dmdevent6-4", eNone, eNone, 0, 200, FALSE, ""
  6030. DD "", "", "dmdevent6-5", eNone, eNone, 0, 300, FALSE, ""
  6031. DD "", "", "dmdevent6-6", eNone, eNone, 0, 300, FALSE, ""
  6032. DD "", "", "dmdevent6-7", eNone, eNone, 0, 200, FALSE, ""
  6033. DD "", "", "dmdevent6-6", eNone, eNone, 0, 300, FALSE, ""
  6034. DD "", "", "dmdevent6-7", eNone, eNone, 0, 200, FALSE, ""
  6035. DD "", "", "dmdevent6-6", eNone, eNone, 0, 300, FALSE, ""
  6036. DD "", "", "dmdevent6-7", eNone, eNone, 0, 200, FALSE, ""
  6037. DD "", "", "dmdevent6-6", eNone, eNone, 0, 300, TRUE, ""
  6038. End Sub
  6039.  
  6040. Sub CheckEvent6
  6041. DroppedTargets(0) = DroppedTargets(1) + DroppedTargets(2) + DroppedTargets(3)
  6042. If DroppedTargets(0) = 3 Then 'enable the left ramp score
  6043. l23.State = 2
  6044. l38.State = 0
  6045. l39.State = 0
  6046. l40.State = 0
  6047. Event6Drop = 1
  6048. UpdateEventsDMD
  6049. End If
  6050. End Sub
  6051.  
  6052. '************************************************
  6053. ' Event 7: shoot right ramp and left bank targets
  6054. '************************************************
  6055.  
  6056. Dim Event7State, Event7Hits, Event7Delay
  6057.  
  6058. Sub StartEvent7
  6059. Say "What_are_you_going_to_do_for_me", "1312121312131":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6060. DisplayFlushQueue
  6061. DD "", "", "dmdevent7-1", eNone, eNone, 0, 300, FALSE, ""
  6062. DD "", "", "dmdevent7-2", eNone, eNone, 0, 300, FALSE, ""
  6063. DD "", "", "dmdevent7-3", eNone, eNone, 0, 300, FALSE, ""
  6064. DD "", "", "dmdevent7-4", eNone, eNone, 0, 300, FALSE, ""
  6065. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  6066. DD "", "", "dmdevent7-4", eNone, eNone, 0, 300, FALSE, ""
  6067. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  6068. DD "", "", "dmdevent7-4", eNone, eNone, 0, 300, FALSE, ""
  6069. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  6070. DD "", "", "dmdevent7-6", eNone, eNone, 0, 200, FALSE, ""
  6071. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  6072. DD "", "", "dmdevent7-6", eNone, eNone, 0, 200, FALSE, ""
  6073. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  6074. DD "", "", "dmdevent7-6", eNone, eNone, 0, 200, FALSE, ""
  6075. DD "", "", "dmdevent7-5", eNone, eNone, 0, 300, FALSE, ""
  6076. DD "", "", "dmdevent7-6", eNone, eNone, 0, 200, FALSE, ""
  6077. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT BANK TARGETS"), "", eNone, eBlink, 0, 1500, FALSE, ""
  6078. EventStarted = 7
  6079. Event7Hits = 0
  6080. PrepareBank
  6081. EjectBallsInDeskDelay = 80
  6082. Event7Delay = 45 * 20 '45 seconds
  6083. PlayTheme
  6084. End Sub
  6085.  
  6086. Sub WinEvent7
  6087. DOF 137, DOFPulse
  6088. Say "I_like_you_your_like_a_tiger", "2713931234131":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6089. WinEventLights
  6090. Events(7) = 1
  6091. Event7Delay = 0
  6092. InitBank
  6093. l48.State = 0
  6094. ResetEvents
  6095. DisPlayScoreNow
  6096. AddScore ScoreME7Complete
  6097. End Sub
  6098.  
  6099. Sub EndEvent7
  6100. Say "Go_fuck_yourself", "353528":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6101. Events(7) = 1
  6102. Event7Delay = 0
  6103. InitBank
  6104. l48.State = 0
  6105. ResetEvents
  6106. DisPlayScoreNow
  6107. AddScore ScoreME7Part
  6108. End Sub
  6109.  
  6110. Sub CheckEvent7
  6111. Select Case Event7Hits
  6112. Case 0 'bank
  6113. If Event7State = 0 Then
  6114. Event7Hits = 1
  6115. PrepareRRamp
  6116. End If
  6117. Case 1 'Right ramp
  6118. If Event7State = 1 Then
  6119. Event7Hits = 2
  6120. PrepareBank
  6121. End If
  6122. Case 2 'bank
  6123. If Event7State = 0 Then
  6124. Event7Hits = 3
  6125. PrepareRRamp
  6126. End If
  6127. Case 3 'Right ramp win
  6128. If Event7State = 1 Then
  6129. WinEvent7
  6130. End If
  6131. End Select
  6132. End Sub
  6133.  
  6134. Sub PrepareBank
  6135. Event7State = 0 'bank
  6136. l11.State = 2
  6137. l12.State = 2
  6138. l13.State = 2
  6139. l14.State = 2
  6140. l48.State = 0
  6141. End Sub
  6142.  
  6143. Sub PrepareRRamp
  6144. Event7State = 1 'right ramp
  6145. l11.State = 0
  6146. l12.State = 0
  6147. l13.State = 0
  6148. l14.State = 0
  6149. l48.State = 2
  6150. End Sub
  6151.  
  6152. '************************************
  6153. ' Event 8 : car skillshot
  6154. '************************************
  6155. Dim Event8Delay
  6156.  
  6157. Sub StartEvent8
  6158. Say "Have_my_car_set_to_me_ok", "24152414141726":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6159. DisplayFlushQueue
  6160. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  6161. DD "", "", "dmdevent8-2", eNone, eNone, 0, 300, FALSE, ""
  6162. DD "", "", "dmdevent8-3", eNone, eNone, 0, 300, FALSE, ""
  6163. DD "", "", "dmdevent8-4", eNone, eNone, 0, 300, FALSE, ""
  6164. DD "", "", "dmdevent8-5", eNone, eNone, 0, 300, FALSE, ""
  6165. DD "", "", "dmdevent8-6", eNone, eNone, 0, 300, FALSE, ""
  6166. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  6167. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  6168. DD "", "", "dmdevent8-2", eNone, eNone, 0, 300, FALSE, ""
  6169. DD "", "", "dmdevent8-3", eNone, eNone, 0, 300, FALSE, ""
  6170. DD "", "", "dmdevent8-4", eNone, eNone, 0, 300, FALSE, ""
  6171. DD "", "", "dmdevent8-5", eNone, eNone, 0, 300, FALSE, ""
  6172. DD "", "", "dmdevent8-6", eNone, eNone, 0, 300, FALSE, ""
  6173. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  6174. DD "", "", "dmdevent8-1", eNone, eNone, 0, 300, FALSE, ""
  6175. DD "", "", "dmdevent8-2", eNone, eNone, 0, 300, FALSE, ""
  6176. DD "", "", "dmdevent8-3", eNone, eNone, 0, 300, FALSE, ""
  6177. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("GET INTO THE CAR"), "", eNone, eBlink, 0, 1500, FALSE, ""
  6178. EventStarted = 8
  6179. LeftFlipper.RotateToStart
  6180. RightFlipper.RotateToStart
  6181. l17.State = 2
  6182. SetLamp 4, 1, 0, 0
  6183. Event8Delay = 30 * 20 '30 seconds
  6184. BallsInDesk = BallsInDesk - 1
  6185. NewBall8
  6186. PlayTheme
  6187. End Sub
  6188.  
  6189. Sub EndEvent8
  6190. Say "Bring_it_to_me_cockroach", "1622111115121":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6191. DisPlayScoreNow
  6192. Events(8) = 1
  6193. Event8Delay = 0 'just to be sure it is 0
  6194. l17.State = 0
  6195. SetLamp 4, 0, 0, 0
  6196. ResetEvents
  6197. End Sub
  6198.  
  6199. Sub NewBall8
  6200. If EventStarted = 8 Then AutoPlungerReady = 0
  6201. If Event8Delay = 0 Then EndEvent8
  6202. BallRelease.createball
  6203. BallsOnPlayfield = BallsOnPlayfield + 1
  6204. BallRelease.Kick 90, 8
  6205. PlaySound "fx_ballrel"
  6206. End Sub
  6207.  
  6208. '************************************
  6209. ' Event 9 : 5 car hits
  6210. '************************************
  6211. Dim Event9Delay
  6212.  
  6213. Sub StartEvent9
  6214. Say "My_name_is_Tony_M", "2414133413341":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6215. DisplayFlushQueue
  6216. DD "", "", "dmdevent9-1", eNone, eNone, 0, 300, FALSE, ""
  6217. DD "", "", "dmdevent9-2", eNone, eNone, 0, 300, FALSE, ""
  6218. DD "", "", "dmdevent9-1", eNone, eNone, 0, 300, FALSE, ""
  6219. DD "", "", "dmdevent9-2", eNone, eNone, 0, 300, FALSE, ""
  6220. DD "", "", "dmdevent9-3", eNone, eNone, 0, 300, FALSE, ""
  6221. DD "", "", "dmdevent9-4", eNone, eNone, 0, 300, FALSE, ""
  6222. DD "", "", "dmdevent9-3", eNone, eNone, 0, 300, FALSE, ""
  6223. DD "", "", "dmdevent9-4", eNone, eNone, 0, 300, FALSE, ""
  6224. DD "", "", "dmdevent9-3", eNone, eNone, 0, 300, FALSE, ""
  6225. DD "", "", "dmdevent9-4", eNone, eNone, 0, 300, FALSE, ""
  6226. DD "", "", "dmdevent9-3", eNone, eNone, 0, 300, FALSE, ""
  6227. DD "", "", "dmdevent9-4", eNone, eNone, 0, 300, FALSE, ""
  6228. DD "", "", "dmdevent9-3", eNone, eNone, 0, 300, FALSE, ""
  6229. DD "", "", "dmdevent9-4", eNone, eNone, 0, 300, FALSE, ""
  6230. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("SHOOT THE CAR"), "", eNone, eBlink, 0, 1500, FALSE, ""
  6231. EventStarted = 9
  6232. CarHits = 0
  6233. l17.State = 2
  6234. EjectBallsInDeskDelay = 80
  6235. Event9Delay = 45 * 20 '45 seconds
  6236. PlayTheme
  6237. End Sub
  6238.  
  6239. Sub WinEvent9
  6240. DOF 137, DOFPulse
  6241. Say "I_told_you_not_to_fuck_with_me", "2335145336543332151":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6242. WinEventLights
  6243. Event9Delay = 0
  6244. Events(9) = 1
  6245. CarHits = 0
  6246. l17.State = 0
  6247. AddScore ScoreME9Complete
  6248. ResetEvents
  6249. DisplayFlushQueue
  6250. DD "", "", "dmdevent9-6", eNone, eNone, 0, 300, FALSE, ""
  6251. DD "", "", "dmdevent9-7", eNone, eNone, 0, 300, FALSE, ""
  6252. DD "", "", "dmdevent9-8", eNone, eNone, 0, 300, FALSE, ""
  6253. DD "", "", "dmdevent9-9", eNone, eNone, 0, 300, FALSE, ""
  6254. DD "", "", "dmdevent9-8", eNone, eNone, 0, 150, FALSE, ""
  6255. DD "", "", "dmdevent9-9", eNone, eNone, 0, 150, FALSE, ""
  6256. DD "", "", "dmdevent9-8", eNone, eNone, 0, 150, FALSE, ""
  6257. DD "", "", "dmdevent9-9", eNone, eNone, 0, 150, FALSE, ""
  6258. DD "", "", "dmdevent9-8", eNone, eNone, 0, 150, FALSE, ""
  6259. DD "", "", "dmdevent9-9", eNone, eNone, 0, 150, FALSE, ""
  6260. DD "", "", "dmdevent9-8", eNone, eNone, 0, 150, FALSE, ""
  6261. DD "", "", "dmdevent9-9", eNone, eNone, 0, 150, TRUE, ""
  6262. End Sub
  6263.  
  6264. Sub EndEvent9
  6265. Say "Shit_ass_fuck", "362434":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6266. Event9Delay = 0
  6267. Events(9) = 1
  6268. CarHits = 0
  6269. l17.State = 0
  6270. AddScore ScoreME9Part
  6271. ResetEvents
  6272. DisplayFlushQueue
  6273. DD "", "", "dmdevent9-6", eNone, eNone, 0, 300, FALSE, ""
  6274. DD "", "", "dmdevent9-7", eNone, eNone, 0, 300, FALSE, ""
  6275. DD "", "", "dmdevent9-8", eNone, eNone, 0, 300, FALSE, ""
  6276. DD "", "", "dmdevent9-9", eNone, eNone, 0, 300, FALSE, ""
  6277. DD "", "", "dmdevent9-8", eNone, eNone, 0, 150, FALSE, ""
  6278. DD "", "", "dmdevent9-9", eNone, eNone, 0, 150, FALSE, ""
  6279. DD "", "", "dmdevent9-8", eNone, eNone, 0, 150, FALSE, ""
  6280. DD "", "", "dmdevent9-9", eNone, eNone, 0, 150, FALSE, ""
  6281. DD "", "", "dmdevent9-8", eNone, eNone, 0, 150, FALSE, ""
  6282. DD "", "", "dmdevent9-9", eNone, eNone, 0, 150, FALSE, ""
  6283. DD "", "", "dmdevent9-8", eNone, eNone, 0, 150, FALSE, ""
  6284. DD "", "", "dmdevent9-9", eNone, eNone, 0, 150, TRUE, ""
  6285. End Sub
  6286.  
  6287. '************************************
  6288. ' Event 10 : shoot all shots
  6289. '************************************
  6290. ' not timed. Ends when ball drains
  6291.  
  6292. Dim Event10Hits(8)
  6293.  
  6294. Sub StartEvent10
  6295. Dim i
  6296. Say "Ok_so_why_dont_we_get_together", "322384121413141":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6297. DisplayFlushQueue
  6298. DD "", "", "dmdevent10-1", eNone, eNone, 0, 300, FALSE, ""
  6299. DD "", "", "dmdevent10-2", eNone, eNone, 0, 300, FALSE, ""
  6300. DD "", "", "dmdevent10-3", eNone, eNone, 0, 300, FALSE, ""
  6301. DD "", "", "dmdevent10-1", eNone, eNone, 0, 300, FALSE, ""
  6302. DD "", "", "dmdevent10-2", eNone, eNone, 0, 300, FALSE, ""
  6303. DD "", "", "dmdevent10-3", eNone, eNone, 0, 300, FALSE, ""
  6304. DD "", "", "dmdevent10-1", eNone, eNone, 0, 300, FALSE, ""
  6305. DD "", "", "dmdevent10-2", eNone, eNone, 0, 300, FALSE, ""
  6306. DD "", "", "dmdevent10-3", eNone, eNone, 0, 300, FALSE, ""
  6307. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("HIT FLASH SHOTS"), "", eNone, eBlink, 0, 1500, FALSE, ""
  6308. EventStarted = 10
  6309. For i = 0 to 8
  6310. Event10Hits(i) = 0
  6311. Next
  6312.  
  6313. l11.State = 2
  6314. l12.State = 2
  6315. l13.State = 2
  6316. l14.State = 2
  6317. l16.State = 2
  6318. l17.State = 2
  6319. l23.State = 2
  6320. l25.State = 2
  6321. l37.State = 2
  6322. l38.State = 2
  6323. l39.State = 2
  6324. l40.State = 2
  6325. l42.State = 2
  6326. l48.State = 2
  6327. l53.State = 2
  6328. EjectBallsInDeskDelay = 80
  6329. PlayTheme
  6330. End Sub
  6331.  
  6332. Sub WinEvent10
  6333. DOF 137, DOFPulse
  6334. Say "Yeah_its_Tony", "3633371":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6335. WinEventLights
  6336. l16.State = 0
  6337. l17.State = 0
  6338. l23.State = 0
  6339. l25.State = 0
  6340. l37.State = 0
  6341. l42.State = 0
  6342. l48.State = 0
  6343. l53.State = 0
  6344. Events(10) = 1
  6345. AddScore ScoreME10Complete
  6346. ResetEvents
  6347. DisplayFlushQueue
  6348. DD "", "", "dmdevent10-4", eNone, eNone, 0, 300, FALSE, ""
  6349. DD "", "", "dmdevent10-5", eNone, eNone, 0, 300, FALSE, ""
  6350. DD "", "", "dmdevent10-6", eNone, eNone, 0, 300, FALSE, ""
  6351. DD "", "", "dmdevent10-7", eNone, eNone, 0, 100, FALSE, ""
  6352. DD "", "", "dmdevent10-6", eNone, eNone, 0, 100, FALSE, ""
  6353. DD "", "", "dmdevent10-7", eNone, eNone, 0, 100, FALSE, ""
  6354. DD "", "", "dmdevent10-6", eNone, eNone, 0, 100, FALSE, ""
  6355. DD "", "", "dmdevent10-7", eNone, eNone, 0, 100, FALSE, ""
  6356. DD "", "", "dmdevent10-6", eNone, eNone, 0, 100, FALSE, ""
  6357. DD "", "", "dmdevent10-7", eNone, eNone, 0, 100, FALSE, ""
  6358. DD "", "", "dmdevent10-6", eNone, eNone, 0, 100, FALSE, ""
  6359. DD "", "", "dmdevent10-7", eNone, eNone, 0, 100, FALSE, ""
  6360. DD "", "", "dmdevent10-6", eNone, eNone, 0, 100, FALSE, ""
  6361. DD "", "", "dmdevent10-7", eNone, eNone, 0, 100, FALSE, ""
  6362. DD "", "", "dmdevent10-6", eNone, eNone, 0, 100, TRUE, ""
  6363. End Sub
  6364.  
  6365. Sub EndEvent10
  6366. Say "Im_fucked", "5417191":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6367. l16.State = 0
  6368. l17.State = 0
  6369. l23.State = 0
  6370. l25.State = 0
  6371. l37.State = 0
  6372. l42.State = 0
  6373. l48.State = 0
  6374. l53.State = 0
  6375. Events(10) = 1
  6376. AddScore ScoreME10Part
  6377. ResetEvents
  6378. DisplayFlushQueue
  6379. DD "", "", "dmdevent10-4", eNone, eNone, 0, 300, FALSE, ""
  6380. DD "", "", "dmdevent10-5", eNone, eNone, 0, 300, FALSE, ""
  6381. DD "", "", "dmdevent10-6", eNone, eNone, 0, 300, FALSE, ""
  6382. DD "", "", "dmdevent10-7", eNone, eNone, 0, 100, FALSE, ""
  6383. DD "", "", "dmdevent10-6", eNone, eNone, 0, 100, FALSE, ""
  6384. DD "", "", "dmdevent10-7", eNone, eNone, 0, 100, FALSE, ""
  6385. DD "", "", "dmdevent10-6", eNone, eNone, 0, 100, FALSE, ""
  6386. DD "", "", "dmdevent10-7", eNone, eNone, 0, 100, FALSE, ""
  6387. DD "", "", "dmdevent10-6", eNone, eNone, 0, 100, FALSE, ""
  6388. DD "", "", "dmdevent10-7", eNone, eNone, 0, 100, FALSE, ""
  6389. DD "", "", "dmdevent10-6", eNone, eNone, 0, 100, FALSE, ""
  6390. DD "", "", "dmdevent10-7", eNone, eNone, 0, 100, FALSE, ""
  6391. DD "", "", "dmdevent10-6", eNone, eNone, 0, 100, FALSE, ""
  6392. DD "", "", "dmdevent10-7", eNone, eNone, 0, 100, FALSE, ""
  6393. DD "", "", "dmdevent10-6", eNone, eNone, 0, 100, TRUE, ""
  6394. End Sub
  6395.  
  6396. Sub CheckEvent10
  6397. Dim i
  6398. Event10Hits(0) = 0
  6399. For i = 1 to 8
  6400. Event10Hits(0) = Event10Hits(0) + Event10Hits(i)
  6401. Next
  6402.  
  6403. Select Case Event10Hits(0)
  6404. Case 1:PlaySound "chanan5"
  6405. Case 2:PlaySound "chanan5A"
  6406. Case 3:PlaySound "chanan5B"
  6407. Case 4:PlaySound "chanan5C"
  6408. Case 5:PlaySound "chanan5D"
  6409. Case 6:PlaySound "chanan5C"
  6410. Case 7:PlaySound "chanan5D"
  6411. Case 8:PlaySound "chanan2":WinEvent10
  6412. End Select
  6413. End Sub
  6414.  
  6415. '*******************************************
  6416. ' Event 11 : shoot 10 Desk shots + multiball
  6417. '*******************************************
  6418.  
  6419. Dim DeskHits, StartEvent11Delay, Event11VoiceDelay, EndEvent11Delay, Event11Kill, EndWinEvent11Delay
  6420.  
  6421. Sub StartEvent11
  6422. Dim i
  6423. For i = 0 To 11
  6424. EventLights(i).State = 0
  6425. Next
  6426.  
  6427. Say "sayhello2", "1415142926161":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6428. DisplayFlushQueue
  6429. DD "", "", "dmdevent11-1", eNone, eNone, 0, 300, FALSE, ""
  6430. DD "", "", "dmdevent11-3", eNone, eNone, 0, 300, FALSE, ""
  6431. DD "", "", "dmdevent11-1", eNone, eNone, 0, 300, FALSE, ""
  6432. DD "", "", "dmdevent11-3", eNone, eNone, 0, 300, FALSE, ""
  6433. DD "", "", "dmdevent11-1", eNone, eNone, 0, 300, FALSE, ""
  6434. DD "", "", "dmdevent11-3", eNone, eNone, 0, 300, FALSE, ""
  6435. DD "", "", "dmdevent11-1", eNone, eNone, 0, 200, FALSE, ""
  6436. DD "", "", "dmdevent11-2", eNone, eNone, 0, 200, FALSE, ""
  6437. DD "", "", "dmdevent11-3", eNone, eNone, 0, 200, FALSE, ""
  6438. DD "", "", "dmdevent11-4", eNone, eNone, 0, 200, FALSE, ""
  6439. DD "", "", "dmdevent11-1", eNone, eNone, 0, 200, FALSE, ""
  6440. DD "", "", "dmdevent11-2", eNone, eNone, 0, 200, FALSE, ""
  6441. DD "", "", "dmdevent11-3", eNone, eNone, 0, 200, FALSE, ""
  6442. DD "", "", "dmdevent11-4", eNone, eNone, 0, 200, FALSE, ""
  6443. DD "", "", "dmdevent11-1", eNone, eNone, 0, 300, FALSE, ""
  6444. DD "", "", "dmdevent11-3", eNone, eNone, 0, 300, FALSE, ""
  6445. DD CenterTop(FormatScore(Score(player) ) ), CenterBottom("KILL TONY"), "", eNone, eBlink, 0, 1500, FALSE, ""
  6446. EventStarted = 11
  6447. DropAll ' drop all targets
  6448. BackDoorPost.IsDropped = 1:DOF 136, DOFPulse
  6449. CloseLockBlock 'close the lock if it was open
  6450. l36.State = 2
  6451. l37.State = 2
  6452. l38.State = 0
  6453. l39.State = 0
  6454. l40.State = 0
  6455. If B2SOn Then Controller.B2SStartAnimation("PalmTrees")
  6456. SetLamp 3, 0, 2, -1
  6457. DeskHits = 0
  6458. Event11Kill = 0
  6459. StartScarShooting 4
  6460. BallsInDesk = 0
  6461. Event11VoiceDelay = 700
  6462. StartBallSaved 20 '20 seconds ball saved
  6463. EndEvent11Delay = 180 * 20 '3 minutes to complete the event
  6464. PlayTheme
  6465. End Sub
  6466.  
  6467. Sub WinEvent11
  6468. 'simulate tilt to turn all lights and flippers off
  6469. DOF 137, DOFPulse
  6470. Tilted = True
  6471. DOF 210, DOFOff
  6472. GiOff
  6473. LightSeqTilt.Play SeqAllOff
  6474. TiltObjects 1
  6475. 'eject balls under the desk
  6476. EjectBallsInDeskDelay = 20
  6477. BallsRemaining = BallsRemaining + 1 'increase one ball to replay the last ball
  6478. PlaySound "tonydeath"
  6479. DisplayFlushQueue
  6480. DD "", "", "dmdevent11-5", eNone, eNone, 0, 300, FALSE, ""
  6481. DD "", "", "dmdevent11-6", eNone, eNone, 0, 300, FALSE, ""
  6482. DD "", "", "dmdevent11-7", eNone, eNone, 0, 300, FALSE, ""
  6483. DD "", "", "dmdevent11-8", eNone, eNone, 0, 300, FALSE, ""
  6484. DD "", "", "dmdevent11-9", eNone, eNone, 0, 300, FALSE, ""
  6485. DD "", "", "dmdevent11-10", eNone, eNone, 0, 300, FALSE, ""
  6486. DD "", "", "dmdevent11-11", eNone, eNone, 0, 300, FALSE, ""
  6487. DD "", "", "dmdevent11-12", eNone, eNone, 0, 300, FALSE, ""
  6488. DD "", "", "dmdevent11-13", eNone, eNone, 0, 300, FALSE, ""
  6489. DD "", "", "dmdevent11-14", eNone, eNone, 0, 300, FALSE, ""
  6490. DD "", "", "dmdevent11-15", eNone, eNone, 0, 300, FALSE, ""
  6491. DD "", "", "dmdevent11-16", eNone, eNone, 0, 300, FALSE, ""
  6492. DD "", "", "dmdevent11-17", eNone, eNone, 0, 300, FALSE, ""
  6493. DD "", "", "dmdevent11-18", eNone, eNone, 0, 1500, FALSE, ""
  6494. DD "", "", "dmdevent11-18-2", eNone, eNone, 0, 1500, FALSE, ""
  6495. DD "", "", "dmdevent11-19", eNone, eNone, 0, 1500, TRUE, ""
  6496. Event11VoiceDelay = 0
  6497. EndEvent11Delay = 0
  6498. EndWinEvent11Delay = 240
  6499. l37.State = 0
  6500. l25.State = 0
  6501. l42.State = 0
  6502. l24.State = 0
  6503. l41.State = 0
  6504. End Sub
  6505.  
  6506. Sub EndWinEvent11
  6507. SetLamp 3, 0, 0, 0
  6508. DisplayScoreNow
  6509. ResetDropTargets
  6510. InitEvents
  6511. PlayTheme
  6512. End Sub
  6513.  
  6514. Sub EndEvent11 'executed from the drain when all multiballs drained
  6515. SetLamp 3, 0, 0, 0
  6516. Say "saygoodnight", "251414152424231":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6517. Event11VoiceDelay = 0
  6518. DisplayScoreNow
  6519. ResetDropTargets
  6520. InitEvents
  6521. l37.State = 0
  6522. l25.State = 0
  6523. l42.State = 0
  6524. l24.State = 0
  6525. l41.State = 0
  6526. PlayTheme
  6527. End Sub
  6528.  
  6529. Sub NextPartEvent11
  6530. ResetDropTargets
  6531. l25.State = 2
  6532. l42.State = 2
  6533. l24.State = 2
  6534. l41.State = 2
  6535. l37.State = 0
  6536. l38.State = 0
  6537. l39.State = 0
  6538. l40.State = 0
  6539. BackDoorPost.IsDropped = 0:DOF 136, DOFPulse
  6540. Event11Kill = 1
  6541. StartScarShooting BallsInDesk
  6542. BallsInDesk = 0
  6543. End Sub
  6544.  
  6545. Sub SayEvent11
  6546. Dim tmp
  6547. tmp = INT(6 * RND(1) )
  6548. Select Case tmp
  6549. Case 0:Say "You_know_who_your_fuckin_with", "25162424261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6550. Case 1:Say "You_need_an_army_to_take_me", "13151414141413331":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6551. Case 2:Say "You_picked_the_wrong_guy_to_fuck_with", "23232523233334261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6552. Case 3:Say "You_think_you_can_fuck_with_me", "2414141423261":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6553. Case 4:Say "Cmon_come_and_get_me", "12132643233414":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6554. Case 5:Say "Cmon_bring_your_army", "13144814":If B2SOn Then Controller.B2SStartAnimation("Tony")
  6555. End Select
  6556. End Sub
  6557.  
  6558. '*******************************
  6559. ' Easter Egg: shoot 100 targets
  6560. '*******************************
  6561. ' 3 ball multiball, ballsave 1 minute, hit 100 targets
  6562.  
  6563. Dim EE, TempEgg, EndEEDelay, EndEEDelay2, StartEasterEggShootingDelay
  6564.  
  6565. Sub InitEasterEgg
  6566. TempEgg = ""
  6567. EE = 0
  6568. EndEEDelay = 0
  6569. EndEEDelay2 = 0
  6570. StartEasterEggShootingDelay = 0
  6571. End Sub
  6572.  
  6573. Sub CheckStartEgg
  6574. TempEgg = RIGHT(TempEgg, 5)
  6575. If TempEgg = "rlrll" AND Credits> 0 Then
  6576. StartEasterEgg
  6577. End If
  6578. End Sub
  6579.  
  6580. Sub StartEasterEgg
  6581. DisplayFlushQueue
  6582. DD CenterTop("YOU FOUND"), CenterBottom("THE EASTER EGG"), "", eNone, eBlink, 0, 1000, True, ""
  6583. 'reset everything
  6584. Initialize
  6585. AttractMode_Off
  6586. GiOn
  6587. Player = 0
  6588. StartEasterEggShootingDelay = 50
  6589. StartBallSaved 61
  6590. EndEEDelay = 120 * 20
  6591. 'PlaySong "scarface_EE.mp3"
  6592. EE = 1 'easter egg is active
  6593. l26.State = 0 'turn off the first event light
  6594. If B2SOn Then Controller.B2SStartAnimation("PalmTrees")
  6595. SetLamp 3, 0, 1, -1
  6596. CTDelay = 0
  6597. EasterLights
  6598. End Sub
  6599.  
  6600. Sub EasterLights
  6601. LightSeqEE.Play SeqUpOn, 50, , 1
  6602. End Sub
  6603.  
  6604. Sub EasterLightsOff
  6605. LightSeqEE.StopPlay
  6606. End Sub
  6607.  
  6608. Sub StartEasterEggShooting
  6609. StartScarShooting 3
  6610. BallsinDesk = 0
  6611. End Sub
  6612.  
  6613. Sub PlayRamdomPunch
  6614. Dim i
  6615. i = INT(RND(1) * 3)
  6616. Select case i
  6617. Case 0:PlaySound "punch1"
  6618. Case 1:PlaySound "punch1"
  6619. Case 2:PlaySound "punch1"
  6620. End Select
  6621. End Sub
  6622.  
  6623. Sub EndEE
  6624. GameStarted = 0
  6625. DOF 121, DOFPulse
  6626. AllLampsOff
  6627. GiOff
  6628. LeftFlipper.RotateToStart
  6629. RightFlipper.RotateToStart
  6630. If Score(0) >= 200 Then
  6631. 'addcredit
  6632. credits = credits + 1:DOF 132, DOFOn
  6633. DD CenterTop("YOU WIN"), "", "", eNone, eBlink, 0, 1000, True, "sf_youwin"
  6634. DOF 137, DOFPulse
  6635. savehs()
  6636. Else
  6637. credits = credits - 1
  6638. DD CenterTop("YOU LOSE"), "", "", eNone, eBlink, 0, 1000, True, "sf_youlose"
  6639. End If
  6640. EndEEDelay2 = 50
  6641. SetLamp 3, 0, 0, 0
  6642. EasterLightsOff
  6643. DOF 222, DOFOff
  6644. End Sub
  6645.  
  6646.  
  6647.  
  6648. '******************************************************************
  6649. ' JP's Fading Lamps for Original tables
  6650. ' v7.0 for VP9 Only Fading Lights
  6651. ' Used mostly for flash effects
  6652. ' Based on PD's Fade Lights System
  6653. '******************************************************************
  6654. ' Syntax:
  6655. ' SetLamp nr, a, b, c
  6656. ' a 0 is Off, 1 is On
  6657. ' b 0 is no blink, 1 is blink, 2 is fast blink
  6658. ' c number of blinks, -1 is until stopped
  6659. ' LState(x) final lamp state
  6660. ' LFade(x) Fading step
  6661. ' LBlink(x) nr of blinks
  6662. ' example:
  6663. ' setlamp 64, 0, 2, 10
  6664. ' this is turn off the lamp 64 but first it blinks fast 10 times
  6665. ' setlamp 64, 1, 2, 10
  6666. ' this is turn on the lamp 64 but first it blinks fast 10 times
  6667. '******************************************************************
  6668.  
  6669. Dim LState(200), LFade(200), LBlink(200)
  6670.  
  6671. ForceAllLampsOff()
  6672. LampTimer.Interval = 40
  6673. LampTimer.Enabled = 1
  6674.  
  6675. Sub LampTimer_Timer()
  6676.  
  6677. FadeL 1, Light001 'Red Dome
  6678.  
  6679. FadeL 2, Light002 'BackWall Dome
  6680.  
  6681. FadeL 3, Light003 'BackWall Bulbs
  6682.  
  6683. FadeLm 4, Light004a 'Car Lights
  6684. FadeL 4, Light004b 'Car Lights
  6685.  
  6686. FadeLm 5, Light005a 'Lamp Posts
  6687. FadeLm 5, Light005b 'Lamp Posts
  6688. FadeLm 5, Light005c 'Lamp Posts
  6689. FadeLm 5, Light005d 'Lamp Posts
  6690. FadeL 5, Light005e 'Lamp Posts
  6691.  
  6692.  
  6693. End Sub
  6694.  
  6695. Sub AllLampsOff()
  6696. Dim x
  6697. For x = 0 to 200
  6698. SetLamp x, 0, 0, 0
  6699. Next
  6700. End Sub
  6701.  
  6702. Sub ForceAllLampsOff()
  6703. Dim x
  6704. For x = 0 to 200
  6705. LFade(x) = 8
  6706. Next
  6707. End Sub
  6708.  
  6709. Sub SetLamp(nr, value, blink, repeat)
  6710. If value> 1 or blink> 2 Then Exit Sub
  6711. If blink = 0 AND value = 0 AND LFade(nr) = 0 Then Exit Sub 'the lamp is already Off and there is no blink so do nothing
  6712. LState(nr) = value
  6713. LBlink(nr) = repeat
  6714. LFade(nr) = value + 2 * blink + 2
  6715. Select Case LFade(nr)
  6716. Case 2:LFade(nr) = 8 'off
  6717. Case 3:LFade(nr) = 11 'on
  6718. Case 4, 5:LFade(nr) = 12 'Blink
  6719. Case 6, 7:LFade(nr) = 16 'Blink fast
  6720. End Select
  6721. End Sub
  6722.  
  6723. 'Lights used
  6724.  
  6725. Sub FadeL(nr, a)
  6726. Select Case LFade(nr)
  6727. 'fade to off
  6728. Case 8:a.State = 0:LFade(nr) = 9
  6729. Case 9:'b.State = 1:LFade(nr) = 10
  6730. Case 10:'b.State = 0:LFade(nr) = 0
  6731. 'turn on
  6732. Case 11:a.State = 0:a.State = 1:LFade(nr) = 1
  6733. 'blink
  6734. Case 12:a.State = 1:LFade(nr) = 13
  6735. Case 13:a.State = 0:LFade(nr) = 14
  6736. Case 14:'b.State = 1:LFade(nr) = 15
  6737. Case 15:'b.State = 0
  6738. LBlink(nr) = LBlink(nr) -1
  6739. If LBlink(nr) = 0 Then
  6740. LFade(nr) = 8 + 3 * LState(nr)
  6741. Else
  6742. LFade(nr) = 12
  6743. End If
  6744. 'blink fast
  6745. Case 16:a.State = 1:LFade(nr) = 17
  6746. Case 17:a.state = 0
  6747. LBlink(nr) = LBlink(nr) -1
  6748. If LBlink(nr) = 0 Then
  6749. LFade(nr) = 8 + 3 * LState(nr)
  6750. Else
  6751. LFade(nr) = 16
  6752. End If
  6753. End Select
  6754. End Sub
  6755.  
  6756. Sub FadeLm(nr, a)
  6757. Select Case LFade(nr)
  6758. 'fade to off
  6759. Case 8:a.State = 0
  6760. Case 9:'b.State = 1
  6761. Case 10:'b.State = 0
  6762. 'turn on
  6763. Case 11:a.State = 0:a.State = 1
  6764. 'blink
  6765. Case 12:a.State = 1
  6766. Case 13:a.State = 0
  6767. Case 14:'b.State = 1
  6768. Case 15:'b.State = 0
  6769. 'blink fast
  6770. Case 16:a.State = 1
  6771. Case 17:a.State = 0
  6772. End Select
  6773. End Sub
  6774.  
  6775. Sub LSample_Timer()
  6776.  
  6777. Flasher2b.visible = Light002.state
  6778.  
  6779. Flasher3a.visible = Light003.state
  6780. Flasher3b.visible = Light003.state
  6781. Flasher3c.visible = Light003.state
  6782. Flasher3d.visible = Light003.state
  6783. Flasher3e.visible = Light003.state
  6784. Flasher3f.visible = Light003.state
  6785.  
  6786. Flasher4a.visible = Light004a.state
  6787. Flasher4b.visible = Light004a.state
  6788.  
  6789. Flasher5a.visible = Light005a.state
  6790. Flasher5b.visible = Light005a.state
  6791. Flasher5c.visible = Light005a.state
  6792. Flasher5d.visible = Light005a.state
  6793. Flasher5e.visible = Light005a.state
  6794.  
  6795. IF Light001.State = 1 Then
  6796. Prim1a.image = "dome2_0_redON"
  6797. Else
  6798. Prim1a.image = "dome2_0_red"
  6799. End IF
  6800.  
  6801.  
  6802. IF Light003.State = 1 Then
  6803. Prim3a.image = "BulbON"
  6804. Prim3b.image = "BulbON"
  6805. Prim3c.image = "BulbON"
  6806. Prim3d.image = "BulbON"
  6807. Prim3e.image = "BulbON"
  6808. Prim3f.image = "BulbON"
  6809. Else
  6810. Prim3a.image = "BulbOFF"
  6811. Prim3b.image = "BulbOFF"
  6812. Prim3c.image = "BulbOFF"
  6813. Prim3d.image = "BulbOFF"
  6814. Prim3e.image = "BulbOFF"
  6815. Prim3f.image = "BulbOFF"
  6816. End IF
  6817.  
  6818.  
  6819. End Sub
  6820.  
  6821.  
  6822. '*********************************************************************
  6823. ' Positional Sound Playback Functions
  6824. '*********************************************************************
  6825.  
  6826. ' Play a sound, depending on the X,Y position of the table element (especially cool for surround speaker setups, otherwise stereo panning only)
  6827. ' parameters (defaults): loopcount (1), volume (1), randompitch (0), pitch (0), useexisting (0), restart (1))
  6828. ' Note that this will not work (currently) for walls/slingshots as these do not feature a simple, single X,Y position
  6829. Sub PlayXYSound(soundname, tableobj, loopcount, volume, randompitch, pitch, useexisting, restart)
  6830. PlaySound soundname, loopcount, volume, AudioPan(tableobj), randompitch, pitch, useexisting, restart, AudioFade(tableobj)
  6831. End Sub
  6832.  
  6833. ' Similar subroutines that are less complicated to use (e.g. simply use standard parameters for the PlaySound call)
  6834. Sub PlaySoundAt(soundname, tableobj)
  6835. PlaySound soundname, 1, 1, AudioPan(tableobj), 0,0,0, 1, AudioFade(tableobj)
  6836. End Sub
  6837.  
  6838. Sub PlaySoundAtBall(soundname)
  6839. PlaySoundAt soundname, ActiveBall
  6840. End Sub
  6841.  
  6842.  
  6843. '*********************************************************************
  6844. ' Supporting Ball & Sound Functions
  6845. '*********************************************************************
  6846.  
  6847. Function AudioFade(tableobj) ' Fades between front and back of the table (for surround systems or 2x2 speakers, etc), depending on the Y position on the table. "table1" is the name of the table
  6848. Dim tmp
  6849. tmp = tableobj.y * 2 / table1.height-1
  6850. If tmp > 0 Then
  6851. AudioFade = Csng(tmp ^10)
  6852. Else
  6853. AudioFade = Csng(-((- tmp) ^10) )
  6854. End If
  6855. End Function
  6856.  
  6857. Function AudioPan(tableobj) ' Calculates the pan for a tableobj based on the X position on the table. "table1" is the name of the table
  6858. Dim tmp
  6859. tmp = tableobj.x * 2 / table1.width-1
  6860. If tmp > 0 Then
  6861. AudioPan = Csng(tmp ^10)
  6862. Else
  6863. AudioPan = Csng(-((- tmp) ^10) )
  6864. End If
  6865. End Function
  6866.  
  6867. Function Vol(ball) ' Calculates the Volume of the sound based on the ball speed
  6868. Vol = Csng(BallVel(ball) ^2 / 2000)
  6869. End Function
  6870.  
  6871. Function Pitch(ball) ' Calculates the pitch of the sound based on the ball speed
  6872. Pitch = BallVel(ball) * 20
  6873. End Function
  6874.  
  6875. Function BallVel(ball) 'Calculates the ball speed
  6876. BallVel = INT(SQR((ball.VelX ^2) + (ball.VelY ^2) ) )
  6877. End Function
  6878.  
  6879.  
  6880. '********************************************************************
  6881. ' JP's VP10 Rolling Sounds (+rothbauerw's Dropping Sounds)
  6882. '********************************************************************
  6883.  
  6884. Const tnob = 5 ' total number of balls
  6885. ReDim rolling(tnob)
  6886. InitRolling
  6887.  
  6888. Sub InitRolling
  6889. Dim i
  6890. For i = 0 to tnob
  6891. rolling(i) = False
  6892. Next
  6893. End Sub
  6894.  
  6895. Sub RollingTimer_Timer()
  6896. Dim BOT, b
  6897. BOT = GetBalls
  6898.  
  6899. ' stop the sound of deleted balls
  6900. For b = UBound(BOT) + 1 to tnob
  6901. rolling(b) = False
  6902. StopSound("fx_ballrolling" & b)
  6903. Next
  6904.  
  6905. ' exit the sub if no balls on the table
  6906. If UBound(BOT) = -1 Then Exit Sub
  6907.  
  6908. For b = 0 to UBound(BOT)
  6909. ' play the rolling sound for each ball
  6910. If BallVel(BOT(b) ) > 1 AND BOT(b).z < 30 Then
  6911. rolling(b) = True
  6912. PlaySound("fx_ballrolling" & b), -1, Vol(BOT(b)), AudioPan(BOT(b)), 0, Pitch(BOT(b)), 1, 0, AudioFade(BOT(b))
  6913. Else
  6914. If rolling(b) = True Then
  6915. StopSound("fx_ballrolling" & b)
  6916. rolling(b) = False
  6917. End If
  6918. End If
  6919.  
  6920. ' play ball drop sounds
  6921. If BOT(b).VelZ < -1 and BOT(b).z < 55 and BOT(b).z > 27 Then 'height adjust for ball drop sounds
  6922. PlaySound "fx_ball_drop" & b, 0, ABS(BOT(b).velz)/17, AudioPan(BOT(b)), 0, Pitch(BOT(b)), 1, 0, AudioFade(BOT(b))
  6923. End If
  6924. Next
  6925. End Sub
  6926.  
  6927.  
  6928.  
  6929.  
  6930. '**********************
  6931. ' Ball Collision Sound
  6932. '**********************
  6933.  
  6934. Sub OnBallBallCollision(ball1, ball2, velocity)
  6935. PlaySound("fx_collide"), 0, Csng(velocity) ^2 / 2000, AudioPan(ball1), 0, Pitch(ball1), 0, 0, AudioFade(ball1)
  6936. End Sub
  6937.  
  6938.  
  6939. '*****************************************
  6940. ' ninuzzu's FLIPPER SHADOWS
  6941. '*****************************************
  6942.  
  6943. sub FlipperTimer_Timer()
  6944. FlipperLSh.RotZ = LeftFlipper.currentangle
  6945. FlipperRSh.RotZ = RightFlipper.currentangle
  6946.  
  6947. End Sub
  6948.  
  6949. '*****************************************
  6950. ' ninuzzu's BALL SHADOW
  6951. '*****************************************
  6952.  
  6953. Dim BallShadow
  6954. BallShadow = Array (BallShadow1,BallShadow2,BallShadow3,BallShadow4,BallShadow5)
  6955.  
  6956. Sub BallShadowUpdate_timer()
  6957. Dim BOT, b
  6958. BOT = GetBalls
  6959. ' hide shadow of deleted balls
  6960. If UBound(BOT)<(tnob-1) Then
  6961. For b = (UBound(BOT) + 1) to (tnob-1)
  6962. BallShadow(b).visible = 0
  6963. Next
  6964. End If
  6965. ' exit the Sub if no balls on the table
  6966. If UBound(BOT) = -1 Then Exit Sub
  6967. ' render the shadow for each ball
  6968. For b = 0 to UBound(BOT)
  6969. If BOT(b).X < Table1.Width/2 Then
  6970. BallShadow(b).X = ((BOT(b).X) - (Ballsize/6) + ((BOT(b).X - (Table1.Width/2))/7)) + 6
  6971. Else
  6972. BallShadow(b).X = ((BOT(b).X) + (Ballsize/6) + ((BOT(b).X - (Table1.Width/2))/7)) - 6
  6973. End If
  6974. ballShadow(b).Y = BOT(b).Y + 12
  6975. If BOT(b).Z > 20 Then
  6976. BallShadow(b).visible = 1
  6977. Else
  6978. BallShadow(b).visible = 0
  6979. End If
  6980. Next
  6981. End Sub
  6982.  
  6983.  
  6984. '************************************
  6985. ' What you need to add to your table
  6986. '************************************
  6987.  
  6988. ' a timer called RollingTimer. With a fast interval, like 10
  6989. ' one collision sound, in this script is called fx_collide
  6990. ' as many sound files as max number of balls, with names ending with 0, 1, 2, 3, etc
  6991. ' for ex. as used in this script: fx_ballrolling0, fx_ballrolling1, fx_ballrolling2, fx_ballrolling3, etc
  6992.  
  6993.  
  6994. '******************************************
  6995. ' Explanation of the rolling sound routine
  6996. '******************************************
  6997.  
  6998. ' sounds are played based on the ball speed and position
  6999.  
  7000. ' the routine checks first for deleted balls and stops the rolling sound.
  7001.  
  7002. ' The For loop goes through all the balls on the table and checks for the ball speed and
  7003. ' if the ball is on the table (height lower than 30) then then it plays the sound
  7004. ' otherwise the sound is stopped, like when the ball has stopped or is on a ramp or flying.
  7005.  
  7006. ' The sound is played using the VOL, AUDIOPAN, AUDIOFADE and PITCH functions, so the volume and pitch of the sound
  7007. ' will change according to the ball speed, and the AUDIOPAN & AUDIOFADE functions will change the stereo position
  7008. ' according to the position of the ball on the table.
  7009.  
  7010.  
  7011. '**************************************
  7012. ' Explanation of the collision routine
  7013. '**************************************
  7014.  
  7015. ' The collision is built in VP.
  7016. ' You only need to add a Sub OnBallBallCollision(ball1, ball2, velocity) and when two balls collide they
  7017. ' will call this routine. What you add in the sub is up to you. As an example is a simple Playsound with volume and paning
  7018. ' depending of the speed of the collision.
  7019.  
  7020.  
  7021. Sub Pins_Hit (idx)
  7022. PlaySound "pinhit_low", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 0, 0, AudioFade(ActiveBall)
  7023. End Sub
  7024.  
  7025. Sub Targets_Hit (idx)
  7026. PlaySound "target", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 0, 0, AudioFade(ActiveBall)
  7027. End Sub
  7028.  
  7029. Sub Metals_Thin_Hit (idx)
  7030. PlaySound "metalhit_thin", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
  7031. End Sub
  7032.  
  7033. Sub Metals_Medium_Hit (idx)
  7034. PlaySound "metalhit_medium", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
  7035. End Sub
  7036.  
  7037. Sub Metals2_Hit (idx)
  7038. PlaySound "metalhit2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
  7039. End Sub
  7040.  
  7041. Sub Gates_Hit (idx)
  7042. PlaySound "gate4", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
  7043. End Sub
  7044.  
  7045. Sub Spinner_Spin
  7046. PlaySound "fx_spinner", 0, .25, AudioPan(Spinner), 0.25, 0, 0, 1, AudioFade(Spinner)
  7047. End Sub
  7048.  
  7049. Sub Rubbers_Hit(idx)
  7050. dim finalspeed
  7051. finalspeed=SQR(activeball.velx * activeball.velx + activeball.vely * activeball.vely)
  7052. If finalspeed > 20 then
  7053. PlaySound "fx_rubber2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
  7054. End if
  7055. If finalspeed >= 6 AND finalspeed <= 20 then
  7056. RandomSoundRubber()
  7057. End If
  7058. End Sub
  7059.  
  7060. Sub Posts_Hit(idx)
  7061. dim finalspeed
  7062. finalspeed=SQR(activeball.velx * activeball.velx + activeball.vely * activeball.vely)
  7063. If finalspeed > 16 then
  7064. PlaySound "fx_rubber2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
  7065. End if
  7066. If finalspeed >= 6 AND finalspeed <= 16 then
  7067. RandomSoundRubber()
  7068. End If
  7069. End Sub
  7070.  
  7071. Sub RandomSoundRubber()
  7072. Select Case Int(Rnd*3)+1
  7073. Case 1 : PlaySound "rubber_hit_1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
  7074. Case 2 : PlaySound "rubber_hit_2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
  7075. Case 3 : PlaySound "rubber_hit_3", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
  7076. End Select
  7077. End Sub
  7078.  
  7079. Sub LeftFlipper_Collide(parm)
  7080. RandomSoundFlipper()
  7081. End Sub
  7082.  
  7083. Sub RightFlipper_Collide(parm)
  7084. RandomSoundFlipper()
  7085. End Sub
  7086.  
  7087. Sub RandomSoundFlipper()
  7088. Select Case Int(Rnd*3)+1
  7089. Case 1 : PlaySound "flip_hit_1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
  7090. Case 2 : PlaySound "flip_hit_2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
  7091. Case 3 : PlaySound "flip_hit_3", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
  7092. End Select
  7093. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement