Reveal Gaia wonders to players

This commit is contained in:
Atrik 2026-05-03 04:16:53 +02:00
parent a89ca3e4e5
commit c331550bdd

View file

@ -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 = {};
}