Sleep AI processing when nobody on their Zlevel

This commit is contained in:
Aronai Sieyes
2020-05-17 10:00:14 -04:00
parent 190e8bdd5a
commit 0bad4363b8
6 changed files with 39 additions and 5 deletions

View File

@@ -318,9 +318,11 @@
if(STANCE_MOVE)
if(hostile && find_target()) // This will switch its stance.
ai_log("handle_stance_strategical() : STANCE_MOVE, found target and was inturrupted.", AI_LOG_TRACE)
return
if(STANCE_FOLLOW)
if(hostile && find_target()) // This will switch its stance.
ai_log("handle_stance_strategical() : STANCE_FOLLOW, found target and was inturrupted.", AI_LOG_TRACE)
return
else if(leader)
ai_log("handle_stance_strategical() : STANCE_FOLLOW, going to calculate_path([leader]).", AI_LOG_TRACE)
calculate_path(leader)
@@ -359,5 +361,6 @@
if(ai_holder)
ai_holder.receive_taunt(taunter, force_target_switch)
#undef AI_NO_PROCESS
#undef AI_PROCESSING
#undef AI_FASTPROCESSING

View File

@@ -6,7 +6,7 @@
// If our holder is able to do anything.
/datum/ai_holder/proc/can_act()
if(!holder) // Holder missing.
manage_processing(AI_NO_PROCESS)
manage_processing(0)
return FALSE
if(holder.stat) // Dead or unconscious.
ai_log("can_act() : Stat was non-zero ([holder.stat]).", AI_LOG_TRACE)

View File

@@ -156,6 +156,9 @@
// contained in a cage
var/in_stasis = 0
// don't process me if there's nobody around to see it
low_priority = TRUE
/mob/living/simple_mob/Initialize()
verbs -= /mob/verb/observe
health = maxHealth

View File

@@ -1200,6 +1200,16 @@ mob/proc/yank_out_object()
else
registered_z = null
GLOBAL_LIST_EMPTY(living_players_by_zlevel)
/mob/living/update_client_z(new_z)
var/precall_reg_z = registered_z
. = ..() // will update registered_z if necessary
if(precall_reg_z != registered_z) // parent did work, let's do work too
if(precall_reg_z)
GLOB.living_players_by_zlevel[precall_reg_z] -= src
if(registered_z)
GLOB.living_players_by_zlevel[registered_z] += src
/mob/onTransitZ(old_z, new_z)
..()
update_client_z(new_z)