[MIRROR] Washing machines can now shrink old t-shirts. [MDB IGNORE] (#9617)

* Washing machines can now shrink old t-shirts. (#62296)

About The Pull Request
image
Worn T-shirts, found in maintenance are now susceptible to shrinkage after repeated washing machine washings.
Too many machine washes can cause the shirts to shrink to the point that they simply disappear to the laundry dimension, as does real clothes in real life.

Why It's Good For The Game
Fun little hidden interaction with laundry machines due to my having noticed that laundry machines exist in the code still.

Changelog
🆑
expansion: Laundry machines can shrink particularly old, worn t-shirts. Remember kids, hand wash only.
/🆑

* Washing machines can now shrink old t-shirts.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
This commit is contained in:
SkyratBot
2021-11-22 19:00:48 +00:00
committed by GitHub
parent 35fcb6a2c7
commit 4ace8d3eb1
2 changed files with 24 additions and 12 deletions

View File

@@ -249,24 +249,24 @@ GLOBAL_LIST_INIT(dye_registry, list(
return target_type //successfully "appearance copy" dyed something; returns the target type as a hacky way of extending return target_type //successfully "appearance copy" dyed something; returns the target type as a hacky way of extending
//what happens to this object when washed inside a washing machine //what happens to this object when washed inside a washing machine
/atom/movable/proc/machine_wash(obj/machinery/washing_machine/WM) /atom/movable/proc/machine_wash(obj/machinery/washing_machine/washer)
return return
/obj/item/stack/sheet/hairlesshide/machine_wash(obj/machinery/washing_machine/WM) /obj/item/stack/sheet/hairlesshide/machine_wash(obj/machinery/washing_machine/washer)
new /obj/item/stack/sheet/wethide(drop_location(), amount) new /obj/item/stack/sheet/wethide(drop_location(), amount)
qdel(src) qdel(src)
/obj/item/clothing/suit/hooded/ian_costume/machine_wash(obj/machinery/washing_machine/WM) /obj/item/clothing/suit/hooded/ian_costume/machine_wash(obj/machinery/washing_machine/washer)
new /obj/item/food/meat/slab/corgi(loc) new /obj/item/food/meat/slab/corgi(loc)
qdel(src) qdel(src)
/mob/living/simple_animal/pet/machine_wash(obj/machinery/washing_machine/WM) /mob/living/simple_animal/pet/machine_wash(obj/machinery/washing_machine/washer)
WM.bloody_mess = TRUE washer.bloody_mess = TRUE
gib() gib()
/obj/item/machine_wash(obj/machinery/washing_machine/WM) /obj/item/machine_wash(obj/machinery/washing_machine/washer)
if(WM.color_source) if(washer.color_source)
dye_item(WM.color_source.dye_color) dye_item(washer.color_source.dye_color)
/obj/item/clothing/under/dye_item(dye_color, dye_key) /obj/item/clothing/under/dye_item(dye_color, dye_key)
. = ..() . = ..()
@@ -276,16 +276,16 @@ GLOBAL_LIST_INIT(dye_registry, list(
if(!can_adjust && adjusted) //we deadjust the uniform if it's now unadjustable if(!can_adjust && adjusted) //we deadjust the uniform if it's now unadjustable
toggle_jumpsuit_adjust() toggle_jumpsuit_adjust()
/obj/item/clothing/under/machine_wash(obj/machinery/washing_machine/WM) /obj/item/clothing/under/machine_wash(obj/machinery/washing_machine/washer)
freshly_laundered = TRUE freshly_laundered = TRUE
addtimer(VARSET_CALLBACK(src, freshly_laundered, FALSE), 5 MINUTES, TIMER_UNIQUE | TIMER_OVERRIDE) addtimer(VARSET_CALLBACK(src, freshly_laundered, FALSE), 5 MINUTES, TIMER_UNIQUE | TIMER_OVERRIDE)
..() ..()
/obj/item/clothing/head/mob_holder/machine_wash(obj/machinery/washing_machine/WM) /obj/item/clothing/head/mob_holder/machine_wash(obj/machinery/washing_machine/washer)
..() ..()
held_mob.machine_wash(WM) held_mob.machine_wash(washer)
/obj/item/clothing/shoes/sneakers/machine_wash(obj/machinery/washing_machine/WM) /obj/item/clothing/shoes/sneakers/machine_wash(obj/machinery/washing_machine/washer)
if(chained) if(chained)
chained = FALSE chained = FALSE
slowdown = SHOES_SLOWDOWN slowdown = SHOES_SLOWDOWN

View File

@@ -4,6 +4,18 @@
icon_state = "ianshirt" icon_state = "ianshirt"
inhand_icon_state = "ianshirt" inhand_icon_state = "ianshirt"
species_exception = list(/datum/species/golem) species_exception = list(/datum/species/golem)
///How many times has this shirt been washed? (In an ideal world this is just the determinant of the transform matrix.)
var/wash_count = 0
/obj/item/clothing/suit/ianshirt/machine_wash(obj/machinery/washing_machine/washer)
. = ..()
if(wash_count <= 5)
transform *= TRANSFORM_USING_VARIABLE(0.8, 1)
washer.balloon_alert_to_viewers("\the [src] appears to have shrunken after being washed.")
wash_count += 1
else
washer.balloon_alert_to_viewers("\the [src] implodes due to repeated washing.")
qdel(src)
/obj/item/clothing/suit/nerdshirt /obj/item/clothing/suit/nerdshirt
name = "gamer shirt" name = "gamer shirt"