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(); }
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(); }
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(); }
public override void OnStart(Bot bot) { MicroControllers.Add(new StutterController()); Set += ProtossBuildUtil.Pylons(() => Count(UnitTypes.PYLON) > 0 && CannonCompleted); Set += MainBuild(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
public override void OnStart(Bot bot) { MicroControllers.Add(new FleeCyclonesController()); MicroControllers.Add(new HitAndRunController()); Set += ZergBuildUtil.Overlords(); Set += MainBuild(); }
public override void OnStart(Bot bot) { MicroControllers.Add(new TankController()); MicroControllers.Add(new LiberatorController()); MicroControllers.Add(new VikingController()); MicroControllers.Add(new MedivacController()); MicroControllers.Add(new StutterController()); MicroControllers.Add(new DodgeBallController()); OverrideDefenseTarget = bot.MapAnalyzer.Walk(NaturalDefensePos, bot.MapAnalyzer.EnemyDistances, 15); double distance = 0; foreach (Base b in bot.BaseManager.Bases) { double newDist = Math.Sqrt(SC2Util.DistanceSq(b.BaseLocation.Pos, bot.BaseManager.Main.BaseLocation.Pos)) + Math.Sqrt(SC2Util.DistanceSq(b.BaseLocation.Pos, bot.TargetManager.PotentialEnemyStartLocations[0])); if (newDist > distance) { FarBase = b; distance = newDist; } } HideBuildingTask.Task.HideLocation = FarBase; HideUnitsTask.Task.Target = FarBase.BaseLocation.Pos; Set += SupplyDepots(); Set += AntiBanshee(); Set += MainBuild(); }
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(); }
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(); }
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(); }
public override void OnStart(Tyr tyr) { MicroControllers.Add(new StutterController()); MicroControllers.Add(new DodgeBallController()); Set += SupplyDepots(); Set += MainBuild(); }
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(); }
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(); }
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(); }
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(); }
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(); }
public override void OnStart(Tyr tyr) { MicroControllers.Add(new FleeCyclonesController()); Set += ProtossBuildUtil.Pylons(); Set += Units(); Set += BuildGateways(); }
public override void OnStart(Tyr tyr) { MicroControllers.Add(new CorruptorController()); MicroControllers.Add(new QueenTransfuseController()); MicroControllers.Add(new StutterController()); MicroControllers.Add(new TargetFireController(GetPriorities())); //Set += DefendZealots(); Set += MainBuild(); }
public override void OnStart(Bot bot) { MicroControllers.Add(new FleeCyclonesController()); MicroControllers.Add(FearCannonsController); Set += ProtossBuildUtil.Pylons(); Set += Units(); Set += BuildGateways(); }