diff --git a/OpenRA.Game/Traits/Activities/Move.cs b/OpenRA.Game/Traits/Activities/Move.cs index 71087f77e8..e65c164083 100755 --- a/OpenRA.Game/Traits/Activities/Move.cs +++ b/OpenRA.Game/Traits/Activities/Move.cs @@ -24,7 +24,8 @@ namespace OpenRA.Traits.Activities public List path; Func> getPath; public Actor ignoreBuilding; - + bool cancellable = true; + MovePart move; int ticksBeforePathing; @@ -48,6 +49,7 @@ namespace OpenRA.Traits.Activities .WithoutLaneBias()); this.destination = destination; this.nearEnough = 0; + this.cancellable = false; } public Move( int2 destination, int nearEnough ) @@ -231,6 +233,8 @@ namespace OpenRA.Traits.Activities public void Cancel( Actor self ) { + if (!cancellable) return; + path = new List(); NextActivity = null; } diff --git a/OpenRA.Game/Traits/Mobile.cs b/OpenRA.Game/Traits/Mobile.cs index b621236909..df4d86ad07 100644 --- a/OpenRA.Game/Traits/Mobile.cs +++ b/OpenRA.Game/Traits/Mobile.cs @@ -29,6 +29,7 @@ namespace OpenRA.Traits public readonly int InitialFacing = 128; public readonly int ROT = 255; public readonly int Speed = 1; + public readonly bool OnRails = false; public virtual object Create(ActorInitializer init) { return new Mobile(init, this); } } @@ -122,6 +123,8 @@ namespace OpenRA.Traits public Order IssueOrder(Actor self, int2 xy, MouseInput mi, Actor underCursor) { + if (Info.OnRails) return null; + if (mi.Button == MouseButton.Left) return null; // force-fire should *always* take precedence over move. diff --git a/OpenRA.Mods.RA/AttackTurreted.cs b/OpenRA.Mods.RA/AttackTurreted.cs index a0f3d1200c..726e408a23 100644 --- a/OpenRA.Mods.RA/AttackTurreted.cs +++ b/OpenRA.Mods.RA/AttackTurreted.cs @@ -56,7 +56,7 @@ namespace OpenRA.Mods.RA target = Target.FromOrder(order); - if (self.HasTrait()) + if (self.HasTrait() && !self.Info.Traits.Get().OnRails) self.QueueActivity( new Follow( target, Math.Max( 0, (int)weapon.Info.Range - RangeTolerance ) ) ); } diff --git a/mods/cnc/vehicles.yaml b/mods/cnc/vehicles.yaml index 2f58bfe49d..0d9b2a0061 100644 --- a/mods/cnc/vehicles.yaml +++ b/mods/cnc/vehicles.yaml @@ -527,6 +527,7 @@ BOAT: InitialFacing:64 ROT: 4 Speed: 2 + OnRails: true RevealsShroud: Range: 7 Turreted: