public Layer GenerateShedLockLayer(string letter)
        {
            var shedStatus =
                _game.BaseMode.SetStatus(letter, "Spotted", 3, "ed_targets", composite: false);
            //trans = procgame.dmd.TransitionLayer(None, self.HDTextLayer1, transitionType = procgame.dmd.Transition.TYPE_FADE)

            var script     = new List <Pair <double, Layer> >();
            var layerEmpty = new Layer();

            script.Add(new Pair <double, Layer>(1.0, layerEmpty));
            script.Add(new Pair <double, Layer>(2, shedStatus));
            var sl = new ScriptedLayer(_game.Width, _game.Height, script);

            sl.opaque = true;

            var layers = new List <Layer>()
            {
                ChainsawWipe, sl
            };
            var group = new GroupedLayer(_game.Width, _game.Height, layers);

            delay("clearDMD", NetProcgame.NetPinproc.EventType.None, 4,
                  new NetProcgame.Game.AnonDelayedHandler(() => {
                layer = null;
                ChainsawWipe.reset();
            }));

            layer = group;

            return(group);
        }
Exemple #2
0
        private void BallSaved()
        {
            //     self.game.log("BaseGameMode: BALL SAVED from Trough callback")
            //     if self.game.wizardMode.is_started() or self.game.deadByDawn.is_started() or self.game.getPlayerState('mode_active'):
            //self.game.coils.plunger.pulse(50)

            if (!MultiBallActive)
            {
                var txtScriptLayer =
                    _game.DisplayHelper.GenerateScriptedMultiTextLayer("WE|LIVE|STILL", _game.Width, _game.Height, 0.7, "EDLarge", "redYellow");

                var group = new GroupedLayer(_game.Width, _game.Height, new List <Layer>()
                {
                    AssetService.Videos["WeLiveStill"],
                    txtScriptLayer
                });

                layer = group;

                _game._sound.PlaySound("WeLiveStill");

                delay("clearLayer", NetProcgame.NetPinproc.EventType.None, 2.5, new AnonDelayedHandler(ClearLayer));

                _game.Coils["plunger"].Pulse(50);
                AssetService.Videos["WeLiveStill"].reset();
            }
        }
Exemple #3
0
        private void LaneCheck()
        {
            cancel_delayed("clearDMD");

            if (_lanesEnabledCount >= 3)
            {
                _game.DisableAllLamps();
                _game._sound.PlaySound("AshBonus");
                //self.game.user_profiles['Multipliers']['Complete'] += 1
                if (_bonusX < 5)
                {
                    _bonusX++;
                    var bonusStr  = (_bonusX + 1) + "X";
                    var textLayer =
                        _game.BaseMode.SetStatus("A S H", bonusStr, 2, "ed_targets");
                    var layers = new List <Layer>()
                    {
                        AshBonusLayer, textLayer
                    };
                    var group = new GroupedLayer(_game.Width, _game.Height, layers);

                    layer = group;
                }
                else
                {
                }
            }
            else
            {
                _game._sound.PlaySound("ChezLaff");
                _game.DisableAllLamps();
                _game.LampCtrl.play_show("attract_show_2");
            }
        }
        public override void mode_started()
        {
            var player = _game.GetCurrentPlayer();

            _bumperHits      = player.BumpersHit;
            _bumperLevel     = player.BumpersLevel;
            _bumperHitsRound = 0;

            layer = new GroupedLayer(_game.Width, _game.Height, new List <Layer>()
            {
                MoveBlood
            });

            BloodSplat.enabled = false;
            MoveBlood.enabled  = false;
        }
Exemple #5
0
        public override void mode_started()
        {
            _lanesEnabledCount = 0;
            _bonusX            = 0;

            var anim = AssetService.Animations["light_texture"];
            //anim.hold = true;

            var text = new SdlTextLayer(0, 0, fontNamed: "default", justify: FontJustify.Center);

            var layers = new List <Layer>();

            layers.Add(anim);
            layers.Add(text);

            var group = new GroupedLayer(558, 300, layers);

            this.layer = anim;
        }
        private Layer GenerateShedLayer(string letter)
        {
            _text1.SetText(letter, 2);
            _text2.SetText("Complete Targets", 2);

            var group1 = new GroupedLayer(_game.Width, _game.Height, new System.Collections.Generic.List <Layer>()
            {
                shedPic, _text1
            });

            var group2 = new GroupedLayer(_game.Width, _game.Height, new System.Collections.Generic.List <Layer>()
            {
                shedLock, _text2
            });

            var trans = new TransitionLayer(group1, group2);

            return(trans);
        }
