make the parachute palettes configurable
This commit is contained in:
@@ -18,6 +18,7 @@ namespace OpenRA.Mods.RA.Effects
|
|||||||
{
|
{
|
||||||
public class Parachute : IEffect
|
public class Parachute : IEffect
|
||||||
{
|
{
|
||||||
|
readonly ParachutableInfo parachutableInfo;
|
||||||
readonly Animation parachute;
|
readonly Animation parachute;
|
||||||
readonly WVec parachuteOffset;
|
readonly WVec parachuteOffset;
|
||||||
readonly Actor cargo;
|
readonly Actor cargo;
|
||||||
@@ -28,7 +29,7 @@ namespace OpenRA.Mods.RA.Effects
|
|||||||
{
|
{
|
||||||
this.cargo = cargo;
|
this.cargo = cargo;
|
||||||
|
|
||||||
var parachutableInfo = cargo.Info.Traits.GetOrDefault<ParachutableInfo>();
|
parachutableInfo = cargo.Info.Traits.GetOrDefault<ParachutableInfo>();
|
||||||
var parachuteSprite = parachutableInfo != null ? parachutableInfo.ParachuteSequence : null;
|
var parachuteSprite = parachutableInfo != null ? parachutableInfo.ParachuteSequence : null;
|
||||||
if (parachuteSprite != null)
|
if (parachuteSprite != null)
|
||||||
{
|
{
|
||||||
@@ -74,7 +75,7 @@ namespace OpenRA.Mods.RA.Effects
|
|||||||
if (!rc.Any())
|
if (!rc.Any())
|
||||||
yield break;
|
yield break;
|
||||||
|
|
||||||
var shadow = wr.Palette("shadow");
|
var shadow = wr.Palette(parachutableInfo.ParachuteShadowPalette);
|
||||||
foreach (var c in rc)
|
foreach (var c in rc)
|
||||||
{
|
{
|
||||||
if (!c.IsDecoration)
|
if (!c.IsDecoration)
|
||||||
@@ -83,8 +84,9 @@ namespace OpenRA.Mods.RA.Effects
|
|||||||
yield return c.OffsetBy(pos - c.Pos);
|
yield return c.OffsetBy(pos - c.Pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var palette = !string.IsNullOrEmpty(parachutableInfo.ParachutePalette) ? wr.Palette(parachutableInfo.ParachutePalette) : rc.First().Palette;
|
||||||
if (parachute != null)
|
if (parachute != null)
|
||||||
foreach (var r in parachute.Render(pos, parachuteOffset, 1, rc.First().Palette, 1f))
|
foreach (var r in parachute.Render(pos, parachuteOffset, 1, palette, 1f))
|
||||||
yield return r;
|
yield return r;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
[Desc("Requires the sub-sequences \"open\" and \"idle\".")]
|
[Desc("Requires the sub-sequences \"open\" and \"idle\".")]
|
||||||
public readonly string ParachuteSequence = null;
|
public readonly string ParachuteSequence = null;
|
||||||
|
public readonly string ParachutePalette = null;
|
||||||
|
public readonly string ParachuteShadowPalette = "shadow";
|
||||||
public readonly WVec ParachuteOffset = WVec.Zero;
|
public readonly WVec ParachuteOffset = WVec.Zero;
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new Parachutable(init, this); }
|
public object Create(ActorInitializer init) { return new Parachutable(init, this); }
|
||||||
|
|||||||
Reference in New Issue
Block a user