diff --git a/binaries/data/mods/public/gui/session/input.js b/binaries/data/mods/public/gui/session/input.js index 43bb626308..eff65c0f30 100644 --- a/binaries/data/mods/public/gui/session/input.js +++ b/binaries/data/mods/public/gui/session/input.js @@ -347,6 +347,10 @@ function getActionInfo(action, target) // The check if the target is unhealable is done by targetState.needsHeal if (entState.Healer && hasClass(targetState, "Unit") && targetState.needsHeal && (playerOwned || allyOwned)) { + // Healers can't heal themselves. + if (entState.id == targetState.id) + return {"possible": false}; + var unhealableClasses = entState.Healer.unhealableClasses; for each (var unitClass in targetState.identity.classes) { diff --git a/binaries/data/mods/public/simulation/components/UnitAI.js b/binaries/data/mods/public/simulation/components/UnitAI.js index 0515c6d330..f2329c77e6 100644 --- a/binaries/data/mods/public/simulation/components/UnitAI.js +++ b/binaries/data/mods/public/simulation/components/UnitAI.js @@ -333,6 +333,13 @@ var UnitFsmSpec = { return; } + // Healers can't heal themselves. + if (this.order.data.target == this.entity) + { + this.FinishOrder(); + return; + } + // Check if the target is in range if (this.CheckTargetRange(this.order.data.target, IID_Heal)) {