Ticket #1721: summary_screen_scoretab.patch

File summary_screen_scoretab.patch, 21.5 KB (added by EMontana, 11 years ago)

Adds a score tab in post-game summary screen

  • binaries/data/mods/public/gui/summary/summary.js

     
    11// Max player slots for any map (should read from config)
    22const MAX_SLOTS = 8;
    33
    4 var panelNames = [ 'unitsBuildingsPanel', 'conquestPanel', 'resourcesPanel', 'marketPanel' ];
    5 var panelButtonNames = [ 'unitsBuildingsPanelButton', 'conquestPanelButton', 'resourcesPanelButton', 'marketPanelButton' ];
     4var panelNames = [ 'scorePanel', 'unitsBuildingsPanel', 'conquestPanel', 'resourcesPanel', 'marketPanel' ];
     5var panelButtonNames = [ 'scorePanelButton', 'unitsBuildingsPanelButton', 'conquestPanelButton', 'resourcesPanelButton', 'marketPanelButton' ];
    66
    77/**
    88 * Select active panel
     
    8686    var width = 100;
    8787    var playerNameHeadingWidth = 200;
    8888    getGUIObjectByName("playerName0Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
     89    getGUIObjectByName("economyScoreHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
     90    getGUIObjectByName("militaryScoreHeading").size = left +  " 16 " + (left + width) + " 100%"; left += width;
     91    getGUIObjectByName("technologyScoreHeading").size = left +  " 16 " + (left + width) + " 100%"; left += width;
     92    getGUIObjectByName("totalScoreHeading").size = left +  " 16 " + (left + width) + " 100%"; left += width;
     93   
     94    left = 50;
     95    getGUIObjectByName("playerName1Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
    8996    getGUIObjectByName("unitsTrainedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
    9097    getGUIObjectByName("unitsLostHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
    9198    getGUIObjectByName("enemyUnitsKilledHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
     
    94101    getGUIObjectByName("enemyBuildingsDestroyedHeading").size = left +  " 6 " + (left + width) + " 100%"; left += width;
    95102
    96103    left = 50;
    97     getGUIObjectByName("playerName1Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
     104    getGUIObjectByName("playerName2Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
    98105    getGUIObjectByName("civCentresBuiltHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
    99106    getGUIObjectByName("enemyCivCentresDestroyedHeading").size = left +  " 6 " + (left + width) + " 100%"; left += width;
    100107    getGUIObjectByName("mapExplorationHeading").size = left +  " 6 " + (left + width) + " 100%"; left += width;
    101108
    102109    left = 50;
    103     getGUIObjectByName("playerName2Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
     110    getGUIObjectByName("playerName3Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
    104111    getGUIObjectByName("resourceHeading").size = left + " 16 " + (left + width * 4) + " 100%";
    105112    getGUIObjectByName("foodGatheredHeading").size = left + " 34 " + (left + width) + " 100%"; left += width;
    106113    getGUIObjectByName("woodGatheredHeading").size = left + " 34 " + (left + width) + " 100%"; left += width;
     
    110117    getGUIObjectByName("treasuresCollectedHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
    111118
    112119    left = 50;
    113     getGUIObjectByName("playerName3Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
     120    getGUIObjectByName("playerName4Heading").size = left + " 26 " + (left + playerNameHeadingWidth) + " 100%"; left += playerNameHeadingWidth;
    114121    getGUIObjectByName("exchangedFoodHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
    115122    getGUIObjectByName("exchangedWoodHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
    116123    getGUIObjectByName("exchangedStoneHeading").size = left + " 16 " + (left + width) + " 100%"; left += width;
     
    147154                getGUIObjectByName("civIcon"+k+"["+i+"]").tooltip = civData[playerState.civ].Name;
    148155            }
    149156
     157            var economyScore = getGUIObjectByName("economyScore["+i+"]");
     158            var militaryScore = getGUIObjectByName("militaryScore["+i+"]");
     159            var technologyScore = getGUIObjectByName("technologyScore["+i+"]");
     160            var totalScore = getGUIObjectByName("totalScore["+i+"]");
     161
    150162            var unitsTrained = getGUIObjectByName("unitsTrained["+i+"]");
    151163            var unitsLost = getGUIObjectByName("unitsLost["+i+"]");
    152164            var enemyUnitsKilled = getGUIObjectByName("enemyUnitsKilled["+i+"]");
     
    176188
    177189            left = 240;
    178190            width = 100;
     191            economyScore.size = left + " 2 " + (left + width) + " 100%"; left += width;
     192            militaryScore.size = left + " 2 " + (left + width) + " 100%"; left += width;
     193            technologyScore.size = left + " 2 " + (left + width) + " 100%"; left += width;
     194            totalScore.size = left + " 2 " + (left + width) + " 100%"; left += width;
     195            size = getGUIObjectByName("playerBox0["+i+"]").size;
     196            size.right = left + 10;
     197            getGUIObjectByName("playerBox0["+i+"]").size = size;
     198           
     199            left = 240;
    179200            unitsTrained.size = left + " 2 " + (left + width) + " 100%"; left += width;
    180201            unitsLost.size = left + " 2 " + (left + width) + " 100%"; left += width;
    181202            enemyUnitsKilled.size = left + " 2 " + (left + width) + " 100%"; left += width;
    182203            buildingsConstructed.size = left + " 2 " + (left + width) + " 100%"; left += width;
    183204            buildingsLost.size = left + " 2 " + (left + width) + " 100%"; left += width;
    184205            enemyBuildingsDestroyed.size = left + " 2 " + (left + width) + " 100%"; left += width;
    185             size = getGUIObjectByName("playerBox0["+i+"]").size;
     206            size = getGUIObjectByName("playerBox1["+i+"]").size;
    186207            size.right = left + 10;
    187             getGUIObjectByName("playerBox0["+i+"]").size = size;
     208            getGUIObjectByName("playerBox1["+i+"]").size = size;
    188209
    189210            left = 240;
    190211            civCentresBuilt.size = left + " 2 " + (left + width) + " 100%"; left += width;
    191212            enemyCivCentresDestroyed.size = left + " 2 " + (left + width) + " 100%"; left += width;
    192213            mapExploration.size = left + " 2 " + (left + width) + " 100%"; left += width;
    193             size = getGUIObjectByName("playerBox1["+i+"]").size;
     214            size = getGUIObjectByName("playerBox2["+i+"]").size;
    194215            size.right = left + 10;
    195             getGUIObjectByName("playerBox1["+i+"]").size = size;
     216            getGUIObjectByName("playerBox2["+i+"]").size = size;
    196217
    197218            left = 240;
    198219            foodGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;
     
    201222            metalGathered.size = left + " 2 " + (left + width) + " 100%"; left += width;
    202223            vegetarianRatio.size = left + " 2 " + (left + width) + " 100%"; left += width;
    203224            treasuresCollected.size = left + " 2 " + (left + width) + " 100%"; left += width;
    204             size = getGUIObjectByName("playerBox2["+i+"]").size;
     225            size = getGUIObjectByName("playerBox3["+i+"]").size;
    205226            size.right = left + 10;
    206             getGUIObjectByName("playerBox2["+i+"]").size = size;
     227            getGUIObjectByName("playerBox3["+i+"]").size = size;
    207228
    208229            left = 240;
    209230            exchangedFood.size = left + " 2 " + (left + width) + " 100%"; left += width;
     
    212233            exchangedMetal.size = left + " 2 " + (left + width) + " 100%"; left += width;
    213234            barterEfficiency.size = left + " 2 " + (left + width) + " 100%"; left += width;
    214235            tradeIncome.size = left + " 2 " + (left + width) + " 100%"; left += width;
    215             size = getGUIObjectByName("playerBox3["+i+"]").size;
     236            size = getGUIObjectByName("playerBox4["+i+"]").size;
    216237            size.right = left + 10;
    217             getGUIObjectByName("playerBox3["+i+"]").size = size;
     238            getGUIObjectByName("playerBox4["+i+"]").size = size;
    218239
    219240            // display counters
     241            economyScore.caption = Math.round((playerState.statistics.resourcesGathered.food + playerState.statistics.resourcesGathered.wood +
     242                playerState.statistics.resourcesGathered.stone + playerState.statistics.resourcesGathered.metal) / 10);
     243            militaryScore.caption = Math.round((playerState.statistics.enemyUnitsKilledValue + playerState.statistics.enemyBuildingsDestroyedValue) / 10);
     244            technologyScore.caption = playerState.statistics.percentMapExplored * 10;
     245            totalScore.caption = Number(economyScore.caption) + Number(militaryScore.caption) + Number(technologyScore.caption);
     246           
    220247            unitsTrained.caption = playerState.statistics.unitsTrained;
    221248            unitsLost.caption = playerState.statistics.unitsLost;
    222249            enemyUnitsKilled.caption = playerState.statistics.enemyUnitsKilled;
  • binaries/data/mods/public/gui/summary/summary.xml

     
    5757        <object name="tabDividerLeft" type="image" sprite="TabSpacer" size="172 120 174 122"/>
    5858        <object name="tabDividerRight" type="image" sprite="TabSpacer" size="328 120 330 122"/>
    5959
    60         <object name="unitsBuildingsPanelButton" type="button" sprite="ForegroundTab" size="20 95 170 120">
     60        <object name="scorePanelButton" type="button" sprite="ForegroundTab" size="20 95 170 120">
    6161            <action on="Press">selectPanel(0);</action>
     62            <object type="text" style="TitleText" ghost="true">Score</object>
     63        </object>
     64       
     65        <object name="unitsBuildingsPanelButton" type="button" sprite="BackgroundTab" size="176 95 326 120">
     66            <action on="Press">selectPanel(1);</action>
    6267            <object type="text" style="TitleText" ghost="true">Units/buildings</object>
    6368        </object>
    6469
    65         <object name="conquestPanelButton" type="button" sprite="BackgroundTab" size="176 95 326 120">
    66             <action on="Press">selectPanel(1);</action>
     70        <object name="conquestPanelButton" type="button" sprite="BackgroundTab" size="332 95 480 120">
     71            <action on="Press">selectPanel(2);</action>
    6772            <object type="text" style="TitleText" ghost="true">Conquest</object>
    6873        </object>
    6974
    70         <object name="resourcesPanelButton" type="button" sprite="BackgroundTab" size="332 95 480 120">
    71             <action on="Press">selectPanel(2);</action>
     75        <object name="resourcesPanelButton" type="button" sprite="BackgroundTab" size="486 95 636 120">
     76            <action on="Press">selectPanel(3);</action>
    7277            <object type="text" style="TitleText" ghost="true">Resources</object>
    7378        </object>
    7479
    75         <object name="marketPanelButton" type="button" sprite="BackgroundTab" size="486 95 636 120">
    76             <action on="Press">selectPanel(3);</action>
     80        <object name="marketPanelButton" type="button" sprite="BackgroundTab" size="642 95 792 120">
     81            <action on="Press">selectPanel(4);</action>
    7782            <object type="text" style="TitleText" ghost="true">Market</object>
    7883        </object>
    7984
    80         <object name="unitsBuildingsPanel" type="image" sprite="ForegroundBody" size="20 120 100%-20 100%-58">
     85        <object name="scorePanel" type="image" sprite="ForegroundBody" size="20 120 100%-20 100%-58">
    8186
    8287            <object size="0 0 100% 100%-50">
    8388                <object name="playerName0Heading" type="text" style="LeftTabLabelText">
    8489                    Player name
    8590                </object>
     91                <object name="economyScoreHeading" type="text" style="CenteredTabLabelText">
     92                    Economy&#10;score
     93                </object>
     94                <object name="militaryScoreHeading" type="text" style="CenteredTabLabelText">
     95                    Military&#10;score
     96                </object>
     97                <object name="technologyScoreHeading" type="text" style="CenteredTabLabelText">
     98                    Technology&#10;score
     99                </object>
     100                <object name="totalScoreHeading" type="text" style="CenteredTabLabelText">
     101                    Total&#10;score
     102                </object>
     103            </object>
     104
     105            <object size="0 65 100% 100%-50">
     106                <repeat count="8">
     107                    <object type="image" name="playerBox0[n]" size="10 0 10 30" hidden="true">
     108                        <object name="playerColourBox0[n]"          type="image" size="10 4 30 24" />
     109                        <object name="playerName0[n]"               type="text"  style="LeftLabelText" size="40 2 208 100%" />
     110                        <object name="civIcon0[n]"                  type="image" size="208 0 240 32" tooltip_style="sessionToolTip"/>
     111                        <object name="economyScore[n]"              type="text" style="CenteredLabelText"/>
     112                        <object name="militaryScore[n]"             type="text" style="CenteredLabelText"/>
     113                        <object name="technologyScore[n]"           type="text" style="CenteredLabelText"/>
     114                        <object name="totalScore[n]"                type="text" style="CenteredLabelText"/>
     115                    </object>
     116                </repeat>
     117            </object>
     118
     119        </object>       
     120        <object name="unitsBuildingsPanel" type="image" sprite="ForegroundBody" size="20 120 100%-20 100%-58" hidden="true">
     121
     122            <object size="0 0 100% 100%-50">
     123                <object name="playerName1Heading" type="text" style="LeftTabLabelText">
     124                    Player name
     125                </object>
    86126                <object name="unitsTrainedHeading" type="text" style="CenteredTabLabelText">
    87127                    Units&#10;trained
    88128                </object>
     
    106146
    107147            <object size="0 65 100% 100%-50">
    108148                <repeat count="8">
    109                     <object type="image" name="playerBox0[n]" size="10 0 10 30" hidden="true">
    110                         <object name="playerColourBox0[n]"          type="image" size="10 4 30 24" />
    111                         <object name="playerName0[n]"               type="text" style="LeftLabelText" size="40 2 208 100%" />
    112                         <object name="civIcon0[n]"                  type="image" size="208 0 240 32" tooltip_style="sessionToolTip"/>
     149                    <object type="image" name="playerBox1[n]" size="10 0 10 30" hidden="true">
     150                        <object name="playerColourBox1[n]"          type="image" size="10 4 30 24" />
     151                        <object name="playerName1[n]"               type="text" style="LeftLabelText" size="40 2 208 100%" />
     152                        <object name="civIcon1[n]"                  type="image" size="208 0 240 32" tooltip_style="sessionToolTip"/>
    113153                        <object name="unitsTrained[n]"              type="text" style="CenteredLabelText"/>
    114154                        <object name="unitsLost[n]"                 type="text" style="CenteredLabelText"/>
    115155                        <object name="enemyUnitsKilled[n]"          type="text" style="CenteredLabelText"/>
     
    124164        <object name="conquestPanel" type="image" sprite="ForegroundBody" size="20 120 100%-20 100%-58" hidden="true">
    125165
    126166            <object size="0 0 100% 100%-50">
    127                 <object name="playerName1Heading" type="text" style="LeftTabLabelText">
     167                <object name="playerName2Heading" type="text" style="LeftTabLabelText">
    128168                    Player name
    129169                </object>
    130170                <object name="civCentresBuiltHeading" type="text" style="CenteredTabLabelText">
     
    140180
    141181            <object size="0 65 100% 100%-50">
    142182                <repeat count="8">
    143                     <object type="image" name="playerBox1[n]" size="10 0 10 30" hidden="true">
    144                         <object name="playerColourBox1[n]"          type="image" size="10 4 30 24" />
    145                         <object name="playerName1[n]"               type="text"  style="LeftLabelText" size="40 2 208 100%" />
    146                         <object name="civIcon1[n]"                  type="image" size="208 0 240 32" tooltip_style="sessionToolTip"/>
     183                    <object type="image" name="playerBox2[n]" size="10 0 10 30" hidden="true">
     184                        <object name="playerColourBox2[n]"          type="image" size="10 4 30 24" />
     185                        <object name="playerName2[n]"               type="text"  style="LeftLabelText" size="40 2 208 100%" />
     186                        <object name="civIcon2[n]"                  type="image" size="208 0 240 32" tooltip_style="sessionToolTip"/>
    147187                        <object name="civCentresBuilt[n]"           type="text" style="CenteredLabelText"/>
    148188                        <object name="enemyCivCentresDestroyed[n]"  type="text" style="CenteredLabelText"/>
    149189                        <object name="mapExploration[n]"        type="text" style="CenteredLabelText"/>
     
    155195        <object name="resourcesPanel" type="image" sprite="ForegroundBody" size="20 120 100%-20 100%-58" hidden="true">
    156196
    157197            <object size="0 0 100% 100%-50">
    158                 <object name="playerName2Heading" type="text" style="LeftTabLabelText">
     198                <object name="playerName3Heading" type="text" style="LeftTabLabelText">
    159199                    Player name
    160200                </object>
    161201                <object name="resourceHeading" type="text" style="CenteredTabLabelText">
     
    183223
    184224            <object size="0 65 100% 100%-50">
    185225                <repeat count="8">
    186                     <object type="image" name="playerBox2[n]" size="10 0 10 30" hidden="true">
    187                         <object name="playerColourBox2[n]"      type="image" size="10 4 30 24" />
    188                         <object name="playerName2[n]"           type="text"  style="LeftLabelText" size="40 2 208 100%" />
    189                         <object name="civIcon2[n]"              type="image" size="208 0 240 32" tooltip_style="sessionToolTip"/>
     226                    <object type="image" name="playerBox3[n]" size="10 0 10 30" hidden="true">
     227                        <object name="playerColourBox3[n]"      type="image" size="10 4 30 24" />
     228                        <object name="playerName3[n]"           type="text"  style="LeftLabelText" size="40 2 208 100%" />
     229                        <object name="civIcon3[n]"              type="image" size="208 0 240 32" tooltip_style="sessionToolTip"/>
    190230                        <object name="foodGathered[n]"          type="text" style="CenteredLabelText"/>
    191231                        <object name="woodGathered[n]"          type="text" style="CenteredLabelText"/>
    192232                        <object name="stoneGathered[n]"         type="text" style="CenteredLabelText" />
     
    201241        <object name="marketPanel" type="image" sprite="ForegroundBody" size="20 120 100%-20 100%-58" hidden="true">
    202242
    203243            <object size="0 0 100% 100%-50">
    204                 <object name="playerName3Heading" type="text" style="LeftTabLabelText">
     244                <object name="playerName4Heading" type="text" style="LeftTabLabelText">
    205245                    Player name
    206246                </object>
    207247                <object name="exchangedFoodHeading" type="text" style="CenteredTabLabelText">
     
    226266
    227267            <object size="0 65 100% 100%-50">
    228268                <repeat count="8">
    229                     <object type="image" name="playerBox3[n]" size="10 0 10 30" hidden="true">
    230                         <object name="playerColourBox3[n]"      type="image" size="10 4 30 24" />
    231                         <object name="playerName3[n]"           type="text"  style="LeftLabelText" size="40 2 208 100%" />
    232                         <object name="civIcon3[n]"              type="image" size="208 0 240 32" tooltip_style="sessionToolTip"/>
     269                    <object type="image" name="playerBox4[n]" size="10 0 10 30" hidden="true">
     270                        <object name="playerColourBox4[n]"      type="image" size="10 4 30 24" />
     271                        <object name="playerName4[n]"           type="text"  style="LeftLabelText" size="40 2 208 100%" />
     272                        <object name="civIcon4[n]"              type="image" size="208 0 240 32" tooltip_style="sessionToolTip"/>
    233273                        <object name="exchangedFood[n]"         type="text" style="CenteredLabelText"/>
    234274                        <object name="exchangedWood[n]"         type="text" style="CenteredLabelText"/>
    235275                        <object name="exchangedStone[n]"         type="text" style="CenteredLabelText"/>
  • binaries/data/mods/public/simulation/components/StatisticsTracker.js

     
    88    // units
    99    this.unitsTrained = 0;
    1010    this.unitsLost = 0;
     11    this.unitsLostValue = 0;
    1112    this.enemyUnitsKilled = 0;
     13    this.enemyUnitsKilledValue = 0;
    1214    //buildings
    1315    this.buildingsConstructed = 0;
    1416    this.buildingsLost = 0;
     17    this.buildingsLostValue = 0;
    1518    this.enemyBuildingsDestroyed = 0;
     19    this.enemyBuildingsDestroyedValue = 0;
    1620    // civ centres
    1721    this.civCentresBuilt = 0;
    1822    this.enemyCivCentresDestroyed = 0;
     
    2832            "food": 0,
    2933            "wood": 0,
    3034            "metal": 0,
    31             "stone": 0,
     35            "stone": 0
    3236    };
    3337    this.resourcesSold = {
    3438            "food": 0,
     
    5155    return {
    5256        "unitsTrained": this.unitsTrained,
    5357        "unitsLost": this.unitsLost,
     58        "unitsLostValue": this.unitsLostValue,
    5459        "enemyUnitsKilled": this.enemyUnitsKilled,
     60        "enemyUnitsKilledValue": this.enemyUnitsKilledValue,
    5561        "buildingsConstructed": this.buildingsConstructed,
    5662        "buildingsLost": this.buildingsLost,
     63        "buildingsLostValue": this.buildingsLostValue,
    5764        "enemyBuildingsDestroyed": this.enemyBuildingsDestroyed,
     65        "enemyBuildingsDestroyedValue": this.enemyBuildingsDestroyedValue,
    5866        "civCentresBuilt": this.civCentresBuilt,
    5967        "enemyCivCentresDestroyed": this.enemyCivCentresDestroyed,
    6068        "resourcesGathered": this.resourcesGathered,
     
    8593StatisticsTracker.prototype.KilledEntity = function(targetEntity)
    8694{
    8795    var cmpTargetEntityIdentity = Engine.QueryInterface(targetEntity, IID_Identity);
     96    var cmpCost = Engine.QueryInterface(targetEntity, IID_Cost);
     97    var costs = cmpCost.GetResourceCosts();
    8898    if (cmpTargetEntityIdentity)
    8999    {
    90100        var cmpFoundation = Engine.QueryInterface(targetEntity, IID_Foundation);
     
    101111        if (cmpTargetOwnership.GetOwner() != 0)
    102112        {
    103113            if (targetIsUnit)
     114            {
    104115                this.enemyUnitsKilled++;
     116                for (var r in costs)
     117                {
     118                    this.enemyUnitsKilledValue += (costs[r]);
     119                }
     120            }   
    105121            if (targetIsStructure)
     122            {
    106123                this.enemyBuildingsDestroyed++;
     124                for (var r in costs)
     125                {
     126                    this.enemyBuildingsDestroyedValue += (costs[r]);
     127                }
     128            }
    107129            if (targetIsCivCentre && targetIsStructure)
    108130                this.enemyCivCentresDestroyed++;
    109131        }
     
    113135StatisticsTracker.prototype.LostEntity = function(lostEntity)
    114136{
    115137    var cmpLostEntityIdentity = Engine.QueryInterface(lostEntity, IID_Identity);
     138    var cmpCost = Engine.QueryInterface(lostEntity, IID_Cost);
     139    var costs = cmpCost.GetResourceCosts();
    116140    if (cmpLostEntityIdentity)
    117141    {
    118142        var cmpFoundation = Engine.QueryInterface(lostEntity, IID_Foundation);
     
    123147        var lostEntityIsUnit = cmpLostEntityIdentity.HasClass("Unit") && !lostEntityIsDomesticAnimal;
    124148
    125149        if (lostEntityIsUnit)
     150        {
    126151            this.unitsLost++;
     152            for (var r in costs)
     153            {
     154                this.unitsLostValue += (costs[r]);
     155            }   
     156        }   
    127157        if (lostEntityIsStructure)
     158        {
    128159            this.buildingsLost++;
     160            for (var r in costs)
     161            {
     162                this.buildingsLostValue += (costs[r]);
     163            }
     164        }
    129165    }
    130166};
    131167