コード例 #1
0
ファイル: MacroHydra.cs プロジェクト: evilz/TyrSc2
        /**
         * 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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: MacroHydra.cs プロジェクト: evilz/TyrSc2
        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);
        }
コード例 #4
0
        private BuildList Units()
        {
            BuildList result = new BuildList();

            result.Train(UnitTypes.PROBE, 21);
            result.Train(UnitTypes.VOID_RAY);

            return(result);
        }
コード例 #5
0
ファイル: PvZAdeptIntoVoidray.cs プロジェクト: evilz/TyrSc2
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
ファイル: DefensiveSentries.cs プロジェクト: evilz/TyrSc2
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
ファイル: OneBaseTempest.cs プロジェクト: evilz/TyrSc2
        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);
        }
コード例 #11
0
ファイル: PvZFakeZealotRush.cs プロジェクト: evilz/TyrSc2
        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);
        }
コード例 #12
0
ファイル: PvZMassPhoenix.cs プロジェクト: kblood/TyrSc2
        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);
        }
コード例 #13
0
ファイル: LingUltra.cs プロジェクト: slemvs/TyrSc2
        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);
        }
コード例 #14
0
        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);
        }
コード例 #15
0
ファイル: MassZergling.cs プロジェクト: kblood/TyrSc2
        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);
        }
コード例 #16
0
ファイル: RoachRavager.cs プロジェクト: slemvs/TyrSc2
        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);
        }
コード例 #17
0
        private BuildList Units()
        {
            BuildList result = new BuildList();

            result.Train(UnitTypes.TEMPEST, () => Gas() >= 175);

            return(result);
        }
コード例 #18
0
ファイル: ZealotImmortalArchon.cs プロジェクト: kblood/TyrSc2
        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);
        }
コード例 #19
0
ファイル: MassZergling.cs プロジェクト: kblood/TyrSc2
        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);
        }
コード例 #20
0
        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);
        }
コード例 #21
0
        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);
        }
コード例 #22
0
ファイル: CannonRush.cs プロジェクト: evilz/TyrSc2
        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);
        }
コード例 #23
0
ファイル: ZealotRushProxy.cs プロジェクト: kblood/TyrSc2
        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);
        }
コード例 #24
0
ファイル: PvZCannonRush.cs プロジェクト: evilz/TyrSc2
        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);
        }
コード例 #25
0
ファイル: Muukzor.cs プロジェクト: evilz/TyrSc2
        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);
        }
コード例 #26
0
        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);
        }
コード例 #27
0
ファイル: PvPAdeptAllIn.cs プロジェクト: kblood/TyrSc2
        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);
        }
コード例 #28
0
ファイル: PvZStalkerImmortal.cs プロジェクト: kblood/TyrSc2
        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);
        }
コード例 #29
0
        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);
        }
コード例 #30
0
        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);
        }