示例#1
0
        public override void OnStart(Bot bot)
        {
            TimingAttackTask.Task.BeforeControllers.Add(new SoftLeashController(new HashSet <uint> {
                UnitTypes.TEMPEST, UnitTypes.CARRIER, UnitTypes.STALKER, UnitTypes.IMMORTAL, UnitTypes.ZEALOT
            }, UnitTypes.MOTHERSHIP, 6));
            MicroControllers.Add(new DTController());
            MicroControllers.Add(new VoidrayController());
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new TempestController());
            MicroControllers.Add(new CarrierController());
            MicroControllers.Add(new MothershipController());
            MicroControllers.Add(new DisruptorController());
            MicroControllers.Add(new DodgeBallController());
            MicroControllers.Add(new StalkerController());
            MicroControllers.Add(new GravitonBeamController());
            MicroControllers.Add(new FearEnemyController(UnitTypes.PHOENIX, UnitTypes.STALKER, 6));
            MicroControllers.Add(new AdvanceController());
            MicroControllers.Add(StutterController);

            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }

            Set += ProtossBuildUtil.Pylons(() =>
                                           (Count(UnitTypes.PYLON) > 0 && Count(UnitTypes.CYBERNETICS_CORE) > 0 && Count(UnitTypes.ZEALOT) > 0) && Count(UnitTypes.PYLON) < 3 || bot.Frame >= 22.4 * 60 * 3.5);
            Set += ExpandBuildings();
            Set += ExtraAssimilators();
            Set += Units();
            Set += MainBuildList();
        }
示例#2
0
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(new FleeCyclonesController());
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new DodgeBallController());
            MicroControllers.Add(new SoftLeashController(UnitTypes.STALKER, UnitTypes.IMMORTAL, 5)
            {
                MinEnemyRange = 25
            });
            MicroControllers.Add(new FallBackController()
            {
                ReturnFire = true, MainDist = 40
            });
            MicroControllers.Add(new FearMinesController());
            MicroControllers.Add(new AdvanceController());
            MicroControllers.Add(new StutterController());

            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }

            Set += ProtossBuildUtil.Pylons(() => Count(UnitTypes.PYLON) > 0 && Count(UnitTypes.CYBERNETICS_CORE) > 0);
            Set += Units();
            Set += MainBuildList();
        }
示例#3
0
        public override void OnStart(Bot bot)
        {
            BuildingPlacement.ReservedBuilding reservedNatural = new BuildingPlacement.ReservedBuilding();
            reservedNatural.Pos  = Natural.BaseLocation.Pos;
            reservedNatural.Type = UnitTypes.NEXUS;
            bot.buildingPlacer.ReservedLocation.Add(reservedNatural);
            StutterController.Range = 15;

            MicroControllers.Add(new SoftLeashController(UnitTypes.COLOSUS, UnitTypes.IMMORTAL, 12));
            MicroControllers.Add(new FleeCyclonesController());
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new TempestController());
            MicroControllers.Add(new DisruptorController());
            MicroControllers.Add(new DodgeBallController());
            MicroControllers.Add(new FallBackController()
            {
                ReturnFire = true, MainDist = 40
            });
            MicroControllers.Add(new GravitonBeamController());
            MicroControllers.Add(new FearEnemyController(UnitTypes.PHOENIX, UnitTypes.MISSILE_TURRET, 11));
            MicroControllers.Add(new AttackEnemyController(UnitTypes.PHOENIX, UnitTypes.BANSHEE, 15, true));
            MicroControllers.Add(StutterController);
            MicroControllers.Add(StutterForwardController);

            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }

            Set += ProtossBuildUtil.Pylons(() => (Count(UnitTypes.PYLON) > 0 && Count(UnitTypes.CYBERNETICS_CORE) > 0 && Count(UnitTypes.STALKER) > 0) || bot.Frame >= 22.4 * 60 * 3.5);
            Set += Units();
            Set += ExpandBuildings();
            Set += MainBuildList();
        }
示例#4
0
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(new StutterController());

            Set += ProtossBuildUtil.Pylons(() => Count(UnitTypes.PYLON) > 0 && CannonCompleted);
            Set += MainBuild();
        }
