2011 {
2014 {
2015 Position p = {4356.77f, 2971.90f, 360.52f, M_PI / 2};
2017 {
2018 bool hasTarget = false;
2019 Unit* target =
nullptr;
2020 if ((target = l->SelectNearestTarget(20.0f)))
2021 hasTarget = true;
2022 else
2023 {
2024 target = l->SelectNearestTarget(120.0f);
2026 }
2027 l->AI()->Talk(0);
2028 l->AI()->AttackStart(target);
2029 l->AddThreat(target, 1.0f);
2030 for (
uint8 i = 0; i < 5; ++i)
2031 {
2035 l->MovePosition(pos, dist, angle);
2037 {
2038 c->AI()->AttackStart(l->GetVictim());
2039 c->AddThreat(l->GetVictim(), 1.0f);
2040 if (!hasTarget)
2041 c->GetMotionMaster()->MoveJump(c->GetPositionX(), c->GetPositionY() + 55.0f, c->GetPositionZ(), 20.0f, 6.0f);
2042 }
2043 }
2044 }
2045 }
2046 }
constexpr auto IN_MILLISECONDS
Definition: Common.h:55
constexpr auto MINUTE
Definition: Common.h:49
std::uint8_t uint8
Definition: Define.h:110
double rand_norm()
Definition: Random.cpp:77
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
Definition: Object.h:45
@ NPC_VENGEFUL_FLESHREAPER
Definition: icecrown_citadel.h:377
Definition: Creature.h:46
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition: Object.cpp:2343
Definition: Position.h:28
MotionMaster * GetMotionMaster()
Definition: Unit.h:2276
Definition: InstanceScript.h:141
void MoveJump(Position const &pos, float speedXY, float speedZ, uint32 id=0)
Definition: MotionMaster.h:227
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Definition: SpellScript.cpp:590
Unit * GetCaster()
Definition: SpellScript.cpp:401