mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-21 15:14:17 +00:00
* Basic Heretic Mobs: The Rest of Them * Update tgstation.dme --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
32 lines
1010 B
Plaintext
32 lines
1010 B
Plaintext
/datum/ai_controller/basic_controller
|
|
movement_delay = 0.4 SECONDS
|
|
|
|
/datum/ai_controller/basic_controller/TryPossessPawn(atom/new_pawn)
|
|
if(!isbasicmob(new_pawn))
|
|
return AI_CONTROLLER_INCOMPATIBLE
|
|
var/mob/living/basic/basic_mob = new_pawn
|
|
|
|
update_speed(basic_mob)
|
|
|
|
RegisterSignals(basic_mob, list(POST_BASIC_MOB_UPDATE_VARSPEED, COMSIG_MOB_MOVESPEED_UPDATED), PROC_REF(update_speed))
|
|
|
|
return ..() //Run parent at end
|
|
|
|
|
|
/datum/ai_controller/basic_controller/able_to_run()
|
|
. = ..()
|
|
if(!isliving(pawn))
|
|
return
|
|
var/mob/living/living_pawn = pawn
|
|
var/incap_flags = NONE
|
|
if (ai_traits & CAN_ACT_IN_STASIS)
|
|
incap_flags |= IGNORE_STASIS
|
|
if(!(ai_traits & CAN_ACT_WHILE_DEAD) && (living_pawn.incapacitated(incap_flags) || living_pawn.stat))
|
|
return FALSE
|
|
if(ai_traits & PAUSE_DURING_DO_AFTER && LAZYLEN(living_pawn.do_afters))
|
|
return FALSE
|
|
|
|
/datum/ai_controller/basic_controller/proc/update_speed(mob/living/basic/basic_mob)
|
|
SIGNAL_HANDLER
|
|
movement_delay = basic_mob.cached_multiplicative_slowdown
|