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

@@ -32,7 +32,7 @@ namespace OpenRA.Mods.RA.Render
}
}
public class RenderBuilding : RenderSimple, INotifyDamage, IRenderModifier
public class RenderBuilding : RenderSimple, INotifyDamageStateChanged, IRenderModifier
{
readonly RenderBuildingInfo Info;
@@ -96,11 +96,8 @@ namespace OpenRA.Mods.RA.Render
anim.PlayRepeating( NormalizeSequence(self, "idle") );
}
public virtual void Damaged(Actor self, AttackInfo e)
public virtual void DamageStateChanged(Actor self, AttackInfo e)
{
if (!e.DamageStateChanged)
return;
if (e.DamageState == DamageState.Dead)
foreach (var t in FootprintUtils.UnpathableTiles( self.Info.Name, self.Info.Traits.Get<BuildingInfo>(), self.Location ))
{

View File

@@ -28,10 +28,8 @@ namespace OpenRA.Mods.RA.Render
anim.Play( "idle" );
}
public override void Damaged(Actor self, AttackInfo e)
public override void DamageStateChanged(Actor self, AttackInfo e)
{
if (!e.DamageStateChanged) return;
if (e.DamageState >= DamageState.Heavy && e.PreviousDamageState < DamageState.Heavy)
anim.ReplaceAnim("damaged-idle");
else if (e.DamageState < DamageState.Heavy)

View File

@@ -35,10 +35,8 @@ namespace OpenRA.Mods.RA.Render
anim.PlayFetchIndex(seqName, () => adjacentWalls);
}
public override void Damaged(Actor self, AttackInfo e)
public override void DamageStateChanged(Actor self, AttackInfo e)
{
if (!e.DamageStateChanged) return;
if (e.DamageState == DamageState.Medium && anim.HasSequence("scratched-idle"))
seqName = "scratched-idle";
else if (e.DamageState <= DamageState.Medium)

View File

@@ -37,7 +37,7 @@ namespace OpenRA.Mods.RA.Render
}
}
class RenderWarFactory : RenderBuilding, INotifyBuildComplete, INotifyDamage, ITick, INotifyProduction, INotifySold, ISync
class RenderWarFactory : RenderBuilding, INotifyBuildComplete, ITick, INotifyProduction, INotifySold, ISync
{
public Animation roof;
[Sync]
@@ -69,10 +69,8 @@ namespace OpenRA.Mods.RA.Render
}
}
public override void Damaged(Actor self, AttackInfo e)
public override void DamageStateChanged(Actor self, AttackInfo e)
{
if (!e.DamageStateChanged) return;
if (roof.CurrentSequence != null)
{
if (e.DamageState >= DamageState.Heavy)