added Parachute effect + sequences + cargo for BADR

This commit is contained in:
Chris Forbes
2010-01-28 18:14:12 +13:00
parent 02ab0f5444
commit 3eee141b79
5 changed files with 90 additions and 8 deletions

View File

@@ -0,0 +1,62 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenRa.Traits;
using OpenRa.Graphics;
namespace OpenRa.Effects
{
class Parachute : IEffect
{
readonly Animation anim;
readonly Animation paraAnim;
readonly float2 location;
readonly Actor cargo;
readonly Player owner;
float altitude;
const float fallRate = .3f;
public Parachute(Player owner, string image, float2 location, int altitude, Actor cargo)
{
this.location = location;
this.altitude = altitude;
this.cargo = cargo;
this.owner = owner;
anim = new Animation(image);
anim.PlayFetchIndex("idle", () => 0);
anim.Tick();
paraAnim = new Animation("parach");
paraAnim.PlayThen("open", () => paraAnim.PlayRepeating("idle"));
}
public void Tick(World world)
{
paraAnim.Tick();
altitude -= fallRate;
if (altitude <= 0)
world.AddFrameEndTask(w =>
{
w.Remove(this);
cargo.CancelActivity();
cargo.CenterLocation = location;
cargo.Location = ((1 / 24f) * location).ToInt2();
w.Add(cargo);
});
}
public IEnumerable<Renderable> Render()
{
var pos = location - new float2(0, altitude);
yield return new Renderable(anim.Image, location - .5f * anim.Image.size, PaletteType.Shadow, 0);
yield return new Renderable(anim.Image, pos - .5f * anim.Image.size, owner.Palette, 2);
yield return new Renderable(paraAnim.Image, pos - .5f * paraAnim.Image.size, owner.Palette, 3);
}
}
}

View File

@@ -83,6 +83,7 @@
<Compile Include="Effects\GpsSatellite.cs" /> <Compile Include="Effects\GpsSatellite.cs" />
<Compile Include="Effects\InvulnEffect.cs" /> <Compile Include="Effects\InvulnEffect.cs" />
<Compile Include="Effects\MoveFlash.cs" /> <Compile Include="Effects\MoveFlash.cs" />
<Compile Include="Effects\Parachute.cs" />
<Compile Include="Effects\RepairIndicator.cs" /> <Compile Include="Effects\RepairIndicator.cs" />
<Compile Include="Effects\SatelliteLaunch.cs" /> <Compile Include="Effects\SatelliteLaunch.cs" />
<Compile Include="Effects\Smoke.cs" /> <Compile Include="Effects\Smoke.cs" />

View File

@@ -1027,6 +1027,21 @@ U2:
WithShadow: WithShadow:
IronCurtainable: IronCurtainable:
BADR:
Inherits: ^Plane
Unit:
HP: 60
Armor: light
ROT: 5
Sight: 0
Speed: 16
Plane:
RenderUnit:
WithShadow:
IronCurtainable:
Cargo:
Passengers: 5
PBOX: PBOX:
Inherits: ^Building Inherits: ^Building
Buildable: Buildable:

View File

@@ -408,7 +408,7 @@
</cursor> </cursor>
<cursor src="nopower"> <cursor src="nopower">
<sequence name="powerdown-blocked" start="0" length="1" x="12" y="12" /> <sequence name="powerdown-blocked" start="0" length="1" x="12" y="12" />
<sequence name="powerdown" start="1" length="3" x="12" y="12" /> <sequence name="powerdown" start="1" length="3" x="12" y="12" />
</cursor> </cursor>
<unit name="powerdown"> <unit name="powerdown">
<sequence name="disabled" start="3" length="1" src="speed" /> <sequence name="disabled" start="3" length="1" src="speed" />
@@ -1041,10 +1041,14 @@
<unit name="u2"> <unit name="u2">
<sequence name="idle" start="0" length="16" /> <sequence name="idle" start="0" length="16" />
</unit> </unit>
<unit name="crate"> <unit name="crate">
<sequence name="idle" start="0" length="16" src="wcrate" /> <sequence name="idle" start="0" length="16" src="wcrate" />
</unit> </unit>
<unit name="crate-effects"> <unit name="crate-effects">
<sequence name="speed" start="0" length="*" src="speed" /> <sequence name="speed" start="0" length="*" src="speed" />
</unit> </unit>
<unit name="parach">
<sequence name="open" start="0" length="5" />
<sequence name="idle" start="5" length="11" />
</unit>
</sequences> </sequences>

View File

@@ -208,7 +208,7 @@ LongDesc=Helicopter Gunship with Chainguns.\n Strong vs Infantry, Light Vehicle
[U2] [U2]
Traits=Unit, Plane, RenderUnit, WithShadow, IronCurtainable Traits=Unit, Plane, RenderUnit, WithShadow, IronCurtainable
[BADR] [BADR]
Traits=Unit, Plane, RenderUnit, WithShadow, IronCurtainable Traits=Unit, Plane, RenderUnit, WithShadow, IronCurtainable, Cargo