Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/gamesetup/gamesetup.js
Show First 20 Lines • Show All 1,012 Lines • ▼ Show 20 Lines | "lobbyButton": { | ||||
}, | }, | ||||
"hidden": () => !Engine.HasXmppClient() | "hidden": () => !Engine.HasXmppClient() | ||||
}, | }, | ||||
"spTips": { | "spTips": { | ||||
"hidden": () => { | "hidden": () => { | ||||
let settingsPanel = Engine.GetGUIObjectByName("settingsPanel"); | let settingsPanel = Engine.GetGUIObjectByName("settingsPanel"); | ||||
let spTips = Engine.GetGUIObjectByName("spTips"); | let spTips = Engine.GetGUIObjectByName("spTips"); | ||||
return g_IsNetworked || | return g_IsNetworked || | ||||
Engine.ConfigDB_GetValue("user", "gui.gamesetup.enabletips") !== "true" || | !getUserConfigBool("gui.gamesetup.enabletips") || | ||||
spTips.size.right > settingsPanel.getComputedSize().left | spTips.size.right > settingsPanel.getComputedSize().left | ||||
} | } | ||||
} | } | ||||
}; | }; | ||||
/** | /** | ||||
* Contains gui elements that are repeated for every player. | * Contains gui elements that are repeated for every player. | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 75 Lines • ▼ Show 20 Lines | function init(attribs) | ||||
setTimeout(displayGamestateNotifications, 1000); | setTimeout(displayGamestateNotifications, 1000); | ||||
} | } | ||||
function initDefaults() | function initDefaults() | ||||
{ | { | ||||
// Remove gaia from both arrays | // Remove gaia from both arrays | ||||
g_DefaultPlayerData = clone(g_Settings.PlayerDefaults.slice(1)); | g_DefaultPlayerData = clone(g_Settings.PlayerDefaults.slice(1)); | ||||
let aiDifficulty = +Engine.ConfigDB_GetValue("user", "gui.gamesetup.aidifficulty"); | let aiDifficulty = getUserConfigNumber("gui.gamesetup.aidifficulty"); | ||||
let aiBehavior = Engine.ConfigDB_GetValue("user", "gui.gamesetup.aibehavior"); | let aiBehavior = getUserConfigString("gui.gamesetup.aibehavior"); | ||||
// Don't change the underlying defaults file, as Atlas uses that file too | // Don't change the underlying defaults file, as Atlas uses that file too | ||||
for (let i in g_DefaultPlayerData) | for (let i in g_DefaultPlayerData) | ||||
{ | { | ||||
g_DefaultPlayerData[i].Civ = "random"; | g_DefaultPlayerData[i].Civ = "random"; | ||||
g_DefaultPlayerData[i].Team = -1; | g_DefaultPlayerData[i].Team = -1; | ||||
g_DefaultPlayerData[i].AIDiff = aiDifficulty; | g_DefaultPlayerData[i].AIDiff = aiDifficulty; | ||||
g_DefaultPlayerData[i].AIBehavior = aiBehavior; | g_DefaultPlayerData[i].AIBehavior = aiBehavior; | ||||
▲ Show 20 Lines • Show All 97 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
/** | /** | ||||
* Slide settings panel. | * Slide settings panel. | ||||
* @param {number} dt - Time in milliseconds since last call. | * @param {number} dt - Time in milliseconds since last call. | ||||
*/ | */ | ||||
function updateSettingsPanelPosition(dt) | function updateSettingsPanelPosition(dt) | ||||
{ | { | ||||
let slideSpeed = Engine.ConfigDB_GetValue("user", "gui.gamesetup.settingsslide") == "true" ? g_SlideSpeed : Infinity; | let slideSpeed = getUserConfigBool("gui.gamesetup.settingsslide") ? g_SlideSpeed : Infinity; | ||||
let settingsPanel = Engine.GetGUIObjectByName("settingsPanel"); | let settingsPanel = Engine.GetGUIObjectByName("settingsPanel"); | ||||
let rightBorder = Engine.GetGUIObjectByName("settingTabButtons").size.left; | let rightBorder = Engine.GetGUIObjectByName("settingTabButtons").size.left; | ||||
let offset = 0; | let offset = 0; | ||||
if (g_TabCategorySelected === undefined) | if (g_TabCategorySelected === undefined) | ||||
{ | { | ||||
let maxOffset = rightBorder - settingsPanel.size.left; | let maxOffset = rightBorder - settingsPanel.size.left; | ||||
if (maxOffset > 0) | if (maxOffset > 0) | ||||
▲ Show 20 Lines • Show All 124 Lines • ▼ Show 20 Lines | Engine.GetGUIObjectByName(guiName + guiType + guiIdx).onPress = function() { | ||||
supplementDefaults(); | supplementDefaults(); | ||||
updateGameAttributes(); | updateGameAttributes(); | ||||
}; | }; | ||||
} | } | ||||
function initSPTips() | function initSPTips() | ||||
{ | { | ||||
if (g_IsNetworked || Engine.ConfigDB_GetValue("user", "gui.gamesetup.enabletips") !== "true") | if (g_IsNetworked || !getUserConfigBool("gui.gamesetup.enabletips")) | ||||
return; | return; | ||||
Engine.GetGUIObjectByName("spTips").hidden = false; | Engine.GetGUIObjectByName("spTips").hidden = false; | ||||
Engine.GetGUIObjectByName("displaySPTips").checked = true; | Engine.GetGUIObjectByName("displaySPTips").checked = true; | ||||
Engine.GetGUIObjectByName("aiTips").caption = Engine.TranslateLines(Engine.ReadFile("gui/gamesetup/ai.txt")); | Engine.GetGUIObjectByName("aiTips").caption = Engine.TranslateLines(Engine.ReadFile("gui/gamesetup/ai.txt")); | ||||
} | } | ||||
/** | /** | ||||
▲ Show 20 Lines • Show All 163 Lines • ▼ Show 20 Lines | addChatMessage({ | ||||
"username": playername | "username": playername | ||||
}); | }); | ||||
let isRejoiningPlayer = newAssignments[newGUID].player != -1; | let isRejoiningPlayer = newAssignments[newGUID].player != -1; | ||||
// Assign the client (or only buddies if prefered) to an unused playerslot and rejoining players to their old slot | // Assign the client (or only buddies if prefered) to an unused playerslot and rejoining players to their old slot | ||||
if (!isRejoiningPlayer && playername != newAssignments[Engine.GetPlayerGUID()].name) | if (!isRejoiningPlayer && playername != newAssignments[Engine.GetPlayerGUID()].name) | ||||
{ | { | ||||
let assignOption = Engine.ConfigDB_GetValue("user", "gui.gamesetup.assignplayers"); | let assignOption = getUserConfigString("gui.gamesetup.assignplayers"); | ||||
if (assignOption == "disabled" || | if (assignOption == "disabled" || | ||||
assignOption == "buddies" && g_Buddies.indexOf(splitRatingFromNick(playername).nick) == -1) | assignOption == "buddies" && g_Buddies.indexOf(splitRatingFromNick(playername).nick) == -1) | ||||
return; | return; | ||||
} | } | ||||
let freeSlot = g_GameAttributes.settings.PlayerData.findIndex((v, i) => | let freeSlot = g_GameAttributes.settings.PlayerData.findIndex((v, i) => | ||||
Object.keys(g_PlayerAssignments).every(guid => g_PlayerAssignments[guid].player != i + 1) | Object.keys(g_PlayerAssignments).every(guid => g_PlayerAssignments[guid].player != i + 1) | ||||
); | ); | ||||
▲ Show 20 Lines • Show All 208 Lines • ▼ Show 20 Lines | function loadMapData(name) | ||||
return g_MapData[name]; | return g_MapData[name]; | ||||
} | } | ||||
/** | /** | ||||
* Sets the gameattributes the way they were the last time the user left the gamesetup. | * Sets the gameattributes the way they were the last time the user left the gamesetup. | ||||
*/ | */ | ||||
function loadPersistMatchSettings() | function loadPersistMatchSettings() | ||||
{ | { | ||||
if (!g_IsController || Engine.ConfigDB_GetValue("user", "persistmatchsettings") != "true" || g_IsTutorial) | if (!g_IsController || !getUserConfigBool("persistmatchsettings") || g_IsTutorial) | ||||
return; | return; | ||||
let settingsFile = g_IsNetworked ? g_MatchSettings_MP : g_MatchSettings_SP; | let settingsFile = g_IsNetworked ? g_MatchSettings_MP : g_MatchSettings_SP; | ||||
if (!Engine.FileExists(settingsFile)) | if (!Engine.FileExists(settingsFile)) | ||||
return; | return; | ||||
let attrs = Engine.ReadJSONFile(settingsFile); | let attrs = Engine.ReadJSONFile(settingsFile); | ||||
if (!attrs || !attrs.settings) | if (!attrs || !attrs.settings) | ||||
▲ Show 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | function loadPersistMatchSettings() | ||||
g_IsInGuiUpdate = false; | g_IsInGuiUpdate = false; | ||||
} | } | ||||
function savePersistMatchSettings() | function savePersistMatchSettings() | ||||
{ | { | ||||
if (g_IsTutorial) | if (g_IsTutorial) | ||||
return; | return; | ||||
let attributes = Engine.ConfigDB_GetValue("user", "persistmatchsettings") == "true" ? g_GameAttributes : {}; | let attributes = getUserConfigBool("persistmatchsettings") ? g_GameAttributes : {}; | ||||
Engine.WriteJSONFile(g_IsNetworked ? g_MatchSettings_MP : g_MatchSettings_SP, attributes); | Engine.WriteJSONFile(g_IsNetworked ? g_MatchSettings_MP : g_MatchSettings_SP, attributes); | ||||
} | } | ||||
function sanitizePlayerData(playerData) | function sanitizePlayerData(playerData) | ||||
{ | { | ||||
// Remove gaia | // Remove gaia | ||||
if (playerData.length && !playerData[0]) | if (playerData.length && !playerData[0]) | ||||
playerData.shift(); | playerData.shift(); | ||||
▲ Show 20 Lines • Show All 650 Lines • ▼ Show 20 Lines | function addChatMessage(msg) | ||||
let user = colorizePlayernameByGUID(msg.guid || -1, msg.username || ""); | let user = colorizePlayernameByGUID(msg.guid || -1, msg.username || ""); | ||||
let text = g_FormatChatMessage[msg.type](msg, user); | let text = g_FormatChatMessage[msg.type](msg, user); | ||||
if (!text) | if (!text) | ||||
return; | return; | ||||
if (Engine.ConfigDB_GetValue("user", "chat.timestamp") == "true") | if (getUserConfigBool("chat.timestamp")) | ||||
text = sprintf(translate("%(time)s %(message)s"), { | text = sprintf(translate("%(time)s %(message)s"), { | ||||
"time": sprintf(translate("\\[%(time)s]"), { | "time": sprintf(translate("\\[%(time)s]"), { | ||||
"time": Engine.FormatMillisecondsIntoDateStringLocal(Date.now(), translate("HH:mm")) | "time": Engine.FormatMillisecondsIntoDateStringLocal(Date.now(), translate("HH:mm")) | ||||
}), | }), | ||||
"message": text | "message": text | ||||
}); | }); | ||||
g_ChatMessages.push(text); | g_ChatMessages.push(text); | ||||
▲ Show 20 Lines • Show All 165 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator