Clean up AttackCharge.

This commit is contained in:
Paul Chote
2014-03-08 12:10:08 +13:00
parent b28ba09728
commit 6d95c93bea

View File

@@ -8,8 +8,8 @@
*/ */
#endregion #endregion
using OpenRA.Mods.RA.Activities;
using OpenRA.FileFormats; using OpenRA.FileFormats;
using OpenRA.Mods.RA.Activities;
using OpenRA.Mods.RA.Render; using OpenRA.Mods.RA.Render;
using OpenRA.Traits; using OpenRA.Traits;
@@ -29,34 +29,36 @@ namespace OpenRA.Mods.RA
class AttackCharge : AttackOmni, ITick, INotifyAttack, ISync class AttackCharge : AttackOmni, ITick, INotifyAttack, ISync
{ {
readonly AttackChargeInfo aci;
[Sync] int charges; [Sync] int charges;
[Sync] int timeToRecharge; [Sync] int timeToRecharge;
public AttackCharge(Actor self) public AttackCharge(Actor self)
: base(self) : base(self)
{ {
charges = self.Info.Traits.Get<AttackChargeInfo>().MaxCharges; aci = self.Info.Traits.Get<AttackChargeInfo>();
charges = aci.MaxCharges;
} }
public override void Tick( Actor self ) public override void Tick(Actor self)
{ {
if( --timeToRecharge <= 0 ) if (--timeToRecharge <= 0)
charges = self.Info.Traits.Get<AttackChargeInfo>().MaxCharges; charges = aci.MaxCharges;
base.Tick( self ); base.Tick(self);
} }
public void Attacking(Actor self, Target target, Armament a, Barrel barrel) public void Attacking(Actor self, Target target, Armament a, Barrel barrel)
{ {
--charges; --charges;
timeToRecharge = self.Info.Traits.Get<AttackChargeInfo>().ReloadTime; timeToRecharge = aci.ReloadTime;
} }
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove) public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove)
{ {
return new ChargeAttack(newTarget); return new ChargeAttack(newTarget);
} }
public override void ResolveOrder(Actor self, Order order) public override void ResolveOrder(Actor self, Order order)
{ {
@@ -82,7 +84,7 @@ namespace OpenRA.Mods.RA
var initDelay = self.Info.Traits.Get<AttackChargeInfo>().InitialChargeDelay; var initDelay = self.Info.Traits.Get<AttackChargeInfo>().InitialChargeDelay;
var attack = self.Trait<AttackCharge>(); var attack = self.Trait<AttackCharge>();
if(attack.charges == 0 || !attack.CanAttack(self, target)) if (attack.charges == 0 || !attack.CanAttack(self, target))
return this; return this;
self.Trait<RenderBuildingCharge>().PlayCharge(self); self.Trait<RenderBuildingCharge>().PlayCharge(self);
@@ -106,7 +108,7 @@ namespace OpenRA.Mods.RA
var chargeDelay = self.Info.Traits.Get<AttackChargeInfo>().ChargeDelay; var chargeDelay = self.Info.Traits.Get<AttackChargeInfo>().ChargeDelay;
var attack = self.Trait<AttackCharge>(); var attack = self.Trait<AttackCharge>();
if(attack.charges == 0) if (attack.charges == 0)
return NextActivity; return NextActivity;
attack.DoAttack(self, target); attack.DoAttack(self, target);