Differential D2483 Diff 10834 binaries/data/mods/public/gui/gamesetup/GameSettings/Single/Dropdowns/RelicDuration.js
Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/gamesetup/GameSettings/Single/Dropdowns/RelicDuration.js
- This file was added.
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
// Notice that this now deletes RelicDuration if Relic mode is not enabled | |||||
GameSettingControls.RelicDuration = class extends GameSettingControlDropdown | |||||
{ | |||||
constructor(...args) | |||||
{ | |||||
super(...args); | |||||
this.dropdown.list = g_VictoryDurations.Title; | |||||
this.dropdown.list_data = g_VictoryDurations.Duration; | |||||
} | |||||
onMapChange(mapData) | |||||
{ | |||||
this.setEnabled(g_GameAttributes.mapType != "scenario"); | |||||
let mapValue = | |||||
mapData && | |||||
mapData.settings && | |||||
mapData.settings.VictoryConditions && | |||||
mapData.settings.VictoryConditions.indexOf(this.NameCaptureTheRelic) != -1 && | |||||
mapData.settings.RelicDuration || undefined; | |||||
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; | |||||
this.gameSettingsControl.updateGameAttributes(); | |||||
} | |||||
onGameAttributesChange() | |||||
{ | |||||
if (!g_GameAttributes.settings.VictoryConditions) | |||||
return; | |||||
let available = g_GameAttributes.settings.VictoryConditions.indexOf(this.NameCaptureTheRelic) != -1; | |||||
this.setHidden(!available); | |||||
if (available) | |||||
{ | |||||
if (g_GameAttributes.settings.RelicDuration === undefined) | |||||
{ | |||||
g_GameAttributes.settings.RelicDuration = g_VictoryDurations.Duration[g_VictoryDurations.Default]; | |||||
this.gameSettingsControl.updateGameAttributes(); | |||||
} | |||||
this.setSelectedValue(g_GameAttributes.settings.RelicDuration); | |||||
} | |||||
else if (g_GameAttributes.settings.RelicDuration !== undefined) | |||||
{ | |||||
delete g_GameAttributes.settings.RelicDuration; | |||||
this.gameSettingsControl.updateGameAttributes(); | |||||
} | |||||
} | |||||
onSelectionChange(itemIdx) | |||||
{ | |||||
g_GameAttributes.settings.RelicDuration = g_VictoryDurations.Duration[itemIdx]; | |||||
this.gameSettingsControl.updateGameAttributes(); | |||||
this.gameSettingsControl.setNetworkGameAttributes(); | |||||
} | |||||
}; | |||||
GameSettingControls.RelicDuration.prototype.TitleCaption = | |||||
translate("Relic Duration"); | |||||
GameSettingControls.RelicDuration.prototype.Tooltip = | |||||
translate("Minutes until the player has achieved Relic Victory."); | |||||
GameSettingControls.RelicDuration.prototype.NameCaptureTheRelic = | |||||
"capture_the_relic"; |
Wildfire Games · Phabricator