Replace CPos.CenterPosition -> Map.CenterOfCell.

This commit is contained in:
Paul Chote
2013-09-17 22:27:19 +12:00
parent b6d1d26eeb
commit 7b52fa52b6
48 changed files with 105 additions and 90 deletions

View File

@@ -348,7 +348,7 @@ namespace OpenRA.Mods.RA.AI
for (var k = MaxBaseDistance; k >= 0; k--)
{
var tlist = Map.FindTilesInCircle(center, k)
.OrderBy(a => (a.CenterPosition - pos).LengthSquared);
.OrderBy(a => (world.Map.CenterOfCell(a) - pos).LengthSquared);
foreach (var t in tlist)
if (world.CanPlaceBuilding(actorType, bi, t, null))
@@ -360,10 +360,11 @@ namespace OpenRA.Mods.RA.AI
return null;
};
var baseCenterPos = world.Map.CenterOfCell(baseCenter);
switch (type)
{
case BuildingType.Defense:
var enemyBase = FindEnemyBuildingClosestToPos(baseCenter.CenterPosition);
var enemyBase = FindEnemyBuildingClosestToPos(baseCenterPos);
return enemyBase != null ? findPos(enemyBase.CenterPosition, defenseCenter) : null;
case BuildingType.Refinery:
@@ -371,11 +372,12 @@ namespace OpenRA.Mods.RA.AI
.Where(a => resourceTypeIndices.Contains(Map.GetTerrainIndex(new CPos(a.X, a.Y))));
if (tilesPos.Any())
{
var pos = tilesPos.MinBy(a => (a.CenterPosition - baseCenter.CenterPosition).LengthSquared);
return findPos(pos.CenterPosition, baseCenter);
var pos = tilesPos.MinBy(a => (world.Map.CenterOfCell(a) - baseCenterPos).LengthSquared);
return findPos(world.Map.CenterOfCell(pos), baseCenter);
}
return null;
case BuildingType.Building:
for (var k = 0; k < maxBaseDistance; k++)
{
@@ -441,7 +443,7 @@ namespace OpenRA.Mods.RA.AI
// Pick something worth attacking owned by that player
var target = world.Actors
.Where(a => a.Owner == enemy && a.HasTrait<IOccupySpace>())
.ClosestTo(baseCenter.CenterPosition);
.ClosestTo(world.Map.CenterOfCell(baseCenter));
if (target == null)
{
@@ -661,7 +663,7 @@ namespace OpenRA.Mods.RA.AI
if (!protectSq.IsValid)
{
var ownUnits = world.FindActorsInCircle(baseCenter.CenterPosition, WRange.FromCells(Info.ProtectUnitScanRadius))
var ownUnits = world.FindActorsInCircle(world.Map.CenterOfCell(baseCenter), WRange.FromCells(Info.ProtectUnitScanRadius))
.Where(unit => unit.Owner == p && !unit.HasTrait<Building>()
&& unit.HasTrait<AttackBase>()).ToList();
@@ -790,8 +792,8 @@ namespace OpenRA.Mods.RA.AI
{
for (var j = 0; j < y; j += radiusOfPower * 2)
{
var pos = new CPos(i, j);
var targets = world.FindActorsInCircle(pos.CenterPosition, WRange.FromCells(radiusOfPower)).ToList();
var pos = world.Map.CenterOfCell(new CPos(i, j));
var targets = world.FindActorsInCircle(pos, WRange.FromCells(radiusOfPower)).ToList();
var enemies = targets.Where(unit => p.Stances[unit.Owner] == Stance.Enemy).ToList();
var ally = targets.Where(unit => p.Stances[unit.Owner] == Stance.Ally || unit.Owner == p).ToList();