[MIRROR] Fixes a few issues with double bedsheets. [MDB IGNORE] (#9281)

* Fixes a few issues with double bedsheets. (#62590)

Fixes the random and dorms spawners for double bed sheets. Fixes the dying_key for double bed sheets.

* Fixes a few issues with double bedsheets.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
This commit is contained in:
SkyratBot
2021-11-06 19:30:53 -04:00
committed by GitHub
co-authored by Ghom
parent f04fc60b4c
commit 3d123f0c16
+89 -15
View File
@@ -4,6 +4,10 @@ BEDSHEETS
LINEN BINS
*/
#define BEDSHEET_ABSTRACT "abstract"
#define BEDSHEET_SINGLE "single"
#define BEDSHEET_DOUBLE "double"
/obj/item/bedsheet
name = "bedsheet"
desc = "A surprisingly soft linen bedsheet."
@@ -23,6 +27,7 @@ LINEN BINS
dog_fashion = /datum/dog_fashion/head/ghost
var/list/dream_messages = list("white")
var/bedsheet_type = BEDSHEET_SINGLE
/obj/item/bedsheet/Initialize(mapload)
. = ..()
@@ -252,18 +257,32 @@ LINEN BINS
icon_state = "random_bedsheet"
name = "random bedsheet"
desc = "If you're reading this description ingame, something has gone wrong! Honk!"
slot_flags = null
bedsheet_type = BEDSHEET_ABSTRACT
var/static/list/bedsheet_list
var/spawn_type = BEDSHEET_SINGLE
/obj/item/bedsheet/random/Initialize(mapload)
..()
var/type = pick(typesof(/obj/item/bedsheet) - /obj/item/bedsheet/random)
new type(loc)
if(!LAZYACCESS(bedsheet_list, spawn_type))
var/list/spawn_list = list()
var/list/possible_types = typesof(/obj/item/bedsheet)
for(var/obj/item/bedsheet/sheet as anything in possible_types)
if(initial(sheet.bedsheet_type) == spawn_type)
spawn_list += sheet
LAZYSET(bedsheet_list, spawn_type, spawn_list)
var/chosen_type = pick(bedsheet_list[spawn_type])
new chosen_type(loc)
return INITIALIZE_HINT_QDEL
/obj/item/bedsheet/random/double
icon_state = "random_bedsheet"
spawn_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/dorms
icon_state = "random_bedsheet"
name = "random dorms bedsheet"
desc = "If you're reading this description ingame, something has gone wrong! Honk!"
bedsheet_type = BEDSHEET_DOUBLE
slot_flags = null
/obj/item/bedsheet/dorms/Initialize(mapload)
@@ -292,138 +311,189 @@ LINEN BINS
/obj/item/bedsheet/double
icon_state = "double_sheetwhite"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
worn_icon_state = "sheetwhite"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/blue/double
icon_state = "double_sheetblue"
worn_icon_state = "sheetblue"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/green/double
icon_state = "double_sheetgreen"
worn_icon_state = "sheetgreen"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/grey/double
icon_state = "double_sheetgrey"
worn_icon_state = "sheetgrey"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/orange/double
icon_state = "double_sheetorange"
worn_icon_state = "sheetorange"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/purple/double
icon_state = "double_sheetpurple"
worn_icon_state = "sheetpurple"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/patriot/double
icon_state = "double_sheetUSA"
worn_icon_state = "sheetUSA"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/rainbow/double
icon_state = "double_sheetrainbow"
worn_icon_state = "sheetrainbow"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/red/double
icon_state = "double_sheetred"
worn_icon_state = "sheetred"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/yellow/double
icon_state = "double_sheetyellow"
worn_icon_state = "sheetyellow"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/mime/double
icon_state = "double_sheetmime"
worn_icon_state = "sheetmime"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/clown/double
icon_state = "double_sheetclown"
worn_icon_state = "sheetclown"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/captain/double
icon_state = "double_sheetcaptain"
worn_icon_state = "sheetcaptain"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/rd/double
icon_state = "double_sheetrd"
worn_icon_state = "sheetrd"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/medical/double
icon_state = "double_sheetmedical"
worn_icon_state = "sheetmedical"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/cmo/double
icon_state = "double_sheetcmo"
worn_icon_state = "sheetcmo"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/hos/double
icon_state = "double_sheethos"
worn_icon_state = "sheethos"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/hop/double
icon_state = "double_sheethop"
worn_icon_state = "sheethop"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/ce/double
icon_state = "double_sheetce"
worn_icon_state = "sheetce"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/qm/double
icon_state = "double_sheetqm"
worn_icon_state = "sheetqm"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/chaplain/double
icon_state = "double_sheetchap"
worn_icon_state = "sheetchap"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/brown/double
icon_state = "double_sheetbrown"
worn_icon_state = "sheetbrown"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/black/double
icon_state = "double_sheetblack"
worn_icon_state = "sheetblack"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/centcom/double
icon_state = "double_sheetcentcom"
worn_icon_state = "sheetcentcom"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/syndie/double
icon_state = "double_sheetsyndie"
worn_icon_state = "sheetsyndie"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/cult/double
icon_state = "double_sheetcult"
worn_icon_state = "sheetcult"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/wiz/double
icon_state = "double_sheetwiz"
worn_icon_state = "sheetwiz"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/nanotrasen/double
icon_state = "double_sheetNT"
worn_icon_state = "sheetNT"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/ian/double
icon_state = "double_sheetian"
worn_icon_state = "sheetian"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/cosmos/double
icon_state = "double_sheetcosmos"
worn_icon_state = "sheetcosmos"
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
bedsheet_type = BEDSHEET_DOUBLE
/obj/item/bedsheet/random/double
/obj/item/bedsheet/dorms_double
icon_state = "random_bedsheet"
bedsheet_type = BEDSHEET_ABSTRACT
/obj/item/bedsheet/random/double/Initialize()
..()
var/type = pick(typesof(/obj/item/bedsheet) - /obj/item/bedsheet/random)
new type(loc)
return INITIALIZE_HINT_QDEL
/obj/item/bedsheet/dorms/double
icon_state = "random_bedsheet"
/obj/item/bedsheet/dorms/double/Initialize()
/obj/item/bedsheet/dorms_double/Initialize()
..()
var/type = pick_weight(list("Colors" = 80, "Special" = 20))
switch(type)
@@ -579,3 +649,7 @@ LINEN BINS
add_fingerprint(user)
return COMPONENT_CANCEL_ATTACK_CHAIN
#undef BEDSHEET_ABSTRACT
#undef BEDSHEET_SINGLE
#undef BEDSHEET_DOUBLE