diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index cfc02b98bd1..c61ff1403cc 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -718,3 +718,128 @@ name = "runed stone chair" desc = "A cold stone throne engraved with indecipherable symbols. Studying them causes your head to pound." buildstacktype = null + +/obj/structure/chair/comfy/beach + name = "beach chair" + desc = "Perfect for relaxing in the sun by the waves." + icon_state = "beach_chair" + buckle_lying = TRUE + buildstacktype = null + item_chair = /obj/item/chair/beach + var/stripes_color = null + +/obj/structure/chair/comfy/beach/Initialize(mapload) + . = ..() + update_icon(UPDATE_OVERLAYS) + +/obj/structure/chair/comfy/beach/update_overlays() + . = ..() + if(stripes_color) + var/image/icon_overlay = image(icon, "beach_chair_stripes") + icon_overlay.color = stripes_color + . += icon_overlay + +/obj/structure/chair/comfy/beach/blue + name = "blue beach chair" + item_chair = /obj/item/chair/beach/blue + stripes_color = COLOR_BABY_BLUE + +/obj/structure/chair/comfy/beach/red + name = "red beach chair" + item_chair = /obj/item/chair/beach/red + stripes_color = COLOR_SOFT_RED + +/obj/structure/chair/comfy/beach/green + name = "green beach chair" + item_chair = /obj/item/chair/beach/green + stripes_color = COLOR_PALE_GREEN_GRAY + +/obj/structure/chair/comfy/beach/fuchsia + name = "fuchsia beach chair" + item_chair = /obj/item/chair/beach/fuchsia + stripes_color = COLOR_PALE_PURPLE_GRAY + +/obj/structure/chair/comfy/beach/yellow + name = "yellow beach chair" + item_chair = /obj/item/chair/beach/yellow + stripes_color = COLOR_AMBER + +/obj/structure/chair/comfy/beach/post_buckle_mob(mob/living/sitter) + . = ..() + if(dir == EAST) + sitter.set_lying_angle(270) + else if(dir == WEST) + sitter.set_lying_angle(90) + else + sitter.set_lying_angle(0) + sitter.pixel_y = 0 + +/obj/structure/chair/comfy/beach/rotate() + . = ..() + for(var/mob/living/sitter in buckled_mobs) + if(dir == EAST) + sitter.set_lying_angle(270) + else if(dir == WEST) + sitter.set_lying_angle(90) + else + sitter.set_lying_angle(0) + sitter.pixel_y = 0 + +/obj/structure/chair/comfy/beach/deconstruct() + // If we don't have the NOCONSTRUCT flag + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/wood(loc, 2) + new /obj/item/stack/sheet/cloth(loc, 1) + ..() + +/obj/item/chair/beach + name = "folded beach chair" + desc = "A beach chair folded up for easy carrying." + icon_state = "beach_chair_folded" + inhand_icon_state = "beach_chair" + w_class = WEIGHT_CLASS_BULKY + materials = list(MAT_WOOD = 2000, MAT_CLOTH = 1000) + origin_type = /obj/structure/chair/comfy/beach + force = 4 + throwforce = 8 + hitsound = 'sound/items/beach_chair_hit_1.ogg' + break_chance = 10 + force_unwielded = 4 + force_wielded = 6 + var/stripes_color = null + +/obj/item/chair/beach/Initialize(mapload) + . = ..() + update_icon(UPDATE_OVERLAYS) + +/obj/item/chair/beach/update_overlays() + . = ..() + if(stripes_color) + var/image/icon_overlay = image(icon, "beach_chair_folded_stripes") + icon_overlay.color = stripes_color + . += icon_overlay + +/obj/item/chair/beach/blue + name = "folded blue beach chair" + origin_type = /obj/structure/chair/comfy/beach/blue + stripes_color = COLOR_BABY_BLUE + +/obj/item/chair/beach/red + name = "folded red beach chair" + origin_type = /obj/structure/chair/comfy/beach/red + stripes_color = COLOR_SOFT_RED + +/obj/item/chair/beach/green + name = "folded green beach chair" + origin_type = /obj/structure/chair/comfy/beach/green + stripes_color = COLOR_PALE_GREEN_GRAY + +/obj/item/chair/beach/fuchsia + name = "folded fuchsia beach chair" + origin_type = /obj/structure/chair/comfy/beach/fuchsia + stripes_color = COLOR_PALE_PURPLE_GRAY + +/obj/item/chair/beach/yellow + name = "folded yellow beach chair" + origin_type = /obj/structure/chair/comfy/beach/yellow + stripes_color = COLOR_AMBER diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 77db8417edb..57a000a1748 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -1404,3 +1404,10 @@ /datum/reagent/medicine/spaceacillin = 5, //Burns get infected /datum/reagent/medicine/sterilizine = 10) category = CAT_MISC + +/datum/crafting_recipe/beach_chair + name = "Beach chair" + result = list(/obj/item/chair/beach) + reqs = list(/obj/item/stack/sheet/wood = 2, + /obj/item/stack/sheet/cloth = 1) + category = CAT_MISC diff --git a/icons/mob/inhands/chairs_lefthand.dmi b/icons/mob/inhands/chairs_lefthand.dmi index 048e71b63ca..21e915a9d74 100644 Binary files a/icons/mob/inhands/chairs_lefthand.dmi and b/icons/mob/inhands/chairs_lefthand.dmi differ diff --git a/icons/mob/inhands/chairs_righthand.dmi b/icons/mob/inhands/chairs_righthand.dmi index 01efedb00b7..efeb89301d4 100644 Binary files a/icons/mob/inhands/chairs_righthand.dmi and b/icons/mob/inhands/chairs_righthand.dmi differ diff --git a/icons/obj/chairs.dmi b/icons/obj/chairs.dmi index 4b3c62feb79..37ba4aa172b 100644 Binary files a/icons/obj/chairs.dmi and b/icons/obj/chairs.dmi differ diff --git a/sound/Attributions.txt b/sound/Attributions.txt index a735a6337c2..a72fab16953 100644 --- a/sound/Attributions.txt +++ b/sound/Attributions.txt @@ -27,3 +27,5 @@ voice/scream_kidan.ogg is a modification of voice/scream_moth.ogg introduced fro effects/mob_effects/flap.ogg and effects/mob_effects/angryflap.ogg were taken from https://freesound.org/people/Elfman-Rox/sounds/238555/ under CC0 effects/mob_effects/flutter.ogg was taken from https://freesound.org/people/Godowan/sounds/240476/ under CC0 + +items/beach_chair_hit_1.ogg was compressed to ogg from "screen door open 1.wav" in https://filmcow.itch.io/filmcow-sfx 's "FilmCow Recorded SFX.zip" under their FilmCow Royalty Free SFX Library License Agreement diff --git a/sound/items/beach_chair_hit_1.ogg b/sound/items/beach_chair_hit_1.ogg new file mode 100644 index 00000000000..eddd8edc98c Binary files /dev/null and b/sound/items/beach_chair_hit_1.ogg differ