diff --git a/code/__DEFINES/ai/ai.dm b/code/__DEFINES/ai/ai.dm index 7266ad44990..aafd3feb203 100644 --- a/code/__DEFINES/ai/ai.dm +++ b/code/__DEFINES/ai/ai.dm @@ -76,6 +76,8 @@ //Generic subtree defines +/// default search range (tiles, passed to oview) when using find_and_set +#define SEARCH_TACTIC_DEFAULT_RANGE 7 /// probability that the pawn should try resisting out of restraints #define RESIST_SUBTREE_PROB 50 ///macro for whether it's appropriate to resist right now, used by resist subtree diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index fd7757e595c..26dee9a5f22 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -678,7 +678,7 @@ return inserted_list -///same as shuffle, but returns nothing and acts on list in place +///same as shuffle, but acts on list in place, and returns same list /proc/shuffle_inplace(list/inserted_list) if(!inserted_list) return @@ -686,6 +686,8 @@ for(var/i in 1 to inserted_list.len - 1) inserted_list.Swap(i, rand(i, inserted_list.len)) + return inserted_list + ///Return a list with no duplicate entries /proc/unique_list(list/inserted_list) . = list() diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/climb_tree.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/climb_tree.dm index 5046baa7e0f..c30943caf50 100644 --- a/code/datums/ai/basic_mobs/basic_ai_behaviors/climb_tree.dm +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/climb_tree.dm @@ -1,6 +1,6 @@ /datum/ai_behavior/find_and_set/valid_tree -/datum/ai_behavior/find_and_set/valid_tree/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/valid_tree/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/valid_trees = list() for (var/obj/structure/flora/tree/tree_target in oview(search_range, controller.pawn)) if(istype(tree_target, /obj/structure/flora/tree/dead)) //no died trees diff --git a/code/datums/ai/basic_mobs/basic_subtrees/drag_items.dm b/code/datums/ai/basic_mobs/basic_subtrees/drag_items.dm index f0017a67c00..3bdb1ab8f58 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/drag_items.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/drag_items.dm @@ -6,19 +6,19 @@ if(prob(controller.blackboard[BB_GUILTY_CONSCIOUS_CHANCE])) controller.queue_behavior(/datum/ai_behavior/stop_dragging) return - if(!controller.blackboard[BB_STEAL_CHANCE]) + if(!prob(controller.blackboard[BB_STEAL_CHANCE])) return if(!controller.blackboard_key_exists(BB_ITEM_TO_STEAL)) - controller.queue_behavior(/datum/ai_behavior/find_and_set/find_stealable, /obj/item, BB_ITEM_TO_STEAL) + controller.queue_behavior(/datum/ai_behavior/find_and_set/find_stealable, BB_ITEM_TO_STEAL, /obj/item) return - controller.queue_behavior(/datum/ai_behavior/drag_target) + controller.queue_behavior(/datum/ai_behavior/drag_target, BB_ITEM_TO_STEAL) return SUBTREE_RETURN_FINISH_PLANNING /datum/ai_behavior/find_and_set/find_stealable behavior_flags = AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION action_cooldown = 2 MINUTES -/datum/ai_behavior/find_and_set/find_stealable/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/find_stealable/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/mob/living/living_pawn = controller.pawn var/list/possible_items = shuffle_inplace(oview(search_range, controller.pawn)) @@ -32,7 +32,7 @@ /datum/ai_behavior/stop_dragging behavior_flags = AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION -/datum/ai_behavior/stop_dragging/perform(seconds_per_tick, datum/ai_controller/controller, target_key) +/datum/ai_behavior/stop_dragging/perform(seconds_per_tick, datum/ai_controller/controller) var/mob/living/living_pawn = controller.pawn living_pawn.stop_pulling() return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED diff --git a/code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.dm b/code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.dm index e6427455c4e..ba50023567f 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/go_for_swim.dm @@ -28,7 +28,7 @@ ///find land if its time to get out of water, otherwise find water /datum/ai_behavior/find_and_set/swim_alternate -/datum/ai_behavior/find_and_set/swim_alternate/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/swim_alternate/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/mob/living/living_pawn = controller.pawn if(QDELETED(living_pawn)) return null diff --git a/code/datums/ai/generic/find_and_set.dm b/code/datums/ai/generic/find_and_set.dm index e5b7c720b8b..95d8106a2ad 100644 --- a/code/datums/ai/generic/find_and_set.dm +++ b/code/datums/ai/generic/find_and_set.dm @@ -37,7 +37,7 @@ /datum/ai_behavior/find_and_set/food_or_drink var/force_find_drinks = FALSE -/datum/ai_behavior/find_and_set/food_or_drink/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/food_or_drink/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/mob/living/living_pawn = controller.pawn var/find_drinks = force_find_drinks || controller.blackboard[BB_IGNORE_DRINKS] || FALSE @@ -92,7 +92,7 @@ */ /datum/ai_behavior/find_and_set/in_list -/datum/ai_behavior/find_and_set/in_list/search_tactic(datum/ai_controller/controller, locate_paths, search_range) +/datum/ai_behavior/find_and_set/in_list/search_tactic(datum/ai_controller/controller, locate_paths, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/found = typecache_filter_list(oview(search_range, controller.pawn), locate_paths) if(length(found)) return pick(found) @@ -112,7 +112,7 @@ */ /datum/ai_behavior/find_and_set/animatable -/datum/ai_behavior/find_and_set/animatable/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/animatable/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/mob/living/living_pawn = controller.pawn var/list/nearby_items = list() @@ -133,7 +133,7 @@ */ /datum/ai_behavior/find_and_set/nearest_wall -/datum/ai_behavior/find_and_set/nearest_wall/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/nearest_wall/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/mob/living/living_pawn = controller.pawn var/list/nearby_walls = list() @@ -150,7 +150,7 @@ */ /datum/ai_behavior/find_and_set/friendly_corpses -/datum/ai_behavior/find_and_set/friendly_corpses/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/friendly_corpses/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/mob/living/living_pawn = controller.pawn var/list/nearby_bodies = list() for (var/mob/living/dead_pal in oview(search_range, controller.pawn)) @@ -172,7 +172,7 @@ */ /datum/ai_behavior/find_and_set/conscious_person -/datum/ai_behavior/find_and_set/conscious_person/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/conscious_person/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/customers = list() for(var/mob/living/carbon/human/target in oview(search_range, controller.pawn)) if(IS_DEAD_OR_INCAP(target) || !target.mind) @@ -187,7 +187,7 @@ /datum/ai_behavior/find_and_set/nearby_friends action_cooldown = 2 SECONDS -/datum/ai_behavior/find_and_set/nearby_friends/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/nearby_friends/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/atom/friend = locate(/mob/living/carbon/human) in oview(search_range, controller.pawn) if(isnull(friend)) @@ -200,7 +200,7 @@ /datum/ai_behavior/find_and_set/in_list/turf_types -/datum/ai_behavior/find_and_set/in_list/turf_types/search_tactic(datum/ai_controller/controller, locate_paths, search_range) +/datum/ai_behavior/find_and_set/in_list/turf_types/search_tactic(datum/ai_controller/controller, locate_paths, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/found = RANGE_TURFS(search_range, controller.pawn) shuffle_inplace(found) for(var/turf/possible_turf as anything in found) @@ -212,7 +212,7 @@ /datum/ai_behavior/find_and_set/in_list/closest_turf -/datum/ai_behavior/find_and_set/in_list/closest_turf/search_tactic(datum/ai_controller/controller, locate_paths, search_range) +/datum/ai_behavior/find_and_set/in_list/closest_turf/search_tactic(datum/ai_controller/controller, locate_paths, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/found = RANGE_TURFS(search_range, controller.pawn) for(var/turf/possible_turf as anything in found) if(!is_type_in_typecache(possible_turf, locate_paths) || !can_see(controller.pawn, possible_turf, search_range)) diff --git a/code/datums/ai/hunting_behavior/hunting_mouse.dm b/code/datums/ai/hunting_behavior/hunting_mouse.dm index ca849274f6d..3bcee20b79e 100644 --- a/code/datums/ai/hunting_behavior/hunting_mouse.dm +++ b/code/datums/ai/hunting_behavior/hunting_mouse.dm @@ -49,7 +49,7 @@ /datum/ai_behavior/find_and_set/piano_synth // Disinclude subtypes -/datum/ai_behavior/find_and_set/piano_synth/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/piano_synth/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) for(var/obj/item/instrument/piano_synth/synth in oview(search_range, controller.pawn)) if(synth.type == /obj/item/instrument/piano_synth) return synth diff --git a/code/modules/mob/living/basic/bots/bot_ai.dm b/code/modules/mob/living/basic/bots/bot_ai.dm index c0c357ff71f..4fde29dcee6 100644 --- a/code/modules/mob/living/basic/bots/bot_ai.dm +++ b/code/modules/mob/living/basic/bots/bot_ai.dm @@ -251,7 +251,7 @@ behavior_flags = AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION action_cooldown = BOT_COMMISSIONED_SALUTE_DELAY -/datum/ai_behavior/find_and_set/valid_authority/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/valid_authority/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) for(var/mob/living/nearby_mob in oview(search_range, controller.pawn)) if(!HAS_TRAIT(nearby_mob, TRAIT_COMMISSIONED)) continue diff --git a/code/modules/mob/living/basic/bots/cleanbot/cleanbot_ai.dm b/code/modules/mob/living/basic/bots/cleanbot/cleanbot_ai.dm index d126615d620..b5e860199f8 100644 --- a/code/modules/mob/living/basic/bots/cleanbot/cleanbot_ai.dm +++ b/code/modules/mob/living/basic/bots/cleanbot/cleanbot_ai.dm @@ -69,7 +69,7 @@ /datum/ai_behavior/find_and_set/in_list/clean_targets action_cooldown = 3 SECONDS -/datum/ai_behavior/find_and_set/in_list/clean_targets/search_tactic(datum/ai_controller/basic_controller/bot/controller, locate_paths, search_range) +/datum/ai_behavior/find_and_set/in_list/clean_targets/search_tactic(datum/ai_controller/basic_controller/bot/controller, locate_paths, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/found = typecache_filter_list(oview(search_range, controller.pawn), locate_paths) var/list/ignore_list = controller.blackboard[BB_TEMPORARY_IGNORE_LIST] for(var/atom/found_item in found) @@ -101,7 +101,7 @@ action_cooldown = 30 SECONDS behavior_flags = AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION -/datum/ai_behavior/find_and_set/spray_target/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/spray_target/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/ignore_list = controller.blackboard[BB_TEMPORARY_IGNORE_LIST] for(var/mob/living/carbon/human/human_target in oview(search_range, controller.pawn)) if(LAZYACCESS(ignore_list, human_target)) @@ -178,7 +178,7 @@ action_cooldown = 30 SECONDS behavior_flags = AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION -/datum/ai_behavior/find_and_set/friendly_janitor/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/friendly_janitor/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/mob/living/living_pawn = controller.pawn for(var/mob/living/carbon/human/human_target in oview(search_range, living_pawn)) if(human_target.stat != CONSCIOUS || isnull(human_target.mind)) diff --git a/code/modules/mob/living/basic/farm_animals/bee/bee_ai_behavior.dm b/code/modules/mob/living/basic/farm_animals/bee/bee_ai_behavior.dm index 84720986624..2a6ff31981c 100644 --- a/code/modules/mob/living/basic/farm_animals/bee/bee_ai_behavior.dm +++ b/code/modules/mob/living/basic/farm_animals/bee/bee_ai_behavior.dm @@ -64,7 +64,7 @@ /datum/ai_behavior/find_and_set/bee_hive action_cooldown = 10 SECONDS -/datum/ai_behavior/find_and_set/bee_hive/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/bee_hive/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/valid_hives = list() var/mob/living/bee_pawn = controller.pawn diff --git a/code/modules/mob/living/basic/farm_animals/goose/goose_ai.dm b/code/modules/mob/living/basic/farm_animals/goose/goose_ai.dm index 0ed86b50f7b..94202a90df3 100644 --- a/code/modules/mob/living/basic/farm_animals/goose/goose_ai.dm +++ b/code/modules/mob/living/basic/farm_animals/goose/goose_ai.dm @@ -55,7 +55,7 @@ /// Only set things geese will try to eat /datum/ai_behavior/find_and_set/in_list/goose_food -/datum/ai_behavior/find_and_set/in_list/goose_food/search_tactic(datum/ai_controller/controller, locate_paths, search_range) +/datum/ai_behavior/find_and_set/in_list/goose_food/search_tactic(datum/ai_controller/controller, locate_paths, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/found = typecache_filter_list(oview(search_range, controller.pawn), locate_paths) if(!length(found)) return diff --git a/code/modules/mob/living/basic/jungle/seedling/seedling_ai.dm b/code/modules/mob/living/basic/jungle/seedling/seedling_ai.dm index a4b85a3da17..fe4f3204f26 100644 --- a/code/modules/mob/living/basic/jungle/seedling/seedling_ai.dm +++ b/code/modules/mob/living/basic/jungle/seedling/seedling_ai.dm @@ -40,7 +40,7 @@ /datum/ai_behavior/find_and_set/treatable_hydro action_cooldown = 5 SECONDS -/datum/ai_behavior/find_and_set/treatable_hydro/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/treatable_hydro/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/possible_trays = list() var/mob/living/living_pawn = controller.pawn var/waterlevel_threshold = controller.blackboard[BB_WATERLEVEL_THRESHOLD] @@ -102,7 +102,7 @@ /datum/ai_behavior/find_and_set/beamable_hydroplants action_cooldown = 15 SECONDS -/datum/ai_behavior/find_and_set/beamable_hydroplants/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/beamable_hydroplants/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/possible_trays = list() for(var/obj/machinery/hydroponics/hydro in oview(search_range, controller.pawn)) diff --git a/code/modules/mob/living/basic/lavaland/mook/mook_ai.dm b/code/modules/mob/living/basic/lavaland/mook/mook_ai.dm index 41ce948d2a8..14a8acdabbd 100644 --- a/code/modules/mob/living/basic/lavaland/mook/mook_ai.dm +++ b/code/modules/mob/living/basic/lavaland/mook/mook_ai.dm @@ -250,7 +250,7 @@ GLOBAL_LIST_INIT(mook_commands, list( /datum/ai_behavior/find_and_set/music_audience -/datum/ai_behavior/find_and_set/music_audience/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/music_audience/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/atom/home = controller.blackboard[BB_HOME_VILLAGE] for(var/mob/living/carbon/human/target in oview(search_range, controller.pawn)) if(target.stat > UNCONSCIOUS || !target.mind) @@ -289,7 +289,7 @@ GLOBAL_LIST_INIT(mook_commands, list( return controller.queue_behavior(/datum/ai_behavior/find_and_set/find_chief, BB_MOOK_TRIBAL_CHIEF, /mob/living/basic/mining/mook/worker/tribal_chief) -/datum/ai_behavior/find_and_set/find_chief/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/find_chief/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/mob/living/chief = locate(locate_path) in oview(search_range, controller.pawn) if(isnull(chief)) return null diff --git a/code/modules/mob/living/basic/minebots/minebot_ai.dm b/code/modules/mob/living/basic/minebots/minebot_ai.dm index 7e92d79c5a0..69d7509f6c0 100644 --- a/code/modules/mob/living/basic/minebots/minebot_ai.dm +++ b/code/modules/mob/living/basic/minebots/minebot_ai.dm @@ -47,7 +47,7 @@ /datum/ai_behavior/find_and_set/clear_bombing_zone -/datum/ai_behavior/find_and_set/clear_bombing_zone/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/clear_bombing_zone/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) for(var/obj/effect/temp_visual/minebot_target/target in oview(search_range, controller.pawn)) if(isclosedturf(get_turf(target))) continue @@ -62,7 +62,7 @@ /datum/ai_behavior/find_and_set/miner_to_befriend -/datum/ai_behavior/find_and_set/miner_to_befriend/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/miner_to_befriend/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) for(var/mob/living/carbon/human/target in oview(search_range, controller.pawn)) if(HAS_TRAIT(target, TRAIT_ROCK_STONER)) return target @@ -112,7 +112,7 @@ return SUBTREE_RETURN_FINISH_PLANNING controller.queue_behavior(/datum/ai_behavior/find_and_set/unconscious_human, BB_NEARBY_DEAD_MINER, /mob/living/carbon/human) -/datum/ai_behavior/find_and_set/unconscious_human/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/unconscious_human/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) for(var/mob/living/carbon/human/target in oview(search_range, controller.pawn)) if(target.stat >= UNCONSCIOUS && target.mind) return target diff --git a/code/modules/mob/living/basic/pets/cat/cat_ai.dm b/code/modules/mob/living/basic/pets/cat/cat_ai.dm index 049b894b5d6..1150d17f96d 100644 --- a/code/modules/mob/living/basic/pets/cat/cat_ai.dm +++ b/code/modules/mob/living/basic/pets/cat/cat_ai.dm @@ -44,7 +44,7 @@ if(SPT_PROB(reside_chance, seconds_per_tick)) controller.queue_behavior(/datum/ai_behavior/find_and_set/valid_home, BB_CAT_HOME, /obj/structure/cat_house) -/datum/ai_behavior/find_and_set/valid_home/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/valid_home/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) for(var/obj/structure/cat_house/home in oview(search_range, controller.pawn)) if(home.resident_cat) continue @@ -95,7 +95,7 @@ controller.queue_behavior(/datum/ai_behavior/find_and_set/cat_tresspasser, BB_TRESSPASSER_TARGET, /mob/living/basic/pet/cat) -/datum/ai_behavior/find_and_set/cat_tresspasser/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/cat_tresspasser/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/ignore_types = controller.blackboard[BB_BABIES_CHILD_TYPES] for(var/mob/living/basic/pet/cat/potential_enemy in oview(search_range, controller.pawn)) if(potential_enemy.gender != MALE) @@ -244,7 +244,7 @@ /datum/ai_behavior/find_and_set/valid_kitten -/datum/ai_behavior/find_and_set/valid_kitten/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/valid_kitten/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/mob/living/kitten = locate(locate_path) in oview(search_range, controller.pawn) //kitten already has food near it, go feed another hungry kitten diff --git a/code/modules/mob/living/basic/pets/cat/kitten_ai.dm b/code/modules/mob/living/basic/pets/cat/kitten_ai.dm index cdb7ac542e1..952c7aabd68 100644 --- a/code/modules/mob/living/basic/pets/cat/kitten_ai.dm +++ b/code/modules/mob/living/basic/pets/cat/kitten_ai.dm @@ -56,7 +56,7 @@ controller.queue_behavior(/datum/ai_behavior/find_and_set/human_beg, BB_HUMAN_BEG_TARGET, /mob/living/carbon/human) -/datum/ai_behavior/find_and_set/human_beg/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/human_beg/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/locate_items = controller.blackboard[BB_HUNTABLE_PREY] for(var/mob/living/carbon/human/human_target in oview(search_range, controller.pawn)) if(human_target.stat != CONSCIOUS || isnull(human_target.mind)) diff --git a/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm b/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm index 1d242b995ec..900154b4c9a 100644 --- a/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm +++ b/code/modules/mob/living/basic/pets/orbie/orbie_ai.dm @@ -42,7 +42,7 @@ /datum/ai_behavior/find_and_set/find_playmate -/datum/ai_behavior/find_and_set/find_playmate/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/find_playmate/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) for(var/mob/living/basic/orbie/playmate in oview(search_range, controller.pawn)) if(playmate == controller.pawn || playmate.stat == DEAD || isnull(playmate.ai_controller)) continue diff --git a/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.dm b/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.dm index ad9a56b3acf..bdfad843333 100644 --- a/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.dm +++ b/code/modules/mob/living/basic/pets/parrot/parrot_ai/parrot_hoarding.dm @@ -27,7 +27,7 @@ /datum/ai_behavior/find_and_set/hoard_location -/datum/ai_behavior/find_and_set/hoard_location/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/hoard_location/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) for(var/turf/open/candidate in oview(search_range, controller.pawn)) if(is_space_or_openspace(candidate)) continue @@ -41,7 +41,7 @@ action_cooldown = 5 SECONDS behavior_flags = AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION -/datum/ai_behavior/find_and_set/hoard_item/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/hoard_item/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) if(!controller.blackboard_key_exists(BB_HOARD_LOCATION)) return null var/turf/nest_turf = controller.blackboard[BB_HOARD_LOCATION] diff --git a/code/modules/mob/living/basic/pets/penguin/penguin_ai.dm b/code/modules/mob/living/basic/pets/penguin/penguin_ai.dm index 50386bff374..9209c7fa004 100644 --- a/code/modules/mob/living/basic/pets/penguin/penguin_ai.dm +++ b/code/modules/mob/living/basic/pets/penguin/penguin_ai.dm @@ -51,7 +51,7 @@ /datum/ai_planning_subtree/fish/drilled_ice find_fishable_behavior = /datum/ai_behavior/find_and_set/in_list/drilled_ice -/datum/ai_behavior/find_and_set/in_list/drilled_ice/search_tactic(datum/ai_controller/controller, locate_paths, search_range) +/datum/ai_behavior/find_and_set/in_list/drilled_ice/search_tactic(datum/ai_controller/controller, locate_paths, search_range = SEARCH_TACTIC_DEFAULT_RANGE) for(var/atom/possible_ice as anything in RANGE_TURFS(search_range, controller.pawn)) if(!istype(possible_ice, /turf/open/misc/ice)) continue diff --git a/code/modules/mob/living/basic/pets/pet_cult/pet_cult_ai.dm b/code/modules/mob/living/basic/pets/pet_cult/pet_cult_ai.dm index 25565a181aa..28964296264 100644 --- a/code/modules/mob/living/basic/pets/pet_cult/pet_cult_ai.dm +++ b/code/modules/mob/living/basic/pets/pet_cult/pet_cult_ai.dm @@ -48,7 +48,7 @@ action_cooldown = 5 SECONDS behavior_flags = AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION -/datum/ai_behavior/find_and_set/friendly_cultist/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/friendly_cultist/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/mob/living/living_pawn = controller.pawn for(var/mob/living/carbon/possible_cultist in oview(search_range, controller.pawn)) if(IS_CULTIST(possible_cultist) && !(living_pawn.faction.Find(REF(possible_cultist)))) @@ -72,7 +72,7 @@ /datum/ai_behavior/find_and_set/occupied_rune -/datum/ai_behavior/find_and_set/occupied_rune/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/occupied_rune/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/datum/team/cult/cult_team = controller.blackboard[BB_CULT_TEAM] if(isnull(cult_team)) return null @@ -140,7 +140,7 @@ /datum/ai_behavior/find_and_set/dead_cultist -/datum/ai_behavior/find_and_set/dead_cultist/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/dead_cultist/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/datum/team/cult/cult_team = controller.blackboard[BB_CULT_TEAM] if(isnull(cult_team)) return null diff --git a/code/modules/mob/living/basic/space_fauna/hivebot/hivebot_behavior.dm b/code/modules/mob/living/basic/space_fauna/hivebot/hivebot_behavior.dm index 7db7a8913fa..54c3c13d139 100644 --- a/code/modules/mob/living/basic/space_fauna/hivebot/hivebot_behavior.dm +++ b/code/modules/mob/living/basic/space_fauna/hivebot/hivebot_behavior.dm @@ -1,9 +1,9 @@ /datum/ai_behavior/find_and_set/hive_partner -/datum/ai_behavior/find_and_set/hive_partner/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/hive_partner/search_tactic(datum/ai_controller/controller, locate_path, search_range = 10) var/mob/living/living_pawn = controller.pawn var/list/hive_partners = list() - for(var/mob/living/target in oview(10, living_pawn)) + for(var/mob/living/target in oview(search_range, living_pawn)) if(!istype(target, locate_path)) continue if(target.stat == DEAD) diff --git a/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm b/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm index cf9f262276c..f2bacdd514a 100644 --- a/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm +++ b/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm @@ -87,7 +87,7 @@ /datum/ai_behavior/find_and_set/empty_paper action_cooldown = 10 SECONDS -/datum/ai_behavior/find_and_set/empty_paper/search_tactic(datum/ai_controller/controller, locate_path, search_range) +/datum/ai_behavior/find_and_set/empty_paper/search_tactic(datum/ai_controller/controller, locate_path, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/empty_papers = list() for(var/obj/item/paper/target_paper in oview(search_range, controller.pawn)) diff --git a/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm b/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm index 7f2767e1497..c589152f1cd 100644 --- a/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm +++ b/code/modules/mob/living/basic/vermin/mothroach/mothroach_ai.dm @@ -22,7 +22,7 @@ /datum/ai_behavior/find_and_set/in_list/mothroach_food -/datum/ai_behavior/find_and_set/in_list/mothroach_food/search_tactic(datum/ai_controller/controller, locate_paths, search_range) +/datum/ai_behavior/find_and_set/in_list/mothroach_food/search_tactic(datum/ai_controller/controller, locate_paths, search_range = SEARCH_TACTIC_DEFAULT_RANGE) var/list/found = typecache_filter_list(oview(search_range, controller.pawn), locate_paths) var/mob/living/living_pawn = controller.pawn found -= living_pawn.loc