From 03b9dafae4c28eada6460a853082c213b7080149 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sun, 8 Dec 2019 02:45:18 -0600 Subject: [PATCH 1/4] Sleep clearning effects don't work on mobs who are admin frozen --- code/modules/admin/verbs/freeze.dm | 13 +++++++------ code/modules/mob/living/status_procs.dm | 2 ++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/code/modules/admin/verbs/freeze.dm b/code/modules/admin/verbs/freeze.dm index 4d60fb72bee..7b53ed26570 100644 --- a/code/modules/admin/verbs/freeze.dm +++ b/code/modules/admin/verbs/freeze.dm @@ -26,7 +26,7 @@ var/global/list/frozen_mob_list = list() /mob/living/var/frozen = null //used for preventing attacks on admin-frozen mobs /mob/living/var/admin_prev_sleeping = 0 //used for keeping track of previous sleeping value with admin freeze -/mob/living/proc/admin_Freeze(var/client/admin, skip_overlays = FALSE) +/mob/living/proc/admin_Freeze(client/admin, skip_overlays = FALSE) if(istype(admin)) to_chat(src, "You have been frozen by [admin]") message_admins("[key_name_admin(admin)] froze [key_name_admin(src)]") @@ -34,24 +34,25 @@ var/global/list/frozen_mob_list = list() var/obj/effect/overlay/adminoverlay/AO = new if(skip_overlays) - src.overlays += AO + overlays += AO - anchored = 1 - frozen = AO + canmove = FALSE admin_prev_sleeping = sleeping AdjustSleeping(20000) + frozen = AO if(!(src in frozen_mob_list)) frozen_mob_list += src -/mob/living/proc/admin_unFreeze(var/client/admin, skip_overlays = FALSE) +/mob/living/proc/admin_unFreeze(client/admin, skip_overlays = FALSE) if(istype(admin)) to_chat(src, "You have been unfrozen by [admin]") message_admins("[key_name_admin(admin)] unfroze [key_name_admin(src)]") log_admin("[key_name(admin)] unfroze [key_name(src)]") - anchored = 0 if(skip_overlays) overlays -= frozen + + canmove = TRUE frozen = null SetSleeping(admin_prev_sleeping) admin_prev_sleeping = null diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 0e1a19da662..28cdc17afeb 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -344,6 +344,8 @@ return SetSleeping(max(sleeping, amount), updating, no_alert) /mob/living/SetSleeping(amount, updating = 1, no_alert = FALSE) + if(frozen) // If the mob has been admin frozen, sleeping should not be changable + return FALSE . = STATUS_UPDATE_STAT if((!!amount) == (!!sleeping)) // We're not changing from + to 0 or vice versa updating = FALSE From 42e2aa7dcebd6c71e7abfd532b2288875f457cc2 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sun, 8 Dec 2019 02:54:30 -0600 Subject: [PATCH 2/4] typo --- code/modules/mob/living/status_procs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 28cdc17afeb..7beb722ae2e 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -344,7 +344,7 @@ return SetSleeping(max(sleeping, amount), updating, no_alert) /mob/living/SetSleeping(amount, updating = 1, no_alert = FALSE) - if(frozen) // If the mob has been admin frozen, sleeping should not be changable + if(frozen) // If the mob has been admin frozen, sleeping should not be changeable return FALSE . = STATUS_UPDATE_STAT if((!!amount) == (!!sleeping)) // We're not changing from + to 0 or vice versa From 254c2daedf184a64dcb56be3ca8bf55bf8095a83 Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sun, 8 Dec 2019 10:45:15 -0600 Subject: [PATCH 3/4] re add anchored --- code/modules/admin/verbs/freeze.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/admin/verbs/freeze.dm b/code/modules/admin/verbs/freeze.dm index 7b53ed26570..9b01e94846c 100644 --- a/code/modules/admin/verbs/freeze.dm +++ b/code/modules/admin/verbs/freeze.dm @@ -36,6 +36,7 @@ var/global/list/frozen_mob_list = list() if(skip_overlays) overlays += AO + anchored = TRUE canmove = FALSE admin_prev_sleeping = sleeping AdjustSleeping(20000) @@ -52,6 +53,7 @@ var/global/list/frozen_mob_list = list() if(skip_overlays) overlays -= frozen + anchored = FALSE canmove = TRUE frozen = null SetSleeping(admin_prev_sleeping) From d13100676f257198fb37fb4cb40ce8f0b768734c Mon Sep 17 00:00:00 2001 From: SteelSlayer Date: Sat, 14 Dec 2019 00:14:46 -0600 Subject: [PATCH 4/4] remove false --- code/modules/mob/living/status_procs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 7beb722ae2e..72f136304d7 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -345,7 +345,7 @@ /mob/living/SetSleeping(amount, updating = 1, no_alert = FALSE) if(frozen) // If the mob has been admin frozen, sleeping should not be changeable - return FALSE + return . = STATUS_UPDATE_STAT if((!!amount) == (!!sleeping)) // We're not changing from + to 0 or vice versa updating = FALSE