Esempio n. 1
0
 private void RemoveWorkerFromHarvestAssignments(ProxyStarcraft.Unit unit)
 {
     foreach (var pair in workersByMineralDeposit)
     {
         if (pair.Value.Contains(unit.Tag))
         {
             pair.Value.Remove(unit.Tag);
         }
     }
 }
        private static ProxyStarcraft.Unit GetTarget(ProxyStarcraft.Unit unit, GameState gameState)
        {
            // Only valid for units with exactly one weapon
            var range = gameState.UnitTypes[unit.Raw.UnitType].Weapons[0].Range;

            ProxyStarcraft.Unit target = null;

            foreach (var enemyUnit in gameState.EnemyUnits)
            {
                var distance = unit.GetDistance(enemyUnit);
                if (distance < range)
                {
                    if (target == null ||
                        enemyUnit.Raw.Health < target.Raw.Health ||
                        (enemyUnit.Raw.Health == target.Raw.Health && distance < unit.GetDistance(target)))
                    {
                        target = enemyUnit;
                    }
                }
            }

            return(target);
        }