Create INotifyDamageStateChanged for nearly everything else that used INotifyDamage.
This commit is contained in:
@@ -62,7 +62,7 @@ namespace OpenRA.Mods.RA
|
||||
}
|
||||
}
|
||||
|
||||
class Bridge: IRenderAsTerrain, INotifyDamage
|
||||
class Bridge: IRenderAsTerrain, INotifyDamageStateChanged
|
||||
{
|
||||
static string cachedTileset;
|
||||
static Cache<TileReference<ushort,byte>, Sprite> sprites;
|
||||
@@ -192,14 +192,11 @@ namespace OpenRA.Mods.RA
|
||||
self.World.Map.CustomTerrain[c.X, c.Y] = GetTerrainType(c);
|
||||
}
|
||||
|
||||
public void Damaged(Actor self, AttackInfo e)
|
||||
public void DamageStateChanged(Actor self, AttackInfo e)
|
||||
{
|
||||
if (e.DamageStateChanged)
|
||||
{
|
||||
UpdateState();
|
||||
if (northNeighbour != null) northNeighbour.UpdateState();
|
||||
if (southNeighbour != null) southNeighbour.UpdateState();
|
||||
}
|
||||
UpdateState();
|
||||
if (northNeighbour != null) northNeighbour.UpdateState();
|
||||
if (southNeighbour != null) southNeighbour.UpdateState();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace OpenRA.Mods.RA.Render
|
||||
public object Create(ActorInitializer init) { return new SoundOnDamageTransition(this);}
|
||||
}
|
||||
|
||||
public class SoundOnDamageTransition : INotifyDamage
|
||||
public class SoundOnDamageTransition : INotifyDamageStateChanged
|
||||
{
|
||||
readonly SoundOnDamageTransitionInfo Info;
|
||||
public SoundOnDamageTransition( SoundOnDamageTransitionInfo info )
|
||||
@@ -34,11 +34,8 @@ namespace OpenRA.Mods.RA.Render
|
||||
Info = info;
|
||||
}
|
||||
|
||||
public virtual void Damaged(Actor self, AttackInfo e)
|
||||
public void DamageStateChanged(Actor self, AttackInfo e)
|
||||
{
|
||||
if (!e.DamageStateChanged)
|
||||
return;
|
||||
|
||||
if (e.DamageState == DamageState.Dead)
|
||||
Sound.Play(Info.DestroyedSound, self.CenterLocation);
|
||||
else if (e.DamageState >= DamageState.Heavy && e.PreviousDamageState < DamageState.Heavy)
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.RA
|
||||
public object Create(ActorInitializer init) { return new Cloak(init.self, this); }
|
||||
}
|
||||
|
||||
public class Cloak : IRenderModifier, INotifyDamage, INotifyAttack, ITick, IVisibilityModifier, IRadarColorModifier, ISync
|
||||
public class Cloak : IRenderModifier, INotifyDamageStateChanged, INotifyAttack, ITick, IVisibilityModifier, IRadarColorModifier, ISync
|
||||
{
|
||||
[Sync]
|
||||
int remainingTime;
|
||||
@@ -63,7 +63,7 @@ namespace OpenRA.Mods.RA
|
||||
}
|
||||
|
||||
public void Attacking(Actor self, Target target) { DoUncloak(); }
|
||||
public void Damaged(Actor self, AttackInfo e)
|
||||
public void DamageStateChanged(Actor self, AttackInfo e)
|
||||
{
|
||||
canCloak = (e.DamageState < DamageState.Critical);
|
||||
if (Cloaked && !canCloak)
|
||||
|
||||
@@ -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 ))
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user