diff --git a/code/controllers/subsystem/npcai.dm b/code/controllers/subsystem/npcai.dm new file mode 100644 index 00000000000..f8fa3a5aa0f --- /dev/null +++ b/code/controllers/subsystem/npcai.dm @@ -0,0 +1,24 @@ +SUBSYSTEM_DEF(npcai) + name = "NPC AI" // Simple AI controller, isolated from the SNPC one (NPCPool). + flags = SS_POST_FIRE_TIMING|SS_NO_INIT|SS_BACKGROUND + priority = FIRE_PRIORITY_NPC + runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME + var/list/simple_animal_list = list() + +/datum/controller/subsystem/npcai/stat_entry() + ..("SimAnimals:[simple_animal_list.len]") + +/datum/controller/subsystem/npcai/fire(resumed = FALSE) + if(!resumed) + src.simple_animal_list = simple_animal_list.Copy() + for(var/mob/living/simple_animal/M in simple_animal_list) + if(istype(M) && !QDELETED(M)) + if(!M.client && M.stat == CONSCIOUS) + M.process_ai() + if(MC_TICK_CHECK) + return + else + simple_animal_list -= M + +/datum/controller/subsystem/npcai/Recover() + simple_animal_list = SSnpcai.simple_animal_list \ No newline at end of file