Ticket #4010: wondervictorymessagesfix_v3.patch
File wondervictorymessagesfix_v3.patch, 2.3 KB (added by , 8 years ago) |
---|
-
binaries/data/mods/public/maps/scripts/WonderVictory.js
28 28 // Add -1 to notify observers too 29 29 let players = [-1]; 30 30 for (let i = 1; i < numPlayers; ++i) 31 { 32 let playerEntityId = cmpPlayerManager.GetPlayerByID(i); 33 let cmpPlayer = Engine.QueryInterface(playerEntityId, IID_Player); 34 if (cmpPlayer.GetState() == "won") 35 return; 31 36 if (i != data.to) 32 37 players.push(i); 38 } 33 39 34 40 let cmpPlayer = QueryOwnerInterface(ent, IID_Player); 35 41 let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager); … … 58 64 this.wonderVictoryMessages[ent] = messages; 59 65 }; 60 66 67 Trigger.prototype.DeleteMessages = function(ent) 68 { 69 let timers = this.wonderVictoryTimers; 70 let messages = this.wonderVictoryMessages; 71 if (!messages || !timers) 72 return; 73 74 let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer); 75 let cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface); 76 77 for (let message in messages) 78 { 79 cmpGuiInterface.DeleteTimeNotification(messages[message].ownMessage); 80 cmpGuiInterface.DeleteTimeNotification(messages[message].otherMessage); 81 } 82 83 for (let timer in timers) 84 cmpTimer.CancelTimer(timers[timer]); 85 }; 86 61 87 var cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger); 62 88 cmpTrigger.RegisterTrigger("OnOwnershipChanged", "CheckWonderVictory", { "enabled": true }); 63 89 cmpTrigger.wonderVictoryTimers = {}; -
binaries/data/mods/public/simulation/components/EndGameManager.js
131 131 this.AlliedVictoryCheck(); 132 132 }; 133 133 134 EndGameManager.prototype.OnGlobalPlayerWon = function(msg) 135 { 136 if (this.gameType != "wonder") 137 return; 138 139 let cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger); 140 cmpTrigger.DeleteMessages(); 141 }; 142 134 143 Engine.RegisterSystemComponentType(IID_EndGameManager, "EndGameManager", EndGameManager);