diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
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<TraitConfigType>(*config.Type) == TraitConfigType::Generic + && config.TraitSystemID == newConfig.TraitSystemID; + }); + + if (existingConfigForSystem < 0) + target->CreateTraitConfig(newConfig); } void Spell::EffectChangeActiveCombatTraitConfig() |