Beispiel #1
0
        public void CantConstructInWrongBuilding()
        {
            var core = new GameLogic.Core();
            var room = core.Ship.GetRoom(0);

            core.Bank.Change(ResourceType.Metal, 1000);

            new BuildingConstruct(
                room,
                core.Factory.ProduceBuilding(BuildingType.PowerPlant)
                )
            .Execute(core);

            room.Building.Constructible.Complete();

            Assert.IsFalse(
                new ModuleConstruct(
                    room.Building,
                    core.Factory.ProduceModule(ModuleType.Furnace),
                    2
                    )
                .Execute(core)
                .IsValid
                );

            Assert.AreEqual(null, room.Building.GetModule(2));
        }
Beispiel #2
0
        public void ModulesLimits()
        {
            var core           = new GameLogic.Core();
            var roomRoboport   = core.Ship.GetRoom(0);
            var roomPowerPlant = core.Ship.GetRoom(1);

            core.Bank.Change(ResourceType.Metal, 1000);


            Assert.IsTrue(
                new BuildingConstruct(
                    roomRoboport,
                    core.Factory.ProduceBuilding(BuildingType.Roboport)
                    )
                .Execute(core)
                .IsValid
                );

            Assert.IsTrue(
                new BuildingConstruct(
                    roomPowerPlant,
                    core.Factory.ProduceBuilding(BuildingType.PowerPlant)
                    )
                .Execute(core)
                .IsValid
                );

            roomRoboport.Building.Constructible.Complete();
            roomPowerPlant.Building.Constructible.Complete();

            Assert.IsFalse(
                new ModuleConstruct(
                    roomRoboport.Building,
                    core.Factory.ProduceModule(ModuleType.Miner),
                    3
                    )
                .Execute(core)
                .IsValid
                );

            Assert.IsTrue(
                new ModuleConstruct(
                    roomPowerPlant.Building,
                    core.Factory.ProduceModule(ModuleType.Generator),
                    3
                    )
                .Execute(core)
                .IsValid
                );
        }
Beispiel #3
0
        public void CantBuiltCostly()
        {
            var core = new GameLogic.Core();
            var room = core.Ship.GetRoom(0);

            core.Bank.Change(ResourceType.Metal, 3);

            Assert.IsFalse(
                new BuildingConstruct(
                    room,
                    core.Factory.ProduceBuilding(BuildingType.Smeltery)
                    )
                .Execute(core)
                .IsValid
                );
        }
Beispiel #4
0
        public void Constructible()
        {
            const int smelteryTime = 10;
            const int furnaceTime  = 6;

            var core = new GameLogic.Core();
            var room = core.Ship.GetRoom(0);

            core.Bank.Change(ResourceType.Metal, 1000);

            // Smeltery

            new BuildingConstruct(
                room,
                core.Factory.ProduceBuilding(BuildingType.Smeltery)
                )
            .Execute(core);

            Assert.IsFalse(room.Building.Constructible.IsReady);

            new NextTurnCount(smelteryTime - 1).Execute(core);

            Assert.IsFalse(room.Building.Constructible.IsReady);

            new NextTurn().Execute(core);

            Assert.IsTrue(room.Building.Constructible.IsReady);

            // Furnace
            new ModuleConstruct(
                room.Building,
                core.Factory.ProduceModule(ModuleType.Furnace),
                2
                ).Execute(core);

            var module = room.Building.GetModule(2);

            Assert.IsFalse(module.Constructible.IsReady);

            new NextTurnCount(furnaceTime - 1).Execute(core);

            Assert.IsFalse(module.Constructible.IsReady);

            new NextTurn().Execute(core);

            Assert.IsTrue(module.Constructible.IsReady);
        }
Beispiel #5
0
        public void CantConstructInUncompleteBuilding()
        {
            var core = new GameLogic.Core();
            var room = core.Ship.GetRoom(0);

            new BuildingConstruct(
                room,
                core.Factory.ProduceBuilding(BuildingType.PowerPlant)
                )
            .Execute(core);

            Assert.IsFalse(
                new ModuleConstruct(
                    room.Building,
                    core.Factory.ProduceModule(ModuleType.Generator),
                    2
                    )
                .Execute(core)
                .IsValid
                );
        }