Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/maps/tutorials/introductory_tutorial.js
Show First 20 Lines • Show All 374 Lines • ▼ Show 20 Lines | |||||
Trigger.prototype.LaunchAttack = function() | Trigger.prototype.LaunchAttack = function() | ||||
{ | { | ||||
let cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); | let cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); | ||||
let entities = cmpRangeManager.GetEntitiesByPlayer(this.playerID); | let entities = cmpRangeManager.GetEntitiesByPlayer(this.playerID); | ||||
let target = | let target = | ||||
entities.find(e => { | entities.find(e => { | ||||
let cmpIdentity = Engine.QueryInterface(e, IID_Identity); | let cmpIdentity = Engine.QueryInterface(e, IID_Identity); | ||||
return cmpIdentity && cmpIdentity.HasClass("DefenseTower") && Engine.QueryInterface(e, IID_Position); | return cmpIdentity && cmpIdentity.HasClass("DefenseTower") && Engine.QueryInterface(e, IID_Position); | ||||
}) || | }) || | ||||
entities.find(e => { | entities.find(e => { | ||||
let cmpIdentity = Engine.QueryInterface(e, IID_Identity); | let cmpIdentity = Engine.QueryInterface(e, IID_Identity); | ||||
return cmpIdentity && cmpIdentity.HasClass("CivilCentre") && Engine.QueryInterface(e, IID_Position); | return cmpIdentity && cmpIdentity.HasClass("CivilCentre") && Engine.QueryInterface(e, IID_Position); | ||||
}); | }); | ||||
let position = Engine.QueryInterface(target, IID_Position).GetPosition2D(); | let position = Engine.QueryInterface(target, IID_Position).GetPosition2D(); | ||||
this.attackers = cmpRangeManager.GetEntitiesByPlayer(this.enemyID).filter(e => { | this.attackers = cmpRangeManager.GetEntitiesByPlayer(this.enemyID).filter(e => { | ||||
let cmpIdentity = Engine.QueryInterface(e, IID_Identity); | let cmpIdentity = Engine.QueryInterface(e, IID_Identity); | ||||
return Engine.QueryInterface(e, IID_UnitAI) && cmpIdentity && cmpIdentity.HasClass("CitizenSoldier"); | return Engine.QueryInterface(e, IID_UnitAI) && cmpIdentity && cmpIdentity.HasClass("CitizenSoldier"); | ||||
}); | }); | ||||
ProcessCommand(this.enemyID, { | ProcessCommand(this.enemyID, { | ||||
"type": "attack-walk", | "type": "attack-walk", | ||||
"entities": this.attackers, | "entities": this.attackers, | ||||
"x": position.x, | "x": position.x, | ||||
"z": position.y, | "z": position.y, | ||||
"targetClasses": { "attack": ["Unit"] }, | "targetClasses": { "attack": ["Unit"] }, | ||||
"allowCapture": false, | "prefAttackForms": ["!Capture"], | ||||
"queued": false | "queued": false | ||||
}); | }); | ||||
}; | }; | ||||
Trigger.prototype.IsAttackRepelled = function() | Trigger.prototype.IsAttackRepelled = function() | ||||
{ | { | ||||
return !this.attackers.some(e => Engine.QueryInterface(e, IID_Health) && Engine.QueryInterface(e, IID_Health).GetHitpoints() > 0); | return !this.attackers.some(e => Engine.QueryInterface(e, IID_Health) && Engine.QueryInterface(e, IID_Health).GetHitpoints() > 0); | ||||
}; | }; | ||||
Show All 22 Lines |
Wildfire Games · Phabricator