1
0
forked from mirrors/0ad

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>
This commit is contained in:
Ralph Sennhauser
2025-05-09 19:44:52 +02:00
parent 519a215e1c
commit 60fc382bd8
11 changed files with 156 additions and 156 deletions
@@ -1,18 +1,18 @@
Trigger.prototype.InitCaptureTheRelic = function()
{
let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
let catafalqueTemplates = shuffleArray(cmpTemplateManager.FindAllTemplates(false).filter(
const cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
const catafalqueTemplates = shuffleArray(cmpTemplateManager.FindAllTemplates(false).filter(
name => GetIdentityClasses(cmpTemplateManager.GetTemplate(name).Identity || {}).indexOf("Relic") != -1));
let potentialSpawnPoints = TriggerHelper.GetLandSpawnPoints();
const potentialSpawnPoints = TriggerHelper.GetLandSpawnPoints();
if (!potentialSpawnPoints.length)
{
error("No gaia entities found on this map that could be used as spawn points!");
return;
}
let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
let numSpawnedRelics = cmpEndGameManager.GetGameSettings().relicCount;
const cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
const numSpawnedRelics = cmpEndGameManager.GetGameSettings().relicCount;
this.playerRelicsCount = new Array(TriggerHelper.GetNumberOfPlayers()).fill(0, 1);
this.playerRelicsCount[0] = numSpawnedRelics;
@@ -20,14 +20,14 @@ Trigger.prototype.InitCaptureTheRelic = function()
{
this.relics[i] = TriggerHelper.SpawnUnits(pickRandom(potentialSpawnPoints), catafalqueTemplates[i], 1, 0)[0];
let cmpPositionRelic = Engine.QueryInterface(this.relics[i], IID_Position);
const cmpPositionRelic = Engine.QueryInterface(this.relics[i], IID_Position);
cmpPositionRelic.SetYRotation(randomAngle());
}
};
Trigger.prototype.CheckCaptureTheRelicVictory = function(data)
{
let cmpIdentity = Engine.QueryInterface(data.entity, IID_Identity);
const cmpIdentity = Engine.QueryInterface(data.entity, IID_Identity);
if (!cmpIdentity || !cmpIdentity.HasClass("Relic") || data.from == INVALID_PLAYER)
return;
@@ -58,15 +58,15 @@ Trigger.prototype.CheckCaptureTheRelicCountdown = function()
return;
}
let activePlayers = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager).GetActivePlayers();
let relicOwners = activePlayers.filter(playerID => this.playerRelicsCount[playerID]);
const activePlayers = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager).GetActivePlayers();
const relicOwners = activePlayers.filter(playerID => this.playerRelicsCount[playerID]);
if (!relicOwners.length)
{
this.DeleteCaptureTheRelicVictoryMessages();
return;
}
let winningPlayers = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager).GetAlliedVictory() ?
const winningPlayers = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager).GetAlliedVictory() ?
activePlayers.filter(playerID => relicOwners.every(owner => QueryPlayerIDInterface(playerID, IID_Diplomacy).IsMutualAlly(owner))) :
[relicOwners[0]];
@@ -94,7 +94,7 @@ Trigger.prototype.DeleteCaptureTheRelicVictoryMessages = function()
Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer).CancelTimer(this.relicsVictoryTimer);
this.relicsVictoryTimer = undefined;
let cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
const cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
cmpGuiInterface.DeleteTimeNotification(this.ownRelicsVictoryMessage);
cmpGuiInterface.DeleteTimeNotification(this.othersRelicsVictoryMessage);
this.relicsVictoryCountdownPlayers = [];
@@ -102,8 +102,8 @@ Trigger.prototype.DeleteCaptureTheRelicVictoryMessages = function()
Trigger.prototype.StartCaptureTheRelicCountdown = function(winningPlayers)
{
let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
let cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
const cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
const cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
if (this.relicsVictoryTimer)
{
@@ -115,10 +115,10 @@ Trigger.prototype.StartCaptureTheRelicCountdown = function(winningPlayers)
if (!this.relics.length)
return;
let others = [-1];
const others = [-1];
for (let playerID = 1; playerID < TriggerHelper.GetNumberOfPlayers(); ++playerID)
{
let cmpPlayer = QueryPlayerIDInterface(playerID);
const cmpPlayer = QueryPlayerIDInterface(playerID);
if (cmpPlayer.GetState() == "won")
return;
@@ -126,7 +126,7 @@ Trigger.prototype.StartCaptureTheRelicCountdown = function(winningPlayers)
others.push(playerID);
}
let cmpPlayer = QueryOwnerInterface(this.relics[0], IID_Player);
const cmpPlayer = QueryOwnerInterface(this.relics[0], IID_Player);
if (!cmpPlayer)
{
warn("Relic entity " + this.relics[0] + " has no owner.");
@@ -135,10 +135,10 @@ Trigger.prototype.StartCaptureTheRelicCountdown = function(winningPlayers)
this.CheckCaptureTheRelicCountdown();
return;
}
let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
let captureTheRelicDuration = cmpEndGameManager.GetGameSettings().relicDuration;
const cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
const captureTheRelicDuration = cmpEndGameManager.GetGameSettings().relicDuration;
let isTeam = winningPlayers.length > 1;
const isTeam = winningPlayers.length > 1;
this.ownRelicsVictoryMessage = cmpGuiInterface.AddTimeNotification({
"message": isTeam ?
markForTranslation("%(_player_)s and their allies have captured all relics and will win in %(time)s.") :
@@ -165,7 +165,7 @@ Trigger.prototype.StartCaptureTheRelicCountdown = function(winningPlayers)
Trigger.prototype.CaptureTheRelicVictorySetWinner = function(winningPlayers)
{
let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
const cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
cmpEndGameManager.MarkPlayersAsWon(
winningPlayers,
n => markForPluralTranslation(
@@ -179,7 +179,7 @@ Trigger.prototype.CaptureTheRelicVictorySetWinner = function(winningPlayers)
};
{
let cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
const cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.relics = [];
cmpTrigger.playerRelicsCount = [];
cmpTrigger.relicsVictoryTimer = undefined;
@@ -1,5 +1,5 @@
{
let cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
const cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.ConquestAddVictoryCondition({
"classFilter": "ConquestCritical+!Foundation",
"defeatReason": markForTranslation("%(player)s has been defeated (lost all critical units and structures).")
@@ -1,5 +1,5 @@
{
let cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
const cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.ConquestAddVictoryCondition({
"classFilter": "CivilCentre+!Foundation",
"defeatReason": markForTranslation("%(player)s has been defeated (lost all civic centers).")
@@ -3,7 +3,7 @@ Trigger.prototype.ConquestOwnershipChanged = function(msg)
if (!this.conquestDataInit)
return;
for (let query of this.conquestQueries)
for (const query of this.conquestQueries)
{
if (!TriggerHelper.EntityMatchesClassList(msg.entity, query.classFilter))
continue;
@@ -14,14 +14,14 @@ Trigger.prototype.ConquestOwnershipChanged = function(msg)
if (msg.from <= 0)
continue;
let entities = query.entitiesByPlayer[msg.from];
let index = entities.indexOf(msg.entity);
const entities = query.entitiesByPlayer[msg.from];
const index = entities.indexOf(msg.entity);
if (index != -1)
entities.splice(index, 1);
if (!entities.length)
{
let cmpPlayer = QueryPlayerIDInterface(msg.from);
const cmpPlayer = QueryPlayerIDInterface(msg.from);
if (cmpPlayer)
cmpPlayer.SetState("defeated", query.defeatReason);
}
@@ -36,11 +36,11 @@ Trigger.prototype.ConquestStartGameCount = function()
return;
}
let cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
let entitiesByPlayer = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager).GetAllPlayers().map(playerID =>
const cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
const entitiesByPlayer = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager).GetAllPlayers().map(playerID =>
cmpRangeManager.GetEntitiesByPlayer(playerID));
for (let query of this.conquestQueries)
for (const query of this.conquestQueries)
query.entitiesByPlayer = entitiesByPlayer.map(
ents => ents.filter(
ent => TriggerHelper.EntityMatchesClassList(ent, query.classFilter)));
@@ -54,7 +54,7 @@ Trigger.prototype.ConquestAddVictoryCondition = function(data)
};
{
let cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
const cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.conquestDataInit = false;
cmpTrigger.conquestQueries = [];
cmpTrigger.RegisterTrigger("OnOwnershipChanged", "ConquestOwnershipChanged", { "enabled": true });
@@ -1,5 +1,5 @@
{
let cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
const cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.ConquestAddVictoryCondition({
"classFilter": "Structure",
"defeatReason": markForTranslation("%(player)s has been defeated (lost all structures).")
@@ -1,5 +1,5 @@
{
let cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
const cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.ConquestAddVictoryCondition({
"classFilter": "Unit+!Animal",
"defeatReason": markForTranslation("%(player)s has been defeated (lost all units).")
@@ -9,16 +9,16 @@ Trigger.prototype.EndGameAction = function()
this.once = false;
for (let player of Engine.GetEntitiesWithInterface(IID_StatisticsTracker))
for (const player of Engine.GetEntitiesWithInterface(IID_StatisticsTracker))
{
let cmpStatisticsTracker = Engine.QueryInterface(player, IID_StatisticsTracker);
const cmpStatisticsTracker = Engine.QueryInterface(player, IID_StatisticsTracker);
if (cmpStatisticsTracker)
print(cmpStatisticsTracker.GetStatisticsJSON() + "\n");
}
};
{
let cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
const cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.RegisterTrigger("OnPlayerWon", "EndGameAction", { "enabled": true });
cmpTrigger.RegisterTrigger("OnPlayerDefeated", "EndGameAction", { "enabled": true });
cmpTrigger.once = true;
@@ -1,22 +1,22 @@
Trigger.prototype.InitRegicideGame = function(msg)
{
let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
let regicideGarrison = cmpEndGameManager.GetGameSettings().regicideGarrison;
const cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
const regicideGarrison = cmpEndGameManager.GetGameSettings().regicideGarrison;
let playersCivs = [];
const playersCivs = [];
for (let playerID = 1; playerID < TriggerHelper.GetNumberOfPlayers(); ++playerID)
playersCivs[playerID] = QueryPlayerIDInterface(playerID, IID_Identity).GetCiv();
// Get all hero templates of these civs
let heroTemplates = {};
let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
for (let templateName of cmpTemplateManager.FindAllTemplates(false))
const heroTemplates = {};
const cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
for (const templateName of cmpTemplateManager.FindAllTemplates(false))
{
if (!templateName.startsWith("units/"))
continue;
let identity = cmpTemplateManager.GetTemplate(templateName).Identity;
let classes = GetIdentityClasses(identity);
const identity = cmpTemplateManager.GetTemplate(templateName).Identity;
const classes = GetIdentityClasses(identity);
if (classes.indexOf("Hero") == -1 ||
playersCivs.every(civ => civ != identity.Civ))
@@ -33,23 +33,23 @@ Trigger.prototype.InitRegicideGame = function(msg)
}
// Sort available spawn points by preference
let spawnPreferences = ["CivilCentre", "Structure", "Ship"];
let getSpawnPreference = entity => {
const spawnPreferences = ["CivilCentre", "Structure", "Ship"];
const getSpawnPreference = entity => {
let cmpIdentity = Engine.QueryInterface(entity, IID_Identity);
const cmpIdentity = Engine.QueryInterface(entity, IID_Identity);
if (!cmpIdentity)
return -1;
let classes = cmpIdentity.GetClassesList();
const classes = cmpIdentity.GetClassesList();
for (let i in spawnPreferences)
for (const i in spawnPreferences)
if (classes.indexOf(spawnPreferences[i]) != -1)
return spawnPreferences.length - i;
return 0;
};
// Attempt to spawn one hero per player
let cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
const cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
for (let playerID = 1; playerID < TriggerHelper.GetNumberOfPlayers(); ++playerID)
{
let spawnPoints = cmpRangeManager.GetEntitiesByPlayer(playerID).sort((entity1, entity2) =>
@@ -58,9 +58,9 @@ Trigger.prototype.InitRegicideGame = function(msg)
// Spawn the hero on land as close as possible
if (!regicideGarrison && TriggerHelper.EntityMatchesClassList(spawnPoints[0], "Ship"))
{
let shipPosition = Engine.QueryInterface(spawnPoints[0], IID_Position).GetPosition2D();
const shipPosition = Engine.QueryInterface(spawnPoints[0], IID_Position).GetPosition2D();
let distanceToShip = entity =>
const distanceToShip = entity =>
Engine.QueryInterface(entity, IID_Position).GetPosition2D().distanceToSquared(shipPosition);
spawnPoints = TriggerHelper.GetLandSpawnPoints().sort((entity1, entity2) =>
@@ -79,18 +79,18 @@ Trigger.prototype.InitRegicideGame = function(msg)
*/
Trigger.prototype.SpawnRegicideHero = function(playerID, heroTemplates, spawnPoints)
{
for (let heroTemplate of shuffleArray(heroTemplates))
for (let spawnPoint of spawnPoints)
for (const heroTemplate of shuffleArray(heroTemplates))
for (const spawnPoint of spawnPoints)
{
let cmpPosition = Engine.QueryInterface(spawnPoint, IID_Position);
const cmpPosition = Engine.QueryInterface(spawnPoint, IID_Position);
if (!cmpPosition || !cmpPosition.IsInWorld())
continue;
// Consider nomad maps where units start on a ship
let isShip = TriggerHelper.EntityMatchesClassList(spawnPoint, "Ship");
const isShip = TriggerHelper.EntityMatchesClassList(spawnPoint, "Ship");
if (isShip)
{
let cmpGarrisonHolder = Engine.QueryInterface(spawnPoint, IID_GarrisonHolder);
const cmpGarrisonHolder = Engine.QueryInterface(spawnPoint, IID_GarrisonHolder);
if (cmpGarrisonHolder.IsFull() ||
!MatchesClassList(heroTemplate.classes, cmpGarrisonHolder.GetAllowedClasses()))
continue;
@@ -104,7 +104,7 @@ Trigger.prototype.SpawnRegicideHero = function(playerID, heroTemplates, spawnPoi
if (isShip)
{
let cmpUnitAI = Engine.QueryInterface(hero, IID_UnitAI);
const cmpUnitAI = Engine.QueryInterface(hero, IID_UnitAI);
cmpUnitAI.Garrison(spawnPoint);
}
@@ -117,7 +117,7 @@ Trigger.prototype.SpawnRegicideHero = function(playerID, heroTemplates, spawnPoi
Trigger.prototype.RenameRegicideHero = function(data)
{
let index = this.regicideHeroes.indexOf(data.entity);
const index = this.regicideHeroes.indexOf(data.entity);
if (index != -1)
this.regicideHeroes[index] = data.newentity;
};
@@ -131,7 +131,7 @@ Trigger.prototype.CheckRegicideDefeat = function(data)
};
{
let cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
const cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.regicideHeroes = [];
cmpTrigger.DoAfterDelay(0, "InitRegicideGame", {});
cmpTrigger.RegisterTrigger("OnOwnershipChanged", "CheckRegicideDefeat", { "enabled": true });
@@ -5,7 +5,7 @@ var TriggerHelper = {};
TriggerHelper.GetPlayerIDFromEntity = function(ent)
{
let cmpPlayer = Engine.QueryInterface(ent, IID_Player);
const cmpPlayer = Engine.QueryInterface(ent, IID_Player);
if (cmpPlayer)
return cmpPlayer.GetPlayerID();
@@ -14,13 +14,13 @@ TriggerHelper.GetPlayerIDFromEntity = function(ent)
TriggerHelper.IsInWorld = function(ent)
{
let cmpPosition = Engine.QueryInterface(ent, IID_Position);
const cmpPosition = Engine.QueryInterface(ent, IID_Position);
return cmpPosition && cmpPosition.IsInWorld();
};
TriggerHelper.GetEntityPosition2D = function(ent)
{
let cmpPosition = Engine.QueryInterface(ent, IID_Position);
const cmpPosition = Engine.QueryInterface(ent, IID_Position);
if (!cmpPosition || !cmpPosition.IsInWorld())
return undefined;
@@ -30,7 +30,7 @@ TriggerHelper.GetEntityPosition2D = function(ent)
TriggerHelper.GetOwner = function(ent)
{
let cmpOwnership = Engine.QueryInterface(ent, IID_Ownership);
const cmpOwnership = Engine.QueryInterface(ent, IID_Ownership);
if (cmpOwnership)
return cmpOwnership.GetOwner();
@@ -81,7 +81,7 @@ TriggerHelper.GetAllPlayersEntities = function()
TriggerHelper.SetUnitStance = function(ent, stance)
{
let cmpUnitAI = Engine.QueryInterface(ent, IID_UnitAI);
const cmpUnitAI = Engine.QueryInterface(ent, IID_UnitAI);
if (cmpUnitAI)
cmpUnitAI.SwitchToStance(stance);
};
@@ -121,9 +121,9 @@ TriggerHelper.AddUpgradeTemplate = function(owner, template)
*/
TriggerHelper.SpawnUnits = function(source, template, count, owner)
{
let entities = [];
let cmpFootprint = Engine.QueryInterface(source, IID_Footprint);
let cmpPosition = Engine.QueryInterface(source, IID_Position);
const entities = [];
const cmpFootprint = Engine.QueryInterface(source, IID_Footprint);
const cmpPosition = Engine.QueryInterface(source, IID_Position);
if (!cmpPosition || !cmpPosition.IsInWorld())
{
@@ -138,7 +138,7 @@ TriggerHelper.SpawnUnits = function(source, template, count, owner)
{
const ent = this.AddUpgradeTemplate(owner, template);
let cmpEntPosition = Engine.QueryInterface(ent, IID_Position);
const cmpEntPosition = Engine.QueryInterface(ent, IID_Position);
if (!cmpEntPosition)
{
Engine.DestroyEntity(ent);
@@ -146,7 +146,7 @@ TriggerHelper.SpawnUnits = function(source, template, count, owner)
continue;
}
let cmpEntOwnership = Engine.QueryInterface(ent, IID_Ownership);
const cmpEntOwnership = Engine.QueryInterface(ent, IID_Ownership);
if (cmpEntOwnership)
cmpEntOwnership.SetOwner(owner);
@@ -180,9 +180,9 @@ TriggerHelper.SpawnUnits = function(source, template, count, owner)
*/
TriggerHelper.SpawnGarrisonedUnits = function(entity, template, count, owner)
{
let entities = [];
const entities = [];
let cmpGarrisonHolder = Engine.QueryInterface(entity, IID_GarrisonHolder);
const cmpGarrisonHolder = Engine.QueryInterface(entity, IID_GarrisonHolder);
if (!cmpGarrisonHolder)
{
error("tried to create garrisoned entities inside a non-garrisonholder");
@@ -196,11 +196,11 @@ TriggerHelper.SpawnGarrisonedUnits = function(entity, template, count, owner)
{
const ent = this.AddUpgradeTemplate(owner, template);
let cmpOwnership = Engine.QueryInterface(ent, IID_Ownership);
const cmpOwnership = Engine.QueryInterface(ent, IID_Ownership);
if (cmpOwnership)
cmpOwnership.SetOwner(owner);
let cmpGarrisonable = Engine.QueryInterface(ent, IID_Garrisonable);
const cmpGarrisonable = Engine.QueryInterface(ent, IID_Garrisonable);
if (cmpGarrisonable && cmpGarrisonable.Garrison(entity))
entities.push(ent);
else
@@ -221,9 +221,9 @@ TriggerHelper.SpawnGarrisonedUnits = function(entity, template, count, owner)
*/
TriggerHelper.SpawnTurretedUnits = function(entity, template, count, owner)
{
let entities = [];
const entities = [];
let cmpTurretHolder = Engine.QueryInterface(entity, IID_TurretHolder);
const cmpTurretHolder = Engine.QueryInterface(entity, IID_TurretHolder);
if (!cmpTurretHolder)
{
error("tried to create turreted entities inside a non-turretholder");
@@ -237,11 +237,11 @@ TriggerHelper.SpawnTurretedUnits = function(entity, template, count, owner)
{
const ent = this.AddUpgradeTemplate(owner, template);
let cmpOwnership = Engine.QueryInterface(ent, IID_Ownership);
const cmpOwnership = Engine.QueryInterface(ent, IID_Ownership);
if (cmpOwnership)
cmpOwnership.SetOwner(owner);
let cmpTurretable = Engine.QueryInterface(ent, IID_Turretable);
const cmpTurretable = Engine.QueryInterface(ent, IID_Turretable);
if (cmpTurretable && cmpTurretable.OccupyTurret(entity))
entities.push(ent);
else
@@ -264,11 +264,11 @@ TriggerHelper.SpawnTurretedUnits = function(entity, template, count, owner)
*/
TriggerHelper.SpawnUnitsFromTriggerPoints = function(ref, template, count, owner = null)
{
let cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
let triggerPoints = cmpTrigger.GetTriggerPoints(ref);
const cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
const triggerPoints = cmpTrigger.GetTriggerPoints(ref);
let entities = {};
for (let point of triggerPoints)
const entities = {};
for (const point of triggerPoints)
entities[point] = TriggerHelper.SpawnUnits(point, template, count, owner);
return entities;
@@ -279,7 +279,7 @@ TriggerHelper.SpawnUnitsFromTriggerPoints = function(ref, template, count, owner
*/
TriggerHelper.GetResourceType = function(entity)
{
let cmpResourceSupply = Engine.QueryInterface(entity, IID_ResourceSupply);
const cmpResourceSupply = Engine.QueryInterface(entity, IID_ResourceSupply);
if (!cmpResourceSupply)
return undefined;
@@ -300,7 +300,7 @@ TriggerHelper.GetResourceType = function(entity)
*/
TriggerHelper.SetPlayerWon = function(playerID, victoryReason, defeatReason)
{
let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
const cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
cmpEndGameManager.MarkPlayerAndAlliesAsWon(playerID, victoryReason, defeatReason);
};
@@ -313,7 +313,7 @@ TriggerHelper.SetPlayerWon = function(playerID, victoryReason, defeatReason)
*/
TriggerHelper.DefeatPlayer = function(playerID, defeatReason)
{
let cmpPlayer = QueryPlayerIDInterface(playerID);
const cmpPlayer = QueryPlayerIDInterface(playerID);
if (cmpPlayer)
cmpPlayer.SetState("defeated", defeatReason);
};
@@ -335,7 +335,7 @@ TriggerHelper.GetNumberOfPlayers = function()
*/
TriggerHelper.EntityMatchesClassList = function(entity, classes)
{
let cmpIdentity = Engine.QueryInterface(entity, IID_Identity);
const cmpIdentity = Engine.QueryInterface(entity, IID_Identity);
return cmpIdentity && MatchesClassList(cmpIdentity.GetClassesList(), classes);
};
@@ -360,30 +360,30 @@ TriggerHelper.GetAllPlayersEntitiesByClass = function(classes)
*/
TriggerHelper.GetLandSpawnPoints = function()
{
let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
let cmpWaterManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_WaterManager);
let cmpTerritoryManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager);
let cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
const cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
const cmpWaterManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_WaterManager);
const cmpTerritoryManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager);
const cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager);
let neutralSpawnPoints = [];
let nonNeutralSpawnPoints = [];
const neutralSpawnPoints = [];
const nonNeutralSpawnPoints = [];
for (let ent of cmpRangeManager.GetEntitiesByPlayer(0))
for (const ent of cmpRangeManager.GetEntitiesByPlayer(0))
{
let cmpIdentity = Engine.QueryInterface(ent, IID_Identity);
let cmpPosition = Engine.QueryInterface(ent, IID_Position);
const cmpIdentity = Engine.QueryInterface(ent, IID_Identity);
const cmpPosition = Engine.QueryInterface(ent, IID_Position);
if (!cmpIdentity || !cmpPosition || !cmpPosition.IsInWorld())
continue;
let templateName = cmpTemplateManager.GetCurrentTemplateName(ent);
const templateName = cmpTemplateManager.GetCurrentTemplateName(ent);
if (!templateName)
continue;
let template = cmpTemplateManager.GetTemplate(templateName);
const template = cmpTemplateManager.GetTemplate(templateName);
if (!template || template.UnitMotionFlying)
continue;
let pos = cmpPosition.GetPosition();
const pos = cmpPosition.GetPosition();
if (pos.y <= cmpWaterManager.GetWaterLevel(pos.x, pos.z))
continue;
@@ -398,9 +398,9 @@ TriggerHelper.GetLandSpawnPoints = function()
TriggerHelper.HasDealtWithTech = function(playerID, techName)
{
let cmpPlayerManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager);
let playerEnt = cmpPlayerManager.GetPlayerByID(playerID);
let cmpTechnologyManager = Engine.QueryInterface(playerEnt, IID_TechnologyManager);
const cmpPlayerManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager);
const playerEnt = cmpPlayerManager.GetPlayerByID(playerID);
const cmpTechnologyManager = Engine.QueryInterface(playerEnt, IID_TechnologyManager);
return cmpTechnologyManager && (cmpTechnologyManager.IsTechnologyQueued(techName) ||
cmpTechnologyManager.IsTechnologyResearched(techName));
};
@@ -416,9 +416,9 @@ TriggerHelper.HasDealtWithTech = function(playerID, techName)
*/
TriggerHelper.GetTemplateNamesByClasses = function(classes, civ, packedState, rank, excludeBarracksVariants)
{
let templateNames = [];
let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
for (let templateName of cmpTemplateManager.FindAllTemplates(false))
const templateNames = [];
const cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
for (const templateName of cmpTemplateManager.FindAllTemplates(false))
{
if (templateName.startsWith("campaigns/army_"))
continue;
@@ -426,7 +426,7 @@ TriggerHelper.GetTemplateNamesByClasses = function(classes, civ, packedState, ra
if (excludeBarracksVariants && templateName.endsWith("_barracks"))
continue;
let template = cmpTemplateManager.GetTemplate(templateName);
const template = cmpTemplateManager.GetTemplate(templateName);
if (civ && (!template.Identity || template.Identity.Civ != civ))
continue;
@@ -455,15 +455,15 @@ TriggerHelper.GetTemplateNamesByClasses = function(classes, civ, packedState, ra
*/
TriggerHelper.RandomTemplateComposition = function(templateNames, totalCount)
{
let frequencies = templateNames.map(() => randFloat(0, 1));
let frequencySum = frequencies.reduce((sum, frequency) => sum + frequency, 0);
const frequencies = templateNames.map(() => randFloat(0, 1));
const frequencySum = frequencies.reduce((sum, frequency) => sum + frequency, 0);
let remainder = totalCount;
let templateCounts = {};
const templateCounts = {};
for (let i = 0; i < templateNames.length; ++i)
{
let count = i == templateNames.length - 1 ? remainder : Math.min(remainder, Math.round(frequencies[i] / frequencySum * totalCount));
const count = i == templateNames.length - 1 ? remainder : Math.min(remainder, Math.round(frequencies[i] / frequencySum * totalCount));
if (!count)
continue;
@@ -495,11 +495,11 @@ TriggerHelper.RandomTemplateComposition = function(templateNames, totalCount)
TriggerHelper.BalancedTemplateComposition = function(templateBalancing, totalCount)
{
// Remove all unavailable unique templates (heroes) and empty template arrays
let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
let templateBalancingFiltered = [];
for (let templateBalance of templateBalancing)
const cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
const templateBalancingFiltered = [];
for (const templateBalance of templateBalancing)
{
let templateBalanceNew = clone(templateBalance);
const templateBalanceNew = clone(templateBalance);
if (templateBalanceNew.unique_entities)
templateBalanceNew.templates = templateBalanceNew.templates.filter(templateName =>
@@ -511,10 +511,10 @@ TriggerHelper.BalancedTemplateComposition = function(templateBalancing, totalCou
// Helper function to add randomized templates to the result
let remainder = totalCount;
let results = {};
let addTemplates = (templateNames, count) => {
let templateCounts = TriggerHelper.RandomTemplateComposition(templateNames, count);
for (let templateName in templateCounts)
const results = {};
const addTemplates = (templateNames, count) => {
const templateCounts = TriggerHelper.RandomTemplateComposition(templateNames, count);
for (const templateName in templateCounts)
{
if (!results[templateName])
results[templateName] = 0;
@@ -525,13 +525,13 @@ TriggerHelper.BalancedTemplateComposition = function(templateBalancing, totalCou
};
// Add template groups with fixed counts
for (let templateBalance of templateBalancingFiltered)
for (const templateBalance of templateBalancingFiltered)
if (templateBalance.count)
addTemplates(templateBalance.templates, Math.min(remainder, templateBalance.count));
// Add template groups with frequency weights
let templateBalancingFrequencies = templateBalancingFiltered.filter(templateBalance => !!templateBalance.frequency);
let templateBalancingFrequencySum = templateBalancingFrequencies.reduce((sum, templateBalance) => sum + templateBalance.frequency, 0);
const templateBalancingFrequencies = templateBalancingFiltered.filter(templateBalance => !!templateBalance.frequency);
const templateBalancingFrequencySum = templateBalancingFrequencies.reduce((sum, templateBalance) => sum + templateBalance.frequency, 0);
for (let i = 0; i < templateBalancingFrequencies.length; ++i)
addTemplates(
templateBalancingFrequencies[i].templates,
@@ -552,22 +552,22 @@ TriggerHelper.BalancedTemplateComposition = function(templateBalancing, totalCou
*/
TriggerHelper.SpawnAndGarrisonAtClasses = function(playerID, classes, templates, capacityPercent)
{
let results = {};
const results = {};
for (let entGarrisonHolder of Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager).GetEntitiesByPlayer(playerID))
for (const entGarrisonHolder of Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager).GetEntitiesByPlayer(playerID))
{
let cmpGarrisonHolder = Engine.QueryInterface(entGarrisonHolder, IID_GarrisonHolder);
const cmpGarrisonHolder = Engine.QueryInterface(entGarrisonHolder, IID_GarrisonHolder);
if (!cmpGarrisonHolder)
continue;
let cmpIdentity = Engine.QueryInterface(entGarrisonHolder, IID_Identity);
const cmpIdentity = Engine.QueryInterface(entGarrisonHolder, IID_Identity);
if (!cmpIdentity || !MatchesClassList(cmpIdentity.GetClassesList(), classes))
continue;
// TODO: account for already garrisoned entities and garrison size.
results[entGarrisonHolder] = this.RandomTemplateComposition(templates, Math.floor(cmpGarrisonHolder.GetCapacity() * capacityPercent));
for (let template in results[entGarrisonHolder])
for (const template in results[entGarrisonHolder])
TriggerHelper.SpawnGarrisonedUnits(entGarrisonHolder, template, results[entGarrisonHolder][template], playerID);
}
@@ -581,21 +581,21 @@ TriggerHelper.SpawnAndGarrisonAtClasses = function(playerID, classes, templates,
*/
TriggerHelper.SpawnAndTurretAtClasses = function(playerID, classes, templates, capacityPercent)
{
let results = {};
const results = {};
for (let entTurretHolder of Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager).GetEntitiesByPlayer(playerID))
for (const entTurretHolder of Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager).GetEntitiesByPlayer(playerID))
{
let cmpTurretHolder = Engine.QueryInterface(entTurretHolder, IID_TurretHolder);
const cmpTurretHolder = Engine.QueryInterface(entTurretHolder, IID_TurretHolder);
if (!cmpTurretHolder)
continue;
let cmpIdentity = Engine.QueryInterface(entTurretHolder, IID_Identity);
const cmpIdentity = Engine.QueryInterface(entTurretHolder, IID_Identity);
if (!cmpIdentity || !MatchesClassList(cmpIdentity.GetClassesList(), classes))
continue;
results[entTurretHolder] = this.RandomTemplateComposition(templates, Math.max(Math.floor(cmpTurretHolder.GetTurretPoints().length * capacityPercent - cmpTurretHolder.GetEntities().length), 0));
for (let template in results[entTurretHolder])
for (const template in results[entTurretHolder])
TriggerHelper.SpawnTurretedUnits(entTurretHolder, template, results[entTurretHolder][template], playerID);
}
@@ -9,9 +9,9 @@ Trigger.prototype.InitTutorial = function(data)
this.RegisterTrigger("OnPlayerCommand", "OnPlayerCommandTrigger", { "enabled": false });
this.tutorialEvents.push("OnPlayerCommand");
for (let goal of this.tutorialGoals)
for (const goal of this.tutorialGoals)
{
for (let key in goal)
for (const key in goal)
{
if (typeof goal[key] != "function" || this.tutorialEvents.indexOf(key) != -1)
continue;
@@ -19,7 +19,7 @@ Trigger.prototype.InitTutorial = function(data)
continue;
if (key == "IsDone")
continue;
let action = key + "Trigger";
const action = key + "Trigger";
this.RegisterTrigger(key, action, { "enabled": false });
this.tutorialEvents.push(key);
}
@@ -32,7 +32,7 @@ Trigger.prototype.NextGoal = function(deserializing = false)
{
if (this.index > this.tutorialGoals.length)
return;
let goal = this.tutorialGoals[this.index];
const goal = this.tutorialGoals[this.index];
let needDelay = true;
let readyButton = false;
@@ -41,11 +41,11 @@ Trigger.prototype.NextGoal = function(deserializing = false)
this.Init();
Trigger.prototype.IsDone = goal.IsDone || (() => false);
let goalAlreadyDone = this.IsDone();
const goalAlreadyDone = this.IsDone();
for (let event of this.tutorialEvents)
for (const event of this.tutorialEvents)
{
let action = event + "Trigger";
const action = event + "Trigger";
if (goal[event])
{
Trigger.prototype[action] = goal[event];
@@ -81,7 +81,7 @@ Trigger.prototype.NextGoal = function(deserializing = false)
Trigger.prototype.GoalMessage = function(instructions, readyButton=false, leave=false)
{
let cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
const cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
cmpGUIInterface.PushNotification({
"type": "tutorial",
"players": [1],
@@ -93,7 +93,7 @@ Trigger.prototype.GoalMessage = function(instructions, readyButton=false, leave=
Trigger.prototype.WarningMessage = function(warning)
{
let cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
const cmpGUIInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
cmpGUIInterface.PushNotification({
"type": "tutorial",
"players": [1],
@@ -29,14 +29,14 @@ Trigger.prototype.WonderVictoryDiplomacyChanged = function(data)
if (!Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager).GetAlliedVictory())
return;
for (let ent in this.wonderVictoryMessages)
for (const ent in this.wonderVictoryMessages)
{
if (this.wonderVictoryMessages[ent].playerID != data.player && this.wonderVictoryMessages[ent].playerID != data.otherPlayer)
continue;
let owner = this.wonderVictoryMessages[ent].playerID;
let otherPlayer = owner == data.player ? data.otherPlayer : data.player;
let newAllies = new Set(QueryPlayerIDInterface(owner, IID_Diplomacy).GetPlayersByDiplomacy("IsExclusiveMutualAlly"));
const owner = this.wonderVictoryMessages[ent].playerID;
const otherPlayer = owner == data.player ? data.otherPlayer : data.player;
const newAllies = new Set(QueryPlayerIDInterface(owner, IID_Diplomacy).GetPlayersByDiplomacy("IsExclusiveMutualAlly"));
if (newAllies.has(otherPlayer) && !this.wonderVictoryMessages[ent].allies.has(otherPlayer) ||
!newAllies.has(otherPlayer) && this.wonderVictoryMessages[ent].allies.has(otherPlayer))
{
@@ -51,24 +51,24 @@ Trigger.prototype.WonderVictoryDiplomacyChanged = function(data)
*/
Trigger.prototype.WonderVictoryStartTimer = function(ent, player)
{
let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
let allies = cmpEndGameManager.GetAlliedVictory() ?
const cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
const allies = cmpEndGameManager.GetAlliedVictory() ?
QueryPlayerIDInterface(player, IID_Diplomacy).GetPlayersByDiplomacy("IsExclusiveMutualAlly") : [];
let others = [-1];
const others = [-1];
for (let playerID = 1; playerID < TriggerHelper.GetNumberOfPlayers(); ++playerID)
{
let cmpPlayer = QueryPlayerIDInterface(playerID);
const cmpPlayer = QueryPlayerIDInterface(playerID);
if (cmpPlayer.GetState() == "won")
return;
if (allies.indexOf(playerID) == -1 && playerID != player)
others.push(playerID);
}
let cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
const cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
const cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
let wonderDuration = cmpEndGameManager.GetGameSettings().wonderDuration;
const wonderDuration = cmpEndGameManager.GetGameSettings().wonderDuration;
this.wonderVictoryMessages[ent] = {
"playerID": player,
"allies": new Set(allies),
@@ -116,10 +116,10 @@ Trigger.prototype.WonderVictoryDeleteTimer = function(ent)
if (!this.wonderVictoryMessages[ent])
return;
let cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
const cmpGuiInterface = Engine.QueryInterface(SYSTEM_ENTITY, IID_GuiInterface);
const cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer);
for (let message of this.wonderVictoryMessages[ent].messages)
for (const message of this.wonderVictoryMessages[ent].messages)
cmpGuiInterface.DeleteTimeNotification(message);
cmpTimer.CancelTimer(this.wonderVictoryMessages[ent].timer);
delete this.wonderVictoryMessages[ent];
@@ -127,13 +127,13 @@ Trigger.prototype.WonderVictoryDeleteTimer = function(ent)
Trigger.prototype.WonderVictoryPlayerWon = function(data)
{
for (let ent in this.wonderVictoryMessages)
for (const ent in this.wonderVictoryMessages)
this.WonderVictoryDeleteTimer(ent);
};
Trigger.prototype.WonderVictorySetWinner = function(playerID)
{
let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
const cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager);
cmpEndGameManager.MarkPlayerAndAlliesAsWon(
playerID,
n => markForPluralTranslation(
@@ -147,7 +147,7 @@ Trigger.prototype.WonderVictorySetWinner = function(playerID)
};
{
let cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
const 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 });