diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs index ec83ce99b6..b0741a0203 100644 --- a/OpenRA.Game/Traits/TraitsInterfaces.cs +++ b/OpenRA.Game/Traits/TraitsInterfaces.cs @@ -130,7 +130,6 @@ namespace OpenRA.Traits public interface INotifyAddedToWorld { void AddedToWorld(Actor self); } public interface INotifyRemovedFromWorld { void RemovedFromWorld(Actor self); } public interface INotifyDamage { void Damaged(Actor self, AttackInfo e); } - public interface INotifyDamageStateChanged { void DamageStateChanged(Actor self, AttackInfo e); } public interface INotifyKilled { void Killed(Actor self, AttackInfo e); } public interface INotifyActorDisposing { void Disposing(Actor self); } public interface INotifyAppliedDamage { void AppliedDamage(Actor self, Actor damaged, AttackInfo e); } diff --git a/OpenRA.Mods.Common/Traits/Buildings/Bridge.cs b/OpenRA.Mods.Common/Traits/Buildings/Bridge.cs index 241e7656b9..979ecdf9c1 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/Bridge.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/Bridge.cs @@ -308,7 +308,7 @@ namespace OpenRA.Mods.Common.Traits } } - public void DamageStateChanged(Actor self, AttackInfo e) + void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e) { Do((b, d) => b.UpdateState()); diff --git a/OpenRA.Mods.Common/Traits/ExplosionOnDamageTransition.cs b/OpenRA.Mods.Common/Traits/ExplosionOnDamageTransition.cs index 3e4c2fe113..cdb3f7ec3a 100644 --- a/OpenRA.Mods.Common/Traits/ExplosionOnDamageTransition.cs +++ b/OpenRA.Mods.Common/Traits/ExplosionOnDamageTransition.cs @@ -49,7 +49,7 @@ namespace OpenRA.Mods.Common.Traits this.info = info; } - public void DamageStateChanged(Actor self, AttackInfo e) + void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e) { if (!self.IsInWorld) return; diff --git a/OpenRA.Mods.Common/Traits/Render/WithSpriteTurret.cs b/OpenRA.Mods.Common/Traits/Render/WithSpriteTurret.cs index abfcaa4be1..d69dea2b9e 100644 --- a/OpenRA.Mods.Common/Traits/Render/WithSpriteTurret.cs +++ b/OpenRA.Mods.Common/Traits/Render/WithSpriteTurret.cs @@ -113,7 +113,7 @@ namespace OpenRA.Mods.Common.Traits.Render return RenderSprites.NormalizeSequence(DefaultAnimation, self.GetDamageState(), sequence); } - public virtual void DamageStateChanged(Actor self, AttackInfo e) + protected virtual void DamageStateChanged(Actor self) { if (DefaultAnimation.CurrentSequence != null) DefaultAnimation.ReplaceAnim(NormalizeSequence(self, DefaultAnimation.CurrentSequence.Name)); @@ -128,6 +128,11 @@ namespace OpenRA.Mods.Common.Traits.Render DefaultAnimation.ReplaceAnim(sequence); } + void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e) + { + DamageStateChanged(self); + } + void INotifyBuildComplete.BuildingComplete(Actor self) { buildComplete = true; } void INotifySold.Selling(Actor self) { buildComplete = false; } void INotifySold.Sold(Actor self) { } diff --git a/OpenRA.Mods.Common/Traits/Sound/SoundOnDamageTransition.cs b/OpenRA.Mods.Common/Traits/Sound/SoundOnDamageTransition.cs index 27f9a37b59..6c2e1050a2 100644 --- a/OpenRA.Mods.Common/Traits/Sound/SoundOnDamageTransition.cs +++ b/OpenRA.Mods.Common/Traits/Sound/SoundOnDamageTransition.cs @@ -33,7 +33,7 @@ namespace OpenRA.Mods.Common.Traits.Sound this.info = info; } - public void DamageStateChanged(Actor self, AttackInfo e) + void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e) { var rand = Game.CosmeticRandom; diff --git a/OpenRA.Mods.Common/TraitsInterfaces.cs b/OpenRA.Mods.Common/TraitsInterfaces.cs index 4b8f15b3ae..2cc0a67c33 100644 --- a/OpenRA.Mods.Common/TraitsInterfaces.cs +++ b/OpenRA.Mods.Common/TraitsInterfaces.cs @@ -72,6 +72,10 @@ namespace OpenRA.Mods.Common.Traits [RequireExplicitImplementation] public interface INotifyBuildComplete { void BuildingComplete(Actor self); } + + [RequireExplicitImplementation] + public interface INotifyDamageStateChanged { void DamageStateChanged(Actor self, AttackInfo e); } + public interface INotifyBuildingPlaced { void BuildingPlaced(Actor self); } public interface INotifyRepair { void Repairing(Actor self, Actor target); } public interface INotifyBurstComplete { void FiredBurst(Actor self, Target target, Armament a); }