Merge pull request #7909 from reaperrr/projectile-cleanup2

Projectiles cleanup Part 2
This commit is contained in:
Paul Chote
2015-04-25 18:41:06 +12:00
4 changed files with 17 additions and 9 deletions

View File

@@ -19,6 +19,10 @@ namespace OpenRA.Mods.Common.Effects
public class GravityBombInfo : IProjectileInfo
{
public readonly string Image = null;
[Desc("Sequence to loop while falling.")]
public readonly string Sequence = "idle";
[Desc("Sequence to play when launched. Skipped if null.")]
public readonly string OpenSequence = null;
public readonly string Palette = "effect";
public readonly bool Shadow = false;
public readonly WRange Velocity = WRange.Zero;
@@ -46,10 +50,14 @@ namespace OpenRA.Mods.Common.Effects
acceleration = new WVec(WRange.Zero, WRange.Zero, info.Acceleration);
anim = new Animation(args.SourceActor.World, info.Image);
if (anim.HasSequence("open"))
anim.PlayThen("open", () => anim.PlayRepeating("idle"));
else
anim.PlayRepeating("idle");
if (info.Image != null)
{
if (info.OpenSequence != null)
anim.PlayThen(info.OpenSequence, () => anim.PlayRepeating(info.Sequence));
else
anim.PlayRepeating(info.Sequence);
}
}
public void Tick(World world)

View File

@@ -26,8 +26,10 @@ namespace OpenRA.Mods.Common.Effects
public readonly bool UsePlayerColor = false;
[Desc("Laser color in (A,)R,G,B.")]
public readonly Color Color = Color.Red;
[Desc("Impact animation. Requires a regular animation with idle: sequence instead of explosion special case.")]
[Desc("Impact animation.")]
public readonly string HitAnim = null;
[Desc("Sequence of impact animation to use.")]
public readonly string HitAnimSequence = "idle";
public readonly string HitAnimPalette = "effect";
public IEffect Create(ProjectileArgs args)
@@ -68,7 +70,7 @@ namespace OpenRA.Mods.Common.Effects
if (!doneDamage)
{
if (hitanim != null)
hitanim.PlayThen("idle", () => animationComplete = true);
hitanim.PlayThen(info.HitAnimSequence, () => animationComplete = true);
args.Weapon.Impact(Target.FromPos(target), args.SourceActor, args.DamageModifiers);
doneDamage = true;

View File

@@ -260,9 +260,6 @@ smoke_m:
BlendMode: Additive
bombs:
open: DATA.R8
Start: 3280
Length: 4
idle: DATA.R8
Start: 3280
Length: 4

View File

@@ -4,6 +4,7 @@ ParaBomb:
Report: CHUTE1.AUD
Projectile: GravityBomb
Image: PARABOMB
OpenSequence: open
Velocity: 43
Acceleration: 0
Warhead@1Dam: SpreadDamage