diff --git a/OpenRA.Mods.RA/Effects/Parachute.cs b/OpenRA.Mods.RA/Effects/Parachute.cs index 3f86af57e6..20f1d3abdd 100644 --- a/OpenRA.Mods.RA/Effects/Parachute.cs +++ b/OpenRA.Mods.RA/Effects/Parachute.cs @@ -24,13 +24,17 @@ namespace OpenRA.Mods.RA.Effects readonly WVec parachuteOffset; readonly Actor cargo; WPos pos; - WVec fallRate = new WVec(0, 0, 13); + WVec fallVector; public Parachute(Actor cargo, WPos dropPosition) { this.cargo = cargo; parachutableInfo = cargo.Info.Traits.GetOrDefault(); + + if (parachutableInfo != null) + fallVector = new WVec(0, 0, parachutableInfo.FallRate); + var parachuteSprite = parachutableInfo != null ? parachutableInfo.ParachuteSequence : null; if (parachuteSprite != null) { @@ -62,7 +66,7 @@ namespace OpenRA.Mods.RA.Effects if (shadow != null) shadow.Tick(); - pos -= fallRate; + pos -= fallVector; if (pos.Z <= 0) { diff --git a/OpenRA.Mods.RA/Parachutable.cs b/OpenRA.Mods.RA/Parachutable.cs index b8d0d39c44..2391db913e 100644 --- a/OpenRA.Mods.RA/Parachutable.cs +++ b/OpenRA.Mods.RA/Parachutable.cs @@ -35,6 +35,8 @@ namespace OpenRA.Mods.RA public readonly WVec ParachuteOffset = WVec.Zero; + public readonly int FallRate = 13; + [Desc("Alternative to ParachuteShadowPalette which disables it and allows to set a custom sprite sequence instead.")] public readonly string ShadowSequence = null; [Desc("Optional, otherwise defaults to the palette the actor is using.")] diff --git a/mods/d2k/rules/defaults.yaml b/mods/d2k/rules/defaults.yaml index b42f8a0486..08863b5172 100644 --- a/mods/d2k/rules/defaults.yaml +++ b/mods/d2k/rules/defaults.yaml @@ -197,6 +197,7 @@ ScriptTriggers: DeathSounds: Parachutable: + FallRate: 130 ^Plane: AppearsOnRadar: