109#define BOILING_BLOOD_HELPER RAID_MODE<int32>(72385, 72441, 72442, 72443)
211 {-509.6505f, 2211.377f, 539.2872f, 0.0f},
212 {-508.7480f, 2211.897f, 539.2870f, 0.0f},
213 {-509.2929f, 2211.411f, 539.2870f, 0.0f},
214 {-506.6607f, 2211.367f, 539.2870f, 0.0f},
215 {-506.1137f, 2213.306f, 539.2870f, 0.0f},
216 {-509.0040f, 2211.743f, 539.2870f, 0.0f}
221 {-514.4834f, 2211.334f, 549.2887f, 0.0f},
222 {-510.1081f, 2211.592f, 546.3773f, 0.0f},
223 {-513.3210f, 2211.396f, 551.2882f, 0.0f},
224 {-507.3684f, 2210.353f, 545.7497f, 0.0f},
225 {-507.0486f, 2212.999f, 545.5512f, 0.0f},
226 {-510.7041f, 2211.069f, 546.5298f, 0.0f}
336 if (damage >=
me->GetHealth())
337 damage =
me->GetHealth() - 1;
367 summon->AI()->AttackStart(target);
411 bloodPower->RecalculateAmountOfEffects();
455 for (
uint32 i10 = 0; i10 < 2; ++i10)
458 for (
uint32 i25 = 0; i25 < 3; ++i25)
515 instance->HandleGameObject(0,
false, teleporter);
553 bloodPower->RecalculateAmountOfEffects();
610 for (std::list<Creature*>::iterator itr =
_guardList.begin(); itr !=
_guardList.end(); ++x, ++itr)
611 (*itr)->AI()->SetData(0, x);
630 me->SetDisableGravity(
false);
631 me->GetMotionMaster()->MoveFall();
652 me->SetDisableGravity(
true);
685 deathbringer->DespawnOrUnsummon();
686 me->DespawnOrUnsummon();
694 std::list<Creature*> guards;
696 for (std::list<Creature*>::iterator itr = guards.begin(); itr != guards.end(); ++itr)
697 (*itr)->DespawnOrUnsummon();
698 me->DespawnOrUnsummon();
730 me->SetFacingToObject(deathbringer);
740 deathbringer->GetClosePoint(x, y, z, deathbringer->GetObjectSize());
775 player->PlayerTalkClass->ClearMenus();
776 player->CLOSE_GOSSIP_MENU();
820 for (std::list<Creature*>::iterator itr =
_guardList.begin(); itr !=
_guardList.end(); ++x, ++itr)
821 (*itr)->AI()->SetData(0, x);
835 me->SetDisableGravity(
false);
836 me->GetMotionMaster()->MoveFall();
842 deathbringer->DespawnOrUnsummon(5000);
857 me->SetDisableGravity(
true);
874 std::list<Creature*> guards;
876 for (std::list<Creature*>::iterator itr = guards.begin(); itr != guards.end(); ++itr)
877 (*itr)->DespawnOrUnsummon();
878 me->DespawnOrUnsummon();
923 player->PlayerTalkClass->ClearMenus();
924 player->CLOSE_GOSSIP_MENU();
951 ASSERT(!type && data && data < 6);
959 me->SetDisableGravity(
true);
969 me->DespawnOrUnsummon();
1066 aura->RecalculateAmountOfEffects();
1082 canBeRecalculated =
true;
1191 if (targets.empty())
1195 uint32 targetsAtRange = 0;
1200 for (std::list<WorldObject*>::iterator itr = targets.begin(); itr != targets.end(); ++itr, ++targetsAtRange)
1201 if ((*itr)->GetDistance(
GetCaster()) < 12.0f)
1205 if (targetsAtRange < minTargets)
1206 targetsAtRange = std::min<uint32>(targets.size() - 1, minTargets);
1208 if (!targetsAtRange)
1214 std::list<WorldObject*>::const_iterator itr = targets.begin();
1215 std::advance(itr, std::rand() % (targetsAtRange));
1218 targets.push_back(
target);
1228 unitList.push_back(
target);
1268 targets.remove(
GetCaster()->GetVictim());
1269 if (targets.empty())
1274 targets.push_back(target);
#define DEFAULT_GOSSIP_MESSAGE
void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_FORCE_CAST
@ TARGET_UNIT_SRC_AREA_ENEMY
@ SPELL_AURA_MOD_DAMAGE_PERCENT_DONE
@ SPELL_AURA_PERIODIC_DUMMY
#define SpellEffectFn(F, I, N)
#define AuraEffectCalcAmountFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
@ TRIGGERED_FULL_MASK
Will ignore most target checks (mostly DBC target checks).
@ UNIT_FLAG_NOT_SELECTABLE
@ UNIT_FIELD_NPC_EMOTESTATE
@ ACTION_MARK_OF_THE_FALLEN_CHAMPION
Position const deathbringerPos
Position const chargePos[6]
@ SPELL_BLOOD_NOVA_TRIGGER
@ SPELL_SUMMON_BLOOD_BEAST
@ SPELL_MARK_OF_THE_FALLEN_CHAMPION
@ SPELL_PERMANENT_FEIGN_DEATH
@ SPELL_SUMMON_BLOOD_BEAST_25_MAN
@ SPELL_REMOVE_MARKS_OF_THE_FALLEN_CHAMPION
@ SPELL_MARK_OF_THE_FALLEN_CHAMPION_S
@ EVENT_OUTRO_ALLIANCE_18
@ EVENT_OUTRO_ALLIANCE_21
@ EVENT_OUTRO_ALLIANCE_20
@ EVENT_OUTRO_ALLIANCE_11
@ EVENT_SUMMON_BLOOD_BEAST
@ EVENT_OUTRO_ALLIANCE_13
@ EVENT_OUTRO_ALLIANCE_12
@ EVENT_OUTRO_ALLIANCE_15
@ EVENT_OUTRO_ALLIANCE_17
@ EVENT_OUTRO_ALLIANCE_16
@ EVENT_OUTRO_ALLIANCE_10
@ EVENT_OUTRO_ALLIANCE_19
@ EVENT_OUTRO_ALLIANCE_14
void AddSC_boss_deathbringer_saurfang()
Position const chokePos[6]
@ SAY_MARK_OF_THE_FALLEN_CHAMPION
Position const firstStepPos
AchievementCriteriaScript(const char *name)
void PreventDefaultAction()
HookList< EffectPeriodicHandler > OnEffectPeriodic
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
Unit * GetUnitOwner() const
InstanceScript *const instance
BossAI(Creature *creature, uint32 bossId)
void DoZoneInCombat(Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
virtual void EnterEvadeMode()
CreatureScript(const char *name)
static GameObject * GetGameObject(WorldObject &object, uint64 guid)
EncounterState GetBossState(uint32 id) const
static Creature * GetCreature(WorldObject const &u, uint64 guid)
HookList< HitHandler > AfterHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
HookList< EffectHandler > OnEffectHitTarget
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
SpellScriptLoader(const char *name)
void DoMeleeAttackIfReady()
void DoCast(uint32 spellId)
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
void DoCastVictim(uint32 spellId, bool triggered=false)
void DoCastAOE(uint32 spellId, bool triggered=false)
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
void RemoveAurasDueToSpell(uint32 spellId, uint64 casterGUID=0, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void CastCustomSpell(Unit *victim, uint32 spellId, int32 const *bp0, int32 const *bp1, int32 const *bp2, bool triggered, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
Vehicle * GetVehicleKit() const
bool OnCheck(Player *, Unit *target) OVERRIDE
achievement_ive_gone_and_made_a_mess()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
boss_deathbringer_saurfang()
bool OnGossipSelect(Player *player, Creature *creature, uint32, uint32 action) OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
npc_high_overlord_saurfang_icc()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_muradin_bronzebeard_icc()
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
bool OnGossipSelect(Player *player, Creature *creature, uint32, uint32 action) OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
bool Validate(SpellInfo const *) OVERRIDE
PrepareSpellScript(spell_deathbringer_blood_link_SpellScript)
void HandleDummy(SpellEffIndex)
void HandlePeriodicTick(AuraEffect const *)
PrepareAuraScript(spell_deathbringer_blood_link_AuraScript)
bool Validate(SpellInfo const *) OVERRIDE
AuraScript * GetAuraScript() const OVERRIDE
spell_deathbringer_blood_link_aura()
SpellScript * GetSpellScript() const OVERRIDE
spell_deathbringer_blood_link()
void HandleScript(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) OVERRIDE
PrepareSpellScript(spell_deathbringer_blood_nova_SpellScript)
PrepareSpellScript(spell_deathbringer_blood_nova_targeting_SpellScript)
void FilterTargetsSubsequent(std::list< WorldObject * > &unitList)
void FilterTargetsInitial(std::list< WorldObject * > &targets)
void HandleForceCast(SpellEffIndex)
SpellScript * GetSpellScript() const OVERRIDE
spell_deathbringer_blood_nova_targeting()
SpellScript * GetSpellScript() const OVERRIDE
spell_deathbringer_blood_nova()
PrepareAuraScript(spell_deathbringer_blood_power_AuraScript)
void RecalculateHook(AuraEffect const *, int32 &amount, bool &canBeRecalculated)
PrepareSpellScript(spell_deathbringer_blood_power_SpellScript)
spell_deathbringer_blood_power()
AuraScript * GetAuraScript() const OVERRIDE
SpellScript * GetSpellScript() const OVERRIDE
PrepareSpellScript(spell_deathbringer_boiling_blood_SpellScript)
void FilterTargets(std::list< WorldObject * > &targets)
SpellScript * GetSpellScript() const OVERRIDE
spell_deathbringer_boiling_blood()
PrepareSpellScript(spell_deathbringer_remove_marks_SpellScript)
void HandleScript(SpellEffIndex effIndex)
SpellScript * GetSpellScript() const OVERRIDE
spell_deathbringer_remove_marks()
PrepareSpellScript(spell_deathbringer_rune_of_blood_SpellScript)
void HandleScript(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) OVERRIDE
SpellScript * GetSpellScript() const OVERRIDE
spell_deathbringer_rune_of_blood()
@ NPC_SE_SKYBREAKER_MARINE
CreatureAI * GetIcecrownCitadelAI(Creature *creature)
@ LIGHT_S_HAMMER_TELEPORT
@ GO_SCOURGE_TRANSPORTER_SAURFANG
@ DATA_DEATHBRINGER_SAURFANG
@ DATA_SAURFANG_EVENT_NPC
C::value_type const & SelectRandomContainerElement(C const &container)
bool HealthBelowPct(uint32 pct) const
const T & RAID_MODE(const T &normal10, const T &normal25) const
ScriptedAI(Creature *creature)
void AttackStart(Unit *) OVERRIDE
void KilledUnit(Unit *victim) OVERRIDE
void SpellHitTarget(Unit *target, SpellInfo const *spell) OVERRIDE
void DoAction(int32 action) OVERRIDE
static uint32 const FightWonValue
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
boss_deathbringer_saurfangAI(Creature *creature)
void AttackStart(Unit *victim) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustReachedHome() OVERRIDE
void EnterEvadeMode() OVERRIDE
void EnterCombat(Unit *who) OVERRIDE
void SummonedCreatureDies(Creature *summon, Unit *) OVERRIDE
uint32 _fallenChampionCastCount
void DamageTaken(Unit *, uint32 &damage) OVERRIDE
uint32 GetData(uint32 type) const OVERRIDE
void JustSummoned(Creature *summon) OVERRIDE
void JustDied(Unit *) OVERRIDE
void MovementInform(uint32 type, uint32 id) OVERRIDE
std::list< Creature * > _guardList
InstanceScript * _instance
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_high_overlord_saurfangAI(Creature *creature)
void MovementInform(uint32 type, uint32 id) OVERRIDE
void DoAction(int32 action) OVERRIDE
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
std::list< Creature * > _guardList
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_muradin_bronzebeard_iccAI(Creature *creature)
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
void DoAction(int32 action) OVERRIDE
void MovementInform(uint32 type, uint32 id) OVERRIDE
InstanceScript * _instance
void SetData(uint32 type, uint32 data) OVERRIDE
npc_saurfang_eventAI(Creature *creature)
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
void DoAction(int32 action) OVERRIDE