remove the default impl of QueueAttack; implement it in AttackFrontal and AttackLeap
This commit is contained in:
@@ -181,16 +181,7 @@ namespace OpenRA.Mods.RA
|
|||||||
return (order.OrderString == "Attack") ? "Attack" : null;
|
return (order.OrderString == "Attack") ? "Attack" : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void QueueAttack(Actor self, Target newTarget)
|
protected abstract void QueueAttack(Actor self, Target newTarget);
|
||||||
{
|
|
||||||
var weapon = ChooseWeaponForTarget(newTarget);
|
|
||||||
|
|
||||||
if (weapon != null)
|
|
||||||
self.QueueActivity(
|
|
||||||
new Activities.Attack(
|
|
||||||
newTarget,
|
|
||||||
Math.Max(0, (int)weapon.Info.Range)));
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool HasAnyValidWeapons(Target t) { return Weapons.Any(w => w.IsValidAgainst(self.World, t)); }
|
public bool HasAnyValidWeapons(Target t) { return Weapons.Any(w => w.IsValidAgainst(self.World, t)); }
|
||||||
public float GetMaximumRange() { return Weapons.Max(w => w.Info.Range); }
|
public float GetMaximumRange() { return Weapons.Max(w => w.Info.Range); }
|
||||||
|
|||||||
@@ -39,5 +39,16 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void QueueAttack(Actor self, Target newTarget)
|
||||||
|
{
|
||||||
|
var weapon = ChooseWeaponForTarget(newTarget);
|
||||||
|
|
||||||
|
if (weapon != null)
|
||||||
|
self.QueueActivity(
|
||||||
|
new Activities.Attack(
|
||||||
|
newTarget,
|
||||||
|
Math.Max(0, (int)weapon.Info.Range)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using OpenRA.Mods.RA.Activities;
|
using OpenRA.Mods.RA.Activities;
|
||||||
|
using System;
|
||||||
|
using OpenRA.Traits;
|
||||||
|
|
||||||
namespace OpenRA.Mods.RA
|
namespace OpenRA.Mods.RA
|
||||||
{
|
{
|
||||||
@@ -37,5 +39,16 @@ namespace OpenRA.Mods.RA
|
|||||||
self.CancelActivity();
|
self.CancelActivity();
|
||||||
self.QueueActivity(new Leap(self, target));
|
self.QueueActivity(new Leap(self, target));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void QueueAttack(Actor self, Target newTarget)
|
||||||
|
{
|
||||||
|
var weapon = ChooseWeaponForTarget(newTarget);
|
||||||
|
|
||||||
|
if (weapon != null)
|
||||||
|
self.QueueActivity(
|
||||||
|
new Activities.Attack(
|
||||||
|
newTarget,
|
||||||
|
Math.Max(0, (int)weapon.Info.Range)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user