예제 #1
0
        public override void InitializeTasks()
        {
            base.InitializeTasks();
            TimingAttackTask.Enable();
            WorkerScoutTask.Enable();
            DefenseTask.Enable();
            BunkerDefendersTask.Enable();
            SupplyDepotTask.Enable();
            ArmyRavenTask.Enable();
            RepairTask.Enable();
            ReplenishBuildingSCVTask.Enable();
            DistributedDefenseTask.Enable();
            TransformTask.Enable();
            KillScoutsTask.Enable();
            HomeRepairTask.Enable();
            DefendClosestBaseTask.Enable();

            DistributeHellbatsTask = new DistributeOverBasesTask(UnitTypes.HELLBAT);
            DistributeHellbatsTask.Enable();

            if (CycloneDefenseSquads == null)
            {
                CycloneDefenseSquads = DefenseSquadTask.GetDefenseTasks(UnitTypes.CYCLONE);
            }
            else
            {
                foreach (DefenseSquadTask task in CycloneDefenseSquads)
                {
                    Bot.Main.TaskManager.Add(task);
                }
            }
            DefenseSquadTask.Enable(CycloneDefenseSquads, true, true);

            foreach (DefenseSquadTask task in CycloneDefenseSquads)
            {
                task.Priority      = 4;
                task.MaxDefenders  = 1;
                task.AllowClaiming = false;
            }
        }
예제 #2
0
파일: TankPush.cs 프로젝트: slemvs/TyrSc2
        public override void InitializeTasks()
        {
            base.InitializeTasks();
            SiegeTask.Enable();
            TimingAttackTask.Enable();
            WorkerScoutTask.Enable();
            DefenseTask.Enable();
            BunkerDefendersTask.Enable();
            SupplyDepotTask.Enable();
            ArmyRavenTask.Enable();
            RepairTask.Enable();
            ReplenishBuildingSCVTask.Enable();
            ClearBlockedExpandsTask.Enable();
            HomeRepairTask.Enable();
            TransformTask.Enable();
            DefendClosestBaseTask.Enable();

            if (TankDefenseTasks.Count == 0)
            {
                foreach (Base b in Tyr.Bot.BaseManager.Bases)
                {
                    if (b == Natural ||
                        b == Main)
                    {
                        continue;
                    }
                    TankDefenseTasks.Add(new DefenseSquadTask(b, UnitTypes.SIEGE_TANK)
                    {
                        MaxDefenders = 2
                    });
                    LiberatorDefenseTasks.Add(new DefenseSquadTask(b, UnitTypes.LIBERATOR)
                    {
                        MaxDefenders = 1
                    });
                    VikingDefenseTasks.Add(new DefenseSquadTask(b, UnitTypes.VIKING_FIGHTER)
                    {
                        MaxDefenders = 1
                    });
                }
            }

            foreach (DefenseSquadTask task in TankDefenseTasks)
            {
                Task.Enable(task);
            }
            foreach (DefenseSquadTask task in LiberatorDefenseTasks)
            {
                Task.Enable(task);
            }
            foreach (DefenseSquadTask task in VikingDefenseTasks)
            {
                Task.Enable(task);
            }

            DefenseSquadTask.Enable(false, UnitTypes.CYCLONE);
            foreach (DefenseSquadTask task in DefenseSquadTask.Tasks)
            {
                task.MaxDefenders = 2;
            }
            if (CycloneDefenseTasks == null)
            {
                CycloneDefenseTasks = DefenseSquadTask.GetDefenseTasks(UnitTypes.CYCLONE);
            }

            DefenseSquadTask.Enable(CycloneDefenseTasks, false, false);
            foreach (DefenseSquadTask task in CycloneDefenseTasks)
            {
                task.MaxDefenders = 1;
                task.Priority     = 8;
            }
        }