Create INotifyDamageStateChanged for nearly everything else that used INotifyDamage.

This commit is contained in:
Paul Chote
2011-04-16 11:48:28 +12:00
parent 8b00e1cfa5
commit 794dcac4d2
10 changed files with 35 additions and 46 deletions

View File

@@ -19,9 +19,11 @@ namespace OpenRA.Mods.RA.Render
public override object Create(ActorInitializer init) { return new RenderGunboat(init.self); }
}
class RenderGunboat : RenderSimple, INotifyDamage
class RenderGunboat : RenderSimple, INotifyDamage, INotifyDamageStateChanged
{
IFacing facing;
bool isSmoking = false;
public RenderGunboat(Actor self)
: base(self, () => self.HasTrait<Turreted>() ? self.Trait<Turreted>().turretFacing : 0)
{
@@ -49,21 +51,19 @@ namespace OpenRA.Mods.RA.Render
base.Tick(self);
}
bool isSmoking;
public void DamageStateChanged(Actor self, AttackInfo e)
{
if (e.DamageState >= DamageState.Critical)
lastDamage = "-critical";
else if (e.DamageState >= DamageState.Heavy)
lastDamage = "-damaged";
else if (e.DamageState < DamageState.Heavy)
lastDamage = "";
anim.ReplaceAnim(lastDir+lastDamage);
}
public void Damaged(Actor self, AttackInfo e)
{
// Damagestate
if (e.DamageStateChanged)
{
if (e.DamageState >= DamageState.Critical)
lastDamage = "-critical";
else if (e.DamageState >= DamageState.Heavy)
lastDamage = "-damaged";
else if (e.DamageState < DamageState.Heavy)
lastDamage = "";
anim.ReplaceAnim(lastDir+lastDamage);
}
// Smoking
if (e.DamageState < DamageState.Heavy) return;
if (isSmoking) return;