Ticket #4010: wondervictorymessagesfix.patch

File wondervictorymessagesfix.patch, 1.7 KB (added by Sandarac, 8 years ago)

There's probably a better way to do this.

  • binaries/data/mods/public/maps/scripts/WonderVictory.js

     
    2828    // Add -1 to notify observers too
    2929    var players = [-1];
    3030    for (var i = 1; i < numPlayers; i++)
     31    {
     32        var playerEntityId = cmpPlayerManager.GetPlayerByID(i);
     33        let cmpPlayer = Engine.QueryInterface(playerEntityId, IID_Player);
     34        if (cmpPlayer.GetState() == "won")
     35            return;
    3136        if (i != data.to)
    3237            players.push(i);
     38    }
    3339
    3440    var time = cmpWonder.GetVictoryDuration();
    3541    messages.otherMessage = cmpGuiInterface.AddTimeNotification({
  • binaries/data/mods/public/simulation/components/EndGameManager.js

     
    5151EndGameManager.prototype.MarkPlayerAsWon = function(playerID)
    5252{
    5353    var cmpPlayerManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager);
     54    var cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
     55    var messages = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger).wonderVictoryMessages;
     56
     57    for (let message in messages)
     58    {
     59        cmpGuiInterface.DeleteTimeNotification(messages[message].otherMessage);
     60        cmpGuiInterface.DeleteTimeNotification(messages[message].ownMessage);
     61    }
     62
    5463    var numPlayers = cmpPlayerManager.GetNumPlayers();
    5564    for (var i = 1; i < numPlayers; i++)
    5665    {