From 3f2e2bbff520b559c338042e08cc01cd50b3527f Mon Sep 17 00:00:00 2001 From: Archie Date: Thu, 15 Jul 2021 18:53:13 -0300 Subject: [PATCH] Return of the squish element --- code/datums/elements/squish.dm | 28 ++++++++++++++++++++++++++++ tgstation.dme | 1 + 2 files changed, 29 insertions(+) create mode 100644 code/datums/elements/squish.dm diff --git a/code/datums/elements/squish.dm b/code/datums/elements/squish.dm new file mode 100644 index 00000000..823d391e --- /dev/null +++ b/code/datums/elements/squish.dm @@ -0,0 +1,28 @@ +#define SHORT 5/7 +#define TALL 7/5 + +/datum/element/squish + element_flags = ELEMENT_DETACH + +/datum/element/squish/Attach(datum/target, duration) + . = ..() + if(!iscarbon(target)) + return ELEMENT_INCOMPATIBLE + + var/mob/living/carbon/C = target + var/was_lying = (C.lying != 0) + addtimer(CALLBACK(src, .proc/Detach, C, was_lying), duration) + + C.transform = C.transform.Scale(TALL, SHORT) + +/datum/element/squish/Detach(mob/living/carbon/C, was_lying) + . = ..() + if(istype(C)) + var/is_lying = (C.lying != 0) + if(was_lying == is_lying) + C.transform = C.transform.Scale(SHORT, TALL) + else + C.transform = C.transform.Scale(TALL, SHORT) + +#undef SHORT +#undef TALL diff --git a/tgstation.dme b/tgstation.dme index 4e0c3088..0bca9ad0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -477,6 +477,7 @@ #include "code\datums\elements\flavor_text.dm" #include "code\datums\elements\ghost_role_eligibility.dm" #include "code\datums\elements\mob_holder.dm" +#include "code\datums\elements\squish.dm" #include "code\datums\elements\swimming.dm" #include "code\datums\elements\wuv.dm" #include "code\datums\helper_datums\events.dm"