remove some duplication in parachute use

This commit is contained in:
Chris Forbes
2011-04-29 19:52:36 +12:00
parent b26d2e07e9
commit f84832a24a
3 changed files with 6 additions and 5 deletions

View File

@@ -33,9 +33,8 @@ namespace OpenRA.Mods.RA
if (IsSuitableCell(pilot, self.Location) && r > 100 - info.SuccessRate && aircraft.Altitude > 10)
{
var rs = pilot.Trait<RenderSimple>();
self.World.AddFrameEndTask(w => w.Add(
new Parachute(pilot.Owner, rs.anim.Name,
new Parachute(pilot.Owner,
Util.CenterOfCell(Util.CellContaining(self.CenterLocation)),
aircraft.Altitude, pilot)));

View File

@@ -28,13 +28,16 @@ namespace OpenRA.Mods.RA.Effects
float altitude;
const float fallRate = .3f;
public Parachute(Player owner, string image, float2 location, int altitude, Actor cargo)
public Parachute(Player owner, float2 location, int altitude, Actor cargo)
{
this.location = location;
this.altitude = altitude;
this.cargo = cargo;
this.owner = owner;
var rs = cargo.Trait<RenderSimple>();
var image = rs.anim.Name;
anim = new Animation(image);
if (anim.HasSequence("idle"))
anim.PlayFetchIndex("idle", () => 0);

View File

@@ -52,11 +52,10 @@ namespace OpenRA.Mods.RA
droppedAt.Add(self.Location);
var a = cargo.Unload(self);
var rs = a.Trait<RenderSimple>();
var aircraft = self.Trait<IMove>();
self.World.AddFrameEndTask(w => w.Add(
new Parachute(self.Owner, rs.anim.Name,
new Parachute(self.Owner,
Util.CenterOfCell(Util.CellContaining(self.CenterLocation)),
aircraft.Altitude, a)));