Added ExplosionPalette and WaterExplosionPalette traits to Warheads.

This is needed for TS water splashes, for example (they use unit*.pal instead of anim.pal).
Defaults to "effect".
This commit is contained in:
reaperrr
2014-04-18 01:23:09 +02:00
parent 18381f178b
commit c9b162ec3c
5 changed files with 18 additions and 9 deletions

View File

@@ -147,6 +147,7 @@ NEW:
Added HackyAI settings: ExcessPowerFactor, MinimumExcessPower, IdleBaseUnitsMaximum, RushAttackScanRadius, ProtectUnitScanRadius, RallyPointScanRadius. See the traits documentation for more information. Added HackyAI settings: ExcessPowerFactor, MinimumExcessPower, IdleBaseUnitsMaximum, RushAttackScanRadius, ProtectUnitScanRadius, RallyPointScanRadius. See the traits documentation for more information.
Added HitAnimPalette trait for LaserZap projectiles. Laser hit animations can now specify individual palettes. Defaults to effect palette. Added HitAnimPalette trait for LaserZap projectiles. Laser hit animations can now specify individual palettes. Defaults to effect palette.
Added RenderNameTag trait to show the player's name above an actor. Added RenderNameTag trait to show the player's name above an actor.
Added ExplosionPalette and WaterExplosionPalette traits to Warheads to allow custom explosion palettes. Defaults to effect palette.
Fixed performance issues with units pathing to naval transports. Fixed performance issues with units pathing to naval transports.
Fixed unit moving to transports that have moved. Fixed unit moving to transports that have moved.
Updated shroud-based traits to use world units. Updated shroud-based traits to use world units.

View File

@@ -1,6 +1,6 @@
#region Copyright & License Information #region Copyright & License Information
/* /*
* Copyright 2007-2011 The OpenRA Developers (see AUTHORS) * Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made * This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License * available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information, * as published by the Free Software Foundation. For more information,
@@ -27,8 +27,12 @@ namespace OpenRA.GameRules
public readonly bool Ore = false; public readonly bool Ore = false;
[Desc("Explosion effect to use.")] [Desc("Explosion effect to use.")]
public readonly string Explosion = null; public readonly string Explosion = null;
[Desc("Palette to use for explosion effect.")]
public readonly string ExplosionPalette = "effect";
[Desc("Explosion effect on hitting water (usually a splash).")] [Desc("Explosion effect on hitting water (usually a splash).")]
public readonly string WaterExplosion = null; public readonly string WaterExplosion = null;
[Desc("Palette to use for effect on hitting water (usually a splash).")]
public readonly string WaterExplosionPalette = "effect";
[Desc("Type of smudge to apply to terrain.")] [Desc("Type of smudge to apply to terrain.")]
public readonly string[] SmudgeType = { }; public readonly string[] SmudgeType = { };
[Desc("Size of the explosion. provide 2 values for a ring effect (outer/inner).")] [Desc("Size of the explosion. provide 2 values for a ring effect (outer/inner).")]

View File

@@ -1,6 +1,6 @@
#region Copyright & License Information #region Copyright & License Information
/* /*
* Copyright 2007-2011 The OpenRA Developers (see AUTHORS) * Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made * This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License * available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information, * as published by the Free Software Foundation. For more information,
@@ -41,9 +41,10 @@ namespace OpenRA.Mods.RA
var isWater = pos.Z == 0 && world.GetTerrainInfo(targetTile).IsWater; var isWater = pos.Z == 0 && world.GetTerrainInfo(targetTile).IsWater;
var explosionType = isWater ? warhead.WaterExplosion : warhead.Explosion; var explosionType = isWater ? warhead.WaterExplosion : warhead.Explosion;
var explosionTypePalette = isWater ? warhead.WaterExplosionPalette : warhead.ExplosionPalette;
if (explosionType != null) if (explosionType != null)
world.AddFrameEndTask(w => w.Add(new Explosion(w, pos, explosionType))); world.AddFrameEndTask(w => w.Add(new Explosion(w, pos, explosionType, explosionTypePalette)));
Sound.Play(GetImpactSound(warhead, isWater), pos); Sound.Play(GetImpactSound(warhead, isWater), pos);

View File

@@ -1,6 +1,6 @@
#region Copyright & License Information #region Copyright & License Information
/* /*
* Copyright 2007-2013 The OpenRA Developers (see AUTHORS) * Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made * This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License * available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information, * as published by the Free Software Foundation. For more information,
@@ -19,15 +19,17 @@ namespace OpenRA.Mods.RA.Effects
World world; World world;
WPos pos; WPos pos;
CPos cell; CPos cell;
string palette;
Animation anim; Animation anim;
public Explosion(World world, WPos pos, string style) public Explosion(World world, WPos pos, string sequence, string palette)
{ {
this.world = world; this.world = world;
this.pos = pos; this.pos = pos;
this.cell = pos.ToCPos(); this.cell = pos.ToCPos();
this.palette = palette;
anim = new Animation("explosion"); anim = new Animation("explosion");
anim.PlayThen(style, () => world.AddFrameEndTask(w => w.Remove(this))); anim.PlayThen(sequence, () => world.AddFrameEndTask(w => w.Remove(this)));
} }
public void Tick(World world) { anim.Tick(); } public void Tick(World world) { anim.Tick(); }
@@ -37,7 +39,7 @@ namespace OpenRA.Mods.RA.Effects
if (world.FogObscures(cell)) if (world.FogObscures(cell))
return SpriteRenderable.None; return SpriteRenderable.None;
return anim.Render(pos, wr.Palette("effect")); return anim.Render(pos, wr.Palette(palette));
} }
} }
} }

View File

@@ -1,6 +1,6 @@
#region Copyright & License Information #region Copyright & License Information
/* /*
* Copyright 2007-2011 The OpenRA Developers (see AUTHORS) * Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made * This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License * available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information, * as published by the Free Software Foundation. For more information,
@@ -19,10 +19,11 @@ namespace OpenRA.Mods.RA.Render
{ {
public void Killed(Actor self, AttackInfo e) public void Killed(Actor self, AttackInfo e)
{ {
//TODO: Make palette for this customizable as well
var bi = self.Info.Traits.Get<BuildingInfo>(); var bi = self.Info.Traits.Get<BuildingInfo>();
FootprintUtils.UnpathableTiles(self.Info.Name, bi, self.Location).Do( FootprintUtils.UnpathableTiles(self.Info.Name, bi, self.Location).Do(
t => self.World.AddFrameEndTask( t => self.World.AddFrameEndTask(
w => w.Add(new Explosion(w, t.CenterPosition, "building")))); w => w.Add(new Explosion(w, t.CenterPosition, "building", "effect"))));
} }
} }
} }