much better ai bases

This commit is contained in:
Chris Forbes
2010-08-11 20:19:38 +12:00
committed by alzeih
parent cf9a2ee0ef
commit 19494c3262

View File

@@ -24,14 +24,10 @@ namespace OpenRA.Mods.RA
{ "barr", .05f }, { "barr", .05f },
{ "tent", .05f }, { "tent", .05f },
{ "weap", .05f }, { "weap", .05f },
{ "pbox", .1f },
{ "ftur", .1f },
{ "gun", .1f },
{ "atek", .01f }, { "atek", .01f },
{ "stek", .01f }, { "stek", .01f },
{ "silo", .05f }, { "silo", .05f },
{ "tsla", .1f }, { "fix", .01f },
{ "agun", .1f },
{ "hpad", .01f }, { "hpad", .01f },
{ "afld", .01f }, { "afld", .01f },
{ "dome", .01f }, { "dome", .01f },
@@ -46,6 +42,8 @@ namespace OpenRA.Mods.RA
int lastThinkTick = 0; int lastThinkTick = 0;
const int MaxBaseDistance = 15;
BuildState state = BuildState.WaitForFeedback; BuildState state = BuildState.WaitForFeedback;
public void GameStarted(World w) public void GameStarted(World w)
@@ -100,14 +98,11 @@ namespace OpenRA.Mods.RA
{ {
var bi = Rules.Info[item.Item].Traits.Get<BuildingInfo>(); var bi = Rules.Info[item.Item].Traits.Get<BuildingInfo>();
for( var i = -10; i < 10; i++ ) // fail distribution! for (var k = 0; k < MaxBaseDistance; k++)
for (var j = -10; j < 10; j++) foreach (var t in Game.world.FindTilesInCircle(baseCenter, k))
{ if (Game.world.CanPlaceBuilding(item.Item, bi, t, null))
var topleft = baseCenter + new int2(i,j); if (Game.world.IsCloseEnoughToBase(p, item.Item, bi, t))
if (Game.world.CanPlaceBuilding(item.Item, bi, topleft, null)) return t;
if (Game.world.IsCloseEnoughToBase(p, item.Item, bi, topleft))
return topleft;
}
return null; // i don't know where to put it. return null; // i don't know where to put it.
} }