Rename CrushableInfantry to Crushable, adapt to WithDeathAnimation.

Make Crushable compatible with non-mobile actors.

Change RA, TD and TS infantry die-crushed sequence ZOffsets in preparation
for future engine changes.

Add descriptions and CrushedByFriendlies to Crushable.

Adapt code to factor in whether the palette is a player palette.
This commit is contained in:
reaperrr
2014-08-27 23:10:35 +02:00
parent 257c953089
commit 409d6a046d
11 changed files with 251 additions and 83 deletions

View File

@@ -0,0 +1,74 @@
#region Copyright & License Information
/*
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
* 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
* as published by the Free Software Foundation. For more information,
* see COPYING.
*/
#endregion
using System.Linq;
using OpenRA.Mods.RA.Move;
using OpenRA.Mods.RA.Render;
using OpenRA.Traits;
namespace OpenRA.Mods.RA
{
[Desc("This actor is crushable.")]
class CrushableInfo : ITraitInfo
{
[Desc("Sound to play when being crushed.")]
public readonly string CrushSound = null;
[Desc("Which crush classes does this actor belong to.")]
public readonly string[] CrushClasses = { "infantry" };
[Desc("Probability of mobile actors noticing and evading a crush attempt.")]
public readonly int WarnProbability = 75;
[Desc("Will friendly units just crush me instead of pathing around.")]
public readonly bool CrushedByFriendlies = false;
public object Create(ActorInitializer init) { return new Crushable(init.self, this); }
}
class Crushable : ICrushable
{
readonly Actor self;
readonly CrushableInfo info;
public Crushable(Actor self, CrushableInfo info)
{
this.self = self;
this.info = info;
}
public void WarnCrush(Actor crusher)
{
var mobile = self.TraitOrDefault<Mobile>();
if (mobile != null && self.World.SharedRandom.Next(100) <= info.WarnProbability)
mobile.Nudge(self, crusher, true);
}
public void OnCrush(Actor crusher)
{
Sound.Play(info.CrushSound, crusher.CenterPosition);
var wda = self.TraitOrDefault<WithDeathAnimation>();
if (wda != null)
{
var palette = wda.Info.DeathSequencePalette;
if (wda.Info.DeathPaletteIsPlayerPalette)
palette += self.Owner.InternalName;
wda.SpawnDeathAnimation(self, wda.Info.CrushedSequence, palette);
}
self.Kill(crusher);
}
public bool CrushableBy(string[] crushClasses, Player crushOwner)
{
if (!info.CrushedByFriendlies && crushOwner.IsAlliedWith(self.Owner))
return false;
return info.CrushClasses.Intersect(crushClasses).Any();
}
}
}

View File

@@ -1,61 +0,0 @@
#region Copyright & License Information
/*
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
* 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
* as published by the Free Software Foundation. For more information,
* see COPYING.
*/
#endregion
using System.Linq;
using OpenRA.Mods.RA.Move;
using OpenRA.Mods.RA.Render;
using OpenRA.Traits;
namespace OpenRA.Mods.RA
{
class CrushableInfantryInfo : ITraitInfo, Requires<MobileInfo>, Requires<RenderInfantryInfo>
{
public readonly string CrushSound = null;
public readonly string CorpseSequence = "die-crushed";
public readonly string[] CrushClasses = { "infantry" };
public readonly int WarnProbability = 75;
public object Create(ActorInitializer init) { return new CrushableInfantry(init.self, this); }
}
class CrushableInfantry : ICrushable
{
readonly Actor self;
readonly CrushableInfantryInfo Info;
readonly RenderInfantry ri;
public CrushableInfantry(Actor self, CrushableInfantryInfo info)
{
this.self = self;
this.Info = info;
ri = self.Trait<RenderInfantry>();
}
public void WarnCrush(Actor crusher)
{
if (self.World.SharedRandom.Next(100) <= Info.WarnProbability)
self.Trait<Mobile>().Nudge(self, crusher, true);
}
public void OnCrush(Actor crusher)
{
Sound.Play(Info.CrushSound, crusher.CenterPosition);
ri.SpawnCorpse(self, Info.CorpseSequence);
self.Kill(crusher);
}
public bool CrushableBy(string[] crushClasses, Player crushOwner)
{
if (crushOwner.Stances[self.Owner] == Stance.Ally)
return false;
return Info.CrushClasses.Intersect(crushClasses).Any();
}
}
}

View File