Exemple #7
0
        private void ModePicker()
        {
            _selectedMode = RandomModeName();

            _modeNameText = new SdlTextLayer(_game.Width / 2, 150, "ed_LeftRamp1", FontJustify.Center, FontJustify.Center,
                                             "redYelThin");
            _selectInfoText = new SdlTextLayer(_game.Width, _game.Height, "default_msg", FontJustify.Right, FontJustify.Bottom,
                                               "yelRedThin");

            _modeNameText.SetText(_selectedMode);

            if (_userSelect)
            {
                _selectInfoText.SetText(_game.GetCurrentPlayer().name + " Select mode with flippers", blink_frames: 2);
                _selectedIndex = 0;
            }
            else
            {
                _selectInfoText.SetText(" ");
            }

            var layers = new List <Layer>()
            {
                _tapeRecorder, _modeNameText, _selectInfoText
            };
            var group = new GroupedLayer(_game.Width, _game.Height, layers);

            _game._sound.PlaySound("Passage");

            layer = group;

            delay("modeStart",
                  NetProcgame.NetPinproc.EventType.None, 2.5,
                  new NetProcgame.Game.AnonDelayedHandler(StartSelectedMode));

            if (!_userSelect)
            {
                delay("choice",
                      NetProcgame.NetPinproc.EventType.None, 0.25,
                      new NetProcgame.Game.AnonDelayedHandler(StartSelectedMode));
            }
        }
        private void OpenFirstLock()
        {
            cancel_delayed("stop");

            Text1.SetText("cellar open", 2);

            var group = new GroupedLayer(_game.Width, _game.Height, new List <Layer>()
            {
                CellarOpen, Text1
            });

            layer = group;

            _game.GetCurrentPlayer().CellarMultiBallReady = true;

            delay("stop", NetProcgame.NetPinproc.EventType.None, 2, ClearDmdHandler);

            _hatchOpen = true;
            _game.Coils["cellarHatch"].Enable();
        }
        private GroupedLayer[] GetCellarLayers()
        {
            Text1.SetText("cellar ramps");
            Text2.SetText(" " + _count);
            Text3.SetText("complete to open");
            Text4.SetText("cellar locks");

            GroupedLayer[] group = new GroupedLayer[2];

            var group1 = new GroupedLayer(_game.Width, _game.Height, new List <Layer>(2)
            {
                Text1, Text2
            });

            var group2 = new GroupedLayer(_game.Width, _game.Height, new List <Layer>(2)
            {
                Text3, Text4
            });

            group[0] = group1;
            group[1] = group2;

            return(group);
        }
Exemple #10
0
        public GroupedLayer SetStatus(string text1, string text2,
                                      int seconds     = 2,
                                      string font     = "default",
                                      string style1   = "redYelThin", string style2 = "yelRedThin",
                                      int topTextX    = 558 / 2, int topTextY       = 90,
                                      int bottomTextX = 558 / 2, int bottomTextY    = 220, bool composite = true
                                      )
        {
            var topText1 = new SdlTextLayer(topTextX, topTextY, font, FontJustify.Center, FontJustify.Center, style1);
            var topText2 = new SdlTextLayer(topTextX, topTextY, font, FontJustify.Center, FontJustify.Center, style2);
            var botText1 = new SdlTextLayer(bottomTextX, bottomTextX, font, FontJustify.Center, FontJustify.Center, style1);
            var botText2 = new SdlTextLayer(bottomTextX, bottomTextX, font, FontJustify.Center, FontJustify.Center, style2);

            topText1.SetText(text1, seconds);
            topText2.SetText(text1, seconds, 2);
            botText1.SetText(text2, seconds);
            botText2.SetText(text2, seconds, 2);

            var layers = new List <Layer>()
            {
                topText1, topText2, botText1, botText2
            };

            GroupedLayer group;

            if (!composite)
            {
                group = new GroupedLayer(_game.Width, _game.Height, layers);
            }
            else
            {
                group = new GroupedLayer(_game.Width, _game.Height, layers, true);
            }

            return(group);
        }
