2770 {
2772
2773
2775 if (!caster)
2777 if (!caster)
2778 return;
2779
2781 {
2782 Position p = {4356.77f, 2971.90f, 360.52f, M_PI / 2};
2784 {
2785 bool hasTarget = false;
2786 Unit* target =
nullptr;
2787 if ((target = l->SelectNearestTarget(20.0f)))
2788 hasTarget = true;
2789 else
2790 {
2791 target = l->SelectNearestTarget(120.0f);
2793 }
2794 l->AI()->Talk(0);
2795 l->AI()->AttackStart(target);
2796 l->AddThreat(target, 1.0f);
2797 for (
uint8 i = 0; i < 5; ++i)
2798 {
2802 l->MovePosition(pos, dist, angle);
2804 {
2805 c->AI()->AttackStart(l->GetVictim());
2806 c->AddThreat(l->GetVictim(), 1.0f);
2807 if (!hasTarget)
2808 c->GetMotionMaster()->MoveJump(c->GetPositionX(), c->GetPositionY() + 55.0f, c->GetPositionZ(), 20.0f, 6.0f);
2809 }
2810 }
2811 }
2812 }
2813 }
constexpr auto IN_MILLISECONDS
Definition Common.h:53
constexpr auto MINUTE
Definition Common.h:47
std::uint8_t uint8
Definition Define.h:109
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
Definition Object.h:53
double rand_norm()
Definition Random.cpp:85
Definition InstanceScript.h:143
void MoveJump(Position const &pos, float speedXY, float speedZ, uint32 id=0)
Definition MotionMaster.h:257
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Definition SpellScript.cpp:595
GameObject * GetGObjCaster()
Definition SpellScript.cpp:406
Unit * GetCaster()
Definition SpellScript.cpp:401
MotionMaster * GetMotionMaster()
Definition Unit.h:1774
InstanceScript * GetInstanceScript() const
Definition Object.cpp:1247
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition Object.cpp:2460
@ NPC_VENGEFUL_FLESHREAPER
Definition icecrown_citadel.h:391