示例#5
0
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(new FearEnemyController(UnitTypes.ZEALOT, UnitTypes.BROODLING, 11)
            {
                MoveToMain = true
            });
            MicroControllers.Add(MoveWhenSafeController);

            if (bot.TargetManager.PotentialEnemyStartLocations.Count == 1)
            {
                bot.EnemyManager.EnemyBuildings.Add(ulong.MaxValue, new Managers.BuildingLocation()
                {
                    LastSeen = 0,
                    Pos      = new Point()
                    {
                        X = bot.TargetManager.PotentialEnemyStartLocations[0].X, Y = bot.TargetManager.PotentialEnemyStartLocations[0].Y, Z = 0
                    },
                    Tag  = ulong.MaxValue,
                    Type = bot.EnemyRace == SC2APIProtocol.Race.Zerg ? UnitTypes.HATCHERY : (bot.EnemyRace == SC2APIProtocol.Race.Protoss ? UnitTypes.NEXUS : UnitTypes.COMMAND_CENTER)
                });
            }

            Set += ProtossBuildUtil.Pylons();
            Set += BuildPylonForPower();
            Set += BuildStargatesAgainstLifters();
        }
示例#6
0
        public override void OnStart(Tyr tyr)
        {
            tyr.TaskManager.Add(DefenseTask);
            tyr.TaskManager.Add(DTAttackTask);
            tyr.TaskManager.Add(new FlyerAttackTask()
            {
                RequiredSize = 4
            });
            tyr.TaskManager.Add(new RemoveLostWorkersTask());
            tyr.TaskManager.Add(new ShieldBatteryTargetTask());
            if (tyr.BaseManager.Pocket != null)
            {
                tyr.TaskManager.Add(new ScoutProxyTask(tyr.BaseManager.Pocket.BaseLocation.Pos));
            }
            MicroControllers.Add(new VoidrayController());
            MicroControllers.Add(new StutterController());
            ConstructionTask.Task.OnlyWorkersFromMain = true;
            tyr.buildingPlacer.BuildInsideMainOnly    = true;
            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }

            Set += BuildWallPylon();
            Set += ProtossBuildUtil.Pylons();
            Set += BuildReaperDefenseCannon();
            Set += MainBuild();
            Set += StargatesAgainstCannons();
        }
示例#7
0
        public override void OnStart(Tyr tyr)
        {
            tyr.TaskManager.Add(defenseTask);
            tyr.TaskManager.Add(attackTask);
            tyr.TaskManager.Add(WorkerScoutTask);
            tyr.TaskManager.Add(new ObserverScoutTask());
            if (tyr.BaseManager.Pocket != null)
            {
                tyr.TaskManager.Add(new ScoutProxyTask(tyr.BaseManager.Pocket.BaseLocation.Pos));
            }
            tyr.TaskManager.Add(new AdeptKillSquadTask());
            tyr.TaskManager.Add(new ElevatorChaserTask());
            MicroControllers.Add(new StalkerController());
            MicroControllers.Add(new StutterController());
            MicroControllers.Add(new ColloxenController());

            Set += ProtossBuildUtil.Pylons();
            Set += NaturalDefenses();
            Set += BuildStargatesAgainstLifters();
            Set += Nexii();
            foreach (Base b in tyr.BaseManager.Bases)
            {
                if (b != Main && b != Natural)
                {
                    Set += ExpansionDefenses(b);
                }
            }
            Set += MainBuild();
        }
示例#8
0
        public override void OnStart(Tyr tyr)
        {
            OverrideDefenseTarget     = tyr.MapAnalyzer.Walk(NaturalDefensePos, tyr.MapAnalyzer.EnemyDistances, 15);
            OverrideMainDefenseTarget = new PotentialHelper(tyr.MapAnalyzer.GetMainRamp(), 6).
                                        To(tyr.MapAnalyzer.StartLocation)
                                        .Get();

            MicroControllers.Add(new GravitonBeamController()
            {
                Delay = 22.4f * 4
            });
            MicroControllers.Add(new FearMinesController());
            MicroControllers.Add(new StalkerController());
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new DisruptorController());
            MicroControllers.Add(StutterController);
            MicroControllers.Add(new HTController());
            MicroControllers.Add(new ColloxenController());
            MicroControllers.Add(new TempestController());
            MicroControllers.Add(new AdvanceController());

            Set += ProtossBuildUtil.Pylons(() => Completed(UnitTypes.PYLON) > 0 && Count(UnitTypes.CYBERNETICS_CORE) > 0);
            Set += ExpandBuildings();
            Set += Units();
            Set += MainBuild();
        }
