diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index fffd4f09b..519619e50 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -2620,7 +2620,7 @@ inline SkillType SkillByLockType(LockType locktype) { switch (locktype) { - case LOCKTYPE_PICKLOCK: return SkillType(MAX_SKILL_TYPE); + case LOCKTYPE_PICKLOCK: return SkillType(MAX_SKILL_TYPE); // no skill for such lock, 'skill' value scales with level case LOCKTYPE_HERBALISM: return SKILL_HERBALISM; case LOCKTYPE_MINING: return SKILL_MINING; case LOCKTYPE_FISHING: return SKILL_FISHING; diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 3dbbf5ebe..97d528e54 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -7581,6 +7581,7 @@ SpellCastResult Spell::CanOpenLock(SpellEffectIndex effIndex, uint32 lockId, Ski reqSkillValue = lockInfo->Skill[j]; // castitem check: rogue using skeleton keys. the skill values should not be added in this case. + // MAX_SKILL_TYPE - skill value scales with caster level if (skillId == MAX_SKILL_TYPE) skillValue = m_CastItem || m_caster->GetTypeId() != TYPEID_PLAYER ? 0 : m_caster->getLevel() * 5; else diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 3d5e0baa3..e3bc4ccca 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -371,7 +371,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS] = &Aura::HandleNULL, //315 SPELL_AURA_UNDERWATER_WALKING 4 spells in 4.3.4 underwater walking &Aura::HandleUnused, //316 0 spells in 4.3.4 &Aura::HandleNULL, //317 SPELL_AURA_MOD_INCREASE_SPELL_POWER_PCT 13 spells in 4.3.4 - &Aura::HandleNULL, //318 SPELL_AURA_MASTERY 12 spells in 4.3 + &Aura::HandleAuraMastery, //318 SPELL_AURA_MASTERY 12 spells in 4.3 &Aura::HandleNULL, //319 SPELL_AURA_MOD_MELEE_ATTACK_SPEED 47 spells in 4.3.4 &Aura::HandleNULL, //320 SPELL_AURA_MOD_RANGED_ATTACK_SPEED 5 spells in 4.3.4 &Aura::HandleNULL, //321 1 spells in 4.3 Hex @@ -8744,6 +8744,18 @@ void Aura::HandleAuraStopNaturalManaRegen(bool apply, bool Real) GetTarget()->ApplyModFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_REGENERATE_POWER, !apply && !GetTarget()->IsUnderLastManaUseEffect()); } +void Aura::HandleAuraMastery(bool apply, bool Real) +{ + if (!Real) + return; + + Unit* target = GetTarget(); + if (target->GetTypeId() != TYPEID_PLAYER) + return; + + ((Player*)target)->UpdateMasteryAuras(); +} + bool Aura::IsLastAuraOnHolder() { for (int32 i = 0; i < MAX_EFFECT_INDEX; ++i) diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h index afdacc4dd..51c179a99 100644 --- a/src/game/SpellAuras.h +++ b/src/game/SpellAuras.h @@ -374,6 +374,7 @@ class MANGOS_DLL_SPEC Aura void HandleAuraOpenStable(bool apply, bool Real); void HandleAuraAddMechanicAbilities(bool apply, bool Real); void HandleAuraStopNaturalManaRegen(bool apply, bool Real); + void HandleAuraMastery(bool apply, bool Real); virtual ~Aura(); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index e22186e51..2ac0bd2cc 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "12190" + #define REVISION_NR "12191" #endif // __REVISION_NR_H__