Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/binaries/data/mods/public/simulation/ai/petra/entityExtend.js
Show First 20 Lines • Show All 294 Lines • ▼ Show 20 Lines | m.isNotWorthBuilding = function(gameState, ent) | ||||
{ | { | ||||
let buildTerritories = ent.buildTerritories(); | let buildTerritories = ent.buildTerritories(); | ||||
if (buildTerritories && (!buildTerritories.length || (buildTerritories.length === 1 && buildTerritories[0] === "own"))) | if (buildTerritories && (!buildTerritories.length || (buildTerritories.length === 1 && buildTerritories[0] === "own"))) | ||||
return true; | return true; | ||||
} | } | ||||
return false; | return false; | ||||
}; | }; | ||||
/** | |||||
* Check if the straight line between the two positions crosses an enemy territory | |||||
*/ | |||||
m.isLineInsideEnemyTerritory = function(gameState, pos1, pos2, step=70) | |||||
{ | |||||
let dist = Math.sqrt(API3.SquareVectorDistance(pos1, pos2)); | |||||
let n = Math.floor(Math.sqrt(API3.SquareVectorDistance(pos1, pos2))/step) + 1; | |||||
let stepx = (pos2[0] - pos1[0]) / n; | |||||
let stepy = (pos2[1] - pos1[1]) / n; | |||||
for (let i = 1; i < n; ++i) | |||||
{ | |||||
let owner = gameState.ai.HQ.territoryMap.getOwner([pos1[0]+i*stepx, pos1[1]+i*stepy]); | |||||
if (owner && gameState.isPlayerEnemy(owner)) | |||||
return true; | |||||
} | |||||
return false; | |||||
}; | |||||
m.dumpEntity = function(ent) | m.dumpEntity = function(ent) | ||||
{ | { | ||||
if (!ent) | if (!ent) | ||||
return; | return; | ||||
API3.warn(" >>> id " + ent.id() + " name " + ent.genericName() + " pos " + ent.position() + | API3.warn(" >>> id " + ent.id() + " name " + ent.genericName() + " pos " + ent.position() + | ||||
" state " + ent.unitAIState()); | " state " + ent.unitAIState()); | ||||
API3.warn(" base " + ent.getMetadata(PlayerID, "base") + " >>> role " + ent.getMetadata(PlayerID, "role") + | API3.warn(" base " + ent.getMetadata(PlayerID, "base") + " >>> role " + ent.getMetadata(PlayerID, "role") + | ||||
" subrole " + ent.getMetadata(PlayerID, "subrole")); | " subrole " + ent.getMetadata(PlayerID, "subrole")); | ||||
Show All 10 Lines |
Wildfire Games · Phabricator