diff --git a/code/datums/ai/ai_movement/basic_avoidance.dm b/code/datums/ai/ai_movement/basic_avoidance.dm index c0364f21c7e..3824e7fc8b4 100644 --- a/code/datums/ai/ai_movement/basic_avoidance.dm +++ b/code/datums/ai/ai_movement/basic_avoidance.dm @@ -24,7 +24,14 @@ var/turf/target_turf = get_step_towards(movable_pawn, controller.current_movement_target) + if (can_move && target_turf?.can_traverse_safely(movable_pawn)) + if(istype(movable_pawn, /mob/living/simple_animal)) + var/dir_to_target = get_dir(current_loc, target_turf) + for(var/obj/structure/O in get_step(movable_pawn, dir_to_target)) + if(O.density && O.climbable) + O.climb_structure(movable_pawn) + break step_to(movable_pawn, controller.current_movement_target, controller.blackboard[BB_CURRENT_MIN_MOVE_DISTANCE], controller.movement_delay) if(current_loc == get_turf(movable_pawn)) //Did we even move after trying to move? diff --git a/code/datums/ai/controllers/volf.dm b/code/datums/ai/controllers/volf.dm index 5f2b41eab41..5b3201d2bb4 100644 --- a/code/datums/ai/controllers/volf.dm +++ b/code/datums/ai/controllers/volf.dm @@ -10,6 +10,7 @@ planning_subtrees = list( /datum/ai_planning_subtree/flee_target, /datum/ai_planning_subtree/target_retaliate, + /datum/ai_planning_subtree/call_reinforcements, /datum/ai_planning_subtree/simple_find_target, /datum/ai_planning_subtree/basic_melee_attack_subtree,