示例#9
0
        public override void OnStart(Tyr tyr)
        {
            DefenseTask.Enable();
            tyr.TaskManager.Add(attackTask);
            tyr.TaskManager.Add(WorkerScoutTask);
            tyr.TaskManager.Add(new ObserverScoutTask());
            tyr.TaskManager.Add(new AdeptScoutTask());
            if (tyr.BaseManager.Pocket != null)
            {
                tyr.TaskManager.Add(new ScoutProxyTask(tyr.BaseManager.Pocket.BaseLocation.Pos));
            }
            ArchonMergeTask.Enable();

            OverrideDefenseTarget = tyr.MapAnalyzer.Walk(NaturalDefensePos, tyr.MapAnalyzer.EnemyDistances, 15);

            MicroControllers.Add(new StalkerController());
            MicroControllers.Add(new StutterController());
            MicroControllers.Add(new HTController());
            MicroControllers.Add(new ColloxenController());

            Set += ProtossBuildUtil.Pylons();
            Set += EmergencyGateways();
            Set += ExpandBuildings();
            Set += Nexii();
            Set += MainBuild();
        }
示例#10
0
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(new FleeCyclonesController());
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new DodgeBallController());
            MicroControllers.Add(new GravitonBeamController());
            MicroControllers.Add(new FearEnemyController(UnitTypes.PHOENIX, UnitTypes.MISSILE_TURRET, 11));
            MicroControllers.Add(new AttackEnemyController(UnitTypes.PHOENIX, UnitTypes.BANSHEE, 15, true));
            MicroControllers.Add(new FallBackController()
            {
                ReturnFire = true, MainDist = 40
            });
            MicroControllers.Add(new FearMinesController());
            MicroControllers.Add(new AdvanceController());
            MicroControllers.Add(new StutterForwardController());

            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }


            WallIn.CreateReaperWall(new List <uint> {
                UnitTypes.GATEWAY, UnitTypes.PYLON, UnitTypes.CYBERNETICS_CORE
            });
            WallIn.ReserveSpace();

            Set += ProtossBuildUtil.Pylons(() => Count(UnitTypes.PYLON) > 0 && Count(UnitTypes.CYBERNETICS_CORE) > 0);
            Set += Units();
            Set += MainBuildList();
        }
示例#11
0
        public override void OnStart(Tyr tyr)
        {
            OverrideDefenseTarget = tyr.MapAnalyzer.Walk(NaturalDefensePos, tyr.MapAnalyzer.EnemyDistances, 15);

            MicroControllers.Add(StutterForwardController);
            MicroControllers.Add(FallBackController);
            MicroControllers.Add(new FearMinesController());
            MicroControllers.Add(new StalkerController());
            MicroControllers.Add(new DisruptorController());
            MicroControllers.Add(new StutterController());
            MicroControllers.Add(new HTController());
            MicroControllers.Add(new ColloxenController());
            MicroControllers.Add(new TempestController());
            MicroControllers.Add(new AdvanceController());

            if (WallIn == null)
            {
                WallIn = new WallInCreator();
                WallIn.CreateNatural(new List <uint>()
                {
                    UnitTypes.GATEWAY, UnitTypes.GATEWAY, UnitTypes.ZEALOT, UnitTypes.GATEWAY
                });
                ShieldBatteryPos = DetermineShieldBatteryPos();
                WallIn.ReserveSpace();
            }

            Set += ProtossBuildUtil.Pylons(() => Completed(UnitTypes.PYLON) > 0 &&
                                           (Count(UnitTypes.CYBERNETICS_CORE) > 0 || tyr.EnemyStrategyAnalyzer.EarlyPool) &&
                                           (Count(UnitTypes.GATEWAY) >= 2 || !tyr.EnemyStrategyAnalyzer.EarlyPool));
            Set += ExpandBuildings();
            Set += Units();
            Set += MainBuild();
        }
