diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index c471a69f8b9..752cdc0f631 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -207,7 +207,6 @@ canmove = 0 else canmove = 1 - update_stat("robot/update_canmove") update_transform() if(!delay_action_updates) update_action_buttons_icon() diff --git a/code/modules/mob/living/silicon/robot/update_status.dm b/code/modules/mob/living/silicon/robot/update_status.dm index 352750a23ea..fafc5a4c8c3 100644 --- a/code/modules/mob/living/silicon/robot/update_status.dm +++ b/code/modules/mob/living/silicon/robot/update_status.dm @@ -34,6 +34,31 @@ // diag_hud_set_health() // update_health_hud() +/mob/living/silicon/robot/SetStunned(amount, updating = 1, force = 0) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned" + . = STATUS_UPDATE_CANMOVE + if((!!amount) == (!!stunned)) // We're not changing from + to 0 or vice versa + updating = FALSE + . = STATUS_UPDATE_NONE + + if(status_flags & CANSTUN || force) + stunned = max(amount, 0) + if(updating) + update_stat() + else + return STATUS_UPDATE_NONE + +/mob/living/silicon/robot/SetWeakened(amount, updating = 1, force = 0) + . = STATUS_UPDATE_CANMOVE + if((!!amount) == (!!weakened)) // We're not changing from + to 0 or vice versa + updating = FALSE + . = STATUS_UPDATE_NONE + if(status_flags & CANWEAKEN || force) + weakened = max(amount, 0) + if(updating) + update_stat() + else + return STATUS_UPDATE_NONE + /mob/living/silicon/robot/update_revive(updating = TRUE) . = ..(updating) if(.)