remove AttackDefault; use AttackFrontal instead
This commit is contained in:
@@ -282,14 +282,4 @@ namespace OpenRA.Mods.RA
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class AttackDefaultInfo : AttackBaseInfo
|
||||
{
|
||||
public override object Create( ActorInitializer init ) { return new AttackDefault( init.self ); }
|
||||
}
|
||||
|
||||
public class AttackDefault : AttackBase
|
||||
{
|
||||
public AttackDefault( Actor self ) : base( self ) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,12 +13,18 @@ using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
abstract class AttackFrontal : AttackBase
|
||||
public class AttackFrontalInfo : AttackBaseInfo
|
||||
{
|
||||
public AttackFrontal(Actor self, int facingTolerance)
|
||||
: base(self) { FacingTolerance = facingTolerance; }
|
||||
public readonly int FacingTolerance = 1;
|
||||
|
||||
readonly int FacingTolerance;
|
||||
public override object Create( ActorInitializer init ) { return new AttackFrontal( init.self, this ); }
|
||||
}
|
||||
|
||||
public class AttackFrontal : AttackBase
|
||||
{
|
||||
readonly AttackFrontalInfo info;
|
||||
public AttackFrontal(Actor self, AttackFrontalInfo info)
|
||||
: base( self ) { this.info = info; }
|
||||
|
||||
protected override bool CanAttack( Actor self )
|
||||
{
|
||||
@@ -28,7 +34,7 @@ namespace OpenRA.Mods.RA
|
||||
var facing = self.Trait<IFacing>().Facing;
|
||||
var facingToTarget = Util.GetFacing(target.CenterLocation - self.CenterLocation, facing);
|
||||
|
||||
if( Math.Abs( facingToTarget - facing ) % 256 >= FacingTolerance )
|
||||
if( Math.Abs( facingToTarget - facing ) % 256 > info.FacingTolerance )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -13,14 +13,14 @@ using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
class AttackHeliInfo : AttackBaseInfo
|
||||
class AttackHeliInfo : AttackFrontalInfo
|
||||
{
|
||||
public override object Create(ActorInitializer init) { return new AttackHeli(init.self); }
|
||||
public override object Create(ActorInitializer init) { return new AttackHeli(init.self, this); }
|
||||
}
|
||||
|
||||
class AttackHeli : AttackFrontal
|
||||
{
|
||||
public AttackHeli(Actor self) : base(self, 20) { }
|
||||
public AttackHeli(Actor self, AttackHeliInfo info) : base(self, info) { }
|
||||
|
||||
protected override void QueueAttack(Actor self, Target newTarget)
|
||||
{
|
||||
|
||||
@@ -13,14 +13,14 @@ using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
{
|
||||
class AttackPlaneInfo : AttackBaseInfo
|
||||
class AttackPlaneInfo : AttackFrontalInfo
|
||||
{
|
||||
public override object Create(ActorInitializer init) { return new AttackPlane(init.self); }
|
||||
public override object Create(ActorInitializer init) { return new AttackPlane(init.self, this); }
|
||||
}
|
||||
|
||||
class AttackPlane : AttackFrontal
|
||||
{
|
||||
public AttackPlane(Actor self) : base(self, 20) { }
|
||||
public AttackPlane(Actor self, AttackPlaneInfo info) : base(self, info) { }
|
||||
|
||||
protected override void QueueAttack(Actor self, Target newTarget)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user