From 04c2cda33893bcf88b1b3faa94ec6218370ab92d Mon Sep 17 00:00:00 2001 From: SomeGuyEatingPie Date: Thu, 11 Aug 2022 14:04:05 +0100 Subject: [PATCH] Built, Needs testing --- GainStation13/code/obj/structure/scale.dm | 40 +++++++++++++++-------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/GainStation13/code/obj/structure/scale.dm b/GainStation13/code/obj/structure/scale.dm index 50558168..fdca4cbc 100644 --- a/GainStation13/code/obj/structure/scale.dm +++ b/GainStation13/code/obj/structure/scale.dm @@ -1,6 +1,6 @@ /obj/structure/scale name = "weighing scale" - desc = "You can weigh yourself with this. Its last reading was: [src.lastreading]Lbs" + desc = "You can weigh yourself with this." icon = 'GainStation13/icons/obj/scale.dmi' icon_state = "scale" anchored = TRUE @@ -10,6 +10,7 @@ var/buildstacktype = /obj/item/stack/sheet/metal var/buildstackamount = 3 layer = OBJ_LAYER + //stores the weight of the last person to step on in Lbs var/lastreading = 0 /obj/structure/scale/deconstruct() @@ -36,22 +37,33 @@ else return ..() -/obj/structure/chair/examine(mob/user) +/obj/structure/scale/examine(mob/user) . = ..() + . += "Its last reading was: [src.lastreading]Lbs" . += "It's held together by a couple of bolts." -/obj/structure/scale/Crossed(AM) +/obj/structure/scale/proc/weighEffect(mob/living/carbon/human/fatty) + to_chat(fatty, "You weigh yourself.") + to_chat(fatty, "The numbers on the screen tick up and eventually settle on:") + //The appearance of the numbers changes with the fat level of the character + if(HAS_TRAIT(fatty, FATNESS_LEVEL_IMMOBILE) || HAS_TRAIT(fatty, FATNESS_LEVEL_BLOB)) + to_chat(fatty, " [src.lastreading]LBS!") + else if(HAS_TRAIT(fatty, FATNESS_LEVEL_OBESE) || HAS_TRAIT(fatty, FATNESS_LEVEL_MORBIDLY_OBESE)) + to_chat(fatty, "[src.lastreading]Lbs!") + else + to_chat(fatty, "[src.lastreading]Lbs.") - if(AM.ishuman()) - var/mob/living/fatty = AM - if(isturf(loc)) +/obj/structure/scale/Crossed(AM as mob|obj) + if(isturf(loc)) + //need to be sure the thing that just crossed the scale is human + if(ishuman(AM)) + var/mob/living/carbon/human/HM = AM + if(!(HM.movement_type & FLYING)) + weighperson(HM) - if(!(fatty.movement_type & FLYING)) - - - src.lastreading = (150 + fatty.fatness)*(fatty.size_multiplier**2) - usr.visible_message("[usr] weighs themselves on the scales.", "You weigh yourself on the scales") - usr.visible_message(" The scales read [src.lastreading]Lbs ") - - +/obj/structure/scale/proc/weighperson(mob/living/carbon/human/fatty) + src.lastreading = (150 + fatty.fatness)*(fatty.size_multiplier**2) + weighEffect(fatty) + visible_message("[fatty] Weighs themselves.") + visible_message("The numbers on the screen settle on: [src.lastreading]Lbs.")