Exemplo n.º 1
0
        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
        }
Exemplo n.º 2
0
        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();
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }