From 4649c032608f6e14535e5ae0e76c8b58e7bda7ac Mon Sep 17 00:00:00 2001 From: Lavender Moon Date: Thu, 27 Aug 2015 07:46:05 -0400 Subject: [PATCH] Move duplicate Tick() code from Plane and Helicopter to Aircraft. --- OpenRA.Mods.Common/Traits/Air/Aircraft.cs | 23 +++++++++++++++++++++ OpenRA.Mods.Common/Traits/Air/Helicopter.cs | 21 ------------------- OpenRA.Mods.Common/Traits/Air/Plane.cs | 21 ------------------- 3 files changed, 23 insertions(+), 42 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs index 1f8f82831d..8a45ad561c 100644 --- a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs +++ b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs @@ -77,6 +77,29 @@ namespace OpenRA.Mods.Common.Traits Facing = init.Contains() ? init.Get() : info.InitialFacing; } + bool firstTick = true; + public virtual void Tick(Actor self) + { + if (firstTick) + { + firstTick = false; + + // TODO: Aircraft husks don't properly unreserve. + if (self.HasTrait()) + return; + + ReserveSpawnBuilding(); + + var host = GetActorBelow(); + if (host == null) + return; + + self.QueueActivity(new TakeOff(self)); + } + + Repulse(); + } + public void Repulse() { var repulsionForce = GetRepulsionForce(); diff --git a/OpenRA.Mods.Common/Traits/Air/Helicopter.cs b/OpenRA.Mods.Common/Traits/Air/Helicopter.cs index ac8ff29f56..7e973337ac 100644 --- a/OpenRA.Mods.Common/Traits/Air/Helicopter.cs +++ b/OpenRA.Mods.Common/Traits/Air/Helicopter.cs @@ -40,7 +40,6 @@ namespace OpenRA.Mods.Common.Traits { public readonly HelicopterInfo Info; Actor self; - bool firstTick = true; public bool IsMoving { get { return self.CenterPosition.Z > 0; } set { } } public Helicopter(ActorInitializer init, HelicopterInfo info) @@ -121,26 +120,6 @@ namespace OpenRA.Mods.Common.Traits } } - public void Tick(Actor self) - { - if (firstTick) - { - firstTick = false; - if (self.HasTrait()) // TODO: Aircraft husks don't properly unreserve. - return; - - ReserveSpawnBuilding(); - - var host = GetActorBelow(); - if (host == null) - return; - - self.QueueActivity(new TakeOff(self)); - } - - Repulse(); - } - public Activity MoveTo(CPos cell, int nearEnough) { return new HeliFly(self, Target.FromCell(self.World, cell)); } public Activity MoveTo(CPos cell, Actor ignoredActor) { return new HeliFly(self, Target.FromCell(self.World, cell)); } public Activity MoveWithinRange(Target target, WDist range) { return new HeliFly(self, target, WDist.Zero, range); } diff --git a/OpenRA.Mods.Common/Traits/Air/Plane.cs b/OpenRA.Mods.Common/Traits/Air/Plane.cs index b909b8966e..2b6a712cd9 100644 --- a/OpenRA.Mods.Common/Traits/Air/Plane.cs +++ b/OpenRA.Mods.Common/Traits/Air/Plane.cs @@ -37,27 +37,6 @@ namespace OpenRA.Mods.Common.Traits Info = info; } - bool firstTick = true; - public void Tick(Actor self) - { - if (firstTick) - { - firstTick = false; - if (self.HasTrait()) // TODO: Aircraft husks don't properly unreserve. - return; - - ReserveSpawnBuilding(); - - var host = GetActorBelow(); - if (host == null) - return; - - self.QueueActivity(new TakeOff(self)); - } - - Repulse(); - } - public override WVec GetRepulsionForce() { var repulsionForce = base.GetRepulsionForce();