diff --git a/src/strategy/actions/CheckMountStateAction.cpp b/src/strategy/actions/CheckMountStateAction.cpp index 1e560e5d..12909414 100644 --- a/src/strategy/actions/CheckMountStateAction.cpp +++ b/src/strategy/actions/CheckMountStateAction.cpp @@ -19,21 +19,27 @@ bool CheckMountStateAction::Execute(Event event) bool enemy = AI_VALUE(Unit*, "enemy player target"); // ignore grind target in BG or bots will dismount near any creature (eg: the rams in AV) bool dps = AI_VALUE(Unit*, "dps target"); - bool fartarget = (enemy && sServerFacade->IsDistanceGreaterThan(AI_VALUE2(float, "distance", "enemy player target"), 40.0f)) || + bool fartarget = + (enemy && sServerFacade->IsDistanceGreaterThan(AI_VALUE2(float, "distance", "enemy player target"), 40.0f)) || (dps && sServerFacade->IsDistanceGreaterThan(AI_VALUE2(float, "distance", "dps target"), 50.0f)); bool attackdistance = false; // bool chasedistance = false; float attack_distance = 35.0f; - if (PlayerbotAI::IsMelee(bot)) { + if (PlayerbotAI::IsMelee(bot)) + { attack_distance = 5.0f; - } else { + } + else + { attack_distance = 30.0f; } if (dps || enemy) { Unit* currentTarget = AI_VALUE(Unit*, "current target"); - attackdistance = (enemy || dps) && currentTarget && sServerFacade->IsDistanceLessThan(AI_VALUE2(float, "distance", "current target"), attack_distance); + attackdistance = + (enemy || dps) && currentTarget && + sServerFacade->IsDistanceLessThan(AI_VALUE2(float, "distance", "current target"), attack_distance); } if (bot->IsMounted() && attackdistance) diff --git a/src/strategy/actions/MovementActions.cpp b/src/strategy/actions/MovementActions.cpp index de4cc750..f6be6af8 100644 --- a/src/strategy/actions/MovementActions.cpp +++ b/src/strategy/actions/MovementActions.cpp @@ -789,9 +789,9 @@ bool MovementAction::ReachCombatTo(Unit* target, float distance) float dx = cos(angle) * needToGo + bx; float dy = sin(angle) * needToGo + by; - float dz; // = std::max(bz, tz); // calc accurate z position to avoid stuck + float dz; // = std::max(bz, tz); // calc accurate z position to avoid stuck - if (target->HasUnitMovementFlag(MOVEMENTFLAG_FORWARD)) // target is moving forward, predict the position + if (target->HasUnitMovementFlag(MOVEMENTFLAG_FORWARD)) // target is moving forward, predict the position { float timeToGo = MoveDelay(abs(needToGo)); float targetMoveDist = timeToGo * target->GetSpeed(MOVE_RUN); @@ -799,8 +799,9 @@ bool MovementAction::ReachCombatTo(Unit* target, float distance) dx += targetMoveDist * cos(target->GetOrientation()); dy += targetMoveDist * sin(target->GetOrientation()); } - - if (distanceToTarget > CONTACT_DISTANCE) { + + if (distanceToTarget > CONTACT_DISTANCE) + { dz = bz + (tz - bz) * (needToGo / distanceToTarget); } else @@ -808,7 +809,8 @@ bool MovementAction::ReachCombatTo(Unit* target, float distance) dz = tz; } - if (!bot->GetMap()->CheckCollisionAndGetValidCoords(bot, bot->GetPositionX(), bot->GetPositionY(), bot->GetPositionZ(), dx, dy, dz)) + if (!bot->GetMap()->CheckCollisionAndGetValidCoords(bot, bot->GetPositionX(), bot->GetPositionY(), + bot->GetPositionZ(), dx, dy, dz)) return false; return MoveTo(target->GetMapId(), dx, dy, dz); diff --git a/src/strategy/values/Arrow.cpp b/src/strategy/values/Arrow.cpp index ff52c81d..a981eade 100644 --- a/src/strategy/values/Arrow.cpp +++ b/src/strategy/values/Arrow.cpp @@ -48,7 +48,8 @@ WorldLocation ArrowFormation::GetLocationInternal() float y = master->GetPositionY() - masterUnit->GetY() + botUnit->GetY(); float z = master->GetPositionZ(); - if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), master->GetPositionZ(), x, y, z)) + if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), + master->GetPositionZ(), x, y, z)) return Formation::NullLocation; // master->UpdateGroundPositionZ(x, y, z); return WorldLocation(master->GetMapId(), x, y, z); diff --git a/src/strategy/values/Formations.cpp b/src/strategy/values/Formations.cpp index be1d53c7..9418b441 100644 --- a/src/strategy/values/Formations.cpp +++ b/src/strategy/values/Formations.cpp @@ -83,15 +83,16 @@ public: if (!master) return WorldLocation(); - float range = sPlayerbotAIConfig->followDistance; - float angle = GetFollowAngle(); - float x = master->GetPositionX() + cos(angle) * range; - float y = master->GetPositionY() + sin(angle) * range; - float z = master->GetPositionZ(); - - if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), master->GetPositionZ(), x, y, z)) - return Formation::NullLocation; - return WorldLocation(master->GetMapId(), x, y, z); + float range = sPlayerbotAIConfig->followDistance; + float angle = GetFollowAngle(); + float x = master->GetPositionX() + cos(angle) * range; + float y = master->GetPositionY() + sin(angle) * range; + float z = master->GetPositionZ(); + + if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), + master->GetPositionZ(), x, y, z)) + return Formation::NullLocation; + return WorldLocation(master->GetMapId(), x, y, z); } float GetMaxDistance() override { return sPlayerbotAIConfig->followDistance; } @@ -119,7 +120,7 @@ public: return WorldLocation(); float range = sPlayerbotAIConfig->followDistance; - float angle = GetFollowAngle(); + float angle = GetFollowAngle(); time_t now = time(nullptr); if (!lastChangeTime || now - lastChangeTime >= 3) @@ -127,22 +128,25 @@ public: lastChangeTime = now; dx = (urand(0, 10) / 10.0 - 0.5) * sPlayerbotAIConfig->tooCloseDistance; dy = (urand(0, 10) / 10.0 - 0.5) * sPlayerbotAIConfig->tooCloseDistance; - dr = sqrt(dx*dx + dy*dy); + dr = sqrt(dx * dx + dy * dy); } float x = master->GetPositionX() + cos(angle) * range + dx; float y = master->GetPositionY() + sin(angle) * range + dy; float z = master->GetPositionZ(); - if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), master->GetPositionZ(), x, y, z)) + if (!master->GetMap()->CheckCollisionAndGetValidCoords( + master, master->GetPositionX(), master->GetPositionY(), master->GetPositionZ(), x, y, z)) return Formation::NullLocation; - // bot->GetMap()->CheckCollisionAndGetValidCoords(bot, bot->GetPositionX(), bot->GetPositionY(), bot->GetPositionZ(), x, y, z); + // bot->GetMap()->CheckCollisionAndGetValidCoords(bot, bot->GetPositionX(), bot->GetPositionY(), + // bot->GetPositionZ(), x, y, z); return WorldLocation(master->GetMapId(), x, y, z); } float x = master->GetPositionX() + cos(angle) * range + dx; float y = master->GetPositionY() + sin(angle) * range + dy; float z = master->GetPositionZ(); - if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), master->GetPositionZ(), x, y, z)) + if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), + master->GetPositionZ(), x, y, z)) return Formation::NullLocation; return WorldLocation(master->GetMapId(), x, y, z); } @@ -195,7 +199,8 @@ public: float x = target->GetPositionX() + cos(angle) * range; float y = target->GetPositionY() + sin(angle) * range; float z = target->GetPositionZ(); - if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), master->GetPositionZ(), x, y, z)) + if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), + master->GetPositionZ(), x, y, z)) return Formation::NullLocation; return WorldLocation(bot->GetMapId(), x, y, z); @@ -357,7 +362,8 @@ public: if (minDist) { - if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), master->GetPositionZ(), x, y, z)) + if (!master->GetMap()->CheckCollisionAndGetValidCoords( + master, master->GetPositionX(), master->GetPositionY(), master->GetPositionZ(), x, y, z)) return Formation::NullLocation; return WorldLocation(bot->GetMapId(), minX, minY, z); } @@ -365,7 +371,8 @@ public: return Formation::NullLocation; } - if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), master->GetPositionZ(), x, y, z)) + if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), + master->GetPositionZ(), x, y, z)) return Formation::NullLocation; return WorldLocation(bot->GetMapId(), x, y, z); } @@ -627,7 +634,8 @@ WorldLocation MoveFormation::MoveSingleLine(std::vector line, float dif float lz = cz; Player* master = botAI->GetMaster(); - if (!master->GetMap()->CheckCollisionAndGetValidCoords(master, master->GetPositionX(), master->GetPositionY(), master->GetPositionZ(), lx, ly, lz)) + if (!master->GetMap()->CheckCollisionAndGetValidCoords( + master, master->GetPositionX(), master->GetPositionY(), master->GetPositionZ(), lx, ly, lz)) return Formation::NullLocation; return WorldLocation(bot->GetMapId(), lx, ly, lz);