Differential D2379 Diff 16365 ps/trunk/binaries/data/mods/public/simulation/components/Garrisonable.js
Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/binaries/data/mods/public/simulation/components/Garrisonable.js
Show First 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | if (!this.CanGarrison(target)) | ||||
return false; | return false; | ||||
let cmpGarrisonHolder = Engine.QueryInterface(target, IID_GarrisonHolder); | let cmpGarrisonHolder = Engine.QueryInterface(target, IID_GarrisonHolder); | ||||
if (!cmpGarrisonHolder || !cmpGarrisonHolder.Garrison(this.entity)) | if (!cmpGarrisonHolder || !cmpGarrisonHolder.Garrison(this.entity)) | ||||
return false; | return false; | ||||
this.holder = target; | this.holder = target; | ||||
let cmpUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI); | |||||
if (cmpUnitAI) | |||||
cmpUnitAI.SetGarrisoned(); | |||||
let cmpProductionQueue = Engine.QueryInterface(this.entity, IID_ProductionQueue); | let cmpProductionQueue = Engine.QueryInterface(this.entity, IID_ProductionQueue); | ||||
if (cmpProductionQueue) | if (cmpProductionQueue) | ||||
cmpProductionQueue.PauseProduction(); | cmpProductionQueue.PauseProduction(); | ||||
let cmpAura = Engine.QueryInterface(this.entity, IID_Auras); | let cmpAura = Engine.QueryInterface(this.entity, IID_Auras); | ||||
if (cmpAura && cmpAura.HasGarrisonAura()) | if (cmpAura && cmpAura.HasGarrisonAura()) | ||||
cmpAura.ApplyGarrisonAura(target); | cmpAura.ApplyGarrisonAura(target); | ||||
▲ Show 20 Lines • Show All 56 Lines • ▼ Show 20 Lines | Garrisonable.prototype.UnGarrison = function(forced = false, renamed = false) | ||||
} | } | ||||
let cmpHolderPosition = Engine.QueryInterface(this.holder, IID_Position); | let cmpHolderPosition = Engine.QueryInterface(this.holder, IID_Position); | ||||
if (cmpHolderPosition) | if (cmpHolderPosition) | ||||
cmpPosition.SetYRotation(cmpHolderPosition.GetPosition().horizAngleTo(pos)); | cmpPosition.SetYRotation(cmpHolderPosition.GetPosition().horizAngleTo(pos)); | ||||
let cmpUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI); | let cmpUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI); | ||||
if (cmpUnitAI) | if (cmpUnitAI) | ||||
{ | |||||
cmpUnitAI.Ungarrison(); | cmpUnitAI.Ungarrison(); | ||||
cmpUnitAI.UnsetGarrisoned(); | |||||
} | |||||
let cmpProductionQueue = Engine.QueryInterface(this.entity, IID_ProductionQueue); | let cmpProductionQueue = Engine.QueryInterface(this.entity, IID_ProductionQueue); | ||||
if (cmpProductionQueue) | if (cmpProductionQueue) | ||||
cmpProductionQueue.UnpauseProduction(); | cmpProductionQueue.UnpauseProduction(); | ||||
let cmpAura = Engine.QueryInterface(this.entity, IID_Auras); | let cmpAura = Engine.QueryInterface(this.entity, IID_Auras); | ||||
if (cmpAura && cmpAura.HasGarrisonAura()) | if (cmpAura && cmpAura.HasGarrisonAura()) | ||||
cmpAura.RemoveGarrisonAura(this.holder); | cmpAura.RemoveGarrisonAura(this.holder); | ||||
Show All 38 Lines |
Wildfire Games · Phabricator