diff --git a/OpenRa.Game/Traits/Activities/Attack.cs b/OpenRa.Game/Traits/Activities/Attack.cs index f059af9a7e..1e2b633d74 100644 --- a/OpenRa.Game/Traits/Activities/Attack.cs +++ b/OpenRa.Game/Traits/Activities/Attack.cs @@ -19,7 +19,7 @@ namespace OpenRa.Game.Traits.Activities public IActivity NextActivity { get; set; } - public IActivity Tick( Actor self, Mobile mobile ) + public IActivity Tick( Actor self ) { var unit = self.traits.Get(); @@ -44,7 +44,7 @@ namespace OpenRa.Game.Traits.Activities return null; } - public void Cancel(Actor self, Mobile mobile) + public void Cancel(Actor self) { Target = null; } diff --git a/OpenRa.Game/Traits/Activities/DeliverOre.cs b/OpenRa.Game/Traits/Activities/DeliverOre.cs index cf75faffed..89e3e7db4a 100644 --- a/OpenRa.Game/Traits/Activities/DeliverOre.cs +++ b/OpenRa.Game/Traits/Activities/DeliverOre.cs @@ -21,9 +21,10 @@ namespace OpenRa.Game.Traits.Activities static readonly int2 refineryDeliverOffset = new int2( 1, 2 ); - public IActivity Tick( Actor self, Mobile mobile ) + public IActivity Tick( Actor self ) { var unit = self.traits.Get(); + var mobile = self.traits.Get(); if( isDone ) { @@ -74,7 +75,7 @@ namespace OpenRa.Game.Traits.Activities return null; } - public void Cancel(Actor self, Mobile mobile) + public void Cancel(Actor self) { // TODO: allow canceling of deliver orders? } diff --git a/OpenRa.Game/Traits/Activities/DeployMcv.cs b/OpenRa.Game/Traits/Activities/DeployMcv.cs index 02ae60be48..bd08bd44c8 100755 --- a/OpenRa.Game/Traits/Activities/DeployMcv.cs +++ b/OpenRa.Game/Traits/Activities/DeployMcv.cs @@ -9,7 +9,7 @@ namespace OpenRa.Game.Traits.Activities { public IActivity NextActivity { get; set; } - public IActivity Tick( Actor self, Mobile mobile ) + public IActivity Tick( Actor self ) { Game.world.AddFrameEndTask( _ => { @@ -19,7 +19,7 @@ namespace OpenRa.Game.Traits.Activities return null; } - public void Cancel( Actor self, Mobile mobile ) + public void Cancel( Actor self ) { // Cancel can't happen between this being moved to the head of the list, and it being Ticked. throw new InvalidOperationException( "DeployMcvAction: Cancel() should never occur." ); diff --git a/OpenRa.Game/Traits/Activities/Follow.cs b/OpenRa.Game/Traits/Activities/Follow.cs index 18e4304a6b..f7433f3835 100644 --- a/OpenRa.Game/Traits/Activities/Follow.cs +++ b/OpenRa.Game/Traits/Activities/Follow.cs @@ -18,7 +18,7 @@ namespace OpenRa.Game.Traits.Activities public IActivity NextActivity { get; set; } - public IActivity Tick( Actor self, Mobile mobile ) + public IActivity Tick( Actor self ) { if (Target == null || Target.IsDead) return NextActivity; @@ -29,7 +29,7 @@ namespace OpenRa.Game.Traits.Activities return null; } - public void Cancel(Actor self, Mobile mobile) + public void Cancel(Actor self) { Target = null; } diff --git a/OpenRa.Game/Traits/Activities/Harvest.cs b/OpenRa.Game/Traits/Activities/Harvest.cs index 8caa545956..c1c88bed62 100644 --- a/OpenRa.Game/Traits/Activities/Harvest.cs +++ b/OpenRa.Game/Traits/Activities/Harvest.cs @@ -10,9 +10,10 @@ namespace OpenRa.Game.Traits.Activities public IActivity NextActivity { get; set; } bool isHarvesting = false; - public IActivity Tick( Actor self, Mobile mobile ) + public IActivity Tick( Actor self ) { var unit = self.traits.Get(); + var mobile = self.traits.Get(); if( isHarvesting ) return null; @@ -57,6 +58,6 @@ namespace OpenRa.Game.Traits.Activities } } - public void Cancel(Actor self, Mobile mobile) { } + public void Cancel(Actor self) { } } } diff --git a/OpenRa.Game/Traits/Activities/IActivity.cs b/OpenRa.Game/Traits/Activities/IActivity.cs index 2ec4556871..db58dfec56 100644 --- a/OpenRa.Game/Traits/Activities/IActivity.cs +++ b/OpenRa.Game/Traits/Activities/IActivity.cs @@ -8,7 +8,7 @@ namespace OpenRa.Game.Traits.Activities interface IActivity { IActivity NextActivity { get; set; } - IActivity Tick( Actor self, Mobile mobile ); - void Cancel( Actor self, Mobile mobile ); + IActivity Tick( Actor self ); + void Cancel( Actor self ); } } diff --git a/OpenRa.Game/Traits/Activities/Move.cs b/OpenRa.Game/Traits/Activities/Move.cs index bdbb717fb6..903e2b5629 100755 --- a/OpenRa.Game/Traits/Activities/Move.cs +++ b/OpenRa.Game/Traits/Activities/Move.cs @@ -49,9 +49,10 @@ namespace OpenRa.Game.Traits.Activities return (u == null || u == self); } - public IActivity Tick( Actor self, Mobile mobile ) + public IActivity Tick( Actor self ) { var unit = self.traits.Get(); + var mobile = self.traits.Get(); if( move != null ) { @@ -151,6 +152,12 @@ namespace OpenRa.Game.Traits.Activities return 0.5f * ( CenterOfCell( from ) + CenterOfCell( to ) ); } + public void Cancel( Actor self ) + { + path = new List(); + NextActivity = null; + } + abstract class MovePart { public readonly float2 from, to; @@ -254,11 +261,5 @@ namespace OpenRa.Game.Traits.Activities return null; } } - - public void Cancel( Actor self, Mobile mobile ) - { - path = new List(); - NextActivity = null; - } } } diff --git a/OpenRa.Game/Traits/Activities/Turn.cs b/OpenRa.Game/Traits/Activities/Turn.cs index c99b5cabf0..acfd145421 100755 --- a/OpenRa.Game/Traits/Activities/Turn.cs +++ b/OpenRa.Game/Traits/Activities/Turn.cs @@ -16,7 +16,7 @@ namespace OpenRa.Game.Traits.Activities this.desiredFacing = desiredFacing; } - public IActivity Tick( Actor self, Mobile mobile ) + public IActivity Tick( Actor self ) { var unit = self.traits.Get(); @@ -27,7 +27,7 @@ namespace OpenRa.Game.Traits.Activities return null; } - public void Cancel( Actor self, Mobile mobile ) + public void Cancel( Actor self ) { var unit = self.traits.Get(); diff --git a/OpenRa.Game/Traits/Mobile.cs b/OpenRa.Game/Traits/Mobile.cs index 6482e0c607..cdb9b9cec8 100644 --- a/OpenRa.Game/Traits/Mobile.cs +++ b/OpenRa.Game/Traits/Mobile.cs @@ -53,7 +53,7 @@ namespace OpenRa.Game.Traits while( nextActivity != null ) { currentActivity = nextActivity; - nextActivity = nextActivity.Tick( self, this ); + nextActivity = nextActivity.Tick( self ); } } @@ -73,7 +73,7 @@ namespace OpenRa.Game.Traits public void Cancel(Actor self) { if (currentActivity != null) - currentActivity.Cancel(self, this); + currentActivity.Cancel(self); } public IEnumerable OccupiedCells()