Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/maps/random/polar_sea_triggers.js
Show All 31 Lines | Trigger.prototype.SpawnWolvesAndAttack = function() | ||||
let waveSize = Math.round(Math.random() * (maxWaveSize - minWaveSize) + minWaveSize); | let waveSize = Math.round(Math.random() * (maxWaveSize - minWaveSize) + minWaveSize); | ||||
let attackers = TriggerHelper.SpawnUnitsFromTriggerPoints("A", attackerTemplate, waveSize, 0); | let attackers = TriggerHelper.SpawnUnitsFromTriggerPoints("A", attackerTemplate, waveSize, 0); | ||||
if (debugLog) | if (debugLog) | ||||
print("Spawned " + waveSize + " " + attackerTemplate + " at " + Object.keys(attackers).length + " points\n"); | print("Spawned " + waveSize + " " + attackerTemplate + " at " + Object.keys(attackers).length + " points\n"); | ||||
let allTargets; | let allTargets; | ||||
let cmpDamage = Engine.QueryInterface(SYSTEM_ENTITY, IID_Damage); | |||||
let players = new Array(TriggerHelper.GetNumberOfPlayers()).fill(0).map((v, i) => i + 1); | let players = new Array(TriggerHelper.GetNumberOfPlayers()).fill(0).map((v, i) => i + 1); | ||||
for (let spawnPoint in attackers) | for (let spawnPoint in attackers) | ||||
{ | { | ||||
// TriggerHelper.SpawnUnits is guaranteed to spawn | // TriggerHelper.SpawnUnits is guaranteed to spawn | ||||
let firstAttacker = attackers[spawnPoint][0]; | let firstAttacker = attackers[spawnPoint][0]; | ||||
if (!firstAttacker) | if (!firstAttacker) | ||||
continue; | continue; | ||||
let attackerPos = TriggerHelper.GetEntityPosition2D(firstAttacker); | let attackerPos = TriggerHelper.GetEntityPosition2D(firstAttacker); | ||||
if (!attackerPos) | if (!attackerPos) | ||||
continue; | continue; | ||||
// The returned entities are sorted by RangeManager already | // The returned entities are sorted by RangeManager already | ||||
let targets = cmpDamage.EntitiesNearPoint(attackerPos, 200, players).filter(ent => { | let targets = Attack.EntitiesNearPoint(attackerPos, 200, players).filter(ent => { | ||||
let cmpIdentity = Engine.QueryInterface(ent, IID_Identity); | let cmpIdentity = Engine.QueryInterface(ent, IID_Identity); | ||||
return cmpIdentity && MatchesClassList(cmpIdentity.GetClassesList(), targetClasses); | return cmpIdentity && MatchesClassList(cmpIdentity.GetClassesList(), targetClasses); | ||||
}); | }); | ||||
let goodTargets = targets.slice(0, targetCount); | let goodTargets = targets.slice(0, targetCount); | ||||
// Look through all targets if there aren't enough nearby ones | // Look through all targets if there aren't enough nearby ones | ||||
if (goodTargets.length < targetCount) | if (goodTargets.length < targetCount) | ||||
▲ Show 20 Lines • Show All 50 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator