From c331550bdd6e6b0cd5feeb280c487928d62cb2cc Mon Sep 17 00:00:00 2001 From: Atrik Date: Sun, 3 May 2026 04:16:53 +0200 Subject: [PATCH] Reveal Gaia wonders to players --- .../mods/public/maps/scripts/WonderVictory.js | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/binaries/data/mods/public/maps/scripts/WonderVictory.js b/binaries/data/mods/public/maps/scripts/WonderVictory.js index 1942bdabfd..14d316a61f 100644 --- a/binaries/data/mods/public/maps/scripts/WonderVictory.js +++ b/binaries/data/mods/public/maps/scripts/WonderVictory.js @@ -23,7 +23,7 @@ Trigger.prototype.WonderVictoryEntityRenamed = function(data) // Make the completed wonder permanently visible TriggerHelper.MakeEntityPermanentlyVisible(data.newentity, 50); - // Send "wonder completed" notifications + // Send "wonder completed" notifications (only for non-Gaia wonders) const cmpOwnership = Engine.QueryInterface(data.newentity, IID_Ownership); if (cmpOwnership) { @@ -215,6 +215,29 @@ Trigger.prototype.WonderStartNotification = function(data) ); }; +Trigger.prototype.RevealGaiaWonders = function() +{ + Engine.ProfileStart("RevealGaiaWonders"); + const cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager); + if (!cmpEndGameManager) + return; + + const victoryConditions = cmpEndGameManager.GetVictoryConditions(); + if (!victoryConditions || !victoryConditions.includes("wonder")) + return; + + const cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); + if (!cmpRangeManager) + return; + + // Find and reveal all Gaia wonders + for (const ent of cmpRangeManager.GetEntitiesByPlayer(0)) + if (Engine.QueryInterface(ent, IID_Wonder)) + TriggerHelper.MakeEntityPermanentlyVisible(ent, 50); + + Engine.ProfileStop(); +}; + { const cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger); cmpTrigger.RegisterTrigger("OnEntityRenamed", "WonderVictoryEntityRenamed", { "enabled": true }); @@ -222,5 +245,6 @@ Trigger.prototype.WonderStartNotification = function(data) cmpTrigger.RegisterTrigger("OnDiplomacyChanged", "WonderVictoryDiplomacyChanged", { "enabled": true }); cmpTrigger.RegisterTrigger("OnPlayerWon", "WonderVictoryPlayerWon", { "enabled": true }); cmpTrigger.RegisterTrigger("OnConstructionStarted", "WonderStartNotification", { "enabled": true }); + cmpTrigger.DoAfterDelay(0, "RevealGaiaWonders", {}); cmpTrigger.wonderVictoryMessages = {}; }