From 3e83346915bdf328bb1fab9384dcd3d52abee400 Mon Sep 17 00:00:00 2001 From: Mustafa Alperen Seki Date: Mon, 21 Sep 2020 15:25:01 +0300 Subject: [PATCH] Add DamageTypes to SoundOnDamageTransition. --- OpenRA.Mods.Common/Traits/Sound/SoundOnDamageTransition.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/OpenRA.Mods.Common/Traits/Sound/SoundOnDamageTransition.cs b/OpenRA.Mods.Common/Traits/Sound/SoundOnDamageTransition.cs index 83b05615a8..ff38cbce42 100644 --- a/OpenRA.Mods.Common/Traits/Sound/SoundOnDamageTransition.cs +++ b/OpenRA.Mods.Common/Traits/Sound/SoundOnDamageTransition.cs @@ -9,6 +9,7 @@ */ #endregion +using OpenRA.Primitives; using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits.Sound @@ -21,6 +22,9 @@ namespace OpenRA.Mods.Common.Traits.Sound [Desc("Play a random sound from this list when destroyed.")] public readonly string[] DestroyedSounds = { }; + [Desc("DamageType(s) that trigger the sounds. Leave empty to always trigger a sound.")] + public readonly BitSet DamageTypes = default(BitSet); + public override object Create(ActorInitializer init) { return new SoundOnDamageTransition(this); } } @@ -35,6 +39,9 @@ namespace OpenRA.Mods.Common.Traits.Sound void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e) { + if (!info.DamageTypes.IsEmpty && !e.Damage.DamageTypes.Overlaps(info.DamageTypes)) + return; + var rand = Game.CosmeticRandom; if (e.DamageState == DamageState.Dead)