コード例 #1
0
ファイル: MassVoidray.cs プロジェクト: slemvs/TyrSc2
        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();
        }
コード例 #2
0
        public override void OnStart(Tyr tyr)
        {
            tyr.TaskManager.Add(new DefenseTask());
            tyr.TaskManager.Add(attackTask);
            tyr.TaskManager.Add(new WorkerScoutTask());
            if (tyr.BaseManager.Pocket != null)
                tyr.TaskManager.Add(new ScoutProxyTask(tyr.BaseManager.Pocket.BaseLocation.Pos));
            MicroControllers.Add(new StutterController());

            Set += ProtossBuildUtil.Nexus(2);
            Set += ProtossBuildUtil.Pylons();
            Set += MainBuildList();
        }
コード例 #3
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());

            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;

            if (SkipDefenses)
            {
                Set += ProtossBuildUtil.Pylons();
            }
            else
            {
                Set += NaturalDefenses();
                Set += RushDefenses();
                Set += ProtossBuildUtil.Pylons();
                Set += BuildReaperDefenseCannon();
                Set += BuildReaperRushDefense();
                if (Tyr.Bot.EnemyRace != Race.Zerg)
                {
                    Set += ProtossBuildUtil.Nexus(2);
                }
            }
            Set += PowerPylons();
            Set += MainBuild();
        }
コード例 #4
0
        public override void OnStart(Bot bot)
        {
            if (BuildDefenses == null)
            {
                BuildDefenses = () => !SkipDefenses;
            }
            bot.Monday = true;

            MicroControllers.Add(FearVikingsController);
            MicroControllers.Add(new VoidrayController());
            MicroControllers.Add(new CarrierController());
            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 (NaturalWall)
                {
                    bot.buildingPlacer.BuildInsideWall(WallIn);
                }
            }

            Set += NaturalDefenses();
            Set += RushDefenses();
            Set += ProtossBuildUtil.Pylons();
            Set += BuildReaperDefenseCannon();
            Set += BuildReaperRushDefense();
            Set += ProtossBuildUtil.Nexus(2, () => Count(UnitTypes.GATEWAY) > 0 && (!DelayNatural || Count(UnitTypes.STARGATE) > 0));
            Set += PowerPylons();
            Set += MainBuild();
        }