ensure some ai behavior procs call parent (#30703)

* ensure some ai behavior procs call parent

* fix slippage
This commit is contained in:
warriorstar-orion
2025-11-19 14:28:45 -05:00
committed by GitHub
parent 846c5de47e
commit 050494fe31
36 changed files with 52 additions and 0 deletions
@@ -138,6 +138,7 @@
return FALSE
/datum/ai_behavior/return_home/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
. = ..()
var/mob/living/living_pawn = controller.pawn
var/static/list/possible_emotes = list("rests its legs...", "yawns and naps...", "curls up and rests...")
living_pawn.custom_emote(EMOTE_VISIBLE, pick(possible_emotes))
@@ -149,4 +150,5 @@
behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT
/datum/ai_behavior/return_home/incursion_portal/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
. = ..()
return AI_BEHAVIOR_SUCCEEDED
@@ -27,6 +27,7 @@
set_movement_target(controller, target)
/datum/ai_behavior/enter_exit_hive/perform(seconds_per_tick, datum/ai_controller/controller, target_key, attack_key)
. = ..()
var/obj/structure/beebox/current_home = controller.blackboard[target_key]
var/atom/attack_target = controller.blackboard[attack_key]
@@ -47,6 +48,7 @@
set_movement_target(controller, target)
/datum/ai_behavior/inhabit_hive/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
. = ..()
var/obj/structure/beebox/potential_home = controller.blackboard[target_key]
var/mob/living/bee_pawn = controller.pawn
@@ -79,6 +79,7 @@
var/scan_range = 3
/datum/ai_behavior/find_unwebbed_turf/perform(seconds_per_tick, datum/ai_controller/controller)
. = ..()
var/mob/living/spider = controller.pawn
var/atom/current_target = controller.blackboard[target_key]
if(current_target && !(locate(/obj/structure/spider/stickyweb) in current_target))
@@ -145,6 +146,7 @@
return ..()
/datum/ai_behavior/spin_web/perform(seconds_per_tick, datum/ai_controller/controller, action_key, target_key)
. = ..()
var/datum/action/innate/web_giant_spider/web_action = controller.blackboard[action_key]
if(web_action?.Trigger())
return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED
@@ -169,6 +171,7 @@
var/scan_range = 3
/datum/ai_behavior/find_unwrapped_target/perform(seconds_per_tick, datum/ai_controller/controller)
. = ..()
var/mob/living/spider = controller.pawn
var/atom/current_target = controller.blackboard[target_key]
if(current_target)
@@ -225,6 +228,7 @@
return ..()
/datum/ai_behavior/wrap_target/perform(seconds_per_tick, datum/ai_controller/controller, action_key, target_key)
. = ..()
var/datum/action/innate/wrap_giant_spider/wrap_action = controller.blackboard[action_key]
if(wrap_action?.Trigger())
return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED
@@ -257,6 +261,7 @@
return ..()
/datum/ai_behavior/lay_eggs/perform(seconds_per_tick, datum/ai_controller/controller, action_key)
. = ..()
var/datum/action/innate/lay_eggs_giant_spider/egg_action = controller.blackboard[action_key]
if(egg_action?.Trigger())
return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED
@@ -293,6 +298,7 @@
set_movement_target(controller, target)
/datum/ai_behavior/cling_spider_follow/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
. = ..()
var/atom/target = controller.blackboard[target_key]
if(QDELETED(target))
return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED
@@ -80,6 +80,7 @@
set_movement_target(controller, target)
/datum/ai_behavior/relay_message/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
. = ..()
var/mob/living/target = controller.blackboard[target_key]
var/mob/living/living_pawn = controller.pawn
@@ -67,6 +67,7 @@
var/scan_range = 3
/datum/ai_behavior/goliath_find_diggable_turf/perform(seconds_per_tick, datum/ai_controller/controller)
. = ..()
var/turf/target_turf = controller.blackboard[target_key]
if(is_valid_turf(target_turf))
return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED
@@ -110,6 +111,7 @@
set_movement_target(controller, target_turf)
/datum/ai_behavior/goliath_dig/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
. = ..()
var/turf/target_turf = controller.blackboard[target_key]
var/mob/living/basic/basic_mob = controller.pawn
if(!basic_mob.can_reach(target_turf))
@@ -67,6 +67,7 @@
action_cooldown = 2 MINUTES
/datum/ai_behavior/send_sos_message/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
. = ..()
var/mob/living/carbon/target = controller.blackboard[target_key]
var/mob/living/living_pawn = controller.pawn
if(QDELETED(target) || is_station_level(target.z))
@@ -157,6 +158,7 @@
set_movement_target(controller, target)
/datum/ai_behavior/minebot_mine_turf/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
. = ..()
var/mob/living/basic/living_pawn = controller.pawn
var/turf/target = controller.blackboard[target_key]
@@ -126,6 +126,7 @@
required_distance = 0
/datum/ai_behavior/summon_brood/perform(seconds_per_tick, datum/ai_controller/controller)
. = ..()
var/mob/living/basic/mining/hivelord/summoner = controller.pawn
var/mob/living/basic/mining/hivelordbrood/A = new summoner.brood_type(summoner.loc)
A.admin_spawned = summoner.admin_spawned