Files
Bubberstation/code/datums/ai/basic_mobs/pet_commands/play_dead.dm

27 lines
1.1 KiB
Plaintext

/// Pretend to be dead
/datum/ai_behavior/play_dead
/datum/ai_behavior/play_dead/setup(datum/ai_controller/controller)
. = ..()
var/mob/living/basic/basic_pawn = controller.pawn
if(!istype(basic_pawn) || basic_pawn.stat) // Can't act dead if you're dead
return
basic_pawn.emote("deathgasp", intentional=FALSE)
ADD_TRAIT(basic_pawn, TRAIT_FAKEDEATH, BASIC_MOB_DEATH_TRAIT)
basic_pawn.look_dead()
/datum/ai_behavior/play_dead/perform(seconds_per_tick, datum/ai_controller/controller)
if(SPT_PROB(10, seconds_per_tick))
return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED
return AI_BEHAVIOR_DELAY
/datum/ai_behavior/play_dead/finish_action(datum/ai_controller/controller, succeeded)
. = ..()
var/mob/living/basic/basic_pawn = controller.pawn
if(QDELETED(basic_pawn) || basic_pawn.stat) // imagine actually dying while playing dead. hell, imagine being the kid waiting for your pup to get back up :(
return
basic_pawn.visible_message(span_notice("[basic_pawn] miraculously springs back to life!"))
REMOVE_TRAIT(basic_pawn, TRAIT_FAKEDEATH, BASIC_MOB_DEATH_TRAIT)
basic_pawn.look_alive()
controller.clear_blackboard_key(BB_ACTIVE_PET_COMMAND)