450 {
453 if (!target)
454 return;
457 {
458 float o =
frand(0, 2 * M_PI);
461 float actualDistance = std::min(8.0f, safeDistance * 0.8f);
462
464 GetCaster()->GetPositionX() + actualDistance * cos(o),
465 GetCaster()->GetPositionY() + actualDistance * sin(o),
466 z
467 );
468 }
469 else
471
472 float speedXY = float(
GetSpellInfo()->Effects[effIndex].MiscValue) * 0.1f;
475 }
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:1673
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:426
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