Make AreaBeam and LaserZap Z sorting customizable

This commit is contained in:
reaperrr
2015-12-27 18:54:39 +01:00
committed by RoosterDragon
parent 92c7af7302
commit a7b5800d6f
4 changed files with 12 additions and 2 deletions

View File

@@ -59,6 +59,9 @@ namespace OpenRA.Mods.Common.Effects
[Desc("Should the beam be visuall rendered? False = Beam is invisible.")] [Desc("Should the beam be visuall rendered? False = Beam is invisible.")]
public readonly bool RenderBeam = true; public readonly bool RenderBeam = true;
[Desc("Equivalent to sequence ZOffset. Controls Z sorting.")]
public readonly int ZOffset = 0;
[Desc("Color of the beam.")] [Desc("Color of the beam.")]
public readonly Color Color = Color.Red; public readonly Color Color = Color.Red;
@@ -193,7 +196,7 @@ namespace OpenRA.Mods.Common.Effects
{ {
if (!IsBeamComplete && info.RenderBeam && !(wr.World.FogObscures(tailPos) && wr.World.FogObscures(headPos))) if (!IsBeamComplete && info.RenderBeam && !(wr.World.FogObscures(tailPos) && wr.World.FogObscures(headPos)))
{ {
var beamRender = new BeamRenderable(headPos, 0, tailPos - headPos, info.Shape, info.Width, color); var beamRender = new BeamRenderable(headPos, info.ZOffset, tailPos - headPos, info.Shape, info.Width, color);
return new[] { (IRenderable)beamRender }; return new[] { (IRenderable)beamRender };
} }

View File

@@ -27,6 +27,9 @@ namespace OpenRA.Mods.Common.Effects
[Desc("The shape of the beam. Accepts values Cylindrical or Flat.")] [Desc("The shape of the beam. Accepts values Cylindrical or Flat.")]
public readonly BeamRenderableShape Shape = BeamRenderableShape.Cylindrical; public readonly BeamRenderableShape Shape = BeamRenderableShape.Cylindrical;
[Desc("Equivalent to sequence ZOffset. Controls Z sorting.")]
public readonly int ZOffset = 0;
public readonly int BeamDuration = 10; public readonly int BeamDuration = 10;
public readonly bool UsePlayerColor = false; public readonly bool UsePlayerColor = false;
@@ -102,7 +105,7 @@ namespace OpenRA.Mods.Common.Effects
if (ticks < info.BeamDuration) if (ticks < info.BeamDuration)
{ {
var rc = Color.FromArgb((info.BeamDuration - ticks) * 255 / info.BeamDuration, color); var rc = Color.FromArgb((info.BeamDuration - ticks) * 255 / info.BeamDuration, color);
yield return new BeamRenderable(args.Source, 0, target - args.Source, info.Shape, info.Width, rc); yield return new BeamRenderable(args.Source, info.ZOffset, target - args.Source, info.Shape, info.Width, rc);
} }
if (hitanim != null) if (hitanim != null)

View File

@@ -125,6 +125,7 @@ Laser:
Projectile: LaserZap Projectile: LaserZap
Width: 85 Width: 85
HitAnim: laserfire HitAnim: laserfire
ZOffset: 2047
Warhead@1Dam: SpreadDamage Warhead@1Dam: SpreadDamage
Spread: 42 Spread: 42
Damage: 360 Damage: 360

View File

@@ -75,6 +75,7 @@ SonicZap:
DamageInterval: 5 # Roughly 18 impacts. DamageInterval: 5 # Roughly 18 impacts.
Width: 0c384 Width: 0c384
Shape: Flat Shape: Flat
ZOffset: 2047
BeyondTargetRange: 0c256 BeyondTargetRange: 0c256
Blockable: true Blockable: true
Color: 00FFFFC8 Color: 00FFFFC8
@@ -176,6 +177,7 @@ ObeliskLaserFire:
Report: OBELRAY1.AUD Report: OBELRAY1.AUD
Projectile: LaserZap Projectile: LaserZap
Width: 170 Width: 170
ZOffset: 2047
Warhead@1Dam: SpreadDamage Warhead@1Dam: SpreadDamage
Spread: 42 Spread: 42
Damage: 250 Damage: 250
@@ -188,6 +190,7 @@ TurretLaserFire:
Projectile: LaserZap Projectile: LaserZap
Width: 85 Width: 85
BeamDuration: 5 BeamDuration: 5
ZOffset: 2047
Warhead@1Dam: SpreadDamage Warhead@1Dam: SpreadDamage
Spread: 42 Spread: 42
Damage: 30 Damage: 30