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