mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core: Updated to 11.2.5.63704
This commit is contained in:
@@ -6150,13 +6150,30 @@ void Spell::EffectCreateTraitTreeConfig()
|
||||
return;
|
||||
|
||||
newConfig.TraitSystemID = sTraitTreeStore.AssertEntry(effectInfo->MiscValue)->TraitSystemID;
|
||||
int32 existingConfigForSystem = target->m_activePlayerData->TraitConfigs.FindIndexIf([&](UF::TraitConfig const& config)
|
||||
TraitSystemEntry const* traitSystem = sTraitSystemStore.LookupEntry(newConfig.TraitSystemID);
|
||||
if (!traitSystem)
|
||||
return;
|
||||
|
||||
switch (traitSystem->GetVariationType())
|
||||
{
|
||||
case TraitSystemVariationType::None:
|
||||
newConfig.VariationID = 0;
|
||||
break;
|
||||
case TraitSystemVariationType::Spec:
|
||||
newConfig.VariationID = AsUnderlyingType(target->GetPrimarySpecialization());
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
int32 const* existingConfigIdForSystem = target->m_activePlayerData->TraitConfigs.FindIf([&](UF::TraitConfig const& config)
|
||||
{
|
||||
return static_cast<TraitConfigType>(*config.Type) == TraitConfigType::Generic
|
||||
&& config.TraitSystemID == newConfig.TraitSystemID;
|
||||
});
|
||||
&& config.TraitSystemID == newConfig.TraitSystemID
|
||||
&& config.VariationID == newConfig.VariationID;
|
||||
}).first;
|
||||
|
||||
if (existingConfigForSystem < 0)
|
||||
if (!existingConfigIdForSystem)
|
||||
target->CreateTraitConfig(newConfig);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user