Ticket #3150: team_exploration_score_v4.patch

File team_exploration_score_v4.patch, 9.8 KB (added by Imarok, 8 years ago)

changes g_TeamMiscHelperData to g_TeamHelperData to be used in all panels and fixes the team exploration score

  • binaries/data/mods/public/gui/credits/texts/programming.json

     
    8383            {"nick": "h20", "name": "Daniel Wilhelm"},
    8484            {"nick": "historic_bruno", "name": "Ben Brian"},
    8585            {"nick": "idanwin"},
     86            {"nick": "Imarok", "name": "J. S."},
    8687            {"nick": "infyquest", "name": "Vijay Kiran Kamuju"},
    8788            {"nick": "IronNerd", "name": "Matthew McMullan"},
    8889            {"nick": "Itms", "name": "Nicolas Auvray"},
  • binaries/data/mods/public/gui/summary/counters.js

     
    11// FUNCTIONS FOR CALCULATING SCORES
    2 var g_TeamMiscHelperData = [];
     2var g_TeamHelperData = [];
    33
    44function resetDataHelpers()
    55{
    6     g_TeamMiscHelperData = [];
     6    g_TeamHelperData = [];
    77}
    88
    99function updateCountersPlayer(playerState, counters, idGUI)
     
    3232
    3333function calculateExplorationScore(playerState, position)
    3434{
     35    if (!g_TeamHelperData[playerState.team])
     36        g_TeamHelperData[playerState.team] = {};
     37
     38    if (!g_TeamHelperData[playerState.team].hasOwnProperty("percentMapExplored"))
     39        g_TeamHelperData[playerState.team].percentMapExplored = 0;
     40
     41    g_TeamHelperData[playerState.team].percentMapExplored = playerState.statistics.teamPercentMapExplored;
     42
    3543    return playerState.statistics.percentMapExplored * 10;
    3644}
    3745
     
    5260        for (let w in counters)
    5361        {
    5462            let total = 0;
    55             for (let p = 0; p < g_Teams[t]; ++p)
    56                 total += (+Engine.GetGUIObjectByName("valueDataTeam[" + t + "][" + p + "][" + w + "]").caption);
     63            //w == 2 is the team exploration score
     64            //the players exploration score can't be added because there might be regions both players explored
     65            if(w == 2) 
     66                total = g_TeamHelperData[t].percentMapExplored * 10;
     67            else
     68                for (let p = 0; p < g_Teams[t]; ++p)
     69                    total += (+Engine.GetGUIObjectByName("valueDataTeam[" + t + "][" + p + "][" + w + "]").caption);
    5770
    5871            Engine.GetGUIObjectByName("valueDataTeam[" + t + "][" + w + "]").caption = total;
    5972        }
     
    262275
    263276function calculateVegetarianRatio(playerState, position)
    264277{
    265     if (!g_TeamMiscHelperData[playerState.team])
    266         g_TeamMiscHelperData[playerState.team] = [];
     278    if (!g_TeamHelperData[playerState.team])
     279        g_TeamHelperData[playerState.team] = {};
    267280
    268     if (!g_TeamMiscHelperData[playerState.team][position])
    269         g_TeamMiscHelperData[playerState.team][position] = { "food": 0, "vegetarianFood": 0 };
     281    if (!g_TeamHelperData[playerState.team].hasOwnProperty("food"))
     282        g_TeamHelperData[playerState.team].food = 0;
    270283
     284    if (!g_TeamHelperData[playerState.team].hasOwnProperty("vegetarianFood"))
     285        g_TeamHelperData[playerState.team].vegetarianFood = 0;
     286
    271287    if (playerState.statistics.resourcesGathered.vegetarianFood && playerState.statistics.resourcesGathered.food)
    272288    {
    273         g_TeamMiscHelperData[playerState.team][position].food += playerState.statistics.resourcesGathered.food;
    274         g_TeamMiscHelperData[playerState.team][position].vegetarianFood += playerState.statistics.resourcesGathered.vegetarianFood;
     289        g_TeamHelperData[playerState.team].food += playerState.statistics.resourcesGathered.food;
     290        g_TeamHelperData[playerState.team].vegetarianFood += playerState.statistics.resourcesGathered.vegetarianFood;
    275291        return Math.floor((playerState.statistics.resourcesGathered.vegetarianFood / playerState.statistics.resourcesGathered.food) * 100) + "%";
    276292    }
    277293    else
     
    280296
    281297function calculateFeminization(playerState, position)
    282298{
    283     if (!g_TeamMiscHelperData[playerState.team])
    284         g_TeamMiscHelperData[playerState.team] = [];
     299    if (!g_TeamHelperData[playerState.team])
     300        g_TeamHelperData[playerState.team] = {};
    285301
    286     if (!g_TeamMiscHelperData[playerState.team][position])
    287         g_TeamMiscHelperData[playerState.team][position] = { "Female": 0, "Worker": 0 };
     302    if (!g_TeamHelperData[playerState.team].hasOwnProperty("female"))
     303        g_TeamHelperData[playerState.team].female = 0;
    288304
     305    if (!g_TeamHelperData[playerState.team].hasOwnProperty("worker"))
     306        g_TeamHelperData[playerState.team].worker = 0;
     307
    289308    if (playerState.statistics.unitsTrained.Worker && playerState.statistics.unitsTrained.Female)
    290309    {
    291         g_TeamMiscHelperData[playerState.team][position].Female = playerState.statistics.unitsTrained.Female;
    292         g_TeamMiscHelperData[playerState.team][position].Worker = playerState.statistics.unitsTrained.Worker;
     310        g_TeamHelperData[playerState.team].female = playerState.statistics.unitsTrained.Female;
     311        g_TeamHelperData[playerState.team].worker = playerState.statistics.unitsTrained.Worker;
    293312        return Math.floor((playerState.statistics.unitsTrained.Female / playerState.statistics.unitsTrained.Worker) * 100) + "%";
    294313    }
    295314    else
     
    298317
    299318function calculateKillDeathRatio(playerState, position)
    300319{
    301     if (!g_TeamMiscHelperData[playerState.team])
    302         g_TeamMiscHelperData[playerState.team] = [];
     320    if (!g_TeamHelperData[playerState.team])
     321        g_TeamHelperData[playerState.team] = {};
    303322
    304     if (!g_TeamMiscHelperData[playerState.team][position])
    305         g_TeamMiscHelperData[playerState.team][position] = { "enemyUnitsKilled": 0, "unitsLost": 0 };
     323    if (!g_TeamHelperData[playerState.team].hasOwnProperty("enemyUnitsKilled"))
     324        g_TeamHelperData[playerState.team].enemyUnitsKilled = 0;
    306325
    307     g_TeamMiscHelperData[playerState.team][position].enemyUnitsKilled = playerState.statistics.enemyUnitsKilled.total;
    308     g_TeamMiscHelperData[playerState.team][position].unitsLost = playerState.statistics.unitsLost.total;
     326    if (!g_TeamHelperData[playerState.team].hasOwnProperty("unitsLost"))
     327        g_TeamHelperData[playerState.team].unitsLost = 0;
    309328
     329    g_TeamHelperData[playerState.team].enemyUnitsKilled = playerState.statistics.enemyUnitsKilled.total;
     330    g_TeamHelperData[playerState.team].unitsLost = playerState.statistics.unitsLost.total;
     331
    310332    if (!playerState.statistics.enemyUnitsKilled.total)
    311333        return g_DefaultDecimal;
    312334
     
    318340
    319341function calculateMapExploration(playerState, position)
    320342{
    321     if (!g_TeamMiscHelperData[playerState.team])
    322         g_TeamMiscHelperData[playerState.team] = [];
     343    if (!g_TeamHelperData[playerState.team])
     344        g_TeamHelperData[playerState.team] = {};
    323345
    324     g_TeamMiscHelperData[playerState.team][position] = playerState.statistics.teamPercentMapExplored;
     346    if (!g_TeamHelperData[playerState.team].hasOwnProperty("percentMapExplored"))
     347        g_TeamHelperData[playerState.team].percentMapExplored = 0;
    325348
     349    g_TeamHelperData[playerState.team].percentMapExplored = playerState.statistics.teamPercentMapExplored;
     350
    326351    return playerState.statistics.percentMapExplored + "%";
    327352}
    328353
    329354function calculateMapFinalControl(playerState, position)
    330355{
    331     if (!g_TeamMiscHelperData[playerState.team])
    332         g_TeamMiscHelperData[playerState.team] = [];
     356    if (!g_TeamHelperData[playerState.team])
     357        g_TeamHelperData[playerState.team] = {};
    333358
    334     g_TeamMiscHelperData[playerState.team][position] = playerState.statistics.teamPercentMapControlled;
     359    if (!g_TeamHelperData[playerState.team].hasOwnProperty("percentMapControlled"))
     360        g_TeamHelperData[playerState.team].percentMapControlled = 0;
    335361
     362    g_TeamHelperData[playerState.team].percentMapControlled = playerState.statistics.teamPercentMapControlled;
     363
    336364    return playerState.statistics.percentMapControlled + "%";
    337365}
    338366
    339367function calculateMapPeakControl(playerState, position)
    340368{
    341     if (!g_TeamMiscHelperData[playerState.team])
    342         g_TeamMiscHelperData[playerState.team] = [];
     369    if (!g_TeamHelperData[playerState.team])
     370        g_TeamHelperData[playerState.team] = {};
    343371
    344     g_TeamMiscHelperData[playerState.team][position] = playerState.statistics.teamPeakPercentMapControlled;
     372    if (!g_TeamHelperData[playerState.team].hasOwnProperty("peakPercentMapControlled"))
     373        g_TeamHelperData[playerState.team].peakPercentMapControlled = 0;
    345374
     375    g_TeamHelperData[playerState.team].peakPercentMapControlled = playerState.statistics.teamPeakPercentMapControlled;
     376
    346377    return playerState.statistics.peakPercentMapControlled + "%";
    347378}
    348379
     
    358389            let teamTotal = "undefined";
    359390
    360391            if (w == 0)
    361                 teamTotal = (g_TeamMiscHelperData[t][w].food == 0 ? "0" : Math.floor((g_TeamMiscHelperData[t][w].vegetarianFood / g_TeamMiscHelperData[t][w].food) * 100)) + "%";
     392                teamTotal = (g_TeamHelperData[t].food == 0 ? "0" : Math.floor((g_TeamHelperData[t].vegetarianFood / g_TeamHelperData[t].food) * 100)) + "%";
    362393            else if (w == 1)
    363                 teamTotal = (g_TeamMiscHelperData[t][w].Worker == 0 ? "0" : Math.floor((g_TeamMiscHelperData[t][w].Female / g_TeamMiscHelperData[t][w].Worker) * 100)) + "%";
     394                teamTotal = (g_TeamHelperData[t].worker == 0 ? "0" : Math.floor((g_TeamHelperData[t].female / g_TeamHelperData[t].worker) * 100)) + "%";
    364395            else if (w == 2)
    365396            {
    366                 if (!g_TeamMiscHelperData[t][w].enemyUnitsKilled)
     397                if (!g_TeamHelperData[t].enemyUnitsKilled)
    367398                    teamTotal = g_DefaultDecimal;
    368                 else if (!g_TeamMiscHelperData[t][w].unitsLost) // and enemyUnitsKilled.total > 0
     399                else if (!g_TeamHelperData[t].unitsLost)    // and enemyUnitsKilled.total > 0
    369400                    teamTotal = g_InfiniteSymbol; // infinity symbol
    370401                else
    371                     teamTotal = Math.round((g_TeamMiscHelperData[t][w].enemyUnitsKilled / g_TeamMiscHelperData[t][w].unitsLost) * 100) / 100;
     402                    teamTotal = Math.round((g_TeamHelperData[t].enemyUnitsKilled / g_TeamHelperData[t].unitsLost) * 100) / 100;
    372403            }
    373             else if (w >= 3)
    374                 teamTotal = g_TeamMiscHelperData[t][w] + "%";
     404            else if (w == 3)
     405                teamTotal = g_TeamHelperData[t].percentMapExplored + "%";
     406            else if (w == 4)
     407                teamTotal = g_TeamHelperData[t].percentMapControlled + "%";
     408            else if (w == 5)
     409                teamTotal = g_TeamHelperData[t].peakPercentMapControlled + "%";
    375410
    376411            Engine.GetGUIObjectByName("valueDataTeam[" + t + "][" + w + "]").caption = teamTotal;
    377412        }