Merge pull request #10723 from abcdefg30/nukeHardcode
Unhardcode the palette the missile weapon of the NukePower uses
This commit is contained in:
@@ -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; } }
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user