Animatroller.SceneRunner.HalloweenScene1.Start C# (CSharp) Метод

Start() публичный Метод

public Start ( ) : void
Результат void
        public override void Start()
        {
            hours.AddRange("6:00 pm", "10:00 pm");

            var testSequence = new Controller.Sequence("Test Sequence");
            testSequence
                .WhenExecuted
                .Execute(instance =>
                {
                    candyPulse.Start();
                    audioPlayer.PlayEffect("Laugh");
                    georgeMotor.SetVector(1.0, 160, S(5));
                    georgeStrobeLight.SetStrobe(0.55, 1.0);
                    georgeLight.SetStrobe(0.78, Color.Brown);

                    georgeMotor.WaitForVectorReached();
                    instance.WaitFor(S(2));
                    georgeStrobeLight.TurnOff();
                    georgeLight.TurnOff();

                    georgeMotor.SetVector(0.9, 0, S(6));
                    georgeMotor.WaitForVectorReached();
                    candyPulse.Stop();
                });

            var testSequence2 = new Controller.Sequence("Test Sequence 2");
            testSequence2.WhenExecuted
            .Execute(instance =>
            {
                audioPlayer.PlayEffect("348 Spider Hiss");
                spiderLight.SetStrobe(0.78, Color.Red);

                spiderLift.SetPower(true);

                instance.WaitFor(S(3));

                // Spider up
                audioPlayer.PlayEffect("Scream");
                spiderLift.SetPower(false);

                instance.WaitFor(S(2));
                spiderLight.TurnOff();
            });

            var testSequence3 = new Controller.Sequence("Test Sequence 3");
            testSequence3.WhenExecuted
                .Execute(instance =>
                {
                    spiderEyes.SetPower(true);
                    instance.WaitFor(S(10));
                    spiderEyes.SetPower(false);
                });

            var mainSequence = new Controller.Sequence("Main Sequence");
            mainSequence.WhenExecuted
                .Execute(instance =>
                {
                    pulsatingEffect1.Stop();
                    pulsatingEffect2.Stop();
                    flickerEffect.Stop();
                    blinkyEyesLight.SetPower(false);
                    candyLight.SetColor(Color.Red);

                    audioPlayer.PauseBackground();
                    audioPlayer.PlayEffect("Door-creak");
                    instance.WaitFor(S(2));

                    instance.WaitFor(S(2));
                    candyPulse.Stop();
                    candyLight.SetStrobe(1, Color.White);
                    instance.WaitFor(S(0.5));
                    candyLight.TurnOff();
                    instance.WaitFor(S(1));

                    audioPlayer.PlayEffect("348 Spider Hiss");
                    instance.WaitFor(S(0.5));
                    spiderLight.SetStrobe(0.78, Color.Red);

                    spiderLift.SetPower(true);
                    spiderEyes.SetPower(true);

                    instance.WaitFor(S(1));
                    audioPlayer.PlayEffect("348 Spider Hiss");
                    instance.WaitFor(S(2));

                    // Spider up
                    audioPlayer.PlayEffect("Scream");
                    spiderLift.SetPower(false);
                    spiderEyes.SetPower(false);
                    smokeMachine.SetPower(true);

                    instance.WaitFor(S(2));
                    spiderLight.TurnOff();
                    audioPlayer.PlayEffect("Violin screech");
                    instance.WaitFor(S(2));

                    // Skeleton to the right
                    //                    audioPlayer.PlayEffect("Ghostly");
                    rgbLightRight.SetStrobe(0.78, Color.Violet);
                    instance.WaitFor(MS(1000));
                    rgbLightRight.SetColor(Color.Red);
                    instance.WaitFor(MS(1000));
                    rgbLightRight.SetColor(Color.Blue);
                    instance.WaitFor(S(2));
                    rgbLightRight.TurnOff();
                    instance.WaitFor(S(1));

                    // Skeleton to the left
                    audioPlayer.PlayEffect("death-scream");
                    instance.WaitFor(S(0.5));
                    leftSkeletonLight.SetStrobe(0.78, Color.Pink);
                    instance.WaitFor(S(3));
                    smokeMachine.SetPower(false);
                    instance.WaitFor(S(1));
                    leftSkeletonLight.TurnOff();

                    // George
                    audioPlayer.PlayEffect("Laugh");
                    instance.WaitFor(MS(800));
                    georgeMotor.SetVector(1.0, 160, S(5));
                    georgeStrobeLight.SetStrobe(0.55, 1.0);
                    georgeLight.SetStrobe(0.78, Color.Brown);

                    georgeMotor.WaitForVectorReached();
                    instance.WaitFor(S(2));
                    georgeStrobeLight.TurnOff();
                    georgeLight.TurnOff();

                    candyPulse.MinBrightness = 0.05;
                    candyPulse.MaxBrightness = 1.0;
                    candyLight.SetColor(Color.Violet);
                    candyPulse.Start();
                    georgeMotor.SetVector(0.9, 0, S(6));
                    georgeMotor.WaitForVectorReached();

                    blinkyEyesLight.SetPower(true);

                    flickerEffect.Start();
                    pulsatingEffect1.Start();

                    instance.WaitFor(S(5));
                    smokeMachine.SetPower(true);

                    audioPlayer.PlayBackground();
                    // Wait for reset
                    instance.WaitFor(S(15));
                    pulsatingEffect2.Start();
                    candyPulse.MinBrightness = 0.01;
                    candyPulse.MaxBrightness = 0.1;
                    candyLight.SetColor(Color.Green);
                    smokeMachine.SetPower(false);
                });

            pressureMat.ActiveChanged += (sender, e) =>
            {
                if (e.NewState)
                {
                    if (hours.IsOpen)
                        Executor.Current.Execute(mainSequence);
                    else
                        audioPlayer.PlayEffect("Laugh");
                }
            };

            testButton.ActiveChanged += (sender, e) =>
                {
                    if (e.NewState)
                        Executor.Current.Execute(mainSequence);
                };

            hours.OpenHoursChanged += (sender, e) =>
                {
                    if (e.IsOpenNow)
                    {
                        pulsatingEffect1.Start();
                        pulsatingEffect2.Start();
                        flickerEffect.Start();
                        candyPulse.Start();
                        blinkyEyesLight.SetPower(true);
                        audioPlayer.PlayBackground();
                    }
                    else
                    {
                        pulsatingEffect1.Stop();
                        pulsatingEffect2.Stop();
                        flickerEffect.Stop();
                        candyPulse.Stop();
                        blinkyEyesLight.SetPower(false);
                        audioPlayer.PauseBackground();
                    }
                };

            // Have it turned off, but prepare it with blue color for the effect
            rgbLightRight.SetColor(Color.Blue, 0);
            candyLight.SetColor(Color.Green, 0);
            pulsatingEffect1.AddDevice(rgbLightRight);
            pulsatingEffect2.AddDevice(cobWebLight);
            candyPulse.AddDevice(candyLight);

            flickerEffect.AddDevice(skullsLight);
        }