495 {
498 if (!target)
499 return;
502 {
503 float o =
frand(0, 2 * M_PI);
506 float actualDistance = std::min(8.0f, safeDistance * 0.8f);
507
509 GetCaster()->GetPositionX() + actualDistance * cos(o),
510 GetCaster()->GetPositionY() + actualDistance * sin(o),
511 z
512 );
513 }
514 else
516
517 float speedXY = float(
GetSpellInfo()->Effects[effIndex].MiscValue) * 0.1f;
520 }
float frand(float min, float max)
Definition Random.cpp:57
void MoveJump(Position const &pos, float speedXY, float speedZ, uint32 id=0)
Definition MotionMaster.h:229
SpellInfo const * GetSpellInfo()
Definition SpellScript.cpp:411
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Definition SpellScript.cpp:590
Unit * GetHitUnit()
Definition SpellScript.cpp:448
Unit * GetCaster()
Definition SpellScript.cpp:401
MotionMaster * GetMotionMaster()
Definition Unit.h:1680
float GetDistance(WorldObject const *obj) const
Definition Object.cpp:1256
float RaycastToObstacle(Unit *unit, float angle, float z, float maxDist=20.0f)
Definition boss_muru.cpp:471
double gravity
Definition MovementUtil.cpp:24
float GetPositionZ() const
Definition Position.h:123
float GetPositionX() const
Definition Position.h:121
float GetPositionY() const
Definition Position.h:122
void Relocate(float x, float y)
Definition Position.h:77