mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-17 22:03:56 -07:00
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>
62 lines
1.7 KiB
JavaScript
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);
|
|
}
|