示例#12
0
        public override void OnStart(Bot bot)
        {
            OverrideDefenseTarget     = bot.MapAnalyzer.Walk(NaturalDefensePos, bot.MapAnalyzer.EnemyDistances, 15);
            OverrideMainDefenseTarget = new PotentialHelper(bot.MapAnalyzer.GetMainRamp(), 6).
                                        To(bot.MapAnalyzer.StartLocation)
                                        .Get();

            MicroControllers.Add(FallBackController);
            MicroControllers.Add(WaitForDetectionController);
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new FearEnemyController(UnitTypes.PHOENIX, UnitTypes.MISSILE_TURRET, 10));
            MicroControllers.Add(new AttackEnemyController(UnitTypes.PHOENIX, UnitTypes.BANSHEE, 15, true));
            MicroControllers.Add(new FearMinesController());
            MicroControllers.Add(new StalkerController());
            MicroControllers.Add(new DisruptorController());
            MicroControllers.Add(new StutterController());
            MicroControllers.Add(new HTController());
            MicroControllers.Add(new ColloxenController());
            MicroControllers.Add(new TempestController());
            MicroControllers.Add(new AdvanceController());

            Set += ProtossBuildUtil.Pylons(() => Completed(UnitTypes.PYLON) > 0 && Count(UnitTypes.CYBERNETICS_CORE) > 0);
            Set += EmergencyGateways();
            Set += ExpandBuildings();
            Set += Units();
            Set += MainBuild();
        }
示例#13
0
        public override void OnStart(Tyr tyr)
        {
            tyr.Monday = true;

            MicroControllers.Add(FearVikingsController);
            MicroControllers.Add(new VoidrayController());
            MicroControllers.Add(new CarrierController());
            MicroControllers.Add(new StutterController());

            if (SkipDefenses)
            {
                Set += ProtossBuildUtil.Pylons();
            }
            else
            {
                Set += NaturalDefenses();
                Set += RushDefenses();
                Set += ProtossBuildUtil.Pylons();
                Set += BuildReaperDefenseCannon();
                Set += BuildReaperRushDefense();
                Set += ProtossBuildUtil.Nexus(2);
            }
            Set += PowerPylons();
            Set += MainBuild();
        }
示例#14
0
        public override void OnStart(Tyr tyr)
        {
            MicroControllers.Add(new FleeCyclonesController());
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new TempestController());
            MicroControllers.Add(new DisruptorController());
            MicroControllers.Add(new DodgeBallController());
            MicroControllers.Add(new FallBackController()
            {
                ReturnFire = true, MainDist = 40
            });
            //MicroControllers.Add(new FearMinesController());
            MicroControllers.Add(new GravitonBeamController());
            MicroControllers.Add(new FearEnemyController(UnitTypes.PHOENIX, UnitTypes.MISSILE_TURRET, 11));
            MicroControllers.Add(new AttackEnemyController(UnitTypes.PHOENIX, UnitTypes.BANSHEE, 15, true));
            MicroControllers.Add(new AdvanceController());
            MicroControllers.Add(StutterController);
            MicroControllers.Add(StutterForwardController);

            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }

            GetScoutingPylonPos();

            Set += ProtossBuildUtil.Pylons(() => (Count(UnitTypes.PYLON) > 0 && Count(UnitTypes.CYBERNETICS_CORE) > 0 && Count(UnitTypes.STALKER) > 0) || tyr.Frame >= 22.4 * 60 * 3.5);
            Set += BaseCannons();
            Set += ExpandBuildings();
            Set += Units();
            Set += MainBuildList();
        }