Exemple #11
0
        private ScriptedLayer BuilSkillLayers()
        {
            var anim = AssetService.Animations["DeerWall"];

            var skillBonusText10K = new SdlTextLayer(150, 210, "ed_common", FontJustify.Center, false);

            skillBonusText10K.SetText("10,000", -1, 2);

            var skillBonusText1M = _game.DisplayHelper.GenerateMultiTextLayer("1,000,000", font: "ed_common", styleName: "redYellow");
            var skillBonus100K   = _game.DisplayHelper.GenerateMultiTextLayer("100,000", font: "ed_common", styleName: "redYellow");

            var skillBonusLeft10k = new GroupedLayer(HorseGame.DisplayConfig.DotsW, HorseGame.DisplayConfig.DotsH, new List <Layer>()
            {
                anim, skillBonusText10K
            });

            var skillBonusMid1M = new GroupedLayer(HorseGame.DisplayConfig.DotsW, HorseGame.DisplayConfig.DotsH, new List <Layer>()
            {
                anim, skillBonusText1M
            });

            var skillBonus100KR = new GroupedLayer(HorseGame.DisplayConfig.DotsW, HorseGame.DisplayConfig.DotsH, new List <Layer>()
            {
                anim, skillBonus100K
            });

            var script = new List <Pair <double, Layer> >();

            script.Add(new Pair <double, Layer>(1, skillBonusLeft10k));
            script.Add(new Pair <double, Layer>(1, skillBonusMid1M));
            script.Add(new Pair <double, Layer>(1, skillBonus100KR));

            var scriptLayer = new ScriptedLayer(HorseGame.DisplayConfig.DotsW, HorseGame.DisplayConfig.DotsH, script);

            return(scriptLayer);
        }
        public void CheckMultiballReady()
        {
            var player = _game.GetCurrentPlayer();

            if (player.GunReady && player.SawReady)
            {
                cancel_delayed("clearDmd");
                _game.GetCurrentPlayer().LockReady = true;

                var text = _game.DisplayHelper.GenerateMultiTextLayer("shed open|lock the ball", "ed_common", "redYellow");

                var group = new GroupedLayer(_game.Width, _game.Height, new System.Collections.Generic.List <Layer>()
                {
                    gunNSaw, text
                });

                layer = group;
                loadGun.reset();

                _game.Coils["rightFlash"].Pulse(125);
            }

            delay("clearDMD", NetProcgame.NetPinproc.EventType.None, 2, ClearDmdHandler);
        }
        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 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();
            }
        }
        private void GunTargetBankCheck(int targetNum)
        {
            _game._sound.PlaySound("TargetHit");
            _gunReady = _game.GetCurrentPlayer().GunReady;
            var targets = _game.GetCurrentPlayer().TargetBankRight;

            if (!_gunReady)
            {
                switch (targetNum)
                {
                case 0:
                    if (!targets[targetNum])
                    {
                        cancel_delayed("clearDMD");
                        targets[targetNum] = true;
                        layer = GenerateShedLayer("G");
                        update_lamps();
                    }
                    break;

                case 1:
                    if (targets[0] && targets[2])
                    {
                        cancel_delayed("clearDMD");
                        targets[targetNum] = true;
                        _gunReady          = true;
                        _game.GetCurrentPlayer().GunReady = true;
                        _game._sound.PlaySound("ChungChing");
                        var text  = _game.DisplayHelper.GenerateMultiTextLayer("gun|targets completed", "ed_common", "redYellow");
                        var group = new GroupedLayer(_game.Width, _game.Height, new System.Collections.Generic.List <Layer>()
                        {
                            loadGun, text
                        });

                        layer = group;
                        loadGun.reset();
                        CheckMultiballReady();
                        update_lamps();
                    }
                    break;

                case 2:
                    if (!targets[targetNum])
                    {
                        cancel_delayed("clearDMD");
                        targets[targetNum] = true;
                        layer = GenerateShedLayer("N");
                        update_lamps();
                    }
                    break;

                default:
                    break;
                }
            }
            else
            {
                cancel_delayed("clearDMD");
                loadGun.hold = true;
                layer        = _game.DisplayHelper.GenerateMultiTextLayer(
                    "Gun Completed|Completing gun and saw|unlocks shed", "ed_common", "redYellow", bgLayer: loadGun);

                loadGun.reset();
            }

            delay("clearDMD", NetProcgame.NetPinproc.EventType.None, 3, ClearDmdHandler);
        }
        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);
        }