From 2d1fb6f0f4939134b59023d48df8a4ec6db5273f Mon Sep 17 00:00:00 2001 From: CHOMPStation2 <58959929+CHOMPStation2@users.noreply.github.com> Date: Sun, 10 Mar 2024 23:44:54 -0700 Subject: [PATCH] [MIRROR] Pillows for the pillow throne (#7896) Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: Raeschen --- ATTRIBUTIONS.md | 7 +- code/datums/supplypacks/recreation_vr.dm | 65 ++++++ code/game/objects/structures/pillows.dm | 260 +++++++++++++++++++++++ icons/obj/pillows.dmi | Bin 0 -> 5881 bytes vorestation.dme | 1 + 5 files changed, 332 insertions(+), 1 deletion(-) create mode 100644 code/game/objects/structures/pillows.dm create mode 100644 icons/obj/pillows.dmi diff --git a/ATTRIBUTIONS.md b/ATTRIBUTIONS.md index 41fe7592fe..ad1401ed82 100644 --- a/ATTRIBUTIONS.md +++ b/ATTRIBUTIONS.md @@ -53,4 +53,9 @@ **File:** `sound/ambience/startup.ogg` and `sound/ambience/shutdown.ogg`
**Title:** Spaceship starup and shutdown
**Creator:** viznoman (https://freesound.org/people/viznoman/sounds/267308/)
-**License:** [CC BY 3.0](http://creativecommons.org/licenses/by/3.0/)
\ No newline at end of file +**License:** [CC BY 3.0](http://creativecommons.org/licenses/by/3.0/)
+
+**File:** `icons/obj/pillows.dmi`
+**Title:** pillows.dmi
+**Creator:** Lamella-0587 (https://github.com/Skyrat-SS13/Skyrat-tg/pull/6740)
+**License:** [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/)
\ No newline at end of file diff --git a/code/datums/supplypacks/recreation_vr.dm b/code/datums/supplypacks/recreation_vr.dm index 8eb64c7c29..d59fdabb15 100644 --- a/code/datums/supplypacks/recreation_vr.dm +++ b/code/datums/supplypacks/recreation_vr.dm @@ -106,3 +106,68 @@ cost = 25 containertype = /obj/structure/closet/crate containername = "Snack planets crate" + +/datum/supply_pack/recreation/pinkpillows + name = "Pink Pillow Crate" + contains = list( + /obj/item/weapon/bedsheet/pillow = 6 + ) + cost = 10 + containertype = /obj/structure/closet/crate + +/datum/supply_pack/recreation/tealpillows + name = "Teal Pillow Crate" + contains = list( + /obj/item/weapon/bedsheet/pillow/teal = 6 + ) + cost = 10 + containertype = /obj/structure/closet/crate + +/datum/supply_pack/recreation/whitepillows + name = "White Pillow Crate" + contains = list( + /obj/item/weapon/bedsheet/pillow/white = 6 + ) + cost = 10 + containertype = /obj/structure/closet/crate + +/datum/supply_pack/recreation/blackpillows + name = "Black Pillow Crate" + contains = list( + /obj/item/weapon/bedsheet/pillow/black = 6 + ) + cost = 10 + containertype = /obj/structure/closet/crate + +/datum/supply_pack/recreation/redpillows + name = "Red Pillow Crate" + contains = list( + /obj/item/weapon/bedsheet/pillow/red = 6 + ) + cost = 10 + containertype = /obj/structure/closet/crate + +/datum/supply_pack/recreation/greenpillows + name = "Green Pillow Crate" + contains = list( + /obj/item/weapon/bedsheet/pillow/green = 6 + ) + cost = 10 + containertype = /obj/structure/closet/crate + +/datum/supply_pack/recreation/orangepillows + name = "Orange Pillow Crate" + contains = list( + /obj/item/weapon/bedsheet/pillow/orange = 6 + ) + cost = 10 + containertype = /obj/structure/closet/crate + +/datum/supply_pack/recreation/yellowpillows + name = "Yellow Pillow Crate" + contains = list( + /obj/item/weapon/bedsheet/pillow/yellow = 6 + ) + cost = 10 + containertype = /obj/structure/closet/crate + diff --git a/code/game/objects/structures/pillows.dm b/code/game/objects/structures/pillows.dm new file mode 100644 index 0000000000..fa97543f09 --- /dev/null +++ b/code/game/objects/structures/pillows.dm @@ -0,0 +1,260 @@ +//Pillows with sprites ported from skyrat + +/obj/item/weapon/bedsheet/pillow + name = "pillow" + desc = "A surprisingly soft stuffed pillow." + icon = 'icons/obj/pillows.dmi' + icon_state = "pillow_pink_square" + slot_flags = 0 + var/pile_type = "/obj/structure/bed/pillowpile" + throw_range = 7 + +/obj/item/weapon/bedsheet/pillow/attack_self(mob/user as mob) + user.drop_item() + if(icon_state == initial(icon_state)) + icon_state = "[icon_state]_placed" + add_fingerprint(user) + +/obj/item/weapon/bedsheet/pillow/pickup(mob/user) + ..() + icon_state = initial(icon_state) + +/obj/item/weapon/bedsheet/pillow/attackby(var/obj/item/component, mob/user as mob) + if (istype(component,src)) + to_chat(user, "You assemble a pillow pile!") + user.drop_item() + qdel(component) + var/turf/T = get_turf(src) + new pile_type(T) + user.drop_from_inventory(src) + qdel(src) + else + to_chat(user, "You can't assemble a pillow pile out of mismatched stuff, it'd look hideous!") + +//Pillow Piles, they're piles of pillows! layer = BELOW_MOB_LAYER + +/obj/structure/bed/pillowpile + name = "pillow pile" + desc = "A massive pile of pillows!" + icon = 'icons/obj/pillows.dmi' + icon_state = "pillowpile_large_pink" + var/pillowpilefront = "/obj/structure/bed/pillowpilefront" + var/sourcepillow = "/obj/item/weapon/bedsheet/pillow" + +/obj/structure/bed/pillowpilefront + name = "pillow pile" + desc = "A massive pile of pillows!" + icon = 'icons/obj/pillows.dmi' + icon_state = "pillowpile_large_pink_overlay" + layer = ABOVE_MOB_LAYER + plane = MOB_PLANE + var/sourcepillow = "/obj/item/weapon/bedsheet/pillow" + +/obj/structure/bed/pillowpile/New() + ..() + var/turf/T = get_turf(src) + new pillowpilefront(T) + +/obj/structure/bed/pillowpilefront/update_icon() + return + +/obj/structure/bed/pillowpile/update_icon() + return + +/obj/structure/bed/pillowpile/attack_hand(mob/user) + to_chat(user, "Now disassembling the large pillow pile...") + if(do_after(user, 30)) + if(!src) return + to_chat(user, "You dissasembled the large pillow pile!") + new sourcepillow(src.loc) + qdel(src) + +/obj/structure/bed/pillowpilefront/attack_hand(mob/user) + to_chat(user, "Now disassembling the front of the pillow pile...") + if(do_after(user, 30)) + if(!src) return + to_chat(user, "You dissasembled the the front of the pillow pile!") + new sourcepillow(src.loc) + qdel(src) + +//Colours + +//teal + +/obj/item/weapon/bedsheet/pillow/teal + icon_state = "pillow_teal_square" + pile_type = "/obj/structure/bed/pillowpile/teal" + +/obj/structure/bed/pillowpile/teal + icon_state = "pillowpile_large_teal" + pillowpilefront = "/obj/structure/bed/pillowpilefront/teal" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/teal" + +/obj/structure/bed/pillowpilefront/teal + icon_state = "pillowpile_large_teal_overlay" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/teal" + +//yellow + +/obj/item/weapon/bedsheet/pillow/yellow + icon_state = "pillow_yellow_square" + pile_type = "/obj/structure/bed/pillowpile/yellow" + +/obj/structure/bed/pillowpile/yellow + icon_state = "pillowpile_large_yellow" + pillowpilefront = "/obj/structure/bed/pillowpilefront/yellow" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/yellow" + +/obj/structure/bed/pillowpilefront/yellow + icon_state = "pillowpile_large_yellow_overlay" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/yellow" + +//white + +/obj/item/weapon/bedsheet/pillow/white + icon_state = "pillow_white_square" + pile_type = "/obj/structure/bed/pillowpile/white" + +/obj/structure/bed/pillowpile/white + icon_state = "pillowpile_large_white" + pillowpilefront = "/obj/structure/bed/pillowpilefront/white" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/white" + +/obj/structure/bed/pillowpilefront/white + icon_state = "pillowpile_large_white_overlay" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/white" + +//black + +/obj/item/weapon/bedsheet/pillow/black + icon_state = "pillow_black_square" + pile_type = "/obj/structure/bed/pillowpile/black" + +/obj/structure/bed/pillowpile/black + icon_state = "pillowpile_large_black" + pillowpilefront = "/obj/structure/bed/pillowpilefront/black" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/black" + +/obj/structure/bed/pillowpilefront/black + icon_state = "pillowpile_large_black_overlay" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/black" + +//green + +/obj/item/weapon/bedsheet/pillow/green + icon_state = "pillow_green_square" + pile_type = "/obj/structure/bed/pillowpile/green" + +/obj/structure/bed/pillowpile/green + icon_state = "pillowpile_large_green" + pillowpilefront = "/obj/structure/bed/pillowpilefront/green" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/green" + +/obj/structure/bed/pillowpilefront/green + icon_state = "pillowpile_large_green_overlay" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/green" + +//red + +/obj/item/weapon/bedsheet/pillow/red + icon_state = "pillow_red_square" + pile_type = "/obj/structure/bed/pillowpile/red" + +/obj/structure/bed/pillowpile/red + icon_state = "pillowpile_large_red" + pillowpilefront = "/obj/structure/bed/pillowpilefront/red" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/red" + +/obj/structure/bed/pillowpilefront/red + icon_state = "pillowpile_large_red_overlay" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/red" + +//orange + +/obj/item/weapon/bedsheet/pillow/orange + icon_state = "pillow_orange_square" + pile_type = "/obj/structure/bed/pillowpile/orange" + +/obj/structure/bed/pillowpile/orange + icon_state = "pillowpile_large_orange" + pillowpilefront = "/obj/structure/bed/pillowpilefront/orange" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/orange" + +/obj/structure/bed/pillowpilefront/orange + icon_state = "pillowpile_large_orange_overlay" + sourcepillow = "/obj/item/weapon/bedsheet/pillow/orange" + +//crafting + +/datum/crafting_recipe/pillowpink + name = "pillow (pink)" + result = /obj/item/weapon/bedsheet/pillow + reqs = list( + list(/obj/item/stack/material/cloth = 6) + ) + time = 60 + category = CAT_MISC + +/datum/crafting_recipe/pillowteal + name = "pillow (teal)" + result = /obj/item/weapon/bedsheet/pillow/teal + reqs = list( + list(/obj/item/stack/material/cloth = 6) + ) + time = 60 + category = CAT_MISC + +/datum/crafting_recipe/pillowwhite + name = "pillow (white)" + result = /obj/item/weapon/bedsheet/pillow/white + reqs = list( + list(/obj/item/stack/material/cloth = 6) + ) + time = 60 + category = CAT_MISC + +/datum/crafting_recipe/pillowblack + name = "pillow (black)" + result = /obj/item/weapon/bedsheet/pillow/black + reqs = list( + list(/obj/item/stack/material/cloth = 6) + ) + time = 60 + category = CAT_MISC + +/datum/crafting_recipe/pillowgreen + name = "pillow (green)" + result = /obj/item/weapon/bedsheet/pillow/green + reqs = list( + list(/obj/item/stack/material/cloth = 6) + ) + time = 60 + category = CAT_MISC + +/datum/crafting_recipe/pillowyellow + name = "pillow (yellow)" + result = /obj/item/weapon/bedsheet/pillow/yellow + reqs = list( + list(/obj/item/stack/material/cloth = 6) + ) + time = 60 + category = CAT_MISC + +/datum/crafting_recipe/pillowred + name = "pillow (red)" + result = /obj/item/weapon/bedsheet/pillow/red + reqs = list( + list(/obj/item/stack/material/cloth = 6) + ) + time = 60 + category = CAT_MISC + +/datum/crafting_recipe/pilloworange + name = "pillow (orange)" + result = /obj/item/weapon/bedsheet/pillow/orange + reqs = list( + list(/obj/item/stack/material/cloth = 6) + ) + time = 60 + category = CAT_MISC + diff --git a/icons/obj/pillows.dmi b/icons/obj/pillows.dmi new file mode 100644 index 0000000000000000000000000000000000000000..276e8cb3c5fb34c00f13d27024a0d4146f3fc1e7 GIT binary patch literal 5881 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 Td^f_rr3I)dX(^T|Siku{naNK# literal 0 HcmV?d00001 diff --git a/vorestation.dme b/vorestation.dme index 9be61e5122..31d4f9942e 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1625,6 +1625,7 @@ #include "code\game\objects\structures\morgue.dm" #include "code\game\objects\structures\morgue_vr.dm" #include "code\game\objects\structures\new_signs.dm" +#include "code\game\objects\structures\pillows.dm" #include "code\game\objects\structures\plasticflaps.dm" #include "code\game\objects\structures\railing.dm" #include "code\game\objects\structures\reflectors_ch.dm"