示例#1
0
        public void TestLoadProperty()
        {
            Frigate testFrigate = new Frigate("TestFrigate.entity");

            testFrigate.LoadEntityValue("statCountType", "LightFrigate");
            Assert.IsTrue(testFrigate.StatCountType == "LightFrigate");
        }
示例#2
0
        public IStarship CreateShip(StarshipType type, string name, StarSystem location)
        {
            switch (type)
            {
            case StarshipType.Frigate:
                Frigate frigate = new Frigate(name, location);
                return(frigate);

            case StarshipType.Cruiser:
                Cruiser crusier = new Cruiser(name, location);
                return(crusier);

            case StarshipType.Dreadnought:
                Dreadnought dreadnought = new Dreadnought(name, location);
                return(dreadnought);

            default:
                throw new NotSupportedException("Starship type not supported.");
            }
        }
示例#3
0
        private static IUnit CreateUnit(UnitType type, int x, int y)
        {
            IUnit unit;

            switch (type)
            {
            case UnitType.Settlers: unit = new Settlers(); break;

            case UnitType.Militia: unit = new Militia(); break;

            case UnitType.Phalanx: unit = new Phalanx(); break;

            case UnitType.Legion: unit = new Legion(); break;

            case UnitType.Musketeers: unit = new Musketeers(); break;

            case UnitType.Riflemen: unit = new Riflemen(); break;

            case UnitType.Cavalry: unit = new Cavalry(); break;

            case UnitType.Knights: unit = new Knights(); break;

            case UnitType.Catapult: unit = new Catapult(); break;

            case UnitType.Cannon: unit = new Cannon(); break;

            case UnitType.Chariot: unit = new Chariot(); break;

            case UnitType.Armor: unit = new Armor(); break;

            case UnitType.MechInf: unit = new MechInf(); break;

            case UnitType.Artillery: unit = new Artillery(); break;

            case UnitType.Fighter: unit = new Fighter(); break;

            case UnitType.Bomber: unit = new Bomber(); break;

            case UnitType.Trireme: unit = new Trireme(); break;

            case UnitType.Sail: unit = new Sail(); break;

            case UnitType.Frigate: unit = new Frigate(); break;

            case UnitType.Ironclad: unit = new Ironclad(); break;

            case UnitType.Cruiser: unit = new Cruiser(); break;

            case UnitType.Battleship: unit = new Battleship(); break;

            case UnitType.Submarine: unit = new Submarine(); break;

            case UnitType.Carrier: unit = new Carrier(); break;

            case UnitType.Transport: unit = new Transport(); break;

            case UnitType.Nuclear: unit = new Nuclear(); break;

            case UnitType.Diplomat: unit = new Diplomat(); break;

            case UnitType.Caravan: unit = new Caravan(); break;

            default: return(null);
            }
            unit.X         = x;
            unit.Y         = y;
            unit.MovesLeft = unit.Move;
            return(unit);
        }
示例#4
0
 public Ship GetShip()
 {
     var ship = new Frigate();
     ship.Crew = GetCrew();
     return ship;
 }
        public static void EzraCampaign1Mission3()
        {
            var players = new List <Player>
            {
                new Player(PlayerActionFactory.CreateSingleActionList(new PlayerActionType?[]
                {
                    PlayerActionType.MoveBlue, null, PlayerActionType.BasicSpecialization,
                    PlayerActionType.Alpha, PlayerActionType.Alpha, PlayerActionType.MoveRed, null,
                    PlayerActionType.ChangeDeck, null, null, null, PlayerActionType.Charlie
                }), 0, PlayerColor.Blue, PlayerSpecialization.EnergyTechnician),
                new Player(PlayerActionFactory.CreateSingleActionList(new PlayerActionType?[]
                {
                    null, PlayerActionType.MoveBlue, PlayerActionType.ChangeDeck,
                    PlayerActionType.Alpha, PlayerActionType.Alpha, PlayerActionType.MoveRed, PlayerActionType.MoveRed,
                    PlayerActionType.Alpha, PlayerActionType.MoveBlue, null, null, PlayerActionType.Charlie
                }), 1, PlayerColor.Green, PlayerSpecialization.PulseGunner),
                new Player(PlayerActionFactory.CreateSingleActionList(new PlayerActionType?[]
                {
                    null, null, PlayerActionType.AdvancedSpecialization,
                    PlayerActionType.MoveRed, PlayerActionType.BasicSpecialization, null, PlayerActionType.Alpha,
                    PlayerActionType.Alpha, PlayerActionType.MoveBlue, PlayerActionType.ChangeDeck, null, PlayerActionType.Charlie
                }), 2, PlayerColor.Purple, PlayerSpecialization.Mechanic),
                new Player(PlayerActionFactory.CreateSingleActionList(new PlayerActionType?[]
                {
                    PlayerActionType.Charlie, null, PlayerActionType.Alpha,
                    PlayerActionType.BasicSpecialization, PlayerActionType.Alpha, PlayerActionType.Alpha, PlayerActionType.Alpha,
                    PlayerActionType.Charlie, PlayerActionType.ChangeDeck, null, null, PlayerActionType.AdvancedSpecialization
                }), 3, PlayerColor.Red, PlayerSpecialization.DataAnalyst)
            };

            var externalTracksByZone = new Dictionary <ZoneLocation, TrackConfiguration>
            {
                { ZoneLocation.Blue, TrackConfiguration.Track6 },
                { ZoneLocation.Red, TrackConfiguration.Track2 },
                { ZoneLocation.White, TrackConfiguration.Track5 },
            };
            const TrackConfiguration internalTrack = TrackConfiguration.Track3;

            var spacecraftCarrier = new SpacecraftCarrier();

            spacecraftCarrier.SetInitialPlacement(4, ZoneLocation.Blue);
            var manOfWar = new ManOfWar();

            manOfWar.SetInitialPlacement(5, ZoneLocation.White);
            var frigate = new Frigate();

            frigate.SetInitialPlacement(7, ZoneLocation.Red);
            var externalThreats = new ExternalThreat[] { spacecraftCarrier, manOfWar, frigate };

            var centralLaserJam = new CentralLaserJam();

            centralLaserJam.SetInitialPlacement(3);
            var internalThreats = new InternalThreat[] { centralLaserJam };

            var bonusThreats = new Threat[0];

            var game = new Game(players, internalThreats, externalThreats, bonusThreats, externalTracksByZone, internalTrack, null);

            game.StartGame();
            for (var currentTurn = 0; currentTurn < game.NumberOfTurns + 1; currentTurn++)
            {
                game.PerformTurn();
            }
            Assert.AreEqual(GameStatus.Won, game.GameStatus);
            Assert.AreEqual(0, game.SittingDuck.BlueZone.TotalDamage);
            Assert.AreEqual(0, game.SittingDuck.RedZone.TotalDamage);
            Assert.AreEqual(0, game.SittingDuck.WhiteZone.TotalDamage);
            Assert.AreEqual(4, game.ThreatController.DefeatedThreats.Count());
            Assert.AreEqual(0, game.ThreatController.SurvivedThreats.Count());
            Assert.AreEqual(28 + 1 + 9, game.TotalPoints);
            Assert.AreEqual(0, players.Count(player => player.IsKnockedOut));
            Assert.AreEqual(0, game.SittingDuck.Zones.ElementAt(0).CurrentDamageTokens.Count);
            Assert.AreEqual(0, game.SittingDuck.Zones.ElementAt(1).CurrentDamageTokens.Count);
            Assert.AreEqual(0, game.SittingDuck.Zones.ElementAt(2).CurrentDamageTokens.Count);
        }