Combat.DoExplosion now takes a Target

(needs more refactoring)
This commit is contained in:
alzeih
2010-07-22 16:00:14 +12:00
parent 4e22e37192
commit 6be4e5c266
11 changed files with 22 additions and 21 deletions

View File

@@ -75,8 +75,9 @@ namespace OpenRA.Mods.RA.Effects
var targetPosition = Args.target.CenterLocation + offset;
var targetUnit = Args.target.traits.GetOrDefault<Unit>();
var targetAltitude = targetUnit != null ? targetUnit.Altitude : 0;
var targetAltitude = 0;
if (Args.target.IsActor && Args.target.Actor.traits.GetOrDefault<Unit>() != null)
targetAltitude = Args.target.Actor.traits.GetOrDefault<Unit>().Altitude;
Altitude += Math.Sign(targetAltitude - Altitude);
Traits.Util.TickFacing(ref Facing,
@@ -86,7 +87,7 @@ namespace OpenRA.Mods.RA.Effects
anim.Tick();
var dist = targetPosition - Pos;
if (dist.LengthSquared < MissileCloseEnough * MissileCloseEnough || Args.target.IsDead)
if (dist.LengthSquared < MissileCloseEnough * MissileCloseEnough || !Args.target.IsValid )
Explode(world);
var speed = Scale * Info.Speed * ((targetAltitude > 0 && Info.TurboBoost) ? 1.5f : 1f);