Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/binaries/data/mods/public/simulation/ai/petra/mapModule.js
Show First 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | m.createObstructionMap = function(gameState, accessIndex, template) | ||||
} | } | ||||
let map = new API3.Map(gameState.sharedScript, "passability", obstructionTiles); | let map = new API3.Map(gameState.sharedScript, "passability", obstructionTiles); | ||||
map.setMaxVal(255); | map.setMaxVal(255); | ||||
if (template && template.buildDistance()) | if (template && template.buildDistance()) | ||||
{ | { | ||||
let distance = template.buildDistance(); | let distance = template.buildDistance(); | ||||
let minDist = +distance.MinDistance; | let minDist = distance && distance.MinDistance ? +distance.MinDistance : 0; | ||||
if (minDist) | if (minDist) | ||||
{ | { | ||||
let obstructionRadius = template.obstructionRadius(); | |||||
if (obstructionRadius) | |||||
minDist -= obstructionRadius.min; | |||||
let fromClass = distance.FromClass; | let fromClass = distance.FromClass; | ||||
let cellSize = passabilityMap.cellSize; | let cellSize = passabilityMap.cellSize; | ||||
let cellDist = 1 + minDist / cellSize; | let cellDist = 1 + minDist / cellSize; | ||||
let structures = gameState.getOwnStructures().filter(API3.Filters.byClass(fromClass)); | let structures = gameState.getOwnStructures().filter(API3.Filters.byClass(fromClass)); | ||||
for (let ent of structures.values()) | for (let ent of structures.values()) | ||||
{ | { | ||||
if (!ent.position()) | if (!ent.position()) | ||||
continue; | continue; | ||||
▲ Show 20 Lines • Show All 116 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator