mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Creatures: Moved autoattack handling from scripts to game
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -332,8 +332,6 @@ struct npc_yor : public ScriptedAI
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -151,8 +151,6 @@ struct boss_anzu : public BossAI
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -164,8 +164,6 @@ struct boss_ambassador_hellmaw : public EscortAI
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -166,8 +166,6 @@ struct boss_grandmaster_vorpil : public BossAI
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -148,8 +148,6 @@ struct boss_murmur : public BossAI
|
||||
|
||||
if (!me->IsWithinMeleeRange(me->GetVictim()))
|
||||
me->GetThreatManager().ResetThreat(me->GetVictim());
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -263,8 +263,6 @@ struct boss_gurtogg_bloodboil : public BossAI
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
void ChangePhase()
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -372,8 +372,6 @@ struct boss_hydross_the_unstable : public BossAI
|
||||
DoCast(me, SPELL_ENRAGE);
|
||||
EnrageTimer = 60000;
|
||||
} else EnrageTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -266,8 +266,6 @@ struct boss_morogrim_tidewalker : public BossAI
|
||||
WateryGlobules_Timer = 25000;
|
||||
} else WateryGlobules_Timer -= diff;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -165,8 +165,6 @@ class npc_coilfang_waterelemental : public CreatureScript
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -184,8 +184,6 @@ public:
|
||||
Summon25 = true;
|
||||
}
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -264,8 +262,6 @@ public:
|
||||
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -195,8 +195,6 @@ public:
|
||||
|
||||
Impale_Timer = 7500 + rand32() % 5000;
|
||||
} else Impale_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -122,8 +122,6 @@ struct boss_mennu_the_betrayer : public BossAI
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -105,8 +105,6 @@ struct boss_quagmirran : public BossAI
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -113,8 +113,6 @@ struct boss_rokmar_the_crackler : public BossAI
|
||||
DoCast(me, SPELL_FRENZY);
|
||||
rokmarFrenzy = true;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -89,10 +89,7 @@ struct boss_hungarfen : public BossAI
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
_scheduler.Update(diff, [this]
|
||||
{
|
||||
DoMeleeAttackIfReady();
|
||||
});
|
||||
_scheduler.Update(diff);
|
||||
|
||||
if (!HealthAbovePct(20) && !_roared)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -257,8 +257,6 @@ class boss_gruul : public CreatureScript
|
||||
}
|
||||
else
|
||||
m_uiGroundSlamTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -194,8 +194,6 @@ struct BroggokPrisionersAI : public ScriptedAI
|
||||
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -211,8 +211,6 @@ class boss_omor_the_unscarred : public CreatureScript
|
||||
}
|
||||
else
|
||||
Shadowbolt_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -162,8 +162,6 @@ class boss_watchkeeper_gargolmar : public CreatureScript
|
||||
yelledForHeal = true;
|
||||
}
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -367,8 +367,6 @@ class boss_warbringer_omrogg : public CreatureScript
|
||||
}
|
||||
else
|
||||
ThunderClap_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -299,8 +299,6 @@ class boss_warchief_kargath_bladefist : public CreatureScript
|
||||
}
|
||||
else
|
||||
Summon_Assistant_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
if (resetcheck_timer <= diff)
|
||||
|
||||
@@ -170,8 +170,6 @@ class boss_shattered_executioner : public CreatureScript
|
||||
}
|
||||
else
|
||||
cleaveTimer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
private:
|
||||
uint32 cleaveTimer;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -139,8 +139,6 @@ struct boss_void_reaver : public BossAI
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -108,8 +108,6 @@ struct boss_gatewatcher_gyrokill : public BossAI
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -114,8 +114,6 @@ struct boss_gatewatcher_iron_hand : public BossAI
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -152,8 +152,6 @@ struct boss_mechano_lord_capacitus : public BossAI
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -212,8 +212,6 @@ struct npc_millhouse_manastorm : public ScriptedAI
|
||||
}
|
||||
else
|
||||
Fireball_Timer -=diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
/*#####
|
||||
|
||||
@@ -178,8 +178,6 @@ struct boss_dalliah_the_doomsayer : public BossAI
|
||||
soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT);
|
||||
soccothratesTaunt = true;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -263,7 +263,6 @@ struct boss_harbinger_skyriss : public BossAI
|
||||
else
|
||||
ManaBurn_Timer -=diff;
|
||||
}
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -271,8 +271,6 @@ struct boss_wrath_scryer_soccothrates : public BossAI
|
||||
dalliah->AI()->Talk(SAY_SOCCOTHRATES_25_PERCENT);
|
||||
dalliahTaunt = true;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -106,8 +106,6 @@ struct boss_zereketh_the_unbound : public BossAI
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -143,8 +143,6 @@ struct boss_commander_sarannis : public BossAI
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -138,8 +138,6 @@ struct boss_high_botanist_freywinn : public BossAI
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -140,8 +140,6 @@ struct boss_laj : public BossAI
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -147,8 +147,6 @@ class boss_thorngrin_the_tender : public CreatureScript
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -155,8 +155,6 @@ struct boss_doomlord_kazzak : public ScriptedAI
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -151,7 +151,6 @@ struct boss_doomwalker : public ScriptedAI
|
||||
break;
|
||||
}
|
||||
}
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -219,8 +219,6 @@ public:
|
||||
DoCastVictim(SPELL_ARCANE_BLAST);
|
||||
ArcaneBlast_Timer = 2500 + rand32() % 5000;
|
||||
} else ArcaneBlast_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -454,8 +454,6 @@ public:
|
||||
me->SetInCombatWith(player);
|
||||
}
|
||||
} // end: support for quest 10190
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -142,8 +142,6 @@ public:
|
||||
DoCast(me, SPELL_PULVERIZE);
|
||||
Pulverize_Timer = 9000;
|
||||
} else Pulverize_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user