0ad/binaries/data/mods/public/maps/scripts/ConquestCommon.js
Ralph Sennhauser 60fc382bd8
Fix eslint rule 'prefer-const' in maps/scripts
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/maps/scripts

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-09 19:46:31 +02:00

62 lines
1.7 KiB
JavaScript

Trigger.prototype.ConquestOwnershipChanged = function(msg)
{
if (!this.conquestDataInit)
return;
for (const query of this.conquestQueries)
{
if (!TriggerHelper.EntityMatchesClassList(msg.entity, query.classFilter))
continue;
if (msg.to > 0)
query.entitiesByPlayer[msg.to].push(msg.entity);
if (msg.from <= 0)
continue;
const entities = query.entitiesByPlayer[msg.from];
const index = entities.indexOf(msg.entity);
if (index != -1)
entities.splice(index, 1);
if (!entities.length)
{
const cmpPlayer = QueryPlayerIDInterface(msg.from);
if (cmpPlayer)
cmpPlayer.SetState("defeated", query.defeatReason);
}
}
};
Trigger.prototype.ConquestStartGameCount = function()
{
if (!this.conquestQueries.length)
{
warn("ConquestStartGameCount: no conquestQueries set");
return;
}
const cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
const entitiesByPlayer = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager).GetAllPlayers().map(playerID =>
cmpRangeManager.GetEntitiesByPlayer(playerID));
for (const query of this.conquestQueries)
query.entitiesByPlayer = entitiesByPlayer.map(
ents => ents.filter(
ent => TriggerHelper.EntityMatchesClassList(ent, query.classFilter)));
this.conquestDataInit = true;
};
Trigger.prototype.ConquestAddVictoryCondition = function(data)
{
this.conquestQueries.push(data);
};
{
const cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.conquestDataInit = false;
cmpTrigger.conquestQueries = [];
cmpTrigger.RegisterTrigger("OnOwnershipChanged", "ConquestOwnershipChanged", { "enabled": true });
cmpTrigger.DoAfterDelay(0, "ConquestStartGameCount", null);
}