Pillows for the pillow throne

Added pillows, which can be placed my clicking themselves or combined with identical pillows to build a pillow pile. Pillow piles are in two parts, a front and back, which can be disassembled by clicking on each with an empty hand. You can buckle to either part of the pillow pile.

The sprites were ported from skyrat, with some additional colours added. Currently only the square pillows and large piles are being used. There isn't currently a way to acquire these normally, only admin spawn at the moment, but I intend to add one soon.
This commit is contained in:
SatinIsle
2024-03-04 20:19:40 +00:00
parent c8a61f63dd
commit 6b326160ac
2 changed files with 185 additions and 0 deletions
+185
View File
@@ -0,0 +1,185 @@
//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, "<span class='notice'>You assemble a pillow pile!</span>")
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, "<span class='notice'>You can't assemble a pillow pile out of mismatched stuff, it'd look hideous!</span>")
//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, "<span class='notice'>Now disassembling the large pillow pile...</span>")
if(do_after(user, 30))
if(!src) return
to_chat(user, "<span class='notice'>You dissasembled the large pillow pile!</span>")
new sourcepillow(src.loc)
qdel(src)
/obj/structure/bed/pillowpilefront/attack_hand(mob/user)
to_chat(user, "<span class='notice'>Now disassembling the front of the pillow pile...</span>")
if(do_after(user, 30))
if(!src) return
to_chat(user, "<span class='notice'>You dissasembled the the front of the pillow pile!</span>")
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"