Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/simulation/components/SkirmishReplacer.js
Show All 34 Lines | |||||
{ | { | ||||
var cmpPlayer = QueryOwnerInterface(this.entity); | var cmpPlayer = QueryOwnerInterface(this.entity); | ||||
var civ = cmpPlayer.GetCiv(); | var civ = cmpPlayer.GetCiv(); | ||||
var replacementEntities = getReplacementEntities(civ); | var replacementEntities = getReplacementEntities(civ); | ||||
var cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager); | var cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager); | ||||
var templateName = cmpTemplateManager.GetCurrentTemplateName(this.entity); | var templateName = cmpTemplateManager.GetCurrentTemplateName(this.entity); | ||||
let specialFilter = ""; | |||||
let specialFilterPos = templateName.lastIndexOf("|"); | |||||
if (specialFilterPos != -1) | |||||
{ | |||||
specialFilter = templateName.substr(0, specialFilterPos + 1); | |||||
templateName = templateName.substr(specialFilterPos); | |||||
} | |||||
if (templateName in replacementEntities) | if (templateName in replacementEntities) | ||||
templateName = replacementEntities[templateName]; | templateName = replacementEntities[templateName]; | ||||
else if (this.template && "general" in this.template) | else if (this.template && "general" in this.template) | ||||
templateName = this.template.general; | templateName = this.template.general; | ||||
else | else | ||||
templateName = ""; | templateName = ""; | ||||
if (!templateName || civ == "gaia") | if (!templateName || civ == "gaia") | ||||
{ | { | ||||
Engine.DestroyEntity(this.entity); | Engine.DestroyEntity(this.entity); | ||||
return; | return; | ||||
} | } | ||||
templateName = templateName.replace(/\{civ\}/g, civ); | templateName = specialFilter + templateName.replace(/\{civ\}/g, civ); | ||||
var cmpCurPosition = Engine.QueryInterface(this.entity, IID_Position); | var cmpCurPosition = Engine.QueryInterface(this.entity, IID_Position); | ||||
var replacement = Engine.AddEntity(templateName); | var replacement = Engine.AddEntity(templateName); | ||||
if (!replacement) | if (!replacement) | ||||
{ | { | ||||
Engine.DestroyEntity(this.entity); | Engine.DestroyEntity(this.entity); | ||||
return; | return; | ||||
} | } | ||||
Show All 34 Lines |
Wildfire Games · Phabricator