@@ -209,7 +209,7 @@
<Compile Include="Crates\RevealMapCrateAction.cs" /> <Compile Include="Crates\RevealMapCrateAction.cs" />
<Compile Include="Crates\SupportPowerCrateAction.cs" /> <Compile Include="Crates\SupportPowerCrateAction.cs" />
<Compile Include="CreateMPPlayers.cs" /> <Compile Include="CreateMPPlayers.cs" />
<Compile Include="CrushableInfantry.cs" /> <Compile Include="Crushable.cs" />
<Compile Include="DeathSounds.cs" /> <Compile Include="DeathSounds.cs" />
<Compile Include="DemoTruck.cs" /> <Compile Include="DemoTruck.cs" />
<Compile Include="DetectCloaked.cs" /> <Compile Include="DetectCloaked.cs" />

View File

@@ -165,7 +165,7 @@
ActorLostNotification: ActorLostNotification:
SpawnViceroid: SpawnViceroid:
Probability: 10 Probability: 10
CrushableInfantry: Crushable:
WarnProbability: 67 WarnProbability: 67
CrushSound: squish2.aud CrushSound: squish2.aud
CombatDebugOverlay: CombatDebugOverlay:
@@ -220,7 +220,7 @@
Notification: CivilianKilled Notification: CivilianKilled
NotifyAll: true NotifyAll: true
ScaredyCat: ScaredyCat:
CrushableInfantry: Crushable:
CrushSound: squish2.aud CrushSound: squish2.aud
^DINO: ^DINO:

View File

@@ -171,6 +171,7 @@ e1:
Start: 16 Start: 16
Length: 4 Length: 4
Tick: 1600 Tick: 1600
ZOffset: -511
icon: e1icnh icon: e1icnh
Start: 0 Start: 0
@@ -260,6 +261,7 @@ e2:
Start: 16 Start: 16
Length: 4 Length: 4
Tick: 1600 Tick: 1600
ZOffset: -511
icon: e2icnh icon: e2icnh
Start: 0 Start: 0
@@ -349,6 +351,7 @@ e3:
Start: 16 Start: 16
Length: 4 Length: 4
Tick: 1600 Tick: 1600
ZOffset: -511
icon: e3icnh icon: e3icnh
Start: 0 Start: 0
@@ -438,6 +441,7 @@ e4:
Start: 16 Start: 16
Length: 4 Length: 4
Tick: 1600 Tick: 1600
ZOffset: -511
muzzle0: flame-n muzzle0: flame-n
Start: 0 Start: 0
Length: * Length: *
@@ -559,6 +563,7 @@ e5:
Start: 16 Start: 16
Length: 4 Length: 4
Tick: 1600 Tick: 1600
ZOffset: -511
muzzle0: chem-n muzzle0: chem-n
Start: 0 Start: 0
Length: * Length: *
@@ -672,6 +677,7 @@ e6:
Start: 16 Start: 16
Length: 4 Length: 4
Tick: 1600 Tick: 1600
ZOffset: -511
icon: e6icnh icon: e6icnh
Start: 0 Start: 0
@@ -765,5 +771,6 @@ rmbo:
Start: 16 Start: 16
Length: 4 Length: 4
Tick: 1600 Tick: 1600
ZOffset: -511
icon: rmboicnh icon: rmboicnh
Start: 0 Start: 0

View File

@@ -186,7 +186,7 @@
ProximityCaptor: ProximityCaptor:
Types: Infantry Types: Infantry
GivesBounty: GivesBounty:
CrushableInfantry: Crushable:
CrushSound: CRUSH1.WAV CrushSound: CRUSH1.WAV
RepairableNear: RepairableNear:
Buildings: barra, barro Buildings: barra, barro

View File

@@ -154,7 +154,7 @@
GivesBounty: GivesBounty:
GpsDot: GpsDot:
String: Infantry String: Infantry
CrushableInfantry: Crushable:
CrushSound: squishy2.aud CrushSound: squishy2.aud
UpdatesPlayerStatistics: UpdatesPlayerStatistics:
CombatDebugOverlay: CombatDebugOverlay:

View File

