Most hostile mobs can no longer be trapped by closets, chairs, and aggro grabs (#91652)

This commit is contained in:
Jacquerel
2025-06-21 03:21:22 +02:00
committed by GitHub
parent 897909e7d0
commit e3dee6810e
114 changed files with 262 additions and 296 deletions
@@ -83,6 +83,7 @@
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/ranged_skirmish,
/datum/ai_planning_subtree/attack_obstacle_in_path,
@@ -4,6 +4,7 @@
)
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/bileworm_attack,
/datum/ai_planning_subtree/bileworm_execute,
@@ -7,10 +7,10 @@
BB_TARGET_MINIMUM_STAT = HARD_CRIT,
)
ai_traits = PAUSE_DURING_DO_AFTER
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk/no_target
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/basic_melee_attack_subtree/opportunistic,
/datum/ai_planning_subtree/move_to_cardinal/brimdemon,
@@ -10,6 +10,7 @@
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk/less_walking
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity/pacifist,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/pet_planning,
/datum/ai_planning_subtree/burrow_through_ground,
@@ -34,6 +35,7 @@
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk/less_walking
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity/pacifist,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/dig_away_from_danger,
/datum/ai_planning_subtree/find_and_hunt_target/hunt_ores,
@@ -10,6 +10,7 @@
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/target_retaliate/check_faction,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/find_food,
@@ -12,6 +12,8 @@
BB_MAX_CHILDREN = 5,
)
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/target_retaliate/check_faction,
/datum/ai_planning_subtree/pet_planning,
/datum/ai_planning_subtree/basic_melee_attack_subtree,
@@ -55,6 +57,7 @@
BB_FIND_MOM_TYPES = list(/mob/living/basic/mining/gutlunch/milk),
)
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity/pacifist,
/datum/ai_planning_subtree/target_retaliate,
/datum/ai_planning_subtree/flee_target,
/datum/ai_planning_subtree/look_for_adult,
@@ -65,6 +68,7 @@
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
)
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity/pacifist,
/datum/ai_planning_subtree/target_retaliate,
/datum/ai_planning_subtree/flee_target,
/datum/ai_planning_subtree/find_and_hunt_target/food_trough
@@ -8,6 +8,7 @@
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/maintain_distance,
/datum/ai_planning_subtree/targeted_mob_ability,
@@ -10,6 +10,7 @@
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/random_speech/legion,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/targeted_mob_ability,
@@ -48,12 +48,13 @@
BB_TIME_TO_GIVE_UP_ON_VENT_PATHING = 30 SECONDS,
)
ai_traits = STOP_MOVING_WHEN_PULLED
ai_traits = DEFAULT_AI_FLAGS | STOP_MOVING_WHEN_PULLED
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk/less_walking
// We understand that vents are nice little hidey holes through epigenetic inheritance, so we'll use them.
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/random_speech/legion,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/attack_obstacle_in_path,
@@ -81,7 +81,7 @@
)
AddComponent(/datum/component/happiness)
AddComponent(/datum/component/obeys_commands, pet_commands)
ai_controller.ai_traits = STOP_MOVING_WHEN_PULLED
ai_controller.ai_traits |= STOP_MOVING_WHEN_PULLED
response_help_continuous = "pets"
response_help_simple = "pet"
response_disarm_continuous = "gently pushes aside"
@@ -19,11 +19,11 @@
BB_TARGET_PRIORITY_TRAIT = TRAIT_SCARY_FISHERMAN,
BB_OWNER_SELF_HARM_RESPONSES = SHRIMP_HARM_RESPONSES,
)
ai_traits = PAUSE_DURING_DO_AFTER
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/random_speech/insect,
/datum/ai_planning_subtree/hoard_fingers,
/datum/ai_planning_subtree/pet_planning,
@@ -58,6 +58,7 @@
BB_OWNER_SELF_HARM_RESPONSES = SHRIMP_HARM_RESPONSES,
)
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/random_speech/insect,
/datum/ai_planning_subtree/hoard_fingers,
/datum/ai_planning_subtree/pet_planning,
@@ -74,6 +75,7 @@
///A subtype of juvenile lobster AI that has the target_retaliate behaviour instead of simple_find_target
/datum/ai_controller/basic_controller/lobstrosity/juvenile/calm
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity/pacifist,
/datum/ai_planning_subtree/random_speech/insect,
/datum/ai_planning_subtree/hoard_fingers,
/datum/ai_planning_subtree/pet_planning,
@@ -90,6 +92,7 @@
///A subtype of juvenile lobster AI that has the capricious_retaliate behaviour instead of simple_find_target
/datum/ai_controller/basic_controller/lobstrosity/juvenile/capricious
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/random_speech/insect,
/datum/ai_planning_subtree/hoard_fingers,
/datum/ai_planning_subtree/pet_planning,
@@ -15,6 +15,7 @@ GLOBAL_LIST_INIT(mook_commands, list(
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/target_retaliate,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/look_for_village,
@@ -218,6 +219,7 @@ GLOBAL_LIST_INIT(mook_commands, list(
)
idle_behavior = /datum/idle_behavior/walk_near_target/mook_village
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/target_retaliate,
/datum/ai_planning_subtree/look_for_village,
/datum/ai_planning_subtree/simple_find_target,
@@ -270,6 +272,7 @@ GLOBAL_LIST_INIT(mook_commands, list(
)
idle_behavior = /datum/idle_behavior/walk_near_target/mook_village
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/target_retaliate,
/datum/ai_planning_subtree/look_for_village,
/datum/ai_planning_subtree/acknowledge_chief,
@@ -326,6 +329,7 @@ GLOBAL_LIST_INIT(mook_commands, list(
)
idle_behavior = /datum/idle_behavior/walk_near_target/mook_village
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/target_retaliate,
/datum/ai_planning_subtree/look_for_village,
/datum/ai_planning_subtree/simple_find_target,
@@ -151,7 +151,7 @@
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, // Use this to find vents to run away from
)
ai_traits = STOP_MOVING_WHEN_PULLED
ai_traits = PASSIVE_AI_FLAGS
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = null
planning_subtrees = list(
@@ -16,6 +16,7 @@
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee/raptor,
/datum/ai_planning_subtree/flee_target/from_flee_key,
/datum/ai_planning_subtree/find_and_hunt_target/heal_raptors,
@@ -60,6 +61,7 @@
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity/pacifist,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/flee_target,
/datum/ai_planning_subtree/random_speech/blackboard,
@@ -3,10 +3,10 @@
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
)
ai_traits = PAUSE_DURING_DO_AFTER
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
/datum/ai_planning_subtree/escape_captivity,
/datum/ai_planning_subtree/target_retaliate/check_faction,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/maintain_distance,