125#define BOILING_BLOOD_HELPER RAID_MODE<int32>(72385, 72441, 72442, 72443)
232 {-509.6505f, 2211.377f, 539.2872f, 0.0f},
233 {-508.7480f, 2211.897f, 539.2870f, 0.0f},
234 {-509.2929f, 2211.411f, 539.2870f, 0.0f},
235 {-506.6607f, 2211.367f, 539.2870f, 0.0f},
236 {-506.1137f, 2213.306f, 539.2870f, 0.0f},
237 {-509.0040f, 2211.743f, 539.2870f, 0.0f}
242 {-514.4834f, 2211.334f, 549.2887f, 0.0f},
243 {-510.1081f, 2211.592f, 546.3773f, 0.0f},
244 {-513.3210f, 2211.396f, 551.2882f, 0.0f},
245 {-507.3684f, 2210.353f, 545.7497f, 0.0f},
246 {-507.0486f, 2212.999f, 545.5512f, 0.0f},
247 {-510.7041f, 2211.069f, 546.5298f, 0.0f}
387 if (target->GetTransport())
424 switch (spellInfo->
Id)
449 bloodPower->RecalculateAmountOfEffects();
497 for (
uint32 i10 = 0; i10 < 2; ++i10)
500 for (
uint32 i25 = 0; i25 < 3; ++i25)
589 bloodPower->RecalculateAmountOfEffects();
642 std::vector<Creature*> guardList;
658 std::list<Creature*> guardList;
662 for (
auto itr = guardList.begin(); itr != guardList.end(); ++x, ++itr)
663 (*itr)->AI()->SetData(0, x);
733 deathbringer->SetUninteractible(
true);
742 deathbringer->DespawnOrUnsummon();
795 deathbringer->GetClosePoint(x, y, z, deathbringer->GetCombatReach());
839 std::vector<Creature*> guardList;
856 std::list<Creature*> guardList;
860 for (
auto itr = guardList.begin(); itr != guardList.end(); ++x, ++itr)
861 (*itr)->AI()->SetData(0, x);
884 deathbringer->DespawnOrUnsummon(5s);
959 if (!(!type && data && data < 6))
1035 aura->RecalculateAmountOfEffects();
1049 canBeRecalculated =
true;
1131 if (targets.empty())
1135 uint32 targetsAtRange = 0;
1140 for (std::list<WorldObject*>::iterator itr = targets.begin(); itr != targets.end(); ++itr, ++targetsAtRange)
1141 if ((*itr)->GetDistance(
GetCaster()) < 12.0f)
1145 if (targetsAtRange < minTargets)
1146 targetsAtRange =
uint32(targets.size());
1148 std::list<WorldObject*>::const_iterator itr = targets.begin();
1149 std::advance(itr,
urand(0, targetsAtRange - 1));
1152 targets.push_back(
target);
1162 unitList.push_back(
target);
1190 targets.remove(
GetCaster()->GetVictim());
1191 if (targets.empty())
1196 targets.push_back(target);
uint32 urand(uint32 min, uint32 max)
#define RegisterSpellAndAuraScriptPair(script_1, script_2)
#define RegisterSpellScript(spell_script)
void GetCreatureListWithEntryInGrid(Container &container, WorldObject *source, uint32 entry, float maxSearchRange)
void CloseGossipMenuFor(Player *player)
@ TARGET_UNIT_SRC_AREA_ENEMY
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_FORCE_CAST
@ SPELL_AURA_PROC_TRIGGER_SPELL
@ SPELL_AURA_MOD_DAMAGE_PERCENT_DONE
@ SPELL_AURA_PERIODIC_DUMMY
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
#define AuraEffectProcFn(F, I, N)
#define SpellEffectFn(F, I, N)
#define AuraEffectCalcAmountFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
@ UNIT_FLAG2_PLAY_DEATH_ANIM
@ ACTION_MARK_OF_THE_FALLEN_CHAMPION
@ SPAWN_GROUP_ENTRANCE_THE_DAMNED_EVENT
@ GOSSIP_MENU_HIGH_OVERLORD_SAURFANG
@ GOSSIP_MENU_MURADIN_BRONZEBEARD
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
void PreventDefaultAction()
HookList< EffectPeriodicHandler > OnEffectPeriodic
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
HookList< EffectProcHandler > OnEffectProc
Unit * GetUnitOwner() const
InstanceScript *const instance
bool CanAIAttack(Unit const *target) const override
virtual void EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
bool _EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void AttackStart(Unit *victim) override
== Triggered Actions Requested ==================
void SetHomePosition(float x, float y, float z, float o)
void SetImmuneToPC(bool apply) override
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
bool IsImmuneToPC() const
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
bool IsInPhase(uint8 phase) const
void SetPhase(uint8 phase)
virtual bool SetBossState(uint32 id, EncounterState state)
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell, bool includePets=false, bool includeControlled=false)
void DoCastSpellOnPlayers(uint32 spell, bool includePets=false, bool includeControlled=false)
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
virtual ObjectGuid GetGuidData(uint32 type) const override
virtual bool CheckRequiredBosses(uint32, Player const *=nullptr) const
bool SpawnGroupDespawn(uint32 groupId, bool deleteRespawnTimes=false, size_t *count=nullptr)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
void MoveCharge(float x, float y, float z, float speed=SPEED_CHARGE, uint32 id=EVENT_CHARGE, bool generatePath=false, Unit const *target=nullptr, Movement::SpellEffectExtraData const *spellEffectExtraData=nullptr)
void MoveFall(uint32 id=0)
static Creature * ToCreature(Object *o)
static Player * ToPlayer(Object *o)
Unit * GetProcTarget() const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
HookList< HitHandler > AfterHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Unit * GetHitUnit() const
int32 GetEffectValue() const
HookList< EffectHandler > OnEffectHitTarget
Aura * GetHitAura(bool dynObjAura=false) const
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
void Despawn(Creature const *summon)
void Summon(Creature const *summon)
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
Unit * SelectTarget(SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
void SetFaction(uint32 faction) override
void SetPower(Powers power, int32 val, bool withPowerUpdate=true)
MotionMaster * GetMotionMaster()
void SetFacingToObject(WorldObject const *object, bool force=true)
int32 GetMaxPower(Powers power) const
void RemoveNpcFlag(NPCFlags flags)
bool SetDisableGravity(bool disable, bool updateAnimTier=true)
void SetUninteractible(bool apply)
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
bool SetWalk(bool enable)
int32 GetPower(Powers power) const
bool HasUnitState(const uint32 f) const
Vehicle * GetVehicleKit() const
void RemoveAurasOnEvade()
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
InstanceScript * GetInstanceScript() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
TransportBase * GetTransport() const
void setActive(bool isActiveObject)
achievement_ive_gone_and_made_a_mess()
bool OnCheck(Player *, Unit *target) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandlePeriodicTick(AuraEffect const *)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleForceCast(SpellEffIndex)
void FilterTargetsSubsequent(std::list< WorldObject * > &unitList)
void FilterTargetsInitial(std::list< WorldObject * > &targets)
spell_deathbringer_blood_nova_targeting()
void HandleScript(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
void RecalculateHook(AuraEffect const *, int32 &amount, bool &canBeRecalculated)
void FilterTargets(std::list< WorldObject * > &targets)
void HandleScript(SpellEffIndex effIndex)
void HandleScript(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
@ SPELL_REPUTATION_BOSS_KILL
@ LIGHT_S_HAMMER_TELEPORT
#define RegisterIcecrownCitadelCreatureAI(ai_name)
@ DATA_DEATHBRINGER_SAURFANG
@ DATA_SAURFANG_EVENT_NPC
@ NPC_SE_SKYBREAKER_MARINE
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr float GetOrientation() const
constexpr float GetPositionZ() const
void AttackStart(Unit *) override
== Triggered Actions Requested ==================
bool HealthBelowPct(uint32 pct) const
void SpellHitTarget(WorldObject *target, SpellInfo const *spellInfo) override
uint32 GetData(uint32 type) const override
void JustDied(Unit *) override
void MovementInform(uint32 type, uint32 id) override
static uint32 const FightWonValue
void JustReachedHome() override
void JustEngagedWith(Unit *who) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void SummonedCreatureDies(Creature *summon, Unit *) override
void DoAction(int32 action) override
void AttackStart(Unit *victim) override
== Triggered Actions Requested ==================
bool CanAIAttack(Unit const *target) const override
void JustSummoned(Creature *summon) override
uint32 _fallenChampionCastCount
void UpdateAI(uint32 diff) override
void KilledUnit(Unit *victim) override
void EnterEvadeMode(EvadeReason why) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
boss_deathbringer_saurfang(Creature *creature)
bool OnGossipSelect(Player *player, uint32 menuId, uint32) override
InstanceScript * _instance
void DoAction(int32 action) override
npc_high_overlord_saurfang_icc(Creature *creature)
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void MovementInform(uint32 type, uint32 id) override
void GuardBroadcast(std::function< void(Creature *)> &&action) const
void UpdateAI(uint32 diff) override
void MovementInform(uint32 type, uint32 id) override
npc_muradin_bronzebeard_icc(Creature *creature)
void DoAction(int32 action) override
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void GuardBroadcast(std::function< void(Creature *)> &&action) const
InstanceScript * _instance
bool OnGossipSelect(Player *player, uint32 menuId, uint32) override
npc_saurfang_event(Creature *creature)
void DoAction(int32 action) override
void SetData(uint32 type, uint32 data) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override