Ejemplo n.º 1
0
        public ResistanceAnimation(Simulator simulator, Mothership mothership)
        {
            Simulator = simulator;
            Mothership = mothership;

            Battleships = new List<HumanBattleship>();

            var b = new HumanBattleship(Simulator, "HumanBattleship1", VisualPriorities.Cutscenes.IntroHumanBattleships)
            {
                Position = new Vector3(0, 2000, 0)
            };
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.Basic, 1, new Vector3(-18, -25, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.Basic, 1, new Vector3(-18, -10, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.RailGun, 2, new Vector3(20, -25, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.Missile, 4, new Vector3(20, -10, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.Basic, 2, new Vector3(0, 0, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.SlowMotion, 1, new Vector3(0, -20, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.SlowMotion, 2, new Vector3(0, 15, 0) * 4, true, false, false, false));
            Battleships.Add(b);

            b = new HumanBattleship(Simulator, "HumanBattleship2", VisualPriorities.Cutscenes.IntroHumanBattleships)
            {
                Position = new Vector3(0, 2000, 0)
            };
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.Gravitational, 5, new Vector3(-18, -15, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.RailGun, 3, new Vector3(-18, 0, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.Gravitational, 6, new Vector3(18, -15, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.RailGun, 7, new Vector3(18, 0, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.SlowMotion, 6, new Vector3(-18, 15, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.Basic, 7, new Vector3(18, 15, 0) * 4, true, false, false, false));
            Battleships.Add(b);

            b = new HumanBattleship(Simulator, "HumanBattleship3", VisualPriorities.Cutscenes.IntroHumanBattleships)
            {
                Position = new Vector3(0, 2000, 0)
            };
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.Missile, 3, new Vector3(18, -10, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.RailGun, 5, new Vector3(-18, -10, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.SlowMotion, 5, new Vector3(9, 20, 0) * 4, true, false, false, false));
            b.AddTurret(Simulator.TurretsFactory.Create(TurretType.Gravitational, 3, new Vector3(-9, 20, 0) * 4, true, false, false, false));
            Battleships.Add(b);

            foreach (var ship in Battleships)
                Simulator.AddSpaceship(ship);

            State = ResistanceState.None;

            TimeBeforeArrival = IntroCutscene.Timing["HumanBattleshipsArrival"];
            TimeBeforeFiring = IntroCutscene.Timing["HumanBattleshipsFiring"];
            TimeBeforeDestruction = IntroCutscene.Timing["HumanBattleshipsDestruction"];
        }
Ejemplo n.º 2
0
        public void Update()
        {
            TimeBeforeArrival -= Preferences.TargetElapsedTimeMs;
            TimeBeforeFiring -= Preferences.TargetElapsedTimeMs;
            TimeBeforeDestruction -= Preferences.TargetElapsedTimeMs;

            foreach (var b in Battleships)
                b.Update();

            switch (State)
            {
                case ResistanceState.None:
                    if (TimeBeforeArrival <= 0)
                    {
                        MoveBattleships();

                        State = ResistanceState.Firing;
                    }

                    break;
                case ResistanceState.Firing:
                    if (TimeBeforeFiring <= 0)
                        FireBattleships();

                    if (TimeBeforeDestruction < 0)
                    {
                        StopFireBattleships();
                        ScaredBattleships();

                        State = ResistanceState.Destruction;
                    }

                    break;
                case ResistanceState.Destruction:
                    break;
            }
        }