From 3dc83f4408143af1daf377dcac88e7e95dc148a5 Mon Sep 17 00:00:00 2001 From: Tom <8881105+tf-4@users.noreply.github.com> Date: Mon, 12 Sep 2022 04:30:27 +0100 Subject: [PATCH] Using a bedsheet on an occupied cryopod tucks the occupant in goodnight (#16157) * cryopod tuck * only one tuck pls * ooough do it here --- modular_skyrat/modules/cryosleep/code/cryopod.dm | 16 ++++++++++++++++ modular_skyrat/modules/cryosleep/code/mood.dm | 9 +++++++++ tgstation.dme | 1 + 3 files changed, 26 insertions(+) create mode 100644 modular_skyrat/modules/cryosleep/code/mood.dm diff --git a/modular_skyrat/modules/cryosleep/code/cryopod.dm b/modular_skyrat/modules/cryosleep/code/cryopod.dm index e88ecf82472..ff09b6e22be 100644 --- a/modular_skyrat/modules/cryosleep/code/cryopod.dm +++ b/modular_skyrat/modules/cryosleep/code/cryopod.dm @@ -157,6 +157,8 @@ GLOBAL_LIST_EMPTY(valid_cryopods) /// if false, plays announcement on cryo var/quiet = FALSE + /// Has the occupant been tucked in? + var/tucked = FALSE /obj/machinery/cryopod/quiet quiet = TRUE @@ -210,6 +212,7 @@ GLOBAL_LIST_EMPTY(valid_cryopods) icon_state = "cryopod-open" set_density(TRUE) name = initial(name) + tucked = FALSE /obj/machinery/cryopod/container_resist_act(mob/living/user) visible_message(span_notice("[occupant] emerges from [src]!"), @@ -459,6 +462,19 @@ GLOBAL_LIST_EMPTY(valid_cryopods) /obj/machinery/cryopod/blob_act() return // Sorta gamey, but we don't really want these to be destroyed. +/obj/machinery/cryopod/attackby(obj/item/weapon, mob/living/carbon/human/user, params) + . = ..() + if(istype(weapon, /obj/item/bedsheet)) + if(!occupant || !istype(occupant, /mob/living)) + return + if(tucked) + to_chat(user, span_warning("[occupant.name] already looks pretty comfortable!")) + return + to_chat(user, span_notice("You tuck [occupant.name] into their pod!")) + qdel(weapon) + user.add_mood_event("tucked", /datum/mood_event/tucked_in, occupant) + tucked = TRUE + // Wake-up notifications /obj/effect/mob_spawn/ghost_role diff --git a/modular_skyrat/modules/cryosleep/code/mood.dm b/modular_skyrat/modules/cryosleep/code/mood.dm new file mode 100644 index 00000000000..a64cfaf19c5 --- /dev/null +++ b/modular_skyrat/modules/cryosleep/code/mood.dm @@ -0,0 +1,9 @@ +/datum/mood_event/tucked_in + description = "I feel better having tucked someone in for a good night's rest!" + mood_change = 3 + timeout = 2 MINUTES + +/datum/mood_event/tucked_in/add_effects(mob/tuckee) + if(!tuckee) + return + description = "I feel better having tucked in [tuckee.name] for a good night's rest!" diff --git a/tgstation.dme b/tgstation.dme index 1738a6d2d9a..8c957a6deb0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5294,6 +5294,7 @@ #include "modular_skyrat\modules\cryosleep\code\cryopod.dm" #include "modular_skyrat\modules\cryosleep\code\job.dm" #include "modular_skyrat\modules\cryosleep\code\mind.dm" +#include "modular_skyrat\modules\cryosleep\code\mood.dm" #include "modular_skyrat\modules\curatorbundle\Mushy.dm" #include "modular_skyrat\modules\curatorbundle\Ronin.dm" #include "modular_skyrat\modules\customization\__DEFINES\DNA.dm"