Merge pull request #10723 from abcdefg30/nukeHardcode

Unhardcode the palette the missile weapon of the NukePower uses
This commit is contained in:
Oliver Brakmann
2016-02-14 22:43:38 +01:00
2 changed files with 14 additions and 3 deletions

View File

@@ -23,6 +23,7 @@ namespace OpenRA.Mods.Common.Effects
readonly Player firedBy; readonly Player firedBy;
readonly Animation anim; readonly Animation anim;
readonly WeaponInfo weapon; readonly WeaponInfo weapon;
readonly string weaponPalette;
readonly string flashType; readonly string flashType;
readonly WPos ascendSource; readonly WPos ascendSource;
@@ -35,10 +36,12 @@ namespace OpenRA.Mods.Common.Effects
WPos pos; WPos pos;
int ticks; int ticks;
public NukeLaunch(Player firedBy, string name, WeaponInfo weapon, WPos launchPos, WPos targetPos, WDist velocity, int delay, bool skipAscent, string flashType) public NukeLaunch(Player firedBy, string name, WeaponInfo weapon, string weaponPalette,
WPos launchPos, WPos targetPos, WDist velocity, int delay, bool skipAscent, string flashType)
{ {
this.firedBy = firedBy; this.firedBy = firedBy;
this.weapon = weapon; this.weapon = weapon;
this.weaponPalette = weaponPalette;
this.delay = delay; this.delay = delay;
turn = delay / 2; turn = delay / 2;
this.flashType = flashType; this.flashType = flashType;
@@ -91,7 +94,7 @@ namespace OpenRA.Mods.Common.Effects
public IEnumerable<IRenderable> Render(WorldRenderer wr) public IEnumerable<IRenderable> Render(WorldRenderer wr)
{ {
return anim.Render(pos, wr.Palette("effect")); return anim.Render(pos, wr.Palette(weaponPalette));
} }
public float FractionComplete { get { return ticks * 1f / delay; } } public float FractionComplete { get { return ticks * 1f / delay; } }

View File

@@ -21,9 +21,17 @@ namespace OpenRA.Mods.Common.Traits
class NukePowerInfo : SupportPowerInfo, IRulesetLoaded, Requires<BodyOrientationInfo> class NukePowerInfo : SupportPowerInfo, IRulesetLoaded, Requires<BodyOrientationInfo>
{ {
[WeaponReference] [WeaponReference]
[Desc("Weapon to use for the impact.",
"But also image to use for the missile.",
"Requires an 'up' and a 'down' sequence on the image.")]
public readonly string MissileWeapon = ""; public readonly string MissileWeapon = "";
[Desc("Offset from the actor the missile spawns on.")]
public readonly WVec SpawnOffset = WVec.Zero; public readonly WVec SpawnOffset = WVec.Zero;
[Desc("Palette to use for the missile weapon image.")]
[PaletteReference] public readonly string MissilePalette = "effect";
[Desc("Travel time - split equally between ascent and descent")] [Desc("Travel time - split equally between ascent and descent")]
public readonly int FlightDelay = 400; public readonly int FlightDelay = 400;
@@ -86,7 +94,7 @@ namespace OpenRA.Mods.Common.Traits
} }
var targetPosition = self.World.Map.CenterOfCell(order.TargetLocation); var targetPosition = self.World.Map.CenterOfCell(order.TargetLocation);
var missile = new NukeLaunch(self.Owner, info.MissileWeapon, info.WeaponInfo, var missile = new NukeLaunch(self.Owner, info.MissileWeapon, info.WeaponInfo, info.MissilePalette,
self.CenterPosition + body.LocalToWorld(info.SpawnOffset), self.CenterPosition + body.LocalToWorld(info.SpawnOffset),
targetPosition, targetPosition,
info.FlightVelocity, info.FlightDelay, info.SkipAscent, info.FlightVelocity, info.FlightDelay, info.SkipAscent,