Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/maps/scripts/TriggerHelper.js
Show First 20 Lines • Show All 152 Lines • ▼ Show 20 Lines | TriggerHelper.EntityHasClass = function(entity, classname) | ||||
let cmpIdentity = Engine.QueryInterface(entity, IID_Identity); | let cmpIdentity = Engine.QueryInterface(entity, IID_Identity); | ||||
if (!cmpIdentity) | if (!cmpIdentity) | ||||
return false; | return false; | ||||
let classes = cmpIdentity.GetClassesList(); | let classes = cmpIdentity.GetClassesList(); | ||||
return classes && classes.indexOf(classname) != -1; | return classes && classes.indexOf(classname) != -1; | ||||
}; | }; | ||||
/** | |||||
* Return valid gaia-owned spawn points on land in neutral territory. | |||||
* If there are none, use those available in player-owned territory. | |||||
*/ | |||||
TriggerHelper.GetLandSpawnPoints = function() | |||||
{ | |||||
let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager); | |||||
let cmpWaterManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_WaterManager); | |||||
let cmpTerritoryManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager); | |||||
let cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); | |||||
let potentialNonNeutralSpawnPoints = []; | |||||
elexis: removing the potential | |||||
let potentialNeutralSpawnPoints = []; | |||||
for (let ent of cmpRangeManager.GetEntitiesByPlayer(0)) | |||||
{ | |||||
let cmpIdentity = Engine.QueryInterface(ent, IID_Identity); | |||||
let cmpPosition = Engine.QueryInterface(ent, IID_Position); | |||||
if (!cmpIdentity || !cmpPosition || !cmpPosition.IsInWorld()) | |||||
continue; | |||||
let templateName = cmpTemplateManager.GetCurrentTemplateName(ent); | |||||
if (!templateName) | |||||
continue; | |||||
let template = cmpTemplateManager.GetTemplate(templateName); | |||||
if (!template || template.UnitMotionFlying) | |||||
continue; | |||||
let pos = cmpPosition.GetPosition(); | |||||
if (pos.y <= cmpWaterManager.GetWaterLevel(pos.x, pos.z)) | |||||
continue; | |||||
if (cmpTerritoryManager.GetOwner(pos.x, pos.z) != 0) | |||||
elexisUnsubmitted Not Done Inline Actionsinverting, so that it's more straight forward to read elexis: inverting, so that it's more straight forward to read | |||||
potentialNonNeutralSpawnPoints.push(ent); | |||||
else | |||||
potentialNeutralSpawnPoints.push(ent); | |||||
} | |||||
return potentialNeutralSpawnPoints.length ? potentialNeutralSpawnPoints : potentialNonNeutralSpawnPoints; | |||||
}; | |||||
Engine.RegisterGlobal("TriggerHelper", TriggerHelper); | Engine.RegisterGlobal("TriggerHelper", TriggerHelper); |
Wildfire Games · Phabricator
removing the potential