diff --git a/src/server/game/AI/CoreAI/UnitAI.cpp b/src/server/game/AI/CoreAI/UnitAI.cpp index fd8a515bb9..34f3ce4e4e 100644 --- a/src/server/game/AI/CoreAI/UnitAI.cpp +++ b/src/server/game/AI/CoreAI/UnitAI.cpp @@ -71,21 +71,13 @@ void UnitAI::DoMeleeAttackIfReady() //Make sure our attack is ready and we aren't currently casting before checking distance if (me->isAttackReady()) { - if (ShouldSparWith(victim)) - me->FakeAttackerStateUpdate(victim); - else - me->AttackerStateUpdate(victim); - + me->AttackerStateUpdate(victim); me->resetAttackTimer(); } if (me->haveOffhandWeapon() && me->isAttackReady(OFF_ATTACK)) { - if (ShouldSparWith(victim)) - me->FakeAttackerStateUpdate(victim, OFF_ATTACK); - else - me->AttackerStateUpdate(victim, OFF_ATTACK); - + me->AttackerStateUpdate(victim, OFF_ATTACK); me->resetAttackTimer(OFF_ATTACK); } } diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h index bbaa173da2..f8188cf588 100644 --- a/src/server/game/AI/CoreAI/UnitAI.h +++ b/src/server/game/AI/CoreAI/UnitAI.h @@ -315,9 +315,6 @@ class TC_GAME_API UnitAI void DoCastAOE(uint32 spellId, CastSpellExtraArgs const& args = {}) { DoCast(nullptr, spellId, args); } float DoGetSpellMaxRange(uint32 spellId, bool positive = false); - - virtual bool ShouldSparWith(Unit const* /*target*/) const { return false; } - void DoMeleeAttackIfReady(); bool DoSpellAttackIfReady(uint32 spell); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ea9e5e1d3a..926caa85f1 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -2121,49 +2121,6 @@ void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extr } } -void Unit::FakeAttackerStateUpdate(Unit* victim, WeaponAttackType attType /*= BASE_ATTACK*/) -{ - if (HasUnitState(UNIT_STATE_CANNOT_AUTOATTACK) || HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED)) - return; - - if (!victim->IsAlive()) - return; - - if ((attType == BASE_ATTACK || attType == OFF_ATTACK) && !IsWithinLOSInMap(victim)) - return; - - AtTargetAttacked(victim, true); - RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags::Attacking); - - if (attType != BASE_ATTACK && attType != OFF_ATTACK) - return; // ignore ranged case - - if (GetTypeId() == TYPEID_UNIT && !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED) && !HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISABLE_TURN)) - SetFacingToObject(victim, false); // update client side facing to face the target (prevents visual glitches when casting untargeted spells) - - CalcDamageInfo damageInfo; - damageInfo.attacker = this; - damageInfo.target = victim; - damageInfo.damageSchoolMask = GetMeleeDamageSchoolMask(); - damageInfo.attackType = attType; - damageInfo.damage = 0; - damageInfo.cleanDamage = 0; - damageInfo.absorb = 0; - damageInfo.resist = 0; - damageInfo.blocked_amount = 0; - - damageInfo.TargetState = VICTIMSTATE_HIT; - damageInfo.HitInfo = HITINFO_AFFECTS_VICTIM | HITINFO_NORMALSWING | HITINFO_FAKE_DAMAGE; - if (attType == OFF_ATTACK) - damageInfo.HitInfo |= HITINFO_OFFHAND; - - damageInfo.procAttacker = PROC_FLAG_NONE; - damageInfo.procVictim = PROC_FLAG_NONE; - damageInfo.hitOutCome = MELEE_HIT_NORMAL; - - SendAttackStateUpdate(&damageInfo); -} - void Unit::HandleProcExtraAttackFor(Unit* victim) { while (m_extraAttacks) @@ -13471,8 +13428,6 @@ void Unit::_ExitVehicle(Position const* exitPosition) else ToTempSummon()->UnSummon(2000); // Approximation } - - RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::AbandonVehicle); } bool Unit::IsFalling() const @@ -13803,13 +13758,6 @@ bool Unit::UpdatePosition(float x, float y, float z, float orientation, bool tel _positionUpdateInfo.Relocated = relocated; _positionUpdateInfo.Turned = turn; - bool isInWater = IsInWater(); - if (!IsFalling() || isInWater || IsFlying()) - RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::Ground); - - if (isInWater) - RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::Swimming); - return (relocated || turn); } diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 7eb8cc7665..eb45a21fc8 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1047,8 +1047,7 @@ class TC_GAME_API Unit : public WorldObject void TriggerAurasProcOnEvent(ProcEventInfo& eventInfo, AuraApplicationProcContainer& procAuras); void HandleEmoteCommand(uint32 anim_id); - void AttackerStateUpdate (Unit* victim, WeaponAttackType attType = BASE_ATTACK, bool extra = false); - void FakeAttackerStateUpdate(Unit* victim, WeaponAttackType attType = BASE_ATTACK); + void AttackerStateUpdate(Unit* victim, WeaponAttackType attType = BASE_ATTACK, bool extra = false); void CalculateMeleeDamage(Unit* victim, uint32 damage, CalcDamageInfo* damageInfo, WeaponAttackType attackType = BASE_ATTACK); void DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp index cda3d9c65a..305495d209 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp @@ -1162,11 +1162,6 @@ class npc_thorim_pre_phase : public CreatureScript thorim->AI()->DoAction(ACTION_INCREASE_PREADDS_COUNT); } - bool ShouldSparWith(Unit const* target) const override - { - return !target->GetAffectingPlayer(); - } - void DamageTaken(Unit* attacker, uint32& damage) override { // nullify spell damage