@@ -64,6 +64,7 @@ e1:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
garrison-muzzle: minigun garrison-muzzle: minigun
Start: 0 Start: 0
Length: 6 Length: 6
@@ -136,6 +137,7 @@ sniper:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
garrison-muzzle: minigun garrison-muzzle: minigun
Start: 0 Start: 0
Length: 3 Length: 3
@@ -190,6 +192,7 @@ e3:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
prone-stand: prone-stand:
Start: 144 Start: 144
Length: 4 Length: 4
@@ -248,6 +251,7 @@ e6:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
prone-stand: prone-stand:
Start: 82 Start: 82
Length: 4 Length: 4
@@ -310,6 +314,7 @@ medi:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
prone-stand: prone-stand:
Start: 130 Start: 130
Length: 4 Length: 4
@@ -372,6 +377,7 @@ mech:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
prone-stand: prone-stand:
Start: 130 Start: 130
Length: 4 Length: 4
@@ -430,6 +436,7 @@ e2:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
prone-stand: prone-stand:
Start: 240 Start: 240
Length: 4 Length: 4
@@ -488,6 +495,7 @@ dog:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
shoot: dogbullt shoot: dogbullt
Start: 0 Start: 0
Length: 4 Length: 4
@@ -541,6 +549,7 @@ spy:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
prone-stand: prone-stand:
Start: 144 Start: 144
Length: 4 Length: 4
@@ -591,6 +600,7 @@ thf:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
crawl: crawl:
Start: 72 Start: 72
Length: 4 Length: 4
@@ -632,6 +642,7 @@ hijacker:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
crawl: thf crawl: thf
Start: 72 Start: 72
Length: 4 Length: 4
@@ -685,6 +696,7 @@ e7:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
prone-stand: prone-stand:
Start: 128 Start: 128
Length: 4 Length: 4
@@ -752,6 +764,7 @@ e4:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
prone-stand: prone-stand:
Start: 208 Start: 208
Length: 4 Length: 4
@@ -826,6 +839,7 @@ gnrl:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
shok: shok:
stand: stand:
@@ -893,6 +907,7 @@ shok:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
icon: shokicon icon: shokicon
Start: 0 Start: 0
@@ -937,6 +952,7 @@ c1:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
run: run:
Start: 56 Start: 56
Length: 6 Length: 6
@@ -984,6 +1000,7 @@ c2:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
run: run:
Start: 56 Start: 56
Length: 6 Length: 6
@@ -1031,6 +1048,7 @@ c3:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
run: run:
Start: 56 Start: 56
Length: 6 Length: 6
@@ -1079,6 +1097,7 @@ einstein:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
delphi: delphi:
stand: stand:
@@ -1122,6 +1141,7 @@ delphi:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
chan: chan:
stand: stand:
@@ -1165,6 +1185,7 @@ chan:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
zombie: zombie:
stand: stand:
@@ -1207,6 +1228,7 @@ zombie:
Start: 0 Start: 0
Length: 6 Length: 6
Tick: 1600 Tick: 1600
ZOffset: -511
icon: zombicon icon: zombicon
Start: 0 Start: 0
@@ -1252,6 +1274,7 @@ ant:
die-crushed: die-crushed:
Start: 104 Start: 104
Length: 8 Length: 8
Tick: 300 Tick: 400
ZOffset: -511
icon: anticon icon: anticon
Start: 0 Start: 0

View File

@@ -130,7 +130,7 @@
ProximityCaptor: ProximityCaptor:
Types: Infantry Types: Infantry
GivesBounty: GivesBounty:
CrushableInfantry: Crushable:
CrushSound: squish6.aud CrushSound: squish6.aud
PoisonedByTiberium: PoisonedByTiberium:
SpawnViceroid: SpawnViceroid:

View File

@@ -93,7 +93,7 @@ WEEDGUY:
Speed: 42 Speed: 42
Health: Health:
HP: 130 HP: 130
CrushableInfantry: Crushable:
CrushSound: squishy2.aud CrushSound: squishy2.aud
Armament: Armament:
Weapon: FireballLauncher Weapon: FireballLauncher
@@ -120,7 +120,7 @@ MEDIC:
Speed: 56 Speed: 56
Health: Health:
HP: 125 HP: 125
CrushableInfantry: Crushable:
CrushSound: squishy2.aud CrushSound: squishy2.aud
Armament: Armament:
Weapon: Heal Weapon: Heal
@@ -220,7 +220,7 @@ GHOST:
Armament: Armament:
Weapon: LtRail Weapon: LtRail
LocalOffset: 85,0,384 LocalOffset: 85,0,384
CrushableInfantry: Crushable:
CrushSound: squishy2.aud CrushSound: squishy2.aud
AttackFrontal: AttackFrontal:
C4Demolition: C4Demolition:
@@ -254,7 +254,7 @@ JUMPJET:
Range: 6c0 Range: 6c0
Armament: Armament:
Weapon: JumpCannon Weapon: JumpCannon
-CrushableInfantry: -Crushable:
AttackFrontal: AttackFrontal:
TakeCover: TakeCover:
RenderInfantry: RenderInfantry:
@@ -302,7 +302,7 @@ CYBORG:
Queue: Infantry Queue: Infantry
BuildPaletteOrder: 50 BuildPaletteOrder: 50
Owner: nod Owner: nod
-CrushableInfantry: -Crushable:
Selectable: Selectable:
Bounds: 14,30,0,-7 Bounds: 14,30,0,-7
Voice: Cyborg Voice: Cyborg
@@ -335,7 +335,7 @@ CYC2:
Queue: Infantry Queue: Infantry
BuildPaletteOrder: 50 BuildPaletteOrder: 50
Owner: nod Owner: nod
-CrushableInfantry: -Crushable:
Selectable: Selectable:
Bounds: 14,30,0,-7 Bounds: 14,30,0,-7
Voice: CyborgCommando Voice: CyborgCommando
@@ -595,7 +595,7 @@ VISSML:
Mobile: Mobile:
Speed: 113 Speed: 113
ROT: 16 ROT: 16
-CrushableInfantry: -Crushable:
Selectable: Selectable:
Voice: Fiend Voice: Fiend
TargetableUnit: TargetableUnit:
@@ -625,7 +625,7 @@ VISLRG:
Mobile: Mobile:
Speed: 113 Speed: 113
ROT: 16 ROT: 16
-CrushableInfantry: -Crushable:
Selectable: Selectable:
Voice: Fiend Voice: Fiend
TargetableUnit: TargetableUnit:

