From 13288df4f40e6987a16299448d3f1c74036dac8a Mon Sep 17 00:00:00 2001 From: bb Date: Sat, 6 Apr 2019 21:58:20 +0000 Subject: [PATCH] Update the wonder victory timer in case the wonder renames. Reviewed By: smiley Comment By: elexis Differential Revision: https://code.wildfiregames.com/D1732 This was SVN commit r22165. --- .../mods/public/maps/scripts/WonderVictory.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/binaries/data/mods/public/maps/scripts/WonderVictory.js b/binaries/data/mods/public/maps/scripts/WonderVictory.js index ce8a820dc3..9b8d4e4c83 100644 --- a/binaries/data/mods/public/maps/scripts/WonderVictory.js +++ b/binaries/data/mods/public/maps/scripts/WonderVictory.js @@ -1,7 +1,21 @@ +Trigger.prototype.WonderVictoryEntityRenamed = function(data) +{ + if (this.wonderVictoryMessages[data.entity] && Engine.QueryInterface(data.newentity, IID_Wonder)) + { + // When an entity is renamed, we first create a new entity, + // which in case it is a wonder will recieve a timer. + // However on a rename we want to use the timer from the old entity, + // so we need to remove the timer of the new entity. + this.WonderVictoryDeleteTimer(data.newentity); + + this.wonderVictoryMessages[data.newentity] = this.wonderVictoryMessages[data.entity]; + delete this.wonderVictoryMessages[data.entity]; + } +}; + Trigger.prototype.WonderVictoryOwnershipChanged = function(data) { - let cmpWonder = Engine.QueryInterface(data.entity, IID_Wonder); - if (!cmpWonder) + if (!Engine.QueryInterface(data.entity, IID_Wonder)) return; this.WonderVictoryDeleteTimer(data.entity); @@ -145,6 +159,7 @@ Trigger.prototype.WonderVictorySetWinner = function(playerID) { let cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger); + cmpTrigger.RegisterTrigger("OnEntityRenamed", "WonderVictoryEntityRenamed", { "enabled": true }); cmpTrigger.RegisterTrigger("OnOwnershipChanged", "WonderVictoryOwnershipChanged", { "enabled": true }); cmpTrigger.RegisterTrigger("OnDiplomacyChanged", "WonderVictoryDiplomacyChanged", { "enabled": true }); cmpTrigger.RegisterTrigger("OnPlayerWon", "WonderVictoryPlayerWon", { "enabled": true });