diff --git a/OpenRa.Game/Controller.cs b/OpenRa.Game/Controller.cs
index d14619fafa..4626ac4a5d 100644
--- a/OpenRa.Game/Controller.cs
+++ b/OpenRa.Game/Controller.cs
@@ -138,6 +138,7 @@ namespace OpenRa.Game
switch( s )
{
case "Attack": return Cursor.Attack;
+ case "Heal": return Cursor.Heal;
case "C4": return Cursor.C4;
case "Move":
if (movement.CanEnterCell(location))
diff --git a/OpenRa.Game/Cursor.cs b/OpenRa.Game/Cursor.cs
index 65e7e8b41c..b59bbf6d3d 100644
--- a/OpenRa.Game/Cursor.cs
+++ b/OpenRa.Game/Cursor.cs
@@ -25,5 +25,6 @@ namespace OpenRa.Game
public static Cursor Chronoshift { get { return new Cursor("chrono"); } }
public static Cursor C4 { get { return new Cursor("c4"); } }
public static Cursor Capture { get { return new Cursor("capture"); } }
+ public static Cursor Heal { get { return new Cursor("heal"); } }
}
}
diff --git a/OpenRa.Game/Traits/AttackBase.cs b/OpenRa.Game/Traits/AttackBase.cs
index a87ed99d8b..ebb76cbb6d 100644
--- a/OpenRa.Game/Traits/AttackBase.cs
+++ b/OpenRa.Game/Traits/AttackBase.cs
@@ -146,12 +146,12 @@ namespace OpenRa.Game.Traits
if (((underCursor.Owner == self.Owner) ^ isHeal)
&& !mi.Modifiers.HasModifier( Modifiers.Ctrl )) return null;
if (!Combat.HasAnyValidWeapons(self, underCursor)) return null;
- return new Order("Attack", self, underCursor, int2.Zero, null);
+ return new Order(isHeal ? "Heal" : "Attack", self, underCursor, int2.Zero, null);
}
public void ResolveOrder(Actor self, Order order)
{
- if (order.OrderString == "Attack")
+ if (order.OrderString == "Attack" || order.OrderString == "Heal")
{
self.CancelActivity();
QueueAttack(self, order);
diff --git a/sequences.xml b/sequences.xml
index 8914d8a569..9f438213cf 100644
--- a/sequences.xml
+++ b/sequences.xml
@@ -388,7 +388,7 @@
-
+