diff --git a/OpenRA.Mods.RA/Effects/Parachute.cs b/OpenRA.Mods.RA/Effects/Parachute.cs index 5771ccbc6f..4fbe73c275 100644 --- a/OpenRA.Mods.RA/Effects/Parachute.cs +++ b/OpenRA.Mods.RA/Effects/Parachute.cs @@ -25,6 +25,7 @@ namespace OpenRA.Mods.RA.Effects readonly Actor cargo; + int2 offset; float altitude; const float fallRate = .3f; @@ -44,9 +45,13 @@ namespace OpenRA.Mods.RA.Effects else anim.PlayFetchIndex("stand", () => 0); anim.Tick(); + + var pai = cargo.Info.Traits.GetOrDefault(); - paraAnim = new Animation("parach"); + paraAnim = new Animation(pai != null ? pai.ParachuteSprite : "parach"); paraAnim.PlayThen("open", () => paraAnim.PlayRepeating("idle")); + + if (pai != null) offset = pai.Offset; } public void Tick(World world) @@ -71,7 +76,7 @@ namespace OpenRA.Mods.RA.Effects var pos = location - new float2(0, altitude); yield return new Renderable(anim.Image, location - .5f * anim.Image.size, "shadow", 0); yield return new Renderable(anim.Image, pos - .5f * anim.Image.size, palette, 2); - yield return new Renderable(paraAnim.Image, pos - .5f * paraAnim.Image.size, palette, 3); + yield return new Renderable(paraAnim.Image, pos - .5f * paraAnim.Image.size + offset, palette, 3); } } } diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index ffbe84d5da..dd83ab07df 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -346,6 +346,7 @@ + diff --git a/OpenRA.Mods.RA/ParachuteAttachment.cs b/OpenRA.Mods.RA/ParachuteAttachment.cs new file mode 100644 index 0000000000..964cd98d5b --- /dev/null +++ b/OpenRA.Mods.RA/ParachuteAttachment.cs @@ -0,0 +1,26 @@ +#region Copyright & License Information +/* + * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) + * This file is part of OpenRA, which is free software. It is made + * available to you under the terms of the GNU General Public License + * as published by the Free Software Foundation. For more information, + * see COPYING. + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using OpenRA.Traits; + +namespace OpenRA.Mods.RA +{ + class ParachuteAttachmentInfo : TraitInfo + { + public readonly string ParachuteSprite = "parach"; + public readonly int2 Offset = new int2(0,0); + } + + class ParachuteAttachment {} +} \ No newline at end of file diff --git a/mods/ra/rules/defaults.yaml b/mods/ra/rules/defaults.yaml index cbe730414d..674885f5ad 100644 --- a/mods/ra/rules/defaults.yaml +++ b/mods/ra/rules/defaults.yaml @@ -102,6 +102,8 @@ GivesBounty: GpsDot: String:Infantry + ParachuteAttachment: + Offset: 0,-10 ^Ship: AppearsOnRadar: