Ejemplo n.º 1
0
        public override void StartBuild(int frame)
        {
            base.StartBuild(frame);

            BuildOptions.StrictGasCount    = true;
            BuildOptions.StrictSupplyCount = true;
            BuildOptions.StrictWorkerCount = true;

            MacroData.DesiredUnitCounts[UnitTypes.TERRAN_SCV] = 15;

            var desiredUnitsClaim = new DesiredUnitsClaim(UnitTypes.TERRAN_REAPER, 1);

            if (MicroTaskData.MicroTasks.ContainsKey("DefenseSquadTask"))
            {
                var defenseSquadTask = (DefenseSquadTask)MicroTaskData.MicroTasks["DefenseSquadTask"];
                defenseSquadTask.DesiredUnitsClaims = new List <DesiredUnitsClaim> {
                    desiredUnitsClaim
                };
                defenseSquadTask.Enable();

                if (MicroTaskData.MicroTasks.ContainsKey("AttackTask"))
                {
                    MicroTaskData.MicroTasks["AttackTask"].ResetClaimedUnits();
                }
            }

            MicroTaskData.MicroTasks["ReaperCheese"] = ProxyTask;
            var proxyLocation = ProxyLocationService.GetCliffProxyLocation();

            MacroData.Proxies[ProxyTask.ProxyName] = new ProxyData(proxyLocation, MacroData);
            ProxyTask.Enable();

            AttackData.CustomAttackFunction = true;
            AttackData.UseAttackDataManager = false;
        }
Ejemplo n.º 2
0
        public override void StartBuild(int frame)
        {
            base.StartBuild(frame);

            BuildOptions.StrictGasCount    = true;
            BuildOptions.StrictSupplyCount = true;
            BuildOptions.StrictWorkerCount = true;

            MacroData.DesiredUnitCounts[UnitTypes.PROTOSS_PROBE] = 23;

            ChronoData.ChronodUnits = new HashSet <UnitTypes>
            {
                UnitTypes.PROTOSS_PROBE,
                UnitTypes.PROTOSS_VOIDRAY,
            };

            var desiredUnitsClaim = new DesiredUnitsClaim(UnitTypes.PROTOSS_STALKER, 1);

            if (MicroTaskData.MicroTasks.ContainsKey("DefenseSquadTask"))
            {
                var defenseSquadTask = (DefenseSquadTask)MicroTaskData.MicroTasks["DefenseSquadTask"];
                defenseSquadTask.DesiredUnitsClaims = new List <DesiredUnitsClaim> {
                    desiredUnitsClaim
                };
                defenseSquadTask.Enable();

                if (MicroTaskData.MicroTasks.ContainsKey("AttackTask"))
                {
                    MicroTaskData.MicroTasks["AttackTask"].ResetClaimedUnits();
                }
            }

            MicroTaskData.MicroTasks["ProxyVoidRay"] = ProxyTask;
            var proxyLocation = ProxyLocationService.GetCliffProxyLocation();

            MacroData.Proxies[ProxyTask.ProxyName] = new ProxyData(proxyLocation, MacroData);

            AttackData.CustomAttackFunction = true;
            AttackData.UseAttackDataManager = false;
        }
Ejemplo n.º 3
0
        private void SetLocations()
        {
            if (DefensiveLocation == null)
            {
                DefensiveLocation = ProxyLocationService.GetCliffProxyLocation();
                TargetLocation    = TargetingData.EnemyMainBasePoint;

                var angle = Math.Atan2(TargetLocation.Y - DefensiveLocation.Y, DefensiveLocation.X - TargetLocation.X);
                var x     = -6 * Math.Cos(angle);
                var y     = -6 * Math.Sin(angle);
                LoadingLocation = new Point2D {
                    X = DefensiveLocation.X + (float)x, Y = DefensiveLocation.Y - (float)y
                };
                LoadingLocationHeight = MapDataService.MapHeight(LoadingLocation);

                var loadingVector = new Vector2(LoadingLocation.X, LoadingLocation.Y);
                DropArea = AreaService.GetTargetArea(TargetLocation);
                var dropVector = DropArea.OrderBy(p => Vector2.DistanceSquared(new Vector2(p.X, p.Y), loadingVector)).First();
                x            = -2 * Math.Cos(angle);
                y            = -2 * Math.Sin(angle);
                DropLocation = new Point2D {
                    X = dropVector.X + (float)x, Y = dropVector.Y - (float)y
                };
                DropLocationHeight = MapDataService.MapHeight(DropLocation);

                InsideBaseDistanceSquared = Vector2.DistanceSquared(new Vector2(LoadingLocation.X, LoadingLocation.Y), new Vector2(TargetLocation.X, TargetLocation.Y));
            }
            DebugService.DrawSphere(new Point {
                X = LoadingLocation.X, Y = LoadingLocation.Y, Z = 12
            }, 3, new Color {
                R = 0, G = 0, B = 255
            });
            DebugService.DrawSphere(new Point {
                X = DropLocation.X, Y = DropLocation.Y, Z = 12
            }, 3, new Color {
                R = 0, G = 255, B = 0
            });
        }