Differential D3243 Diff 16556 ps/trunk/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Rating.js
Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Checkboxes/Rating.js
GameSettingControls.Rating = class extends GameSettingControlCheckbox | GameSettingControls.Rating = class Rating extends GameSettingControlCheckbox | ||||
{ | { | ||||
constructor(...args) | constructor(...args) | ||||
{ | { | ||||
super(...args); | super(...args); | ||||
this.hasXmppClient = Engine.HasXmppClient(); | // The availability of rated games is not a GUI concern, unlike most other | ||||
this.available = false; | // potentially available settings. | ||||
g_GameSettings.rating.watch(() => this.render(), ["enabled", "available"]); | |||||
this.render(); | |||||
} | } | ||||
onGameAttributesChange() | render() | ||||
{ | { | ||||
this.available = this.hasXmppClient && g_GameAttributes.settings.PlayerData.length == 2; | this.setHidden(!g_GameSettings.rating.available); | ||||
if (this.available) | this.setChecked(g_GameSettings.rating.enabled); | ||||
{ | |||||
if (g_GameAttributes.settings.RatingEnabled === undefined) | |||||
{ | |||||
g_GameAttributes.settings.RatingEnabled = true; | |||||
this.gameSettingsControl.updateGameAttributes(); | |||||
} | |||||
} | |||||
else if (g_GameAttributes.settings.RatingEnabled !== undefined) | |||||
{ | |||||
delete g_GameAttributes.settings.RatingEnabled; | |||||
this.gameSettingsControl.updateGameAttributes(); | |||||
} | |||||
} | |||||
onGameAttributesBatchChange() | |||||
{ | |||||
this.setHidden(!this.available); | |||||
if (this.available) | |||||
this.setChecked(g_GameAttributes.settings.RatingEnabled); | |||||
} | } | ||||
onPress(checked) | onPress(checked) | ||||
{ | { | ||||
g_GameAttributes.settings.RatingEnabled = checked; | g_GameSettings.rating.setEnabled(checked); | ||||
this.gameSettingsControl.updateGameAttributes(); | |||||
this.gameSettingsControl.setNetworkGameAttributes(); | this.gameSettingsControl.setNetworkGameAttributes(); | ||||
} | } | ||||
onGameAttributesFinalize() | |||||
{ | |||||
if (this.hasXmppClient) | |||||
Engine.SetRankedGame(!!g_GameAttributes.settings.RatingEnabled); | |||||
} | |||||
}; | }; | ||||
GameSettingControls.Rating.prototype.TitleCaption = | GameSettingControls.Rating.prototype.TitleCaption = | ||||
translate("Rated Game"); | translate("Rated Game"); | ||||
GameSettingControls.Rating.prototype.Tooltip = | GameSettingControls.Rating.prototype.Tooltip = | ||||
translate("Toggle if this game will be rated for the leaderboard."); | translate("Toggle if this game will be rated for the leaderboard."); |
Wildfire Games · Phabricator