mirror of
https://github.com/mod-playerbots/mod-playerbots.git
synced 2026-01-23 05:26:22 +00:00
aq20 ossirian strat
This commit is contained in:
@@ -762,7 +762,7 @@ bool MovementAction::MoveTo(uint32 mapId, float x, float y, float z, bool idle,
|
||||
// return true;
|
||||
}
|
||||
|
||||
bool MovementAction::MoveTo(Unit* target, float distance, MovementPriority priority)
|
||||
bool MovementAction::MoveTo(WorldObject* target, float distance, MovementPriority priority)
|
||||
{
|
||||
if (!IsMovingAllowed(target))
|
||||
return false;
|
||||
@@ -874,7 +874,7 @@ float MovementAction::GetFollowAngle()
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool MovementAction::IsMovingAllowed(Unit* target)
|
||||
bool MovementAction::IsMovingAllowed(WorldObject* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
@@ -1272,6 +1272,8 @@ bool MovementAction::ChaseTo(WorldObject* obj, float distance, float angle)
|
||||
|
||||
// bot->GetMotionMaster()->Clear();
|
||||
bot->GetMotionMaster()->MoveChase((Unit*)obj, distance);
|
||||
|
||||
// TODO shouldnt this use "last movement" value?
|
||||
WaitForReach(bot->GetExactDist2d(obj) - distance);
|
||||
return true;
|
||||
}
|
||||
@@ -1295,6 +1297,7 @@ float MovementAction::MoveDelay(float distance)
|
||||
return delay;
|
||||
}
|
||||
|
||||
// TODO should this be removed? (or modified to use "last movement" value?)
|
||||
void MovementAction::WaitForReach(float distance)
|
||||
{
|
||||
float delay = 1000.0f * MoveDelay(distance);
|
||||
@@ -1313,6 +1316,15 @@ void MovementAction::WaitForReach(float distance)
|
||||
botAI->SetNextCheckDelay((uint32)delay);
|
||||
}
|
||||
|
||||
// similiar to botAI->SetNextCheckDelay() but only stops movement
|
||||
void MovementAction::SetNextMovementDelay(float delayMillis)
|
||||
{
|
||||
AI_VALUE(LastMovement&, "last movement")
|
||||
.Set(bot->GetMapId(), bot->GetPositionX(), bot->GetPositionY(), bot->GetPositionZ(), bot->GetOrientation(),
|
||||
delayMillis,
|
||||
MovementPriority::MOVEMENT_FORCED);
|
||||
}
|
||||
|
||||
bool MovementAction::Flee(Unit* target)
|
||||
{
|
||||
Player* master = GetMaster();
|
||||
|
||||
@@ -30,7 +30,7 @@ protected:
|
||||
bool MoveToLOS(WorldObject* target, bool ranged = false);
|
||||
bool MoveTo(uint32 mapId, float x, float y, float z, bool idle = false, bool react = false,
|
||||
bool normal_only = false, bool exact_waypoint = false, MovementPriority priority = MovementPriority::MOVEMENT_NORMAL);
|
||||
bool MoveTo(Unit* target, float distance = 0.0f, MovementPriority priority = MovementPriority::MOVEMENT_NORMAL);
|
||||
bool MoveTo(WorldObject* target, float distance = 0.0f, MovementPriority priority = MovementPriority::MOVEMENT_NORMAL);
|
||||
bool MoveNear(WorldObject* target, float distance = sPlayerbotAIConfig->contactDistance, MovementPriority priority = MovementPriority::MOVEMENT_NORMAL);
|
||||
float GetFollowAngle();
|
||||
bool Follow(Unit* target, float distance = sPlayerbotAIConfig->followDistance);
|
||||
@@ -39,7 +39,8 @@ protected:
|
||||
bool ReachCombatTo(Unit* target, float distance = 0.0f);
|
||||
float MoveDelay(float distance);
|
||||
void WaitForReach(float distance);
|
||||
bool IsMovingAllowed(Unit* target);
|
||||
void SetNextMovementDelay(float delayMillis);
|
||||
bool IsMovingAllowed(WorldObject* target);
|
||||
bool IsMovingAllowed(uint32 mapId, float x, float y, float z);
|
||||
bool IsDuplicateMove(uint32 mapId, float x, float y, float z);
|
||||
bool IsWaitingForLastMove(MovementPriority priority);
|
||||
|
||||
Reference in New Issue
Block a user