Ticket #4010: wondervictorymessagesfix_v4.patch
File wondervictorymessagesfix_v4.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 cmpPlayer = QueryPlayerIDInterface(i); 33 if (cmpPlayer.GetState() == "won") 34 return; 31 35 if (i != data.to) 32 36 players.push(i); 37 } 33 38 34 39 let cmpPlayer = QueryOwnerInterface(ent, IID_Player); 35 40 let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager); … … 58 63 this.wonderVictoryMessages[ent] = messages; 59 64 }; 60 65 66 Trigger.prototype.DeleteMessages = function(ent) 67 { 68 let cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface); 69 let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer); 70 71 for (let ent in this.wonderVictoryMessages) 72 { 73 cmpGuiInterface.DeleteTimeNotification(this.wonderVictoryMessages[ent].ownMessage); 74 cmpGuiInterface.DeleteTimeNotification(this.wonderVictoryMessages[ent].otherMessage); 75 cmpTimer.CancelTimer(this.wonderVictoryTimers[ent]); 76 } 77 }; 78 61 79 var cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger); 62 80 cmpTrigger.RegisterTrigger("OnOwnershipChanged", "CheckWonderVictory", { "enabled": true }); 81 cmpTrigger.RegisterTrigger("OnPlayerWon", "DeleteMessages", { "enabled": true }); 63 82 cmpTrigger.wonderVictoryTimers = {}; 64 83 cmpTrigger.wonderVictoryMessages = {}; -
binaries/data/mods/public/simulation/components/Trigger.js
14 14 "Interval", 15 15 "OwnershipChanged", 16 16 "PlayerCommand", 17 "PlayerDefeated", 18 "PlayerWon", 17 19 "Range", 18 20 "ResearchFinished", 19 21 "ResearchQueued", … … 253 255 // data is {"entity": ent, "from": playerId, "to": playerId} 254 256 }; 255 257 258 Trigger.prototype.OnGlobalPlayerDefeated = function(msg) 259 { 260 this.CallEvent("PlayerDefeated", msg); 261 }; 262 263 Trigger.prototype.OnGlobalPlayerWon = function(msg) 264 { 265 this.CallEvent("PlayerWon", msg); 266 }; 267 256 268 /** 257 269 * Execute a function after a certain delay. 258 270 *