Ticket #3841: 3841_ingame_summary_v1.patch
File 3841_ingame_summary_v1.patch, 9.3 KB (added by , 8 years ago) |
---|
-
binaries/data/mods/public/gui/session/menu.js
617 617 pauseGame(); 618 618 619 619 let extendedSimState = Engine.GuiInterfaceCall("GetExtendedSimulationState"); 620 let playersToShow = []; 621 622 if (g_ViewedPlayer < 1 || extendedSimState.players[g_ViewedPlayer].state != "active") 623 playersToShow = extendedSimState.players; 624 else 625 for (let player in g_Players) 626 if (player == 0 || player == g_ViewedPlayer || extendedSimState.players[g_ViewedPlayer].hasSharedLos && g_Players[player].isMutualAlly[g_ViewedPlayer]) 627 playersToShow.push(extendedSimState.players[player]); 628 620 629 Engine.PushGuiPage("page_summary.xml", { 621 630 "sim": { 622 631 "mapSettings": g_GameAttributes.settings, 623 "playerStates": extendedSimState.players,632 "playerStates": playersToShow, 624 633 "timeElapsed" : extendedSimState.timeElapsed 625 634 }, 626 635 "gui": { -
binaries/data/mods/public/gui/session/menu.xml
48 48 style="StoneButtonFancy" 49 49 size="0 96 100% 124" 50 50 tooltip_style="sessionToolTip" 51 enabled="false"52 51 > 53 52 <translatableAttribute id="caption">Summary</translatableAttribute> 54 53 <action on="Press">openGameSummary();</action> -
binaries/data/mods/public/gui/session/session.js
480 480 // Disable stuff observers shouldn't use 481 481 Engine.GetGUIObjectByName("pauseButton").enabled = !g_IsObserver || !g_IsNetworked; 482 482 Engine.GetGUIObjectByName("menuResignButton").enabled = !g_IsObserver; 483 Engine.GetGUIObjectByName("summaryButton").enabled = g_IsObserver;484 483 } 485 484 486 485 function reportPerformance(time) … … 933 932 debug.caption = text.replace(/\[/g, "\\["); 934 933 } 935 934 935 function getAllyStatTooltip(resource) 936 { 937 let playersState = GetSimState().players; 938 let ret = ""; 939 for (let player in playersState) 940 if (player != 0 && player != g_ViewedPlayer && 941 (g_ViewedPlayer < 1 || playersState[g_ViewedPlayer].state != "active" || 942 playersState[g_ViewedPlayer].hasSharedLos && g_Players[player].isMutualAlly[g_ViewedPlayer])) 943 ret += '\n[color="'+ rgbToGuiColor(g_Players[player].color) +'"]' + playersState[player].name + '[/color]: ' + 944 (resource == "pop" ? 945 (playersState[player].popCount + "/" + playersState[player].popLimit) : 946 playersState[player].resourceCounts[resource]); 947 return ret; 948 } 949 936 950 function updatePlayerDisplay() 937 951 { 938 952 let playerState = GetSimState().players[g_ViewedPlayer]; … … 939 953 if (!playerState) 940 954 return; 941 955 942 Engine.GetGUIObjectByName("resourceFood").caption = Math.floor(playerState.resourceCounts.food); 943 Engine.GetGUIObjectByName("resourceWood").caption = Math.floor(playerState.resourceCounts.wood); 944 Engine.GetGUIObjectByName("resourceStone").caption = Math.floor(playerState.resourceCounts.stone); 945 Engine.GetGUIObjectByName("resourceMetal").caption = Math.floor(playerState.resourceCounts.metal); 956 let translatedResources = { 957 "food": translate("Food"), 958 "wood": translate("Wood"), 959 "stone": translate("Stone"), 960 "metal": translate("Metal") 961 } 962 for (let res of RESOURCES) 963 { 964 Engine.GetGUIObjectByName("resource_" + res).caption = Math.floor(playerState.resourceCounts[res]); 965 Engine.GetGUIObjectByName(res).tooltip = translatedResources[res] + getAllyStatTooltip(res); 966 } 946 967 Engine.GetGUIObjectByName("resourcePop").caption = playerState.popCount + "/" + playerState.popLimit; 947 968 Engine.GetGUIObjectByName("population").tooltip = translate("Population (current / limit)") + "\n" + 948 sprintf(translate("Maximum population: %(popCap)s"), { "popCap": playerState.popMax }); 969 sprintf(translate("Maximum population: %(popCap)s"), { "popCap": playerState.popMax }) + 970 getAllyStatTooltip("pop"); 949 971 950 972 g_IsTrainingBlocked = playerState.trainingBlocked; 951 973 } -
binaries/data/mods/public/gui/session/top_panel/resource_food.xml
1 1 <?xml version="1.0" encoding="utf-8"?> 2 2 <object name="food" size="10 0 100 100%" type="image" style="resourceCounter" tooltip_style="sessionToolTipBold"> 3 <translatableAttribute id="tooltip">Food</translatableAttribute>4 3 <object size="0 -4 40 36" type="image" sprite="stretched:session/icons/resources/food.png" ghost="true"/> 5 <object size="32 0 100% 100%-2" type="text" style="resourceText" name="resource Food"/>4 <object size="32 0 100% 100%-2" type="text" style="resourceText" name="resource_food"/> 6 5 </object> -
binaries/data/mods/public/gui/session/top_panel/resource_metal.xml
1 1 <?xml version="1.0" encoding="utf-8"?> 2 2 <object name="metal" size="280 0 370 100%" type="image" style="resourceCounter" tooltip_style="sessionToolTipBold"> 3 <translatableAttribute id="tooltip">Metal</translatableAttribute>4 3 <object size="0 -4 40 36" type="image" sprite="stretched:session/icons/resources/metal.png" ghost="true"/> 5 <object size="32 0 100% 100%-2" type="text" style="resourceText" name="resource Metal"/>4 <object size="32 0 100% 100%-2" type="text" style="resourceText" name="resource_metal"/> 6 5 </object> -
binaries/data/mods/public/gui/session/top_panel/resource_stone.xml
1 1 <?xml version="1.0" encoding="utf-8"?> 2 2 <object name="stone" size="190 0 280 100%" type="image" style="resourceCounter" tooltip_style="sessionToolTipBold"> 3 <translatableAttribute id="tooltip">Stone</translatableAttribute>4 3 <object size="0 -4 40 36" type="image" sprite="stretched:session/icons/resources/stone.png" ghost="true"/> 5 <object size="32 0 100% 100%-2" type="text" style="resourceText" name="resource Stone"/>4 <object size="32 0 100% 100%-2" type="text" style="resourceText" name="resource_stone"/> 6 5 </object> -
binaries/data/mods/public/gui/session/top_panel/resource_wood.xml
1 1 <?xml version="1.0" encoding="utf-8"?> 2 2 <object name="wood" size="100 0 190 100%" type="image" style="resourceCounter" tooltip_style="sessionToolTipBold"> 3 <translatableAttribute id="tooltip">Wood</translatableAttribute>4 3 <object size="0 -4 40 36" type="image" sprite="stretched:session/icons/resources/wood.png" ghost="true"/> 5 <object size="32 0 100% 100%-2" type="text" style="resourceText" name="resource Wood"/>4 <object size="32 0 100% 100%-2" type="text" style="resourceText" name="resource_wood"/> 6 5 </object> -
binaries/data/mods/public/simulation/components/GuiInterface.js
106 106 "teamsLocked": cmpPlayer.GetLockTeams(), 107 107 "cheatsEnabled": cmpPlayer.GetCheatsEnabled(), 108 108 "disabledTemplates": cmpPlayer.GetDisabledTemplates(), 109 "hasSharedLos": cmpPlayer.HasSharedLos(), 109 110 "hasSharedDropsites": cmpPlayer.HasSharedDropsites(), 110 111 "phase": phase, 111 112 "isAlly": allies, -
binaries/data/mods/public/simulation/components/Player.js
34 34 this.teamsLocked = false; 35 35 this.state = "active"; // game state - one of "active", "defeated", "won" 36 36 this.diplomacy = []; // array of diplomatic stances for this player with respect to other players (including gaia and self) 37 this.sharedLos = false; 37 38 this.sharedDropsites = false; 38 39 this.formations = []; 39 40 this.startCam = undefined; … … 545 546 return this.startCam !== undefined; 546 547 }; 547 548 549 Player.prototype.HasSharedLos = function() 550 { 551 return this.sharedLos; 552 }; 553 548 554 Player.prototype.HasSharedDropsites = function() 549 555 { 550 556 return this.sharedDropsites; … … 702 708 Player.prototype.OnResearchFinished = function(msg) 703 709 { 704 710 if (msg.tech == this.template.SharedLosTech) 711 { 705 712 this.UpdateSharedLos(); 713 this.sharedLos = true; 714 } 706 715 else if (msg.tech == this.template.SharedDropsitesTech) 707 716 this.sharedDropsites = true; 708 717 };