Use Target range checks in Armament.
This commit is contained in:
@@ -107,9 +107,17 @@ namespace OpenRA.Mods.RA
|
|||||||
if (limitedAmmo != null && !limitedAmmo.HasAmmo())
|
if (limitedAmmo != null && !limitedAmmo.HasAmmo())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!Combat.IsInRange(self.CenterLocation, Weapon.Range, target)) return;
|
// TODO: Define weapon ranges as WRange
|
||||||
if (Combat.IsInRange(self.CenterLocation, Weapon.MinRange, target)) return;
|
var range = new WRange((int)(1024*Weapon.Range));
|
||||||
if (!IsValidAgainst(self.World, target)) return;
|
var minRange = new WRange((int)(1024*Weapon.MinRange));
|
||||||
|
if (!target.IsInRange(self.CenterPosition, range))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (target.IsInRange(self.CenterPosition, minRange))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!IsValidAgainst(self.World, target))
|
||||||
|
return;
|
||||||
|
|
||||||
var barrel = Barrels[Burst % Barrels.Length];
|
var barrel = Barrels[Burst % Barrels.Length];
|
||||||
var destMove = target.IsActor ? target.Actor.TraitOrDefault<IMove>() : null;
|
var destMove = target.IsActor ? target.Actor.TraitOrDefault<IMove>() : null;
|
||||||
|
|||||||
Reference in New Issue
Block a user