From aa459e53afdee64e29767f0057aec1999b0b72d8 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sun, 27 Aug 2023 19:14:56 +0200 Subject: [PATCH] Core/Creatures: apply CREATURE_STATIC_FLAG_5_240_DEGREE_BACK_ARC for parries and blocks as well --- src/server/game/Entities/Unit/Unit.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 78434cdd6d..6b3bdf6567 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -2074,8 +2074,12 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst(const Unit* victim, WeaponAttackTy int32 sum = 0, tmp = 0; int32 roll = urand(0, 9999); + float arcAngle = static_cast(M_PI); + if (victim->IsCreature() && victim->ToCreature()->HasStaticFlag(CREATURE_STATIC_FLAG_5_240_DEGREE_BACK_ARC)) + arcAngle -= static_cast(M_PI / 3); + // check if attack comes from behind, nobody can parry or block if attacker is behind - bool canParryOrBlock = victim->HasInArc(float(M_PI), this) || victim->HasAuraType(SPELL_AURA_IGNORE_HIT_DIRECTION); + bool canParryOrBlock = victim->HasInArc(arcAngle, this) || victim->HasAuraType(SPELL_AURA_IGNORE_HIT_DIRECTION); // only creatures can dodge if attacker is behind bool canDodge = victim->GetTypeId() != TYPEID_PLAYER || canParryOrBlock;