private void RampEntryHit() { if (CheckDiverter()) { _game.Coils["diverter"].Enable(); } else { _game.Coils["diverter"].Disable(); } //if (deadByDawnIsStarted) //_game._sound.PlaySound("DownBuild"); if (_game.BaseMode.MultiBallActive) { if (_game.Switches["leftRamp"].TimeSinceChange() > 2.3) { cancel_delayed("clearLayers"); _game._sound.PlaySound("DownBuild"); _Text1.SetText(""); _Text2.SetText("Bridge Ramp"); _Text2.set_target_position(_game.Width / 2, 250); var group = ChangeBackGround(CarPortal); layer = group; CarPortal.reset(); delay("clearDMD", EventType.None, 3, ClearDmdHandler); } else { if (_game.TroughMode.num_balls_in_play == 1) { _game._sound.PlaySound("ASH_Incoming"); } } } //self.game.game_data['Audits']['Bridge Ramp Entry'] += 1 }
private void PlayMultiBallScenes() { _videosRunning = true; var skipInfo = new SdlTextLayer(_game.Width, _game.Height, "med", FontJustify.Left, FontJustify.Bottom, "redYellow"); skipInfo.SetText("hold flipper to skip", blink_frames: 2); _game.DisableAllLamps(); _game.LampCtrl.stop_show(); VideoLayer anim = new VideoLayer(); ScriptedLayer textLockScript; if (_lockedBalls != 0) { _game.LampCtrl.play_show("cellarLock1"); _game.CellarHatch(false); var strtext = string.Format("Cellar Multiball | Ball {0} Locked", _lockedBalls); textLockScript = _game.DisplayHelper.GenerateScriptedMultiTextLayer( strtext, _game.Width, _game.Height, 2.0, "ed_targets", "redYellow"); textLockScript.set_target_position(36, 100); var time = 0.0; switch (_lockedBalls) { case 1: anim = AssetService.Videos["Cellar1-SonOfABitch"]; _game._sound.PlaySound("Cellar1-SonOfABitch"); time = 7.5; break; case 2: anim = AssetService.Videos["Cellar2-LetMeOut"]; _game._sound.PlaySound("Cellar2-LetMeOut"); time = 3.5; break; case 3: anim = AssetService.Videos["Cellar3-Henrietta"]; _game.LampCtrl.play_show("CellarMultiball"); _game._sound.PlaySound("Cellar3-Henrietta"); time = 9.0; break; default: break; } delay("cellarAnims", NetProcgame.NetPinproc.EventType.None, time, CheckCellarDelay); var grouped = new GroupedLayer(_game.Width, _game.Height, new List <Layer>() { anim, textLockScript }); layer = grouped; anim.reset(); } }
public bool sw_cellarRamp_active(Switch sw) { //self.game.game_data['Audits']['Cellar Ramps'] += 1 //self.game.user_profiles['HouseRamp']['Ramps Made'] += 1 // if self.game.trophyMode.checkTrophyComplete('Cabin fever'): //if self.game.user_profiles['HouseRamp']['Ramps Made'] >= 100: // self.game.trophyMode.layer = self.game.trophyMode.buildLayerScript('Cabin fever') // self.game.trophyMode.updateTrophy('Cabin fever') // if self.game.wizardMode.is_started(): //return if (_lockedBalls == 0) { if (_game.GetCurrentPlayer().CellarMultiBallReady) { if (_count < 6) { _count++; } _game.score(450000); _game.Coils["flasherHouse"].Schedule(0x000000CC, 4, false); if (Enumerable.Range(1, 6).Contains(_count)) { var group = GetCellarLayers(); var script = new List <Pair <double, Layer> >(); script.Add(new Pair <double, Layer>(1.0, group[0])); script.Add(new Pair <double, Layer>(1.0, group[1])); var scriptLayer = new ScriptedLayer(_game.Width, _game.Height, script); _game._sound.PlaySound("soundsCellar"); var grouped = new GroupedLayer(_game.Width, _game.Height, new List <Layer>() { CellarRampVid, scriptLayer }); CellarRampVid.reset(); layer = grouped; delay("stop", NetProcgame.NetPinproc.EventType.None, 2, ClearDmdHandler); } else if (_count == 6) { OpenFirstLock(); } // if not self.game.modeEnd.is_started() and not self.game.getPlayerState('mode_active') and not self.game.base_game_mode.any_mb_active2(): //self.game.lampctrl.play_show('BridgeRamp', False, self.game.update_lamps) } } return(SWITCH_CONTINUE); }
private void SawTargetCheck(int targetNum) { //if self.game.wizardMode.is_started(): //return _game._sound.PlaySound("TargetHit"); _sawReady = _game.GetCurrentPlayer().SawReady; var targets = _game.GetCurrentPlayer().TargetBankLeft; if (!_sawReady) { switch (targetNum) { case 0: if (!targets[targetNum]) { cancel_delayed("clearDMD"); targets[targetNum] = true; layer = GenerateShedLayer("S"); update_lamps(); } break; case 1: if (targets[0] && targets[2]) { cancel_delayed("clearDMD"); targets[targetNum] = true; _sawReady = true; _game.GetCurrentPlayer().SawReady = true; _game._sound.PlaySound("sawComplete"); var text = _game.DisplayHelper.GenerateMultiTextLayer("saw|targets completed", "ed_common", "redYellow"); var group = new GroupedLayer(_game.Width, _game.Height, new System.Collections.Generic.List <Layer>() { zoomSaw, text }); layer = group; zoomSaw.reset(); CheckMultiballReady(); update_lamps(); } break; case 2: if (!targets[targetNum]) { cancel_delayed("clearDMD"); targets[targetNum] = true; layer = GenerateShedLayer("W"); update_lamps(); } break; default: break; } } else { cancel_delayed("clearDMD"); layer = _game.DisplayHelper.GenerateMultiTextLayer( "Saw Completed|Completing gun and saw|unlocks shed", "ed_common", "redYellow", bgLayer: zoomSaw); zoomSaw.reset(); } delay("clearDMD", NetProcgame.NetPinproc.EventType.None, 3, ClearDmdHandler); }