From 3fa86b25429be4900d2a6312a02f30cc6c6c8d00 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Mon, 28 Dec 2009 18:02:25 +1300 Subject: [PATCH] MNLY immune to own mines --- OpenRa.Game/Traits/APMine.cs | 9 ++++++++- OpenRa.Game/Traits/ATMine.cs | 3 +++ units.ini | 4 ++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/OpenRa.Game/Traits/APMine.cs b/OpenRa.Game/Traits/APMine.cs index deebaf87f1..41a6b3db9c 100644 --- a/OpenRa.Game/Traits/APMine.cs +++ b/OpenRa.Game/Traits/APMine.cs @@ -16,6 +16,9 @@ namespace OpenRa.Game.Traits public void OnCrush(Actor crusher) { + if (crusher.traits.Contains() && crusher.Owner == self.Owner) + return; + Game.world.AddFrameEndTask(_ => { Game.world.Remove(self); @@ -34,7 +37,11 @@ namespace OpenRa.Game.Traits // Mines should explode indiscriminantly of player switch (umt) { - case UnitMovementType.Foot: return true; + case UnitMovementType.Foot: + case UnitMovementType.Wheel: + case UnitMovementType.Track: + return true; + default: return false; } } diff --git a/OpenRa.Game/Traits/ATMine.cs b/OpenRa.Game/Traits/ATMine.cs index 5dcff3c452..9ee444195c 100644 --- a/OpenRa.Game/Traits/ATMine.cs +++ b/OpenRa.Game/Traits/ATMine.cs @@ -17,6 +17,9 @@ namespace OpenRa.Game.Traits public void OnCrush(Actor crusher) { + if (crusher.traits.Contains() && crusher.Owner == self.Owner) + return; + Game.world.AddFrameEndTask(_ => { Game.world.Remove(self); diff --git a/units.ini b/units.ini index 2f40525bee..dd3807c0bc 100755 --- a/units.ini +++ b/units.ini @@ -92,13 +92,13 @@ LongDesc=Deploys into another Construction Yard.\n Unarmed [MNLY.AP] Description=Minelayer (Anti-Personnel) -Traits=Unit, Mobile, RenderUnit, Minelayer +Traits=Unit, Mobile, RenderUnit, Minelayer, MineImmune Voice=VehicleVoice LongDesc=Lays mines to destroy unwary enemy units.\n Unarmed Primary=MINP ;; temporary hack [MNLY.AT] Description=Minelayer (Anti-Tank) -Traits=Unit, Mobile, RenderUnit, Minelayer +Traits=Unit, Mobile, RenderUnit, Minelayer, MineImmune Voice=VehicleVoice LongDesc=Lays mines to destroy unwary enemy units.\n Unarmed Primary=MINV ;; temporary hack