/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. */ #include "ServerFacade.h" #include "Playerbots.h" #include "TargetedMovementGenerator.h" float ServerFacade::GetDistance2d(Unit* unit, WorldObject* wo) { ASSERT_NOTNULL(unit); ASSERT_NOTNULL(wo); float dist = unit->GetDistance2d(wo); return std::round(dist * 10.0f) / 10.0f; } float ServerFacade::GetDistance2d(Unit *unit, float x, float y) { float dist = unit->GetDistance2d(x, y); return std::round(dist * 10.0f) / 10.0f; } bool ServerFacade::IsDistanceLessThan(float dist1, float dist2) { //return dist1 - dist2 < sPlayerbotAIConfig->targetPosRecalcDistance; return dist1 < dist2; } bool ServerFacade::IsDistanceGreaterThan(float dist1, float dist2) { //return dist1 - dist2 > sPlayerbotAIConfig->targetPosRecalcDistance; return dist1 > dist2; } bool ServerFacade::IsDistanceGreaterOrEqualThan(float dist1, float dist2) { return !IsDistanceLessThan(dist1, dist2); } bool ServerFacade::IsDistanceLessOrEqualThan(float dist1, float dist2) { return !IsDistanceGreaterThan(dist1, dist2); } void ServerFacade::SetFacingTo(Player* bot, WorldObject* wo, bool force) { float angle = bot->GetAngle(wo); if (!force && bot->isMoving()) bot->SetFacingTo(bot->GetAngle(wo)); else { bot->SetOrientation(angle); bot->SendMovementFlagUpdate(); } } Unit* ServerFacade::GetChaseTarget(Unit* target) { MovementGenerator* movementGen = target->GetMotionMaster()->top(); if (movementGen && movementGen->GetMovementGeneratorType() == CHASE_MOTION_TYPE) { if (target->GetTypeId() == TYPEID_PLAYER) { return static_cast const*>(movementGen)->GetTarget(); } else { return static_cast const*>(movementGen)->GetTarget(); } } return nullptr; }