diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index e67d8d8c4..19ed53ac9 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -15588,14 +15588,12 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u StartReactiveTimer(REACTIVE_OVERPOWER); } } + // Wolverine Bite - if (procExtra & PROC_EX_CRITICAL_HIT) + if ((procExtra & PROC_HIT_CRITICAL) && IsHunterPet()) { - if (GetTypeId() == TYPEID_UNIT && IsPet()) - { - ModifyAuraState(AURA_STATE_DEFENSE, true); - StartReactiveTimer( REACTIVE_DEFENSE ); - } + AddComboPoints(target, 1); + StartReactiveTimer(REACTIVE_WOLVERINE_BITE); } } } @@ -16369,6 +16367,10 @@ void Unit::UpdateReactives(uint32 p_time) if (getClass() == CLASS_WARRIOR && GetTypeId() == TYPEID_PLAYER) ClearComboPoints(); break; + case REACTIVE_WOLVERINE_BITE: + if (IsHunterPet()) + ClearComboPoints(); + break; default: break; } diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 0fba15c07..983776833 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1163,12 +1163,14 @@ struct AttackPosition { enum ReactiveType { - REACTIVE_DEFENSE = 0, - REACTIVE_HUNTER_PARRY = 1, - REACTIVE_OVERPOWER = 2 + REACTIVE_DEFENSE = 0, + REACTIVE_HUNTER_PARRY = 1, + REACTIVE_OVERPOWER = 2, + REACTIVE_WOLVERINE_BITE = 3, + + MAX_REACTIVE }; -#define MAX_REACTIVE 3 #define SUMMON_SLOT_PET 0 #define SUMMON_SLOT_TOTEM 1 #define MAX_TOTEM_SLOT 5