aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp9
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()