Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/maps/scripts/CaptureTheRelic.js
Trigger.prototype.InitCaptureTheRelic = function() | Trigger.prototype.InitCaptureTheRelic = function() | ||||
{ | { | ||||
let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager); | let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager); | ||||
let catafalqueTemplates = shuffleArray(cmpTemplateManager.FindAllTemplates(false).filter( | let catafalqueTemplates = shuffleArray(cmpTemplateManager.FindAllTemplates(false).filter( | ||||
name => GetIdentityClasses(cmpTemplateManager.GetTemplate(name).Identity || {}).indexOf("Relic") != -1)); | name => GetIdentityClasses(cmpTemplateManager.GetTemplate(name).Identity || {}).indexOf("Relic") != -1)); | ||||
let potentialSpawnPoints = TriggerHelper.GetLandSpawnPoints(); | let potentialSpawnPoints = TriggerHelper.GetLandSpawnPoints(); | ||||
if (!potentialSpawnPoints.length) | if (!potentialSpawnPoints.length) | ||||
{ | { | ||||
error("No gaia entities found on this map that could be used as spawn points!"); | error("No gaia entities found on this map that could be used as spawn points!"); | ||||
return; | return; | ||||
} | } | ||||
let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager); | let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager); | ||||
let numSpawnedRelics = cmpEndGameManager.GetGameTypeSettings().relicCount; | let numSpawnedRelics = cmpEndGameManager.GetGameSettings().relicCount; | ||||
this.playerRelicsCount = new Array(TriggerHelper.GetNumberOfPlayers()).fill(0, 1); | this.playerRelicsCount = new Array(TriggerHelper.GetNumberOfPlayers()).fill(0, 1); | ||||
this.playerRelicsCount[0] = numSpawnedRelics; | this.playerRelicsCount[0] = numSpawnedRelics; | ||||
for (let i = 0; i < numSpawnedRelics; ++i) | for (let i = 0; i < numSpawnedRelics; ++i) | ||||
{ | { | ||||
this.relics[i] = TriggerHelper.SpawnUnits(pickRandom(potentialSpawnPoints), catafalqueTemplates[i], 1, 0)[0]; | this.relics[i] = TriggerHelper.SpawnUnits(pickRandom(potentialSpawnPoints), catafalqueTemplates[i], 1, 0)[0]; | ||||
let cmpDamageReceiver = Engine.QueryInterface(this.relics[i], IID_DamageReceiver); | let cmpDamageReceiver = Engine.QueryInterface(this.relics[i], IID_DamageReceiver); | ||||
▲ Show 20 Lines • Show All 93 Lines • ▼ Show 20 Lines | if (cmpPlayer.GetState() == "won") | ||||
return; | return; | ||||
if (playerAndAllies.indexOf(playerID) == -1) | if (playerAndAllies.indexOf(playerID) == -1) | ||||
others.push(playerID); | others.push(playerID); | ||||
} | } | ||||
let cmpPlayer = QueryOwnerInterface(this.relics[0], IID_Player); | let cmpPlayer = QueryOwnerInterface(this.relics[0], IID_Player); | ||||
let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager); | let cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager); | ||||
let captureTheRelicDuration = cmpEndGameManager.GetGameTypeSettings().relicDuration; | let captureTheRelicDuration = cmpEndGameManager.GetGameSettings().relicDuration; | ||||
let isTeam = playerAndAllies.length > 1; | let isTeam = playerAndAllies.length > 1; | ||||
this.ownRelicsVictoryMessage = cmpGuiInterface.AddTimeNotification({ | this.ownRelicsVictoryMessage = cmpGuiInterface.AddTimeNotification({ | ||||
"message": isTeam ? | "message": isTeam ? | ||||
markForTranslation("%(_player_)s's team has captured all relics and will win in %(time)s.") : | markForTranslation("%(_player_)s's team has captured all relics and will win in %(time)s.") : | ||||
markForTranslation("%(_player_)s has captured all relics and will win in %(time)s."), | markForTranslation("%(_player_)s has captured all relics and will win in %(time)s."), | ||||
"players": others, | "players": others, | ||||
"parameters": { | "parameters": { | ||||
▲ Show 20 Lines • Show All 47 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator