aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-01-08 22:23:12 +0100
committerShauren <shauren.trinity@gmail.com>2024-01-08 22:23:12 +0100
commit605e5f94c0d71cad8e83fa5a07eaec4e6bed9cc3 (patch)
tree5cad677458a22ef0dd187fa86d1cd574282384dd
parenteeb4407f077bf567361becdbe5083c2790f00313 (diff)
Core/Creatures: Moved autoattack handling from scripts to game
-rw-r--r--sql/updates/world/master/2024_01_08_04_world.sql90
-rw-r--r--src/server/game/AI/CoreAI/CombatAI.cpp9
-rw-r--r--src/server/game/AI/CoreAI/GuardAI.cpp5
-rw-r--r--src/server/game/AI/CoreAI/PassiveAI.cpp4
-rw-r--r--src/server/game/AI/CoreAI/PetAI.cpp9
-rw-r--r--src/server/game/AI/CoreAI/ReactorAI.cpp5
-rw-r--r--src/server/game/AI/CoreAI/UnitAI.cpp35
-rw-r--r--src/server/game/AI/CoreAI/UnitAI.h1
-rw-r--r--src/server/game/AI/PlayerAI/PlayerAI.cpp2
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.cpp9
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp5
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp5
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp10
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp2
-rw-r--r--src/server/game/Entities/Player/Player.cpp95
-rw-r--r--src/server/game/Entities/Player/Player.h7
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp96
-rw-r--r--src/server/game/Entities/Unit/Unit.h5
-rw-r--r--src/server/game/Entities/Unit/UnitDefines.h8
-rw-r--r--src/server/game/Server/Packets/CombatPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/CombatPackets.h11
-rw-r--r--src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp4
-rw-r--r--src/server/scripts/BrokenIsles/TrialOfValor/boss_guarm.cpp2
-rw-r--r--src/server/scripts/BrokenIsles/zone_mardum.cpp4
-rw-r--r--src/server/scripts/DragonIsles/AzureVault/boss_leymor.cpp4
-rw-r--r--src/server/scripts/DragonIsles/AzureVault/boss_telash_greywing.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BaradinHold/boss_occuthar.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp11
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_ascendant_lord_obsidius.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_beauty.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_karsh_steelbender.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp7
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp7
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp7
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp13
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp7
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp22
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp29
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp1
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp12
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp5
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_daakara.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo_the_godbreaker.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_kilnara.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp10
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_zanzil.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/zone_dun_morogh_area_coldridge_valley.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/zone_duskwood.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/zone_undercity.cpp2
-rw-r--r--src/server/scripts/Events/lunar_festival.cpp2
-rw-r--r--src/server/scripts/Events/zalazane_fall.cpp2
-rw-r--r--src/server/scripts/ExilesReach/zone_exiles_reach.cpp12
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp2
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp2
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp11
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp1
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp1
-rw-r--r--src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp4
-rw-r--r--src/server/scripts/Kalimdor/Firelands/firelands.cpp9
-rw-r--r--src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp3
-rw-r--r--src/server/scripts/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp6
-rw-r--r--src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp2
-rw-r--r--src/server/scripts/Kalimdor/LostCityOfTheTolvir/boss_general_husam.cpp1
-rw-r--r--src/server/scripts/Kalimdor/LostCityOfTheTolvir/boss_lockmaw.cpp4
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp2
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp2
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp2
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp2
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp7
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp1
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp1
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp5
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp4
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp6
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp4
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp4
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp3
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp5
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp2
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp3
-rw-r--r--src/server/scripts/Kalimdor/zone_ashenvale.cpp1
-rw-r--r--src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp4
-rw-r--r--src/server/scripts/Kalimdor/zone_durotar.cpp7
-rw-r--r--src/server/scripts/Kalimdor/zone_felwood.cpp1
-rw-r--r--src/server/scripts/Kalimdor/zone_silithus.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_tanaris.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_the_barrens.cpp5
-rw-r--r--src/server/scripts/Kalimdor/zone_thunder_bluff.cpp2
-rw-r--r--src/server/scripts/Maelstrom/Stonecore/boss_corborus.cpp4
-rw-r--r--src/server/scripts/Maelstrom/Stonecore/boss_high_priestess_azil.cpp2
-rw-r--r--src/server/scripts/Maelstrom/Stonecore/boss_ozruk.cpp2
-rw-r--r--src/server/scripts/Maelstrom/Stonecore/boss_slabhide.cpp2
-rw-r--r--src/server/scripts/Maelstrom/Stonecore/stonecore.cpp1
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp4
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp10
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp2
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp17
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp6
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp14
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp24
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp4
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp4
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp4
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp2
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp16
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp8
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp12
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp10
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp8
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp9
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp18
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp2
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp6
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp2
-rw-r--r--src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp5
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp3
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp25
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp6
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp10
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp2
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp5
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp11
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp26
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp20
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp10
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp8
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp14
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp18
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp16
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp18
-rw-r--r--src/server/scripts/Northrend/IsleOfConquest/boss_ioc_horde_alliance.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp11
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp3
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp20
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp6
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp10
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp10
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_noth.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp2
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp8
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp6
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp10
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_general_bjarngrim.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp7
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp8
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp11
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp18
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp14
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp3
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp9
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp10
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp13
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp6
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp3
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp7
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp4
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp7
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp13
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp2
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp4
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp2
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp5
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_erekem.cpp7
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp5
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp5
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_moragg.cpp5
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp5
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp5
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp7
-rw-r--r--src/server/scripts/Northrend/zone_borean_tundra.cpp10
-rw-r--r--src/server/scripts/Northrend/zone_dragonblight.cpp1
-rw-r--r--src/server/scripts/Northrend/zone_grizzly_hills.cpp10
-rw-r--r--src/server/scripts/Northrend/zone_howling_fjord.cpp2
-rw-r--r--src/server/scripts/Northrend/zone_icecrown.cpp2
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp5
-rw-r--r--src/server/scripts/Northrend/zone_wintergrasp.cpp2
-rw-r--r--src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp7
-rw-r--r--src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp4
-rw-r--r--src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp2
-rw-r--r--src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp2
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp2
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp2
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp2
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/black_temple.cpp3
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp10
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp5
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp8
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp14
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp7
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp8
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp8
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp7
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp7
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp4
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_hungarfen.cpp5
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp2
-rw-r--r--src/server/scripts/Outland/GruulsLair/boss_gruul.cpp2
-rw-r--r--src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp8
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp4
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp6
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp4
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp8
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp14
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp4
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp11
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp4
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp3
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp1
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp10
-rw-r--r--src/server/scripts/Outland/boss_doomlord_kazzak.cpp2
-rw-r--r--src/server/scripts/Outland/boss_doomwalker.cpp1
-rw-r--r--src/server/scripts/Outland/zone_blades_edge_mountains.cpp2
-rw-r--r--src/server/scripts/Outland/zone_hellfire_peninsula.cpp4
-rw-r--r--src/server/scripts/Outland/zone_nagrand.cpp14
-rw-r--r--src/server/scripts/Outland/zone_netherstorm.cpp2
-rw-r--r--src/server/scripts/Outland/zone_shadowmoon_valley.cpp24
-rw-r--r--src/server/scripts/Outland/zone_terokkar_forest.cpp2
-rw-r--r--src/server/scripts/Pandaria/zone_the_wandering_isle.cpp2
-rw-r--r--src/server/scripts/Pet/pet_hunter.cpp2
-rw-r--r--src/server/scripts/Pet/pet_shaman.cpp4
-rw-r--r--src/server/scripts/Shadowlands/SepulcherOfTheFirstOnes/boss_anduin_wrynn.cpp11
-rw-r--r--src/server/scripts/World/boss_emerald_dragons.cpp2
-rw-r--r--src/server/scripts/World/npc_guard.cpp9
-rw-r--r--src/server/scripts/World/npcs_special.cpp3
-rw-r--r--src/server/scripts/Zandalar/Underrot/boss_cragmaw_the_infested.cpp4
-rw-r--r--src/server/scripts/Zandalar/Underrot/boss_elder_leaxa.cpp4
425 files changed, 393 insertions, 1816 deletions
diff --git a/sql/updates/world/master/2024_01_08_04_world.sql b/sql/updates/world/master/2024_01_08_04_world.sql
new file mode 100644
index 00000000000..05464e88a4e
--- /dev/null
+++ b/sql/updates/world/master/2024_01_08_04_world.sql
@@ -0,0 +1,90 @@
+UPDATE `creature_template_difficulty` SET `StaticFlags1`=`StaticFlags1`|0x100000 WHERE `Entry` IN (
+15589, -- Eye of C'Thun
+15727, -- C'Thun
+16129, -- Shadow Fissure
+16474, -- Blizzard
+17096, -- Astral Flare
+17907, -- Frost Wyrm
+17990, -- Underbog Mushroom
+18412, -- Cyclone (The Crone)
+18729, -- Infernal Rain (Hellfire)
+19427, -- Voidwalker Summoner
+19781, -- Astral Flare
+19782, -- Astral Flare
+19783, -- Astral Flare
+21364, -- Phoenix Egg
+22950, -- High Nethermancer Zerevor
+23417, -- Reliquary Combat Trigger
+23426, -- The Illidari Council
+25265, -- Demonic Vapor
+25267, -- Demonic Vapor (Trail)
+25502, -- Shield Orb
+25603, -- Felfire Portal
+25741, -- M'uru
+25744, -- Dark Fiend
+25855, -- Singularity
+27629, -- Wyrmrest Defender
+27692, -- Emerald Drake
+27755, -- Amber Drake
+27756, -- Ruby Drake
+28926, -- Spark of Ionar
+29271, -- Ethereal Sphere
+30234, -- Hover Disk
+30249, -- Scion of Eternity
+30391, -- Healthy Mushroom
+30435, -- Poisonous Mushroom
+30616, -- Flame Tsunami
+30641, -- Twilight Fissure
+30882, -- Twilight Egg
+31216, -- Mirror Image
+32582, -- Ethereal Sphere
+33052, -- Living Constellation
+33090, -- Pool of Tar
+33134, -- Sara
+33139, -- Flame Leviathan Turret
+33169, -- Icicle
+33173, -- Snowpacked Icicle
+33229, -- Melee Target
+33243, -- Ranged Target
+33272, -- Charge Target
+33280, -- Voice of Yogg-Saron
+33552, -- Yogg-Saron
+33651, -- VX-001
+33670, -- Aerial Command Unit
+33983, -- Constrictor Tentacle
+33985, -- Corruptor Tentacle
+33990, -- Laughing Skull
+34441, -- Vivienne Blackwhisper
+34444, -- Thrakgar
+34445, -- Liandra Suncaller
+34447, -- Caiphus the Stern
+34449, -- Ginselle Blightslinger
+34450, -- Harkzog
+34451, -- Birana Stormhoof
+34459, -- Erin Misthoof
+34460, -- Kavina Grovesong
+34465, -- Velanaa
+34466, -- Anthar Forgemender
+34468, -- Noozle Whizzlestick
+34469, -- Melador Valestrider
+34470, -- Saamul
+34473, -- Brienna Nightfell
+34474, -- Serissa Grimdabbler
+34628, -- Concentrated Darkness
+34630, -- Concentrated Light
+34660, -- Anub'arak (Spike)
+36549, -- Beasts Combat Stalker
+36672, -- Coldflame
+36855, -- Lady Deathwhisper
+36968, -- Kor'kron Axethrower
+36969, -- Skybreaker Rifleman
+36978, -- Skybreaker Mortar Soldier
+36980, -- Ice Tomb
+36982, -- Kor'kron Rocketeer
+37116, -- Skybreaker Sorcerer
+37117, -- Kor'kron Battle-Mage
+38008, -- Blood Orb Controller
+38332, -- Ball of Flame
+38451, -- Ball of Inferno Flame
+38454 -- Kinetic Bomb
+);
diff --git a/src/server/game/AI/CoreAI/CombatAI.cpp b/src/server/game/AI/CoreAI/CombatAI.cpp
index 16c161dbd7a..b20cf471b0c 100644
--- a/src/server/game/AI/CoreAI/CombatAI.cpp
+++ b/src/server/game/AI/CoreAI/CombatAI.cpp
@@ -43,10 +43,7 @@ int32 AggressorAI::Permissible(Creature const* creature)
void AggressorAI::UpdateAI(uint32 /*diff*/)
{
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
+ UpdateVictim();
}
/////////////////
@@ -107,8 +104,6 @@ void CombatAI::UpdateAI(uint32 diff)
if (AISpellInfoType const* info = GetAISpellInfo(spellId, me->GetMap()->GetDifficultyID()))
_events.ScheduleEvent(spellId, info->cooldown, info->cooldown * 2);
}
- else
- DoMeleeAttackIfReady();
}
void CombatAI::SpellInterrupted(uint32 spellId, uint32 unTimeMs)
@@ -202,6 +197,7 @@ TurretAI::TurretAI(Creature* creature, uint32 scriptId) : CreatureAI(creature, s
_minimumRange = spellInfo ? spellInfo->GetMinRange(false) : 0;
creature->m_CombatDistance = spellInfo ? spellInfo->GetMaxRange(false) : 0;
creature->m_SightDistance = creature->m_CombatDistance;
+ creature->SetCanMelee(false);
}
bool TurretAI::CanAIAttack(Unit const* who) const
@@ -235,6 +231,7 @@ VehicleAI::VehicleAI(Creature* creature, uint32 scriptId) : CreatureAI(creature,
LoadConditions();
_dismiss = false;
_dismissTimer = VEHICLE_DISMISS_TIME;
+ me->SetCanMelee(false);
}
// NOTE: VehicleAI::UpdateAI runs even while the vehicle is mounted
diff --git a/src/server/game/AI/CoreAI/GuardAI.cpp b/src/server/game/AI/CoreAI/GuardAI.cpp
index 5d6b62e83a9..21511c1f2c0 100644
--- a/src/server/game/AI/CoreAI/GuardAI.cpp
+++ b/src/server/game/AI/CoreAI/GuardAI.cpp
@@ -31,10 +31,7 @@ int32 GuardAI::Permissible(Creature const* creature)
void GuardAI::UpdateAI(uint32 /*diff*/)
{
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
+ UpdateVictim();
}
bool GuardAI::CanSeeAlways(WorldObject const* obj)
diff --git a/src/server/game/AI/CoreAI/PassiveAI.cpp b/src/server/game/AI/CoreAI/PassiveAI.cpp
index 8bae96a6092..82904e5f52f 100644
--- a/src/server/game/AI/CoreAI/PassiveAI.cpp
+++ b/src/server/game/AI/CoreAI/PassiveAI.cpp
@@ -22,6 +22,7 @@
PassiveAI::PassiveAI(Creature* c, uint32 scriptId) : CreatureAI(c, scriptId)
{
me->SetReactState(REACT_PASSIVE);
+ me->SetCanMelee(false);
}
PossessedAI::PossessedAI(Creature* c, uint32 scriptId) : CreatureAI(c, scriptId)
@@ -32,6 +33,7 @@ PossessedAI::PossessedAI(Creature* c, uint32 scriptId) : CreatureAI(c, scriptId)
NullCreatureAI::NullCreatureAI(Creature* c, uint32 scriptId) : CreatureAI(c, scriptId)
{
me->SetReactState(REACT_PASSIVE);
+ me->SetCanMelee(false);
}
int32 NullCreatureAI::Permissible(Creature const* creature)
@@ -62,8 +64,6 @@ void PossessedAI::UpdateAI(uint32 /*diff*/)
{
if (!me->IsValidAttackTarget(me->GetVictim()))
me->AttackStop();
- else
- DoMeleeAttackIfReady();
}
}
diff --git a/src/server/game/AI/CoreAI/PetAI.cpp b/src/server/game/AI/CoreAI/PetAI.cpp
index 42666d2a1e2..16e9356f646 100644
--- a/src/server/game/AI/CoreAI/PetAI.cpp
+++ b/src/server/game/AI/CoreAI/PetAI.cpp
@@ -80,15 +80,6 @@ void PetAI::UpdateAI(uint32 diff)
StopAttack();
return;
}
-
- // Check before attacking to prevent pets from leaving stay position
- if (me->GetCharmInfo()->HasCommandState(COMMAND_STAY))
- {
- if (me->GetCharmInfo()->IsCommandAttack() || (me->GetCharmInfo()->IsAtStay() && me->IsWithinMeleeRange(me->GetVictim())))
- DoMeleeAttackIfReady();
- }
- else
- DoMeleeAttackIfReady();
}
else
{
diff --git a/src/server/game/AI/CoreAI/ReactorAI.cpp b/src/server/game/AI/CoreAI/ReactorAI.cpp
index 8b15bed1908..a22876a067b 100644
--- a/src/server/game/AI/CoreAI/ReactorAI.cpp
+++ b/src/server/game/AI/CoreAI/ReactorAI.cpp
@@ -28,8 +28,5 @@ int32 ReactorAI::Permissible(Creature const* creature)
void ReactorAI::UpdateAI(uint32 /*diff*/)
{
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
+ UpdateVictim();
}
diff --git a/src/server/game/AI/CoreAI/UnitAI.cpp b/src/server/game/AI/CoreAI/UnitAI.cpp
index c8d2f61e77b..1470ca07bd9 100644
--- a/src/server/game/AI/CoreAI/UnitAI.cpp
+++ b/src/server/game/AI/CoreAI/UnitAI.cpp
@@ -58,41 +58,6 @@ void UnitAI::AttackStartCaster(Unit* victim, float dist)
me->GetMotionMaster()->MoveChase(victim, dist);
}
-void UnitAI::DoMeleeAttackIfReady()
-{
- if (me->IsCreature() && !me->ToCreature()->CanMelee())
- return;
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- {
- Spell* channeledSpell = me->GetCurrentSpell(CURRENT_CHANNELED_SPELL);
- if (!channeledSpell || !channeledSpell->GetSpellInfo()->HasAttribute(SPELL_ATTR5_ALLOW_ACTIONS_DURING_CHANNEL))
- return;
- }
-
- Unit* victim = me->GetVictim();
-
- if (!me->IsWithinMeleeRange(victim))
- return;
-
- // Check that the victim is in front of the unit
- if (!me->HasInArc(2 * float(M_PI) / 3, victim))
- return;
-
- //Make sure our attack is ready and we aren't currently casting before checking distance
- if (me->isAttackReady())
- {
- me->AttackerStateUpdate(victim);
- me->resetAttackTimer();
- }
-
- if (me->haveOffhandWeapon() && me->isAttackReady(OFF_ATTACK))
- {
- me->AttackerStateUpdate(victim, OFF_ATTACK);
- me->resetAttackTimer(OFF_ATTACK);
- }
-}
-
bool UnitAI::DoSpellAttackIfReady(uint32 spellId)
{
if (me->HasUnitState(UNIT_STATE_CASTING) || !me->isAttackReady())
diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h
index fed0cae7203..1ae52ff00a7 100644
--- a/src/server/game/AI/CoreAI/UnitAI.h
+++ b/src/server/game/AI/CoreAI/UnitAI.h
@@ -160,7 +160,6 @@ class TC_GAME_API UnitAI
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const& args = {});
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const& args = {}) { return DoCast(nullptr, spellId, args); }
- void DoMeleeAttackIfReady();
bool DoSpellAttackIfReady(uint32 spellId);
static std::unordered_map<std::pair<uint32, Difficulty>, AISpellInfoType> AISpellInfo;
diff --git a/src/server/game/AI/PlayerAI/PlayerAI.cpp b/src/server/game/AI/PlayerAI/PlayerAI.cpp
index 2f104c40eac..bfa4ea84f96 100644
--- a/src/server/game/AI/PlayerAI/PlayerAI.cpp
+++ b/src/server/game/AI/PlayerAI/PlayerAI.cpp
@@ -591,8 +591,6 @@ void PlayerAI::DoAutoAttackIfReady()
{
if (IsRangedAttacker())
DoRangedAttackIfReady();
- else
- DoMeleeAttackIfReady();
}
void PlayerAI::CancelAllShapeshifts()
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
index 00c15509f5a..82c8dac896f 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
@@ -149,10 +149,7 @@ void ScriptedAI::AttackStart(Unit* who)
void ScriptedAI::UpdateAI(uint32 /*diff*/)
{
// Check if we have a current target
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
+ UpdateVictim();
}
void ScriptedAI::DoStartMovement(Unit* victim, float distance, float angle)
@@ -629,8 +626,6 @@ void BossAI::UpdateAI(uint32 diff)
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
bool BossAI::CanAIAttack(Unit const* target) const
@@ -716,6 +711,4 @@ void WorldBossAI::UpdateAI(uint32 diff)
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
diff --git a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
index ca6290d1379..19d11c4b957 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
@@ -248,10 +248,7 @@ void EscortAI::UpdateAI(uint32 diff)
void EscortAI::UpdateEscortAI(uint32 /*diff*/)
{
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
+ UpdateVictim();
}
void EscortAI::AddWaypoint(uint32 id, float x, float y, float z, bool run)
diff --git a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
index f12b7aaf9b6..c0a5aa3350a 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
@@ -147,10 +147,7 @@ void FollowerAI::UpdateAI(uint32 uiDiff)
void FollowerAI::UpdateFollowerAI(uint32 /*uiDiff*/)
{
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
+ UpdateVictim();
}
void FollowerAI::StartFollow(Player* player, uint32 factionForFollower, uint32 quest)
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index 370e2d1a9f8..9177443d57f 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -283,21 +283,13 @@ void SmartAI::UpdateAI(uint32 diff)
CheckConditions(diff);
- bool hasVictim = UpdateVictim();
+ UpdateVictim();
GetScript()->OnUpdate(diff);
UpdatePath(diff);
UpdateFollow(diff);
UpdateDespawn(diff);
-
- if (!IsAIControlled())
- return;
-
- if (!hasVictim)
- return;
-
- DoMeleeAttackIfReady();
}
bool SmartAI::IsEscortInvokerInRange()
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index f690c8e7727..86a31159b61 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -852,6 +852,8 @@ void Creature::Update(uint32 diff)
Unit::AIUpdateTick(diff);
+ DoMeleeAttackIfReady();
+
// creature can be dead after UpdateAI call
// CORPSE/DEAD state will processed at next tick (in other case death timer will be updated unexpectedly)
if (!IsAlive())
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 642d377d7dd..908f2c56863 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -235,8 +235,6 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this)
m_deathTimer = 0;
m_deathExpireTime = 0;
- m_swingErrorMsg = 0;
-
for (uint8 j = 0; j < PLAYER_MAX_BATTLEGROUND_QUEUES; ++j)
{
m_bgBattlegroundQueueID[j].bgQueueTypeId = BATTLEGROUND_QUEUE_NONE;
@@ -1011,78 +1009,7 @@ void Player::Update(uint32 p_time)
m_achievementMgr->UpdateTimedCriteria(Milliseconds(p_time));
- if (HasUnitState(UNIT_STATE_MELEE_ATTACKING) && !HasUnitState(UNIT_STATE_CASTING | UNIT_STATE_CHARGING))
- {
- if (Unit* victim = GetVictim())
- {
- // default combat reach 10
- /// @todo add weapon, skill check
-
- if (isAttackReady(BASE_ATTACK))
- {
- if (!IsWithinMeleeRange(victim))
- {
- setAttackTimer(BASE_ATTACK, 100);
- if (m_swingErrorMsg != 1) // send single time (client auto repeat)
- {
- SendAttackSwingNotInRange();
- m_swingErrorMsg = 1;
- }
- }
- //120 degrees of radiant range, if player is not in boundary radius
- else if (!IsWithinBoundaryRadius(victim) && !HasInArc(2 * float(M_PI) / 3, victim))
- {
- setAttackTimer(BASE_ATTACK, 100);
- if (m_swingErrorMsg != 2) // send single time (client auto repeat)
- {
- SendAttackSwingBadFacingAttack();
- m_swingErrorMsg = 2;
- }
- }
- else
- {
- m_swingErrorMsg = 0; // reset swing error state
-
- // prevent base and off attack in same time, delay attack at 0.2 sec
- if (haveOffhandWeapon())
- if (getAttackTimer(OFF_ATTACK) < ATTACK_DISPLAY_DELAY)
- setAttackTimer(OFF_ATTACK, ATTACK_DISPLAY_DELAY);
-
- // do attack
- AttackerStateUpdate(victim, BASE_ATTACK);
- resetAttackTimer(BASE_ATTACK);
- }
- }
-
- if (!IsInFeralForm() && haveOffhandWeapon() && isAttackReady(OFF_ATTACK))
- {
- if (!IsWithinMeleeRange(victim))
- setAttackTimer(OFF_ATTACK, 100);
- else if (!IsWithinBoundaryRadius(victim) && !HasInArc(2 * float(M_PI) / 3, victim))
- {
- setAttackTimer(BASE_ATTACK, 100);
- }
- else
- {
- // prevent base and off attack in same time, delay attack at 0.2 sec
- if (getAttackTimer(BASE_ATTACK) < ATTACK_DISPLAY_DELAY)
- setAttackTimer(BASE_ATTACK, ATTACK_DISPLAY_DELAY);
-
- // do attack
- AttackerStateUpdate(victim, OFF_ATTACK);
- resetAttackTimer(OFF_ATTACK);
- }
- }
-
- /*Unit* owner = victim->GetOwner();
- Unit* u = owner ? owner : victim;
- if (u->IsPvP() && (!duel || duel->opponent != u))
- {
- UpdatePvP(true);
- RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags::PvPActive);
- }*/
- }
- }
+ DoMeleeAttackIfReady();
if (HasPlayerFlag(PLAYER_FLAGS_RESTING))
_restMgr->Update(now);
@@ -21308,29 +21235,17 @@ void Player::SavePositionInDB(WorldLocation const& loc, uint16 zoneId, ObjectGui
CharacterDatabase.ExecuteOrAppend(trans, stmt);
}
-void Player::SendAttackSwingCantAttack() const
-{
- SendDirectMessage(WorldPackets::Combat::AttackSwingError(WorldPackets::Combat::AttackSwingError::CantAttack).Write());
-}
-
void Player::SendAttackSwingCancelAttack() const
{
SendDirectMessage(WorldPackets::Combat::CancelCombat().Write());
}
-void Player::SendAttackSwingDeadTarget() const
+void Player::SetAttackSwingError(Optional<AttackSwingErr> err)
{
- SendDirectMessage(WorldPackets::Combat::AttackSwingError(WorldPackets::Combat::AttackSwingError::DeadTarget).Write());
-}
+ if (err && err != m_swingErrorMsg)
+ SendDirectMessage(WorldPackets::Combat::AttackSwingError(*err).Write());
-void Player::SendAttackSwingNotInRange() const
-{
- SendDirectMessage(WorldPackets::Combat::AttackSwingError(WorldPackets::Combat::AttackSwingError::NotInRange).Write());
-}
-
-void Player::SendAttackSwingBadFacingAttack() const
-{
- SendDirectMessage(WorldPackets::Combat::AttackSwingError(WorldPackets::Combat::AttackSwingError::BadFacing).Write());
+ m_swingErrorMsg = err;
}
void Player::SendAutoRepeatCancel(Unit* target)
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index e9be541a0e5..0dda39ea498 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -2126,11 +2126,8 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void DestroyForPlayer(Player* target) const override;
// notifiers
- void SendAttackSwingCantAttack() const;
void SendAttackSwingCancelAttack() const;
- void SendAttackSwingDeadTarget() const;
- void SendAttackSwingNotInRange() const;
- void SendAttackSwingBadFacingAttack() const;
+ void SetAttackSwingError(Optional<AttackSwingErr> err);
void SendAutoRepeatCancel(Unit* target);
void SendExplorationExperience(uint32 Area, uint32 Experience) const;
@@ -3096,7 +3093,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
bool m_canBlock;
bool m_canTitanGrip;
uint32 m_titanGripPenaltySpellId;
- uint8 m_swingErrorMsg;
+ Optional<AttackSwingErr> m_swingErrorMsg;
// Social
PlayerSocial* m_social;
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 368926acc5e..84273e7b8c2 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -407,8 +407,8 @@ Unit::~Unit()
ASSERT(m_appliedAuras.empty());
ASSERT(m_ownedAuras.empty());
ASSERT(m_removedAuras.empty());
- ASSERT(m_gameObj.empty());
ASSERT(m_dynObj.empty());
+ ASSERT(m_gameObj.empty());
ASSERT(m_areaTrigger.empty());
ASSERT(!m_unitMovedByMe || (m_unitMovedByMe == this));
ASSERT(!m_playerMovingMe || (m_playerMovingMe == this));
@@ -456,10 +456,10 @@ void Unit::Update(uint32 p_time)
{
if (uint32 base_att = getAttackTimer(BASE_ATTACK))
setAttackTimer(BASE_ATTACK, (p_time >= base_att ? 0 : base_att - p_time));
- if (uint32 ranged_att = getAttackTimer(RANGED_ATTACK))
- setAttackTimer(RANGED_ATTACK, (p_time >= ranged_att ? 0 : ranged_att - p_time));
if (uint32 off_att = getAttackTimer(OFF_ATTACK))
setAttackTimer(OFF_ATTACK, (p_time >= off_att ? 0 : off_att - p_time));
+ if (uint32 ranged_att = getAttackTimer(RANGED_ATTACK))
+ setAttackTimer(RANGED_ATTACK, (p_time >= ranged_att ? 0 : ranged_att - p_time));
}
// update abilities available only for fraction of time
@@ -2087,12 +2087,15 @@ void Unit::HandleEmoteCommand(Emote emoteId, Player* target /*=nullptr*/, Trinit
}
}
-void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extra)
+void Unit::DoMeleeAttackIfReady()
{
- if (HasUnitFlag(UNIT_FLAG_PACIFIED))
+ if (!HasUnitState(UNIT_STATE_MELEE_ATTACKING))
return;
- if (HasUnitState(UNIT_STATE_CANNOT_AUTOATTACK) && !extra)
+ if (HasUnitState(UNIT_STATE_CHARGING))
+ return;
+
+ if (IsCreature() && !ToCreature()->CanMelee())
return;
if (HasUnitState(UNIT_STATE_CASTING))
@@ -2102,6 +2105,69 @@ void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extr
return;
}
+ Unit* victim = GetVictim();
+ if (!victim)
+ return;
+
+ auto getAutoAttackError = [&]() -> Optional<AttackSwingErr>
+ {
+ if (!IsWithinMeleeRange(victim))
+ return AttackSwingErr::NotInRange;
+
+ //120 degrees of radiant range, if player is not in boundary radius
+ if (!IsWithinBoundaryRadius(victim) && !HasInArc(2 * float(M_PI) / 3, victim))
+ return AttackSwingErr::BadFacing;
+
+ return {};
+ };
+
+ if (isAttackReady(BASE_ATTACK))
+ {
+ Optional<AttackSwingErr> autoAttackError = getAutoAttackError();
+ if (!autoAttackError)
+ {
+ // prevent base and off attack in same time, delay attack at 0.2 sec
+ if (haveOffhandWeapon())
+ if (getAttackTimer(OFF_ATTACK) < ATTACK_DISPLAY_DELAY)
+ setAttackTimer(OFF_ATTACK, ATTACK_DISPLAY_DELAY);
+
+ // do attack
+ AttackerStateUpdate(victim, BASE_ATTACK);
+ resetAttackTimer(BASE_ATTACK);
+ }
+ else
+ setAttackTimer(BASE_ATTACK, 100);
+
+ if (Player* attackerPlayer = ToPlayer())
+ attackerPlayer->SetAttackSwingError(autoAttackError);
+ }
+
+ if (!IsInFeralForm() && haveOffhandWeapon() && isAttackReady(OFF_ATTACK))
+ {
+ Optional<AttackSwingErr> autoAttackError = getAutoAttackError();
+ if (!autoAttackError)
+ {
+ // prevent base and off attack in same time, delay attack at 0.2 sec
+ if (getAttackTimer(BASE_ATTACK) < ATTACK_DISPLAY_DELAY)
+ setAttackTimer(BASE_ATTACK, ATTACK_DISPLAY_DELAY);
+
+ // do attack
+ AttackerStateUpdate(victim, OFF_ATTACK);
+ resetAttackTimer(OFF_ATTACK);
+ }
+ else
+ setAttackTimer(OFF_ATTACK, 100);
+ }
+}
+
+void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extra)
+{
+ if (HasUnitFlag(UNIT_FLAG_PACIFIED))
+ return;
+
+ if (HasUnitState(UNIT_STATE_CANNOT_AUTOATTACK) && !extra)
+ return;
+
if (HasAuraType(SPELL_AURA_DISABLE_ATTACKING_EXCEPT_ABILITIES))
return;
@@ -5070,7 +5136,7 @@ void Unit::_RegisterDynObject(DynamicObject* dynObj)
void Unit::_UnregisterDynObject(DynamicObject* dynObj)
{
- m_dynObj.remove(dynObj);
+ std::erase(m_dynObj, dynObj);
if (GetTypeId() == TYPEID_UNIT && IsAIEnabled())
ToCreature()->AI()->JustUnregisteredDynObject(dynObj);
}
@@ -5093,8 +5159,6 @@ std::vector<DynamicObject*> Unit::GetDynObjects(uint32 spellId) const
void Unit::RemoveDynObject(uint32 spellId)
{
- if (m_dynObj.empty())
- return;
for (DynObjectList::iterator i = m_dynObj.begin(); i != m_dynObj.end();)
{
DynamicObject* dynObj = *i;
@@ -5111,7 +5175,7 @@ void Unit::RemoveDynObject(uint32 spellId)
void Unit::RemoveAllDynObjects()
{
while (!m_dynObj.empty())
- m_dynObj.front()->Remove();
+ m_dynObj.back()->Remove();
}
GameObject* Unit::GetGameObject(uint32 spellId) const
@@ -5598,14 +5662,8 @@ bool Unit::Attack(Unit* victim, bool meleeAttack)
Creature* creature = ToCreature();
// creatures cannot attack while evading
- if (creature)
- {
- if (creature->IsInEvadeMode())
- return false;
-
- if (!creature->CanMelee())
- meleeAttack = false;
- }
+ if (creature && creature->IsInEvadeMode())
+ return false;
// nobody can attack GM in GM-mode
if (victim->GetTypeId() == TYPEID_PLAYER)
@@ -11022,7 +11080,6 @@ void Unit::SetControlled(bool apply, UnitState state)
case UNIT_STATE_CONFUSED:
if (!HasUnitState(UNIT_STATE_STUNNED))
{
- ClearUnitState(UNIT_STATE_MELEE_ATTACKING);
SendMeleeAttackStop();
// SendAutoRepeatCancel ?
SetConfused(true);
@@ -11031,7 +11088,6 @@ void Unit::SetControlled(bool apply, UnitState state)
case UNIT_STATE_FLEEING:
if (!HasUnitState(UNIT_STATE_STUNNED | UNIT_STATE_CONFUSED))
{
- ClearUnitState(UNIT_STATE_MELEE_ATTACKING);
SendMeleeAttackStop();
// SendAutoRepeatCancel ?
SetFeared(true);
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 08beac15956..70124a92542 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -1053,7 +1053,8 @@ class TC_GAME_API Unit : public WorldObject
void TriggerAurasProcOnEvent(ProcEventInfo& eventInfo, AuraApplicationProcContainer& procAuras);
void HandleEmoteCommand(Emote emoteId, Player* target = nullptr, Trinity::IteratorPair<int32 const*> spellVisualKitIds = {}, int32 sequenceVariation = 0);
- void AttackerStateUpdate (Unit* victim, WeaponAttackType attType = BASE_ATTACK, bool extra = false);
+ void DoMeleeAttackIfReady();
+ void AttackerStateUpdate(Unit* victim, WeaponAttackType attType = BASE_ATTACK, bool extra = false);
void CalculateMeleeDamage(Unit* victim, CalcDamageInfo* damageInfo, WeaponAttackType attackType = BASE_ATTACK);
void DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss);
@@ -1957,7 +1958,7 @@ class TC_GAME_API Unit : public WorldObject
int32 m_procDeep; // tracked for proc system correctness (what spells should proc what)
int32 m_procChainLength; // tracked to protect against infinite proc loops (hard limit, will disallow procs even if they should happen)
- typedef std::list<DynamicObject*> DynObjectList;
+ typedef std::vector<DynamicObject*> DynObjectList;
DynObjectList m_dynObj;
typedef std::list<GameObject*> GameObjectList;
diff --git a/src/server/game/Entities/Unit/UnitDefines.h b/src/server/game/Entities/Unit/UnitDefines.h
index 92d23e7a8a9..348a9f6d611 100644
--- a/src/server/game/Entities/Unit/UnitDefines.h
+++ b/src/server/game/Entities/Unit/UnitDefines.h
@@ -473,6 +473,14 @@ enum HitInfo
HITINFO_FAKE_DAMAGE = 0x01000000 // enables damage animation even if no damage done, set only if no damage
};
+enum class AttackSwingErr : uint8
+{
+ NotInRange = 0,
+ BadFacing = 1,
+ CantAttack = 2,
+ DeadTarget = 3
+};
+
#define MAX_DECLINED_NAME_CASES 5
struct TC_GAME_API DeclinedName
diff --git a/src/server/game/Server/Packets/CombatPackets.cpp b/src/server/game/Server/Packets/CombatPackets.cpp
index d662128556f..33dd2c9a64a 100644
--- a/src/server/game/Server/Packets/CombatPackets.cpp
+++ b/src/server/game/Server/Packets/CombatPackets.cpp
@@ -96,7 +96,7 @@ WorldPacket const* WorldPackets::Combat::AIReaction::Write()
WorldPacket const* WorldPackets::Combat::AttackSwingError::Write()
{
- _worldPacket.WriteBits(Reason, 3);
+ _worldPacket.WriteBits(AsUnderlyingType(Reason), 3);
_worldPacket.FlushBits();
return &_worldPacket;
}
diff --git a/src/server/game/Server/Packets/CombatPackets.h b/src/server/game/Server/Packets/CombatPackets.h
index 4aaa57ceba9..27dc7ec44ad 100644
--- a/src/server/game/Server/Packets/CombatPackets.h
+++ b/src/server/game/Server/Packets/CombatPackets.h
@@ -20,6 +20,7 @@
#include "Packet.h"
#include "ObjectGuid.h"
+#include "UnitDefines.h"
class Unit;
enum Powers : int8;
@@ -41,20 +42,12 @@ namespace WorldPackets
class AttackSwingError final : public ServerPacket
{
public:
- enum AttackSwingErr : uint8
- {
- NotInRange = 0,
- BadFacing = 1,
- CantAttack = 2,
- DeadTarget = 3
- };
-
AttackSwingError() : ServerPacket(SMSG_ATTACK_SWING_ERROR, 4) { }
AttackSwingError(AttackSwingErr reason) : ServerPacket(SMSG_ATTACK_SWING_ERROR, 4), Reason(reason) { }
WorldPacket const* Write() override;
- AttackSwingErr Reason = CantAttack;
+ AttackSwingErr Reason = AttackSwingErr::CantAttack;
};
class AttackStop final : public ClientPacket
diff --git a/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp b/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp
index 94df54aeaf5..9e574dbdeeb 100644
--- a/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp
+++ b/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp
@@ -434,9 +434,7 @@ struct boss_garothi_worldbreaker : public BossAI
return;
}
- if (me->GetVictim() && me->GetVictim()->IsWithinMeleeRange(me))
- DoMeleeAttackIfReady();
- else
+ if (!me->GetVictim() || !me->GetVictim()->IsWithinMeleeRange(me))
DoSpellAttackIfReady(SPELL_CARNAGE);
}
private:
diff --git a/src/server/scripts/BrokenIsles/TrialOfValor/boss_guarm.cpp b/src/server/scripts/BrokenIsles/TrialOfValor/boss_guarm.cpp
index 37129529759..2d84a644f07 100644
--- a/src/server/scripts/BrokenIsles/TrialOfValor/boss_guarm.cpp
+++ b/src/server/scripts/BrokenIsles/TrialOfValor/boss_guarm.cpp
@@ -291,8 +291,6 @@ struct boss_guarm : public BossAI
default:
break;
}
-
- DoMeleeAttackIfReady();
}
void WaypointPathEnded(uint32 /*nodeId*/, uint32 pathId) override
diff --git a/src/server/scripts/BrokenIsles/zone_mardum.cpp b/src/server/scripts/BrokenIsles/zone_mardum.cpp
index d35adf8a09a..fb88ff8bf2c 100644
--- a/src/server/scripts/BrokenIsles/zone_mardum.cpp
+++ b/src/server/scripts/BrokenIsles/zone_mardum.cpp
@@ -620,8 +620,6 @@ struct npc_illidari_fighting_invasion_begins : public ScriptedAI
default:
break;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1110,8 +1108,6 @@ struct npc_inquisitor_baleful_molten_shore : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/DragonIsles/AzureVault/boss_leymor.cpp b/src/server/scripts/DragonIsles/AzureVault/boss_leymor.cpp
index 903c57b830d..b23f9795825 100644
--- a/src/server/scripts/DragonIsles/AzureVault/boss_leymor.cpp
+++ b/src/server/scripts/DragonIsles/AzureVault/boss_leymor.cpp
@@ -205,8 +205,6 @@ struct boss_leymor : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -284,8 +282,6 @@ struct npc_arcane_tender : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
EventMap _events;
diff --git a/src/server/scripts/DragonIsles/AzureVault/boss_telash_greywing.cpp b/src/server/scripts/DragonIsles/AzureVault/boss_telash_greywing.cpp
index a78b22617b1..1e9c8a72e0a 100644
--- a/src/server/scripts/DragonIsles/AzureVault/boss_telash_greywing.cpp
+++ b/src/server/scripts/DragonIsles/AzureVault/boss_telash_greywing.cpp
@@ -227,7 +227,6 @@ struct boss_telash_greywing : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
void DoAction(int32 param) override
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp
index b189434b495..19837a66ba9 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/alterac_valley.cpp
@@ -124,8 +124,6 @@ struct npc_av_marshal_or_warmaster : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
index 7aa746954dd..38987c82428 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp
@@ -169,8 +169,6 @@ struct boss_balinda : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp
index fdf3663b396..f7ec0bb3da9 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_drekthar.cpp
@@ -125,8 +125,6 @@ struct boss_drekthar : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp
index a693a980846..741387ec033 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_galvangar.cpp
@@ -126,8 +126,6 @@ struct boss_galvangar : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp
index fa811e709c3..83c1fcc813e 100644
--- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp
+++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_vanndar.cpp
@@ -85,10 +85,7 @@ struct boss_vanndar : public ScriptedAI
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp b/src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp
index a69a0eb6bbf..1db8fdf370a 100644
--- a/src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp
+++ b/src/server/scripts/EasternKingdoms/BaradinHold/boss_alizabal.cpp
@@ -245,8 +245,6 @@ class boss_alizabal : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BaradinHold/boss_occuthar.cpp b/src/server/scripts/EasternKingdoms/BaradinHold/boss_occuthar.cpp
index 2e95e41e96f..1123128e158 100644
--- a/src/server/scripts/EasternKingdoms/BaradinHold/boss_occuthar.cpp
+++ b/src/server/scripts/EasternKingdoms/BaradinHold/boss_occuthar.cpp
@@ -140,8 +140,6 @@ class boss_occuthar : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp b/src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp
index 1c42ea4184f..83fda21f9d9 100644
--- a/src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp
+++ b/src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp
@@ -111,8 +111,6 @@ class boss_pit_lord_argaloth : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp
index 40d5d9d5cee..f5373e7b413 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp
@@ -202,8 +202,6 @@ public: npc_twilight_flame_caller() : CreatureScript("npc_twilight_flame_caller"
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -313,8 +311,6 @@ class npc_twilight_torturer : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -414,8 +410,6 @@ class npc_twilight_sadist : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -489,7 +483,6 @@ class npc_mad_prisoner : public CreatureScript
break;
}
}
- DoMeleeAttackIfReady();
}
private:
@@ -559,8 +552,6 @@ class npc_crazed_mage : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -653,8 +644,6 @@ class npc_raz_the_crazed : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_ascendant_lord_obsidius.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_ascendant_lord_obsidius.cpp
index 2984565cf58..38a4eb6f515 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_ascendant_lord_obsidius.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_ascendant_lord_obsidius.cpp
@@ -95,8 +95,6 @@ class boss_ascendant_lord_obsidius : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_beauty.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_beauty.cpp
index f2ed2d1411d..40364df63f2 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_beauty.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_beauty.cpp
@@ -102,8 +102,6 @@ class boss_beauty : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla.cpp
index 771125d57c0..88ce3101be9 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla.cpp
@@ -109,8 +109,6 @@ class boss_corla : public CreatureScript
}
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_karsh_steelbender.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_karsh_steelbender.cpp
index 25ed1ee9c09..22a7caef73f 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_karsh_steelbender.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_karsh_steelbender.cpp
@@ -97,8 +97,6 @@ class boss_karsh_steelbender : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp
index ec5ccac6bff..2915f04a156 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp
@@ -122,8 +122,6 @@ class boss_romogg_bonecrusher : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp
index 23ae53ad34f..8b337da6ec0 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp
@@ -425,8 +425,6 @@ public:
DoCastVictim(SPELL_MIGHTYBLOW);
MightyBlow_Timer = 10000;
} else MightyBlow_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp
index e6b303c9e21..bdf31e4b9b9 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp
@@ -76,8 +76,6 @@ class boss_ambassador_flamelash : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp
index c2bb6d3c599..618a73e744c 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp
@@ -279,8 +279,6 @@ struct boss_coren_direbrew : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -326,10 +324,7 @@ struct npc_coren_direbrew_sisters : public ScriptedAI
void UpdateAI(uint32 diff) override
{
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
index f2a381924f4..effdb58230e 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
@@ -105,8 +105,6 @@ class boss_emperor_dagran_thaurissan : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp
index ffb6229f919..591a637e2ee 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp
@@ -117,8 +117,6 @@ class boss_general_angerforge : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
index 3037205af3d..4c575400b1b 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
@@ -86,8 +86,6 @@ class boss_high_interrogator_gerstahn : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp
index f66ff800698..3af8b1ae887 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp
@@ -86,8 +86,6 @@ class boss_magmus : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp
index 2933b5a3997..4d2c526af97 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp
@@ -225,8 +225,6 @@ class boss_doomrel : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
bool OnGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp
index 5a919367ed1..5f1801f747f 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp
@@ -93,7 +93,6 @@ struct boss_drakkisath : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp
index 26da4e9054d..015f00eb2fe 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp
@@ -95,7 +95,6 @@ struct boss_gizrul_the_slavener : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp
index ad3f9a32ddc..38a2c618636 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp
@@ -168,7 +168,6 @@ struct boss_gyth : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp
index e53093eb601..f085837864e 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp
@@ -99,7 +99,6 @@ struct boss_halycon : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
private:
bool Summoned;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp
index 05f0502ec42..3bbe365186d 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp
@@ -81,7 +81,6 @@ struct boss_highlord_omokk : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp
index 8484b0e7e04..26a952f570c 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp
@@ -124,8 +124,6 @@ struct boss_lord_valthalak : public BossAI
frenzy15 = true;
}
}
-
- DoMeleeAttackIfReady();
}
private:
bool frenzy40;
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp
index 787174d54d9..c77c3c66045 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp
@@ -86,7 +86,6 @@ struct boss_mother_smolderweb : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp
index 5eb1eedb157..b201320dd3f 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp
@@ -126,7 +126,6 @@ struct boss_overlord_wyrmthalak : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
index 826cc63dfaf..c5994387a79 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
@@ -273,7 +273,6 @@ struct boss_pyroguard_emberseer : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
@@ -344,8 +343,6 @@ struct npc_blackhand_incarcerator : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp
index 2a9e6109781..787b9884528 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp
@@ -81,7 +81,6 @@ struct quartermaster_zigris : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp
index 905140b967e..73d84d4aa2d 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp
@@ -438,7 +438,6 @@ struct boss_rend_blackhand : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
index d4f2bd9423b..02fddfecb48 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
@@ -88,7 +88,6 @@ struct boss_shadow_hunter_voshgajin : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp
index 4c0cbab7061..b3e87bb4766 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp
@@ -97,7 +97,6 @@ public:
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp
index 5315c022b15..86e97e67547 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp
@@ -90,7 +90,6 @@ struct boss_urok_doomhowl : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp
index 0228cf81485..961c858bd32 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp
@@ -107,7 +107,6 @@ struct boss_warmaster_voone : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp
index 4756ad281b5..38c397db1f4 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp
@@ -119,8 +119,6 @@ struct boss_broodlord : public BossAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp
index 8cc58f8dba2..d11b3be9262 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp
@@ -171,9 +171,7 @@ struct boss_chromaggus : public BossAI
Breath1_Spell = SPELL_FROSTBURN;
Breath2_Spell = SPELL_IGNITEFLESH;
break;
- };
-
- EnterEvadeMode();
+ }
}
void Initialize()
@@ -275,8 +273,6 @@ struct boss_chromaggus : public BossAI
DoCast(me, SPELL_ENRAGE);
Enraged = true;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp
index 3b62dc50691..8c8d9c3455f 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp
@@ -77,8 +77,6 @@ struct boss_ebonroc : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp
index d74574de642..0aff94af4f6 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp
@@ -79,8 +79,6 @@ struct boss_firemaw : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp
index 33061d520b5..8fbf62c38e3 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp
@@ -85,8 +85,6 @@ struct boss_flamegor : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
index 0084e493e50..865c288fab0 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
@@ -568,8 +568,6 @@ struct boss_nefarian : public BossAI
Phase3 = true;
Talk(SAY_RAISE_SKELETONS);
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp
index c0c5c49cd8a..dd953ab2465 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp
@@ -152,7 +152,6 @@ struct boss_razorgore : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
index 1822ed1ff56..ee9e3cb1d07 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
@@ -213,8 +213,6 @@ struct boss_vaelastrasz : public BossAI
Talk(SAY_HALFLIFE);
HasYelled = true;
}
-
- DoMeleeAttackIfReady();
}
bool OnGossipSelect(Player* player, uint32 menuId, uint32 gossipListId) override
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp
index b57ffcc1072..ad77ea3da8a 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp
@@ -107,8 +107,6 @@ struct boss_baron_geddon : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp
index 8df147209ec..557b1100ae5 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp
@@ -85,8 +85,6 @@ struct boss_garr : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -145,10 +143,7 @@ struct npc_firesworn : public ScriptedAI
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp
index f55df0eb24e..6b9952c87d0 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp
@@ -89,8 +89,6 @@ struct boss_gehennas : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp
index febe22cd777..4ac429ce704 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp
@@ -107,8 +107,6 @@ struct boss_golemagg : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -154,10 +152,7 @@ struct npc_core_rager : public ScriptedAI
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp
index f1a3699db70..a0fe27bc40f 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp
@@ -87,8 +87,6 @@ struct boss_lucifron : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp
index 9d6a0bab5be..09e59435d68 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp
@@ -101,8 +101,6 @@ struct boss_magmadar : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp
index fe41d2608ca..2ba6f532b64 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp
@@ -145,8 +145,6 @@ struct boss_majordomo : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
else
{
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp
index 5ba5854d984..db5539a6fc0 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp
@@ -292,8 +292,6 @@ struct boss_ragnaros : public BossAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
}
@@ -317,14 +315,6 @@ struct npc_son_of_flame : public ScriptedAI //didnt work correctly in EAI for me
instance->SetData(DATA_RAGNAROS_ADDS, 1);
}
- void UpdateAI(uint32 /*diff*/) override
- {
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
-
private:
InstanceScript* instance;
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp
index c87e3661a12..c88342baf6b 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp
@@ -104,8 +104,6 @@ struct boss_shazzrah : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp
index 667a6af0144..c319245ca0a 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp
@@ -119,8 +119,6 @@ struct boss_sulfuron : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -184,8 +182,6 @@ struct npc_flamewaker_priest : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
index 3b501ca29d1..1b220d3ddc2 100644
--- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
+++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp
@@ -488,10 +488,7 @@ public:
} else uiTimer -= uiDiff;
}
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
+ UpdateVictim();
}
void JustSummoned(Creature* summon) override
@@ -530,14 +527,6 @@ public:
creature->AI()->SetData(2, 1);
}
- void UpdateAI(uint32 /*diff*/) override
- {
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
-
void JustDied(Unit* /*killer*/) override
{
if (!me->IsSummon())
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
index a1848abb7c8..5d1145bdfbc 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp
@@ -116,8 +116,6 @@ public:
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
index 89616f3566a..4a71fd3c4a1 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
@@ -219,10 +219,7 @@ public:
if (!UpdateVictim() && _phase != PHASE_NONE)
return;
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
void SpellHit(WorldObject* /*caster*/, SpellInfo const* spellInfo) override
@@ -370,10 +367,7 @@ public:
if (!UpdateVictim() || _phase == PHASE_MOUNTED)
return;
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
index 98b3b7452fe..3deb60aa30a 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp
@@ -287,6 +287,7 @@ public:
if (Vanish_Timer <= diff)
{
DoCast(me, SPELL_VANISH);
+ me->SetCanMelee(false);
InVanish = true;
Vanish_Timer = 30000;
Wait_Timer = 5000;
@@ -316,11 +317,9 @@ public:
target->CastSpell(target, SPELL_GARROTE, true);
InVanish = false;
+ me->SetCanMelee(true);
} else Wait_Timer -= diff;
}
-
- if (!InVanish)
- DoMeleeAttackIfReady();
}
};
};
@@ -371,8 +370,6 @@ struct boss_moroes_guestAI : public ScriptedAI
{
if (instance->GetBossState(DATA_MOROES) != IN_PROGRESS)
EnterEvadeMode();
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
index 2ad49885338..307d00f534b 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp
@@ -345,8 +345,6 @@ public:
}
} else PhaseTimer -= diff;
}
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
index 1f0044a137c..830580eaaf1 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp
@@ -370,8 +370,6 @@ public:
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
index ec383112be7..08844a5ac48 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp
@@ -550,8 +550,6 @@ public:
EnfeebleResetTimer = 9000;
} else EnfeebleTimer -= diff;
}
-
- DoMeleeAttackIfReady();
}
void Cleanup(Creature* infernal, InfernalPoint *point)
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
index b2e71646759..3939f8d4505 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp
@@ -173,6 +173,7 @@ public:
void Reset() override
{
Initialize();
+ me->SetCanMelee(true);
// Not in progress
instance->SetBossState(DATA_ARAN, NOT_STARTED);
@@ -488,8 +489,7 @@ public:
} else FlameWreathCheckTime -= diff;
}
- if (ArcaneCooldown && FireCooldown && FrostCooldown)
- DoMeleeAttackIfReady();
+ me->SetCanMelee(ArcaneCooldown && FireCooldown && FrostCooldown);
}
void DamageTaken(Unit* /*pAttacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
index 6ca698e307d..a70f2022ae4 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
@@ -185,10 +185,7 @@ public:
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
@@ -303,10 +300,7 @@ public:
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
index 6e515066112..63a43c286fe 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
@@ -229,8 +229,6 @@ public:
SummonTito();
else SummonTitoTimer -= diff;
}
-
- DoMeleeAttackIfReady();
}
};
};
@@ -291,8 +289,6 @@ public:
DoCastVictim(SPELL_YIPPING);
YipTimer = 10000;
} else YipTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -423,8 +419,6 @@ public:
DoCast(target, SPELL_BRAIN_WIPE);
BrainWipeTimer = 20000;
} else BrainWipeTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -538,8 +532,6 @@ public:
RustTimer = 6000;
} else RustTimer -= diff;
}
-
- DoMeleeAttackIfReady();
}
};
};
@@ -652,8 +644,6 @@ public:
DoCastVictim(SPELL_FRIGHTENED_SCREAM);
ScreamTimer = urand(20000, 30000);
} else ScreamTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -737,8 +727,6 @@ public:
DoCastVictim(SPELL_CHAIN_LIGHTNING);
ChainLightningTimer = 15000;
} else ChainLightningTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -914,8 +902,6 @@ public:
if (!UpdateVictim())
return;
- DoMeleeAttackIfReady();
-
if (ChaseTimer <= diff)
{
if (!IsChasing)
@@ -1358,8 +1344,6 @@ public:
DoCastVictim(SPELL_POISON_THRUST);
PoisonThrustTimer = urand(10000, 20000);
} else PoisonThrustTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -1480,8 +1464,6 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)
EternalAffectionTimer = urand(45000, 60000);
} else EternalAffectionTimer -= diff;
-
- DoMeleeAttackIfReady();
}
void boss_julianne::boss_julianneAI::DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/)
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
index e5a48916459..5e082828cb5 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp
@@ -474,8 +474,6 @@ struct npc_felblood_kaelthas_phoenix : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
InstanceScript* _instance;
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
index 1747d99f3db..47b26341b9d 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp
@@ -334,8 +334,6 @@ public:
SWPainTimer = 10000;
} else SWPainTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -508,6 +506,7 @@ public:
{
Initialize();
me->SetVisible(true);
+ me->SetCanMelee(true);
boss_priestess_lackey_commonAI::Reset();
}
@@ -531,6 +530,7 @@ public:
AddThreat(unit, 1000.0f);
InVanish = true;
+ me->SetCanMelee(false);
Vanish_Timer = 30000;
Wait_Timer = 10000;
} else Vanish_Timer -= diff;
@@ -543,6 +543,7 @@ public:
DoCastVictim(SPELL_KIDNEY_SHOT, true);
me->SetVisible(true); // ...? Hacklike
InVanish = false;
+ me->SetCanMelee(true);
} else Wait_Timer -= diff;
}
@@ -563,9 +564,6 @@ public:
DoCastVictim(SPELL_EVISCERATE);
Eviscerate_Timer = 4000;
} else Eviscerate_Timer -= diff;
-
- if (!InVanish)
- DoMeleeAttackIfReady();
}
};
};
@@ -668,8 +666,6 @@ public:
Fear_Timer = 10000;
} else Fear_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -732,8 +728,6 @@ public:
DoCastVictim(SPELL_SNAP_KICK);
Snap_Kick_Timer = 4500;
} else Snap_Kick_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -865,8 +859,6 @@ public:
Blink_Timer = 8000;
} else Blink_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -987,8 +979,6 @@ public:
DoCastVictim(SPELL_FRIGHTENING_SHOUT);
Frightening_Shout_Timer = 18000;
} else Frightening_Shout_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -1088,8 +1078,6 @@ public:
Freezing_Trap_Timer = 15000;
}
} else Freezing_Trap_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
else
{
@@ -1202,8 +1190,6 @@ public:
DoCast(me, SPELL_LESSER_HEALING_WAVE);
Healing_Wave_Timer = 5000;
} else Healing_Wave_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -1304,8 +1290,6 @@ public:
DoCast(me, SPELL_HIGH_EXPLOSIVE_SHEEP);
High_Explosive_Sheep_Timer = 65000;
} else High_Explosive_Sheep_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
index 787cf45c59f..723b0e36fd0 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp
@@ -239,8 +239,6 @@ class boss_selin_fireheart : public CreatureScript
events.ScheduleEvent(EVENT_DRAIN_CRYSTAL, 20s, 25s, 0, PHASE_NORMAL);
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
index ccad5296b58..e0f929f122c 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
@@ -167,8 +167,6 @@ class boss_vexallus : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index f93716612a9..fe9054503a9 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -282,8 +282,6 @@ public:
break;
}
}
-
- DoMeleeAttackIfReady();
break;
default:
break;
@@ -1069,31 +1067,22 @@ struct npc_scarlet_ghoul : public ScriptedAI
Player* plrOwner = owner->ToPlayer();
if (plrOwner && plrOwner->IsInCombat())
{
- if (plrOwner->getAttackerForHelper() && plrOwner->getAttackerForHelper()->GetEntry() == NPC_GHOSTS)
- AttackStart(plrOwner->getAttackerForHelper());
+ Unit* newTarget = plrOwner->getAttackerForHelper();
+ if (newTarget && newTarget->GetEntry() == NPC_GHOSTS)
+ AttackStart(newTarget);
else
FindMinions(owner);
}
}
}
- if (!UpdateVictim() || !me->GetVictim())
+ if (!UpdateVictim())
return;
+ }
- //ScriptedAI::UpdateAI(diff);
- //Check if we have a current target
- if (me->EnsureVictim()->GetEntry() == NPC_GHOSTS)
- {
- if (me->isAttackReady())
- {
- //If we are within range melee the target
- if (me->IsWithinMeleeRange(me->GetVictim()))
- {
- me->AttackerStateUpdate(me->GetVictim());
- me->resetAttackTimer();
- }
- }
- }
+ bool CanAIAttack(Unit const* target) const override
+ {
+ return target->GetEntry() == NPC_GHOSTS;
}
};
@@ -1259,8 +1248,6 @@ struct npc_hearthglen_crusader : public ScriptedAI
if (!me->IsWithinCombatRange(me->GetVictim(), _minimumRange))
DoSpellAttackIfReady(me->m_spells[0]);
- else
- DoMeleeAttackIfReady();
}
void WaypointPathEnded(uint32 /*nodeId*/, uint32 pathId) override
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
index b93c1646e46..60afdb38ba9 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
@@ -416,8 +416,6 @@ public:
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
index 083dcf24eb8..f6a442910cd 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
@@ -1465,8 +1465,6 @@ public:
SetHoldState(false);
} else uiFight_duration -= diff;
-
- DoMeleeAttackIfReady();
}
}
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp
index 239bdfb87c8..432266947d1 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp
@@ -107,8 +107,6 @@ struct boss_arcanist_doan : public BossAI
DoCastSelf(SPELL_ARCANE_BUBBLE);
DoCastAOE(SPELL_DETONATION);
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp
index e7c3471c5dc..78ebaf3741f 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp
@@ -96,8 +96,6 @@ struct boss_azshir_the_sleepless : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
index 8a16c962d0a..44688f980e5 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
@@ -605,8 +605,6 @@ struct boss_headless_horseman : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -663,8 +661,6 @@ struct npc_pulsing_pumpkin : public ScriptedAI
return;
_scheduler.Update(diff);
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp
index 3ac6ec3bb60..baf7aa22d83 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp
@@ -120,8 +120,6 @@ struct boss_high_inquisitor_fairbanks : public BossAI
if (!_healTimer.Passed())
_healTimer.Update(diff);
-
- DoMeleeAttackIfReady();
}
void ExecuteEvent(uint32 eventId) override
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
index f054558afcf..13e82f35c67 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
@@ -228,8 +228,6 @@ public:
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -343,9 +341,6 @@ public:
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- if (me->HasReactState(REACT_AGGRESSIVE))
- DoMeleeAttackIfReady();
}
void DamageTaken(Unit* /*who*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp
index f32f4e29111..22b89f2225c 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp
@@ -131,7 +131,6 @@ class boss_darkmaster_gandling : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp
index f058d2ac3d6..5a5012adee7 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp
@@ -95,8 +95,6 @@ class boss_doctor_theolen_krastinov : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
index 1efb043fd00..e5388fe69ab 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
@@ -97,8 +97,6 @@ class boss_illucia_barov : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
index 7318f05150e..5299ae2bf49 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
@@ -141,8 +141,6 @@ class boss_instructor_malicia : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp
index 8bf0b8a9311..0fba33cff26 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp
@@ -102,8 +102,6 @@ public:
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp
index a4f8cea844e..d1f4a292e71 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp
@@ -252,8 +252,6 @@ class boss_kirtonos_the_herald : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp
index e58ac8b67c5..ca837001eb3 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp
@@ -119,8 +119,6 @@ public:
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp
index 20be79069ed..8bb1c5dc1ba 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp
@@ -91,8 +91,6 @@ class boss_lord_alexei_barov : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
index 8ae50697d9b..8c3d7c58344 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
@@ -96,8 +96,6 @@ class boss_lorekeeper_polkelt : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp
index 8da1b37206a..cb7ae140ae0 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp
@@ -110,8 +110,6 @@ public:
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
index 63050b56ab5..bc4dacad9fc 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
@@ -96,8 +96,6 @@ class boss_the_ravenian : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp
index 9d652f8f5de..fb7c760b893 100644
--- a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp
+++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp
@@ -111,8 +111,6 @@ public:
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void WaypointReached(uint32 waypointId, uint32 pathId) override
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
index fba6f227cb6..31298d59e99 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
@@ -256,8 +256,6 @@ struct boss_apothecary_hummel : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void OnQuestReward(Player* /*player*/, Quest const* quest, LootItemType /*type*/, uint32 /*opt*/) override
@@ -354,8 +352,6 @@ struct npc_apothecary_baxter : public npc_apothecary_genericAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp
index 4d67e50144e..0a1d7c4539a 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp
@@ -122,7 +122,6 @@ public:
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp
index dd2a0214de8..2b8bbdb5499 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp
@@ -127,8 +127,6 @@ struct boss_baroness_anastari : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp
index 56fa89e24de..5c74e358502 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp
@@ -224,8 +224,6 @@ public:
//30 seconds until we should cast this again
SummonRifleman_Timer = 30000;
} else SummonRifleman_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp
index ca7bb764917..4e63634ed44 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp
@@ -216,8 +216,6 @@ public:
m_uiMindControl_Timer = 15000;
} else m_uiMindControl_Timer -= uiDiff;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp
index b8860a5b27d..2012fcea4b2 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp
@@ -127,8 +127,6 @@ public:
DoCastVictim(SPELL_MIGHTYBLOW);
MightyBlow_Timer = 20000;
} else MightyBlow_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp
index a79ca0cee98..6d1a3233ae0 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp
@@ -96,8 +96,6 @@ public:
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp
index f9d76231d61..e9d40865655 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp
@@ -110,8 +110,6 @@ public:
RaiseUndeadScarab(me->GetVictim());
RaiseUndeadScarab_Timer = 16000;
} else RaiseUndeadScarab_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp
index 49457a30244..5f950d6e566 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp
@@ -159,8 +159,6 @@ public:
DivineShield_Timer = 40000;
}
} else DivineShield_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp
index 8c7ecfca87a..691a77346d4 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp
@@ -123,8 +123,6 @@ class boss_postmaster_malown : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp
index 7245d066a28..b5abd3092e1 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp
@@ -101,8 +101,6 @@ public:
DoCastVictim(SPELL_KNOCKOUT);
Knockout_Timer = 10000;
} else Knockout_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp
index ca1123c4c13..0b8c15866e9 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp
@@ -94,8 +94,6 @@ public:
//15 seconds until we should cast this again
RavenousClaw_Timer = 15000;
} else RavenousClaw_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp
index ae665d2b2d1..0d092af1082 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp
@@ -290,8 +290,6 @@ public:
TouchTimer = 7000;
}
else TouchTimer -= diff;
-
- DoMeleeAttackIfReady();
}
void ReceiveEmote(Player* player, uint32 emote) override
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
index a2d27715662..c6afdce1818 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
@@ -291,8 +291,6 @@ struct boss_brutallus : public BossAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
if (!UpdateVictim() || IsIntro)
@@ -324,8 +322,6 @@ struct boss_brutallus : public BossAI
DoCast(me, SPELL_BERSERK);
Enraged = true;
} else BerserkTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
index 4a40289eb12..e4b53573046 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
@@ -309,8 +309,6 @@ public:
if (me->IsWithinMeleeRange(me->GetVictim()))
{
HandleTouchedSpells(me->GetVictim(), SPELL_DARK_TOUCHED);
- me->AttackerStateUpdate(me->GetVictim());
- me->resetAttackTimer();
}
}
}
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
index 07b9282f17d..14210bbe5ee 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp
@@ -276,6 +276,7 @@ struct boss_felmyst : public BossAI
break;
}
phase = NextPhase;
+ me->SetCanMelee(phase == PHASE_GROUND);
}
void HandleFlightSequence()
@@ -454,7 +455,6 @@ struct boss_felmyst : public BossAI
EnterPhase(PHASE_FLIGHT);
break;
default:
- DoMeleeAttackIfReady();
break;
}
}
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
index 1e7d9b13b84..68717bdb57f 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
@@ -339,8 +339,6 @@ struct boss_kalecgos : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -420,8 +418,6 @@ struct boss_kalecgos_human : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
index 65dfebf49f2..678b3d70ff3 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
@@ -864,7 +864,6 @@ public:
}
}
}
- DoMeleeAttackIfReady();
//Time runs over!
for (uint8 i = 0; i < ActiveTimers; ++i)
if (!TimerIsDeactivated[i])
@@ -998,8 +997,6 @@ public:
AddThreat(ref->GetVictim(), 1.0f, pPortal);
FelfirePortalTimer = 20000;
} else FelfirePortalTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -1361,7 +1358,6 @@ public:
DoCastVictim(SPELL_SR_MOONFIRE, false);
uiTimer[1] = urand(2000, 4000);
}
- DoMeleeAttackIfReady();
break;
case CLASS_HUNTER:
if (uiTimer[1] <= diff)
@@ -1381,7 +1377,6 @@ public:
DoCastVictim(SPELL_SR_MULTI_SHOT, false);
uiTimer[0] = urand(6000, 8000);
}
- DoMeleeAttackIfReady();
}
break;
case CLASS_MAGE:
@@ -1390,7 +1385,6 @@ public:
DoCastVictim(SPELL_SR_FIREBALL, false);
uiTimer[1] = urand(2000, 4000);
}
- DoMeleeAttackIfReady();
break;
case CLASS_WARLOCK:
if (uiTimer[1] <= diff)
@@ -1403,7 +1397,6 @@ public:
DoCast(SelectTarget(SelectTargetMethod::Random, 0, 100, true), SPELL_SR_CURSE_OF_AGONY, true);
uiTimer[2] = urand(2000, 4000);
}
- DoMeleeAttackIfReady();
break;
case CLASS_WARRIOR:
if (uiTimer[1] <= diff)
@@ -1411,7 +1404,6 @@ public:
DoCastVictim(SPELL_SR_WHIRLWIND, false);
uiTimer[1] = urand(9000, 11000);
}
- DoMeleeAttackIfReady();
break;
case CLASS_PALADIN:
if (uiTimer[1] <= diff)
@@ -1424,7 +1416,6 @@ public:
DoCastVictim(SPELL_SR_HOLY_SHOCK, false);
uiTimer[2] = urand(2000, 4000);
}
- DoMeleeAttackIfReady();
break;
case CLASS_PRIEST:
if (uiTimer[1] <= diff)
@@ -1437,7 +1428,6 @@ public:
DoCast(me, SPELL_SR_RENEW, false);
uiTimer[2] = urand(6000, 8000);
}
- DoMeleeAttackIfReady();
break;
case CLASS_SHAMAN:
if (uiTimer[1] <= diff)
@@ -1445,7 +1435,6 @@ public:
DoCastVictim(SPELL_SR_EARTH_SHOCK, false);
uiTimer[1] = urand(4000, 6000);
}
- DoMeleeAttackIfReady();
break;
case CLASS_ROGUE:
if (uiTimer[1] <= diff)
@@ -1453,7 +1442,6 @@ public:
DoCastVictim(SPELL_SR_HEMORRHAGE, true);
uiTimer[1] = urand(4000, 6000);
}
- DoMeleeAttackIfReady();
break;
}
TC_LOG_DEBUG("scripts", "Sinister-Timer");
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
index 3b932075070..41ef13b6b21 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp
@@ -198,10 +198,7 @@ struct boss_entropius : public BossAI
if (!UpdateVictim())
return;
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
void DoResetPortals()
@@ -444,10 +441,7 @@ struct npc_void_sentinel : public ScriptedAI
void UpdateAI(uint32 diff) override
{
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
index c38fef91072..db0c2164857 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
@@ -202,8 +202,6 @@ class boss_archaedas : public CreatureScript
//45 seconds until we should cast this agian
uiTremorTimer = 45000;
} else uiTremorTimer -= uiDiff;
-
- DoMeleeAttackIfReady();
}
void JustDied (Unit* /*killer*/) override
@@ -314,8 +312,6 @@ class npc_archaedas_minions : public CreatureScript
//Return since we have no target
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
};
@@ -371,8 +367,6 @@ class npc_stonekeepers : public CreatureScript
//Return since we have no target
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp
index e1c15c7bdf7..bdacd1ba34c 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp
@@ -83,10 +83,7 @@ struct boss_ironaya : public BossAI
if (!UpdateVictim())
return;
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
index b2d1c6166a5..596d750ded6 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
@@ -81,8 +81,6 @@ class boss_akilzon : public CreatureScript
}
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_daakara.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_daakara.cpp
index 51cf111167c..9f2b5aa37d0 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_daakara.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_daakara.cpp
@@ -96,8 +96,6 @@ class boss_daakara : public CreatureScript
}
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
index de67dd2b2b0..1dea4c0980e 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
@@ -89,8 +89,6 @@ class boss_halazzi : public CreatureScript
}
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
index cf321021290..807e1c50af9 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
@@ -93,8 +93,6 @@ class boss_hexlord_malacrass : public CreatureScript
}
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
index 773aa8c8ea1..f993ee7c8bc 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
@@ -90,8 +90,6 @@ class boss_janalai : public CreatureScript
}
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
index c34d13a265b..8aac1cdac8c 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
@@ -95,8 +95,6 @@ class boss_nalorakk : public CreatureScript
}
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
index 2cb3681cc26..d68c81ceb2a 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
@@ -72,8 +72,6 @@ struct boss_grilek : public BossAI
return;
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
index adf73e984fe..59a0ef4c069 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
@@ -72,8 +72,6 @@ struct boss_hazzarah : public BossAI
return;
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo_the_godbreaker.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo_the_godbreaker.cpp
index 9dd8abab90a..851709a063a 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo_the_godbreaker.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo_the_godbreaker.cpp
@@ -90,8 +90,6 @@ class boss_jindo_the_godbreaker : public CreatureScript
}
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_kilnara.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_kilnara.cpp
index 30f9a64ec2e..b77366a2418 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_kilnara.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_kilnara.cpp
@@ -83,8 +83,6 @@ struct boss_kilnara : public BossAI
}
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
index 145f5acce61..108ce771e0b 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
@@ -280,8 +280,6 @@ struct boss_mandokir : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -327,14 +325,6 @@ struct npc_ohgan : public ScriptedAI
}
}
- void UpdateAI(uint32 /*diff*/) override
- {
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
-
private:
InstanceScript* _instance;
};
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
index 3677594a533..8fc70a65961 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
@@ -69,8 +69,6 @@ struct boss_renataki : public BossAI
}
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
index acd9cd00b69..1811c7c800f 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
@@ -88,8 +88,6 @@ struct boss_venoxis : public BossAI
return;
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
index 634c2539c77..e1840ba58c6 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
@@ -64,8 +64,6 @@ struct boss_wushoolay : public BossAI
return;
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_zanzil.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_zanzil.cpp
index debb07f15c5..2ec8b35d58c 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_zanzil.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_zanzil.cpp
@@ -91,8 +91,6 @@ class boss_zanzil : public CreatureScript
}
}
*/
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/EasternKingdoms/zone_dun_morogh_area_coldridge_valley.cpp b/src/server/scripts/EasternKingdoms/zone_dun_morogh_area_coldridge_valley.cpp
index 8df996ec5ac..541ec3c53b0 100644
--- a/src/server/scripts/EasternKingdoms/zone_dun_morogh_area_coldridge_valley.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_dun_morogh_area_coldridge_valley.cpp
@@ -537,8 +537,6 @@ struct npc_joren_ironstock : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/zone_duskwood.cpp b/src/server/scripts/EasternKingdoms/zone_duskwood.cpp
index 7fef2d60253..c9917a24a9e 100644
--- a/src/server/scripts/EasternKingdoms/zone_duskwood.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_duskwood.cpp
@@ -120,8 +120,6 @@ public:
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp
index 0c52922b0a1..b51919a85dc 100644
--- a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp
@@ -104,8 +104,6 @@ struct npc_partygoer_pather : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
@@ -200,8 +198,6 @@ struct npc_partygoer : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp b/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp
index 0a515e8fe6d..0eb97cec0ee 100644
--- a/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp
@@ -73,7 +73,6 @@ public:
void UpdateAI(uint32 diff) override
{
_scheduler.Update(diff);
- DoMeleeAttackIfReady();
}
private:
@@ -104,11 +103,6 @@ public:
if ((!who || who->GetTypeId() == TYPEID_UNIT) && me->HealthBelowPctDamaged(82, damage))
damage = 0;
}
-
- void UpdateAI(uint32 /*diff*/) override
- {
- DoMeleeAttackIfReady();
- }
};
CreatureAI* GetAI(Creature* creature) const override
@@ -244,7 +238,6 @@ public:
}
}
}
- DoMeleeAttackIfReady();
}
private:
@@ -358,7 +351,6 @@ public:
}
}
}
- DoMeleeAttackIfReady();
}
private:
EventMap _events;
diff --git a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp
index 4054d4ff6f5..867801feeb9 100644
--- a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp
@@ -871,8 +871,6 @@ struct npc_silverpine_grand_executor_mortuus : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
void SummonPortalsFromOrgrimmar()
@@ -1254,8 +1252,6 @@ struct npc_silverpine_worgen_renegade : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1331,8 +1327,6 @@ struct npc_silverpine_forsaken_trooper : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -3609,8 +3603,6 @@ struct npc_silverpine_forest_ettin : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
@@ -3914,8 +3906,6 @@ struct npc_silverpine_orc_sea_dog : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
@@ -4043,8 +4033,6 @@ struct npc_silverpine_skitterweb_matriarch : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
void ScheduleCombatEvents(Unit* who)
@@ -4325,8 +4313,6 @@ struct npc_silverpine_agatha_fenris_isle : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
void SetEventNoEscape()
@@ -4556,8 +4542,6 @@ struct npc_silverpine_hillsbrad_refugee : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -4712,8 +4696,6 @@ struct npc_silverpine_worgen_sentry : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/EasternKingdoms/zone_undercity.cpp b/src/server/scripts/EasternKingdoms/zone_undercity.cpp
index d91500c33d7..2c05032de2e 100644
--- a/src/server/scripts/EasternKingdoms/zone_undercity.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_undercity.cpp
@@ -232,8 +232,6 @@ public:
break;
}
}
-
- DoMeleeAttackIfReady();
}
void OnQuestReward(Player* player, Quest const* quest, LootItemType /*type*/, uint32 /*opt*/) override
diff --git a/src/server/scripts/Events/lunar_festival.cpp b/src/server/scripts/Events/lunar_festival.cpp
index be76c67d088..4afd2f5d287 100644
--- a/src/server/scripts/Events/lunar_festival.cpp
+++ b/src/server/scripts/Events/lunar_festival.cpp
@@ -378,8 +378,6 @@ struct npc_omen : public ScriptedAI
events.ScheduleEvent(EVENT_CAST_STARFALL, 14s, 16s);
break;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Events/zalazane_fall.cpp b/src/server/scripts/Events/zalazane_fall.cpp
index 8526025716e..c72e0e184ad 100644
--- a/src/server/scripts/Events/zalazane_fall.cpp
+++ b/src/server/scripts/Events/zalazane_fall.cpp
@@ -234,8 +234,6 @@ struct npc_tiger_matriarch : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/ExilesReach/zone_exiles_reach.cpp b/src/server/scripts/ExilesReach/zone_exiles_reach.cpp
index 3eb81ab1c39..68f8ac17418 100644
--- a/src/server/scripts/ExilesReach/zone_exiles_reach.cpp
+++ b/src/server/scripts/ExilesReach/zone_exiles_reach.cpp
@@ -485,8 +485,6 @@ struct npc_sparring_partner_exiles_reach : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
EventMap _events;
@@ -1552,14 +1550,6 @@ struct npc_murloc_spearhunter_watershaper : public ScriptedAI
}
}
}
-
- void UpdateAI(uint32 /*diff*/) override
- {
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
};
// 150228 - Murloc Spearhunter
@@ -2602,8 +2592,6 @@ struct npc_sparring_partner_combat_training : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
protected:
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
index c4fcea58e01..88e22ad94be 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
@@ -151,8 +151,6 @@ struct npc_blackfathom_deeps_event : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
index f9d836b0d6f..b98940b5b42 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
@@ -54,8 +54,6 @@ struct boss_gelihast : public BossAI
events.ScheduleEvent(EVENT_THROW_NET, 4s, 7s);
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp
index 3fa44b79ef0..a776fbf553f 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp
@@ -103,8 +103,6 @@ struct boss_kelris : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
index f23b7b017b5..2d23154f9c2 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
@@ -168,8 +168,6 @@ public:
InfernoTimer = 45000;
Talk(SAY_INFERNO);
} else InfernoTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -245,8 +243,6 @@ public:
DoCast(me, SPELL_IMMOLATION);
ImmolationTimer = 5000;
} else ImmolationTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
index a08cf11f500..735878f4c1b 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
@@ -172,8 +172,6 @@ public:
enraged = true;
EnrageTimer = 600000;
} else EnrageTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -262,8 +260,6 @@ public:
DoCast(SelectTarget(SelectTargetMethod::Random, 0, 100, true), SPELL_CRIPPLE);
CrippleTimer = 25000 + rand32() % 5000;
} else CrippleTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
index 988de4af818..01913499ea0 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
@@ -158,8 +158,6 @@ public:
MarkTimer = MarkTimerBase;
Talk(SAY_MARK);
} else MarkTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
index a3e17f8c997..ff1886ed927 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
@@ -153,8 +153,6 @@ public:
DoCast(SelectTarget(SelectTargetMethod::Random, 0, 40, true), SPELL_ICEBOLT);
IceboltTimer = 11000 + rand32() % 20000;
} else IceboltTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
index 76ee8e86efc..aefa9115f48 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
@@ -888,8 +888,6 @@ void hyjalAI::UpdateAI(uint32 diff)
} else SpellTimer[i] -= diff;
}
}
-
- DoMeleeAttackIfReady();
}
void hyjalAI::JustDied(Unit* /*killer*/)
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
index 15a5567584a..1c27f75a883 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
@@ -194,7 +194,6 @@ hyjal_trashAI::hyjal_trashAI(Creature* creature) : EscortAI(creature)
useFlyPath = false;
damageTaken = 0;
memset(DummyTarget, 0, sizeof(DummyTarget));
- Reset();
}
void hyjal_trashAI::DamageTaken(Unit* done_by, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/)
@@ -530,7 +529,6 @@ public:
DoCastVictim(SPELL_FLAME_BUFFET, true);
FlameBuffetTimer = 7000;
} else FlameBuffetTimer -= diff;
- DoMeleeAttackIfReady();
}
};
@@ -633,7 +631,6 @@ public:
DoCastVictim(SPELL_KNOCKDOWN);
KnockDownTimer = 15000 + rand32() % 10000;
} else KnockDownTimer -= diff;
- DoMeleeAttackIfReady();
}
};
@@ -735,8 +732,6 @@ public:
} else FrenzyTimer -= diff;
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
};
@@ -871,8 +866,6 @@ public:
DoCastVictim(SPELL_SHADOW_BOLT);
ShadowBoltTimer = 20000 + rand32() % 10000;
} else ShadowBoltTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -988,7 +981,6 @@ public:
DoCast(me, SPELL_ANTI_MAGIC_SHELL);
ShellTimer = 50000 + rand32() % 10000;
} else ShellTimer -= diff;
- DoMeleeAttackIfReady();
}
};
@@ -1079,7 +1071,6 @@ public:
DoCastVictim(SPELL_WEB);
WebTimer = 20000 + rand32() % 5000;
} else WebTimer -= diff;
- DoMeleeAttackIfReady();
}
};
@@ -1170,7 +1161,6 @@ public:
DoCastVictim(SPELL_MANA_BURN);
ManaBurnTimer = 9000 + rand32() % 5000;
} else ManaBurnTimer -= diff;
- DoMeleeAttackIfReady();
}
};
@@ -1513,7 +1503,6 @@ public:
me->CastSpell(me->GetVictim(), SPELL_EXPLODING_SHOT, args);
ExplodeTimer = 5000 + rand32() % 5000;
} else ExplodeTimer -= diff;
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
index 29e3025b92f..bb28cc50193 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
@@ -167,8 +167,6 @@ class boss_mal_ganis : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void KilledUnit(Unit* victim) override
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp
index 6c432a8929a..7f5099679f1 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp
@@ -908,8 +908,6 @@ public:
}
else
_exorcismCooldown -= diff;
-
- DoMeleeAttackIfReady();
}
void UpdateAI(uint32 diff) override
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
index 9992806e628..7ca4ecf94a1 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
@@ -145,8 +145,6 @@ struct boss_captain_skarloc : public BossAI
//DoCastVictim(SPELL_CONSECRATION);
Consecration_Timer = urand(5000, 10000);
} else Consecration_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
index 25c5b0345f0..7d0cde48098 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
@@ -127,8 +127,6 @@ struct boss_epoch_hunter : public BossAI
DoCast(me, SPELL_MAGIC_DISRUPTION_AURA);
Mda_Timer = 15000;
} else Mda_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
index 77fbb20f084..37c5e62f85e 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
@@ -156,8 +156,6 @@ struct boss_lieutenant_drake : public BossAI
DoCastVictim(SPELL_MORTAL_STRIKE);
MortalStrike_Timer = 20000 + rand32() % 10000;
} else MortalStrike_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp
index 5958ae3f5e6..ca8db9e99a0 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp
@@ -130,7 +130,6 @@ struct boss_aeonus : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp
index 752cf85b370..e9a0e114de2 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp
@@ -135,8 +135,6 @@ struct boss_chrono_lord_deja : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp
index 03ced5fb1ff..d0a972abeb7 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp
@@ -133,7 +133,6 @@ struct boss_temporus : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp b/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
index 922cc03230a..1603e3e7e49 100644
--- a/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
+++ b/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
@@ -238,8 +238,6 @@ class npc_harbinger_of_flame : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -482,8 +480,6 @@ class npc_egg_pile : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/Firelands/firelands.cpp b/src/server/scripts/Kalimdor/Firelands/firelands.cpp
index 243894203b7..8fb40ff6420 100644
--- a/src/server/scripts/Kalimdor/Firelands/firelands.cpp
+++ b/src/server/scripts/Kalimdor/Firelands/firelands.cpp
@@ -143,8 +143,6 @@ struct npc_firelands_flame_archon : public ScriptedAI
return;
scheduler.Update(diff);
-
- DoMeleeAttackIfReady();
}
private:
@@ -212,8 +210,6 @@ struct npc_firelands_molten_flamefather : public ScriptedAI
return;
scheduler.Update(diff);
-
- DoMeleeAttackIfReady();
}
private:
@@ -223,7 +219,10 @@ private:
// http://www.wowhead.com/npc=54144/magmakin
struct npc_firelands_magmakin : public ScriptedAI
{
- npc_firelands_magmakin(Creature* creature) : ScriptedAI(creature) { }
+ npc_firelands_magmakin(Creature* creature) : ScriptedAI(creature)
+ {
+ me->SetCanMelee(false); // DoSpellAttackIfReady
+ }
void IsSummonedBy(WorldObject* /*summoner*/) override
{
diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp
index 5a27808e508..47123755458 100644
--- a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp
+++ b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp
@@ -260,9 +260,6 @@ struct boss_anraphet : public BossAI
break;
}
}
-
- if (events.GetPhaseMask() & PHASE_MASK_COMBAT)
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp
index 19a2e2a74df..5703039625c 100644
--- a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp
+++ b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp
@@ -112,6 +112,7 @@ struct boss_earthrager_ptah : public BossAI
void Reset() override
{
+ me->SetCanMelee(true);
_summonDeaths = 0;
_hasDispersed = false;
Cleanup();
@@ -130,6 +131,7 @@ struct boss_earthrager_ptah : public BossAI
_hasDispersed = true;
me->AttackStop();
+ me->SetCanMelee(false);
DoCast(me, SPELL_SANDSTORM);
me->GetMap()->SetZoneWeather(AREA_TOMB_OF_THE_EARTHRAGER, WEATHER_STATE_LIGHT_SANDSTORM, 1.0f);
events.ScheduleEvent(EVENT_PTAH_EXPLODE, 6s, 0, PHASE_DISPERSE);
@@ -165,6 +167,7 @@ struct boss_earthrager_ptah : public BossAI
{
me->GetMap()->SetZoneWeather(AREA_TOMB_OF_THE_EARTHRAGER, WEATHER_STATE_FOG, 0.0f);
me->RemoveAurasDueToSpell(SPELL_PTAH_EXPLOSION);
+ me->SetCanMelee(true);
events.SetPhase(PHASE_NORMAL);
events.ScheduleEvent(EVENT_RAGING_SMASH, 7s, 12s, 0, PHASE_NORMAL);
events.ScheduleEvent(EVENT_FLAME_BOLT, 15s, 0, PHASE_NORMAL);
@@ -234,9 +237,6 @@ struct boss_earthrager_ptah : public BossAI
break;
}
}
-
- if (events.GetPhaseMask() & PHASE_MASK_NORMAL) // Do not melee in the disperse phase
- DoMeleeAttackIfReady();
}
protected:
diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp
index 550dc6cb424..764cd43494f 100644
--- a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp
+++ b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp
@@ -253,8 +253,6 @@ struct boss_temple_guardian_anhuur : public BossAI
}
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/LostCityOfTheTolvir/boss_general_husam.cpp b/src/server/scripts/Kalimdor/LostCityOfTheTolvir/boss_general_husam.cpp
index 182e0ac984e..a14b42f3d75 100644
--- a/src/server/scripts/Kalimdor/LostCityOfTheTolvir/boss_general_husam.cpp
+++ b/src/server/scripts/Kalimdor/LostCityOfTheTolvir/boss_general_husam.cpp
@@ -245,7 +245,6 @@ struct boss_general_husam : public BossAI
break;
}
}
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/LostCityOfTheTolvir/boss_lockmaw.cpp b/src/server/scripts/Kalimdor/LostCityOfTheTolvir/boss_lockmaw.cpp
index a863bc0f5a2..1b235ebed4c 100644
--- a/src/server/scripts/Kalimdor/LostCityOfTheTolvir/boss_lockmaw.cpp
+++ b/src/server/scripts/Kalimdor/LostCityOfTheTolvir/boss_lockmaw.cpp
@@ -256,8 +256,6 @@ struct boss_lockmaw : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
bool _enraged;
@@ -494,8 +492,6 @@ struct npc_lockmaw_augh_boss : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
index 980a094fc94..7c50254f385 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
@@ -105,8 +105,6 @@ public:
CorruptForcesTimer = 20000;
}
else CorruptForcesTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp
index 333192572b7..a0ad2784b0f 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp
@@ -100,8 +100,6 @@ public:
}
else LandslideTimer -= diff;
}
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
index 2884f62262d..cfca3f58c3c 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
@@ -137,8 +137,6 @@ public:
AddsTimer = 40000;
}
else AddsTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp
index e60e4f7c79a..ba274d9031d 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp
@@ -115,8 +115,6 @@ public:
ThrashTimer = 18000;
}
else ThrashTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
index 0721a5c95d8..93b6d7a831c 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
@@ -146,8 +146,8 @@ struct boss_onyxia : public BossAI
{
Initialize();
- if (!IsCombatMovementAllowed())
- SetCombatMovement(true);
+ SetCombatMovement(true);
+ me->SetCanMelee(true);
_Reset();
me->SetReactState(REACT_AGGRESSIVE);
@@ -329,6 +329,7 @@ struct boss_onyxia : public BossAI
Phase = PHASE_BREATH;
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
+ me->SetCanMelee(false);
me->GetMotionMaster()->MovePoint(10, Phase2Location);
return;
}
@@ -379,7 +380,6 @@ struct boss_onyxia : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
else
{
@@ -390,6 +390,7 @@ struct boss_onyxia : public BossAI
Talk(SAY_PHASE_3_TRANS);
SetCombatMovement(true);
IsMoving = false;
+ me->SetCanMelee(true);
Position const pos = me->GetHomePosition();
me->GetMotionMaster()->MovePoint(9, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ() + 12.0f);
events.ScheduleEvent(EVENT_BELLOWING_ROAR, 30s);
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
index 852dbe9d9d8..fe7d80398af 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
@@ -139,8 +139,6 @@ public:
DoCastVictim(SPELL_FROST_SPECTRES);
hp30Spectrals = true;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp
index 05ae8bc3a04..f51fd2eb139 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp
@@ -86,8 +86,6 @@ public:
DoCast(me, SPELL_FRENZY);
hp15 = true;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp
index 07567285467..1fa6bd42c78 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp
@@ -123,7 +123,6 @@ public:
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp
index 909085c2a7b..8e214e35555 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp
@@ -94,7 +94,6 @@ public:
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
index 44ca79c2765..3bb531f2d96 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
@@ -102,6 +102,7 @@ public:
DoCastSelf(SPELL_ARCANE_INTELLECT);
channeling = false;
+ me->SetCanMelee(true);
eventProgress = 0;
spawnerCount = 0;
me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
@@ -144,6 +145,7 @@ public:
if (type == WAYPOINT_MOTION_TYPE && id == POINT_REACH_IDOL)
{
channeling = true;
+ me->SetCanMelee(false);
events.ScheduleEvent(EVENT_CHANNEL, 2s);
}
}
@@ -238,8 +240,6 @@ public:
break;
}
}
- if (!channeling)
- DoMeleeAttackIfReady();
}
private:
@@ -351,7 +351,6 @@ public:
break;
}
}
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
index d8e0b181547..47341ef8f90 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
@@ -173,10 +173,6 @@ class boss_ayamiss : public CreatureScript
events.ScheduleEvent(EVENT_TRASH, 3s, 6s);
events.CancelEvent(EVENT_POISON_STINGER);
}
- else
- {
- DoMeleeAttackIfReady();
- }
if (!_enraged && me->GetHealthPct() < 20.0f)
{
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
index 153737b1a2f..35f88fa267c 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
@@ -180,8 +180,6 @@ class boss_buru : public CreatureScript
me->RemoveAurasDueToSpell(SPELL_THORNS);
_phase = PHASE_TRANSFORM;
}
-
- DoMeleeAttackIfReady();
}
private:
GuidList Eggs;
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
index 0d6d854d46e..ed5c7074c98 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
@@ -128,8 +128,6 @@ class boss_kurinnaxx : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
bool _enraged;
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
index 15163624293..fe4bbe13c82 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
@@ -174,8 +174,6 @@ class boss_moam : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
bool _isStonePhase;
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
index af0a2bc069a..edcce05c316 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
@@ -277,8 +277,6 @@ class boss_ossirian : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
index 1f3d62327c8..7c854d10b2a 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
@@ -110,8 +110,6 @@ class boss_rajaxx : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
bool enraged;
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
index a077ec95b3c..5443bb1d52f 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
@@ -128,8 +128,6 @@ public:
Check_Timer = 2000;
} else Check_Timer -=diff;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -215,8 +213,6 @@ public:
DoCast(me, SPELL_ENRAGE);
Enraged = true;
} else Charge_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -323,8 +319,6 @@ public:
}
Check_Timer = 2000;
} else Check_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
index ea02ccf3d0e..f9bbc1ce953 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
@@ -1069,8 +1069,6 @@ public:
DoCastVictim(SPELL_HAMSTRING);
HamstringTimer = 5000;
} else HamstringTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -1193,8 +1191,6 @@ public:
DoCastVictim(SPELL_HAMSTRING);
HamstringTimer = 10000;
} else HamstringTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
index d13b84e3719..22a373357e4 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
@@ -203,8 +203,6 @@ public:
SpawnHatchlings_Timer = urand(45000, 60000);
} else SpawnHatchlings_Timer -= diff;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp
index 101f5279a9b..b5c28166947 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp
@@ -148,8 +148,6 @@ public:
DoCast(me, SPELL_BERSERK);
Berserk = true;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
index 743dacb9951..617868f13e9 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
@@ -140,8 +140,6 @@ public:
Submerged = false;
Submerge_Timer = urand(60000, 120000);
} else Back_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
index d11116f2441..21d40fc8a47 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
@@ -186,8 +186,6 @@ public:
EnragedHard = true;
} else EnrageHard_Timer -= diff;
}
-
- DoMeleeAttackIfReady();
}
}
};
@@ -308,8 +306,6 @@ public:
AggroReset_Timer = urand(30000, 40000);
} else AggroResetEnd_Timer -= diff;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
index 725d8678ea1..7248c1ca99a 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
@@ -191,10 +191,7 @@ class boss_skeram : public CreatureScript
}
if (me->IsWithinMeleeRange(me->GetVictim()))
- {
events.RescheduleEvent(EVENT_EARTH_SHOCK, 2s);
- DoMeleeAttackIfReady();
- }
}
private:
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
index 0edfd0e2906..52304194201 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
@@ -468,8 +468,6 @@ public:
} else Teleport_Timer -= diff;
CheckEnrage(diff);
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
index 279de4a3365..71ae2199134 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
@@ -125,6 +125,7 @@ class boss_viscidus : public CreatureScript
_phase = PHASE_GLOB;
DoCast(me, SPELL_VISCIDUS_EXPLODE);
me->SetVisible(false);
+ me->SetCanMelee(false);
me->RemoveAura(SPELL_TOXIN);
me->RemoveAura(SPELL_VISCIDUS_FREEZE);
@@ -223,6 +224,7 @@ class boss_viscidus : public CreatureScript
_phase = PHASE_FROST;
InitSpells();
me->SetVisible(true);
+ me->SetCanMelee(true);
}
events.Update(diff);
@@ -247,9 +249,6 @@ class boss_viscidus : public CreatureScript
break;
}
}
-
- if (_phase != PHASE_GLOB)
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp b/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp
index 14113e37fe2..5f37e01f9f7 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp
@@ -136,8 +136,6 @@ public:
_heal30 = true;
events.ScheduleEvent(EVENT_HEALING_WAVE, 3s);
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
index e4584437b48..ec96631ceb3 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
@@ -147,8 +147,6 @@ public:
}
else
Revenge_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
void DoAction(int32 /*param*/) override
@@ -327,7 +325,6 @@ public:
else
{
me->SetSheath(SHEATH_STATE_MELEE);
- DoMeleeAttackIfReady();
}
}
diff --git a/src/server/scripts/Kalimdor/zone_ashenvale.cpp b/src/server/scripts/Kalimdor/zone_ashenvale.cpp
index 0193995fcf7..b0a346e1997 100644
--- a/src/server/scripts/Kalimdor/zone_ashenvale.cpp
+++ b/src/server/scripts/Kalimdor/zone_ashenvale.cpp
@@ -323,7 +323,6 @@ public:
}
return;
}
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
index e29c47b3709..3931703e223 100644
--- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
@@ -257,8 +257,6 @@ public:
DoCastVictim(SPELL_DYNAMITE);
DynamiteTimer = 8000;
} else DynamiteTimer -= diff;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
index 79057902202..f4914131547 100644
--- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
@@ -235,8 +235,6 @@ public:
break;
}
}
-
- DoMeleeAttackIfReady();
}
void DoAction(int32 param) override
@@ -391,8 +389,6 @@ public:
break;
}
}
-
- DoMeleeAttackIfReady();
}
if (HasEscortState(STATE_ESCORT_NONE))
diff --git a/src/server/scripts/Kalimdor/zone_durotar.cpp b/src/server/scripts/Kalimdor/zone_durotar.cpp
index eb72607604c..b91b6f7ffda 100644
--- a/src/server/scripts/Kalimdor/zone_durotar.cpp
+++ b/src/server/scripts/Kalimdor/zone_durotar.cpp
@@ -110,7 +110,6 @@ public:
RebuffTimer -= diff;
if (!UpdateVictim())
return;
- DoMeleeAttackIfReady();
}
};
};
@@ -342,8 +341,6 @@ struct npc_darkspear_jailor : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
EventMap _events;
@@ -447,8 +444,6 @@ struct npc_captive_spitescale_scout : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
@@ -590,8 +585,6 @@ struct npc_echo_isles_class_trainer : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/zone_felwood.cpp b/src/server/scripts/Kalimdor/zone_felwood.cpp
index 64b04472dad..07a93852790 100644
--- a/src/server/scripts/Kalimdor/zone_felwood.cpp
+++ b/src/server/scripts/Kalimdor/zone_felwood.cpp
@@ -95,7 +95,6 @@ public:
break;
}
}
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp
index e88c3a73bd3..9981e5267f5 100644
--- a/src/server/scripts/Kalimdor/zone_silithus.cpp
+++ b/src/server/scripts/Kalimdor/zone_silithus.cpp
@@ -774,8 +774,6 @@ public:
hasTarget = false;
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Kalimdor/zone_tanaris.cpp b/src/server/scripts/Kalimdor/zone_tanaris.cpp
index 7e97a7ee392..cb91363902a 100644
--- a/src/server/scripts/Kalimdor/zone_tanaris.cpp
+++ b/src/server/scripts/Kalimdor/zone_tanaris.cpp
@@ -174,8 +174,6 @@ public:
return;
}
-
- DoMeleeAttackIfReady();
}
void OnQuestAccept(Player* player, Quest const* quest) override
diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
index 9895a06c7eb..ee18c98607a 100644
--- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp
+++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
@@ -119,8 +119,6 @@ public:
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
void ReceiveEmote(Player* /*player*/, uint32 emote) override
@@ -458,10 +456,7 @@ public:
void UpdateEscortAI(uint32 Diff) override
{
if (UpdateVictim())
- {
- DoMeleeAttackIfReady();
return;
- }
if (!IsPostEvent)
return;
diff --git a/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp b/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp
index f6fd975dc62..e4f05fb633b 100644
--- a/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp
+++ b/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp
@@ -124,8 +124,6 @@ public:
DoCastVictim(SPELL_CLEAVE);
CleaveTimer = 7000;
} else CleaveTimer -= diff;
-
- DoMeleeAttackIfReady();
}
bool OnGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override
diff --git a/src/server/scripts/Maelstrom/Stonecore/boss_corborus.cpp b/src/server/scripts/Maelstrom/Stonecore/boss_corborus.cpp
index 98e2714df17..596d9a397fc 100644
--- a/src/server/scripts/Maelstrom/Stonecore/boss_corborus.cpp
+++ b/src/server/scripts/Maelstrom/Stonecore/boss_corborus.cpp
@@ -228,8 +228,6 @@ class boss_corborus : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
void JustSummoned(Creature* summon) override
@@ -303,8 +301,6 @@ class npc_rock_borer : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Maelstrom/Stonecore/boss_high_priestess_azil.cpp b/src/server/scripts/Maelstrom/Stonecore/boss_high_priestess_azil.cpp
index 05f40e1cc38..17289d91586 100644
--- a/src/server/scripts/Maelstrom/Stonecore/boss_high_priestess_azil.cpp
+++ b/src/server/scripts/Maelstrom/Stonecore/boss_high_priestess_azil.cpp
@@ -292,8 +292,6 @@ class boss_high_priestess_azil : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Maelstrom/Stonecore/boss_ozruk.cpp b/src/server/scripts/Maelstrom/Stonecore/boss_ozruk.cpp
index c028cd99b47..53ed9b44049 100644
--- a/src/server/scripts/Maelstrom/Stonecore/boss_ozruk.cpp
+++ b/src/server/scripts/Maelstrom/Stonecore/boss_ozruk.cpp
@@ -174,8 +174,6 @@ class boss_ozruk : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Maelstrom/Stonecore/boss_slabhide.cpp b/src/server/scripts/Maelstrom/Stonecore/boss_slabhide.cpp
index aee7aa6352b..0f1c5552224 100644
--- a/src/server/scripts/Maelstrom/Stonecore/boss_slabhide.cpp
+++ b/src/server/scripts/Maelstrom/Stonecore/boss_slabhide.cpp
@@ -284,8 +284,6 @@ class boss_slabhide : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Maelstrom/Stonecore/stonecore.cpp b/src/server/scripts/Maelstrom/Stonecore/stonecore.cpp
index db0a43b6f8c..8a41d69d973 100644
--- a/src/server/scripts/Maelstrom/Stonecore/stonecore.cpp
+++ b/src/server/scripts/Maelstrom/Stonecore/stonecore.cpp
@@ -108,6 +108,7 @@ class npc_sc_millhouse_manastorm : public CreatureScript
_instance(creature->GetInstanceScript())
{
events.SetPhase(PHASE_MILLHOUSE_GROUP_1);
+ me->SetCanMelee(false); // DoSpellAttackIfReady
}
void ScheduleEvents()
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
index 03214e40768..717c0cec560 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
@@ -189,8 +189,6 @@ struct boss_amanitar : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
index 5085bfd36cd..41f83de88ac 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
@@ -167,8 +167,6 @@ struct boss_elder_nadox : public BossAI
DoCastSelf(SPELL_SUMMON_SWARM_GUARD);
_guardianSummoned = true;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -206,8 +204,6 @@ struct npc_ahnkahar_nerubian : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
index b2157756451..0812891367b 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp
@@ -354,10 +354,7 @@ struct boss_volazj : public BossAI
me->RemoveAurasDueToSpell(INSANITY_VISUAL);
}
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
void JustDied(Unit* killer) override
@@ -733,10 +730,7 @@ struct npc_twisted_visage : public ScriptedAI
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
index 386a7622c49..c6bd4787e05 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
@@ -390,8 +390,6 @@ struct boss_jedoga_shadowseeker : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
index 296cb50e0e4..5694682b7bd 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp
@@ -216,8 +216,6 @@ struct boss_prince_taldaram : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void DamageTaken(Unit* /*doneBy*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
index 7d35ecef46f..048c06f122c 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp
@@ -280,8 +280,6 @@ struct boss_anub_arak : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -501,10 +499,7 @@ struct npc_anubarak_anub_ar_assassin : public npc_anubarak_pet_template
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
void MovementInform(uint32 /*type*/, uint32 id) override
@@ -543,10 +538,7 @@ struct npc_anubarak_anub_ar_guardian : public npc_anubarak_pet_template
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
@@ -576,10 +568,7 @@ struct npc_anubarak_anub_ar_venomancer : public npc_anubarak_pet_template
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
index d9bd21691f2..9a295622a7b 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp
@@ -348,8 +348,6 @@ struct boss_hadronox : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
// Safeguard to prevent Hadronox dying to NPCs
@@ -474,8 +472,6 @@ struct npc_hadronox_crusherPackAI : public ScriptedAI
while (uint32 eventId = _events.ExecuteEvent())
DoEvent(eventId);
-
- DoMeleeAttackIfReady();
}
protected:
@@ -745,8 +741,6 @@ struct npc_hadronox_foeAI : public ScriptedAI
while (uint32 eventId = _events.ExecuteEvent())
DoEvent(eventId);
-
- DoMeleeAttackIfReady();
}
protected:
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
index a7358a52b90..11b2e61efea 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
@@ -285,8 +285,6 @@ struct boss_krik_thir : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void SpellHit(WorldObject* /*caster*/, SpellInfo const* spellInfo) override
@@ -452,8 +450,6 @@ struct npc_watcher_gashra : public npc_gatewatcher_petAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -519,8 +515,6 @@ struct npc_watcher_narjil : public npc_gatewatcher_petAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -586,8 +580,6 @@ struct npc_watcher_silthik : public npc_gatewatcher_petAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -638,8 +630,6 @@ struct npc_anub_ar_warrior : public npc_gatewatcher_petAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -689,8 +679,6 @@ struct npc_anub_ar_skirmisher : public npc_gatewatcher_petAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void SpellHitTarget(WorldObject* target, SpellInfo const* spellInfo) override
@@ -749,8 +737,6 @@ struct npc_anub_ar_shadowcaster : public npc_gatewatcher_petAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
index 69911185eed..164645a0ddd 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
@@ -493,8 +493,6 @@ struct boss_sartharion : public BossAI
{
_isSoftEnraged = true;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
index f52c2bb1625..421b0715091 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
@@ -451,8 +451,6 @@ struct npc_tenebron : public dummy_dragonAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
@@ -519,8 +517,6 @@ struct npc_shadron : public dummy_dragonAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
@@ -574,8 +570,6 @@ struct npc_vesperon : public dummy_dragonAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
@@ -637,14 +631,6 @@ struct npc_acolyte_of_shadron : public ScriptedAI
debuffTarget->RemoveAurasDueToSpell(SPELL_GIFT_OF_TWILIGTH_SHA);
}
- void UpdateAI(uint32 /*diff*/) override
- {
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
-
private:
InstanceScript* instance;
};
@@ -701,14 +687,6 @@ struct npc_acolyte_of_vesperon : public ScriptedAI
instance->DoRemoveAurasDueToSpellOnPlayers(58835, true, true); // Components of spell Twilight Torment
}
- void UpdateAI(uint32 /*diff*/) override
- {
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
-
private:
InstanceScript* instance;
};
@@ -902,8 +880,6 @@ struct npc_twilight_whelp : public ScriptedAI
DoCastVictim(SPELL_FADE_ARMOR);
events.ScheduleEvent(EVENT_FADE_ARMOR, 5s, 10s);
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp
index 9a13a69a664..2a4bf0460fd 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp
@@ -218,8 +218,6 @@ struct boss_baltharus_the_warborn : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -298,8 +296,6 @@ struct npc_baltharus_the_warborn_clone : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
index a2f3e083402..ff40d8e0790 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp
@@ -161,8 +161,6 @@ struct boss_general_zarithrian : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -242,8 +240,6 @@ struct npc_onyx_flamecaller : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
EventMap _events;
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index b633761d1cd..7cbace920a0 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -374,8 +374,6 @@ class boss_halion : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
void SetData(uint32 index, uint32 value) override
@@ -545,8 +543,6 @@ class boss_twilight_halion : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp
index fe7be970774..d6fe5c2a011 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp
@@ -191,8 +191,6 @@ struct boss_saviana_ragefire : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
index fd83e5064c1..17c1eaca2cc 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
@@ -249,8 +249,6 @@ public:
uiRadianceTimer = 16000;
} else uiRadianceTimer -= uiDiff;
-
- DoMeleeAttackIfReady();
}
};
@@ -406,8 +404,6 @@ public:
bHealth = true;
}
-
- DoMeleeAttackIfReady();
}
void JustSummoned(Creature* summon) override
@@ -480,8 +476,6 @@ public:
}
uiShadowPastTimer = 5000;
}else uiShadowPastTimer -= uiDiff;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -590,16 +584,6 @@ public:
uiWaypoint = uiType;
}
- void UpdateAI(uint32 uiDiff) override
- {
- EscortAI::UpdateAI(uiDiff);
-
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
-
void JustDied(Unit* /*killer*/) override
{
instance->SetData(DATA_ARGENT_SOLDIER_DEFEATED, instance->GetData(DATA_ARGENT_SOLDIER_DEFEATED) + 1);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp
index 6b308410f64..a42e87a1335 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp
@@ -137,6 +137,7 @@ public:
summons.DespawnAll();
me->SetDisplayId(me->GetNativeDisplayId());
me->ClearUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED);
+ me->SetCanMelee(true);
Initialize();
}
@@ -168,6 +169,7 @@ public:
uiResurrectTimer = 4000;
bEventInProgress = false;
me->ClearUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED);
+ me->SetCanMelee(true);
} else uiResurrectTimer -= uiDiff;
}
@@ -262,9 +264,6 @@ public:
break;
}
}
-
- if (!me->HasUnitState(UNIT_STATE_ROOT) && !me->HealthBelowPct(1))
- DoMeleeAttackIfReady();
}
void DamageTaken(Unit* /*pDoneBy*/, uint32& uiDamage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
@@ -274,6 +273,7 @@ public:
uiDamage = 0;
me->SetHealth(0);
me->AddUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED);
+ me->SetCanMelee(false);
summons.DespawnAll();
switch (uiPhase)
{
@@ -340,8 +340,6 @@ public:
}
uiAttackTimer = 3500;
} else uiAttackTimer -= uiDiff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
index abec7d1e932..bf35bcda21e 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp
@@ -296,8 +296,6 @@ public:
}
uiShieldBreakerTimer = 7000;
}else uiShieldBreakerTimer -= uiDiff;
-
- DoMeleeAttackIfReady();
}
};
@@ -429,8 +427,6 @@ public:
DoCastVictim(SPELL_MORTAL_STRIKE);
uiMortalStrikeTimer = urand(8000, 12000);
} else uiMortalStrikeTimer -= uiDiff;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -573,8 +569,6 @@ public:
DoCast(me, SPELL_HASTE);
uiHasteTimer = 22000;
} else uiHasteTimer -= uiDiff;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -725,8 +719,6 @@ public:
uiHexMendingTimer = urand(20000, 25000);
} else uiHexMendingTimer -= uiDiff;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -886,8 +878,6 @@ public:
}
bShoot = false;
} else uiMultiShotTimer -= uiDiff;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -1012,8 +1002,6 @@ public:
DoCast(target, SPELL_POISON_BOTTLE);
uiPosionBottleTimer = 19000;
} else uiPosionBottleTimer -= uiDiff;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index 17c36044f66..08c75cc716a 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -190,6 +190,7 @@ struct boss_anubarak_trial : public BossAI
Initialize();
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetUninteractible(false);
+ me->SetCanMelee(true);
// clean up spawned Frost Spheres
std::list<Creature*> FrostSphereList;
me->GetCreatureListWithEntryInGrid(FrostSphereList, NPC_FROST_SPHERE, 150.0f);
@@ -335,6 +336,7 @@ struct boss_anubarak_trial : public BossAI
DoCast(me, SPELL_CLEAR_ALL_DEBUFFS);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetUninteractible(true);
+ me->SetCanMelee(false);
Talk(EMOTE_BURROWER);
events.SetPhase(PHASE_SUBMERGED);
events.ScheduleEvent(EVENT_PURSUING_SPIKE, 2s, 0, PHASE_SUBMERGED);
@@ -372,6 +374,7 @@ struct boss_anubarak_trial : public BossAI
me->RemoveAurasDueToSpell(SPELL_SUBMERGE_ANUBARAK);
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetUninteractible(false);
+ me->SetCanMelee(true);
DoCast(me, SPELL_EMERGE_ANUBARAK);
Talk(EMOTE_EMERGE);
events.SetPhase(PHASE_MELEE);
@@ -422,9 +425,6 @@ struct boss_anubarak_trial : public BossAI
Talk(EMOTE_LEECHING_SWARM);
Talk(SAY_LEECHING_SWARM);
}
-
- if (events.IsInPhase(PHASE_MELEE))
- DoMeleeAttackIfReady();
}
private:
@@ -493,8 +493,6 @@ struct npc_swarm_scarab : public ScriptedAI
}
else
_determinationTimer -= diff;
-
- DoMeleeAttackIfReady();
}
private:
@@ -575,8 +573,6 @@ struct npc_nerubian_burrower : public ScriptedAI
}
else
_submergeTimer -= diff;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
index eafc61b849a..b4198fc8fa0 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
@@ -724,9 +724,6 @@ struct boss_faction_championsAI : public BossAI
return;
}
}
-
- if (_aiType == AI_MELEE || _aiType == AI_PET)
- DoMeleeAttackIfReady();
}
private:
@@ -1322,7 +1319,10 @@ struct npc_toc_mage : public boss_faction_championsAI
struct npc_toc_hunter : public boss_faction_championsAI
{
- npc_toc_hunter(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED) { }
+ npc_toc_hunter(Creature* creature) : boss_faction_championsAI(creature, AI_RANGED)
+ {
+ me->SetCanMelee(false); // DoSpellAttackIfReady
+ }
void Reset() override
{
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
index 240bf370bd6..5512f5b4460 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -281,8 +281,6 @@ struct boss_jaraxxus : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -363,10 +361,7 @@ struct npc_fel_infernal : public ScriptedAI
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
@@ -456,8 +451,6 @@ struct npc_mistress_of_pain : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index 837872c398d..b61a3633ef7 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -320,8 +320,6 @@ struct boss_northrend_beastsAI : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -443,6 +441,7 @@ struct npc_snobold_vassal : public ScriptedAI
break;
case ACTION_ACTIVE_SNOBOLD:
_mountedOnPlayer = true;
+ me->SetCanMelee(true);
break;
default:
break;
@@ -468,6 +467,7 @@ struct npc_snobold_vassal : public ScriptedAI
if (gormok && gormok->IsAlive())
{
me->AttackStop();
+ me->SetCanMelee(false);
_targetGUID.Clear();
_mountedOnPlayer = false;
_events.CancelEvent(EVENT_BATTER);
@@ -490,6 +490,7 @@ struct npc_snobold_vassal : public ScriptedAI
_events.CancelEvent(EVENT_CHECK_MOUNT);
_events.CancelEvent(EVENT_FIRE_BOMB);
me->AttackStop();
+ me->SetCanMelee(true);
SetCombatMovement(true);
_gormokDead = true;
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true))
@@ -550,10 +551,6 @@ struct npc_snobold_vassal : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- // do melee attack only if is in player back or if gormok is dead.
- if (_mountedOnPlayer || _gormokDead)
- DoMeleeAttackIfReady();
}
private:
@@ -668,6 +665,7 @@ struct boss_jormungarAI : public boss_northrend_beastsAI
{
Initialize();
boss_northrend_beastsAI::Reset();
+ me->SetCanMelee(true);
}
void JustSummoned(Creature* summoned) override
@@ -759,6 +757,7 @@ struct boss_jormungarAI : public boss_northrend_beastsAI
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetUninteractible(true);
+ me->SetCanMelee(false);
me->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionY() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionZ() + me->GetCollisionHeight());
}
@@ -781,6 +780,7 @@ struct boss_jormungarAI : public boss_northrend_beastsAI
{
me->SetControlled(true, UNIT_STATE_ROOT);
me->SetDisplayId(modelStationary);
+ me->SetCanMelee(false);
DoCastSelf(SPELL_GROUND_VISUAL_1, true);
events.SetPhase(PHASE_STATIONARY);
}
@@ -789,6 +789,7 @@ struct boss_jormungarAI : public boss_northrend_beastsAI
if (Unit* target = me->GetVictim())
me->GetMotionMaster()->MoveChase(target);
me->SetDisplayId(modelMobile);
+ me->SetCanMelee(true);
events.SetPhase(PHASE_MOBILE);
}
wasMobile = !wasMobile;
@@ -804,6 +805,7 @@ struct boss_jormungarAI : public boss_northrend_beastsAI
{
instance->DoCloseDoorOrButton(instance->GetGuidData(DATA_MAIN_GATE));
me->SetImmuneToPC(false);
+ me->SetCanMelee(true);
events.SetPhase(PHASE_MOBILE);
me->SetReactState(REACT_AGGRESSIVE);
DoZoneInCombat();
@@ -867,9 +869,7 @@ struct boss_jormungarAI : public boss_northrend_beastsAI
return;
}
- if (events.IsInPhase(PHASE_MOBILE))
- DoMeleeAttackIfReady();
- else
+ if (!events.IsInPhase(PHASE_MOBILE))
DoCastVictim(spitSpell);
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index dca2b5d81c3..0a6ca5742d2 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -358,8 +358,6 @@ struct boss_twin_baseAI : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
protected:
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp
index b10edbf31c9..bb3b2e22e30 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_king_dred.cpp
@@ -152,8 +152,6 @@ struct boss_king_dred : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -194,8 +192,6 @@ struct npc_drakkari_gutripper : public ScriptedAI
}
else
GutRipTimer -= diff;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -239,8 +235,6 @@ struct npc_drakkari_scytheclaw : public ScriptedAI
}
else
uiRendTimer -= diff;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp
index 05fd38c38e5..ae4dd0aab77 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp
@@ -190,8 +190,6 @@ struct boss_tharon_ja : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp
index 397ae7597a1..f38e1dcf690 100644
--- a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp
+++ b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp
@@ -153,8 +153,6 @@ struct boss_trollgore : public BossAI
if (ConsumeAura && ConsumeAura->GetStackAmount() > 9)
_consumptionJunction = false;
}
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp
index 49bd36ced27..8a0d8b761e8 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp
@@ -82,6 +82,7 @@ struct boss_bronjahm : public BossAI
events.ScheduleEvent(EVENT_SHADOW_BOLT, 2s);
events.ScheduleEvent(EVENT_MAGIC_BANE, 8s, 20s);
events.ScheduleEvent(EVENT_CORRUPT_SOUL, 25s, 35s, 0, PHASE_1);
+ me->SetCanMelee(true);
}
void JustReachedHome() override
@@ -117,6 +118,7 @@ struct boss_bronjahm : public BossAI
DoCast(me, SPELL_TELEPORT);
events.ScheduleEvent(EVENT_FEAR, 12s, 16s, 0, PHASE_2);
events.ScheduleEvent(EVENT_SOULSTORM, 100ms, 0, PHASE_2);
+ me->SetCanMelee(false);
}
}
@@ -203,9 +205,6 @@ struct boss_bronjahm : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- if (!events.IsInPhase(PHASE_2))
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
index 6ac0a779725..1f9ca84e3b8 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
@@ -326,8 +326,6 @@ struct boss_devourer_of_souls : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
index 49987063278..22adfdc8b92 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp
@@ -158,7 +158,6 @@ struct npc_sylvanas_fos : public ScriptedAI
return;
events.Update(diff);
- DoMeleeAttackIfReady();
}
};
@@ -255,8 +254,6 @@ struct npc_jaina_fos: public ScriptedAI
return;
events.Update(diff);
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp
index 02c441d8b86..c936c03df2f 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp
@@ -140,8 +140,6 @@ class boss_falric : public CreatureScript
default:
break;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp
index fb933ba1a6a..0660da6176a 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp
@@ -121,8 +121,6 @@ class boss_marwyn : public CreatureScript
default:
break;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
index b2db3a91b4a..377fc98af1d 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
@@ -1160,8 +1160,6 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1348,8 +1346,6 @@ class npc_the_lich_king_escape_hor : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1558,8 +1554,6 @@ class npc_ghostly_priest : public CreatureScript
default:
break;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -1633,8 +1627,6 @@ class npc_phantom_mage : public CreatureScript
default:
break;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -1726,8 +1718,6 @@ class npc_shadowy_mercenary : public CreatureScript
default:
break;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -1780,8 +1770,6 @@ class npc_spectral_footman : public CreatureScript
default:
break;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -1842,8 +1830,6 @@ class npc_tortured_rifleman : public CreatureScript
default:
break;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -1942,7 +1928,6 @@ class npc_frostsworn_general : public CreatureScript
break;
}
}
- DoMeleeAttackIfReady();
}
void SummonClones()
@@ -2016,8 +2001,6 @@ class npc_spiritual_reflection : public CreatureScript
default:
break;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -2248,8 +2231,6 @@ class npc_raging_ghoul : public CreatureScript
default:
break;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -2318,8 +2299,6 @@ class npc_risen_witch_doctor : public CreatureScript
default:
break;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -2370,8 +2349,6 @@ class npc_lumbering_abomination : public CreatureScript
default:
break;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -2711,8 +2688,6 @@ class npc_quel_delar_sword : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
index d07bd4f55fc..8d7cc069edc 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
@@ -239,8 +239,6 @@ struct boss_garfrost : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
index e645e2310cc..531f88a88e4 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
@@ -284,8 +284,6 @@ struct boss_ick : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
index 1383bc1a827..85fd943cf7d 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -275,8 +275,6 @@ struct boss_tyrannus : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp
index 2e14fdef1e9..c0ca2d4a7bf 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp
@@ -100,8 +100,6 @@ struct npc_ymirjar_flamebearer: public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -143,8 +141,6 @@ struct npc_iceborn_protodrake: public ScriptedAI
}
else
_frostBreathCooldown -= diff;
-
- DoMeleeAttackIfReady();
}
private:
@@ -191,8 +187,6 @@ struct npc_geist_ambusher: public ScriptedAI
}
else
_leapingFaceMaulCooldown -= diff;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
index 12b9ac830dc..a2a1ad294ea 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp
@@ -216,9 +216,6 @@ struct boss_drakkari_colossus : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- if (me->GetReactState() == REACT_AGGRESSIVE)
- DoMeleeAttackIfReady();
}
void JustSummoned(Creature* summon) override
@@ -283,8 +280,6 @@ struct boss_drakkari_elemental : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void DoAction(int32 action) override
@@ -439,10 +434,7 @@ struct npc_living_mojo : public ScriptedAI
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp
index 79a6d240d04..007e9ed11c2 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp
@@ -176,8 +176,6 @@ struct boss_moorabi : public BossAI
if(me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp
index fcc36315e6a..d274c9d1162 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp
@@ -133,10 +133,7 @@ struct boss_slad_ran : public BossAI
if (!UpdateVictim())
return;
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
index 51527f3e9b9..17ae3a3dd64 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -611,7 +611,10 @@ protected:
struct boss_prince_keleseth_icc : public BloodPrincesBossAI
{
- boss_prince_keleseth_icc(Creature* creature) : BloodPrincesBossAI(creature, DATA_PRINCE_KELESETH) { }
+ boss_prince_keleseth_icc(Creature* creature) : BloodPrincesBossAI(creature, DATA_PRINCE_KELESETH)
+ {
+ me->SetCanMelee(false);
+ }
void ScheduleEvents() override
{
@@ -671,8 +674,6 @@ struct boss_prince_keleseth_icc : public BloodPrincesBossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- // does not melee
}
};
@@ -745,8 +746,6 @@ struct boss_prince_taldaram_icc : public BloodPrincesBossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -841,8 +840,6 @@ struct boss_prince_valanar_icc : public BloodPrincesBossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
index 6aedfefafae..48d42b6aa44 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
@@ -409,8 +409,6 @@ struct boss_blood_queen_lana_thel : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
bool WasVampire(ObjectGuid guid) const
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index 3357f25086f..b21e77530e0 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -534,8 +534,6 @@ struct boss_deathbringer_saurfang : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
uint32 GetData(uint32 type) const override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
index e6bdd11aa7f..f7e8cdcbc31 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
@@ -255,8 +255,6 @@ struct boss_festergut : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void SetData(uint32 type, uint32 data) override
@@ -331,8 +329,6 @@ struct npc_stinky_icc : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
index 1d27d897b48..98580bde1cb 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
@@ -1076,12 +1076,13 @@ struct npc_high_overlord_saurfang_igb : public ScriptedAI
}
}
- if (me->IsWithinMeleeRange(me->GetVictim()))
- DoMeleeAttackIfReady();
- else if (me->isAttackReady())
+ if (!me->IsWithinMeleeRange(me->GetVictim()))
{
- DoCastVictim(SPELL_RENDING_THROW);
- me->resetAttackTimer();
+ if (me->isAttackReady())
+ {
+ DoCastVictim(SPELL_RENDING_THROW);
+ me->resetAttackTimer();
+ }
}
}
@@ -1336,12 +1337,13 @@ struct npc_muradin_bronzebeard_igb : public ScriptedAI
}
}
- if (me->IsWithinMeleeRange(me->GetVictim()))
- DoMeleeAttackIfReady();
- else if (me->isAttackReady())
+ if (!me->IsWithinMeleeRange(me->GetVictim()))
{
- DoCastVictim(SPELL_RENDING_THROW);
- me->resetAttackTimer();
+ if (me->isAttackReady())
+ {
+ DoCastVictim(SPELL_RENDING_THROW);
+ me->resetAttackTimer();
+ }
}
}
@@ -1484,8 +1486,6 @@ struct npc_gunship_boarding_addAI : public gunship_npc_AI
if (!HasAttackablePlayerNearby())
TriggerBurningPitch();
-
- DoMeleeAttackIfReady();
}
bool CanAIAttack(Unit const* target) const override
@@ -1563,8 +1563,6 @@ struct npc_gunship_boarding_leader : public npc_gunship_boarding_addAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
index e34aee8b3a9..4337cc59996 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
@@ -417,6 +417,7 @@ struct boss_lady_deathwhisper : public BossAI
damage -= me->GetPower(POWER_MANA);
me->SetPower(POWER_MANA, 0);
me->RemoveAurasDueToSpell(SPELL_MANA_BARRIER);
+ me->SetCanMelee(true);
scheduler.CancelGroup(GROUP_ONE);
scheduler
@@ -495,12 +496,7 @@ struct boss_lady_deathwhisper : public BossAI
if (!UpdateVictim() && _phase != PHASE_INTRO)
return;
- scheduler.Update(diff, [this]
- {
- // We should not melee attack when barrier is up
- if (!me->HasAura(SPELL_MANA_BARRIER))
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
// summoning function for first phase
@@ -668,10 +664,7 @@ struct npc_cult_fanatic : public ScriptedAI
if (!UpdateVictim() && !me->HasAura(SPELL_PERMANENT_FEIGN_DEATH))
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
protected:
@@ -811,10 +804,7 @@ struct npc_vengeful_shade : public ScriptedAI
void UpdateAI(uint32 diff) override
{
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
@@ -933,8 +923,6 @@ struct npc_darnavan : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
index 08d0fa77a6f..b7236028725 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
@@ -275,8 +275,6 @@ struct boss_lord_marrowgar : public BossAI
// 10 seconds since encounter start Bone Slice replaces melee attacks
if (_boneSlice && !me->GetCurrentSpell(CURRENT_MELEE_SPELL))
DoCastVictim(SPELL_BONE_SLICE);
-
- DoMeleeAttackIfReady();
}
void MovementInform(uint32 type, uint32 id) override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index ed08f59b1c3..25dc005fd52 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -697,8 +697,6 @@ struct boss_professor_putricide : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -754,8 +752,6 @@ class npc_putricide_oozeAI : public ScriptedAI
if (!_newTargetSelectTimer && !me->IsNonMeleeSpellCast(false, false, true, false, true))
_newTargetSelectTimer = 1000;
- DoMeleeAttackIfReady();
-
if (!_newTargetSelectTimer)
return;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
index 623b1b929b6..081cfce1ce4 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
@@ -229,8 +229,6 @@ struct boss_rotface : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -271,8 +269,6 @@ struct npc_little_ooze : public ScriptedAI
DoCastVictim(SPELL_STICKY_OOZE);
events.ScheduleEvent(EVENT_STICKY_OOZE, 15s);
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -328,9 +324,6 @@ struct npc_big_ooze : public ScriptedAI
break;
}
}
-
- if (me->IsVisible())
- DoMeleeAttackIfReady();
}
private:
@@ -403,8 +396,6 @@ struct npc_precious_icc : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -695,6 +686,7 @@ class spell_rotface_unstable_ooze_explosion_suicide : public AuraScript
target->RemoveAllAuras();
target->SetVisible(false);
+ target->ToCreature()->SetCanMelee(false);
target->ToCreature()->DespawnOrUnsummon(60s);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index 86c9ee09c49..e57abfc67b8 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -564,8 +564,6 @@ struct boss_sindragosa : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -751,8 +749,6 @@ struct npc_spinestalker : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -904,8 +900,6 @@ struct npc_rimefang_icc : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1003,8 +997,6 @@ struct npc_sindragosa_trash : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp
index 1d2aa997cf2..2d7cfc810f1 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp
@@ -505,8 +505,6 @@ struct boss_sister_svalna : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -778,8 +776,6 @@ struct npc_crok_scourgebane : public EscortAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
bool CanAIAttack(Unit const* target) const override
@@ -985,8 +981,6 @@ struct npc_captain_arnath : public npc_argent_captainAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1055,8 +1049,6 @@ struct npc_captain_brandon : public npc_argent_captainAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -1114,8 +1106,6 @@ struct npc_captain_grondel : public npc_argent_captainAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -1169,8 +1159,6 @@ struct npc_captain_rupert : public npc_argent_captainAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -1366,8 +1354,6 @@ struct npc_frostwing_ymirjar_vrykul : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index ba5dcb80c28..92b885d6d55 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -1129,8 +1129,6 @@ struct boss_the_lich_king : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING) && !(events.IsInPhase(PHASE_TRANSITION) || events.IsInPhase(PHASE_OUTRO) || events.IsInPhase(PHASE_FROSTMOURNE)))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1261,8 +1259,6 @@ struct npc_tirion_fordring_tft : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1321,8 +1317,6 @@ struct npc_shambling_horror_icc : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
void OnSpellFailed(SpellInfo const* spell) override
@@ -1412,8 +1406,6 @@ struct npc_raging_spirit : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1556,8 +1548,6 @@ struct npc_valkyr_shadowguard : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- // no melee attacks
}
private:
@@ -1792,10 +1782,6 @@ struct npc_terenas_menethil : public ScriptedAI
break;
}
}
-
- // fighting Spirit Warden
- if (me->IsInCombat())
- DoMeleeAttackIfReady();
}
private:
@@ -1839,8 +1825,6 @@ struct npc_spirit_warden : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1936,8 +1920,6 @@ struct npc_broken_frostmourne : public CreatureAI
break;
}
}
-
- // no melee attacks
}
private:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
index b8c9fca9d61..3b9e0f2b8de 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
@@ -731,8 +731,6 @@ struct npc_risen_archmage : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -782,8 +780,6 @@ struct npc_blazing_skeleton : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -838,8 +834,6 @@ struct npc_suppresser : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -855,14 +849,6 @@ struct npc_blistering_zombie : public ScriptedAI
{
DoCastSelf(SPELL_ACID_BURST, true);
}
-
- void UpdateAI(uint32 /*diff*/) override
- {
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
};
struct npc_gluttonous_abomination : public ScriptedAI
@@ -905,8 +891,6 @@ struct npc_gluttonous_abomination : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
index b7b45af37b0..527afb2c3c3 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
@@ -499,8 +499,6 @@ struct npc_rotting_frost_giant : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -848,8 +846,6 @@ struct DarkFallenAI : public ScriptedAI
if (AttackSpellId)
DoSpellAttackIfReady(AttackSpellId);
- else
- DoMeleeAttackIfReady();
}
protected:
@@ -884,7 +880,10 @@ struct npc_darkfallen_blood_knight : public DarkFallenAI
struct npc_darkfallen_noble : public DarkFallenAI
{
- npc_darkfallen_noble(Creature* creature) : DarkFallenAI(creature) { }
+ npc_darkfallen_noble(Creature* creature) : DarkFallenAI(creature)
+ {
+ me->SetCanMelee(false); // DoSpellAttackIfReady
+ }
void ScheduleSpells() override
{
@@ -934,8 +933,6 @@ struct npc_vampiric_fiend : public ScriptedAI
return;
_scheduler.Update(diff);
-
- DoMeleeAttackIfReady();
}
private:
@@ -944,7 +941,10 @@ private:
struct npc_darkfallen_archmage : public DarkFallenAI
{
- npc_darkfallen_archmage(Creature* creature) : DarkFallenAI(creature) { }
+ npc_darkfallen_archmage(Creature* creature) : DarkFallenAI(creature)
+ {
+ me->SetCanMelee(false); // DoSpellAttackIfReady
+ }
void ScheduleSpells() override
{
@@ -1103,8 +1103,6 @@ struct npc_icc_nerubar_broodkeeper : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/IsleOfConquest/boss_ioc_horde_alliance.cpp b/src/server/scripts/Northrend/IsleOfConquest/boss_ioc_horde_alliance.cpp
index e3d89c1fc22..77f5e53207e 100644
--- a/src/server/scripts/Northrend/IsleOfConquest/boss_ioc_horde_alliance.cpp
+++ b/src/server/scripts/Northrend/IsleOfConquest/boss_ioc_horde_alliance.cpp
@@ -111,8 +111,6 @@ struct boss_ioc_horde_alliance : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp
index 7340eb5c698..8babac81a40 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp
@@ -51,13 +51,14 @@ enum Events
enum Spells
{
- SPELL_IMPALE = 28783, // 25-man: 56090
- SPELL_LOCUST_SWARM = 28785, // 25-man: 54021
SPELL_SUMMON_CORPSE_SCARABS_PLR = 29105, // This spawns 5 corpse scarabs on top of player
SPELL_SUMMON_CORPSE_SCARABS_MOB = 28864, // This spawns 10 corpse scarabs on top of dead guards
SPELL_BERSERK = 27680
};
+#define SPELL_IMPALE RAID_MODE(28783, 56090)
+#define SPELL_LOCUST_SWARM RAID_MODE(28785, 54021)
+
enum SpawnGroups
{
GROUP_INITIAL_25M = 1,
@@ -98,6 +99,7 @@ struct boss_anubrekhan : public BossAI
{
_Reset();
guardCorpses.clear();
+ me->SetCanMelee(true);
}
void JustReachedHome() override
@@ -203,6 +205,7 @@ struct boss_anubrekhan : public BossAI
Talk(EMOTE_LOCUST);
events.SetPhase(PHASE_SWARM);
DoCast(me, SPELL_LOCUST_SWARM);
+ me->SetCanMelee(false);
events.ScheduleEvent(EVENT_SPAWN_GUARD, 3s);
events.ScheduleEvent(EVENT_LOCUST_ENDS, RAID_MODE(Seconds(19), Seconds(23)));
@@ -210,6 +213,7 @@ struct boss_anubrekhan : public BossAI
break;
case EVENT_LOCUST_ENDS:
events.SetPhase(PHASE_NORMAL);
+ me->SetCanMelee(true);
events.ScheduleEvent(EVENT_IMPALE, randtime(Seconds(10), Seconds(20)), 0, PHASE_NORMAL);
events.ScheduleEvent(EVENT_SCARABS, randtime(Seconds(20), Seconds(30)), 0, PHASE_NORMAL);
break;
@@ -222,9 +226,6 @@ struct boss_anubrekhan : public BossAI
break;
}
}
-
- if (events.IsInPhase(PHASE_NORMAL))
- DoMeleeAttackIfReady();
}
private:
GuidSet guardCorpses;
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp
index aeb36c4fa10..a406d3e13aa 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp
@@ -180,8 +180,6 @@ struct boss_faerlina : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -224,7 +222,6 @@ struct npc_faerlina_add : public ScriptedAI
return;
DoCastVictim(SPELL_ADD_FIREBALL);
- DoMeleeAttackIfReady(); // this will only happen if the fireball cast fails for some reason
}
private:
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
index 0f57dfbfae6..2905d24ea24 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
@@ -433,10 +433,6 @@ struct boss_four_horsemen_baron : public boss_four_horsemen_baseAI
break;
}
}
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
- DoMeleeAttackIfReady();
}
void SpellHitTarget(WorldObject* /*target*/, SpellInfo const* spellInfo) override
@@ -498,10 +494,6 @@ struct boss_four_horsemen_thane : public boss_four_horsemen_baseAI
break;
}
}
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
- DoMeleeAttackIfReady();
}
void SpellHitTarget(WorldObject* /*target*/, SpellInfo const* spellInfo) override
@@ -519,7 +511,11 @@ struct boss_four_horsemen_thane : public boss_four_horsemen_baseAI
struct boss_four_horsemen_lady : public boss_four_horsemen_baseAI
{
- boss_four_horsemen_lady(Creature* creature) : boss_four_horsemen_baseAI(creature, LADY, ladyPath) { }
+ boss_four_horsemen_lady(Creature* creature) : boss_four_horsemen_baseAI(creature, LADY, ladyPath)
+ {
+ me->SetCanMelee(false);
+ }
+
void BeginFighting() override
{
events.ScheduleEvent(EVENT_BERSERK, 10min);
@@ -578,7 +574,11 @@ struct boss_four_horsemen_lady : public boss_four_horsemen_baseAI
struct boss_four_horsemen_sir : public boss_four_horsemen_baseAI
{
- boss_four_horsemen_sir(Creature* creature) : boss_four_horsemen_baseAI(creature, SIR, sirPath), _shouldSay(true) { }
+ boss_four_horsemen_sir(Creature* creature) : boss_four_horsemen_baseAI(creature, SIR, sirPath), _shouldSay(true)
+ {
+ me->SetCanMelee(false);
+ }
+
void BeginFighting() override
{
events.ScheduleEvent(EVENT_BERSERK, 10min);
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
index f4653cb2972..a5fe4abab32 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
@@ -254,8 +254,6 @@ struct boss_gluth : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void MovementInform(uint32 /*type*/, uint32 id) override
@@ -381,8 +379,6 @@ struct npc_zombie_chow : public ScriptedAI
me->StopMoving();
}
}
- else if (state == STATE_ZOMBIE_NORMAL)
- DoMeleeAttackIfReady();
}
void SetData(uint32 id, uint32 value) override
@@ -394,6 +390,7 @@ struct npc_zombie_chow : public ScriptedAI
{
me->SetReactState(ReactStates::REACT_PASSIVE);
me->AttackStop();
+ me->SetCanMelee(false);
me->SetTarget(ObjectGuid::Empty);
// at this point, the zombie should be non attacking and non moving.
@@ -410,6 +407,7 @@ struct npc_zombie_chow : public ScriptedAI
// and loose aggro behavior
me->SetReactState(ReactStates::REACT_PASSIVE);
me->AttackStop();
+ me->SetCanMelee(false);
me->SetTarget(ObjectGuid::Empty);
me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_GRIP, true); // not sure if this is blizz-like but this is very convenient
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
index 454d6ba4674..4aa91542934 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
@@ -637,7 +637,6 @@ struct npc_gothik_minion_livingtrainee : public npc_gothik_minion_baseAI
DoCastAOE(SPELL_DEATH_PLAGUE);
_deathPlagueTimer = urandms(5, 20);
}
- DoMeleeAttackIfReady();
}
uint32 _deathPlagueTimer;
};
@@ -655,7 +654,6 @@ struct npc_gothik_minion_livingknight : public npc_gothik_minion_baseAI
DoCastAOE(SPELL_SHADOW_MARK);
_whirlwindTimer = urandms(15, 20);
}
- DoMeleeAttackIfReady();
}
uint32 _whirlwindTimer;
};
@@ -685,8 +683,6 @@ struct npc_gothik_minion_livingrider : public npc_gothik_minion_baseAI
DoCastAOE(SPELL_SHADOW_BOLT_VOLLEY);
_boltVolleyTimer = urandms(10, 15);
}
- if (!me->HasUnitState(UNIT_STATE_CASTING))
- DoMeleeAttackIfReady();
npc_gothik_minion_baseAI::_UpdateAI(diff);
}
@@ -706,7 +702,6 @@ struct npc_gothik_minion_spectraltrainee : public npc_gothik_minion_baseAI
DoCastAOE(SPELL_ARCANE_EXPLOSION);
_explosionTimer = 2 * IN_MILLISECONDS;
}
- DoMeleeAttackIfReady();
}
uint32 _explosionTimer;
};
@@ -724,7 +719,6 @@ struct npc_gothik_minion_spectralknight : public npc_gothik_minion_baseAI
DoCastAOE(SPELL_WHIRLWIND);
_whirlwindTimer = urandms(20, 25);
}
- DoMeleeAttackIfReady();
}
uint32 _whirlwindTimer;
};
@@ -789,9 +783,6 @@ struct npc_gothik_minion_spectralrider : public npc_gothik_minion_baseAI
_drainTimer = urandms(10,15);
}
- if (!me->HasUnitState(UNIT_STATE_CASTING))
- DoMeleeAttackIfReady();
-
npc_gothik_minion_baseAI::_UpdateAI(diff);
}
uint32 _frenzyTimer, _drainTimer;
@@ -810,7 +801,6 @@ struct npc_gothik_minion_spectralhorse : public npc_gothik_minion_baseAI
DoCastAOE(SPELL_STOMP);
_stompTimer = urandms(14, 18);
}
- DoMeleeAttackIfReady();
}
uint32 _stompTimer;
};
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
index ad815472a61..d40c0033d28 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
@@ -121,8 +121,6 @@ struct boss_grobbulus : public BossAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
@@ -176,8 +174,6 @@ struct npc_fallout_slime : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
index 645acf28775..7d4d6a8dafe 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
@@ -198,8 +198,6 @@ struct boss_heigan : public BossAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
index 85572114efc..33207c6048d 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
@@ -508,8 +508,6 @@ struct boss_kelthuzad : public BossAI
DoCastVictim(SPELL_FROSTBOLT_SINGLE);
_frostboltCooldown = 3 * IN_MILLISECONDS;
}
- else
- DoMeleeAttackIfReady();
}
uint32 GetData(uint32 data) const override
@@ -691,8 +689,6 @@ struct npc_kelthuzad_skeleton : public npc_kelthuzad_minionAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
};
@@ -706,8 +702,6 @@ struct npc_kelthuzad_banshee : public npc_kelthuzad_minionAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
};
@@ -729,8 +723,6 @@ struct npc_kelthuzad_abomination : public npc_kelthuzad_minionAI
}
else
_woundTimer -= diff;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* killer) override
@@ -817,8 +809,6 @@ struct npc_kelthuzad_guardian : public ScriptedAI
}
else
_bloodTapTimer -= diff;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp b/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp
index 7a83239a2c1..edb25e54339 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp
@@ -131,8 +131,6 @@ struct boss_loatheb : public BossAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
index 2b22b31fff5..7a2b208929b 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
@@ -173,8 +173,6 @@ struct boss_maexxna : public BossAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
index 98de9a42912..956a901e12f 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
@@ -310,8 +310,6 @@ struct boss_noth : public BossAI
me->GetMotionMaster()->MoveChase(me->EnsureVictim());
justBlinked = false;
}
- else
- DoMeleeAttackIfReady();
}
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp
index 79c5b4cf561..2f0afd640d3 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp
@@ -171,8 +171,6 @@ struct boss_patchwerk : public BossAI
Talk(EMOTE_FRENZY);
_enraged = true;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
index 19bb9649717..af68b202029 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
@@ -150,8 +150,6 @@ struct boss_razuvious : public BossAI
return;
}
}
-
- DoMeleeAttackIfReady();
}
void Reset() override
@@ -195,8 +193,6 @@ struct npc_dk_understudy : public ScriptedAI
else
DoCastVictim(SPELL_UNDERSTUDY_BLOOD_STRIKE);
}
-
- DoMeleeAttackIfReady();
}
void OnCharmed(bool isNew) override
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
index 214b8a94918..5de5f9af313 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
@@ -222,6 +222,7 @@ struct boss_sapphiron : public BossAI
void EnterPhaseGround(bool initial)
{
+ me->SetCanMelee(true);
me->SetReactState(REACT_AGGRESSIVE);
events.ScheduleEvent(EVENT_CLEAVE, randtime(Seconds(5), Seconds(15)), 0, PHASE_GROUND);
events.ScheduleEvent(EVENT_TAIL, randtime(Seconds(7), Seconds(10)), 0, PHASE_GROUND);
@@ -313,6 +314,7 @@ struct boss_sapphiron : public BossAI
events.SetPhase(PHASE_FLIGHT);
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
+ me->SetCanMelee(false);
float x, y, z, o;
me->GetHomePosition(x, y, z, o);
me->GetMotionMaster()->MovePoint(1, x, y, z);
@@ -321,8 +323,6 @@ struct boss_sapphiron : public BossAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
else
{
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
index a4a20fb900c..0cb07689954 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
@@ -437,10 +437,7 @@ public:
if (events.IsInPhase(PHASE_THADDIUS) && !me->HasUnitState(UNIT_STATE_CASTING) && me->isAttackReady())
{
if (me->IsWithinMeleeRange(me->GetVictim()))
- {
ballLightningEnabled = false;
- DoMeleeAttackIfReady();
- }
else if (ballLightningUnlocked)
if (Unit* target = SelectTarget(SelectTargetMethod::Random))
DoCast(target, SPELL_BALL_LIGHTNING);
@@ -640,9 +637,6 @@ public:
}
else
powerSurgeTimer -= uiDiff;
-
- if (!isFeignDeath)
- DoMeleeAttackIfReady();
}
private:
@@ -882,8 +876,6 @@ public:
staticFieldTimer = 6 * IN_MILLISECONDS;
}
else staticFieldTimer -= uiDiff;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
index 4e0985c330b..37794e1ae26 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
@@ -522,6 +522,7 @@ struct boss_malygos : public BossAI
events.Reset();
events.SetPhase(phase);
_phase = phase;
+ me->SetCanMelee(phase != PHASE_THREE);
if (setEvents)
SetPhaseEvents();
}
@@ -963,9 +964,6 @@ struct boss_malygos : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING) && _phase != PHASE_NOT_STARTED)
return;
}
-
- if (_phase != PHASE_THREE)
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -1290,8 +1288,6 @@ struct npc_nexus_lord : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
index 1665f76be82..ce20fd86968 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
@@ -179,8 +179,6 @@ struct boss_anomalus : public ScriptedAI
}
else
uiSparkTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
index e86c687b159..6711c9fdab9 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
@@ -195,8 +195,6 @@ struct boss_keristrasza : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
index 9715348d5b3..d7d0d482cf6 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
@@ -310,8 +310,6 @@ struct boss_magus_telestra : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
index 9cb218167d8..807a64a1af2 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp
@@ -166,8 +166,6 @@ struct boss_ormorok : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp
index 4e766d77811..9c2b2669158 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp
@@ -131,8 +131,6 @@ struct boss_drakos : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp
index 95eaa59cf8f..1d3edeac2ff 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp
@@ -233,8 +233,6 @@ struct boss_eregos : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
index 13b869a4d5e..1c3c8aba52e 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
@@ -273,8 +273,6 @@ struct boss_urom : public BossAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp
index 2e6357a0794..f5800dfd2da 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp
@@ -148,8 +148,6 @@ struct boss_varos : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -196,14 +194,6 @@ struct npc_azure_ring_captain : public ScriptedAI
}
}
- void UpdateAI(uint32 /*diff*/) override
- {
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
-
void MovementInform(uint32 type, uint32 id) override
{
if (type != POINT_MOTION_TYPE ||
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_general_bjarngrim.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_general_bjarngrim.cpp
index 05211042a1f..5d84e2d8f88 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_general_bjarngrim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_general_bjarngrim.cpp
@@ -308,8 +308,6 @@ struct boss_general_bjarngrim : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -367,8 +365,6 @@ struct npc_bjarngrim_stormforged_lieutenant : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
EventMap _events;
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
index 85f73a09536..9d12dfc627a 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
@@ -264,8 +264,6 @@ struct boss_ionar : public BossAI
DoCast(me, SPELL_DISPERSE, false);
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
index 099bd3a86a3..3073080d109 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp
@@ -167,8 +167,6 @@ struct boss_loken : public BossAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
index 53fcdb94f43..edc671e4ff5 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
@@ -283,8 +283,6 @@ struct boss_volkhan : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -366,8 +364,6 @@ struct npc_volkhan_molten_golem : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp
index 25b0dd77579..f73b3457789 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp
@@ -114,8 +114,6 @@ struct boss_krystallus : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
index d8bdf29bfc8..1bd410c272d 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp
@@ -128,8 +128,6 @@ struct boss_maiden_of_grief : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
index 7d575f0d16a..f58c5c988c3 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp
@@ -247,8 +247,6 @@ struct boss_sjonnir : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -385,10 +383,7 @@ struct npc_iron_sludge : public ScriptedAI
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
index 6641c7bd186..5615eed4932 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
@@ -672,8 +672,6 @@ struct npc_brann_hos : public EscortAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
bool OnGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
index f823561a2ea..94920a013ff 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
@@ -679,8 +679,6 @@ struct boss_algalon_the_observer : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING) && !events.IsInPhase(PHASE_ROLE_PLAY))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
index 0db4f8b942f..dd63139d377 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp
@@ -269,8 +269,6 @@ class boss_steelbreaker : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -437,8 +435,6 @@ class boss_runemaster_molgeim : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -652,8 +648,6 @@ class boss_stormcaller_brundir : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
index e0e64ffbdbb..f3f6d252769 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
@@ -266,8 +266,6 @@ struct boss_auriaya : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -333,8 +331,6 @@ struct npc_sanctum_sentry : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -436,8 +432,6 @@ struct npc_feral_defender : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void DamageTaken(Unit* /*done_by*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
@@ -495,8 +489,6 @@ struct npc_swarming_guardian : public ScriptedAI
_scheduler.Update(diff);
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
index 61e0854c319..72f768cae53 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
@@ -226,6 +226,7 @@ class boss_flame_leviathan : public CreatureScript
boss_flame_leviathanAI(Creature* creature) : BossAI(creature, DATA_FLAME_LEVIATHAN)
{
Initialize();
+ me->SetCanMelee(false); // DoSpellAttackIfReady
}
void Initialize()
@@ -947,14 +948,6 @@ class npc_colossus : public CreatureScript
if (me->GetHomePosition().IsInDist(&Center, 50.f))
instance->SetData(DATA_COLOSSUS, instance->GetData(DATA_COLOSSUS)+1);
}
-
- void UpdateAI(uint32 /*diff*/) override
- {
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
};
CreatureAI* GetAI(Creature* creature) const override
@@ -1189,8 +1182,6 @@ class npc_freya_ward_summon : public CreatureScript
}
else
lashTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
index eb09f2085fc..496e57f9518 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
@@ -534,8 +534,6 @@ class boss_freya : public CreatureScript
}
}
}
-
- DoMeleeAttackIfReady();
}
// Check if all Trio NPCs are dead - achievement check
@@ -807,8 +805,6 @@ class boss_elder_brightleaf : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void DoAction(int32 action) override
@@ -916,8 +912,6 @@ class boss_elder_stonebark : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void DoAction(int32 action) override
@@ -1010,8 +1004,6 @@ class boss_elder_ironbranch : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void DoAction(int32 action) override
@@ -1081,8 +1073,6 @@ class npc_detonating_lasher : public CreatureScript
}
else
changeTargetTimer -= diff;
-
- DoMeleeAttackIfReady();
}
private:
@@ -1139,8 +1129,6 @@ class npc_ancient_water_spirit : public CreatureScript
}
else
tidalWaveTimer -= diff;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -1213,8 +1201,6 @@ class npc_storm_lasher : public CreatureScript
}
else
stormboltTimer -= diff;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -1262,8 +1248,6 @@ class npc_snaplasher : public CreatureScript
if (!me->HasAura(SPELL_BARK_AURA))
DoCast(SPELL_HARDENED_BARK);
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -1348,8 +1332,6 @@ class npc_ancient_conservator : public CreatureScript
}
else
natureFuryTimer -= diff;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
index 9b9d91c7574..c65f7113b7b 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp
@@ -216,8 +216,6 @@ class boss_general_vezax : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void SpellHitTarget(WorldObject* target, SpellInfo const* spellInfo) override
@@ -364,8 +362,6 @@ class boss_saronite_animus : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
index 4d2b9895876..1f8ffc6da9f 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
@@ -507,8 +507,6 @@ class boss_hodir : public CreatureScript
}
else
gettingColdInHereTimer -= diff;
-
- DoMeleeAttackIfReady();
}
void DoAction(int32 action) override
@@ -663,6 +661,7 @@ class npc_hodir_priest : public CreatureScript
npc_hodir_priestAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
+ me->SetCanMelee(false); // DoSpellAttackIfReady
}
void Reset() override
@@ -720,10 +719,10 @@ class npc_hodir_priest : public CreatureScript
}
void JustDied(Unit* /*killer*/) override
- {
+ {
if (Creature* hodir = instance->GetCreature(DATA_HODIR))
hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS);
- }
+ }
private:
InstanceScript* instance;
@@ -746,6 +745,7 @@ class npc_hodir_shaman : public CreatureScript
npc_hodir_shamanAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
+ me->SetCanMelee(false); // DoSpellAttackIfReady
}
void Reset() override
@@ -811,6 +811,7 @@ class npc_hodir_druid : public CreatureScript
npc_hodir_druidAI(Creature* creature) : ScriptedAI(creature)
{
instance = me->GetInstanceScript();
+ me->SetCanMelee(false); // DoSpellAttackIfReady
}
void Reset() override
@@ -875,6 +876,7 @@ class npc_hodir_mage : public CreatureScript
npc_hodir_mageAI(Creature* creature) : ScriptedAI(creature), summons(me)
{
instance = me->GetInstanceScript();
+ me->SetCanMelee(false); // DoSpellAttackIfReady
}
void Reset() override
@@ -932,10 +934,10 @@ class npc_hodir_mage : public CreatureScript
}
void JustDied(Unit* /*killer*/) override
- {
+ {
if (Creature* hodir = instance->GetCreature(DATA_HODIR))
hodir->AI()->DoAction(ACTION_I_HAVE_THE_COOLEST_FRIENDS);
- }
+ }
private:
InstanceScript* instance;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
index b005d402bb6..b1653004e02 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
@@ -283,8 +283,6 @@ class boss_ignis : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -358,8 +356,6 @@ class npc_iron_construct : public CreatureScript
me->RemoveAura(SPELL_MOLTEN);
_brittled = true;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
index 933bf45563c..db6bfa7b2fd 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
@@ -315,8 +315,6 @@ class boss_kologarn : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
index 06b0f21465d..294e3cf86b1 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
@@ -917,7 +917,6 @@ class boss_leviathan_mk_ii : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
- DoMeleeAttackIfReady();
}
private:
@@ -1337,8 +1336,6 @@ class npc_mimiron_assault_bot : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
index 619eddadea5..5406bb8bb07 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
@@ -654,9 +654,6 @@ struct boss_razorscale : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- if (events.IsInPhase(PHASE_PERMA_GROUND))
- DoMeleeAttackIfReady();
}
private:
@@ -1300,8 +1297,6 @@ struct npc_darkrune_watcher : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1367,8 +1362,6 @@ struct npc_darkrune_guardian : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1434,8 +1427,6 @@ struct npc_darkrune_sentinel : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
index 38145e95a6a..8ead673fc51 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
@@ -798,8 +798,6 @@ class boss_thorim : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void DoAction(int32 action) override
@@ -952,6 +950,8 @@ struct npc_thorim_trashAI : public ScriptedAI
_info = &StaticThorimTrashInfo[i];
ASSERT(_info);
+ if (_info->Type == DARK_RUNE_ACOLYTE)
+ me->SetCanMelee(false); // DoSpellAttackIfReady
}
struct AIHelper
@@ -1101,8 +1101,6 @@ struct npc_thorim_trashAI : public ScriptedAI
if (_info->Type == DARK_RUNE_ACOLYTE)
DoSpellAttackIfReady(SPELL_HOLY_SMITE);
- else
- DoMeleeAttackIfReady();
}
virtual void ExecuteEvent(uint32 eventId) = 0;
@@ -1470,8 +1468,6 @@ class npc_runic_colossus : public CreatureScript
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
@@ -1555,8 +1551,6 @@ class npc_ancient_rune_giant : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
index 6fc929c95c4..fb38edf3c97 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
@@ -385,9 +385,6 @@ struct boss_xt002 : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- if (events.IsInPhase(PHASE_1))
- DoMeleeAttackIfReady();
}
void WaypointReached(uint32 waypointId, uint32 pathId) override
@@ -567,10 +564,7 @@ struct npc_pummeller : public ScriptedAI
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
@@ -667,10 +661,7 @@ struct npc_life_spark : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
index c73d7132a92..fbe017d44ed 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
@@ -1218,8 +1218,6 @@ class npc_guardian_of_yogg_saron : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
void IsSummonedBy(WorldObject* summoner) override
@@ -1392,8 +1390,6 @@ class npc_crusher_tentacle : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1517,8 +1513,6 @@ class npc_immortal_guardian : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
index df36779cace..677248c5ae7 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
@@ -259,9 +259,6 @@ struct boss_ingvar_the_plunderer : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- if (!events.IsInPhase(PHASE_EVENT))
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
index 871499ca53e..b58c1b74988 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
@@ -207,8 +207,6 @@ struct boss_keleseth : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void SummonSkeletons()
@@ -244,6 +242,7 @@ struct npc_vrykul_skeleton : public ScriptedAI
{
// from sniffs
me->SetUninteractible(true);
+ me->SetCanMelee(false);
me->SetStandState(UNIT_STAND_STATE_DEAD);
events.Reset();
@@ -285,6 +284,7 @@ struct npc_vrykul_skeleton : public ScriptedAI
DoCast(me, SPELL_SHADOW_FISSURE, true);
DoCastAOE(SPELL_BONE_ARMOR, true);
me->SetUninteractible(false);
+ me->SetCanMelee(true);
me->SetStandState(UNIT_STAND_STATE_STAND);
me->GetMotionMaster()->MoveChase(me->GetVictim());
events.ScheduleEvent(EVENT_DECREPIFY, 4s, 6s);
@@ -296,9 +296,6 @@ struct npc_vrykul_skeleton : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- if (!me->IsUninteractible())
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
index 3e6103542a4..d0f969089e0 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp
@@ -78,8 +78,6 @@ struct npc_dragonflayer_forge_master : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
@@ -249,8 +247,6 @@ struct npc_enslaved_proto_drake : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
index 93562e43267..26280c7d9b2 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
@@ -306,8 +306,6 @@ struct boss_skadi : public BossAI
{
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
}
@@ -498,10 +496,7 @@ struct npc_skadi_trashAI : public ScriptedAI
{
UpdateVictim();
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
virtual void ScheduleTasks() = 0;
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
index 00b32535e3e..fc22bd8f9bb 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
@@ -154,11 +154,15 @@ struct boss_svala : public BossAI
_Reset();
if (_introCompleted)
+ {
events.SetPhase(NORMAL);
+ me->SetCanMelee(true);
+ }
else
{
events.SetPhase(IDLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetCanMelee(false);
}
me->SetDisableGravity(false);
@@ -190,6 +194,7 @@ struct boss_svala : public BossAI
{
events.SetPhase(INTRO);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetCanMelee(false);
if (GameObject* mirror = instance->GetGameObject(DATA_UTGARDE_MIRROR))
mirror->SetGoState(GO_STATE_READY);
@@ -234,11 +239,9 @@ struct boss_svala : public BossAI
_sacrificed = true;
events.SetPhase(SACRIFICING);
events.ScheduleEvent(EVENT_RITUAL_PREPARATION, 0s, 0, SACRIFICING);
+ me->SetCanMelee(false);
}
- if (events.IsInPhase(NORMAL))
- DoMeleeAttackIfReady();
-
while (uint32 eventId = events.ExecuteEvent())
{
switch (eventId)
@@ -329,6 +332,7 @@ struct boss_svala : public BossAI
arthas->DespawnOrUnsummon();
_arthasGUID.Clear();
events.SetPhase(NORMAL);
+ me->SetCanMelee(true);
_introCompleted = true;
if (Unit* target = me->SelectNearestPlayer(100.0f))
AttackStart(target);
@@ -373,6 +377,7 @@ struct boss_svala : public BossAI
case EVENT_FINISH_RITUAL:
me->SetDisableGravity(false);
me->SetReactState(REACT_AGGRESSIVE);
+ me->SetCanMelee(true);
events.SetPhase(NORMAL);
events.ScheduleEvent(EVENT_SINISTER_STRIKE, 7s, 0, NORMAL);
events.ScheduleEvent(EVENT_CALL_FLAMES, 10s, 20s, 0, NORMAL);
@@ -534,8 +539,6 @@ struct npc_scourge_hulk : public ScriptedAI
}
else
volatileInfection -= diff;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp
index 8373f5faefa..5fbb08c2901 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp
@@ -109,8 +109,6 @@ struct boss_archavon : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
index 1eef9198b57..f328d8e1696 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
@@ -153,8 +153,6 @@ struct boss_emalon : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -239,8 +237,6 @@ struct npc_tempest_minion : public ScriptedAI
DoCastVictim(SPELL_SHOCK);
_events.ScheduleEvent(EVENT_SHOCK, 20s);
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp
index 851700b1b39..91d7d824184 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp
@@ -94,8 +94,6 @@ struct boss_koralon : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
index 4c14f24e3e1..b090bce918a 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
@@ -96,8 +96,6 @@ struct boss_toravon : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
index 1ae2ca29064..58b119ffbad 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
@@ -72,10 +72,7 @@ struct boss_cyanigosa : public BossAI
if (!UpdateVictim())
return;
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
void ScheduleTasks() override
diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
index 59a18ef1f67..8bc988e8560 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
@@ -172,8 +172,6 @@ struct boss_erekem : public BossAI
{
if (_phase == 1)
DoSpellAttackIfReady(SPELL_STORMSTRIKE);
- else
- DoMeleeAttackIfReady();
});
}
@@ -265,10 +263,7 @@ struct npc_erekem_guard : public ScriptedAI
if (!UpdateVictim())
return;
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
void ScheduledTasks()
diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
index faa9c08fbc3..4b86e483a03 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
@@ -193,10 +193,7 @@ struct boss_ichoron : public BossAI
_isFrenzy = true;
}
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
void ScheduleTasks() override
diff --git a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
index aa3c2a49329..8e2af4c38db 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
@@ -53,10 +53,7 @@ struct boss_lavanthor : public BossAI
if (!UpdateVictim())
return;
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
void ScheduleTasks() override
diff --git a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
index 974360cda3a..016b7a8e570 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
@@ -61,10 +61,7 @@ struct boss_moragg : public BossAI
if (!UpdateVictim())
return;
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
void ScheduleTasks() override
diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
index 727f5a33072..b5c8bf15927 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
@@ -128,10 +128,7 @@ struct boss_xevozz : public BossAI
if (!UpdateVictim())
return;
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
void ScheduleTasks() override
diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
index cd5f79f0861..c98b520d5b6 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
@@ -116,10 +116,7 @@ struct boss_zuramat : public BossAI
if (!UpdateVictim())
return;
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
void ScheduleTasks() override
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
index 16553c78709..91b087f1ef6 100644
--- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
@@ -432,8 +432,6 @@ struct npc_sinclari_vh : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
void ScheduleIntro()
@@ -920,10 +918,7 @@ struct violet_hold_trashAI : public EscortAI
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
virtual void ScheduledTasks() { }
diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp
index ef6846d7882..1bdff8f8adf 100644
--- a/src/server/scripts/Northrend/zone_borean_tundra.cpp
+++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp
@@ -114,8 +114,6 @@ struct npc_beryl_sorcerer : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
EventMap _events;
@@ -638,8 +636,6 @@ struct npc_hidden_cultist : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
bool OnGossipHello(Player* player) override
@@ -1083,8 +1079,6 @@ struct npc_thassarian : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -1227,7 +1221,6 @@ struct npc_counselor_talbot : public ScriptedAI
}
}
}
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -1312,10 +1305,7 @@ struct npc_bloodmage_laurith : public ScriptedAI
void UpdateAI(uint32 diff) override
{
if (UpdateVictim())
- {
- DoMeleeAttackIfReady();
return;
- }
_events.Update(diff);
diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp
index d66b74dfb1e..fd99ee345f2 100644
--- a/src/server/scripts/Northrend/zone_dragonblight.cpp
+++ b/src/server/scripts/Northrend/zone_dragonblight.cpp
@@ -341,7 +341,6 @@ struct npc_commander_eligor_dawnbringer : public ScriptedAI
break;
}
}
- DoMeleeAttackIfReady();
}
private:
EventMap _events;
diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
index 2b22cf699c3..74f88fb2e12 100644
--- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
@@ -342,7 +342,6 @@ struct npc_tallhorn_stag : public ScriptedAI
}
if (!UpdateVictim())
return;
- DoMeleeAttackIfReady();
}
private:
uint8 _phase;
@@ -459,14 +458,6 @@ struct npc_wounded_skirmisher : public ScriptedAI
}
}
}
-
- void UpdateAI(uint32 /*diff*/) override
- {
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
private:
Milliseconds _despawnTimer;
};
@@ -550,7 +541,6 @@ struct npc_venture_co_straggler : public ScriptedAI
if (!UpdateVictim())
return;
- DoMeleeAttackIfReady();
}
void SpellHit(WorldObject* caster, SpellInfo const* spellInfo) override
diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp
index 89ebec5526c..2bfb9902ba3 100644
--- a/src/server/scripts/Northrend/zone_howling_fjord.cpp
+++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp
@@ -100,8 +100,6 @@ struct npc_daegarn : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
void JustSummoned(Creature* summon) override
diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp
index e59c7dd5ed8..a043f399dda 100644
--- a/src/server/scripts/Northrend/zone_icecrown.cpp
+++ b/src/server/scripts/Northrend/zone_icecrown.cpp
@@ -98,8 +98,6 @@ struct npc_argent_valiant : public ScriptedAI
DoCastVictim(SPELL_SHIELD_BREAKER);
uiShieldBreakerTimer = 10000;
} else uiShieldBreakerTimer -= uiDiff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp
index f271d5161cf..f8f8238e1ab 100644
--- a/src/server/scripts/Northrend/zone_storm_peaks.cpp
+++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp
@@ -526,6 +526,7 @@ struct npc_wild_wyrm : public VehicleAI
InitSpellsForPhase();
me->SetImmuneToPC(false);
+ me->SetCanMelee(true);
}
void DoAction(int32 action) override
@@ -565,6 +566,7 @@ struct npc_wild_wyrm : public VehicleAI
_playerGuid = caster->GetGUID();
DoCastAOE(SPELL_FULL_HEAL_MANA, true);
me->SetImmuneToPC(true);
+ me->SetCanMelee(false);
me->GetMotionMaster()->MovePoint(POINT_START_FIGHT, *caster);
}
@@ -697,8 +699,7 @@ struct npc_wild_wyrm : public VehicleAI
{
if (!_playerGuid)
{
- if (UpdateVictim())
- DoMeleeAttackIfReady();
+ UpdateVictim();
return;
}
diff --git a/src/server/scripts/Northrend/zone_wintergrasp.cpp b/src/server/scripts/Northrend/zone_wintergrasp.cpp
index 5bcdcd4c8c1..1a8cb65d783 100644
--- a/src/server/scripts/Northrend/zone_wintergrasp.cpp
+++ b/src/server/scripts/Northrend/zone_wintergrasp.cpp
@@ -254,8 +254,6 @@ struct npc_wg_queue : public ScriptedAI
FrostArmor_Timer = 180000;
}
else FrostArmor_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
bool OnGossipHello(Player* player) override
diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp
index 456ceb98b0a..297caf347f0 100644
--- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp
+++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp
@@ -189,8 +189,6 @@ struct boss_exarch_maladaar : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -337,10 +335,7 @@ struct npc_stolen_soul : public ScriptedAI
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
private:
diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp
index e1bb2798032..ab70b02cb57 100644
--- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp
+++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp
@@ -150,8 +150,6 @@ struct boss_shirrak_the_dead_watcher : public BossAI
}
FocusFire_Timer = 15000 + (rand32() % 5000);
} else FocusFire_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -192,8 +190,6 @@ struct npc_focus_fire : public ScriptedAI
FieryBlast_Timer = 1000;
} else FieryBlast_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
index c42902b6085..2206ca223df 100644
--- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
@@ -332,8 +332,6 @@ struct npc_yor : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp
index db3559a32de..dc75a3d01c0 100644
--- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp
+++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp
@@ -151,8 +151,6 @@ struct boss_anzu : public BossAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp
index 813d5ce4e46..7638c6f7e1f 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp
@@ -164,8 +164,6 @@ struct boss_ambassador_hellmaw : public EscortAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
index d7d3c6245c7..05b01283d1d 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
@@ -163,8 +163,6 @@ struct boss_blackheart_the_inciter : public BossAI
if (me->HasReactState(REACT_PASSIVE) || me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void WaypointReached(uint32 waypointId, uint32 pathId) override
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp
index de1d1107cd2..8bcaf3d5faf 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp
@@ -166,8 +166,6 @@ struct boss_grandmaster_vorpil : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
index 47655500d92..8165adca845 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp
@@ -148,8 +148,6 @@ struct boss_murmur : public BossAI
if (!me->IsWithinMeleeRange(me->GetVictim()))
me->GetThreatManager().ResetThreat(me->GetVictim());
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.cpp b/src/server/scripts/Outland/BlackTemple/black_temple.cpp
index c7af1be4c76..b8cad82d8a7 100644
--- a/src/server/scripts/Outland/BlackTemple/black_temple.cpp
+++ b/src/server/scripts/Outland/BlackTemple/black_temple.cpp
@@ -167,7 +167,6 @@ struct npc_wrathbone_flayer : public ScriptedAI
break;
}
}
- DoMeleeAttackIfReady();
}
private:
@@ -225,8 +224,6 @@ struct npc_angered_soul_fragment : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp b/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp
index a8da948a5aa..cb73cfbb607 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp
@@ -263,8 +263,6 @@ struct boss_gurtogg_bloodboil : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void ChangePhase()
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
index ed26aa1867b..7256342ef56 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
@@ -1037,8 +1037,6 @@ struct boss_illidan_stormrage : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1359,8 +1357,6 @@ struct npc_akama_illidan : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1415,8 +1411,6 @@ struct npc_parasitic_shadowfiend : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
@@ -1531,8 +1525,6 @@ struct npc_flame_of_azzinoth : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* /*killer*/) override
@@ -1753,8 +1745,6 @@ struct npc_maiev : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp
index ae4fa8522c9..d4e04e9b8c5 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp
@@ -450,7 +450,10 @@ private:
struct boss_lady_malande : public IllidariCouncilBossAI
{
- boss_lady_malande(Creature* creature) : IllidariCouncilBossAI(creature, DATA_LADY_MALANDE) { }
+ boss_lady_malande(Creature* creature) : IllidariCouncilBossAI(creature, DATA_LADY_MALANDE)
+ {
+ me->SetCanMelee(false); // DoSpellAttackIfReady
+ }
void ScheduleEvents() override
{
diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
index 2deea39af21..049ecbb80bb 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
@@ -376,8 +376,6 @@ struct boss_essence_of_suffering : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
bool _dead;
@@ -481,8 +479,6 @@ struct boss_essence_of_desire : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
bool _dead;
@@ -579,8 +575,6 @@ struct boss_essence_of_anger : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -641,8 +635,6 @@ struct npc_enslaved_soul : public ScriptedAI
return;
_scheduler.Update(diff);
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
index e1c9b76bc48..6ba5bebf0d8 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp
@@ -337,8 +337,6 @@ struct boss_shade_of_akama : public BossAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -518,8 +516,6 @@ struct npc_akama_shade : public ScriptedAI
{
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
}
@@ -757,8 +753,6 @@ struct npc_ashtongue_sorcerer : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
@@ -825,8 +819,6 @@ struct npc_ashtongue_defender : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -883,8 +875,6 @@ struct npc_ashtongue_rogue : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -941,8 +931,6 @@ struct npc_ashtongue_elementalist : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1029,8 +1017,6 @@ struct npc_ashtongue_spiritbinder : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
index 366848cb07c..fa05e56fe88 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
@@ -187,8 +187,6 @@ struct boss_teron_gorefiend : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -272,10 +270,7 @@ struct npc_shadowy_construct : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
void SelectNewTarget()
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp
index 3eb49532f94..ec0a2031a71 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp
@@ -274,8 +274,6 @@ struct boss_fathomlord_karathress : public BossAI
Talk(SAY_GAIN_BLESSING);
}
}
-
- DoMeleeAttackIfReady();
}
};
@@ -406,8 +404,6 @@ struct boss_fathomguard_sharkkis : public ScriptedAI
}
}
} else Pet_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -516,8 +512,6 @@ struct boss_fathomguard_tidalvess : public ScriptedAI
}
else
Earthbind_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -630,8 +624,6 @@ struct boss_fathomguard_caribdis : public ScriptedAI
}
else
Heal_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
Unit* selectAdvisorUnit()
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp
index f22d7fe791a..bca8c87145f 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp
@@ -372,8 +372,6 @@ struct boss_hydross_the_unstable : public BossAI
DoCast(me, SPELL_ENRAGE);
EnrageTimer = 60000;
} else EnrageTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
index 6cec120340f..8b7b09e835d 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp
@@ -212,6 +212,7 @@ struct boss_lady_vashj : public BossAI
_Reset();
me->SetCorpseDelay(1000*60*60);
+ me->SetCanMelee(true);
}
// Called when a tainted elemental dies
@@ -380,6 +381,7 @@ struct boss_lady_vashj : public BossAI
{
// Phase 2 begins when Vashj hits 70%. She will run to the middle of her platform and surround herself in a shield making her invulerable.
Phase = 2;
+ me->SetCanMelee(false);
me->GetMotionMaster()->Clear();
DoTeleportTo(MIDDLE_X, MIDDLE_Y, MIDDLE_Z);
@@ -413,9 +415,6 @@ struct boss_lady_vashj : public BossAI
} else SummonSporebatTimer -= diff;
}
- // Melee attack
- DoMeleeAttackIfReady();
-
// CheckTimer - used to check if somebody is in melee range
if (CheckTimer <= diff)
{
@@ -517,6 +516,8 @@ struct boss_lady_vashj : public BossAI
me->RemoveAurasDueToSpell(SPELL_MAGIC_BARRIER);
+ me->SetCanMelee(true);
+
Talk(SAY_PHASE3);
Phase = 3;
@@ -682,7 +683,6 @@ struct npc_toxic_sporebat : public ScriptedAI
{
Initialize();
instance = creature->GetInstanceScript();
- EnterEvadeMode();
}
void Initialize()
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
index 10bdf3bc631..4db5d93b6e6 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
@@ -166,8 +166,6 @@ struct npc_inner_demon : public ScriptedAI
DoCastVictim(SPELL_SHADOWBOLT, false);
ShadowBolt_Timer = 10000;
} else ShadowBolt_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -229,6 +227,7 @@ struct boss_leotheras_the_blind : public BossAI
me->SetDisplayId(MODEL_NIGHTELF);
me->SetVirtualItem(0, 0);
me->SetVirtualItem(1, 0);
+ me->SetCanMelee(true);
DoCast(me, SPELL_DUAL_WIELD, true);
me->SetCorpseDelay(1000*60*60);
_Reset();
@@ -472,12 +471,12 @@ struct boss_leotheras_the_blind : public BossAI
Talk(SAY_SWITCH_TO_DEMON);
me->SetVirtualItem(0, 0);
me->SetVirtualItem(1, 0);
+ me->SetCanMelee(false);
DemonForm = true;
NeedThreatReset = true;
SwitchToDemon_Timer = 45000;
} else SwitchToDemon_Timer -= diff;
}
- DoMeleeAttackIfReady();
}
else
{
@@ -543,6 +542,7 @@ struct boss_leotheras_the_blind : public BossAI
//switch to nightelf form
me->SetDisplayId(MODEL_NIGHTELF);
me->LoadEquipment();
+ me->SetCanMelee(true);
CastConsumingMadness();
DespawnDemon();
@@ -757,7 +757,6 @@ struct npc_greyheart_spellbinder : public ScriptedAI
}
Earthshock_Timer = urand(8000, 15000);
} else Earthshock_Timer -= diff;
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
index 76666bd0141..a89ec5c1ec0 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
@@ -140,6 +140,7 @@ struct boss_the_lurker_below : public BossAI
me->SetVisible(false); // we start invis under water, submerged
me->SetUninteractible(true);
me->SetImmuneToPC(true);
+ me->SetCanMelee(true);
}
void JustDied(Unit* /*killer*/) override
@@ -175,6 +176,7 @@ struct boss_the_lurker_below : public BossAI
if (Submerged)
{
me->SetVisible(true);
+ me->SetCanMelee(true);
Submerged = false;
WaitTimer2 = 500;
}
@@ -213,6 +215,7 @@ struct boss_the_lurker_below : public BossAI
if (PhaseTimer <= diff)
{
me->InterruptNonMeleeSpells(false);
+ me->SetCanMelee(false);
DoCast(me, SPELL_SUBMERGE);
PhaseTimer = 60000; // 60secs submerged
Submerged = true;
@@ -311,9 +314,6 @@ struct boss_the_lurker_below : public BossAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
-
}
else // submerged
{
@@ -324,6 +324,7 @@ struct boss_the_lurker_below : public BossAI
me->RemoveAllAuras();
me->SetImmuneToPC(false);
me->SetEmoteState(EMOTE_ONESHOT_NONE);
+ me->SetCanMelee(true);
DoCast(me, SPELL_EMERGE, true);
Spawned = false;
SpoutTimer = 3000; // directly cast Spout after emerging!
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
index f3273232950..24ee3e052b0 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
@@ -266,8 +266,6 @@ struct boss_morogrim_tidewalker : public BossAI
WateryGlobules_Timer = 25000;
} else WateryGlobules_Timer -= diff;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp
index ce61bc7e4bc..20e0ec3acf9 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp
@@ -165,8 +165,6 @@ class npc_coilfang_waterelemental : public CreatureScript
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp
index c28fab71823..b338d95da56 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp
@@ -184,8 +184,6 @@ public:
Summon25 = true;
}
}
-
- DoMeleeAttackIfReady();
}
};
@@ -264,8 +262,6 @@ public:
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
index a964059daf0..f48f1c5c4f1 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp
@@ -195,8 +195,6 @@ public:
Impale_Timer = 7500 + rand32() % 5000;
} else Impale_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp
index 715472ca760..0cfddfccd73 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp
@@ -122,8 +122,6 @@ struct boss_mennu_the_betrayer : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp
index 197d2a73332..81d8c350087 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp
@@ -105,8 +105,6 @@ struct boss_quagmirran : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp
index 45768c64463..90e4592ae8f 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp
@@ -113,8 +113,6 @@ struct boss_rokmar_the_crackler : public BossAI
DoCast(me, SPELL_FRENZY);
rokmarFrenzy = true;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_hungarfen.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_hungarfen.cpp
index 916783f03e3..9bea2aba958 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_hungarfen.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_hungarfen.cpp
@@ -89,10 +89,7 @@ struct boss_hungarfen : public BossAI
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
if (!HealthAbovePct(20) && !_roared)
{
diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp
index 3aa3f7c4541..14542c3a1dd 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp
@@ -133,8 +133,6 @@ struct boss_the_black_stalker : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void WaypointReached(uint32 waypointId, uint32 pathId) override
diff --git a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp
index d2a3aaa3ed6..8dfa2b32769 100644
--- a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp
+++ b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp
@@ -257,8 +257,6 @@ class boss_gruul : public CreatureScript
}
else
m_uiGroundSlamTimer -= diff;
-
- DoMeleeAttackIfReady();
}
}
};
diff --git a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
index 78c3e190c50..ea41b09f83c 100644
--- a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
+++ b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp
@@ -195,8 +195,6 @@ public:
Roar_Timer = 40000 + (rand32() % 10000);
} else Roar_Timer -= diff;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -294,8 +292,6 @@ public:
DoCast(target, SPELL_DEATH_COIL);
DeathCoil_Timer = 20000;
} else DeathCoil_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -389,8 +385,6 @@ public:
DoCastVictim(SPELL_ARCANE_EXPLOSION);
ArcaneExplosion_Timer = 30000;
} else ArcaneExplosion_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -472,8 +466,6 @@ public:
DoCast(me, SPELL_PRAYER_OH);
PrayerofHealing_Timer = urand(35000, 50000);
} else PrayerofHealing_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
index 2c281a65d43..c656675f034 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp
@@ -194,8 +194,6 @@ struct BroggokPrisionersAI : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
protected:
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
index 5cd96d0a79b..ffc293cc209 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
@@ -244,8 +244,6 @@ class boss_kelidan_the_breaker : public CreatureScript
}
else
BurningNova_Timer -=diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -356,8 +354,6 @@ class npc_shadowmoon_channeler : public CreatureScript
}
else
ShadowBolt_Timer -=diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp
index 266cd8dfbee..b51703267d0 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp
@@ -211,8 +211,6 @@ class boss_omor_the_unscarred : public CreatureScript
}
else
Shadowbolt_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp
index 02f5fb96ccd..09cb9d4b9e6 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp
@@ -182,8 +182,6 @@ class boss_nazan : public CreatureScript
else
BellowingRoar_Timer -= diff;
}
-
- DoMeleeAttackIfReady();
}
}
@@ -273,8 +271,6 @@ class boss_vazruden : public CreatureScript
}
else
Revenge_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
private:
@@ -515,8 +511,6 @@ class npc_hellfire_sentry : public CreatureScript
}
else
KidneyShot_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp
index 778855df653..a2e73cc357a 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp
@@ -162,8 +162,6 @@ class boss_watchkeeper_gargolmar : public CreatureScript
yelledForHeal = true;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
index b6f9ffbc92d..1ca650aefd9 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
@@ -290,8 +290,6 @@ struct boss_magtheridon : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -399,8 +397,6 @@ struct npc_hellfire_channeler : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp
index 24529fbef8a..3d190ef247a 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp
@@ -111,6 +111,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript
{
_Reset();
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ me->SetCanMelee(true);
Initialize();
}
@@ -273,9 +274,10 @@ class boss_grand_warlock_nethekurse : public CreatureScript
DeathCoil_Timer -= diff;
if (!HealthAbovePct(20))
+ {
Phase = true;
-
- DoMeleeAttackIfReady();
+ me->SetCanMelee(false);
+ }
}
}
@@ -353,8 +355,6 @@ class npc_fel_orc_convert : public CreatureScript
DoCastVictim(SPELL_HEMORRHAGE);
events.ScheduleEvent(EVENT_HEMORRHAGE, 15s);
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
index 45d8f4d7852..854f8ec4eb7 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp
@@ -367,8 +367,6 @@ class boss_warbringer_omrogg : public CreatureScript
}
else
ThunderClap_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp
index eced2630e10..c8c63e92cb3 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp
@@ -299,8 +299,6 @@ class boss_warchief_kargath_bladefist : public CreatureScript
}
else
Summon_Assistant_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
if (resetcheck_timer <= diff)
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp
index 3fca93a1a44..027dcc85260 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp
@@ -170,8 +170,6 @@ class boss_shattered_executioner : public CreatureScript
}
else
cleaveTimer -= diff;
-
- DoMeleeAttackIfReady();
}
private:
uint32 cleaveTimer;
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
index aa42fe49dfa..26e5071f66f 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp
@@ -442,19 +442,9 @@ struct boss_alar : public BossAI
FlamePatch_Timer -= diff;
}
- DoMeleeAttackIfReady();
- }
-
- void DoMeleeAttackIfReady()
- {
if (me->isAttackReady() && !me->IsNonMeleeSpellCast(false))
{
- if (me->IsWithinMeleeRange(me->GetVictim()))
- {
- me->AttackerStateUpdate(me->GetVictim());
- me->resetAttackTimer();
- }
- else
+ if (!me->IsWithinMeleeRange(me->GetVictim()))
{
if (Unit* target = me->SelectNearestTargetInAttackDistance(5))
AttackStart(target);
@@ -533,8 +523,6 @@ struct npc_ember_of_alar : public ScriptedAI
me->KillSelf();
//me->SetVisibility(VISIBILITY_OFF);
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
index 806d379c0fc..4ae564a5b3c 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp
@@ -395,8 +395,6 @@ struct boss_high_astromancer_solarian : public BossAI
me->SetArmor(WV_ARMOR, 0);
me->SetDisplayId(MODEL_VOIDWALKER);
}
-
- DoMeleeAttackIfReady();
}
};
@@ -470,8 +468,6 @@ struct npc_solarium_priest : public ScriptedAI
}
else
aoesilenceTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
index 4a9c11101c7..eb7c25db955 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
@@ -745,9 +745,6 @@ struct boss_kaelthas : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING) && !me->FindCurrentSpellBySpellId(SPELL_KAEL_GAINING_POWER) && !me->FindCurrentSpellBySpellId(SPELL_KAEL_STUNNED))
return;
}
-
- if (events.IsInPhase(PHASE_COMBAT))
- DoMeleeAttackIfReady();
}
private:
uint8 _advisorCounter;
@@ -966,8 +963,6 @@ struct boss_thaladred_the_darkener : public advisorbase_ai
}
else
PsychicBlow_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -1019,8 +1014,6 @@ struct boss_lord_sanguinar : public advisorbase_ai
}
else
Fear_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -1202,8 +1195,6 @@ struct boss_master_engineer_telonicus : public advisorbase_ai
}
else
RemoteToy_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
@@ -1265,8 +1256,6 @@ struct npc_phoenix_tk : public ScriptedAI
}
else
Cycle_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp
index b15e165bbe2..75d03ce798d 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp
@@ -139,8 +139,6 @@ struct boss_void_reaver : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp
index 1697cf13df2..a4af7fc1d50 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp
@@ -108,8 +108,6 @@ struct boss_gatewatcher_gyrokill : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp
index 8d09645b02a..770ce2090e8 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp
@@ -114,8 +114,6 @@ struct boss_gatewatcher_iron_hand : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp
index cc13773a290..1da49ecd87f 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp
@@ -152,8 +152,6 @@ struct boss_mechano_lord_capacitus : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp
index 3ca064382e3..9d4325e080d 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp
@@ -134,8 +134,6 @@ struct boss_nethermancer_sepethrea : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -193,8 +191,6 @@ struct npc_raging_flames : public ScriptedAI
return;
_scheduler.Update(diff);
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp
index 11dbd778ab8..779a8a411da 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp
@@ -151,8 +151,6 @@ struct boss_pathaleon_the_calculator : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -220,7 +218,6 @@ struct npc_nether_wraith : public ScriptedAI
else
Die_Timer -= diff;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp
index 765d655a6c9..d8b433b8c3b 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp
@@ -212,8 +212,6 @@ struct npc_millhouse_manastorm : public ScriptedAI
}
else
Fireball_Timer -=diff;
-
- DoMeleeAttackIfReady();
}
};
/*#####
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp
index d445cd2b7e8..cc988250d5d 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp
@@ -178,8 +178,6 @@ struct boss_dalliah_the_doomsayer : public BossAI
soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT);
soccothratesTaunt = true;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
index 62aec2b0374..69d58090969 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
@@ -263,7 +263,6 @@ struct boss_harbinger_skyriss : public BossAI
else
ManaBurn_Timer -=diff;
}
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp
index ab0c7473639..ba95dd2eb50 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp
@@ -271,8 +271,6 @@ struct boss_wrath_scryer_soccothrates : public BossAI
dalliah->AI()->Talk(SAY_SOCCOTHRATES_25_PERCENT);
dalliahTaunt = true;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp
index 9c27ae56381..07530c273af 100644
--- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp
+++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp
@@ -106,8 +106,6 @@ struct boss_zereketh_the_unbound : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp
index 896df533363..3cb7030f1bd 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp
@@ -143,8 +143,6 @@ struct boss_commander_sarannis : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp
index aedc8509b6e..3fa2617f90b 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp
@@ -138,8 +138,6 @@ struct boss_high_botanist_freywinn : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp
index 833df956b12..53ecf51cdfc 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp
@@ -140,8 +140,6 @@ struct boss_laj : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp
index 1af1d6c10cd..ce4d2100ce5 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp
@@ -147,8 +147,6 @@ class boss_thorngrin_the_tender : public CreatureScript
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp
index e4672be695a..65ee3e6d241 100644
--- a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp
+++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp
@@ -137,8 +137,6 @@ struct boss_warp_splinter : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -161,14 +159,6 @@ struct npc_warp_splinter_sapling : public ScriptedAI
me->DespawnOrUnsummon(2s);
}
}
-
- void UpdateAI(uint32 /*diff*/) override
- {
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
};
void AddSC_boss_warp_splinter()
diff --git a/src/server/scripts/Outland/boss_doomlord_kazzak.cpp b/src/server/scripts/Outland/boss_doomlord_kazzak.cpp
index 9d1a56f7dec..769f441e04b 100644
--- a/src/server/scripts/Outland/boss_doomlord_kazzak.cpp
+++ b/src/server/scripts/Outland/boss_doomlord_kazzak.cpp
@@ -155,8 +155,6 @@ struct boss_doomlord_kazzak : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/boss_doomwalker.cpp b/src/server/scripts/Outland/boss_doomwalker.cpp
index f9b48263ba7..392bc3d5451 100644
--- a/src/server/scripts/Outland/boss_doomwalker.cpp
+++ b/src/server/scripts/Outland/boss_doomwalker.cpp
@@ -151,7 +151,6 @@ struct boss_doomwalker : public ScriptedAI
break;
}
}
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
index 5b66e7e43cc..729dce5cda6 100644
--- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
+++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
@@ -219,8 +219,6 @@ public:
DoCastVictim(SPELL_ARCANE_BLAST);
ArcaneBlast_Timer = 2500 + rand32() % 5000;
} else ArcaneBlast_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
index 3766425e621..beeb737ebf6 100644
--- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
+++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
@@ -610,8 +610,6 @@ public:
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
bool OnGossipSelect(Player* player, uint32 /*menuId*/, uint32 /*gossipListId*/) override
@@ -693,8 +691,6 @@ struct npc_watch_commander_leonus : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Outland/zone_nagrand.cpp b/src/server/scripts/Outland/zone_nagrand.cpp
index c13395e9adc..fbebecf1b67 100644
--- a/src/server/scripts/Outland/zone_nagrand.cpp
+++ b/src/server/scripts/Outland/zone_nagrand.cpp
@@ -197,8 +197,6 @@ public:
}
else
FrostShockTimer -= diff;
-
- DoMeleeAttackIfReady();
}
void OnQuestAccept(Player* player, Quest const* quest) override
@@ -392,8 +390,6 @@ public:
DoCastVictim(SPELL_KUR_FROST_SHOCK);
FrostShockTimer = urand(7500, 15000);
} else FrostShockTimer -= diff;
-
- DoMeleeAttackIfReady();
}
void OnQuestAccept(Player* player, Quest const* quest) override
@@ -465,10 +461,7 @@ public:
if (!UpdateVictim())
return;
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
bool IsBannered()
@@ -544,10 +537,7 @@ public:
interrupt_cooldown = 0;
}
- scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ scheduler.Update(diff);
}
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
diff --git a/src/server/scripts/Outland/zone_netherstorm.cpp b/src/server/scripts/Outland/zone_netherstorm.cpp
index 631be8101ac..a895d7b345b 100644
--- a/src/server/scripts/Outland/zone_netherstorm.cpp
+++ b/src/server/scripts/Outland/zone_netherstorm.cpp
@@ -454,8 +454,6 @@ public:
me->SetInCombatWith(player);
}
} // end: support for quest 10190
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
index 3d849c5ce95..b61e5cf87bf 100644
--- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
+++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
@@ -177,14 +177,6 @@ public:
}
}
- void UpdateAI(uint32 /*diff*/) override
- {
- if (!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
- }
-
private:
ObjectGuid casterGUID;
};
@@ -333,8 +325,6 @@ public:
}
else
CastTimer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
@@ -454,8 +444,6 @@ public:
}
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -876,8 +864,6 @@ public:
SpellTimer3 = SpawnCast[8].Timer2 + (rand32() % 7 * 1000);//Spell Reflection
} else SpellTimer3 -= diff;
}
-
- DoMeleeAttackIfReady();
}
void JustDied(Unit* killer) override
@@ -1179,8 +1165,6 @@ public:
SpellTimer2 = SpawnCast[5].Timer2 + (rand32() % 7 * 13000);
} else SpellTimer2 -= diff;
}
-
- DoMeleeAttackIfReady();
}
};
};
@@ -1433,11 +1417,9 @@ public:
}
}
- if (me->GetEntry() == NPC_ENRAGED_FIRE_SPIRIT || me->GetEntry() == NPC_ENRAGED_AIR_SPIRIT)
- if (HealthBelowPct(35) && !me->GetAura(SPELL_ENRAGE))
- DoCastSelf(SPELL_ENRAGE);
-
- DoMeleeAttackIfReady();
+ if (me->GetEntry() == NPC_ENRAGED_FIRE_SPIRIT || me->GetEntry() == NPC_ENRAGED_AIR_SPIRIT)
+ if (HealthBelowPct(35) && !me->GetAura(SPELL_ENRAGE))
+ DoCastSelf(SPELL_ENRAGE);
}
void JustDied(Unit* /*killer*/) override
diff --git a/src/server/scripts/Outland/zone_terokkar_forest.cpp b/src/server/scripts/Outland/zone_terokkar_forest.cpp
index 41e4b00661a..d17045509d5 100644
--- a/src/server/scripts/Outland/zone_terokkar_forest.cpp
+++ b/src/server/scripts/Outland/zone_terokkar_forest.cpp
@@ -142,8 +142,6 @@ public:
DoCast(me, SPELL_PULVERIZE);
Pulverize_Timer = 9000;
} else Pulverize_Timer -= diff;
-
- DoMeleeAttackIfReady();
}
};
};
diff --git a/src/server/scripts/Pandaria/zone_the_wandering_isle.cpp b/src/server/scripts/Pandaria/zone_the_wandering_isle.cpp
index cc32e5117dc..a9bd29a40bf 100644
--- a/src/server/scripts/Pandaria/zone_the_wandering_isle.cpp
+++ b/src/server/scripts/Pandaria/zone_the_wandering_isle.cpp
@@ -153,8 +153,6 @@ struct npc_tushui_huojin_trainee : public ScriptedAI
if (!UpdateVictim())
return;
-
- DoMeleeAttackIfReady();
}
void EnterEvadeMode(EvadeReason why) override
diff --git a/src/server/scripts/Pet/pet_hunter.cpp b/src/server/scripts/Pet/pet_hunter.cpp
index c0e0758df8b..3de4a911416 100644
--- a/src/server/scripts/Pet/pet_hunter.cpp
+++ b/src/server/scripts/Pet/pet_hunter.cpp
@@ -115,8 +115,6 @@ struct npc_pet_hunter_snake_trap : public ScriptedAI
else
_spellTimer -= diff;
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Pet/pet_shaman.cpp b/src/server/scripts/Pet/pet_shaman.cpp
index bb86bb2cc20..d5a4f44f95b 100644
--- a/src/server/scripts/Pet/pet_shaman.cpp
+++ b/src/server/scripts/Pet/pet_shaman.cpp
@@ -63,8 +63,6 @@ struct npc_pet_shaman_earth_elemental : public ScriptedAI
DoCastVictim(SPELL_SHAMAN_ANGEREDEARTH);
_events.ScheduleEvent(EVENT_SHAMAN_ANGEREDEARTH, 5s, 20s);
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -113,8 +111,6 @@ struct npc_pet_shaman_fire_elemental : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/Shadowlands/SepulcherOfTheFirstOnes/boss_anduin_wrynn.cpp b/src/server/scripts/Shadowlands/SepulcherOfTheFirstOnes/boss_anduin_wrynn.cpp
index 0a511949c71..5f959dfa579 100644
--- a/src/server/scripts/Shadowlands/SepulcherOfTheFirstOnes/boss_anduin_wrynn.cpp
+++ b/src/server/scripts/Shadowlands/SepulcherOfTheFirstOnes/boss_anduin_wrynn.cpp
@@ -1026,8 +1026,6 @@ struct boss_anduin_wrynn : public BossAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
void StartIntermission(uint8 intermissionNum)
@@ -1631,8 +1629,6 @@ struct npc_anduin_wrynn_fiendish_soul : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1711,7 +1707,6 @@ struct npc_anduin_wrynn_monstrous_soul : public ScriptedAI
break;
}
}
- DoMeleeAttackIfReady();
}
private:
@@ -1865,8 +1860,6 @@ struct boss_remnant_of_a_fallen_king : public ScriptedAI
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
}
-
- DoMeleeAttackIfReady();
}
private:
@@ -1951,6 +1944,7 @@ struct npc_anduin_wrynn_sylvanas : public ScriptedAI
void JustAppeared() override
{
me->SetReactState(REACT_AGGRESSIVE);
+ me->SetCanMelee(false); // DoSpellAttackIfReady
}
void Reset() override
@@ -2008,6 +2002,7 @@ struct npc_anduin_wrynn_jaina : public ScriptedAI
void JustAppeared() override
{
me->SetReactState(REACT_AGGRESSIVE);
+ me->SetCanMelee(false); // DoSpellAttackIfReady
}
void Reset() override
@@ -2126,8 +2121,6 @@ struct npc_anduin_wrynn_uther : public ScriptedAI
break;
}
}
-
- DoMeleeAttackIfReady();
}
private:
diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp
index 4e7bee33cb8..351436f7f1a 100644
--- a/src/server/scripts/World/boss_emerald_dragons.cpp
+++ b/src/server/scripts/World/boss_emerald_dragons.cpp
@@ -156,8 +156,6 @@ struct emerald_dragonAI : public WorldBossAI
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, -50.0f, true))
DoCast(target, SPELL_SUMMON_PLAYER);
-
- DoMeleeAttackIfReady();
}
};
diff --git a/src/server/scripts/World/npc_guard.cpp b/src/server/scripts/World/npc_guard.cpp
index 879fef3e95e..cfbb8be671a 100644
--- a/src/server/scripts/World/npc_guard.cpp
+++ b/src/server/scripts/World/npc_guard.cpp
@@ -129,12 +129,8 @@ struct npc_guard_generic : public GuardAI
{
me->resetAttackTimer();
DoCastVictim(spellInfo->Id);
- meleeContext.Repeat();
- return;
}
}
- me->AttackerStateUpdate(victim);
- me->resetAttackTimer();
meleeContext.Repeat();
}).Schedule(Seconds(5), [this](TaskContext spellContext)
{
@@ -205,10 +201,7 @@ struct npc_guard_shattrath_faction : public GuardAI
if (!UpdateVictim())
return;
- _scheduler.Update(diff, [this]
- {
- DoMeleeAttackIfReady();
- });
+ _scheduler.Update(diff);
}
void ScheduleVanish()
diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp
index 25d8237f808..afefcc42ba9 100644
--- a/src/server/scripts/World/npcs_special.cpp
+++ b/src/server/scripts/World/npcs_special.cpp
@@ -251,8 +251,7 @@ public:
ResetFlagTimer -= diff;
}
- if (UpdateVictim())
- DoMeleeAttackIfReady();
+ UpdateVictim();
}
void ReceiveEmote(Player* player, uint32 emote) override
diff --git a/src/server/scripts/Zandalar/Underrot/boss_cragmaw_the_infested.cpp b/src/server/scripts/Zandalar/Underrot/boss_cragmaw_the_infested.cpp
index 496f2139fe4..4c174e055a3 100644
--- a/src/server/scripts/Zandalar/Underrot/boss_cragmaw_the_infested.cpp
+++ b/src/server/scripts/Zandalar/Underrot/boss_cragmaw_the_infested.cpp
@@ -198,8 +198,6 @@ struct boss_cragmaw_the_infested : public BossAI
default:
break;
}
-
- DoMeleeAttackIfReady();
}
private:
ObjectGuid _fetidMaggotGuid;
@@ -244,8 +242,6 @@ struct npc_cragmaw_blood_tick : public ScriptedAI
default:
break;
}
-
- DoMeleeAttackIfReady();
}
private:
EventMap _events;
diff --git a/src/server/scripts/Zandalar/Underrot/boss_elder_leaxa.cpp b/src/server/scripts/Zandalar/Underrot/boss_elder_leaxa.cpp
index 531d5b78c75..a22a79be16d 100644
--- a/src/server/scripts/Zandalar/Underrot/boss_elder_leaxa.cpp
+++ b/src/server/scripts/Zandalar/Underrot/boss_elder_leaxa.cpp
@@ -133,8 +133,6 @@ struct boss_elder_leaxa : public BossAI
default:
break;
}
-
- DoMeleeAttackIfReady();
}
};
@@ -183,8 +181,6 @@ struct npc_blood_effigy : public ScriptedAI
default:
break;
}
-
- DoMeleeAttackIfReady();
}
private:
EventMap _events;