Expose Plane turn-to-attack delay to yaml

This commit is contained in:
Oliver Brakmann
2015-04-03 23:56:59 +02:00
parent 32ed63727d
commit b1d3486561
2 changed files with 11 additions and 2 deletions

View File

@@ -23,13 +23,14 @@ namespace OpenRA.Mods.Common.Activities
readonly AttackPlane attackPlane; readonly AttackPlane attackPlane;
readonly IEnumerable<AmmoPool> ammoPools; readonly IEnumerable<AmmoPool> ammoPools;
Activity inner; Activity inner;
int ticksUntilTurn = 50; int ticksUntilTurn;
public FlyAttack(Actor self, Target target) public FlyAttack(Actor self, Target target)
{ {
this.target = target; this.target = target;
attackPlane = self.TraitOrDefault<AttackPlane>(); attackPlane = self.TraitOrDefault<AttackPlane>();
ammoPools = self.TraitsImplementing<AmmoPool>(); ammoPools = self.TraitsImplementing<AmmoPool>();
ticksUntilTurn = attackPlane.AttackPlaneInfo.AttackTurnDelay;
} }
public override Activity Tick(Actor self) public override Activity Tick(Actor self)

View File

@@ -16,13 +16,21 @@ namespace OpenRA.Mods.Common.Traits
{ {
public class AttackPlaneInfo : AttackFrontalInfo public class AttackPlaneInfo : AttackFrontalInfo
{ {
[Desc("Delay, in game ticks, before turning to attack.")]
public readonly int AttackTurnDelay = 50;
public override object Create(ActorInitializer init) { return new AttackPlane(init.Self, this); } public override object Create(ActorInitializer init) { return new AttackPlane(init.Self, this); }
} }
public class AttackPlane : AttackFrontal public class AttackPlane : AttackFrontal
{ {
public readonly AttackPlaneInfo AttackPlaneInfo;
public AttackPlane(Actor self, AttackPlaneInfo info) public AttackPlane(Actor self, AttackPlaneInfo info)
: base(self, info) { } : base(self, info)
{
AttackPlaneInfo = info;
}
public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove) public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove)
{ {