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

@@ -111,6 +111,9 @@ namespace OpenRA
return null;
if (!World.Map.IsInMap(xy.X, xy.Y))
return null;
if (Destroyed)
return null;
var underCursor = World.FindUnitsAtMouse(mi.Location)

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,17 +38,19 @@ namespace OpenRA.Orders
public void RenderBeforeWorld(World world)
{
foreach (var a in world.Selection.Actors)
foreach (var t in a.TraitsImplementing<IPreRenderSelection>())
t.RenderBeforeWorld(a);
if (!a.Destroyed)
foreach (var t in a.TraitsImplementing<IPreRenderSelection>())
t.RenderBeforeWorld(a);
Game.Renderer.Flush();
}
public void RenderAfterWorld( World world )
{
foreach (var a in world.Selection.Actors)
foreach (var t in a.TraitsImplementing<IPostRenderSelection>())
t.RenderAfterWorld(a);
foreach (var a in world.Selection.Actors)
if (!a.Destroyed)
foreach (var t in a.TraitsImplementing<IPostRenderSelection>())
t.RenderAfterWorld(a);
Game.Renderer.Flush();
}

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;