From 6c0113c9a5640a883a29156713bf24509e5195c7 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Fri, 4 Feb 2022 19:13:30 +0100 Subject: [PATCH] fix(Core/Spells): Wolverine Bite (#10312) - Closes #10293 - Source: TrinityCore --- src/server/game/Entities/Unit/Unit.cpp | 14 ++++++++------ src/server/game/Entities/Unit/Unit.h | 10 ++++++---- 2 files changed, 14 insertions(+), 10 deletions(-) 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