diff options
| author | Shauren <shauren.trinity@gmail.com> | 2022-12-16 22:44:55 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-12-16 22:44:55 +0100 |
| commit | 0cc5ab8372f19dad7412038d52dcd39db5e0e171 (patch) | |
| tree | 99e621862e90fc9f073897445d4a8bdd4fbfa557 /src/server/game/Spells/Spell.cpp | |
| parent | 9be60f240960f6538329b5e017f435c6237a89ea (diff) | |
Core/Players: Implemented new talent system
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 2cd10e0b4e8..58007c844ac 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -55,6 +55,7 @@ #include "SpellScript.h" #include "TemporarySummon.h" #include "TradeData.h" +#include "TraitPackets.h" #include "Util.h" #include "VMapFactory.h" #include "Vehicle.h" @@ -4222,7 +4223,14 @@ void Spell::finish(bool ok) Unit::ProcSkillsAndAuras(unitCaster, nullptr, PROC_FLAG_CAST_ENDED, PROC_FLAG_NONE, PROC_SPELL_TYPE_MASK_ALL, PROC_SPELL_PHASE_NONE, PROC_HIT_NONE, this, nullptr, nullptr); if (!ok) + { + // on failure (or manual cancel) send TraitConfigCommitFailed to revert talent UI saved config selection + if (m_caster->IsPlayer() && m_spellInfo->HasEffect(SPELL_EFFECT_CHANGE_ACTIVE_COMBAT_TRAIT_CONFIG)) + if (WorldPackets::Traits::TraitConfig const* traitConfig = std::any_cast<WorldPackets::Traits::TraitConfig>(&m_customArg)) + m_caster->ToPlayer()->SendDirectMessage(WorldPackets::Traits::TraitConfigCommitFailed(traitConfig->ID).Write()); + return; + } if (unitCaster->GetTypeId() == TYPEID_UNIT && unitCaster->IsSummon()) { |
