fix obvious failures.
This commit is contained in:
@@ -111,6 +111,9 @@ namespace OpenRA
|
|||||||
return null;
|
return null;
|
||||||
|
|
||||||
if (!World.Map.IsInMap(xy.X, xy.Y))
|
if (!World.Map.IsInMap(xy.X, xy.Y))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
if (Destroyed)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
var underCursor = World.FindUnitsAtMouse(mi.Location)
|
var underCursor = World.FindUnitsAtMouse(mi.Location)
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ namespace OpenRA.GameRules
|
|||||||
public Target target;
|
public Target target;
|
||||||
public int2 dest;
|
public int2 dest;
|
||||||
public int destAltitude;
|
public int destAltitude;
|
||||||
|
public float firepowerModifier = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface IProjectileInfo { IEffect Create(ProjectileArgs args); }
|
public interface IProjectileInfo { IEffect Create(ProjectileArgs args); }
|
||||||
|
|||||||
@@ -38,17 +38,19 @@ namespace OpenRA.Orders
|
|||||||
public void RenderBeforeWorld(World world)
|
public void RenderBeforeWorld(World world)
|
||||||
{
|
{
|
||||||
foreach (var a in world.Selection.Actors)
|
foreach (var a in world.Selection.Actors)
|
||||||
foreach (var t in a.TraitsImplementing<IPreRenderSelection>())
|
if (!a.Destroyed)
|
||||||
t.RenderBeforeWorld(a);
|
foreach (var t in a.TraitsImplementing<IPreRenderSelection>())
|
||||||
|
t.RenderBeforeWorld(a);
|
||||||
|
|
||||||
Game.Renderer.Flush();
|
Game.Renderer.Flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RenderAfterWorld( World world )
|
public void RenderAfterWorld( World world )
|
||||||
{
|
{
|
||||||
foreach (var a in world.Selection.Actors)
|
foreach (var a in world.Selection.Actors)
|
||||||
foreach (var t in a.TraitsImplementing<IPostRenderSelection>())
|
if (!a.Destroyed)
|
||||||
t.RenderAfterWorld(a);
|
foreach (var t in a.TraitsImplementing<IPostRenderSelection>())
|
||||||
|
t.RenderAfterWorld(a);
|
||||||
|
|
||||||
Game.Renderer.Flush();
|
Game.Renderer.Flush();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -144,6 +144,10 @@ namespace OpenRA.Mods.RA
|
|||||||
facing = barrel.Facing +
|
facing = barrel.Facing +
|
||||||
(self.HasTrait<Turreted>() ? self.Trait<Turreted>().turretFacing :
|
(self.HasTrait<Turreted>() ? self.Trait<Turreted>().turretFacing :
|
||||||
facing != null ? facing.Facing : Util.GetFacing(target.CenterLocation - self.CenterLocation, 0)),
|
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>() ), () =>
|
ScheduleDelayedAction( FireDelay( self, self.Info.Traits.Get<AttackBaseInfo>() ), () =>
|
||||||
|
|||||||
@@ -70,11 +70,6 @@ namespace OpenRA.Mods.RA
|
|||||||
if (warhead.Ore)
|
if (warhead.Ore)
|
||||||
world.WorldActor.Trait<ResourceLayer>().Destroy(targetTile);
|
world.WorldActor.Trait<ResourceLayer>().Destroy(targetTile);
|
||||||
|
|
||||||
var firepowerModifier = args.firedBy
|
|
||||||
.TraitsImplementing<IFirepowerModifier>()
|
|
||||||
.Select(a => a.GetFirepowerModifier())
|
|
||||||
.Product();
|
|
||||||
|
|
||||||
switch (warhead.DamageModel)
|
switch (warhead.DamageModel)
|
||||||
{
|
{
|
||||||
case DamageModel.Normal:
|
case DamageModel.Normal:
|
||||||
@@ -84,7 +79,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
foreach (var victim in hitActors)
|
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);
|
victim.InflictDamage(args.firedBy, damage, warhead);
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|||||||
Reference in New Issue
Block a user