Пример #1
0
        public void HandlesBuildingTypeWithProtossBuilding(ProtossBuildingType building)
        {
            var buildingOrUnitType = new BuildingOrUnitType(building);
            var buildingType       = new BuildingType(building);

            Assert.IsTrue(buildingOrUnitType == buildingType);
        }
Пример #2
0
        public void HandlesBuildingOrUnitTypeWithZergUnit(ZergUnitType unit)
        {
            var buildingOrUnitType      = new BuildingOrUnitType(unit);
            var otherBuildingOrUnitType = new BuildingOrUnitType(unit);

            Assert.IsTrue(buildingOrUnitType == otherBuildingOrUnitType);
        }
Пример #3
0
        public void HandlesBuildingOrUnitTypeWithZergBuilding(ZergBuildingType building)
        {
            var buildingOrUnitType      = new BuildingOrUnitType(building);
            var otherBuildingOrUnitType = new BuildingOrUnitType(building);

            Assert.IsTrue(buildingOrUnitType == otherBuildingOrUnitType);
        }
Пример #4
0
        public void HandlesUnitTypeWithProtossUnit(ProtossUnitType unit)
        {
            var buildingOrUnitType = new BuildingOrUnitType(unit);
            var unitType           = new UnitType(unit);

            Assert.IsTrue(buildingOrUnitType == unitType);
        }
Пример #5
0
        private BuildingOrUnitType UnitOrPrerequisite(BuildingOrUnitType buildingOrUnit, GameState gameState)
        {
            var cost = gameState.Translator.GetCost(buildingOrUnit);

            if (!cost.HasPrerequisite(gameState))
            {
                return(UnitOrPrerequisite(cost.Prerequisite, gameState));
            }

            return(buildingOrUnit);
        }
Пример #6
0
        public static ProxyStarcraft.Unit GetBuilder(BuildingOrUnitType buildingOrUnit, GameState gameState, SynchronousApiClient client)
        {
            // TODO: Exclude units/structures already building things
            var buildAction = gameState.Translator.GetBuildAction(buildingOrUnit);

            foreach (var unit in gameState.Units)
            {
                var abilities = client.GetAbilities(unit.Tag);

                if (abilities.Contains(buildAction))
                {
                    return(unit);
                }
            }

            return(null);
        }
        public Command Produce(BuildingOrUnitType buildingOrUnit, GameState gameState)
        {
            var cost    = gameState.Translator.GetCost(buildingOrUnit);
            var builder = cost.GetBuilder(gameState);

            gameState.Observation.PlayerCommon.Minerals -= cost.Minerals;
            gameState.Observation.PlayerCommon.Vespene  -= cost.Vespene;
            gameState.Observation.PlayerCommon.FoodUsed += (uint)Math.Ceiling(cost.Supply);

            if (buildingOrUnit.IsBuildingType)
            {
                var buildingType = (BuildingType)buildingOrUnit;
                var location     = this.GetPlacement(buildingType, gameState);
                return(builder.Build(buildingType, location));
            }
            else
            {
                return(builder.Train((UnitType)buildingOrUnit));
            }
        }
Пример #8
0
        public void HandlesZergBuildingType(ZergBuildingType building)
        {
            var buildingType = new BuildingOrUnitType(building);

            Assert.IsTrue(buildingType == building);
        }
Пример #9
0
 public void Add(BuildingOrUnitType target)
 {
     buildOrder.Push(target);
 }
Пример #10
0
 public void Push(BuildingOrUnitType target)
 {
     buildOrder.Enqueue(target);
 }
Пример #11
0
        public void HandlesZergUnitType(ZergUnitType unit)
        {
            var buildingOrUnitType = new BuildingOrUnitType(unit);

            Assert.IsTrue(buildingOrUnitType == unit);
        }
Пример #12
0
        public void HandlesTerranBuildingType(TerranBuildingType building)
        {
            var buildingOrUnitType = new BuildingOrUnitType(building);

            Assert.IsTrue(buildingOrUnitType == building);
        }