示例#15
0
        public override void OnStart(Bot bot)
        {
            bot.TaskManager.Add(new DefenseTask()
            {
                ExpandDefenseRadius = 18
            });
            bot.TaskManager.Add(attackTask);
            if (bot.EnemyRace == Race.Zerg)
            {
                bot.TaskManager.Add(PokeTask);
            }
            bot.TaskManager.Add(WorkerScoutTask);
            bot.TaskManager.Add(new ObserverScoutTask());
            bot.TaskManager.Add(new AdeptScoutTask());
            if (bot.BaseManager.Pocket != null)
            {
                bot.TaskManager.Add(new ScoutProxyTask(bot.BaseManager.Pocket.BaseLocation.Pos));
            }
            MicroControllers.Add(new StalkerController());
            MicroControllers.Add(new StutterController());
            MicroControllers.Add(new HTController());
            MicroControllers.Add(new ColloxenController());

            Set += ProtossBuildUtil.Pylons();
            Set += EmergencyGateways();
            Set += Nexii();
            Set += MainBuild();
        }
示例#16
0
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(new DTController());
            MicroControllers.Add(new VoidrayController());
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new TempestController());
            MicroControllers.Add(new DisruptorController());
            MicroControllers.Add(new DodgeBallController());
            MicroControllers.Add(new StalkerController());
            MicroControllers.Add(new GravitonBeamController());
            MicroControllers.Add(new FearEnemyController(UnitTypes.PHOENIX, UnitTypes.STALKER, 6));
            MicroControllers.Add(new AdvanceController());
            MicroControllers.Add(StutterController);

            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }

            Set += ProtossBuildUtil.Pylons(() =>
                                           (Count(UnitTypes.PYLON) > 0 && Count(UnitTypes.CYBERNETICS_CORE) > 0 && Count(UnitTypes.STALKER) > 0) && Count(UnitTypes.PYLON) < 3 || bot.Frame >= 22.4 * 60 * 3.5);
            Set += ExpandBuildings();
            Set += ExtraAssimilators();
            Set += Units();
            Set += MainBuildList();
        }
示例#17
0
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(new FleeCyclonesController());
            MicroControllers.Add(new BlinkForwardController());
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new DodgeBallController());
            MicroControllers.Add(new TargetUnguardedBuildingsController());
            MicroControllers.Add(new AdvanceController());
            MicroControllers.Add(new StutterController());
            MicroControllers.Add(new KillTargetController(UnitTypes.SCV)
            {
                MaxDist = 4
            });
            MicroControllers.Add(KillCycloneController);
            MicroControllers.Add(KillBansheeController);
            MicroControllers.Add(new KillTargetController(UnitTypes.SCV, true));

            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }

            bot.TargetManager.PrefferDistant = false;


            Set += ProtossBuildUtil.Pylons(() => Count(UnitTypes.PYLON) > 0 && Count(UnitTypes.CYBERNETICS_CORE) > 0);
            Set += Units();
            Set += MainBuildList();
        }
示例#18
0
        public override void OnStart(Tyr tyr)
        {
            OverrideDefenseTarget     = tyr.MapAnalyzer.Walk(NaturalDefensePos, tyr.MapAnalyzer.EnemyDistances, 15);
            OverrideMainDefenseTarget = new PotentialHelper(tyr.MapAnalyzer.GetMainRamp(), 6).
                                        To(tyr.MapAnalyzer.StartLocation)
                                        .Get();

            MicroControllers.Add(FallBackController);
            MicroControllers.Add(new FearMinesController());
            MicroControllers.Add(new StalkerController());
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new DisruptorController());
            MicroControllers.Add(StutterController);
            MicroControllers.Add(new HTController());
            MicroControllers.Add(new ColloxenController());
            MicroControllers.Add(new TempestController());
            MicroControllers.Add(new AdvanceController());
            if (WallIn == null)
            {
                WallIn = new WallInCreator();
                WallIn.Create(new List <uint>()
                {
                    UnitTypes.GATEWAY, UnitTypes.PYLON, UnitTypes.GATEWAY
                });
                WallIn.ReserveSpace();
            }

            Set += ProtossBuildUtil.Pylons(() => Completed(UnitTypes.PYLON) > 0 && (Count(UnitTypes.CYBERNETICS_CORE) > 0 || tyr.EnemyStrategyAnalyzer.WorkerRushDetected));
            Set += ExpandBuildings();
            Set += Units();
            Set += MainBuild();
        }
