Check ITargetable when deciding target validity. Fixes #3659.

This commit is contained in:
Paul Chote
2013-08-18 17:15:22 +12:00
parent 8fd4243861
commit bc5c11e44f
26 changed files with 62 additions and 44 deletions

View File

@@ -59,7 +59,7 @@ namespace OpenRA.Mods.RA.Effects
public void Tick(World world)
{
// Beam tracks target
if (args.guidedTarget.IsValid)
if (args.guidedTarget.IsValidFor(args.sourceActor))
target = args.guidedTarget.CenterPosition;
if (!doneDamage)

View File

@@ -120,7 +120,7 @@ namespace OpenRA.Mods.RA.Effects
anim.Tick();
// Missile tracks target
if (args.guidedTarget.IsValid)
if (args.guidedTarget.IsValidFor(args.sourceActor))
target = args.guidedTarget.CenterPosition;
var dist = target + offset - pos;
@@ -133,7 +133,7 @@ namespace OpenRA.Mods.RA.Effects
desiredFacing = facing + world.SharedRandom.Next(-20, 21);
desiredAltitude = world.SharedRandom.Next(-43, 86);
}
else if (!args.guidedTarget.IsValid)
else if (!args.guidedTarget.IsValidFor(args.sourceActor))
desiredFacing = facing;
facing = Traits.Util.TickFacing(facing, desiredFacing, info.ROT);

View File

@@ -48,7 +48,7 @@ namespace OpenRA.Mods.RA.Effects
if (!doneDamage)
{
var pos = Args.guidedTarget.IsValid ? Args.guidedTarget.CenterPosition : Args.passiveTarget;
var pos = Args.guidedTarget.IsValidFor(Args.sourceActor) ? Args.guidedTarget.CenterPosition : Args.passiveTarget;
Combat.DoImpacts(pos, Args.sourceActor, Args.weapon, Args.firepowerModifier);
doneDamage = true;
}
@@ -58,7 +58,7 @@ namespace OpenRA.Mods.RA.Effects
{
if (!initialized)
{
var pos = Args.guidedTarget.IsValid ? Args.guidedTarget.CenterPosition : Args.passiveTarget;
var pos = Args.guidedTarget.IsValidFor(Args.sourceActor) ? Args.guidedTarget.CenterPosition : Args.passiveTarget;
zap = new TeslaZapRenderable(Args.source, 0, pos - Args.source, Info.Image, Info.BrightZaps, Info.DimZaps);
}
yield return zap;