/** * Deprecated, as cannonRushes seem to be beatable without it. */ private BuildList DefendCannonRush() { BuildList result = new BuildList(); result.If(() => ProxyCannons); result.Morph(UnitTypes.OVERLORD); result.Morph(UnitTypes.DRONE, 14); result.Morph(UnitTypes.OVERLORD); result.Building(UnitTypes.EXTRACTOR); result.Building(UnitTypes.SPAWNING_POOL); result.Train(UnitTypes.QUEEN, 4); result.Morph(UnitTypes.DRONE, 4); result.Building(UnitTypes.ROACH_WARREN); result.Morph(UnitTypes.ROACH, 10); result.Train(UnitTypes.LAIR, 1); result.Building(UnitTypes.EXTRACTOR); result.Morph(UnitTypes.DRONE, 2); result.Building(UnitTypes.HYDRALISK_DEN); result.Morph(UnitTypes.HYDRALISK, 10); result.Upgrade(UpgradeType.GroovedSpines); result.Morph(UnitTypes.RAVAGER, 4); result.Morph(UnitTypes.HYDRALISK, 10); result.Morph(UnitTypes.ROACH, 10); result.Morph(UnitTypes.HYDRALISK, 10); result.Morph(UnitTypes.ROACH, 10); result.Morph(UnitTypes.HYDRALISK, 10); result.Morph(UnitTypes.ROACH, 10); result.Morph(UnitTypes.HYDRALISK, 10); result.Morph(UnitTypes.ROACH, 10); return(result); }
private BuildList MainBuild() { BuildList result = new BuildList(); result.Building(UnitTypes.HATCHERY); result.Morph(UnitTypes.OVERLORD); result.Morph(UnitTypes.DRONE, 14); result.Building(UnitTypes.HATCHERY); result.Building(UnitTypes.SPAWNING_POOL); result.Train(UnitTypes.QUEEN, 2); result.Building(UnitTypes.EXTRACTOR); //result.Upgrade(UpgradeType.MetabolicBoost, () => Gas() >= 100); result.Train(UnitTypes.LAIR, 1, () => Gas() >= 100); result.Building(UnitTypes.SPORE_CRAWLER, Main, Main.MineralLinePos, () => Count(UnitTypes.LAIR) > 0); result.Building(UnitTypes.SPORE_CRAWLER, Natural, Natural.MineralLinePos, () => Count(UnitTypes.LAIR) > 0); result.Train(UnitTypes.QUEEN, 2, () => Count(UnitTypes.LAIR) > 0); result.Morph(UnitTypes.DRONE, 6); result.Building(UnitTypes.SPIRE); result.Building(UnitTypes.HYDRALISK_DEN, () => Count(UnitTypes.MUTALISK) >= 8); result.Building(UnitTypes.EXTRACTOR); result.Morph(UnitTypes.DRONE, 4); result.Building(UnitTypes.EXTRACTOR, 3); result.If(() => Count(UnitTypes.MUTALISK) >= 9); result.Morph(UnitTypes.DRONE, 16); result.If(() => Count(UnitTypes.MUTALISK) >= 12); result.Building(UnitTypes.HATCHERY); result.Morph(UnitTypes.DRONE, 20); return(result); }
private BuildList DefendFourRax() { BuildList result = new BuildList(); result.If(() => FourRaxSuspected && Count(UnitTypes.ROACH) + Count(UnitTypes.HYDRALISK) < 15); result.Building(UnitTypes.HATCHERY); result.Morph(UnitTypes.OVERLORD); result.Morph(UnitTypes.DRONE, 13); result.Morph(UnitTypes.DRONE, () => Count(UnitTypes.HATCHERY) < 2); result.Building(UnitTypes.HATCHERY); result.Morph(UnitTypes.OVERLORD); result.Morph(UnitTypes.DRONE); result.Building(UnitTypes.SPAWNING_POOL); result.Train(UnitTypes.QUEEN, 2); result.Morph(UnitTypes.DRONE, 6); result.Building(UnitTypes.EXTRACTOR); result.Building(UnitTypes.ROACH_WARREN); result.Morph(UnitTypes.DRONE, 6); result.Train(UnitTypes.QUEEN, 6); result.Morph(UnitTypes.ROACH, 10); result.Building(UnitTypes.SPINE_CRAWLER, Natural, NaturalDefensePos, 2); result.Building(UnitTypes.SPINE_CRAWLER, Natural, NaturalDefensePos, 2, () => Count(UnitTypes.ROACH) >= 10); result.Morph(UnitTypes.ROACH, 5); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.PROBE, 21); result.Train(UnitTypes.VOID_RAY); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.PROBE, 20); result.Train(UnitTypes.PROBE, 40, () => Count(UnitTypes.NEXUS) >= 2); result.Train(UnitTypes.ADEPT, 25); result.Train(UnitTypes.VOID_RAY, 25); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.PROBE, 18); result.Train(UnitTypes.PROBE, 30, () => Count(UnitTypes.NEXUS) >= 2); result.Train(UnitTypes.STALKER, 1, () => Expand); result.Train(UnitTypes.TEMPEST); return(result); }
private BuildList BuildStargatesAgainstLifters() { BuildList result = new BuildList(); result.Train(UnitTypes.PROBE, 16); result.Building(UnitTypes.PYLON); result.Building(UnitTypes.GATEWAY); result.Train(UnitTypes.ZEALOT); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.PROBE, 16); result.Train(UnitTypes.SENTRY, 3); result.Upgrade(UpgradeType.WarpGate); result.Train(UnitTypes.SENTRY); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.PROBE, 20); result.Train(UnitTypes.PROBE, 40, () => Count(UnitTypes.NEXUS) >= 2); result.Train(UnitTypes.STALKER); result.Train(UnitTypes.TEMPEST); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.PROBE, 21); if (DefendingStalker) { result.Train(UnitTypes.STALKER, 1, () => Count(UnitTypes.STARGATE) > 0); } result.Train(UnitTypes.TEMPEST); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.PROBE, 20); result.Train(UnitTypes.PROBE, 40, () => Count(UnitTypes.NEXUS) >= 2); result.Train(UnitTypes.IMMORTAL); result.Train(UnitTypes.STALKER, 1); result.Upgrade(UpgradeType.WarpGate); result.Train(UnitTypes.STALKER); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.PHOENIX, 20); result.If(() => Count(UnitTypes.NEXUS) >= 2 && Count(UnitTypes.STARGATE) >= 1); result.Train(UnitTypes.ZEALOT, 1); result.If(() => Count(UnitTypes.PHOENIX) >= 3); result.Train(UnitTypes.ZEALOT, 2); result.Train(UnitTypes.STALKER, () => Gas() >= 150 && Minerals() >= 250); result.Train(UnitTypes.ZEALOT, () => Minerals() >= 200); return(result); }
private BuildList MainBuild() { BuildList result = new BuildList(); result.Building(UnitTypes.HATCHERY); result.Morph(UnitTypes.OVERLORD); result.Morph(UnitTypes.DRONE, 14); result.Building(UnitTypes.HATCHERY); result.Morph(UnitTypes.OVERLORD); result.Building(UnitTypes.EXTRACTOR); result.Building(UnitTypes.SPAWNING_POOL); result.Train(UnitTypes.QUEEN, 4); result.Morph(UnitTypes.DRONE, 6); result.Train(UnitTypes.LAIR, 1); result.Morph(UnitTypes.ZERGLING, 10, () => !GoingUltras); result.Morph(UnitTypes.DRONE, 10); result.Upgrade(UpgradeType.MetabolicBoost); result.Upgrade(UpgradeType.AdrenalGlands); result.Building(UnitTypes.HATCHERY); result.Building(UnitTypes.INFESTATION_PIT); result.Morph(UnitTypes.DRONE, 10); result.Morph(UnitTypes.DRONE, 10); result.Morph(UnitTypes.ZERGLING, 10, () => !GoingUltras); result.Building(UnitTypes.EVOLUTION_CHAMBER); result.Building(UnitTypes.EVOLUTION_CHAMBER); result.Upgrade(UpgradeType.ZergGroundArmor); result.Upgrade(UpgradeType.ZergMeleeWeapons); result.Building(UnitTypes.HATCHERY); result.Train(UnitTypes.HIVE, 1); result.Train(UnitTypes.QUEEN, 6); result.Morph(UnitTypes.ZERGLING, 10, () => !GoingUltras); result.Building(UnitTypes.EXTRACTOR); result.Morph(UnitTypes.DRONE, 10); result.Morph(UnitTypes.OVERSEER, 2); result.Building(UnitTypes.EXTRACTOR, 4, () => GoingUltras); result.Morph(UnitTypes.DRONE, 10); result.Building(UnitTypes.ULTRALISK_CAVERN); result.Upgrade(UpgradeType.AnabolicSynthesis, () => GoingUltras); result.Upgrade(UpgradeType.ChitinousPlating, () => GoingUltras); result.Building(UnitTypes.EXTRACTOR, 2); result.If(() => Count(UnitTypes.ULTRALISK) >= 12); result.Building(UnitTypes.HATCHERY); result.Building(UnitTypes.EXTRACTOR, 2); result.Building(UnitTypes.HATCHERY, 3); result.Morph(UnitTypes.DRONE, 10); result.Building(UnitTypes.EXTRACTOR, 6); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.PROBE, 20); result.Train(UnitTypes.PROBE, 32, () => Completed(UnitTypes.NEXUS) >= 2); result.Train(UnitTypes.STALKER, 3); result.Upgrade(UpgradeType.Blink); result.If(() => Bot.Main.BaseManager.Main.BaseLocation.MineralFields.Count >= 8 || Count(UnitTypes.NEXUS) >= 2); result.Upgrade(UpgradeType.WarpGate); result.Train(UnitTypes.STALKER, 8); result.Train(UnitTypes.STALKER); return(result); }
private BuildList MainBuild() { BuildList result = new BuildList(); result.Morph(UnitTypes.DRONE, 14); result.Building(UnitTypes.HATCHERY, 2); result.Building(UnitTypes.SPAWNING_POOL); result.Morph(UnitTypes.OVERLORD, 2); result.Morph(UnitTypes.DRONE, 3); result.Train(UnitTypes.QUEEN, 2); result.Building(UnitTypes.EXTRACTOR); result.Morph(UnitTypes.DRONE, 3); result.Building(UnitTypes.SPINE_CRAWLER, Natural, NaturalDefensePos, 2, () => Completed(UnitTypes.HATCHERY) >= 2 && SpineDefense); //result.Morph(UnitTypes.ZERGLING, 4); //result.Morph(UnitTypes.ZERGLING, 4); result.Building(UnitTypes.HATCHERY, () => { return(AvailableMineralPatches() <= 12); }); //result.If(() => //{ // return Gas() < 100 // || Tyr.Bot.Observation.Observation.RawData.Player.UpgradeIds.Contains(66) // || Tyr.Bot.UnitManager.ActiveOrders.Contains(1253); //}); //result.Morph(UnitTypes.ZERGLING, 12); //result.If(() => //{ // return Gas() < 150 // || Count(UnitTypes.HIVE) > 0 // || Completed(UnitTypes.INFESTATION_PIT) == 0; //}); //result.If(() => { return !TimingAttackTask.Task.AttackSent || Count(UnitTypes.LAIR) + Count(UnitTypes.HIVE) > 0; }); //result.Morph(UnitTypes.ZERGLING, 20); //result.If(() => { return Completed(UnitTypes.EVOLUTION_CHAMBER) < 2 || ResearchingUpgrades + (MeleeUpgrade / 3) + (ArmorUpgrade / 3) == 2; }); //result.Morph(UnitTypes.ZERGLING, 400); return(result); }
private BuildList MainBuild() { BuildList result = new BuildList(); result.Morph(UnitTypes.DRONE, 14); result.Building(UnitTypes.SPAWNING_POOL); result.Building(UnitTypes.HATCHERY, 2, () => !SmellCheese || Count(UnitTypes.ROACH) >= 15); result.Morph(UnitTypes.DRONE, 4, () => !SmellCheese || Count(UnitTypes.ROACH) >= 15); result.Building(UnitTypes.SPINE_CRAWLER, Main, MainDefensePos, 2, () => SmellCheese); result.If(() => !SmellCheese || Completed(UnitTypes.SPINE_CRAWLER) >= 2); result.Building(UnitTypes.ROACH_WARREN, () => SmellCheese); //result.Building(UnitTypes.SPINE_CRAWLER, Natural, NaturalDefensePos, 2, () => !SmellCheese && Natural.ResourceCenter != null && Natural.ResourceCenter.Unit.BuildProgress >= 0.99); result.Building(UnitTypes.EXTRACTOR, () => SmellCheese); result.Morph(UnitTypes.ROACH, 4, () => SmellCheese); result.Morph(UnitTypes.ZERGLING, 8, () => Completed(UnitTypes.ROACH) < 4 && SmellCheese); result.Morph(UnitTypes.ZERGLING, 6, () => Completed(UnitTypes.ROACH) < 4 && SmellCheese); result.Morph(UnitTypes.DRONE, 2); result.Building(UnitTypes.ROACH_WARREN, () => !SmellCheese); result.Building(UnitTypes.EXTRACTOR, () => !SmellCheese); result.Morph(UnitTypes.DRONE, 5, () => !SmellCheese || Count(UnitTypes.ROACH) >= 20); result.Morph(UnitTypes.ROACH, 4); result.Building(UnitTypes.SPINE_CRAWLER, Main, MainDefensePos, () => SmellCheese && Tyr.Bot.EnemyStrategyAnalyzer.Count(UnitTypes.SPINE_CRAWLER) == 0); result.Morph(UnitTypes.DRONE, 5); result.Building(UnitTypes.EVOLUTION_CHAMBER, 2, () => !SmellCheese || Count(UnitTypes.ROACH) >= 10); result.Upgrade(UpgradeType.ZergMissileWeapons, () => !SmellCheese || Count(UnitTypes.ROACH) >= 10); result.Upgrade(UpgradeType.ZergGroundArmor, () => !SmellCheese || Count(UnitTypes.ROACH) >= 10); result.Morph(UnitTypes.DRONE, 10, () => !SmellCheese || Count(UnitTypes.ROACH) >= 20); result.Building(UnitTypes.EXTRACTOR, () => !SmellCheese || SpinePushDetected); result.Morph(UnitTypes.ROACH, 10); result.Building(UnitTypes.INFESTATION_PIT, () => SpinePushDetected); result.Morph(UnitTypes.SWARM_HOST, 15, () => SpinePushDetected); result.Building(UnitTypes.HYDRALISK_DEN, () => NeedAntiAir); result.Building(UnitTypes.EXTRACTOR, 2, () => NeedAntiAir); result.Morph(UnitTypes.HYDRALISK, 10, () => NeedAntiAir); result.Upgrade(UpgradeType.GroovedSpines, () => NeedAntiAir); result.Upgrade(UpgradeType.MuscularAugments, () => NeedAntiAir); result.Building(UnitTypes.EXTRACTOR); result.Morph(UnitTypes.ROACH, 6, () => SmellCheese); result.Building(UnitTypes.EXTRACTOR, () => SmellCheese); result.If(() => !SmellCheese || Count(UnitTypes.ROACH) >= 20); result.Building(UnitTypes.HATCHERY); result.Morph(UnitTypes.DRONE, 20); result.Morph(UnitTypes.OVERSEER, 2); result.Building(UnitTypes.EXTRACTOR, 2); result.Building(UnitTypes.INFESTATION_PIT, () => !SpinePushDetected); result.Building(UnitTypes.EXTRACTOR, 4); result.Upgrade(UpgradeType.PathogenGlands); result.Morph(UnitTypes.INFESTOR, 3, () => Completed(UnitTypes.INFESTATION_PIT) > 0 && !SpinePushDetected); result.Morph(UnitTypes.ROACH, 10); result.Morph(UnitTypes.INFESTOR, 3, () => Completed(UnitTypes.INFESTATION_PIT) > 0 && !SpinePushDetected); result.Morph(UnitTypes.ROACH, 10, () => !NeedAntiAir); result.Building(UnitTypes.HATCHERY, 2); result.Morph(UnitTypes.HYDRALISK, 10, () => NeedAntiAir); result.Morph(UnitTypes.DRONE, 10); result.Building(UnitTypes.EXTRACTOR, 5); result.Morph(UnitTypes.ROACH, 100); result.Train(UnitTypes.HIVE); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.TEMPEST, () => Gas() >= 175); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.TEMPEST); result.Train(UnitTypes.ZEALOT, 1, () => TotalEnemyCount(UnitTypes.BANSHEE) < 5); result.Train(UnitTypes.STALKER, () => TotalEnemyCount(UnitTypes.BANSHEE) >= 5); result.Train(UnitTypes.OBSERVER, 1); result.Train(UnitTypes.OBSERVER, 3, () => TotalEnemyCount(UnitTypes.BANSHEE) >= 3); result.Train(UnitTypes.IMMORTAL, 10, () => TotalEnemyCount(UnitTypes.BANSHEE) < 5); result.Train(UnitTypes.STALKER, 2, () => TotalEnemyCount(UnitTypes.BANSHEE) < 5 && Count(UnitTypes.IMMORTAL) < 2); result.Train(UnitTypes.ZEALOT, 15, () => TotalEnemyCount(UnitTypes.BANSHEE) < 5 && Count(UnitTypes.STALKER) + Count(UnitTypes.IMMORTAL) > 0); result.Train(UnitTypes.HIGH_TEMPLAR, () => Gas() >= 150); result.Train(UnitTypes.ZEALOT, () => TotalEnemyCount(UnitTypes.BANSHEE) < 5 && Count(UnitTypes.STALKER) + Count(UnitTypes.IMMORTAL) > 0); return(result); }
private BuildList Hydralisks() { BuildList result = new BuildList(); result.If(() => Tyr.Bot.Frame >= HydraTransitionFrame); result.Morph(UnitTypes.DRONE, 14); result.Building(UnitTypes.HATCHERY, 2); result.Morph(UnitTypes.DRONE, 6); result.Train(UnitTypes.QUEEN, 2); result.Building(UnitTypes.EXTRACTOR); result.Building(UnitTypes.EXTRACTOR, () => Tyr.Bot.EnemyStrategyAnalyzer.TotalCount(UnitTypes.REAPER) >= 2); result.Train(UnitTypes.LAIR, 1); result.Building(UnitTypes.EXTRACTOR, () => Tyr.Bot.EnemyStrategyAnalyzer.TotalCount(UnitTypes.REAPER) < 2); result.Morph(UnitTypes.DRONE, 6, () => Tyr.Bot.EnemyStrategyAnalyzer.TotalCount(UnitTypes.REAPER) >= 2); result.Building(UnitTypes.HYDRALISK_DEN, () => Tyr.Bot.EnemyStrategyAnalyzer.TotalCount(UnitTypes.REAPER) >= 2 && Completed(UnitTypes.LAIR) > 0); result.Morph(UnitTypes.HYDRALISK, 5, () => Tyr.Bot.EnemyStrategyAnalyzer.TotalCount(UnitTypes.REAPER) >= 2 && Completed(UnitTypes.HYDRALISK_DEN) > 0); result.Building(UnitTypes.HATCHERY); result.Train(UnitTypes.QUEEN, 3); result.Morph(UnitTypes.DRONE, 5); result.Building(UnitTypes.HYDRALISK_DEN, () => Tyr.Bot.EnemyStrategyAnalyzer.TotalCount(UnitTypes.REAPER) < 2); result.Morph(UnitTypes.DRONE, 8); result.Morph(UnitTypes.HYDRALISK, 5, () => Tyr.Bot.EnemyStrategyAnalyzer.TotalCount(UnitTypes.REAPER) < 2); result.Morph(UnitTypes.OVERSEER, 2); result.Building(UnitTypes.EXTRACTOR, 2); result.Morph(UnitTypes.DRONE, 5); result.Morph(UnitTypes.HYDRALISK, 10); result.Morph(UnitTypes.INFESTOR, 4, () => Completed(UnitTypes.INFESTATION_PIT) > 0); result.Morph(UnitTypes.DRONE, 20); result.Upgrade(UpgradeType.GroovedSpines); result.Upgrade(UpgradeType.MuscularAugments); result.Building(UnitTypes.INFESTATION_PIT, () => Tyr.Bot.EnemyStrategyAnalyzer.TotalCount(UnitTypes.COLOSUS) > 0); result.Building(UnitTypes.EXTRACTOR, 2, () => Tyr.Bot.EnemyStrategyAnalyzer.TotalCount(UnitTypes.COLOSUS) > 0); result.Upgrade(UpgradeType.PathogenGlands); result.Upgrade(UpgradeType.NeuralParasite); result.Morph(UnitTypes.HYDRALISK, 10); result.Building(UnitTypes.EVOLUTION_CHAMBER, 2); result.Upgrade(UpgradeType.ZergMissileWeapons); result.Upgrade(UpgradeType.ZergGroundArmor); result.Building(UnitTypes.HATCHERY); result.Building(UnitTypes.EXTRACTOR, 2); result.Train(UnitTypes.QUEEN, 4); result.Morph(UnitTypes.HYDRALISK, 50); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.PROBE, 19); result.Train(UnitTypes.PROBE, 30, () => Count(UnitTypes.NEXUS) >= 2); result.Train(UnitTypes.PROBE, 45, () => Count(UnitTypes.NEXUS) >= 3); result.Train(UnitTypes.PROBE, 60, () => Count(UnitTypes.NEXUS) >= 4); result.Train(UnitTypes.PROBE, 80, () => Count(UnitTypes.NEXUS) >= 5); result.Train(UnitTypes.STALKER, 1); result.Upgrade(UpgradeType.ResonatingGlaives); result.Train(UnitTypes.WARP_PRISM, 1); result.Train(UnitTypes.OBSERVER, 1); result.If(() => Count(UnitTypes.ROBOTICS_FACILITY) > 0); result.Train(UnitTypes.ADEPT, 3); result.Train(UnitTypes.ADEPT, () => Completed(UnitTypes.WARP_PRISM) == 0); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.PROBE, 20); result.Train(UnitTypes.PROBE, 40, () => Count(UnitTypes.NEXUS) >= 2 && Count(UnitTypes.PYLON) > 2); result.Train(UnitTypes.PROBE, 60, () => Count(UnitTypes.NEXUS) >= 3 && Count(UnitTypes.PYLON) > 2); result.Train(UnitTypes.PROBE, 70, () => Count(UnitTypes.NEXUS) >= 4 && Count(UnitTypes.PYLON) > 2); result.Train(UnitTypes.STALKER, 3); result.Train(UnitTypes.IMMORTAL, 2); result.Train(UnitTypes.OBSERVER, 2); result.Train(UnitTypes.IMMORTAL); result.Train(UnitTypes.STALKER); return(result); }
private BuildList MainBuild() { BuildList result = new BuildList(); result.Building(UnitTypes.PYLON); result.Building(UnitTypes.FORGE); result.Building(UnitTypes.GATEWAY, 3, () => Minerals() >= 750 - Count(UnitTypes.PHOTON_CANNON) || CannonRushTask.Task.Units.Count == 0); result.Train(UnitTypes.ZEALOT); return(result); }
private BuildList MainBuildList() { BuildList result = new BuildList(); result.Building(UnitTypes.PYLON, Main, () => Count(UnitTypes.PROBE) >= 13); result.Building(UnitTypes.GATEWAY, Main); result.Building(UnitTypes.GATEWAY, Main); result.Train(UnitTypes.ZEALOT); return(result); }
private BuildList MainBuild() { BuildList result = new BuildList(); result.Building(UnitTypes.PYLON); result.Building(UnitTypes.FORGE); result.If(() => CannonCompleted || Minerals() >= 300); result.Building(UnitTypes.GATEWAY); result.Building(UnitTypes.ASSIMILATOR); result.Building(UnitTypes.CYBERNETICS_CORE); result.Building(UnitTypes.PYLON); result.Building(UnitTypes.GATEWAY, 2); result.Building(UnitTypes.ROBOTICS_FACILITY); result.Building(UnitTypes.ASSIMILATOR); result.Upgrade(UpgradeType.WarpGate, () => Count(UnitTypes.STALKER) >= 3); result.Train(UnitTypes.IMMORTAL); result.Train(UnitTypes.STALKER); return(result); }
private BuildList MainBuild() { BuildList result = new BuildList(); result.Building(UnitTypes.HATCHERY); result.Morph(UnitTypes.OVERLORD); result.Morph(UnitTypes.DRONE, 14); result.Building(UnitTypes.SPAWNING_POOL); result.Building(UnitTypes.EXTRACTOR); result.Train(UnitTypes.QUEEN, 1); result.Morph(UnitTypes.ZERGLING, 6); result.Upgrade(UpgradeType.MetabolicBoost, () => Gas() >= 100); result.Train(UnitTypes.LAIR, () => Gas() >= 100 && UpgradeType.LookUp[UpgradeType.MetabolicBoost].Started()); if (Hydras) { result.Building(UnitTypes.HYDRALISK_DEN, () => Completed(UnitTypes.LAIR) > 0 && TimingAttackTask.Task.AttackSent); } else { result.Building(UnitTypes.SPIRE, () => Completed(UnitTypes.LAIR) > 0 && TimingAttackTask.Task.AttackSent); } result.Building(UnitTypes.EXTRACTOR, () => Count(UnitTypes.SPIRE) + Count(UnitTypes.HYDRALISK_DEN) > 0); result.Morph(UnitTypes.DRONE, 3, () => Count(UnitTypes.SPIRE) + Count(UnitTypes.HYDRALISK_DEN) > 0); result.Morph(UnitTypes.DRONE, 2); result.Building(UnitTypes.SPORE_CRAWLER, Main, Main.MineralLinePos, () => TotalEnemyCount(UnitTypes.BANSHEE) > 0); result.Morph(UnitTypes.OVERSEER, 1, () => Count(UnitTypes.HYDRALISK) > 0); if (Hydras) { result.Morph(UnitTypes.HYDRALISK, 100, () => Completed(UnitTypes.HYDRALISK_DEN) > 0); } else { result.Morph(UnitTypes.MUTALISK, 100, () => Completed(UnitTypes.SPIRE) > 0); } result.Morph(UnitTypes.ZERGLING, 16); //result.Building(UnitTypes.BANELING_NEST); result.Morph(UnitTypes.ZERGLING, 12); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.Train(UnitTypes.PROBE, 20); result.Train(UnitTypes.PROBE, 40, () => Count(UnitTypes.NEXUS) >= 2); result.Train(UnitTypes.ZEALOT, 4, () => TotalEnemyCount(UnitTypes.ROACH) == 0 && StartZealots); result.Train(UnitTypes.OBSERVER, 1, () => Tyr.Bot.EnemyRace == SC2APIProtocol.Race.Terran || Count(UnitTypes.IMMORTAL) >= (DoubleRobo ? 4 : 3)); result.Train(UnitTypes.OBSERVER, 2, () => TotalEnemyCount(UnitTypes.BANSHEE) > 0); result.Train(UnitTypes.IMMORTAL, () => TotalEnemyCount(UnitTypes.BANSHEE) == 0); result.Train(UnitTypes.STALKER, 1, () => !StartZealots); if (Tyr.Bot.EnemyRace != SC2APIProtocol.Race.Zerg) { result.Train(UnitTypes.SENTRY, 1, () => !PhoenixScoutSent && EarlySentry); } result.Upgrade(UpgradeType.WarpGate, () => !DoubleRobo || Count(UnitTypes.IMMORTAL) >= 4); result.Train(UnitTypes.STALKER, () => (!StartZealots || TotalEnemyCount(UnitTypes.ROACH) > 0) && (!DoubleRobo || Count(UnitTypes.STALKER) < 3 || Gas() >= 125)); result.Train(UnitTypes.ZEALOT, () => TotalEnemyCount(UnitTypes.ROACH) == 0 && StartZealots); return(result); }
private BuildList MainBuildList() { BuildList result = new BuildList(); result.Building(UnitTypes.NEXUS); result.Train(UnitTypes.PROBE, 19); result.Building(UnitTypes.PYLON); result.If(() => Completed(UnitTypes.PYLON) > 0); result.Building(UnitTypes.GATEWAY); result.Building(UnitTypes.ASSIMILATOR); result.Building(UnitTypes.CYBERNETICS_CORE); result.Building(UnitTypes.GATEWAY, 2); result.Upgrade(UpgradeType.WarpGate); result.Building(UnitTypes.TWILIGHT_COUNSEL, () => Count(UnitTypes.ADEPT) >= 18 || TotalEnemyCount(UnitTypes.IMMORTAL) > 0); result.Upgrade(UpgradeType.Charge); result.Train(UnitTypes.ZEALOT, () => UpgradeType.LookUp[UpgradeType.Charge].Done() || TotalEnemyCount(UnitTypes.IMMORTAL) > 0); result.Train(UnitTypes.ADEPT, () => Completed(UnitTypes.TWILIGHT_COUNSEL) == 0 || UpgradeType.LookUp[UpgradeType.Charge].Started()); result.Building(UnitTypes.GATEWAY, () => Count(UnitTypes.ADEPT) >= 3); return(result); }
private BuildList Units() { BuildList result = new BuildList(); result.If(() => Count(UnitTypes.STALKER) < 5 || Count(UnitTypes.IMMORTAL) < 2 || Count(UnitTypes.NEXUS) >= 2); result.If(() => !Tyr.Bot.EnemyStrategyAnalyzer.EarlyPool || Count(UnitTypes.ZEALOT) < 8 || Count(UnitTypes.NEXUS) >= 2); result.Train(UnitTypes.ZEALOT, 1, () => Completed(UnitTypes.NEXUS) < 3); result.Train(UnitTypes.ZEALOT, 2, () => Completed(UnitTypes.NEXUS) < 3 && TimingAttackTask.Task.Units.Count == 0 && Count(UnitTypes.STALKER) >= 5); result.Train(UnitTypes.ZEALOT, 10, () => Tyr.Bot.EnemyStrategyAnalyzer.EarlyPool || MassZerglings); result.Train(UnitTypes.TEMPEST); result.Train(UnitTypes.COLOSUS, 3, () => TotalEnemyCount(UnitTypes.ZERGLING) >= 40 && TotalEnemyCount(UnitTypes.MUTALISK) + TotalEnemyCount(UnitTypes.CORRUPTOR) == 0); result.Train(UnitTypes.IMMORTAL, 3, () => TotalEnemyCount(UnitTypes.ZERGLING) <= 60 || TotalEnemyCount(UnitTypes.ROACH) + TotalEnemyCount(UnitTypes.HYDRALISK) > 0); result.Train(UnitTypes.OBSERVER, 1); result.Train(UnitTypes.IMMORTAL, 10, () => TotalEnemyCount(UnitTypes.ZERGLING) <= 60 || TotalEnemyCount(UnitTypes.ROACH) + TotalEnemyCount(UnitTypes.HYDRALISK) > 0); //result.Train(UnitTypes.ADEPT, 4); result.Train(UnitTypes.STALKER); return(result); }
private BuildList MainBuild() { BuildList result = new BuildList(); result.Building(UnitTypes.HATCHERY); result.Building(UnitTypes.SPAWNING_POOL); result.Morph(UnitTypes.DRONE, 14); result.Morph(UnitTypes.OVERLORD, 2); result.If(() => Completed(UnitTypes.SPAWNING_POOL) > 0 && Count(UnitTypes.ZERGLING) >= 10); result.Morph(UnitTypes.DRONE, 2); result.Train(UnitTypes.QUEEN, 2); result.Building(UnitTypes.EXTRACTOR); return(result); }
private BuildList BuildStargatesAgainstLifters() { BuildList result = new BuildList(); result.If(() => Lifting.Get().Detected || Bot.Main.Frame >= 22.4 * 60 * 10 || CounterWorkerRush.Get().Detected); result.Building(UnitTypes.GATEWAY); result.Building(UnitTypes.ASSIMILATOR); result.Building(UnitTypes.CYBERNETICS_CORE); result.Train(UnitTypes.STALKER, 10, () => BuildStalkers); result.Building(UnitTypes.ASSIMILATOR, () => Count(UnitTypes.STALKER) > 0 || !BuildStalkers); result.Building(UnitTypes.STARGATE, 2, () => Count(UnitTypes.STALKER) > 0 || !BuildStalkers); return(result); }