mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-13 09:05:11 +01:00
Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts: # _maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm # _maps/RandomRuins/SpaceRuins/garbagetruck2.dmm # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # _maps/map_files/tramstation/tramstation.dmm # code/_onclick/hud/new_player.dm # code/datums/components/squashable.dm # code/datums/diseases/advance/symptoms/heal.dm # code/datums/diseases/chronic_illness.dm # code/datums/status_effects/buffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/stamcrit.dm # code/game/machinery/computer/crew.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/wall_mounted.dm # code/game/turfs/closed/indestructible.dm # code/modules/admin/view_variables/filterrific.dm # code/modules/antagonists/heretic/influences.dm # code/modules/cargo/orderconsole.dm # code/modules/client/preferences.dm # code/modules/events/space_vines/vine_mutations.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/carbon/human/death.dm # code/modules/mob/living/carbon/human/species_types/jellypeople.dm # code/modules/mob/living/damage_procs.dm # code/modules/mob/living/living.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mob_spawn/mob_spawn.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/projectiles/guns/ballistic/launchers.dm # code/modules/projectiles/guns/energy/laser.dm # code/modules/reagents/chemistry/machinery/chem_dispenser.dm # code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/medicine_reagents.dm # code/modules/surgery/healing.dm # code/modules/unit_tests/designs.dm # icons/mob/inhands/items_lefthand.dmi # icons/mob/inhands/items_righthand.dmi # tgui/packages/tgui/interfaces/ChemDispenser.tsx
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user