From 0a3ea7114e4af953cb54fd0da515b009ed8a38d8 Mon Sep 17 00:00:00 2001 From: Azarak Date: Thu, 15 Oct 2020 23:06:05 +0200 Subject: [PATCH] zzz (#1325) --- .../mob/living/carbon/human/examine.dm | 3 +- config/skyrat/skyrat_config.txt | 3 ++ .../modules/cryosleep/code/config.dm | 2 ++ .../modules/cryosleep/code/cryopod.dm | 3 ++ .../modules/ssd_indicator/code/mob.dm | 30 ++++++++++++++++++ .../ssd_indicator/icons/ssd_indicator.dmi | Bin 0 -> 311 bytes .../modules/ssd_indicator/readme.md | 27 ++++++++++++++++ tgstation.dme | 2 ++ 8 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 modular_skyrat/modules/cryosleep/code/config.dm create mode 100644 modular_skyrat/modules/ssd_indicator/code/mob.dm create mode 100644 modular_skyrat/modules/ssd_indicator/icons/ssd_indicator.dmi create mode 100644 modular_skyrat/modules/ssd_indicator/readme.md diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 8ac522d7d34..73056e29b8b 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -376,7 +376,8 @@ if(!key) msg += "[t_He] [t_is] totally catatonic. The stresses of life in deep-space must have been too much for [t_him]. Any recovery is unlikely.\n" else if(!client) - msg += "[t_He] [t_has] a blank, absent-minded stare and appears completely unresponsive to anything. [t_He] may snap out of it soon.\n" + //msg += "[t_He] [t_has] a blank, absent-minded stare and appears completely unresponsive to anything. [t_He] may snap out of it soon.\n" //ORIGINAL + msg += "[t_He] [t_has] a blank, absent-minded stare and [t_has] been completely unresponsive to anything for [round(((world.time - lastclienttime) / (1 MINUTES)),1)] minutes. [t_He] may snap out of it soon.\n" //SKYRAT CHANGE ADDITION - SSD_INDICATOR var/scar_severity = 0 for(var/i in all_scars) diff --git a/config/skyrat/skyrat_config.txt b/config/skyrat/skyrat_config.txt index 683b206b584..af58770f756 100644 --- a/config/skyrat/skyrat_config.txt +++ b/config/skyrat/skyrat_config.txt @@ -4,3 +4,6 @@ ALERT_ORANGE_UPTO A major engineering emergency has developed. Non-engineering p ALERT_ORANGE_DOWNTO A major engineering emergency has developed. Non-engineering personnel are required to evacuate any affected areas and obey relevant instructions from engineering staff. ALERT_VIOLET_UPTO A major medical emergency has developed. Non-medical personnel are required to obey all relevant instructions from medical staff. ALERT_VIOLET_DOWNTO A major medical emergency has developed. Non-medical personnel are required to obey all relevant instructions from medical staff. + +## How long until someone can be put in cryo if they are SSD +CRYO_MIN_SSD_TIME 15 \ No newline at end of file diff --git a/modular_skyrat/modules/cryosleep/code/config.dm b/modular_skyrat/modules/cryosleep/code/config.dm new file mode 100644 index 00000000000..c3d9565771b --- /dev/null +++ b/modular_skyrat/modules/cryosleep/code/config.dm @@ -0,0 +1,2 @@ +/datum/config_entry/number/cryo_min_ssd_time + config_entry_value = 15 diff --git a/modular_skyrat/modules/cryosleep/code/cryopod.dm b/modular_skyrat/modules/cryosleep/code/cryopod.dm index 5554add799a..f9384392a47 100644 --- a/modular_skyrat/modules/cryosleep/code/cryopod.dm +++ b/modular_skyrat/modules/cryosleep/code/cryopod.dm @@ -439,6 +439,9 @@ else if(target.client) if(alert(target,"Would you like to enter cryosleep?",,"Yes","No") == "No") return + if (user != target && round(((world.time - target.lastclienttime) / (1 MINUTES)),1) <= CONFIG_GET(number/cryo_min_ssd_time)) + to_chat(user, "You can't put [target] into [src]. They might wake up soon.") + return var/generic_plsnoleave_message = " Please adminhelp before leaving the round, even if there are no administrators online!" if(target == user && world.time - target.client.cryo_warned > 5 MINUTES)//if we haven't warned them in the last 5 minutes var/list/caught_string diff --git a/modular_skyrat/modules/ssd_indicator/code/mob.dm b/modular_skyrat/modules/ssd_indicator/code/mob.dm new file mode 100644 index 00000000000..bb63f430894 --- /dev/null +++ b/modular_skyrat/modules/ssd_indicator/code/mob.dm @@ -0,0 +1,30 @@ +GLOBAL_VAR_INIT(ssd_indicator_overlay, mutable_appearance('modular_skyrat/modules/ssd_indicator/icons/ssd_indicator.dmi', "default0", FLY_LAYER)) + +/mob/living + var/ssd_indicator = FALSE + var/lastclienttime = 0 + +/mob/living/proc/set_ssd_indicator(var/state) + if(state == ssd_indicator) + return + ssd_indicator = state + if(ssd_indicator) + add_overlay(GLOB.ssd_indicator_overlay) + else + cut_overlay(GLOB.ssd_indicator_overlay) + +/mob/living/Login() + . = ..() + set_ssd_indicator(FALSE) + +/mob/living/Logout() + lastclienttime = world.time + set_ssd_indicator(TRUE) + +/* +//EDIT - TRANSFER CKEY IS NOT A THING ON THE TG CODEBASE, if things break too bad because of it, consider implementing it +//This proc should stop mobs from having the overlay when someone keeps jumping control of mobs, unfortunately it causes Aghosts to have their character without the SSD overlay, I wasn't able to find a better proc unfortunately +/mob/living/transfer_ckey(mob/new_mob, send_signal = TRUE) + ..() + set_ssd_indicator(FALSE) +*/ diff --git a/modular_skyrat/modules/ssd_indicator/icons/ssd_indicator.dmi b/modular_skyrat/modules/ssd_indicator/icons/ssd_indicator.dmi new file mode 100644 index 0000000000000000000000000000000000000000..3f7d100b6c67e725055ef21a964cbcbb113dca6c GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ{HliLl8Vm$j4_H-qwSRlG-d9=Bb7470iYcT0gf&&Q+`DHA9k#g1nzrpr!Ksf{3onM7 zt~9UWyzn9_sPVDb6Mr#vp58;BU%iWc)ikAF(|NJtR<-gE?}Z*GC8T-FPfC$i=+qJG z0$Sbd>Eaj?(fam^A>RQ74%UGE9|QLOf3o&PfT5_*@}|@3hKi<|{#~sdQzl#Xud3cD(Xnp937P3qET zuudpu*edNf;oHvH1)_z&{9m+BU|`} /mob/living/carbon/human/examine() + +### Defines: + + - N/A + +### Master file additions + +- N/A + +### Included files that are not contained in this module: + +- N/A + +### Credits: +Azarak - original code & porting diff --git a/tgstation.dme b/tgstation.dme index 0c1994e6001..f22caae8b4b 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3302,6 +3302,7 @@ #include "modular_skyrat\modules\blueshield\code\modules\jobs\job_types\blueshield.dm" #include "modular_skyrat\modules\blueshield\code\modules\projectiles\guns\energy\special.dm" #include "modular_skyrat\modules\cryosleep\code\ai.dm" +#include "modular_skyrat\modules\cryosleep\code\config.dm" #include "modular_skyrat\modules\cryosleep\code\cryopod.dm" #include "modular_skyrat\modules\cryosleep\code\job.dm" #include "modular_skyrat\modules\customization\__DEFINES\augment.dm" @@ -3474,6 +3475,7 @@ #include "modular_skyrat\modules\pixel_shift\code\pixel_shift.dm" #include "modular_skyrat\modules\radiosound\code\game\objects\items\devices\radio\headset.dm" #include "modular_skyrat\modules\SiliconQoL\code\_onclick.dm" +#include "modular_skyrat\modules\ssd_indicator\code\mob.dm" #include "modular_skyrat\modules\typing_indicator\code\mob.dm" #include "modular_skyrat\modules\verbs\code\modules\client\preferences_toggles.dm" #include "modular_skyrat\modules\verbs\code\modules\client\verbs\looc.dm"