Core/Players: Implemented new talent system

Port From (https://github.com/TrinityCore/TrinityCore/commit/0cc5ab8372f19dad7412038d52dcd39db5e0e171)
This commit is contained in:
hondacrx
2023-01-04 02:50:40 -05:00
parent 0bfc448595
commit 55da7dc549
24 changed files with 3168 additions and 532 deletions
+35
View File
@@ -5676,6 +5676,41 @@ namespace Game.Spells
for (int i = 0; i < damage; ++i)
unitTarget.GetSpellHistory().RestoreCharge((uint)effectInfo.MiscValue);
}
[SpellEffectHandler(SpellEffectName.CreateTraitTreeConfig)]
void EffectCreateTraitTreeConfig()
{
if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return;
Player target = unitTarget?.ToPlayer();
if (target == null)
return;
TraitConfigPacket newConfig = new();
newConfig.Type = TraitMgr.GetConfigTypeForTree(effectInfo.MiscValue);
if (newConfig.Type != TraitConfigType.Generic)
return;
newConfig.TraitSystemID = CliDB.TraitTreeStorage.LookupByKey(effectInfo.MiscValue).TraitSystemID;
target.CreateTraitConfig(newConfig);
}
[SpellEffectHandler(SpellEffectName.ChangeActiveCombatTraitConfig)]
void EffectChangeActiveCombatTraitConfig()
{
if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return;
Player target = unitTarget?.ToPlayer();
if (target == null)
return;
if (m_customArg is not TraitConfigPacket)
return;
target.UpdateTraitConfig(m_customArg as TraitConfigPacket, damage, false);
}
}
public class DispelableAura