View File

@@ -45,6 +45,12 @@ e1:
Start: 0 Start: 0
Length: * Length: *
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -122,6 +128,12 @@ e2:
Start: 0 Start: 0
Length: * Length: *
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -199,6 +211,12 @@ e3:
Start: 0 Start: 0
Length: * Length: *
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -267,19 +285,19 @@ weedguy:
Facings: 8 Facings: 8
Stride: 6 Stride: 6
ShadowStart: 288 ShadowStart: 288
die2: weed
Start: 160
Length: 6
ShadowStart: 362
Tick: 80
die1: weed die1: weed
Start: 149 Start: 149
Length: 11 Length: 11
ShadowStart: 351 ShadowStart: 351
Tick: 80 Tick: 80
die2: weed
Start: 160
Length: 6
ShadowStart: 362
Tick: 80
die3: weed die3: weed
Start: 166 Start: 166
Length: 10 Length: 11
ShadowStart: 368 ShadowStart: 368
Tick: 80 Tick: 80
die4: weed die4: weed
@@ -296,6 +314,11 @@ weedguy:
Start: 0 Start: 0
Length: * Length: *
Tick: 80 Tick: 80
die-crushed: weed
Start: 174
Length: 3
ShadowStart: 376
Tick: 1000
icon: weaticon icon: weaticon
Start: 0 Start: 0
@@ -347,6 +370,12 @@ medic:
Length: 15 Length: 15
ShadowStart: 455 ShadowStart: 455
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -427,6 +456,12 @@ engineer:
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
standup-0: standup-0:
Start: 260 Start: 260
Length: 2 Length: 2
@@ -493,6 +528,12 @@ umagon:
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -571,6 +612,12 @@ ghost: # TODO unused GUNFIRE.SHP
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -647,6 +694,12 @@ jumpjet: # TODO: ShadowStart:
Length: 15 Length: 15
ShadowStart: 887 ShadowStart: 887
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -725,6 +778,12 @@ mhijack:
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -803,6 +862,12 @@ chamspy:
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -1036,6 +1101,12 @@ mutant:
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -1114,6 +1185,12 @@ mwmn:
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -1192,6 +1269,12 @@ mutant3: # TODO unused MGUN-N,MGUN-NE,MGUN-E,MGUN-SE,MGUN-S,MGUN-SW,MGUN-W,MGUN-
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -1270,6 +1353,12 @@ tratos:
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -1348,6 +1437,12 @@ oxanna:
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -1426,6 +1521,12 @@ slav:
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 164 Start: 164
Length: 6 Length: 6
@@ -1482,6 +1583,12 @@ doggie: # TODO: not sure what frame 88 and following is
Length: 10 Length: 10
ShadowStart: 218 ShadowStart: 218
Tick: 80 Tick: 80
die-crushed:
Start: 105
Length: 4
ShadowStart: 224
Tick: 800
ZOffset: -511
shoot: shoot:
Start: 56 Start: 56
Length: 4 Length: 4
@@ -1566,6 +1673,12 @@ civ1:
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
die5: flameguy # TODO: walking animation unused die5: flameguy # TODO: walking animation unused
Start: 42 Start: 42
Length: 104 Length: 104
@@ -1622,6 +1735,12 @@ civ2:
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
die5: flameguy # TODO: walking animation unused die5: flameguy # TODO: walking animation unused
Start: 42 Start: 42
Length: 104 Length: 104
@@ -1678,6 +1797,12 @@ civ3:
Length: 15 Length: 15
ShadowStart: 441 ShadowStart: 441
Tick: 80 Tick: 80
die-crushed:
Start: 159
Length: 5
ShadowStart: 451
Tick: 800
ZOffset: -511
die5: flameguy # TODO: walking animation unused die5: flameguy # TODO: walking animation unused
Start: 42 Start: 42
Length: 104 Length: 104