1
0
forked from 0ad/0ad

Fix AI's handling of buildRestriction distances following d0fc8ff67d

d0fc8ff67d / D2759 make buildRestriction distances take obstruction
sizes into account.
This requires AI adjustment, which wasn't done then.

Differential Revision: https://code.wildfiregames.com/D3364
This was SVN commit r24643.
This commit is contained in:
wraitii 2021-01-16 10:41:59 +00:00
parent e2ff38453f
commit 7f1ee23d88

View File

@ -90,10 +90,9 @@ PETRA.createObstructionMap = function(gameState, accessIndex, template)
{
let obstructionRadius = template.obstructionRadius();
if (obstructionRadius)
minDist -= obstructionRadius.min;
minDist += obstructionRadius.max;
let fromClass = distance.FromClass;
let cellSize = passabilityMap.cellSize;
let cellDist = 1 + minDist / cellSize;
let structures = gameState.getOwnStructures().filter(API3.Filters.byClass(fromClass));
for (let ent of structures.values())
{
@ -102,7 +101,9 @@ PETRA.createObstructionMap = function(gameState, accessIndex, template)
let pos = ent.position();
let x = Math.round(pos[0] / cellSize);
let z = Math.round(pos[1] / cellSize);
map.addInfluence(x, z, cellDist, -255, "constant");
let entRadius = ent.obstructionRadius();
let dist = 1 + (minDist + (entRadius ? entRadius.max : 0)) / cellSize;
map.addInfluence(x, z, dist, -255, "constant");
}
}
}