Removed hard coded WeaponInfo section name from NukeLaunch

This commit is contained in:
Matthew Bowra-Dean
2010-03-06 22:58:26 +13:00
parent 2c2f014342
commit bca11ca2a7
4 changed files with 8 additions and 7 deletions

View File

@@ -31,7 +31,6 @@ namespace OpenRA.Effects
class NukeLaunch : IEffect class NukeLaunch : IEffect
{ {
readonly ProjectileInfo projectileUp, projectileDown; readonly ProjectileInfo projectileUp, projectileDown;
readonly WarheadInfo nukeWarhead;
readonly Actor silo; readonly Actor silo;
Animation anim; Animation anim;
float2 pos; float2 pos;
@@ -39,14 +38,15 @@ namespace OpenRA.Effects
readonly int targetAltitude = 400; readonly int targetAltitude = 400;
int altitude; int altitude;
bool goingUp = true; bool goingUp = true;
WeaponInfo weapon;
public NukeLaunch(Actor silo, int2 targetLocation) public NukeLaunch(Actor silo, string weapon, int2 targetLocation)
{ {
this.silo = silo; this.silo = silo;
this.targetLocation = targetLocation; this.targetLocation = targetLocation;
this.weapon = Rules.WeaponInfo[weapon];
projectileUp = Rules.ProjectileInfo["NukeUp"]; projectileUp = Rules.ProjectileInfo["NukeUp"];
projectileDown = Rules.ProjectileInfo["NukeDown"]; projectileDown = Rules.ProjectileInfo["NukeDown"];
nukeWarhead = Rules.WarheadInfo["Nuke"];
anim = new Animation(projectileUp.Image); anim = new Animation(projectileUp.Image);
anim.PlayRepeating("idle"); anim.PlayRepeating("idle");
@@ -79,8 +79,7 @@ namespace OpenRA.Effects
void Explode(World world) void Explode(World world)
{ {
world.AddFrameEndTask(w => w.Remove(this)); world.AddFrameEndTask(w => w.Remove(this));
var weapon = Rules.WeaponInfo["Atomic"]; Combat.DoImpact(pos.ToInt2(), pos.ToInt2(), weapon, Rules.ProjectileInfo[weapon.Projectile], Rules.WarheadInfo[weapon.Warhead], silo);
Combat.DoImpact(pos.ToInt2(), pos.ToInt2(), weapon, projectileDown, nukeWarhead, silo);
} }
public IEnumerable<Renderable> Render() public IEnumerable<Renderable> Render()

View File

@@ -57,8 +57,8 @@ namespace OpenRA.Traits
if (Owner != Owner.World.LocalPlayer) if (Owner != Owner.World.LocalPlayer)
Sound.Play("alaunch1.aud"); Sound.Play("alaunch1.aud");
// TODO: FIRE ZE MISSILES //FIRE ZE MISSILES
w.Add(new NukeLaunch(silo, order.TargetLocation)); w.Add(new NukeLaunch(silo, Info.MissileWeapon, order.TargetLocation));
}); });
Game.controller.CancelInputMode(); Game.controller.CancelInputMode();

View File

@@ -33,6 +33,7 @@ namespace OpenRA.Traits
public readonly string[] Prerequisites = { }; public readonly string[] Prerequisites = { };
public readonly int TechLevel = -1; public readonly int TechLevel = -1;
public readonly bool GivenAuto = true; public readonly bool GivenAuto = true;
public readonly string MissileWeapon = "";
public abstract object Create(Actor self); public abstract object Create(Actor self);
} }

View File

@@ -50,6 +50,7 @@ Player:
LongDesc: Launches a nuclear missile at a target location. LongDesc: Launches a nuclear missile at a target location.
Prerequisites: MSLO Prerequisites: MSLO
TechLevel: 12 TechLevel: 12
MissileWeapon: atomic
SonarPulsePower: SonarPulsePower:
Image: sonricon Image: sonricon
ChargeTime: 10 ChargeTime: 10