Clean up AttackCharge.
This commit is contained in:
@@ -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,27 +29,30 @@ 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)
|
||||
@@ -57,7 +60,6 @@ namespace OpenRA.Mods.RA
|
||||
return new ChargeAttack(newTarget);
|
||||
}
|
||||
|
||||
|
||||
public override void ResolveOrder(Actor self, Order order)
|
||||
{
|
||||
base.ResolveOrder(self, 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);
|
||||
|
||||
Reference in New Issue
Block a user