From d507222d21ece298e3394e205dbd12fee4e9e46b Mon Sep 17 00:00:00 2001 From: Noudess Date: Mon, 21 Sep 2020 10:36:00 -0400 Subject: [PATCH] Allow amphibious creatures to swim to next node of pathing. --- zone/mob_movement_manager.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/zone/mob_movement_manager.cpp b/zone/mob_movement_manager.cpp index 904bc5246..0ebed1188 100644 --- a/zone/mob_movement_manager.cpp +++ b/zone/mob_movement_manager.cpp @@ -1088,6 +1088,17 @@ void MobMovementManager::UpdatePath(Mob *who, float x, float y, float z, MobMove PushFlyTo(ent.second, x, y, z, mob_movement_mode); PushStopMoving(ent.second); } + // Below for npcs that can traverse land or water so they don't sink + else if (who->GetFlyMode() == GravityBehavior::Water && + zone->watermap->InLiquid(who->GetPosition()) && + zone->watermap->InLiquid(glm::vec3(x, y, z)) && + zone->zonemap->CheckLoS(who->GetPosition(), glm::vec3(x, y, z))) { + auto iter = _impl->Entries.find(who); + auto &ent = (*iter); + + PushSwimTo(ent.second, x, y, z, mob_movement_mode); + PushStopMoving(ent.second); + } else { UpdatePathGround(who, x, y, z, mob_movement_mode); }