From 31da896eb2ea9a18dae7c2fa45c188ebadfc9e3e Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 2 Nov 2023 20:05:29 +0100 Subject: Core/Spells: Prevent duplicating trait configs for Generic type --- src/server/game/Spells/SpellEffects.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 7cb4fc675d8..350f20e239d 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -6040,7 +6040,14 @@ void Spell::EffectCreateTraitTreeConfig() return; newConfig.TraitSystemID = sTraitTreeStore.AssertEntry(effectInfo->MiscValue)->TraitSystemID; - target->CreateTraitConfig(newConfig); + int32 existingConfigForSystem = target->m_activePlayerData->TraitConfigs.FindIndexIf([&](UF::TraitConfig const& config) + { + return static_cast(*config.Type) == TraitConfigType::Generic + && config.TraitSystemID == newConfig.TraitSystemID; + }); + + if (existingConfigForSystem < 0) + target->CreateTraitConfig(newConfig); } void Spell::EffectChangeActiveCombatTraitConfig() -- cgit v1.2.3