fix obvious failures.

This commit is contained in:
Chris Forbes
2010-08-26 19:53:21 +12:00
parent 739c38d3d8
commit ce0e671ac5
5 changed files with 16 additions and 11 deletions

View File

@@ -113,6 +113,9 @@ namespace OpenRA
if (!World.Map.IsInMap(xy.X, xy.Y))
return null;
if (Destroyed)
return null;
var underCursor = World.FindUnitsAtMouse(mi.Location)
.Where(a => a.Info.Traits.Contains<TargetableInfo>())
.OrderByDescending(a => a.Info.Traits.Contains<SelectableInfo>() ? a.Info.Traits.Get<SelectableInfo>().Priority : int.MinValue)

View File

@@ -65,6 +65,7 @@ namespace OpenRA.GameRules
public Target target;
public int2 dest;
public int destAltitude;
public float firepowerModifier = 1.0f;
}
public interface IProjectileInfo { IEffect Create(ProjectileArgs args); }

View File

@@ -38,6 +38,7 @@ namespace OpenRA.Orders
public void RenderBeforeWorld(World world)
{
foreach (var a in world.Selection.Actors)
if (!a.Destroyed)
foreach (var t in a.TraitsImplementing<IPreRenderSelection>())
t.RenderBeforeWorld(a);
@@ -47,6 +48,7 @@ namespace OpenRA.Orders
public void RenderAfterWorld( World world )
{
foreach (var a in world.Selection.Actors)
if (!a.Destroyed)
foreach (var t in a.TraitsImplementing<IPostRenderSelection>())
t.RenderAfterWorld(a);

View File

@@ -144,6 +144,10 @@ namespace OpenRA.Mods.RA
facing = barrel.Facing +
(self.HasTrait<Turreted>() ? self.Trait<Turreted>().turretFacing :
facing != null ? facing.Facing : Util.GetFacing(target.CenterLocation - self.CenterLocation, 0)),
firepowerModifier = self.TraitsImplementing<IFirepowerModifier>()
.Select(a => a.GetFirepowerModifier())
.Product()
};
ScheduleDelayedAction( FireDelay( self, self.Info.Traits.Get<AttackBaseInfo>() ), () =>

View File

@@ -70,11 +70,6 @@ namespace OpenRA.Mods.RA
if (warhead.Ore)
world.WorldActor.Trait<ResourceLayer>().Destroy(targetTile);
var firepowerModifier = args.firedBy
.TraitsImplementing<IFirepowerModifier>()
.Select(a => a.GetFirepowerModifier())
.Product();
switch (warhead.DamageModel)
{
case DamageModel.Normal:
@@ -84,7 +79,7 @@ namespace OpenRA.Mods.RA
foreach (var victim in hitActors)
{
var damage = (int)GetDamageToInflict(victim, args, warhead, firepowerModifier);
var damage = (int)GetDamageToInflict(victim, args, warhead, args.firepowerModifier);
victim.InflictDamage(args.firedBy, damage, warhead);
}
} break;