Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/simulation/components/TechnologyManager.js
Show First 20 Lines • Show All 206 Lines • ▼ Show 20 Lines | TechnologyManager.prototype.OnGlobalOwnershipChanged = function(msg) | ||||
} | } | ||||
}; | }; | ||||
// Marks a technology as researched. Note that this does not verify that the requirements are met. | // Marks a technology as researched. Note that this does not verify that the requirements are met. | ||||
TechnologyManager.prototype.ResearchTechnology = function(tech) | TechnologyManager.prototype.ResearchTechnology = function(tech) | ||||
{ | { | ||||
this.StoppedResearch(tech, false); | this.StoppedResearch(tech, false); | ||||
var modifiedComponents = {}; | let modifiedComponents = {}; | ||||
this.researchedTechs.add(tech); | this.researchedTechs.add(tech); | ||||
// store the modifications in an easy to access structure | // Store the modifications in an easy to access structure. | ||||
let template = TechnologyTemplates.Get(tech); | let template = TechnologyTemplates.Get(tech); | ||||
if (template.modifications) | if (template.modifications) | ||||
{ | { | ||||
let cmpModifiersManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ModifiersManager); | let cmpModifiersManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_ModifiersManager); | ||||
cmpModifiersManager.AddModifiers("tech/" + tech, DeriveModificationsFromTech(template), this.entity); | cmpModifiersManager.AddModifiers("tech/" + tech, DeriveModificationsFromTech(template), this.entity); | ||||
} | } | ||||
if (template.replaces && template.replaces.length > 0) | if (template.replaces && template.replaces.length > 0) | ||||
{ | { | ||||
for (var i of template.replaces) | for (var i of template.replaces) | ||||
Silier: when you started with var->let :) | |||||
{ | { | ||||
if (!i || this.IsTechnologyResearched(i)) | if (!i || this.IsTechnologyResearched(i)) | ||||
continue; | continue; | ||||
this.researchedTechs.add(i); | this.researchedTechs.add(i); | ||||
// Change the EntityLimit if any | // Change the EntityLimit if any | ||||
let cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); | let cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); | ||||
if (cmpPlayer && cmpPlayer.GetPlayerID() !== undefined) | if (cmpPlayer && cmpPlayer.GetPlayerID() !== undefined) | ||||
{ | { | ||||
let playerID = cmpPlayer.GetPlayerID(); | let playerID = cmpPlayer.GetPlayerID(); | ||||
let cmpPlayerEntityLimits = QueryPlayerIDInterface(playerID, IID_EntityLimits); | let cmpPlayerEntityLimits = QueryPlayerIDInterface(playerID, IID_EntityLimits); | ||||
if (cmpPlayerEntityLimits) | if (cmpPlayerEntityLimits) | ||||
cmpPlayerEntityLimits.UpdateLimitsFromTech(i); | cmpPlayerEntityLimits.UpdateLimitsFromTech(i); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
this.UpdateAutoResearch(); | this.UpdateAutoResearch(); | ||||
var cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); | let cmpPlayer = Engine.QueryInterface(this.entity, IID_Player); | ||||
if (!cmpPlayer || cmpPlayer.GetPlayerID() === undefined) | if (!cmpPlayer || cmpPlayer.GetPlayerID() === undefined) | ||||
return; | return; | ||||
var playerID = cmpPlayer.GetPlayerID(); | let playerID = cmpPlayer.GetPlayerID(); | ||||
var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); | |||||
var ents = cmpRangeManager.GetEntitiesByPlayer(playerID); | |||||
ents.push(this.entity); | |||||
// Change the EntityLimit if any | // Change the EntityLimit if any. | ||||
var cmpPlayerEntityLimits = QueryPlayerIDInterface(playerID, IID_EntityLimits); | let cmpPlayerEntityLimits = QueryPlayerIDInterface(playerID, IID_EntityLimits); | ||||
if (cmpPlayerEntityLimits) | if (cmpPlayerEntityLimits) | ||||
cmpPlayerEntityLimits.UpdateLimitsFromTech(tech); | cmpPlayerEntityLimits.UpdateLimitsFromTech(tech); | ||||
// Always send research finished message. | // Always send research finished message. | ||||
Engine.PostMessage(this.entity, MT_ResearchFinished, { "player": playerID, "tech": tech }); | Engine.PostMessage(this.entity, MT_ResearchFinished, { "player": playerID, "tech": tech }); | ||||
if (tech.startsWith("phase") && !template.autoResearch) | if (tech.startsWith("phase") && !template.autoResearch) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 108 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator
when you started with var->let :)