Core/Spells: Prevent duplicating trait configs for Generic type

This commit is contained in:
Shauren
2023-11-02 20:05:29 +01:00
parent 20b0ad736c
commit 31da896eb2
3 changed files with 11 additions and 2 deletions

View File

@@ -3715,7 +3715,8 @@ INSERT INTO `updates` VALUES
('2023_08_26_00_characters.sql','FA50838609AB5E645FB2DCAC970BD5706F9EFAAF','ARCHIVED','2023-08-26 12:18:22',0),
('2023_09_14_00_characters.sql','DAC56929C724C2971A4476400F2439CBDFAF3C5C','ARCHIVED','2023-09-13 22:20:22',0),
('2023_09_30_00_characters.sql','4326C642870633873F163085D278DB9B7449D9C3','ARCHIVED','2023-09-30 16:34:19',0),
('2023_10_06_00_characters.sql','FFAFF1F0916BB9DC58345466E0BB1A15A4611836','ARCHIVED','2023-10-06 00:40:46',0);
('2023_10_06_00_characters.sql','FFAFF1F0916BB9DC58345466E0BB1A15A4611836','ARCHIVED','2023-10-06 00:40:46',0),
('2023_11_02_00_characters.sql','1A76A843F204901C8598DA5682029E815477E427','RELEASED','2023-11-02 18:59:41',0);
/*!40000 ALTER TABLE `updates` ENABLE KEYS */;
UNLOCK TABLES;

View File

@@ -0,0 +1 @@
DELETE ctc, cte FROM `character_trait_config` ctc LEFT JOIN `character_trait_entry` cte ON ctc.`guid` = cte.`guid` AND ctc.`traitConfigId` = cte.`traitConfigId` WHERE ctc.`type` = 3;

View File

@@ -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()