Differential D3243 Diff 16284 binaries/data/mods/public/gui/gamesettings/attributes/StartingResources.js
Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/gamesettings/attributes/StartingResources.js
- This file was added.
/** | |||||
* TODO: There should be a dialog allowing to specify starting resources per player | |||||
*/ | |||||
GameSettings.prototype.Attributes.StartingResources = class extends GameSetting | |||||
{ | |||||
Init() | |||||
{ | |||||
this.perPlayer = undefined; | |||||
this.setResources(g_StartingResources.Resources[g_StartingResources.Default]); | |||||
this.settings.map.watch(() => this.onMapChange(), ["map"]); | |||||
} | |||||
LegacySerialize(attribs) | |||||
{ | |||||
if (this.perPlayer) | |||||
{ | |||||
if (!attribs.settings.PlayerData) | |||||
attribs.settings.PlayerData = []; | |||||
while (attribs.settings.PlayerData.length < this.perPlayer.length) | |||||
attribs.settings.PlayerData.push({}); | |||||
for (let i in this.perPlayer) | |||||
if (this.perPlayer[i]) | |||||
attribs.settings.PlayerData[i].Resources = this.perPlayer[i]; | |||||
} | |||||
attribs.settings.StartingResources = this.resources; | |||||
} | |||||
LegacyDeserialize(attribs) | |||||
{ | |||||
if (this.getLegacySetting(attribs, "StartingResources") !== undefined) | |||||
this.setResources(this.getLegacySetting(attribs, "StartingResources")); | |||||
} | |||||
onMapChange() | |||||
{ | |||||
this.perPlayer = undefined; | |||||
if (this.settings.map.type != "scenario") | |||||
return; | |||||
if (!!this.getMapSetting("PlayerData") && | |||||
this.getMapSetting("PlayerData").some(data => data.Resources)) | |||||
this.perPlayer = this.getMapSetting("PlayerData").map(data => data.Resources || undefined); | |||||
else if (!this.getMapSetting("StartingResources")) | |||||
this.setResources(g_StartingResources.Resources[g_StartingResources.Default]); | |||||
else | |||||
this.setResources(this.getMapSetting("StartingResources")); | |||||
} | |||||
setResources(res) | |||||
{ | |||||
this.resources = res; | |||||
} | |||||
}; |
Wildfire Games · Phabricator