示例#19
0
        public override void OnStart(Tyr tyr)
        {
            tyr.Monday = true;

            MicroControllers.Add(FearVikingsController);
            MicroControllers.Add(new CarrierController());
            MicroControllers.Add(new StutterController());

            double distance = 0;

            foreach (Base b in tyr.BaseManager.Bases)
            {
                double newDist = Math.Sqrt(SC2Util.DistanceSq(b.BaseLocation.Pos, tyr.BaseManager.Main.BaseLocation.Pos)) + Math.Sqrt(SC2Util.DistanceSq(b.BaseLocation.Pos, tyr.TargetManager.PotentialEnemyStartLocations[0]));

                if (newDist > distance)
                {
                    FarBase  = b;
                    distance = newDist;
                }
            }
            HideBaseTask.Task.HideLocation = FarBase;

            Set += BuildWallPylon();
            Set += ProtossBuildUtil.Pylons();
            Set += HiddenBaseBuild();
            Set += MainBuild();
        }
示例#20
0
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(TempestController);
            MicroControllers.Add(new StutterController());

            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }

            if (WallIn == null)
            {
                WallIn = new WallInCreator();
                WallIn.Create(new List <uint>()
                {
                    UnitTypes.GATEWAY, UnitTypes.PYLON, UnitTypes.GATEWAY
                });
                WallIn.ReserveSpace();
                ShieldBatteryPos = SC2Util.TowardCardinal(WallIn.Wall[1].Pos, Main.BaseLocation.Pos, 2);
                Bot.Main.buildingPlacer.ReservedLocation.Add(new ReservedBuilding()
                {
                    Type = UnitTypes.SHIELD_BATTERY, Pos = ShieldBatteryPos
                });
            }

            Set += ProtossBuildUtil.Pylons(() => Completed(UnitTypes.PYLON) >= 2);
            Set += Units();
            Set += MainBuildList();
        }
示例#21
0
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(new SoftLeashController(UnitTypes.COLOSUS, UnitTypes.IMMORTAL, 12));
            MicroControllers.Add(new FleeCyclonesController());
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new TempestController());
            MicroControllers.Add(new DisruptorController());
            MicroControllers.Add(new DodgeBallController());
            MicroControllers.Add(new FallBackController()
            {
                ReturnFire = true, MainDist = 40
            });
            MicroControllers.Add(new GravitonBeamController());
            MicroControllers.Add(new FearEnemyController(UnitTypes.PHOENIX, UnitTypes.MISSILE_TURRET, 11));
            MicroControllers.Add(new AttackEnemyController(UnitTypes.PHOENIX, UnitTypes.BANSHEE, 15, true));
            MicroControllers.Add(new AdvanceController());
            MicroControllers.Add(StutterController);
            MicroControllers.Add(StutterForwardController);

            WallIn.CreateReaperWall(new List <uint> {
                UnitTypes.GATEWAY, UnitTypes.PYLON, UnitTypes.CYBERNETICS_CORE
            });
            WallIn.ReserveSpace();

            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }

            Set += ProtossBuildUtil.Pylons(() => (Count(UnitTypes.PYLON) > 0 && Count(UnitTypes.CYBERNETICS_CORE) > 0 && Count(UnitTypes.STALKER) > 0) || bot.Frame >= 22.4 * 60 * 3.5);
            Set += Units();
            Set += ExpandBuildings();
            Set += MainBuildList();
        }
示例#22
0
文件: Sanity.cs 项目: evilz/TyrSc2
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(new FleeCyclonesController());
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new DodgeBallController());
            MicroControllers.Add(new FearMinesController());
            MicroControllers.Add(new AdvanceController());
            MicroControllers.Add(new StutterController());
            TimingAttackTask.Task.BeforeControllers.Add(new SoftLeashController(UnitTypes.STALKER, UnitTypes.IMMORTAL, 5)
            {
                MinEnemyRange = 25
            });

            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }

            if (WallIn == null)
            {
                WallIn = new WallInCreator();
                WallIn.Create(new List <uint>()
                {
                    UnitTypes.GATEWAY, UnitTypes.PYLON, UnitTypes.GATEWAY
                });
                WallIn.ReserveSpace();
            }

            Set += ProtossBuildUtil.Pylons(() => Count(UnitTypes.PYLON) > 0 && Count(UnitTypes.CYBERNETICS_CORE) > 0);
            Set += Units();
            Set += MainBuildList();
        }
示例#23
0
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(new FleeCyclonesController());
            MicroControllers.Add(new BlinkForwardController());
            MicroControllers.Add(new SentryController());
            MicroControllers.Add(new DodgeBallController());
            MicroControllers.Add(new FallBackController()
            {
                ReturnFire = true, MainDist = 40
            });
            MicroControllers.Add(new AdvanceController());
            MicroControllers.Add(new StutterController());

            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }

            bot.TargetManager.PrefferDistant = false;


            Set += ProtossBuildUtil.Pylons(() => Count(UnitTypes.PYLON) > 0 && Count(UnitTypes.CYBERNETICS_CORE) > 0 && (Count(UnitTypes.STALKER) >= 3 || Count(Main, UnitTypes.PYLON) == 1));
            Set += Units();
            Set += MainBuildList();
        }
示例#24
0
        public override void OnStart(Tyr tyr)
        {
            MicroControllers.Add(new FleeCyclonesController());
            MicroControllers.Add(new TempestController());
            MicroControllers.Add(new StutterController());

            if (WallIn == null)
            {
                WallIn = new WallInCreator();
                WallIn.CreateFullNatural(new List <uint>()
                {
                    UnitTypes.GATEWAY, UnitTypes.GATEWAY, UnitTypes.PYLON, UnitTypes.GATEWAY
                });
                WallIn.ReserveSpace();
            }
            if (MainWallIn == null)
            {
                MainWallIn = new WallInCreator();
                MainWallIn.Create(new List <uint>()
                {
                    UnitTypes.GATEWAY, UnitTypes.PYLON, UnitTypes.GATEWAY
                });
                MainWallIn.ReserveSpace();
            }

            Set += ProtossBuildUtil.Pylons();
            Set += Units();
            Set += MainBuildList();
        }
示例#25
0
        public override void OnStart(Tyr tyr)
        {
            MicroControllers.Add(new FleeCyclonesController());

            Set += ProtossBuildUtil.Pylons();
            Set += Units();
            Set += BuildGateways();
        }
示例#26
0
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(new FleeCyclonesController());
            MicroControllers.Add(FearCannonsController);

            Set += ProtossBuildUtil.Pylons();
            Set += Units();
            Set += BuildGateways();
        }
示例#27
0
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(new FleeCyclonesController());

            DefensePoint = new PotentialHelper(MainDefensePos, 5).To(bot.MapAnalyzer.GetMainRamp()).Get();

            Set += ProtossBuildUtil.Pylons();
            Set += Units();
            Set += BuildGateways();
        }
示例#28
0
        public override void OnStart(Tyr tyr)
        {
            MicroControllers.Add(AdeptPhaseEnemyMainController);
            MicroControllers.Add(new AdeptKillWorkersController());
            MicroControllers.Add(FearImmortalsController);
            MicroControllers.Add(new StutterController());

            Set += ProtossBuildUtil.Pylons();
            Set += MainBuildList();
        }
示例#29
0
        public override void OnStart(Bot bot)
        {
            MicroControllers.Add(new VoidrayController());
            MicroControllers.Add(new StutterController());


            Set += BuildWallPylon();
            Set += ProtossBuildUtil.Pylons();
            Set += BuildReaperDefenseCannon();
            Set += MainBuild();
            Set += StargatesAgainstCannons();
        }
示例#30
0
        public override void OnStart(Tyr tyr)
        {
            MicroControllers.Add(new StutterController());

            foreach (WorkerDefenseTask task in WorkerDefenseTask.Tasks)
            {
                task.OnlyDefendInsideMain = true;
            }

            Set += ProtossBuildUtil.Pylons();
            Set += MainBuildList();
        }