1
0
forked from 0ad/0ad

additional fix for inefficient EC, thanks to Yves for noticing

This was SVN commit r16028.
This commit is contained in:
mimo 2014-12-07 22:19:59 +00:00
parent 3e09cf4797
commit 6a785f791a

View File

@ -208,19 +208,19 @@ m.DefenseManager.prototype.checkEnemyArmies = function(gameState, events)
// army in neutral territory // TODO check smaller distance with all our buildings instead of only ccs with big distance
var stillDangerous = false;
if (this.Config.personality.cooperative > 0.3)
var bases = gameState.getAllyEntities().filter(API3.Filters.byClass("CivCentre")).toEntityArray();
else
var bases = gameState.getOwnStructures().filter(API3.Filters.byClass("CivCentre")).toEntityArray();
for (var i in bases)
let bases = gameState.updatingGlobalCollection("allCCs", API3.Filters.byClass("CivCentre")).toEntityArray();
for (let base of bases)
{
if (API3.SquareVectorDistance(bases[i].position(), army.foePosition) < 40000)
{
if(this.Config.debug > 1)
API3.warn("army in neutral territory, but still near one of our CC");
stillDangerous = true;
break;
}
if (!gameState.isEntityAlly(base))
continue;
if (this.Config.personality.cooperative < 0.3 && !gameState.isEntityOwn(base))
continue;
if (API3.SquareVectorDistance(base.position(), army.foePosition) > 40000)
continue;
if(this.Config.debug > 1)
API3.warn("army in neutral territory, but still near one of our CC");
stillDangerous = true;
break;
}
if (stillDangerous)
continue;