Ticket #3379: t3379_show_diplomacy_changes_to_observers_v1.patch

File t3379_show_diplomacy_changes_to_observers_v1.patch, 3.9 KB (added by elexis, 9 years ago)
  • binaries/data/mods/public/gui/session/messages.js

     
    464464                message = translate("You are now allied with %(player)s.");
    465465            else if (msg.status == "enemy")
    466466                message = translate("You are now at war with %(player)s.");
    467467            else // (msg.status == "neutral")
    468468                message = translate("You are now neutral with %(player)s.");
     469            formatted = sprintf(message, { "player": '[color="'+ playerColor + '"]' + username + '[/color]' });
    469470        }
    470471        else if (msg.player1 == Engine.GetPlayerID())
    471472        {
    472473            [username, playerColor] = getUsernameAndColor(msg.player);
    473474            if (msg.status == "ally")
    474475                message = translate("%(player)s is now allied with you.");
    475476            else if (msg.status == "enemy")
    476477                message = translate("%(player)s is now at war with you.");
    477478            else // (msg.status == "neutral")
    478479                message = translate("%(player)s is now neutral with you.");
     480            formatted = sprintf(message, { "player": '[color="'+ playerColor + '"]' + username + '[/color]' });
     481        }
     482        else if (g_IsObserver)
     483        {
     484            [username, playerColor] = getUsernameAndColor(msg.player);
     485            let [username2, playerColor2] = getUsernameAndColor(msg.player1);
     486
     487            if (msg.status == "ally")
     488                message = translate("%(player1)s is now allied with %(player2)s.");
     489            else if (msg.status == "enemy")
     490                message = translate("%(player1)s is now at war with %(player2)s.");
     491            else
     492                message = translate("%(player1)s is now neutral with %(player2)s.");
     493           
     494            formatted = sprintf(message,
     495            {
     496                "player1": '[color="' + playerColor + '"]' + username + '[/color]',
     497                "player2": '[color="' + playerColor2 + '"]' + username2 + '[/color]'
     498            });
    479499        }
    480500        else // No need for other players to know of this.
    481501            return;
    482 
    483         formatted = sprintf(message, { "player": '[color="'+ playerColor + '"]' + username + '[/color]' });
    484502        break;
    485503    case "tribute":
    486504        if (msg.player != Engine.GetPlayerID())
    487505            return;
    488506
  • binaries/data/mods/public/gui/session/session.js

     
    1414var g_CivData = {};
    1515
    1616var g_GameSpeeds = {};
    1717var g_CurrentSpeed;
    1818
    19 var g_PlayerAssignments = { "local": { "name": translate("You"), "player": 1 } };
     19var g_PlayerAssignments = {};
    2020
    2121// Cache dev-mode settings that are frequently or widely used
    2222var g_DevSettings = {
    2323    controlAll: false
    2424};
     
    145145}
    146146
    147147// Init
    148148function init(initData, hotloadData)
    149149{
     150    g_IsObserver = Engine.GetPlayerID() == -1;
     151
    150152    if (initData)
    151153    {
    152154        g_IsNetworked = initData.isNetworked; // Set network mode
    153155        g_IsController = initData.isController; // Set controller mode
    154156        g_PlayerAssignments = initData.playerAssignments;
    155157        g_MatchID = initData.attribs.matchID;
    156158
    157         // Cache the player data
    158         // (This may be updated at runtime by handleNetMessage)
    159         g_Players = getPlayerData(g_PlayerAssignments);
    160 
    161159        if (initData.savedGUIData)
    162160            restoreSavedGameData(initData.savedGUIData);
    163161
    164162        Engine.GetGUIObjectByName("gameSpeedButton").hidden = g_IsNetworked;
    165163    }
    166     else // Needed for autostart loading option
    167     {
    168         g_Players = getPlayerData(null);
    169     }
     164    else if (!g_IsObserver) // Needed for autostart loading option
     165        g_PlayerAssignments = { "local": { "name": translate("You"), "player": 1 } };
     166
     167    // Cache player data (This may be updated by handleNetMessage)
     168    g_Players = getPlayerData(g_PlayerAssignments);
    170169
    171170    // Cache civ data
    172171    g_CivData = loadCivData();
    173172    g_CivData["gaia"] = { "Code": "gaia", "Name": translate("Gaia") };
    174173
    175     if (Engine.GetPlayerID() <= 0)
    176         g_IsObserver = true;
    177 
    178174    updateTopPanel();
    179175
    180176    g_GameSpeeds = initGameSpeeds();
    181177    g_CurrentSpeed = Engine.GetSimRate();
    182178    var gameSpeed = Engine.GetGUIObjectByName("gameSpeed");