Make Attack* traits PausableConditional and replace IsDisabled with IsTraitDisabled checks
This commit is contained in:
@@ -19,7 +19,7 @@ using OpenRA.Traits;
|
|||||||
|
|
||||||
namespace OpenRA.Mods.Common.Traits
|
namespace OpenRA.Mods.Common.Traits
|
||||||
{
|
{
|
||||||
public abstract class AttackBaseInfo : ConditionalTraitInfo
|
public abstract class AttackBaseInfo : PausableConditionalTraitInfo
|
||||||
{
|
{
|
||||||
[Desc("Armament names")]
|
[Desc("Armament names")]
|
||||||
public readonly string[] Armaments = { "primary", "secondary" };
|
public readonly string[] Armaments = { "primary", "secondary" };
|
||||||
@@ -39,7 +39,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public override abstract object Create(ActorInitializer init);
|
public override abstract object Create(ActorInitializer init);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract class AttackBase : ConditionalTrait<AttackBaseInfo>, INotifyCreated, IIssueOrder, IResolveOrder, IOrderVoice, ISync
|
public abstract class AttackBase : PausableConditionalTrait<AttackBaseInfo>, INotifyCreated, IIssueOrder, IResolveOrder, IOrderVoice, ISync
|
||||||
{
|
{
|
||||||
readonly string attackOrderName = "Attack";
|
readonly string attackOrderName = "Attack";
|
||||||
readonly string forceAttackOrderName = "ForceAttack";
|
readonly string forceAttackOrderName = "ForceAttack";
|
||||||
@@ -81,7 +81,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
protected virtual bool CanAttack(Actor self, Target target)
|
protected virtual bool CanAttack(Actor self, Target target)
|
||||||
{
|
{
|
||||||
if (!self.IsInWorld || IsTraitDisabled || self.IsDisabled())
|
if (!self.IsInWorld || IsTraitDisabled || IsTraitPaused)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!target.IsValidFor(self))
|
if (!target.IsValidFor(self))
|
||||||
@@ -333,7 +333,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
public void AttackTarget(Target target, bool queued, bool allowMove, bool forceAttack = false)
|
public void AttackTarget(Target target, bool queued, bool allowMove, bool forceAttack = false)
|
||||||
{
|
{
|
||||||
if (self.IsDisabled() || IsTraitDisabled)
|
if (IsTraitDisabled || IsTraitPaused)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!target.IsValidFor(self))
|
if (!target.IsValidFor(self))
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
if (IsCanceled || !target.IsValidFor(self))
|
if (IsCanceled || !target.IsValidFor(self))
|
||||||
return NextActivity;
|
return NextActivity;
|
||||||
|
|
||||||
if (self.IsDisabled())
|
if (attack.IsTraitPaused)
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
var weapon = attack.ChooseArmamentsForTarget(target, forceAttack).FirstOrDefault();
|
var weapon = attack.ChooseArmamentsForTarget(target, forceAttack).FirstOrDefault();
|
||||||
|
|||||||
Reference in New Issue
Block a user