Commented out most of old styles.xml and changed references to new styles, outlined tabs in summary, fixed chat color in multiplayer setup
This was SVN commit r10130.
This commit is contained in:
parent
769a927446
commit
ded514644e
@ -4,10 +4,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
MENU TEXT STYLES
|
||||
@ -98,6 +94,14 @@
|
||||
text_valign="center"
|
||||
/>
|
||||
|
||||
<style name="ChatText"
|
||||
font="serif-9"
|
||||
textcolor="white"
|
||||
text_align="left"
|
||||
text_valign="top"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -114,7 +118,7 @@
|
||||
MENU WINDOW STYLES
|
||||
==========================================
|
||||
-->
|
||||
|
||||
|
||||
<style name="TranslucentPanel"
|
||||
sprite="BackgroundTranslucent"
|
||||
buffer_zone="10"
|
||||
@ -123,7 +127,7 @@
|
||||
text_align="left"
|
||||
text_valign="top"
|
||||
/>
|
||||
|
||||
|
||||
<style name="TranslucentPanelThinBorder"
|
||||
sprite="TranslucentPanelThinBorder"
|
||||
buffer_zone="10"
|
||||
@ -139,7 +143,7 @@
|
||||
text_align="left"
|
||||
text_valign="top"
|
||||
/>
|
||||
|
||||
|
||||
<style name="SubmenuPanel"
|
||||
sprite="SubmenuPanel"
|
||||
buffer_zone="10"
|
||||
|
@ -27,13 +27,13 @@
|
||||
==========================================
|
||||
-->
|
||||
|
||||
<style name="thinWheatWindow"
|
||||
<!-- <style name="thinWheatWindow"
|
||||
sprite="thinWheatWindowSand"
|
||||
buffer_zone="10"
|
||||
text_align="left"
|
||||
text_valign="top"
|
||||
/>
|
||||
|
||||
|
||||
<style name="wheatWindow"
|
||||
sprite="wheatWindowSand"
|
||||
buffer_zone="10"
|
||||
@ -54,7 +54,7 @@
|
||||
sprite="wheatWindowTitle"
|
||||
text_align="center"
|
||||
text_valign="center"
|
||||
/>
|
||||
/>-->
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
@ -62,7 +62,7 @@
|
||||
==========================================
|
||||
-->
|
||||
|
||||
<style name="skin*Hele*Window"
|
||||
<!-- <style name="skin*Hele*Window"
|
||||
sprite="bkGraniteBorderBlack"
|
||||
buffer_zone="10"
|
||||
text_align="left"
|
||||
@ -83,7 +83,7 @@
|
||||
sprite_pressed="wheatButtonOver"
|
||||
text_align="center"
|
||||
text_valign="center"
|
||||
/>
|
||||
/>-->
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
@ -91,7 +91,7 @@
|
||||
==========================================
|
||||
-->
|
||||
|
||||
<style name="wheatButton"
|
||||
<!-- <style name="wheatButton"
|
||||
sprite="wheatButton"
|
||||
sprite_disabled="wheatButtonDisabled"
|
||||
sprite_over="wheatButtonOver"
|
||||
@ -186,8 +186,8 @@
|
||||
textcolor_selected="white"
|
||||
text_align="left"
|
||||
text_valign="center"
|
||||
/>
|
||||
|
||||
/>-->
|
||||
|
||||
<!--
|
||||
This control is new, so here's a summary:
|
||||
* dropdown_buffer: vertical gap between dropdown and list
|
||||
@ -207,7 +207,7 @@
|
||||
* textcolor_selected=text color hobered item
|
||||
-->
|
||||
|
||||
<style name="wheatDropDown"
|
||||
<!-- <style name="wheatDropDown"
|
||||
dropdown_buffer="1"
|
||||
font="serif-13"
|
||||
textcolor="black"
|
||||
@ -229,7 +229,7 @@
|
||||
|
||||
scrollbar="true"
|
||||
scrollbar_style="wheatScrollBar"
|
||||
/>
|
||||
/>-->
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
@ -243,12 +243,12 @@
|
||||
=============================================================
|
||||
-->
|
||||
|
||||
<style name="wheatTextHeadMaxBlack"
|
||||
<!-- <style name="wheatTextHeadMaxBlack"
|
||||
ghost="true"
|
||||
font="serif-bold-18"
|
||||
text_align="center"
|
||||
textcolor="black"
|
||||
/>
|
||||
/>-->
|
||||
|
||||
<!--
|
||||
=============================================================
|
||||
@ -257,11 +257,11 @@
|
||||
=============================================================
|
||||
-->
|
||||
|
||||
<style name="wheatTextHeadBlack"
|
||||
<!-- <style name="wheatTextHeadBlack"
|
||||
ghost="true"
|
||||
font="serif-16"
|
||||
textcolor="black"
|
||||
/>
|
||||
/>-->
|
||||
|
||||
<!--
|
||||
=============================================================
|
||||
@ -270,11 +270,11 @@
|
||||
=============================================================
|
||||
-->
|
||||
|
||||
<style name="wheatTextLabelBlack"
|
||||
<!-- <style name="wheatTextLabelBlack"
|
||||
ghost="true"
|
||||
font="serif-14"
|
||||
textcolor="black"
|
||||
/>
|
||||
/>-->
|
||||
|
||||
<!--
|
||||
=============================================================
|
||||
@ -283,7 +283,7 @@
|
||||
=============================================================
|
||||
-->
|
||||
|
||||
<style name="fancyTextHeadGold"
|
||||
<!-- <style name="fancyTextHeadGold"
|
||||
ghost="true"
|
||||
font="serif-16"
|
||||
textcolor="gold"
|
||||
@ -293,7 +293,7 @@
|
||||
ghost="true"
|
||||
font="serif-14"
|
||||
textcolor="white"
|
||||
/>
|
||||
/>-->
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
@ -301,8 +301,8 @@
|
||||
==========================================
|
||||
-->
|
||||
|
||||
<style name="wheatBorderBlack"
|
||||
scrollbar_style="wheatScrollBar"
|
||||
<!-- <style name="wheatBorderBlack"
|
||||
scrollbar_style="wheatScrollBar"
|
||||
sprite="bkBorderBlack"
|
||||
sprite_selectarea="bkFillGray"
|
||||
textcolor="black"
|
||||
@ -322,7 +322,7 @@
|
||||
sprite_selectarea="bkFillGray"
|
||||
textcolor="black"
|
||||
textcolor_selected="white"
|
||||
/>
|
||||
/>-->
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
@ -330,12 +330,12 @@
|
||||
==========================================
|
||||
-->
|
||||
|
||||
<style name="wheatProgressBarBlue"
|
||||
<!-- <style name="wheatProgressBarBlue"
|
||||
sprite_background="bkBorderBlack"
|
||||
sprite_bar="bkBlueBorderBlack"
|
||||
ghost="true"
|
||||
tooltip_style="snToolTip"
|
||||
tooltip="(TBA)"
|
||||
/>
|
||||
/>-->
|
||||
|
||||
</styles>
|
||||
|
@ -42,7 +42,7 @@ var g_MapData = {};
|
||||
var g_CivData = {};
|
||||
|
||||
var g_MapFilters = [];
|
||||
|
||||
|
||||
// To prevent the display locking up while we load the map metadata,
|
||||
// we'll start with a 'loading' message and switch to the main screen in the
|
||||
// tick handler
|
||||
@ -76,45 +76,45 @@ function initMain()
|
||||
{
|
||||
// Load AI list
|
||||
g_AIs = Engine.GetAIs();
|
||||
|
||||
|
||||
// Sort AIs by displayed name
|
||||
g_AIs.sort(function (a, b) {
|
||||
return a.data.name < b.data.name ? -1 : b.data.name < a.data.name ? +1 : 0;
|
||||
});
|
||||
|
||||
|
||||
// Get default player data - remove gaia
|
||||
g_DefaultPlayerData = initPlayerDefaults();
|
||||
g_DefaultPlayerData.shift();
|
||||
|
||||
|
||||
g_MapSizes = initMapSizes();
|
||||
|
||||
// Init civs
|
||||
initCivNameList();
|
||||
|
||||
|
||||
// Init map types
|
||||
var mapTypes = getGUIObjectByName("mapTypeSelection");
|
||||
mapTypes.list = ["Scenario","Random"];
|
||||
mapTypes.list_data = ["scenario","random"];
|
||||
|
||||
|
||||
// Setup map filters - will appear in order they are added
|
||||
addFilter("Default", function(settings) { return settings && !keywordTestOR(settings.Keywords, ["demo", "hidden"]); });
|
||||
addFilter("Demo Maps", function(settings) { return settings && keywordTestAND(settings.Keywords, ["demo"]); });
|
||||
addFilter("Old Maps", function(settings) { return !settings; });
|
||||
addFilter("All Maps", function(settings) { return true; });
|
||||
|
||||
|
||||
// Populate map filters dropdown
|
||||
var mapFilters = getGUIObjectByName("mapFilterSelection");
|
||||
mapFilters.list = getFilters();
|
||||
g_GameAttributes.mapFilter = "Default";
|
||||
|
||||
|
||||
// Setup controls for host only
|
||||
if (g_IsController)
|
||||
{
|
||||
mapTypes.selected = 0;
|
||||
mapFilters.selected = 0;
|
||||
|
||||
|
||||
initMapNameList();
|
||||
|
||||
|
||||
var numPlayersSelect = getGUIObjectByName("numPlayersSelection");
|
||||
var players = [];
|
||||
for (var i = 1; i <= MAX_PLAYERS; ++i)
|
||||
@ -122,7 +122,7 @@ function initMain()
|
||||
numPlayersSelect.list = players;
|
||||
numPlayersSelect.list_data = players;
|
||||
numPlayersSelect.selected = MAX_PLAYERS - 1;
|
||||
|
||||
|
||||
var victoryConditions = getGUIObjectByName("victoryCondition");
|
||||
victoryConditions.list = VICTORY_TEXT;
|
||||
victoryConditions.list_data = VICTORY_DATA;
|
||||
@ -132,14 +132,14 @@ function initMain()
|
||||
{
|
||||
g_GameAttributes.settings.GameType = VICTORY_DATA[this.selected];
|
||||
}
|
||||
|
||||
|
||||
if (!g_IsInGuiUpdate)
|
||||
{
|
||||
updateGameAttributes();
|
||||
}
|
||||
};
|
||||
victoryConditions.selected = VICTORY_DEFAULTIDX;
|
||||
|
||||
|
||||
var mapSize = getGUIObjectByName("mapSize");
|
||||
mapSize.list = g_MapSizes.names;
|
||||
mapSize.list_data = g_MapSizes.tiles;
|
||||
@ -149,27 +149,27 @@ function initMain()
|
||||
{
|
||||
g_GameAttributes.settings.Size = g_MapSizes.tiles[this.selected];
|
||||
}
|
||||
|
||||
|
||||
if (!g_IsInGuiUpdate)
|
||||
{
|
||||
updateGameAttributes();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
getGUIObjectByName("revealMap").onPress = function()
|
||||
{ // Update attributes so other players can see change
|
||||
g_GameAttributes.settings.RevealMap = this.checked;
|
||||
|
||||
|
||||
if (!g_IsInGuiUpdate)
|
||||
{
|
||||
updateGameAttributes();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
getGUIObjectByName("lockTeams").onPress = function()
|
||||
{ // Update attributes so other players can see change
|
||||
g_GameAttributes.settings.LockTeams = this.checked;
|
||||
|
||||
|
||||
if (!g_IsInGuiUpdate)
|
||||
{
|
||||
updateGameAttributes();
|
||||
@ -183,7 +183,7 @@ function initMain()
|
||||
getGUIObjectByName("mapTypeSelection").hidden = true;
|
||||
getGUIObjectByName("mapFilterSelection").hidden = true;
|
||||
getGUIObjectByName("mapSelection").enabled = false;
|
||||
|
||||
|
||||
// Disable player and game options controls
|
||||
// TODO: Shouldn't players be able to choose their own assignment?
|
||||
for (var i = 0; i < MAX_PLAYERS; ++i)
|
||||
@ -192,20 +192,20 @@ function initMain()
|
||||
getGUIObjectByName("playerCiv["+i+"]").hidden = true;
|
||||
getGUIObjectByName("playerTeam["+i+"]").hidden = true;
|
||||
}
|
||||
|
||||
|
||||
getGUIObjectByName("numPlayersBox").hidden = true;
|
||||
|
||||
|
||||
// Disable "start game" button
|
||||
// TODO: Perhaps replace this with a "ready" button, and require host to wait?
|
||||
getGUIObjectByName("startGame").enabled = false;
|
||||
}
|
||||
|
||||
|
||||
// Set up offline-only bits:
|
||||
if (!g_IsNetworked)
|
||||
{
|
||||
getGUIObjectByName("chatPanel").hidden = true;
|
||||
}
|
||||
|
||||
|
||||
// Settings for all possible player slots
|
||||
var boxSpacing = 32;
|
||||
for (var i = 0; i < MAX_PLAYERS; ++i)
|
||||
@ -217,13 +217,13 @@ function initMain()
|
||||
boxSize.top = i * boxSpacing;
|
||||
boxSize.bottom = i * boxSpacing + h;
|
||||
box.size = boxSize;
|
||||
|
||||
|
||||
// Populate team dropdowns
|
||||
var team = getGUIObjectByName("playerTeam["+i+"]");
|
||||
team.list = ["None", "1", "2", "3", "4"];
|
||||
team.list_data = [-1, 0, 1, 2, 3];
|
||||
team.selected = 0;
|
||||
|
||||
|
||||
let playerSlot = i; // declare for inner function use
|
||||
team.onSelectionChange = function()
|
||||
{ // Update team
|
||||
@ -231,13 +231,13 @@ function initMain()
|
||||
{
|
||||
g_GameAttributes.settings.PlayerData[playerSlot].Team = this.selected - 1;
|
||||
}
|
||||
|
||||
|
||||
if (!g_IsInGuiUpdate)
|
||||
{
|
||||
updateGameAttributes();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// Set events
|
||||
var civ = getGUIObjectByName("playerCiv["+i+"]");
|
||||
civ.onSelectionChange = function()
|
||||
@ -246,14 +246,14 @@ function initMain()
|
||||
{
|
||||
g_GameAttributes.settings.PlayerData[playerSlot].Civ = this.list_data[this.selected];
|
||||
}
|
||||
|
||||
|
||||
if (!g_IsInGuiUpdate)
|
||||
{
|
||||
updateGameAttributes();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
if (g_IsNetworked)
|
||||
{
|
||||
// For multiplayer, focus the chat input box by default
|
||||
@ -281,13 +281,13 @@ function handleNetMessage(message)
|
||||
Engine.PopGuiPage();
|
||||
reportDisconnect(message.reason);
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
error("Unrecognised netstatus type "+message.status);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case "gamesetup":
|
||||
if (message.data) // (the host gets undefined data on first connect, so skip that)
|
||||
{
|
||||
@ -296,7 +296,7 @@ function handleNetMessage(message)
|
||||
|
||||
onGameAttributesChange();
|
||||
break;
|
||||
|
||||
|
||||
case "players":
|
||||
// Find and report all joinings/leavings
|
||||
for (var host in message.hosts)
|
||||
@ -317,15 +317,15 @@ function handleNetMessage(message)
|
||||
g_PlayerAssignments = message.hosts;
|
||||
updatePlayerList();
|
||||
break;
|
||||
|
||||
|
||||
case "start":
|
||||
Engine.SwitchGuiPage("page_loading.xml", {
|
||||
"attribs": g_GameAttributes,
|
||||
"isNetworked" : g_IsNetworked,
|
||||
"attribs": g_GameAttributes,
|
||||
"isNetworked" : g_IsNetworked,
|
||||
"playerAssignments": g_PlayerAssignments
|
||||
});
|
||||
break;
|
||||
|
||||
|
||||
case "chat":
|
||||
addChatMessage({ "type": "message", "guid": message.guid, "text": message.text });
|
||||
break;
|
||||
@ -339,13 +339,13 @@ function handleNetMessage(message)
|
||||
function getMapDisplayName(map)
|
||||
{
|
||||
var mapData = loadMapData(map);
|
||||
|
||||
|
||||
if (!mapData || !mapData.settings || !mapData.settings.Name)
|
||||
{ // Give some msg that map format is unsupported
|
||||
log("Map data missing in scenario '"+map+"' - likely unsupported format");
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
return mapData.settings.Name;
|
||||
}
|
||||
|
||||
@ -356,13 +356,13 @@ function getSetting(settings, defaults, property)
|
||||
{
|
||||
return settings[property];
|
||||
}
|
||||
|
||||
|
||||
// Use defaults
|
||||
if (defaults && (property in defaults))
|
||||
{
|
||||
return defaults[property];
|
||||
}
|
||||
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
@ -371,7 +371,7 @@ function initCivNameList()
|
||||
{
|
||||
// Cache civ data
|
||||
g_CivData = loadCivData();
|
||||
|
||||
|
||||
// Extract name/code, and skip civs that are explicitly disabled
|
||||
// (intended for unusable incomplete civs)
|
||||
var civList = [ { "name": civ.Name, "code": civ.Code }
|
||||
@ -380,7 +380,7 @@ function initCivNameList()
|
||||
|
||||
// Alphabetically sort the list, ignoring case
|
||||
civList.sort(sortNameIgnoreCase);
|
||||
|
||||
|
||||
var civListNames = [ civ.name for each (civ in civList) ];
|
||||
var civListCodes = [ civ.code for each (civ in civList) ];
|
||||
|
||||
@ -401,41 +401,41 @@ function initMapNameList()
|
||||
// TODO: Should verify these are valid maps before adding to list
|
||||
var mapSelectionBox = getGUIObjectByName("mapSelection")
|
||||
var mapFiles;
|
||||
|
||||
|
||||
switch (g_GameAttributes.mapType)
|
||||
{
|
||||
case "scenario":
|
||||
mapFiles = getXMLFileList(g_GameAttributes.mapPath);
|
||||
break;
|
||||
|
||||
|
||||
case "random":
|
||||
mapFiles = getJSONFileList(g_GameAttributes.mapPath);
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
error("initMapNameList: Unexpected map type '"+g_GameAttributes.mapType+"'");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Apply map filter, if any defined
|
||||
var mapList = [];
|
||||
for (var i = 0; i < mapFiles.length; ++i)
|
||||
{
|
||||
var file = mapFiles[i];
|
||||
var mapData = loadMapData(file);
|
||||
|
||||
|
||||
if (g_GameAttributes.mapFilter && mapData && testFilter(g_GameAttributes.mapFilter, mapData.settings))
|
||||
{
|
||||
mapList.push({ "name": getMapDisplayName(file), "file": file });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Alphabetically sort the list, ignoring case
|
||||
mapList.sort(sortNameIgnoreCase);
|
||||
|
||||
|
||||
var mapListNames = [ map.name for each (map in mapList) ];
|
||||
var mapListFiles = [ map.file for each (map in mapList) ];
|
||||
|
||||
|
||||
// Select the default map
|
||||
var selected = mapListFiles.indexOf(g_GameAttributes.map);
|
||||
// Default to the first element if list is not empty and we can't find the one we searched for
|
||||
@ -443,7 +443,7 @@ function initMapNameList()
|
||||
{
|
||||
selected = 0;
|
||||
}
|
||||
|
||||
|
||||
// Update the list control
|
||||
mapSelectionBox.list = mapListNames;
|
||||
mapSelectionBox.list_data = mapListFiles;
|
||||
@ -456,7 +456,7 @@ function loadMapData(name)
|
||||
{
|
||||
return undefined;
|
||||
}
|
||||
|
||||
|
||||
if (!g_MapData[name])
|
||||
{
|
||||
switch (g_GameAttributes.mapType)
|
||||
@ -464,17 +464,17 @@ function loadMapData(name)
|
||||
case "scenario":
|
||||
g_MapData[name] = Engine.LoadMapSettings(g_GameAttributes.mapPath+name);
|
||||
break;
|
||||
|
||||
|
||||
case "random":
|
||||
g_MapData[name] = parseJSONData(g_GameAttributes.mapPath+name+".json");
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
error("loadMapData: Unexpected map type '"+g_GameAttributes.mapType+"'");
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return g_MapData[name];
|
||||
}
|
||||
|
||||
@ -522,19 +522,19 @@ function selectNumPlayers(num)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Network clients can't change number of players
|
||||
if (g_IsNetworked && !g_IsController)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Only meaningful for random maps
|
||||
if (g_GameAttributes.mapType != "random")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Update player data
|
||||
var pData = g_GameAttributes.settings.PlayerData;
|
||||
if (pData && num < pData.length)
|
||||
@ -550,7 +550,7 @@ function selectNumPlayers(num)
|
||||
g_GameAttributes.settings.PlayerData.push(g_DefaultPlayerData[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
updateGameAttributes();
|
||||
}
|
||||
|
||||
@ -575,7 +575,7 @@ function selectMapType(type)
|
||||
|
||||
// Clear old map data
|
||||
g_MapData = {};
|
||||
|
||||
|
||||
// Select correct path
|
||||
switch (g_GameAttributes.mapType)
|
||||
{
|
||||
@ -585,7 +585,7 @@ function selectMapType(type)
|
||||
g_GameAttributes.map = (g_IsNetworked ? DEFAULT_NETWORKED_MAP : DEFAULT_OFFLINE_MAP);
|
||||
g_GameAttributes.mapPath = "maps/scenarios/";
|
||||
break;
|
||||
|
||||
|
||||
case "random":
|
||||
g_GameAttributes.mapPath = "maps/random/";
|
||||
g_GameAttributes.settings = {
|
||||
@ -593,7 +593,7 @@ function selectMapType(type)
|
||||
Seed: Math.floor(Math.random() * 65536)
|
||||
};
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
error("selectMapType: Unexpected map type '"+g_GameAttributes.mapType+"'");
|
||||
return;
|
||||
@ -617,9 +617,9 @@ function selectMapFilter(filterName)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
g_GameAttributes.mapFilter = filterName;
|
||||
|
||||
|
||||
initMapNameList();
|
||||
|
||||
updateGameAttributes();
|
||||
@ -639,7 +639,7 @@ function selectMap(name)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Return if we have no map
|
||||
if (!name)
|
||||
{
|
||||
@ -648,7 +648,7 @@ function selectMap(name)
|
||||
|
||||
var mapData = loadMapData(name);
|
||||
var mapSettings = (mapData && mapData.settings ? deepcopy(mapData.settings) : {});
|
||||
|
||||
|
||||
// Copy any new settings
|
||||
g_GameAttributes.map = name;
|
||||
g_GameAttributes.script = mapSettings.Script;
|
||||
@ -674,7 +674,7 @@ function selectMap(name)
|
||||
else
|
||||
{
|
||||
var numPlayers = (mapSettings.PlayerData ? mapSettings.PlayerData.length : g_GameAttributes.settings.PlayerData.length);
|
||||
|
||||
|
||||
for (var guid in g_PlayerAssignments)
|
||||
{ // Unassign extra players
|
||||
var player = g_PlayerAssignments[guid].player;
|
||||
@ -685,7 +685,7 @@ function selectMap(name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
updateGameAttributes();
|
||||
}
|
||||
|
||||
@ -696,13 +696,13 @@ function launchGame()
|
||||
error("Only host can start game");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Check that we have a map
|
||||
if (!g_GameAttributes.map)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (g_IsNetworked)
|
||||
{
|
||||
Engine.SetNetworkGameAttributes(g_GameAttributes);
|
||||
@ -726,8 +726,8 @@ function launchGame()
|
||||
|
||||
Engine.StartGame(g_GameAttributes, playerID);
|
||||
Engine.SwitchGuiPage("page_loading.xml", {
|
||||
"attribs": g_GameAttributes,
|
||||
"isNetworked" : g_IsNetworked,
|
||||
"attribs": g_GameAttributes,
|
||||
"isNetworked" : g_IsNetworked,
|
||||
"playerAssignments": g_PlayerAssignments
|
||||
});
|
||||
}
|
||||
@ -738,13 +738,13 @@ function launchGame()
|
||||
function onGameAttributesChange()
|
||||
{
|
||||
g_IsInGuiUpdate = true;
|
||||
|
||||
|
||||
// Don't set any attributes here, just show the changes in GUI
|
||||
|
||||
|
||||
var mapName = g_GameAttributes.map || "";
|
||||
var mapSettings = g_GameAttributes.settings;
|
||||
var numPlayers = (mapSettings.PlayerData ? mapSettings.PlayerData.length : MAX_PLAYERS);
|
||||
|
||||
|
||||
// Update some controls for clients
|
||||
if (!g_IsController)
|
||||
{
|
||||
@ -756,10 +756,10 @@ function onGameAttributesChange()
|
||||
mapTypeHeading.caption = "Match Type: "+mapTypeSelection.list[idx];
|
||||
var mapSelectionBox = getGUIObjectByName("mapSelection");
|
||||
mapSelectionBox.selected = mapSelectionBox.list_data.indexOf(mapName);
|
||||
|
||||
|
||||
initMapNameList();
|
||||
}
|
||||
|
||||
|
||||
// Controls common to all map types
|
||||
var revealMap = getGUIObjectByName("revealMap");
|
||||
var victoryCondition = getGUIObjectByName("victoryCondition");
|
||||
@ -773,7 +773,7 @@ function onGameAttributesChange()
|
||||
|
||||
var sizeIdx = (g_MapSizes.tiles.indexOf(mapSettings.Size) != -1 ? g_MapSizes.tiles.indexOf(mapSettings.Size) : g_MapSizes.default);
|
||||
var victoryIdx = (VICTORY_DATA.indexOf(mapSettings.GameType) != -1 ? VICTORY_DATA.indexOf(mapSettings.GameType) : VICTORY_DEFAULTIDX);
|
||||
|
||||
|
||||
// Handle map type specific logic
|
||||
switch (g_GameAttributes.mapType)
|
||||
{
|
||||
@ -786,12 +786,12 @@ function onGameAttributesChange()
|
||||
revealMap.hidden = false;
|
||||
victoryCondition.hidden = false;
|
||||
lockTeams.hidden = false;
|
||||
|
||||
|
||||
mapSizeText.caption = "Map size:";
|
||||
mapSize.selected = sizeIdx;
|
||||
revealMapText.caption = "Reveal map:";
|
||||
revealMap.checked = (mapSettings.RevealMap ? true : false);
|
||||
|
||||
|
||||
victoryConditionText.caption = "Victory condition:";
|
||||
victoryCondition.selected = victoryIdx;
|
||||
lockTeamsText.caption = "Teams locked:";
|
||||
@ -804,9 +804,9 @@ function onGameAttributesChange()
|
||||
victoryConditionText.caption = "Victory condition: " + VICTORY_TEXT[victoryIdx];
|
||||
lockTeamsText.caption = "Teams locked: " + (mapSettings.LockTeams === undefined || mapSettings.LockTeams ? "Yes" : "No");
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case "scenario":
|
||||
// For scenario just reflect settings for the current map
|
||||
numPlayersBox.hidden = true;
|
||||
@ -814,33 +814,33 @@ function onGameAttributesChange()
|
||||
revealMap.hidden = true;
|
||||
victoryCondition.hidden = true;
|
||||
lockTeams.hidden = true;
|
||||
|
||||
|
||||
mapSizeText.caption = "Map size: Default";
|
||||
revealMapText.caption = "Reveal map: " + (mapSettings.RevealMap ? "Yes" : "No");
|
||||
victoryConditionText.caption = "Victory condition: " + VICTORY_TEXT[victoryIdx];
|
||||
lockTeamsText.caption = "Teams locked: " + (mapSettings.LockTeams === undefined || mapSettings.LockTeams ? "Yes" : "No");
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
error("onGameAttributesChange: Unexpected map type '"+g_GameAttributes.mapType+"'");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Display map name
|
||||
getGUIObjectByName("mapInfoName").caption = getMapDisplayName(mapName);
|
||||
|
||||
|
||||
// Load the description from the map file, if there is one
|
||||
var description = mapSettings.Description || "Sorry, no description available.";
|
||||
|
||||
|
||||
// Describe the number of players
|
||||
var playerString = numPlayers + " " + (numPlayers == 1 ? "player" : "players") + ". ";
|
||||
|
||||
|
||||
for (var i = 0; i < MAX_PLAYERS; ++i)
|
||||
{
|
||||
// Show only needed player slots
|
||||
getGUIObjectByName("playerBox["+i+"]").hidden = (i >= numPlayers);
|
||||
|
||||
|
||||
// Show player data or defaults as necessary
|
||||
if (i < numPlayers)
|
||||
{
|
||||
@ -854,15 +854,15 @@ function onGameAttributesChange()
|
||||
// Player data / defaults
|
||||
var pData = mapSettings.PlayerData ? mapSettings.PlayerData[i] : {};
|
||||
var pDefs = g_DefaultPlayerData ? g_DefaultPlayerData[i] : {};
|
||||
|
||||
|
||||
// Common to all game types
|
||||
var color = iColorToString(getSetting(pData, pDefs, "Colour"));
|
||||
pColor.sprite = "colour:"+color+" 100";
|
||||
pName.caption = getSetting(pData, pDefs, "Name");
|
||||
|
||||
|
||||
var team = getSetting(pData, pDefs, "Team");
|
||||
var civ = getSetting(pData, pDefs, "Civ");
|
||||
|
||||
|
||||
// For clients or scenarios, hide some player dropdowns
|
||||
if (!g_IsController || g_GameAttributes.mapType == "scenario")
|
||||
{
|
||||
@ -870,7 +870,7 @@ function onGameAttributesChange()
|
||||
pCiv.hidden = true;
|
||||
pTeamText.hidden = false;
|
||||
pTeam.hidden = true;
|
||||
|
||||
|
||||
// Set text values
|
||||
pCivText.caption = g_CivData[civ].Name;
|
||||
pTeamText.caption = (team !== undefined && team >= 0) ? team+1 : "-";
|
||||
@ -881,7 +881,7 @@ function onGameAttributesChange()
|
||||
pCiv.hidden = false;
|
||||
pTeamText.hidden = true;
|
||||
pTeam.hidden = false;
|
||||
|
||||
|
||||
// Set dropdown values
|
||||
pCiv.selected = (civ ? pCiv.list_data.indexOf(civ) : 0);
|
||||
pTeam.selected = (team !== undefined && team >= 0) ? team+1 : 0;
|
||||
@ -890,7 +890,7 @@ function onGameAttributesChange()
|
||||
}
|
||||
|
||||
getGUIObjectByName("mapInfoDescription").caption = playerString + description;
|
||||
|
||||
|
||||
g_IsInGuiUpdate = false;
|
||||
|
||||
// Game attributes include AI settings, so update the player list
|
||||
@ -903,7 +903,7 @@ function updateGameAttributes()
|
||||
{
|
||||
Engine.SetNetworkGameAttributes(g_GameAttributes);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
onGameAttributesChange();
|
||||
}
|
||||
@ -918,13 +918,13 @@ function updatePlayerList()
|
||||
var assignments = [];
|
||||
var aiAssignments = {};
|
||||
var noAssignment;
|
||||
|
||||
|
||||
for (var guid in g_PlayerAssignments)
|
||||
{
|
||||
var name = g_PlayerAssignments[guid].name;
|
||||
var hostID = hostNameList.length;
|
||||
var player = g_PlayerAssignments[guid].player;
|
||||
|
||||
|
||||
hostNameList.push(name);
|
||||
hostGuidList.push(guid);
|
||||
assignments[player] = hostID;
|
||||
@ -940,14 +940,14 @@ function updatePlayerList()
|
||||
noAssignment = hostNameList.length;
|
||||
hostNameList.push("[color=\"90 90 90 255\"]Unassigned");
|
||||
hostGuidList.push("");
|
||||
|
||||
|
||||
for (var i = 0; i < MAX_PLAYERS; ++i)
|
||||
{
|
||||
let playerSlot = i;
|
||||
let playerID = i+1; // we don't show Gaia, so first slot is ID 1
|
||||
|
||||
|
||||
var selection = assignments[playerID];
|
||||
|
||||
|
||||
var configButton = getGUIObjectByName("playerConfig["+i+"]");
|
||||
configButton.hidden = true;
|
||||
|
||||
@ -966,7 +966,7 @@ function updatePlayerList()
|
||||
{
|
||||
selection = noAssignment;
|
||||
}
|
||||
|
||||
|
||||
// Since no human is assigned, show the AI config button
|
||||
if (g_IsController)
|
||||
{
|
||||
@ -1005,7 +1005,7 @@ function updatePlayerList()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var assignBox = getGUIObjectByName("playerAssignment["+i+"]");
|
||||
assignBox.list = hostNameList;
|
||||
assignBox.list_data = hostGuidList;
|
||||
@ -1096,10 +1096,10 @@ function addChatMessage(msg)
|
||||
{
|
||||
var username = escapeText(msg.username || g_PlayerAssignments[msg.guid].name);
|
||||
var message = escapeText(msg.text);
|
||||
|
||||
|
||||
// TODO: Maybe host should have distinct font/color?
|
||||
var color = "0 0 0";
|
||||
|
||||
var color = "white";
|
||||
|
||||
if (g_PlayerAssignments[msg.guid] && g_PlayerAssignments[msg.guid].player != 255)
|
||||
{ // Valid player who has been assigned - get player colour
|
||||
var player = g_PlayerAssignments[msg.guid].player - 1;
|
||||
@ -1108,19 +1108,19 @@ function addChatMessage(msg)
|
||||
var mapSettings = (mapData && mapData.settings ? mapData.settings : {});
|
||||
var pData = mapSettings.PlayerData ? mapSettings.PlayerData[player] : {};
|
||||
var pDefs = g_DefaultPlayerData ? g_DefaultPlayerData[player] : {};
|
||||
|
||||
|
||||
color = iColorToString(getSetting(pData, pDefs, "Colour"));
|
||||
}
|
||||
|
||||
|
||||
var formatted;
|
||||
switch (msg.type)
|
||||
{
|
||||
case "connect":
|
||||
formatted = '[font="serif-bold-13"][color="'+ color +'"]' + username + '[/color][/font] [color="64 64 64"]has joined[/color]';
|
||||
formatted = '[font="serif-bold-13"][color="'+ color +'"]' + username + '[/color][/font] [color="gold"]has joined[/color]';
|
||||
break;
|
||||
|
||||
case "disconnect":
|
||||
formatted = '[font="serif-bold-13"][color="'+ color +'"]' + username + '[/color][/font] [color="64 64 64"]has left[/color]';
|
||||
formatted = '[font="serif-bold-13"][color="'+ color +'"]' + username + '[/color][/font] [color="gold"]has left[/color]';
|
||||
break;
|
||||
|
||||
case "message":
|
||||
@ -1148,7 +1148,7 @@ function addFilter(name, filterFunc)
|
||||
var newFilter = {};
|
||||
newFilter.name = name;
|
||||
newFilter.filter = filterFunc;
|
||||
|
||||
|
||||
g_MapFilters.push(newFilter);
|
||||
}
|
||||
else
|
||||
@ -1165,7 +1165,7 @@ function getFilters()
|
||||
{
|
||||
filters.push(g_MapFilters[i].name);
|
||||
}
|
||||
|
||||
|
||||
return filters;
|
||||
}
|
||||
|
||||
@ -1179,7 +1179,7 @@ function testFilter(name, mapSettings)
|
||||
return g_MapFilters[i].filter(mapSettings);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
error("Invalid map filter: "+name);
|
||||
return false;
|
||||
}
|
||||
@ -1191,7 +1191,7 @@ function keywordTestAND(keywords, matches)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
for (var m = 0; m < matches.length; ++m)
|
||||
{ // Fail on not match
|
||||
if (keywords.indexOf(matches[m]) == -1)
|
||||
@ -1209,7 +1209,7 @@ function keywordTestOR(keywords, matches)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
for (var m = 0; m < matches.length; ++m)
|
||||
{ // Success on match
|
||||
if (keywords.indexOf(matches[m]) != -1)
|
||||
|
@ -11,7 +11,7 @@
|
||||
<!-- Add a translucent black background to fade out the menu page -->
|
||||
<object type="image" z="0" sprite="BackgroundBlack"/>
|
||||
|
||||
<object type="image" style="StonePanel" size="50%-190 50%-80 50%+190 50%+80" name="loadingWindow">
|
||||
<object type="image" style="StonePanelLight" size="50%-190 50%-80 50%+190 50%+80" name="loadingWindow">
|
||||
|
||||
<object type="text" style="StoneDialogTitleBar" size="50%-128 0%-16 50%+128 16">
|
||||
Loading
|
||||
@ -35,12 +35,12 @@
|
||||
|
||||
<!-- Map selection -->
|
||||
<object size="20 64 250 100%-20">
|
||||
|
||||
|
||||
<object size="0 0 40% 100%">
|
||||
<object name="mapTypeHeading" type="text" style="RightLabelText" size="0 0 100% 28">Match Type:</object>
|
||||
<object name="mapFilterHeading" type="text" style="RightLabelText" size="0 34 100% 60">Map Filter:</object>
|
||||
</object>
|
||||
|
||||
|
||||
<object name="mapTypeSelection"
|
||||
type="dropdown"
|
||||
style="StoneDropDown"
|
||||
@ -49,7 +49,7 @@
|
||||
tooltip="Select a map type.">
|
||||
<action on="SelectionChange">selectMapType(this.list_data[this.selected]);</action>
|
||||
</object>
|
||||
|
||||
|
||||
<object name="mapFilterSelection"
|
||||
type="dropdown"
|
||||
style="StoneDropDown"
|
||||
@ -58,7 +58,7 @@
|
||||
tooltip="Select a map filter.">
|
||||
<action on="SelectionChange">selectMapFilter(this.list[this.selected]);</action>
|
||||
</object>
|
||||
|
||||
|
||||
<object name="mapSelection"
|
||||
style="StoneList"
|
||||
type="list"
|
||||
@ -67,12 +67,12 @@
|
||||
tooltip="Select a map to play on.">
|
||||
<action on="SelectionChange">selectMap(this.list_data[this.selected]);</action>
|
||||
</object>
|
||||
|
||||
|
||||
<object type="image" sprite="BackgroundIndentFillDark" size="0 100%-190 100% 100%">
|
||||
<object name="mapInfoName" type="text" style="LeftLabelText" size="0 0 100% 30"/>
|
||||
<object name="mapInfoDescription" type="text" style="SmallLeftLabelText" size="0 24 100% 100%"/>
|
||||
</object>
|
||||
|
||||
|
||||
</object>
|
||||
|
||||
<!-- Player assignments -->
|
||||
@ -124,8 +124,8 @@
|
||||
</repeat>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Options -->
|
||||
<object name="gameOptionsBox" size="260 100%-260 100% 100%-190">
|
||||
<object size="2 2 100% 50%-2"> <!-- Top row -->
|
||||
@ -141,22 +141,22 @@
|
||||
<object name="lockTeams" size="400 2 420 100%" type="checkbox" style="StoneCrossBox" hidden="true" tooltip_style="onscreenToolTip" tooltip="Toggle locked teams"/>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Chat window -->
|
||||
<object name="chatPanel" size="260 100%-190 100%-20 100%-58" type="image" sprite="BackgroundIndentFillDark">
|
||||
|
||||
|
||||
<object name="chatText" size="3 1 100%-1 100%-25" type="text" style="chatPanel"/>
|
||||
|
||||
|
||||
<object name="chatInput" size="2 100%-23 100%-66 100%-3" type="input" style="StoneInput">
|
||||
<action on="Press">submitChatInput();</action>
|
||||
</object>
|
||||
|
||||
|
||||
<object size="100%-65 100%-23 100% 100%-3" type="button" style="StoneButton">
|
||||
Send
|
||||
<action on="Press">submitChatInput();</action>
|
||||
</object>
|
||||
|
||||
|
||||
</object>
|
||||
|
||||
|
||||
@ -169,7 +169,7 @@
|
||||
hidden="true"
|
||||
size="260 100%-64 100%-310 100%-16"
|
||||
>[Tooltip text]</object>
|
||||
|
||||
|
||||
<object
|
||||
name="cancelGame"
|
||||
type="button"
|
||||
@ -183,7 +183,7 @@
|
||||
Engine.PopGuiPage();
|
||||
]]></action>
|
||||
</object>
|
||||
|
||||
|
||||
<object
|
||||
name="startGame"
|
||||
type="button"
|
||||
@ -194,7 +194,7 @@
|
||||
>Start game!
|
||||
<action on="Press">launchGame();</action>
|
||||
</object>
|
||||
|
||||
|
||||
</object>
|
||||
|
||||
</objects>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<styles>
|
||||
|
||||
<style name="indentedPanel"
|
||||
<!-- <style name="indentedPanel"
|
||||
buffer_zone="5"
|
||||
font="serif-14"
|
||||
sprite="wheatIndentFillLight"
|
||||
@ -10,16 +10,16 @@
|
||||
textcolor_selected="white"
|
||||
text_align="left"
|
||||
text_valign="center"
|
||||
/>
|
||||
/>-->
|
||||
|
||||
<style name="chatPanel"
|
||||
buffer_zone="5"
|
||||
font="serif-13"
|
||||
scrollbar="true"
|
||||
scrollbar_style="wheatScrollBar"
|
||||
scrollbar_style="StoneScrollBar"
|
||||
scroll_bottom="true"
|
||||
textcolor="black"
|
||||
textcolor_selected="white"
|
||||
textcolor="white"
|
||||
textcolor_selected="gold"
|
||||
text_align="left"
|
||||
text_valign="center"
|
||||
/>
|
||||
|
@ -11,7 +11,7 @@
|
||||
==========================================
|
||||
-->
|
||||
|
||||
<object type="image" sprite="bkFillBlack"/>
|
||||
<object type="image" sprite="BackgroundBlack"/>
|
||||
|
||||
<object name="pg">
|
||||
|
||||
@ -84,11 +84,11 @@
|
||||
|
||||
You can automatically send us anonymous feedback that will help us fix bugs, and improve performance and compatibility.
|
||||
</object>
|
||||
<object type="button" style="wheatButton" size="4 100%-36 150 100%-4">
|
||||
[font="serif-bold-16"]Enable feedback
|
||||
<object type="button" style="StoneButton" size="8 100%-36 146 100%-8">
|
||||
Enable feedback
|
||||
<action on="Press">Engine.SetUserReportEnabled(true);</action>
|
||||
</object>
|
||||
<object type="button" style="wheatButton" size="100%-150 100%-36 100%-4 100%-4">
|
||||
<object type="button" style="StoneButton" size="100%-146 100%-36 100%-8 100%-8">
|
||||
Technical details
|
||||
<action on="Press">Engine.PushGuiPage("page_manual.xml", { "page": "userreport" });</action>
|
||||
</object>
|
||||
@ -125,27 +125,27 @@ Status: $status.
|
||||
name="userReportMessageInput"
|
||||
size="4 130 100%-4 200"
|
||||
type="input"
|
||||
style="wheatInput"
|
||||
style="StoneInput"
|
||||
multiline="true"
|
||||
scrollbar="true"
|
||||
scrollbar_style="wheatScrollBar"
|
||||
scrollbar_style="StoneScrollBar"
|
||||
/>
|
||||
|
||||
<object size="100%-124 204 100%-4 236" type="button" style="wheatButton">
|
||||
<object size="100%-124 204 100%-4 232" type="button" style="StoneButton">
|
||||
Send Message
|
||||
<action on="Press">submitUserReportMessage();</action>
|
||||
</object>
|
||||
|
||||
<object type="button" style="wheatButton" size="4 100%-36 150 100%-4">
|
||||
<object type="button" style="StoneButton" size="8 100%-36 146 100%-8">
|
||||
Disable feedback
|
||||
<action on="Press">Engine.SetUserReportEnabled(false);</action>
|
||||
</object>
|
||||
<object type="button" style="wheatButton" size="100%-150 100%-36 100%-4 100%-4">
|
||||
<object type="button" style="StoneButton" size="100%-146 100%-36 100%-8 100%-8">
|
||||
Technical details
|
||||
<action on="Press">Engine.PushGuiPage("page_manual.xml", { "page": "userreport" });</action>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
@ -169,14 +169,14 @@ Status: $status.
|
||||
ghost="true"
|
||||
size="100%-2 0 100% 100%"
|
||||
/>
|
||||
|
||||
|
||||
<object name="productLogo"
|
||||
type="image"
|
||||
sprite="productLogo"
|
||||
ghost="true"
|
||||
size="50%-110 30 50%+110 130"
|
||||
/>
|
||||
|
||||
|
||||
<object name="mainMenuButtons"
|
||||
type="image"
|
||||
size="8 156 100%-8 356"
|
||||
@ -188,7 +188,7 @@ Status: $status.
|
||||
size="100% 0 100%+8 100%"
|
||||
ghost="false"
|
||||
/>
|
||||
|
||||
|
||||
<!-- LEARN TO PLAY BUTTON -->
|
||||
<object name="menuLearnToPlayButton"
|
||||
type="button"
|
||||
@ -205,7 +205,7 @@ Status: $status.
|
||||
]]>
|
||||
</action>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- SINGLEPLAYER BUTTON -->
|
||||
<object name="menuSinglePlayerButton"
|
||||
style="StoneButtonFancy"
|
||||
@ -221,7 +221,7 @@ Status: $status.
|
||||
]]>
|
||||
</action>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- MULTIPLAYER BUTTON -->
|
||||
<object name="menuMultiplayerButton"
|
||||
style="StoneButtonFancy"
|
||||
@ -237,7 +237,7 @@ Status: $status.
|
||||
]]>
|
||||
</action>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- TOOLS AND OPTIONS BUTTON -->
|
||||
<object name="menuToolsAndOptionsButton"
|
||||
style="StoneButtonFancy"
|
||||
@ -253,7 +253,7 @@ Status: $status.
|
||||
]]>
|
||||
</action>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- HISTORY BUTTON -->
|
||||
<object name="menuHistoryButton"
|
||||
style="StoneButtonFancy"
|
||||
@ -270,7 +270,7 @@ Status: $status.
|
||||
]]>
|
||||
</action>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- EXIT BUTTON -->
|
||||
<object name="menuExitButton"
|
||||
type="button"
|
||||
@ -291,56 +291,56 @@ Status: $status.
|
||||
</object>
|
||||
</object>
|
||||
|
||||
<!-- PRE-RELEASE INFO -->
|
||||
<!-- PRE-RELEASE INFO -->
|
||||
<object size="8 100%-340 100%-8 100%-100"
|
||||
type="image"
|
||||
type="image"
|
||||
style="TranslucentPanelThinBorder"
|
||||
>
|
||||
|
||||
<!-- PRE-RELEASE WARNING -->
|
||||
<object
|
||||
style="fancyTextHeadWhite"
|
||||
type="text"
|
||||
<!-- PRE-RELEASE WARNING -->
|
||||
<object
|
||||
font="serif-14"
|
||||
type="text"
|
||||
textcolor="white"
|
||||
size="8 8 100%-8 100%-36"
|
||||
ghost="true"
|
||||
>
|
||||
>
|
||||
[font="serif-bold-18"]Alpha Version[/font]
|
||||
|
||||
WARNING: This is an early development version of the game. Many features have not been added yet.
|
||||
WARNING: This is an early development version of the game. Many features have not been added yet.
|
||||
|
||||
Get involved at: wildfiregames.com/0ad
|
||||
Get involved at: wildfiregames.com/0ad
|
||||
</object>
|
||||
|
||||
<!-- CONTACT METHODS -->
|
||||
<object type="button"
|
||||
<!-- CONTACT METHODS -->
|
||||
<object type="button"
|
||||
style="StoneButton"
|
||||
tooltip_style="pgToolTip"
|
||||
tooltip="Click to open wildfiregames.com/0ad in your web browser."
|
||||
size="8 100%-36 50%-4 100%-8"
|
||||
>
|
||||
Website
|
||||
<action on="Press"><![CDATA[
|
||||
var url = "http://wildfiregames.com/0ad/";
|
||||
Engine.OpenURL(url);
|
||||
messageBox(400, 200, "Opening "+url+" in default web browser. Please wait...", "Opening page", 2);
|
||||
]]></action>
|
||||
</object>
|
||||
|
||||
>
|
||||
Website
|
||||
<action on="Press"><![CDATA[
|
||||
var url = "http://wildfiregames.com/0ad/";
|
||||
Engine.OpenURL(url);
|
||||
messageBox(400, 200, "Opening "+url+" in default web browser. Please wait...", "Opening page", 2);
|
||||
]]></action>
|
||||
</object>
|
||||
|
||||
<object type="button"
|
||||
style="StoneButton"
|
||||
tooltip_style="pgToolTip"
|
||||
tooltip="Click to chat in IRC. (#0ad at webchat.quakenet.org)"
|
||||
size="50%+4 100%-36 100%-8 100%-8"
|
||||
>
|
||||
IRC
|
||||
<action on="Press"><![CDATA[
|
||||
var url = "http://webchat.quakenet.org/?channels=0ad";
|
||||
Engine.OpenURL(url);
|
||||
messageBox(400, 200, "Opening "+url+" in default web browser. Please wait...", "Opening page", 2);
|
||||
]]></action>
|
||||
</object>
|
||||
</object>
|
||||
size="50%+4 100%-36 100%-8 100%-8"
|
||||
>
|
||||
IRC
|
||||
<action on="Press"><![CDATA[
|
||||
var url = "http://webchat.quakenet.org/?channels=0ad";
|
||||
Engine.OpenURL(url);
|
||||
messageBox(400, 200, "Opening "+url+" in default web browser. Please wait...", "Opening page", 2);
|
||||
]]></action>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
<!-- LOGO AND BUILD VERSION -->
|
||||
<object
|
||||
@ -375,16 +375,16 @@ Get involved at: wildfiregames.com/0ad
|
||||
this.caption = "Build: " + buildTime(0) + " - " + buildTime(2);
|
||||
]]></action>
|
||||
</object>
|
||||
|
||||
|
||||
</object>
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
- SUBMENU
|
||||
==========================================
|
||||
-->
|
||||
|
||||
|
||||
<object name="submenuScreen"
|
||||
type="image"
|
||||
hidden="true"
|
||||
@ -394,7 +394,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
getGUIObjectByName("submenu").hidden = true;
|
||||
getGUIObjectByName("MainMenuPanelRightBorderTop").size = "100%-2 0 100% 100%";
|
||||
</action>
|
||||
|
||||
|
||||
<!-- submenu -->
|
||||
<object name="submenu"
|
||||
type="image"
|
||||
@ -442,7 +442,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
]]></action>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- submenuMultiplayer -->
|
||||
<object name="submenuMultiplayer"
|
||||
type="image"
|
||||
@ -466,7 +466,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
Engine.PushGuiPage("page_gamesetup_mp.xml", "join");
|
||||
]]></action>
|
||||
</object>
|
||||
|
||||
|
||||
<object name="subMenuMultiplayerHostButton"
|
||||
type="button"
|
||||
style="StoneButtonFancy"
|
||||
@ -531,19 +531,19 @@ Get involved at: wildfiregames.com/0ad
|
||||
</object>
|
||||
</object><!-- end of submenu -->
|
||||
</object><!-- end of submenu screen -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
<object name="pgCampaignsBt"
|
||||
style="pgButton"
|
||||
@ -634,7 +634,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -667,7 +667,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
// Get credits text.
|
||||
var creditsArray = readFileLines("gui/text/credits.txt");
|
||||
|
||||
// Populate credits list.
|
||||
// Populate credits list.
|
||||
for (var creditsIndex = 0; creditsIndex < creditsArray.length; creditsIndex++)
|
||||
{
|
||||
// Add credit row to the end of the object's list.
|
||||
@ -735,7 +735,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
type="image"
|
||||
z="90"
|
||||
hidden="true"
|
||||
sprite="bkTranslucent"
|
||||
sprite="bkTranslucent"
|
||||
>-->
|
||||
|
||||
<!--
|
||||
@ -764,9 +764,9 @@ Get involved at: wildfiregames.com/0ad
|
||||
closeMainMenuSubWindow ("pgCampaigns");
|
||||
]]></action>
|
||||
</object>
|
||||
-->
|
||||
-->
|
||||
<!-- Add campaign screen controls here later -->
|
||||
<!--
|
||||
<!--
|
||||
</object>
|
||||
-->
|
||||
<!--
|
||||
@ -831,7 +831,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
global.curr_music.setGain (getGUIObjectByName ("pgOptionsAudioMusicGain").caption);
|
||||
g_ConfigDB.system["sound.mastergain"] = getGUIObjectByName ("pgOptionsAudioMusicGain").caption;
|
||||
}
|
||||
]]></action>
|
||||
]]></action>
|
||||
</object>
|
||||
-->
|
||||
<!--
|
||||
@ -911,7 +911,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
global.curr_music.setGain (getGUIObjectByName ("pgOptionsAudioMusicGain").caption);
|
||||
g_ConfigDB.system["sound.mastergain"] = getGUIObjectByName ("pgOptionsAudioMusicGain").caption;
|
||||
}
|
||||
]]></action>
|
||||
]]></action>
|
||||
</object>
|
||||
-->
|
||||
<!--
|
||||
@ -987,7 +987,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
// global.curr_music.setGain (getGUIObjectByName ("pgOptionsAudioMusicGain").caption);
|
||||
// g_ConfigDB.system["sound.mastergain"] = getGUIObjectByName ("pgOptionsAudioMusicGain").caption;
|
||||
}
|
||||
]]></action>
|
||||
]]></action>
|
||||
</object>
|
||||
-->
|
||||
<!--
|
||||
@ -1063,7 +1063,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
// global.curr_music.setGain (getGUIObjectByName ("pgOptionsAudioMusicGain").caption);
|
||||
// g_ConfigDB.system["sound.mastergain"] = getGUIObjectByName ("pgOptionsAudioMusicGain").caption;
|
||||
}
|
||||
]]></action>
|
||||
]]></action>
|
||||
</object>
|
||||
-->
|
||||
<!--
|
||||
@ -1138,7 +1138,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
// global.curr_music.setGain (getGUIObjectByName ("pgOptionsAudioMusicGain").caption);
|
||||
// g_ConfigDB.system["sound.mastergain"] = getGUIObjectByName ("pgOptionsAudioMusicGain").caption;
|
||||
}
|
||||
]]></action>
|
||||
]]></action>
|
||||
</object>
|
||||
|
||||
</object>
|
||||
@ -1486,7 +1486,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
type="button"
|
||||
size="80% 91% 99% 99%"
|
||||
tooltip="Display System Information."
|
||||
tooltip_style="pgFloatingToolTip"
|
||||
tooltip_style="pgFloatingToolTip"
|
||||
>System Info
|
||||
<action on="Press"><![CDATA[
|
||||
// Display System Information.
|
||||
@ -1537,7 +1537,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
]]></action>
|
||||
<action on="Press"><![CDATA[
|
||||
// Clicking the checkbox reverses the buttons
|
||||
]]></action>
|
||||
]]></action>
|
||||
</object>
|
||||
|
||||
</object>
|
||||
@ -1583,7 +1583,7 @@ Get involved at: wildfiregames.com/0ad
|
||||
openOptionsTab ("pgOptionsGame");
|
||||
]]></action>
|
||||
</object>
|
||||
-->
|
||||
-->
|
||||
<!--
|
||||
===============================================
|
||||
- OPTIONS SCREEN - OK BUTTON
|
||||
@ -1618,15 +1618,15 @@ Get involved at: wildfiregames.com/0ad
|
||||
type="button"
|
||||
size="60% 92% 90% 100%"
|
||||
tooltip="Close Options Screen, abandoning all changes."
|
||||
tooltip_style="pgFloatingToolTip"
|
||||
tooltip_style="pgFloatingToolTip"
|
||||
>Cancel
|
||||
<action on="Press"><![CDATA[
|
||||
// Close Options Screen, abandoning all changes.
|
||||
// Close Options Screen, abandoning all changes.
|
||||
closeMainMenuSubWindow ("pgOptions");
|
||||
]]></action>
|
||||
</object>
|
||||
|
||||
</object>
|
||||
|
||||
</object>
|
||||
-->
|
||||
<!--
|
||||
===============================================
|
||||
@ -1679,5 +1679,5 @@ Get involved at: wildfiregames.com/0ad
|
||||
|
||||
<!--END OF pgSubWindow-->
|
||||
<!-- </object>-->
|
||||
|
||||
|
||||
</objects>
|
||||
|
@ -32,15 +32,15 @@
|
||||
<!-- ================================ ================================ -->
|
||||
<!-- HOTKEYS (For some reason, they won't work properly unless outside menu) -->
|
||||
<!-- ================================ ================================ -->
|
||||
|
||||
|
||||
<!-- Exit button Hotkey -->
|
||||
<!--
|
||||
<action on="Press"><![CDATA[
|
||||
messageBox(400, 200, "Do you really want to quit?", "Confirmation", 0,
|
||||
["Yes", "No!"], [leaveGame, null]);
|
||||
]]></action>
|
||||
]]></action>
|
||||
-->
|
||||
|
||||
|
||||
<object hotkey="leave">
|
||||
<action on="Press">escapeKeyAction();</action>
|
||||
</object>
|
||||
@ -59,7 +59,7 @@
|
||||
<object hotkey="pause">
|
||||
<action on="Press">togglePause();</action>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Delete button Hotkey (For some reason it won't work when the console is visible -->
|
||||
<object hotkey="session.kill">
|
||||
<action on="Press">performCommand(g_Selection.toList()[0], "delete");</action>
|
||||
@ -69,16 +69,16 @@
|
||||
<object hotkey="camera.follow">
|
||||
<action on="Press">setCameraFollow(g_Selection.toList()[0]);</action>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Find idle warrior - TODO: Potentially move this to own UI button? -->
|
||||
<object hotkey="selection.idlewarrior">
|
||||
<action on="Press">findIdleUnit(["Hero", "Super", "CitizenSoldier", "Siege", "Warship"]);</action>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- ================================ ================================ -->
|
||||
<!-- Developer / Debug items -->
|
||||
<!-- ================================ ================================ -->
|
||||
|
||||
|
||||
<!-- Debug text -->
|
||||
<object name="debug"
|
||||
type="text"
|
||||
@ -96,7 +96,7 @@
|
||||
</action>
|
||||
|
||||
<object size="0 0 100%-18 16" type="text" style="devCommandsText">Control all units</object>
|
||||
<object size="100%-16 0 100% 16" type="checkbox" name="devControlAll" style="wheatCrossBox">
|
||||
<object size="100%-16 0 100% 16" type="checkbox" name="devControlAll" style="StoneCrossBox">
|
||||
<action on="Press">
|
||||
g_DevSettings.controlAll = this.checked;
|
||||
Engine.PostNetworkCommand( {"type": "control-all", "flag": this.checked} );
|
||||
@ -104,45 +104,45 @@
|
||||
</object>
|
||||
|
||||
<object size="0 16 100%-18 32" type="text" style="devCommandsText">Display selection state</object>
|
||||
<object size="100%-16 16 100% 32" type="checkbox" name="devDisplayState" style="wheatCrossBox"/>
|
||||
<object size="100%-16 16 100% 32" type="checkbox" name="devDisplayState" style="StoneCrossBox"/>
|
||||
|
||||
<object size="0 32 100%-18 48" type="text" style="devCommandsText">Pathfinder overlay</object>
|
||||
<object size="100%-16 32 100% 48" type="checkbox" style="wheatCrossBox">
|
||||
<object size="100%-16 32 100% 48" type="checkbox" style="StoneCrossBox">
|
||||
<action on="Press">Engine.GuiInterfaceCall("SetPathfinderDebugOverlay", this.checked);</action>
|
||||
</object>
|
||||
|
||||
<object size="0 48 100%-18 64" type="text" style="devCommandsText">Obstruction overlay</object>
|
||||
<object size="100%-16 48 100% 64" type="checkbox" style="wheatCrossBox">
|
||||
<object size="100%-16 48 100% 64" type="checkbox" style="StoneCrossBox">
|
||||
<action on="Press">Engine.GuiInterfaceCall("SetObstructionDebugOverlay", this.checked);</action>
|
||||
</object>
|
||||
|
||||
<object size="0 64 100%-18 80" type="text" style="devCommandsText">Unit motion overlay</object>
|
||||
<object size="100%-16 64 100% 80" type="checkbox" style="wheatCrossBox">
|
||||
<object size="100%-16 64 100% 80" type="checkbox" style="StoneCrossBox">
|
||||
<action on="Press">g_Selection.SetMotionDebugOverlay(this.checked);</action>
|
||||
</object>
|
||||
|
||||
<object size="0 80 100%-18 96" type="text" style="devCommandsText">Range overlay</object>
|
||||
<object size="100%-16 80 100% 96" type="checkbox" style="wheatCrossBox">
|
||||
<object size="100%-16 80 100% 96" type="checkbox" style="StoneCrossBox">
|
||||
<action on="Press">Engine.GuiInterfaceCall("SetRangeDebugOverlay", this.checked);</action>
|
||||
</object>
|
||||
|
||||
<object size="0 96 100%-18 112" type="text" style="devCommandsText">Restrict camera</object>
|
||||
<object size="100%-16 96 100% 112" type="checkbox" style="wheatCrossBox" checked="true">
|
||||
<object size="100%-16 96 100% 112" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Press">gameView.constrainCamera = this.checked;</action>
|
||||
</object>
|
||||
|
||||
<object size="0 112 100%-18 128" type="text" style="devCommandsText">Reveal map</object>
|
||||
<object name="devCommandsRevealMap" size="100%-16 112 100% 128" type="checkbox" style="wheatCrossBox">
|
||||
<object name="devCommandsRevealMap" size="100%-16 112 100% 128" type="checkbox" style="StoneCrossBox">
|
||||
<action on="Press">Engine.PostNetworkCommand({"type": "reveal-map", "enable": this.checked});</action>
|
||||
</object>
|
||||
|
||||
<object size="0 128 100%-18 144" type="text" style="devCommandsText">Enable time warp</object>
|
||||
<object size="100%-16 128 100% 144" type="checkbox" name="devTimeWarp" style="wheatCrossBox">
|
||||
<object size="100%-16 128 100% 144" type="checkbox" name="devTimeWarp" style="StoneCrossBox">
|
||||
<action on="Press">Engine.EnableTimeWarpRecording(this.checked ? 10 : 0);</action>
|
||||
</object>
|
||||
|
||||
<object size="0 144 100%-18 160" type="text" style="devCommandsText">Promote selected units</object>
|
||||
<object size="100%-16 144 100% 160" type="button" style="wheatCrossBox">
|
||||
<object size="100%-16 144 100% 160" type="button" style="StoneCrossBox">
|
||||
<action on="Press">Engine.PostNetworkCommand({"type": "promote", "entities": g_Selection.toList()});</action>
|
||||
</object>
|
||||
</object>
|
||||
@ -194,7 +194,7 @@
|
||||
</object>
|
||||
|
||||
</object>
|
||||
|
||||
|
||||
<!-- ================================ ================================ -->
|
||||
<!-- Menu -->
|
||||
<!-- ================================ ================================ -->
|
||||
@ -206,7 +206,7 @@
|
||||
<action on="MouseEnter">
|
||||
closeMenu();
|
||||
</action>
|
||||
|
||||
|
||||
<object name="menu"
|
||||
style="StonePanelThinBorder"
|
||||
type="image"
|
||||
@ -214,7 +214,7 @@
|
||||
hidden="true"
|
||||
>
|
||||
<object size="4 36 100%-4 50%+20">
|
||||
|
||||
|
||||
<!-- Settings button -->
|
||||
<object type="button"
|
||||
name="settingsButton"
|
||||
@ -284,45 +284,45 @@
|
||||
<object name="sessionDialogTitleBar" size="50%-96 -16 50%+96 16" type="image" style="StoneDialogTitleBar">
|
||||
<object name="sessionDialogTitle" type="text" style="TitleText" size="0 -2 100% 100%">Settings</object>
|
||||
</object>
|
||||
|
||||
|
||||
<object style="TranslucentPanelThinBorder"
|
||||
type="image"
|
||||
size="32 32 100%-32 100%-64"
|
||||
>
|
||||
<!-- Settings / shadows -->
|
||||
<object size="0 10 100%-80 35" type="text" style="RightLabelText" ghost="true">Enable Shadows</object>
|
||||
<object name="shadowsCheckbox" size="100%-56 15 100%-30 40" type="checkbox" style="wheatCrossBox" checked="true">
|
||||
<object name="shadowsCheckbox" size="100%-56 15 100%-30 40" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.shadows) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.shadows = this.checked;</action>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Shadow PCF -->
|
||||
<object size="0 35 100%-80 60" type="text" style="RightLabelText" ghost="true">Enable Shadow Filtering</object>
|
||||
<object name="shadowPCFCheckbox" size="100%-56 40 100%-30 65" type="checkbox" style="wheatCrossBox" checked="true">
|
||||
<object name="shadowPCFCheckbox" size="100%-56 40 100%-30 65" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.shadowPCF) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.shadowPCF = this.checked;</action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Water -->
|
||||
<object size="0 60 100%-80 85" type="text" style="RightLabelText" ghost="true">Enable Water Reflections</object>
|
||||
<object name="fancyWaterCheckbox" size="100%-56 65 100%-30 90" type="checkbox" style="wheatCrossBox" checked="true">
|
||||
<object name="fancyWaterCheckbox" size="100%-56 65 100%-30 90" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Load">if (renderer.fancyWater) this.checked = true; else this.checked = false;</action>
|
||||
<action on="Press">renderer.fancyWater = this.checked;</action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Music-->
|
||||
<object size="0 85 100%-80 110" type="text" style="RightLabelText" ghost="true">Enable Music</object>
|
||||
<object size="100%-56 90 100%-30 115" type="checkbox" style="wheatCrossBox" checked="true">
|
||||
<object size="100%-56 90 100%-30 115" type="checkbox" style="StoneCrossBox" checked="true">
|
||||
<action on="Press">if (this.checked) startMusic(); else stopMusic();</action>
|
||||
</object>
|
||||
|
||||
<!-- Settings / Dev Overlay -->
|
||||
<object size="0 110 100%-80 135" type="text" style="RightLabelText" ghost="true">Developer Overlay</object>
|
||||
<object size="100%-56 115 100%-30 140" type="checkbox" style="wheatCrossBox" checked="false">
|
||||
<object size="100%-56 115 100%-30 140" type="checkbox" style="StoneCrossBox" checked="false">
|
||||
<action on="Press">toggleDeveloperOverlay();</action>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Close button -->
|
||||
<object type="button"
|
||||
style="StoneButton"
|
||||
@ -347,7 +347,7 @@
|
||||
<!-- ================================ ================================ -->
|
||||
<object
|
||||
size="10 0 45% 100%"
|
||||
>
|
||||
>
|
||||
<!-- Food -->
|
||||
<object size="0 0 90 100%" type="image" style="resourceCounter" tooltip="Food" tooltip_style="sessionToolTipBold">
|
||||
<object size="0 -4 40 36" type="image" style="resourceIcon" cell_id="0"/>
|
||||
@ -388,16 +388,16 @@
|
||||
<!-- Phase -->
|
||||
<!-- ================================ ================================ -->
|
||||
<!--<object size="50%+50 4 50%+300 100%-2" name="PhaseTitleBar" type="text" font="serif-bold-stroke-14" textcolor="white"> Death Match :: Village Phase</object>-->
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- ================================ ================================ -->
|
||||
<!-- ALPHA LABELS (alpha, build time, revision) -->
|
||||
<!-- ================================ ================================ -->
|
||||
|
||||
|
||||
<!-- Displays Alpha name and number -->
|
||||
<object size="70%-128 0 70%+128 100%" name="alphaLabel" type="text" style="CenteredLabelText" text_valign="top" ghost="true">
|
||||
ALPHA VI : Fortuna
|
||||
|
||||
|
||||
<!-- Displays build date and revision number-->
|
||||
<object size="50%-128 0 50%+128 100%-2" name="buildTimeLabel" type="text" text_align="center" text_valign="bottom" font="serif-12" textcolor="white" ghost="true">
|
||||
<action on="Load"><![CDATA[this.caption = buildTime(0) + " (" + buildTime(2) + ")";]]></action>
|
||||
@ -416,7 +416,7 @@
|
||||
<object size="50%-32 50%-16 50%+32 50%+16" type="image" sprite="menuButton" name="menuButtonText" ghost="true">MENU</object>
|
||||
<action on="Press">openMenu();</action>
|
||||
</object> <!-- END OF MENU BUTTON -->
|
||||
|
||||
|
||||
</object> <!-- END OF TOP PANEL -->
|
||||
|
||||
<!-- ================================ ================================ -->
|
||||
@ -450,7 +450,7 @@
|
||||
type="image"
|
||||
sprite="mapPanel"
|
||||
z="20"
|
||||
>
|
||||
>
|
||||
<object name="minimap"
|
||||
type="minimap"
|
||||
size="14 14 100%-14 100%-14"
|
||||
@ -493,7 +493,7 @@
|
||||
</repeat>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
|
||||
<object name="unitGarrisonPanel"
|
||||
size="24 12 100% 100%"
|
||||
>
|
||||
@ -534,10 +534,10 @@
|
||||
>
|
||||
<!-- Unit details for Single Unit -->
|
||||
<object size="50%-112 0 50%+112 100%" name="detailsAreaSingle">
|
||||
|
||||
|
||||
<!-- Player Name -->
|
||||
<object size="0 0 100% 40" name="player" type="text" style="largeCenteredOutlinedText" tooltip_style="sessionToolTipBold"/>
|
||||
|
||||
|
||||
<!-- Stats -->
|
||||
<object size="8 36 50%-48 100%" name="statsArea" type="image">
|
||||
<!-- Attack icon -->
|
||||
@ -558,7 +558,7 @@
|
||||
<object size="100%-20 4 100%-4 20" name="rankIcon" type="image" sprite="" ghost="true"/>
|
||||
<object type="image" sprite="glassSquareIcon" ghost="true"/>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Stats Bars -->
|
||||
<object size= "50%+48 40 100% 136" type="image" tooltip_style="sessionToolTip">
|
||||
<!-- Health bar -->
|
||||
@ -567,21 +567,21 @@
|
||||
<object type="image" sprite="healthForeground" ghost="true" name="healthBar"/>
|
||||
<object type="image" sprite="statsBarShader" ghost="true"/>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Stamina bar -->
|
||||
<object size="32 0 44 100%" type="image" name="stamina" tooltip="Stamina" tooltip_style="sessionToolTip">
|
||||
<object type="image" sprite="staminaBackground" ghost="true"/>
|
||||
<object type="image" sprite="staminaForeground" ghost="true" name="staminaBar"/>
|
||||
<object type="image" sprite="statsBarShader" ghost="true"/>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Resource bar -->
|
||||
<object size="18 0 30 100%" type="image" name="resources" tooltip="Resources" tooltip_style="sessionToolTip">
|
||||
<object type="image" sprite="resourceBackground" ghost="true"/>
|
||||
<object type="image" sprite="resourceForeground" ghost="true" name="resourceBar"/>
|
||||
<object type="image" sprite="statsBarShader" ghost="true"/>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Experience bar -->
|
||||
<object size="46 0 58 100%" type="image" name="experience" tooltip="Experience" tooltip_style="sessionToolTip">
|
||||
<object type="image" sprite="experienceBackground" ghost="true"/>
|
||||
@ -589,14 +589,14 @@
|
||||
<object type="image" sprite="statsBarShader" ghost="true"/>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Specific Name -->
|
||||
<object size="0 142 100% 162" name="specific" type="text" style="largeCenteredOutlinedText" tooltip_style="sessionToolTipBold"/>
|
||||
</object>
|
||||
|
||||
<!-- Unit details for Multiple Units -->
|
||||
<object size="50%-112 0 50%+112 100%" name="detailsAreaMultiple">
|
||||
|
||||
|
||||
<object name="unitSelectionPanel"
|
||||
size="20 12 100%-20 100%"
|
||||
>
|
||||
@ -610,12 +610,12 @@
|
||||
</object>
|
||||
</repeat>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
<!-- Total -->
|
||||
<object size="100%-42 12 100%-8 46" type="image" sprite="groupsIcon">
|
||||
<object size="0 0 100% 100%" type="text" style="largeCenteredOutlinedText" name="numberOfUnits"/>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
<!-- Stats Bars -->
|
||||
<object size= "100%-38 52 100%-18 100%-40" type="image" tooltip_style="sessionToolTip">
|
||||
@ -625,7 +625,7 @@
|
||||
<object type="image" sprite="healthForeground" ghost="true" name="healthBarMultiple"/>
|
||||
<object type="image" sprite="statsBarShader" ghost="true"/>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Stamina bar -->
|
||||
<object size="14 0 26 100%" type="image" name="staminaMultiple" tooltip="Stamina" tooltip_style="sessionToolTipBold">
|
||||
<object type="image" sprite="staminaBackground" ghost="true"/>
|
||||
@ -727,9 +727,9 @@
|
||||
</object> <!-- END OF UNIT COMMANDS -->
|
||||
|
||||
</object><!-- END OF BOTTOM PANEL -->
|
||||
|
||||
|
||||
</object> <!-- END OF SN OBJECT -->
|
||||
|
||||
|
||||
<!-- ================================ ================================ -->
|
||||
<!-- Selection bandbox -->
|
||||
<!-- ================================ ================================ -->
|
||||
@ -749,7 +749,7 @@
|
||||
<object size="0 0 100% 100%" type="text" style="centeredText" name="disconnectedExitButtonText" ghost="true" font="serif-14">Return to Main Menu</object>
|
||||
<action on="Press">leaveGame()</action>
|
||||
</object>
|
||||
|
||||
|
||||
</object>
|
||||
|
||||
</objects>
|
||||
|
@ -1,11 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<sprites>
|
||||
<sprite name="bgInfoHeading">
|
||||
<image backcolor="255 255 255 30" size="0 0 100% 100%" />
|
||||
<sprite name="TabSpacer">
|
||||
<image backcolor="gold" size="0 0 100% 100%"/>
|
||||
</sprite>
|
||||
|
||||
<sprite name="bgInfoBox">
|
||||
<image backcolor="50 35 0 100" size="0 0 100% 100%" />
|
||||
|
||||
<sprite name="ForegroundTab">
|
||||
<image backcolor="255 255 255 40" size="0 0 100% 100%"/>
|
||||
<image backcolor="gold" size="0 0 2 100%"/>
|
||||
<image backcolor="gold" size="2 0 100%-2 2"/>
|
||||
<image backcolor="gold" size="100%-2 0 100% 100%"/>
|
||||
</sprite>
|
||||
|
||||
<sprite name="BackgroundTab">
|
||||
<image backcolor="50 35 0 120" size="0 0 100% 100%"/>
|
||||
<image backcolor="gold" size="0 0 1 100%"/>
|
||||
<image backcolor="gold" size="1 0 100%-1 1"/>
|
||||
<image backcolor="gold" size="100%-1 0 100% 100%"/>
|
||||
</sprite>
|
||||
|
||||
<sprite name="ForegroundBody">
|
||||
<image backcolor="255 255 255 40" size="0 0 100% 100%"/>
|
||||
<image backcolor="gold" size="0 0 2 100%"/>
|
||||
<image backcolor="gold" size="2 100%-2 100%-2 100%"/>
|
||||
<image backcolor="gold" size="100%-2 0 100% 100%"/>
|
||||
</sprite>
|
||||
</sprites>
|
||||
|
@ -27,16 +27,25 @@ function selectPanel(panelNumber)
|
||||
if (i != panelNumber)
|
||||
{
|
||||
getGUIObjectByName(panelNames[i]).hidden = true;
|
||||
getGUIObjectByName(panelButtonNames[i]).sprite = "bgInfoHeading";
|
||||
getGUIObjectByName(panelButtonNames[i]).sprite = "BackgroundTab";
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
getGUIObjectByName(panelNames[i]).hidden = false;
|
||||
getGUIObjectByName(panelButtonNames[i]).sprite = "bgInfoBox";
|
||||
getGUIObjectByName(panelButtonNames[i]).sprite = "ForegroundTab";
|
||||
adjustTabDividers(getGUIObjectByName(panelButtonNames[i]).size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function adjustTabDividers(tabSize)
|
||||
{
|
||||
var leftSpacer = getGUIObjectByName("tabDividerLeft");
|
||||
var rightSpacer = getGUIObjectByName("tabDividerRight");
|
||||
leftSpacer.size = "20 " + leftSpacer.size.top + " " + (tabSize.left + 2) + " " + leftSpacer.size.bottom;
|
||||
rightSpacer.size = (tabSize.right - 2) + " " + rightSpacer.size.top + " 100%-20 " + rightSpacer.size.bottom;
|
||||
}
|
||||
|
||||
function init(data)
|
||||
{
|
||||
var civData = loadCivData();
|
||||
@ -44,10 +53,11 @@ function init(data)
|
||||
getGUIObjectByName("timeElapsed").caption = "Time elapsed: " + timeToString(data.timeElapsed);
|
||||
|
||||
getGUIObjectByName("summaryText").caption = data.gameResult;
|
||||
|
||||
//Space player boxes
|
||||
|
||||
// Space player boxes
|
||||
var boxSpacing = 32;
|
||||
for (var i = 0; i < panelNames.length; ++i)
|
||||
{
|
||||
for (var j = 0; j < MAX_SLOTS; ++j)
|
||||
{
|
||||
var box = getGUIObjectByName("playerBox"+i+"["+j+"]");
|
||||
@ -57,134 +67,134 @@ function init(data)
|
||||
boxSize.bottom = j * boxSpacing + h;
|
||||
box.size = boxSize;
|
||||
}
|
||||
|
||||
// TODO set mapPlayers as playerCounters.length
|
||||
}
|
||||
|
||||
// TODO set maxPlayers as playerCounters.length
|
||||
var maxPlayers = data.playerStates.length - 1;
|
||||
|
||||
// align headers
|
||||
var left = 50;
|
||||
|
||||
// Align headers
|
||||
var left = 50;
|
||||
var width = 100;
|
||||
var playerNameHeadingWidth = 200;
|
||||
getGUIObjectByName("playerName0Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
|
||||
getGUIObjectByName("unitsTrainedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("unitsLostHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("enemyUnitsKilledHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("buildingsConstructedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("buildingsLostHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("enemyBuildingsDestroyedHeading").size = left + " 6 " + (left + width) + " 100%"; left += width;
|
||||
|
||||
var left = 50;
|
||||
getGUIObjectByName("playerName1Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
|
||||
getGUIObjectByName("civCentresBuiltHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("enemyCivCentresDestroyedHeading").size = left + " 6 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("mapExplorationHeading").size = left + " 6 " + (left + width) + " 100%"; left += width;
|
||||
|
||||
var left = 50;
|
||||
getGUIObjectByName("playerName2Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
|
||||
getGUIObjectByName("foodGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("vegetarianRatioHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("woodGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("metalGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("stoneGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("treasuresCollectedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
|
||||
getGUIObjectByName("playerName0Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
|
||||
getGUIObjectByName("unitsTrainedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("unitsLostHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("enemyUnitsKilledHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("buildingsConstructedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("buildingsLostHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("enemyBuildingsDestroyedHeading").size = left + " 6 " + (left + width) + " 100%"; left += width;
|
||||
|
||||
left = 50;
|
||||
getGUIObjectByName("playerName1Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
|
||||
getGUIObjectByName("civCentresBuiltHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("enemyCivCentresDestroyedHeading").size = left + " 6 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("mapExplorationHeading").size = left + " 6 " + (left + width) + " 100%"; left += width;
|
||||
|
||||
left = 50;
|
||||
getGUIObjectByName("playerName2Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
|
||||
getGUIObjectByName("foodGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("vegetarianRatioHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("woodGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("metalGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("stoneGatheredHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
getGUIObjectByName("treasuresCollectedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
|
||||
|
||||
// Show counters
|
||||
for (var i = 0; i < MAX_SLOTS; ++i)
|
||||
{
|
||||
{
|
||||
if (i < maxPlayers)
|
||||
{
|
||||
var playerState = data.playerStates[i+1];
|
||||
|
||||
|
||||
for (var k = 0; k < panelNames.length; ++k)
|
||||
{
|
||||
var playerBox = getGUIObjectByName("playerBox"+k+"["+i+"]");
|
||||
playerBox.hidden = false;
|
||||
|
||||
var colourString = "colour: "
|
||||
+ Math.floor(playerState.colour.r * 255) + " "
|
||||
+ Math.floor(playerState.colour.g * 255) + " "
|
||||
playerBox.hidden = false;
|
||||
|
||||
var colourString = "colour: "
|
||||
+ Math.floor(playerState.colour.r * 255) + " "
|
||||
+ Math.floor(playerState.colour.g * 255) + " "
|
||||
+ Math.floor(playerState.colour.b * 255);
|
||||
playerBox.sprite = colourString + " 32";
|
||||
var playerColourBox = getGUIObjectByName("playerColourBox"+k+"["+i+"]");
|
||||
playerColourBox.sprite = colourString + " 255";
|
||||
|
||||
|
||||
var playerName = getGUIObjectByName("playerName"+k+"["+i+"]");
|
||||
playerName.caption = playerState.name;
|
||||
|
||||
|
||||
|
||||
getGUIObjectByName("civIcon"+k+"["+i+"]").sprite = "stretched:"+civData[playerState.civ].Emblem;
|
||||
}
|
||||
|
||||
var unitsTrained = getGUIObjectByName("unitsTrained["+i+"]");
|
||||
var unitsLost = getGUIObjectByName("unitsLost["+i+"]");
|
||||
var enemyUnitsKilled = getGUIObjectByName("enemyUnitsKilled["+i+"]");
|
||||
var buildingsConstructed = getGUIObjectByName("buildingsConstructed["+i+"]");
|
||||
var buildingsLost = getGUIObjectByName("buildingsLost["+i+"]");
|
||||
var enemyBuildingsDestroyed = getGUIObjectByName("enemyBuildingsDestroyed["+i+"]");
|
||||
|
||||
var civCentresBuilt = getGUIObjectByName("civCentresBuilt["+i+"]");
|
||||
var enemyCivCentresDestroyed = getGUIObjectByName("enemyCivCentresDestroyed["+i+"]");
|
||||
var mapExploration = getGUIObjectByName("mapExploration["+i+"]");
|
||||
|
||||
var foodGathered = getGUIObjectByName("foodGathered["+i+"]");
|
||||
var vegetarianRatio = getGUIObjectByName("vegetarianRatio["+i+"]");
|
||||
var woodGathered = getGUIObjectByName("woodGathered["+i+"]");
|
||||
var metalGathered = getGUIObjectByName("metalGathered["+i+"]");
|
||||
var stoneGathered = getGUIObjectByName("stoneGathered["+i+"]");
|
||||
var treasuresCollected = getGUIObjectByName("treasuresCollected["+i+"]");
|
||||
|
||||
|
||||
var unitsTrained = getGUIObjectByName("unitsTrained["+i+"]");
|
||||
var unitsLost = getGUIObjectByName("unitsLost["+i+"]");
|
||||
var enemyUnitsKilled = getGUIObjectByName("enemyUnitsKilled["+i+"]");
|
||||
var buildingsConstructed = getGUIObjectByName("buildingsConstructed["+i+"]");
|
||||
var buildingsLost = getGUIObjectByName("buildingsLost["+i+"]");
|
||||
var enemyBuildingsDestroyed = getGUIObjectByName("enemyBuildingsDestroyed["+i+"]");
|
||||
|
||||
var civCentresBuilt = getGUIObjectByName("civCentresBuilt["+i+"]");
|
||||
var enemyCivCentresDestroyed = getGUIObjectByName("enemyCivCentresDestroyed["+i+"]");
|
||||
var mapExploration = getGUIObjectByName("mapExploration["+i+"]");
|
||||
|
||||
var foodGathered = getGUIObjectByName("foodGathered["+i+"]");
|
||||
var vegetarianRatio = getGUIObjectByName("vegetarianRatio["+i+"]");
|
||||
var woodGathered = getGUIObjectByName("woodGathered["+i+"]");
|
||||
var metalGathered = getGUIObjectByName("metalGathered["+i+"]");
|
||||
var stoneGathered = getGUIObjectByName("stoneGathered["+i+"]");
|
||||
var treasuresCollected = getGUIObjectByName("treasuresCollected["+i+"]");
|
||||
|
||||
// align counters
|
||||
|
||||
var left = 240;
|
||||
var width = 100;
|
||||
unitsTrained.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
unitsLost.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
enemyUnitsKilled.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
buildingsConstructed.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
buildingsLost.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
enemyBuildingsDestroyed.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
var size = getGUIObjectByName("playerBox0["+i+"]").size;
|
||||
|
||||
left = 240;
|
||||
width = 100;
|
||||
unitsTrained.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
unitsLost.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
enemyUnitsKilled.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
buildingsConstructed.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
buildingsLost.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
enemyBuildingsDestroyed.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
size = getGUIObjectByName("playerBox0["+i+"]").size;
|
||||
size.right = left + 10;
|
||||
getGUIObjectByName("playerBox0["+i+"]").size = size;
|
||||
|
||||
var left = 240;
|
||||
civCentresBuilt.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
enemyCivCentresDestroyed.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
mapExploration.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
var size = getGUIObjectByName("playerBox1["+i+"]").size;
|
||||
|
||||
left = 240;
|
||||
civCentresBuilt.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
enemyCivCentresDestroyed.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
mapExploration.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
size = getGUIObjectByName("playerBox1["+i+"]").size;
|
||||
size.right = left + 10;
|
||||
getGUIObjectByName("playerBox1["+i+"]").size = size;
|
||||
|
||||
var left = 240;
|
||||
foodGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
vegetarianRatio.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
woodGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
metalGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
stoneGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
|
||||
left = 240;
|
||||
foodGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
vegetarianRatio.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
woodGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
metalGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
stoneGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
treasuresCollected.size = left + " 2 " + (left + width) + " 100%"; left += width;
|
||||
var size = getGUIObjectByName("playerBox2["+i+"]").size;
|
||||
size = getGUIObjectByName("playerBox2["+i+"]").size;
|
||||
size.right = left + 10;
|
||||
getGUIObjectByName("playerBox2["+i+"]").size = size;
|
||||
|
||||
|
||||
// display counters
|
||||
unitsTrained.caption = playerState.statistics.unitsTrained;
|
||||
unitsLost.caption = playerState.statistics.unitsLost;
|
||||
enemyUnitsKilled.caption = playerState.statistics.enemyUnitsKilled;
|
||||
buildingsConstructed.caption = playerState.statistics.buildingsConstructed;
|
||||
buildingsLost.caption = playerState.statistics.buildingsLost;
|
||||
enemyBuildingsDestroyed.caption = playerState.statistics.enemyBuildingsDestroyed;
|
||||
|
||||
civCentresBuilt.caption = playerState.statistics.civCentresBuilt;
|
||||
enemyCivCentresDestroyed.caption = playerState.statistics.enemyCivCentresDestroyed;
|
||||
mapExploration.caption = playerState.statistics.percentMapExplored + "%";
|
||||
|
||||
foodGathered.caption = playerState.statistics.resourcesGathered.food;
|
||||
vegetarianRatio.caption = Math.floor(playerState.statistics.resourcesGathered.food > 0 ?
|
||||
unitsTrained.caption = playerState.statistics.unitsTrained;
|
||||
unitsLost.caption = playerState.statistics.unitsLost;
|
||||
enemyUnitsKilled.caption = playerState.statistics.enemyUnitsKilled;
|
||||
buildingsConstructed.caption = playerState.statistics.buildingsConstructed;
|
||||
buildingsLost.caption = playerState.statistics.buildingsLost;
|
||||
enemyBuildingsDestroyed.caption = playerState.statistics.enemyBuildingsDestroyed;
|
||||
|
||||
civCentresBuilt.caption = playerState.statistics.civCentresBuilt;
|
||||
enemyCivCentresDestroyed.caption = playerState.statistics.enemyCivCentresDestroyed;
|
||||
mapExploration.caption = playerState.statistics.percentMapExplored + "%";
|
||||
|
||||
foodGathered.caption = playerState.statistics.resourcesGathered.food;
|
||||
vegetarianRatio.caption = Math.floor(playerState.statistics.resourcesGathered.food > 0 ?
|
||||
(playerState.statistics.resourcesGathered.vegetarianFood / playerState.statistics.resourcesGathered.food) * 100 : 0) + "%";
|
||||
woodGathered.caption = playerState.statistics.resourcesGathered.wood;
|
||||
metalGathered.caption = playerState.statistics.resourcesGathered.metal;
|
||||
stoneGathered.caption = playerState.statistics.resourcesGathered.stone;
|
||||
treasuresCollected.caption = playerState.statistics.treasuresCollected;
|
||||
woodGathered.caption = playerState.statistics.resourcesGathered.wood;
|
||||
metalGathered.caption = playerState.statistics.resourcesGathered.metal;
|
||||
stoneGathered.caption = playerState.statistics.resourcesGathered.stone;
|
||||
treasuresCollected.caption = playerState.statistics.treasuresCollected;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -196,4 +206,6 @@ function init(data)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
selectPanel(0);
|
||||
}
|
||||
|
@ -9,7 +9,7 @@
|
||||
<objects>
|
||||
<script file="gui/common/functions_civinfo.js"/>
|
||||
<script file="gui/summary/summary.js"/>
|
||||
<object type="image" sprite="bkFillBlack">
|
||||
<object type="image" sprite="BackgroundBlack">
|
||||
|
||||
<object type="image"
|
||||
style="StonePanelLight"
|
||||
@ -18,9 +18,9 @@
|
||||
<object style="StoneDialogTitleBar" type="text" size="50%-128 0%-16 50%+128 16">
|
||||
Summary
|
||||
</object>
|
||||
|
||||
<object type="image" sprite="bgInfoHeading" size="16 16 100%-16 46">
|
||||
<object
|
||||
|
||||
<object type="image" sprite="ForegroundBody" size="20 20 100%-20 50">
|
||||
<object
|
||||
name="summaryText"
|
||||
type="text"
|
||||
size="50 0 100%-50 30"
|
||||
@ -28,8 +28,8 @@
|
||||
textcolor="255 255 255"
|
||||
text_align="center"
|
||||
/>
|
||||
|
||||
<object
|
||||
|
||||
<object
|
||||
name="timeElapsed"
|
||||
type="text"
|
||||
size="100%-200 0 100%-10 30"
|
||||
@ -38,22 +38,27 @@
|
||||
text_align="center"
|
||||
/>
|
||||
</object>
|
||||
|
||||
|
||||
<object name="unitsBuildingsPanelButton" type="button" sprite="bgInfoBox" size="16 75 166 101">
|
||||
|
||||
<object name="tabDividerLeft" type="image" sprite="TabSpacer" size="172 100 174 102"/>
|
||||
<object name="tabDividerRight" type="image" sprite="TabSpacer" size="328 100 330 102"/>
|
||||
|
||||
<object name="unitsBuildingsPanelButton" type="button" sprite="ForegroundTab" size="20 75 170 100">
|
||||
<action on="Press">selectPanel(0);</action>
|
||||
<object type="text" style="TitleText" ghost="true">Units/buildings</object>
|
||||
</object>
|
||||
<object name="conquestPanelButton" type="button" sprite="bgInfoHeading" size="172 75 322 101">
|
||||
|
||||
<object name="conquestPanelButton" type="button" sprite="BackgroundTab" size="176 75 326 100">
|
||||
<action on="Press">selectPanel(1);</action>
|
||||
<object type="text" style="TitleText" ghost="true">Conquest</object>
|
||||
</object>
|
||||
<object name="resourcesPanelButton" type="button" sprite="bgInfoHeading" size="328 75 476 101">
|
||||
|
||||
<object name="resourcesPanelButton" type="button" sprite="BackgroundTab" size="332 75 480 100">
|
||||
<action on="Press">selectPanel(2);</action>
|
||||
<object type="text" style="TitleText" ghost="true">Resources</object>
|
||||
</object>
|
||||
<object name="unitsBuildingsPanel" type="image" sprite="bgInfoBox" size="16 100 100%-16 100%-16">
|
||||
|
||||
|
||||
<object name="unitsBuildingsPanel" type="image" sprite="ForegroundBody" size="20 100 100%-20 100%-48">
|
||||
|
||||
<object size="0 0 100% 100%-50">
|
||||
<object name="playerName0Heading" type="text" style="LeftTabLabelText">
|
||||
Player name
|
||||
@ -76,9 +81,9 @@
|
||||
<object name="enemyBuildingsDestroyedHeading" type="text" style="CenteredTabLabelText">
|
||||
Enemy buildings destroyed
|
||||
</object>
|
||||
|
||||
</object>
|
||||
|
||||
|
||||
</object>
|
||||
|
||||
<object size="0 65 100% 100%-50">
|
||||
<repeat count="8">
|
||||
<object type="image" name="playerBox0[n]" size="10 0 10 30" hidden="true">
|
||||
@ -94,10 +99,10 @@
|
||||
</object>
|
||||
</repeat>
|
||||
</object>
|
||||
|
||||
|
||||
</object>
|
||||
<object name="conquestPanel" type="image" sprite="bgInfoBox" size="16 100 100%-16 100%-16" hidden="true">
|
||||
|
||||
<object name="conquestPanel" type="image" sprite="ForegroundBody" size="20 100 100%-20 100%-48" hidden="true">
|
||||
|
||||
<object size="0 0 100% 100%-50">
|
||||
<object name="playerName1Heading" type="text" style="LeftTabLabelText">
|
||||
Player name
|
||||
@ -111,8 +116,8 @@
|
||||
<object name="mapExplorationHeading" type="text" style="CenteredTabLabelText">
|
||||
Map exploration
|
||||
</object>
|
||||
</object>
|
||||
|
||||
</object>
|
||||
|
||||
<object size="0 65 100% 100%-50">
|
||||
<repeat count="8">
|
||||
<object type="image" name="playerBox1[n]" size="10 0 10 30" hidden="true">
|
||||
@ -125,10 +130,10 @@
|
||||
</object>
|
||||
</repeat>
|
||||
</object>
|
||||
|
||||
|
||||
</object>
|
||||
<object name="resourcesPanel" type="image" sprite="bgInfoBox" size="16 100 100%-16 100%-16" hidden="true">
|
||||
|
||||
<object name="resourcesPanel" type="image" sprite="ForegroundBody" size="20 100 100%-20 100%-48" hidden="true">
|
||||
|
||||
<object size="0 0 100% 100%-50">
|
||||
<object name="playerName2Heading" type="text" style="LeftTabLabelText">
|
||||
Player name
|
||||
@ -151,8 +156,8 @@
|
||||
<object name="treasuresCollectedHeading" type="text" style="CenteredTabLabelText">
|
||||
Treasures collected
|
||||
</object>
|
||||
</object>
|
||||
|
||||
</object>
|
||||
|
||||
<object size="0 65 100% 100%-50">
|
||||
<repeat count="8">
|
||||
<object type="image" name="playerBox2[n]" size="10 0 10 30" hidden="true">
|
||||
@ -168,9 +173,9 @@
|
||||
</object>
|
||||
</repeat>
|
||||
</object>
|
||||
|
||||
|
||||
</object>
|
||||
|
||||
|
||||
<object type="button" style="StoneButton" size="100%-176 100%-48 100%-20 100%-20">
|
||||
Main Menu
|
||||
<action on="Press"><![CDATA[
|
||||
|
Loading…
Reference in New Issue
Block a user