Display an "outside range" cursor for attacks.
This commit is contained in:
committed by
Paul Chote
parent
2fd47ee743
commit
ce49d5df5e
@@ -20,6 +20,7 @@ namespace OpenRA.Mods.RA
|
|||||||
public abstract class AttackBaseInfo : ITraitInfo
|
public abstract class AttackBaseInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
public readonly string Cursor = "attack";
|
public readonly string Cursor = "attack";
|
||||||
|
public readonly string OutsideRangeCursor = "attackoutsiderange";
|
||||||
|
|
||||||
public abstract object Create(ActorInitializer init);
|
public abstract object Create(ActorInitializer init);
|
||||||
}
|
}
|
||||||
@@ -188,7 +189,10 @@ namespace OpenRA.Mods.RA
|
|||||||
{
|
{
|
||||||
IsQueued = modifiers.HasModifier(TargetModifiers.ForceQueue);
|
IsQueued = modifiers.HasModifier(TargetModifiers.ForceQueue);
|
||||||
|
|
||||||
cursor = ab.info.Cursor;
|
var a = ab.ChooseArmamentForTarget(target);
|
||||||
|
cursor = a != null && !target.IsInRange(self.CenterPosition, a.Weapon.Range)
|
||||||
|
? ab.info.OutsideRangeCursor
|
||||||
|
: ab.info.Cursor;
|
||||||
|
|
||||||
if (target.Type == TargetType.Actor && target.Actor == self)
|
if (target.Type == TargetType.Actor && target.Actor == self)
|
||||||
return false;
|
return false;
|
||||||
@@ -220,11 +224,18 @@ namespace OpenRA.Mods.RA
|
|||||||
if (negativeDamage)
|
if (negativeDamage)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!self.Trait<AttackBase>().HasAnyValidWeapons(Target.FromCell(location)))
|
if (!ab.HasAnyValidWeapons(Target.FromCell(location)))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (modifiers.HasModifier(TargetModifiers.ForceAttack))
|
if (modifiers.HasModifier(TargetModifiers.ForceAttack))
|
||||||
|
{
|
||||||
|
var maxRange = ab.GetMaximumRange().Range;
|
||||||
|
var targetRange = (location.CenterPosition - self.CenterPosition).HorizontalLengthSquared;
|
||||||
|
if (targetRange > maxRange * maxRange)
|
||||||
|
cursor = ab.info.OutsideRangeCursor;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,6 +119,16 @@ Cursors:
|
|||||||
length: 8
|
length: 8
|
||||||
x: 24
|
x: 24
|
||||||
y: 24
|
y: 24
|
||||||
|
attackoutsiderange:
|
||||||
|
start:16
|
||||||
|
length: 8
|
||||||
|
x: 24
|
||||||
|
y: 24
|
||||||
|
attackoutsiderange-minimap:
|
||||||
|
start:16
|
||||||
|
length: 8
|
||||||
|
x: 24
|
||||||
|
y: 24
|
||||||
attackmove:
|
attackmove:
|
||||||
start:16
|
start:16
|
||||||
length: 8
|
length: 8
|
||||||
|
|||||||
@@ -70,6 +70,12 @@ Cursors:
|
|||||||
attack-minimap:
|
attack-minimap:
|
||||||
start:203
|
start:203
|
||||||
length: 8
|
length: 8
|
||||||
|
attackoutsiderange:
|
||||||
|
start:21
|
||||||
|
length: 8
|
||||||
|
attackoutsiderange-minimap:
|
||||||
|
start:134
|
||||||
|
length: 8
|
||||||
harvest:
|
harvest:
|
||||||
start:21
|
start:21
|
||||||
length: 8
|
length: 8
|
||||||
|
|||||||
@@ -72,6 +72,12 @@ Cursors:
|
|||||||
attack-minimap:
|
attack-minimap:
|
||||||
start: 63
|
start: 63
|
||||||
length: 5
|
length: 5
|
||||||
|
attackoutsiderange:
|
||||||
|
start: 58
|
||||||
|
length: 5
|
||||||
|
attackoutsiderange-minimap:
|
||||||
|
start: 63
|
||||||
|
length: 5
|
||||||
attackmove: #TODO
|
attackmove: #TODO
|
||||||
start: 58
|
start: 58
|
||||||
length: 5
|
length: 5
|
||||||
|
|||||||
Reference in New Issue
Block a user