Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/simulation/components/GuiInterface.js
Show First 20 Lines • Show All 551 Lines • ▼ Show 20 Lines | GuiInterface.prototype.GetTemplateData = function(player, templateName) | ||||
let auraNames = template.Auras._string.split(/\s+/); | let auraNames = template.Auras._string.split(/\s+/); | ||||
for (let name of auraNames) | for (let name of auraNames) | ||||
aurasTemplate[name] = AuraTemplates.Get(name); | aurasTemplate[name] = AuraTemplates.Get(name); | ||||
return GetTemplateDataHelper(template, player, aurasTemplate, Resources); | return GetTemplateDataHelper(template, player, aurasTemplate, Resources); | ||||
}; | }; | ||||
/* | |||||
* Calculate and pass the data of a group. | |||||
* @param {number} player - The entityID of the player to check for. | |||||
* @param {object} group - The group to check. | |||||
* @return {object} - A object with e.g. maximum tech-requirements, resource costs etc. | |||||
*/ | |||||
GuiInterface.prototype.GetGroupTemplateData = function(player, templateName) | |||||
{ | |||||
let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager); | |||||
let template = cmpTemplateManager.GetTemplate(templateName); | |||||
if (!template || !template.Identity || | |||||
!template.Identity.Composition || !template.Identity.Composition.Entries) | |||||
return null; | |||||
let ret = { | |||||
"Name": template.Identity.GenericName, | |||||
"Tooltip": template.Identity.Tooltip, | |||||
"MutuallyExclusive": template.Identity.Composition.MutuallyExclusive, | |||||
"Icon": template.Identity.Icon, | |||||
"Entries" : {} | |||||
}; | |||||
for (let entry in template.Identity.Composition.Entries) | |||||
ret.Entries[entry] = { | |||||
"data": template.Identity.Composition.Entries[entry], | |||||
"templateData": this.GetTemplateData(player, template.Identity.Composition.Entries[entry].Template) | |||||
}; | |||||
warn(uneval(GetTemplateDataHelper(template, player, {}, Resources) )); | |||||
return ret; | |||||
/* | |||||
getTrainingStatus on selection_panels.js? | |||||
let maxNeededResources = "ToDo"; | |||||
let maxAmount = 0; | |||||
let limits = "ToDo"; | |||||
let requiredTechs = []; | |||||
let entriesToRecruit = Object.keys(group.Entries); | |||||
let weightedListOfTemplates = []; | |||||
let recruitableTemplates = []; | |||||
for (let entry in entriesToRecruit) | |||||
{ | |||||
let template = GetTemplateDataHelper(group.Entries[entry]) | |||||
requiredTechs.push(template.requiredTechnology); | |||||
recruitableTemplates.push(group.Entries[entry].data.Template); | |||||
// Limits | |||||
} | |||||
if (group.MutuallyExclusive && entriesToRecruit.length > 1) | |||||
{ | |||||
for (let entry in entriesToRecruit) | |||||
{ | |||||
let template = GetTemplateDataHelper(group.Entries[entry]) | |||||
let entTemplateName = group.Entries[entry].data.Template; | |||||
maxAmount = Math.max(+(group.Entries[entry].data.Amount || 1), maxAmount); | |||||
// Resources | |||||
// Construct something of a weighted list. | |||||
let chance = +(group.Entries[entry].data.Chance || 1); | |||||
for (let i = 0; i < chance; i++) | |||||
weightedListOfTemplates.push(entTemplateName); | |||||
} | |||||
} | |||||
else | |||||
for (let entry in entriesToRecruit) | |||||
{ | |||||
let template = GetTemplateDataHelper(group.Entries[entry]) | |||||
let entTemplateName = group.Entries[entry].data.Template; | |||||
maxAmount += +(group.Entries[entry].data.Amount || 1); | |||||
} | |||||
data = { | |||||
"GenericName": group.GenericName, | |||||
"SpecificName": group.SpecificName, | |||||
"Tooltip": group.Tooltip, | |||||
"technologies": requiredTechs, | |||||
"resources": maxNeededResources, | |||||
"maxAmount": maxAmount, | |||||
"icon": group.Icon, | |||||
"weightedListOfTemplates": weightedListOfTemplates, | |||||
"recruitableTemplates": recruitableTemplates | |||||
}; | |||||
warn(uneval(data)); | |||||
return data; | |||||
*/ | |||||
}; | |||||
GuiInterface.prototype.IsTechnologyResearched = function(player, data) | GuiInterface.prototype.IsTechnologyResearched = function(player, data) | ||||
{ | { | ||||
if (!data.tech) | if (!data.tech) | ||||
return true; | return true; | ||||
let cmpTechnologyManager = QueryPlayerIDInterface(data.player || player, IID_TechnologyManager); | let cmpTechnologyManager = QueryPlayerIDInterface(data.player || player, IID_TechnologyManager); | ||||
if (!cmpTechnologyManager) | if (!cmpTechnologyManager) | ||||
▲ Show 20 Lines • Show All 1,413 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator