diff --git a/OpenRA.Mods.RA/Activities/Enter.cs b/OpenRA.Mods.RA/Activities/Enter.cs index 6dcf9df962..19002bfb99 100755 --- a/OpenRA.Mods.RA/Activities/Enter.cs +++ b/OpenRA.Mods.RA/Activities/Enter.cs @@ -30,7 +30,7 @@ namespace OpenRA.Mods.RA.Activities var mobile = self.Trait(); var nearest = target.OccupiesSpace.NearestCellTo( mobile.toCell ); if( ( nearest - mobile.toCell ).LengthSquared > 2 ) - return Util.SequenceActivities( new MoveAdjacentTo( target ), this ); + return Util.SequenceActivities( new MoveAdjacentTo( Target.FromActor(target) ), this ); return Util.SequenceActivities( mobile.MoveTo( nearest, target ), NextActivity ); } diff --git a/OpenRA.Mods.RA/Activities/LayMines.cs b/OpenRA.Mods.RA/Activities/LayMines.cs index 6c5c5d6923..be7080ae03 100644 --- a/OpenRA.Mods.RA/Activities/LayMines.cs +++ b/OpenRA.Mods.RA/Activities/LayMines.cs @@ -38,7 +38,7 @@ namespace OpenRA.Mods.RA.Activities return new Wait(20); return Util.SequenceActivities( - new MoveAdjacentTo(rearmTarget), + new MoveAdjacentTo(Target.FromActor(rearmTarget)), mobile.MoveTo(Traits.Util.CellContaining(rearmTarget.CenterLocation), rearmTarget), new Rearm(self), new Repair(rearmTarget), diff --git a/OpenRA.Mods.RA/Activities/MoveAdjacentTo.cs b/OpenRA.Mods.RA/Activities/MoveAdjacentTo.cs index 7fcc7b87ba..c54b187139 100755 --- a/OpenRA.Mods.RA/Activities/MoveAdjacentTo.cs +++ b/OpenRA.Mods.RA/Activities/MoveAdjacentTo.cs @@ -21,7 +21,6 @@ namespace OpenRA.Mods.RA.Activities { readonly Target target; - public MoveAdjacentTo( Actor target ) { this.target = Target.FromActor(target); } public MoveAdjacentTo( Target target ) { this.target = target; } public override Activity Tick( Actor self ) diff --git a/OpenRA.Mods.RA/Minelayer.cs b/OpenRA.Mods.RA/Minelayer.cs index 7590912a88..404650a3e7 100644 --- a/OpenRA.Mods.RA/Minelayer.cs +++ b/OpenRA.Mods.RA/Minelayer.cs @@ -20,11 +20,10 @@ namespace OpenRA.Mods.RA { class MinelayerInfo : TraitInfo { - [ActorReference] - public readonly string Mine = "minv"; + [ActorReference] public readonly string Mine = "minv"; + [ActorReference] public readonly string[] RearmBuildings = { "fix" }; + public readonly float MinefieldDepth = 1.5f; - [ActorReference] - public readonly string[] RearmBuildings = { "fix" }; } class Minelayer : IIssueOrder, IResolveOrder, IPostRenderSelection, ISync diff --git a/OpenRA.Mods.RA/Passenger.cs b/OpenRA.Mods.RA/Passenger.cs index fd9212dd6d..7971828f8d 100644 --- a/OpenRA.Mods.RA/Passenger.cs +++ b/OpenRA.Mods.RA/Passenger.cs @@ -74,11 +74,12 @@ namespace OpenRA.Mods.RA if (order.TargetActor == null) return; if (!CanEnter(order.TargetActor)) return; if (!IsCorrectCargoType(order.TargetActor)) return; - - self.SetTargetLine(Target.FromOrder(order), Color.Green); + + var target = Target.FromOrder(order); + self.SetTargetLine(target, Color.Green); self.CancelActivity(); - self.QueueActivity(new MoveAdjacentTo(order.TargetActor)); + self.QueueActivity(new MoveAdjacentTo(target)); self.QueueActivity(new EnterTransport(self, order.TargetActor)); } } diff --git a/OpenRA.Mods.RA/Repairable.cs b/OpenRA.Mods.RA/Repairable.cs index 8b2b37b635..69ab12f55b 100644 --- a/OpenRA.Mods.RA/Repairable.cs +++ b/OpenRA.Mods.RA/Repairable.cs @@ -60,29 +60,30 @@ namespace OpenRA.Mods.RA var li = self.TraitOrDefault(); return (Health.DamageState > DamageState.Undamaged || (li != null && !li.FullAmmo()) ); } - + public string VoicePhraseForOrder(Actor self, Order order) { return (order.OrderString == "Repair" && CanRepair()) ? "Move" : null; } - + public void ResolveOrder(Actor self, Order order) { if (order.OrderString == "Repair") { if( !CanRepairAt( order.TargetActor ) || !CanRepair() ) return; - + var mobile = self.Trait(); - var rp = order.TargetActor.TraitOrDefault(); - self.SetTargetLine(Target.FromOrder(order), Color.Green); - + var target = Target.FromOrder(order); + self.SetTargetLine(target, Color.Green); + self.CancelActivity(); - self.QueueActivity(new MoveAdjacentTo(order.TargetActor)); + self.QueueActivity(new MoveAdjacentTo(target)); self.QueueActivity(mobile.MoveTo(Traits.Util.CellContaining(order.TargetActor.CenterLocation), order.TargetActor)); self.QueueActivity(new Rearm(self)); self.QueueActivity(new Repair(order.TargetActor)); + var rp = order.TargetActor.TraitOrDefault(); if (rp != null) self.QueueActivity(new CallFunc(() => {