Differential D3243 Diff 16276 binaries/data/mods/public/gui/gamesettings/attributes/TriggerScripts.js
Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/gamesettings/attributes/TriggerScripts.js
- This file was added.
GameSettings.prototype.Attributes.TriggerScripts = class extends GameSetting | |||||
{ | |||||
Init() | |||||
{ | |||||
this.victory = new Set(); | |||||
this.map = new Set(); | |||||
this.settings.map.watch(() => this.updateMapScripts(), ["map"]); | |||||
this.settings.victoryConditions.watch(() => this.updateVictoryScripts(), ["active"]); | |||||
} | |||||
LegacySerialize(attribs) | |||||
{ | |||||
attribs.settings.TriggerScripts = Array.from(this.victory).concat(Array.from(this.map)); | |||||
} | |||||
updateVictoryScripts() | |||||
{ | |||||
let setting = this.settings.victoryConditions; | |||||
let scripts = new Set(); | |||||
for (let cond of setting.active) | |||||
setting.conditions[cond].Scripts.forEach(script => scripts.add(script)); | |||||
this.victory = scripts; | |||||
} | |||||
updateMapScripts() | |||||
{ | |||||
if (!this.settings.map.data || !this.settings.map.data.settings || | |||||
!this.settings.map.data.settings.TriggerScripts) | |||||
{ | |||||
this.map = new Set(); | |||||
return; | |||||
} | |||||
this.map = new Set(this.settings.map.data.settings.TriggerScripts); | |||||
} | |||||
}; |
Wildfire Games · Phabricator