Differential D3243 Diff 16284 binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/RelicDuration.js
Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/RelicDuration.js
GameSettingControls.RelicDuration = class extends GameSettingControlSlider | GameSettingControls.RelicDuration = class extends GameSettingControlSlider | ||||
{ | { | ||||
constructor(...args) | constructor(...args) | ||||
{ | { | ||||
super(...args); | super(...args); | ||||
this.sprintfValue = {}; | this.sprintfValue = {}; | ||||
this.available = false; | this.available = false; | ||||
} | |||||
onMapChange(mapData) | |||||
{ | |||||
this.setEnabled(g_GameAttributes.mapType != "scenario"); | |||||
let mapValue; | |||||
if (mapData && | |||||
mapData.settings && | |||||
mapData.settings.VictoryConditions && | |||||
mapData.settings.VictoryConditions.indexOf(this.NameCaptureTheRelic) != -1 && | |||||
mapData.settings.RelicDuration !== undefined) | |||||
mapValue = mapData.settings.RelicDuration; | |||||
if (mapValue === undefined || mapValue == g_GameAttributes.settings.RelicDuration) | |||||
return; | |||||
if (!g_GameAttributes.settings.VictoryConditions) | |||||
g_GameAttributes.settings.VictoryConditions = []; | |||||
if (g_GameAttributes.settings.VictoryConditions.indexOf(this.NameCaptureTheRelic) == -1) | |||||
g_GameAttributes.settings.VictoryConditions.push(this.NameCaptureTheRelic); | |||||
g_GameAttributes.settings.RelicDuration = mapValue; | g_NewGameSettings.relic.watch(() => this.render(), ["duration", "available"]); | ||||
this.gameSettingsControl.updateGameAttributes(); | g_NewGameSettings.map.watch(() => this.render(), ["type"]); | ||||
this.render(); | |||||
} | } | ||||
onGameAttributesChange() | render() | ||||
{ | { | ||||
if (!g_GameAttributes.settings.VictoryConditions) | this.setHidden(!g_NewGameSettings.relic.available); | ||||
return; | this.setEnabled(g_NewGameSettings.map.type != "scenario"); | ||||
this.available = g_GameAttributes.settings.VictoryConditions.indexOf(this.NameCaptureTheRelic) != -1; | if (g_NewGameSettings.relic.available) | ||||
if (this.available) | |||||
{ | |||||
if (g_GameAttributes.settings.RelicDuration === undefined) | |||||
{ | |||||
g_GameAttributes.settings.RelicDuration = this.DefaultValue; | |||||
this.gameSettingsControl.updateGameAttributes(); | |||||
} | |||||
} | |||||
else if (g_GameAttributes.settings.RelicDuration !== undefined) | |||||
{ | { | ||||
delete g_GameAttributes.settings.RelicDuration; | let value = g_NewGameSettings.relic.duration; | ||||
this.gameSettingsControl.updateGameAttributes(); | |||||
} | |||||
} | |||||
onGameAttributesBatchChange() | |||||
{ | |||||
this.setHidden(!this.available); | |||||
if (this.available) | |||||
{ | |||||
let value = Math.round(g_GameAttributes.settings.RelicDuration); | |||||
this.sprintfValue.min = value; | this.sprintfValue.min = value; | ||||
this.setSelectedValue( | this.setSelectedValue( | ||||
g_GameAttributes.settings.RelicDuration, | g_NewGameSettings.relic.duration, | ||||
value == 0 ? this.InstantVictory : sprintf(this.CaptionVictoryTime(value), this.sprintfValue)); | value == 0 ? this.InstantVictory : sprintf(this.CaptionVictoryTime(value), this.sprintfValue)); | ||||
} | } | ||||
} | } | ||||
onValueChange(value) | onValueChange(value) | ||||
{ | { | ||||
g_GameAttributes.settings.RelicDuration = value; | g_NewGameSettings.relic.setDuration(value); | ||||
this.gameSettingsControl.updateGameAttributes(); | |||||
this.gameSettingsControl.setNetworkGameAttributes(); | this.gameSettingsControl.setNetworkGameAttributes(); | ||||
} | } | ||||
onGameAttributesFinalize() | |||||
{ | |||||
if (this.available) | |||||
g_GameAttributes.settings.RelicDuration = Math.round(g_GameAttributes.settings.RelicDuration); | |||||
} | |||||
}; | }; | ||||
GameSettingControls.RelicDuration.prototype.TitleCaption = | GameSettingControls.RelicDuration.prototype.TitleCaption = | ||||
translate("Relic Duration"); | translate("Relic Duration"); | ||||
GameSettingControls.RelicDuration.prototype.Tooltip = | GameSettingControls.RelicDuration.prototype.Tooltip = | ||||
translate("Minutes until the player has achieved Relic Victory."); | translate("Minutes until the player has achieved Relic Victory."); | ||||
GameSettingControls.RelicDuration.prototype.NameCaptureTheRelic = | GameSettingControls.RelicDuration.prototype.NameCaptureTheRelic = | ||||
"capture_the_relic"; | "capture_the_relic"; | ||||
GameSettingControls.RelicDuration.prototype.CaptionVictoryTime = | GameSettingControls.RelicDuration.prototype.CaptionVictoryTime = | ||||
min => translatePluralWithContext("victory duration", "%(min)s minute", "%(min)s minutes", min); | min => translatePluralWithContext("victory duration", "%(min)s minute", "%(min)s minutes", min); | ||||
GameSettingControls.RelicDuration.prototype.InstantVictory = | GameSettingControls.RelicDuration.prototype.InstantVictory = | ||||
translateWithContext("victory duration", "Immediate Victory."); | translateWithContext("victory duration", "Immediate Victory."); | ||||
GameSettingControls.RelicDuration.prototype.MinValue = 0; | GameSettingControls.RelicDuration.prototype.MinValue = 0; | ||||
GameSettingControls.RelicDuration.prototype.MaxValue = 60; | GameSettingControls.RelicDuration.prototype.MaxValue = 60; | ||||
GameSettingControls.RelicDuration.prototype.DefaultValue = 20; |
Wildfire Games · Phabricator