544 {
547 {
548 bool didHit = false;
551
552 std::vector<Player*> validPlayers;
555 if (
Player* plr = itr->GetSource())
556 if (plr->IsAlive() && !plr->IsGameMaster() && plr->GetExactDist2dSq(marrowgar) < (150.0f * 150.0f) && !plr->HasAura(
SPELL_IMPALED))
557 if (!marrowgar->GetVictim() || marrowgar->GetVictim()->GetGUID() != plr->GetGUID())
558 if (plr->GetGUID() != marrowgarAI->
GetGUID(0) && plr->GetGUID() != marrowgarAI->
GetGUID(1) && plr->GetGUID() != marrowgarAI->
GetGUID(2))
559 validPlayers.push_back(plr);
560
561 std::vector<Player*>::iterator begin = validPlayers.
begin(), end = validPlayers.end();
562
563 std::random_device rd;
564 std::shuffle(begin, end, std::default_random_engine{rd()});
565
566 for (
uint8 i = 0; i < boneSpikeCount && i < validPlayers.size(); ++i)
567 {
568 Unit* target = validPlayers[i];
569 didHit = true;
570
572 }
573
574 if (didHit)
576 }
577 }
std::uint8_t uint8
Definition: Define.h:110
@ SPELL_IMPALED
Definition: boss_lord_marrowgar.cpp:52
uint32 const boneSpikeSummonId[3]
Definition: boss_lord_marrowgar.cpp:73
@ SAY_BONESPIKE
Definition: boss_lord_marrowgar.cpp:35
Definition: LinkedList.h:139
virtual ObjectGuid GetGUID(int32=0) const
Definition: UnitAI.h:205
Definition: CreatureAI.h:71
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:49
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