void MoveInLineOfSight(Unit* /*who*/) { if (!GridSearcherSucceeded) { FindChannelers(); if (!Channelers.empty()) { for (std::list<uint64>::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) { Creature* Channeler = (Unit::GetCreature(*me, *itr)); if (Channeler) { if (Channeler->isDead()) { Channeler->RemoveCorpse(); Channeler->Respawn(); } Channeler->CastSpell(me, SPELL_SHADE_SOUL_CHANNEL, true); Channeler->CastSpell(me, SPELL_SHADE_SOUL_CHANNEL_2, true); Channeler->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); GridSearcherSucceeded = true; } } } else TC_LOG_ERROR(LOG_FILTER_TSCR, "SD2 ERROR: No Channelers are stored in the list. This encounter will not work properly"); } }
void MoveInLineOfSight(Unit* /*who*/) { if (!GridSearcherSucceeded) { FindChannelers(); if (!Channelers.empty()) { for (std::list<uint64>::iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) { Creature* Channeler = (Unit::GetCreature(*me, *itr)); if (Channeler) { if (Channeler->isDead()) { Channeler->RemoveCorpse(); Channeler->Respawn(); Channeler->InterruptNonMeleeSpells(true); Channeler->RemoveAurasDueToSpell(SPELL_SHADE_SOUL_CHANNEL); } if (Channeler->isAlive()) { Channeler->CastSpell(me, SPELL_SHADE_SOUL_CHANNEL, true); Channeler->CastSpell(me, SPELL_SHADE_SOUL_CHANNEL_2, true); Channeler->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); GridSearcherSucceeded = true; } } } } else error_log("BSCR ERROR: No Channelers are stored in the list. This encounter will not work properly"); } }