543 {
546 {
547 bool didHit = false;
550
551 std::vector<Player*> validPlayers;
554 if (
Player* plr = itr->GetSource())
555 if (plr->IsAlive() && !plr->IsGameMaster() && plr->GetExactDist2dSq(marrowgar) < (150.0f * 150.0f) && !plr->HasAura(
SPELL_IMPALED))
556 if (!marrowgar->GetVictim() || marrowgar->GetVictim()->GetGUID() != plr->GetGUID())
557 if (plr->GetGUID() != marrowgarAI->
GetGUID(0) && plr->GetGUID() != marrowgarAI->
GetGUID(1) && plr->GetGUID() != marrowgarAI->
GetGUID(2))
558 validPlayers.push_back(plr);
559
560 std::vector<Player*>::iterator begin = validPlayers.
begin(), end = validPlayers.end();
561
562 std::random_device rd;
563 std::shuffle(begin, end, std::default_random_engine{rd()});
564
565 for (
uint8 i = 0; i < boneSpikeCount && i < validPlayers.size(); ++i)
566 {
567 Unit* target = validPlayers[i];
568 didHit = true;
569
571 }
572
573 if (didHit)
575 }
576 }
std::uint8_t uint8
Definition: Define.h:110
@ SPELL_IMPALED
Definition: boss_lord_marrowgar.cpp:51
uint32 const boneSpikeSummonId[3]
Definition: boss_lord_marrowgar.cpp:72
@ SAY_BONESPIKE
Definition: boss_lord_marrowgar.cpp:34
Definition: LinkedList.h:139
virtual ObjectGuid GetGUID(int32=0) const
Definition: UnitAI.h:205
Definition: CreatureAI.h:70
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr, Milliseconds delay=0s)
Causes the creature to talk/say the text assigned to their entry in the creature_text database table.
Definition: CreatureAI.cpp:50
Definition: Creature.h:46
Definition: Player.h:1056
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:1169
Definition: MapRefMgr.h:26
iterator begin()
Definition: MapRefMgr.h:36
iterator end()
Definition: MapRefMgr.h:37
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Definition: SpellScript.cpp:590
Unit * GetCaster()
Definition: SpellScript.cpp:401