Merge pull request #11314 from KathrinBailey/Kat-Furniture

Kat Furniture! New sofas, chess pieces, nine new posters and shower curtain functionality!
This commit is contained in:
Ghom
2020-03-04 15:40:01 +01:00
committed by GitHub
11 changed files with 212 additions and 40 deletions
+45
View File
@@ -414,6 +414,16 @@
desc = "A poster advertising the newest drink \"Buzz Fuzz\" with its iconic slogan of ~A Hive of Flavour~."
icon_state = "poster45"
/obj/structure/sign/poster/contraband/scum
name = "Security are Scum"
desc = "Anti-security propaganda. Features a human NanoTrasen security officer being shot in the head, with the words 'Scum' and a short inciteful manifesto. Used to anger security."
icon_state = "poster46"
/obj/structure/sign/poster/contraband/syndicate_logo
name = "Syndicate"
desc = "A poster decipting a snake shaped into an ominous 'S'!"
icon_state = "poster47"
/obj/structure/sign/poster/official
poster_item_name = "motivational poster"
poster_item_desc = "An official Nanotrasen-issued poster to foster a compliant and obedient workforce. It comes with state-of-the-art adhesive backing, for easy pinning to any vertical surface."
@@ -610,4 +620,39 @@
desc = "A poster advertising an advanced dual magazine tubes shotgun, boasting about how easy it is to swap between the two tubes."
icon_state = "poster37_legit"
/obj/structure/sign/poster/official/fashion
name = "Fashion!"
desc = "An advertisement for 'Fashion!', a popular fashion magazine, depicting a woman with a black dress with a golden trim, she also has a red poppy in her hair."
icon_state = "poster38_legit"
/obj/structure/sign/poster/official/pda_ad600
name = "NT PDA600 Ad"
desc = "A poster advertising an old discounted Nanotrasen PDA. This is the old 600 model, it has a small screen and suffered from security and networking issues."
icon_state = "poster39_legit"
/obj/structure/sign/poster/official/pda_ad800
name = "NT PDA800 Ad"
desc = "An advertisement on an old Nanotrasen PDA model. The 800 fixed a lot of security flaws that the 600 had; it also had large touchscreen and hot-swappable cartridges."
icon_state = "poster40_legit"
/obj/structure/sign/poster/official/hydro_ad
name = "Hydroponics Tray"
desc = "An advertisement for hydroponics trays. Space Station 13's botanical department uses a slightly newer model, but the principles are the same. From left to right: Green means the plant is done, red means the plant is unhealthy, flashing red means pests or weeds, yellow means the plant needs nutriment and blue means the plant needs water."
icon_state = "poster41_legit"
/obj/structure/sign/poster/official/medical_green_cross
name = "Medical"
desc = "A green cross, one of the interplanetary symbol of health and aid. It has a bunch of common languages at the top with translations." // Didn't the American Heart Foundation trademark red crosses? I'm playing it safe with green, not that they'll notice spacegame13 poster.
icon_state = "poster42_legit"
/obj/structure/sign/poster/official/nt_storm_officer
name = "NT Storm Ad"
desc = "An advertisement for NanoTrasen Storm. A premium infantry helmet, This is the officer variant. I comes with a better radio, better HUD software and better targeting sensors."
icon_state = "poster43_legit"
/obj/structure/sign/poster/official/nt_storm
name = "NT Storm Ad"
desc = "An advertisement for NanoTrasen Storm. A premium infantry helmet, It contains a rebreather and full head coverage for use on harsh environments where the air isn't always safe to breathe."
icon_state = "poster44_legit"
#undef PLACE_SPEED
@@ -33,6 +33,12 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
new /datum/stack_recipe("sofa (corner)", /obj/structure/chair/sofa/corner, one_per_turf = TRUE, on_floor = TRUE), \
)), \
//END OF CIT CHANGES
new/datum/stack_recipe_list("fancy sofas", list( \
new /datum/stack_recipe("sofa (middle)", /obj/structure/chair/sofa/corp, one_per_turf = TRUE, on_floor = TRUE), \
new /datum/stack_recipe("sofa (left)", /obj/structure/chair/sofa/corp/left, one_per_turf = TRUE, on_floor = TRUE), \
new /datum/stack_recipe("sofa (right)", /obj/structure/chair/sofa/corp/right, one_per_turf = TRUE, on_floor = TRUE), \
new /datum/stack_recipe("sofa (corner)", /obj/structure/chair/sofa/corp/corner, one_per_turf = TRUE, on_floor = TRUE), \
)), \
null, \
new/datum/stack_recipe_list("office chairs", list( \
new/datum/stack_recipe("dark office chair", /obj/structure/chair/office/dark, 5, one_per_turf = TRUE, on_floor = TRUE), \
@@ -42,8 +48,10 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
new/datum/stack_recipe("beige comfy chair", /obj/structure/chair/comfy/beige, 2, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("black comfy chair", /obj/structure/chair/comfy/black, 2, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("brown comfy chair", /obj/structure/chair/comfy/brown, 2, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("green comfy chair", /obj/structure/chair/comfy/green, 2, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("lime comfy chair", /obj/structure/chair/comfy/lime, 2, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("teal comfy chair", /obj/structure/chair/comfy/teal, 2, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("purple comfy chair", /obj/structure/chair/comfy/purple, 2, one_per_turf = TRUE, on_floor = TRUE), \
)), \
null, \
new/datum/stack_recipe("rack parts", /obj/item/rack_parts), \
@@ -96,6 +104,21 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
new/datum/stack_recipe("extinguisher cabinet frame", /obj/item/wallframe/extinguisher_cabinet, 2), \
new/datum/stack_recipe("button frame", /obj/item/wallframe/button, 1), \
null, \
new /datum/stack_recipe_list("chess pieces", list( \
new /datum/stack_recipe("White Pawn", /obj/structure/chess/whitepawn, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new /datum/stack_recipe("White Rook", /obj/structure/chess/whiterook, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new /datum/stack_recipe("White Knight", /obj/structure/chess/whiteknight, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new /datum/stack_recipe("White Bishop", /obj/structure/chess/whitebishop, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new /datum/stack_recipe("White Queen", /obj/structure/chess/whitequeen, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new /datum/stack_recipe("White King", /obj/structure/chess/whiteking, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new /datum/stack_recipe("Black Pawn", /obj/structure/chess/blackpawn, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new /datum/stack_recipe("Black Rook", /obj/structure/chess/blackrook, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new /datum/stack_recipe("Black Knight", /obj/structure/chess/blackknight, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new /datum/stack_recipe("Black Bishop", /obj/structure/chess/blackbishop, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new /datum/stack_recipe("Black Queen", /obj/structure/chess/blackqueen, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new /datum/stack_recipe("Black King", /obj/structure/chess/blackking, 2, time = 10, one_per_turf = 1, on_floor = 1), \
)), \
null, \
new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("floodlight frame", /obj/structure/floodlight_frame, 5, one_per_turf = TRUE, on_floor = TRUE), \
))
@@ -347,6 +370,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \
new/datum/stack_recipe("black gloves", /obj/item/clothing/gloves/color/black, 3), \
null, \
new/datum/stack_recipe("blindfold", /obj/item/clothing/glasses/sunglasses/blindfold, 2), \
null, \
))
/obj/item/stack/sheet/cloth
@@ -738,6 +762,7 @@ GLOBAL_LIST_INIT(plastic_recipes, list(
new /datum/stack_recipe("opaque plastic flaps", /obj/structure/plasticflaps/opaque, 5, one_per_turf = TRUE, on_floor = TRUE, time = 40), \
new /datum/stack_recipe("water bottle", /obj/item/reagent_containers/glass/beaker/waterbottle/empty), \
new /datum/stack_recipe("large water bottle", /obj/item/reagent_containers/glass/beaker/waterbottle/large/empty,3), \
new /datum/stack_recipe("shower curtain", /obj/structure/curtain, 10, time = 10, one_per_turf = 1, on_floor = 1), \
new /datum/stack_recipe("wet floor sign", /obj/item/caution, 2)))
/obj/item/stack/sheet/plastic
@@ -226,9 +226,15 @@
/obj/structure/chair/comfy/black
color = rgb(167,164,153)
/obj/structure/chair/comfy/green
color = rgb(81,173,106)
/obj/structure/chair/comfy/lime
color = rgb(255,251,0)
/obj/structure/chair/comfy/purple
color = rgb(255,50,230)
/obj/structure/chair/comfy/plywood
name = "plywood chair"
desc = "A relaxing plywood chair."
@@ -576,40 +582,3 @@
. = ..()
if(has_gravity())
playsound(src, 'sound/machines/clockcult/integration_cog_install.ogg', 50, TRUE)
/obj/structure/chair/sofa
name = "old ratty sofa"
icon_state = "sofamiddle"
icon = 'icons/obj/sofa.dmi'
buildstackamount = 1
var/mutable_appearance/armrest
/obj/structure/chair/sofa/Initialize()
armrest = mutable_appearance(icon, "[icon_state]_armrest", ABOVE_MOB_LAYER)
return ..()
/obj/structure/chair/sofa/post_buckle_mob(mob/living/M)
. = ..()
update_armrest()
/obj/structure/chair/sofa/proc/update_armrest()
if(has_buckled_mobs())
add_overlay(armrest)
else
cut_overlay(armrest)
/obj/structure/chair/sofa/post_unbuckle_mob()
. = ..()
update_armrest()
/obj/structure/chair/sofa/left
icon_state = "sofaend_left"
/obj/structure/chair/sofa/right
icon_state = "sofaend_right"
/obj/structure/chair/sofa/corner
icon_state = "sofacorner"
/obj/structure/chair/sofa/corner/handle_layer() //only the armrest/back of this chair should cover the mob.
return
@@ -10,7 +10,7 @@
item_chair = null
/obj/structure/chair/pew/left
name = "left wooden pew end"
name = "wooden pew end"
icon_state = "pewend_left"
var/mutable_appearance/leftpewarmrest
@@ -41,7 +41,7 @@
update_leftpewarmrest()
/obj/structure/chair/pew/right
name = "left wooden pew end"
name = "wooden pew end"
icon_state = "pewend_right"
var/mutable_appearance/rightpewarmrest
@@ -0,0 +1,52 @@
/obj/structure/chair/sofa
name = "old ratty sofa"
icon_state = "sofamiddle"
icon = 'icons/obj/sofa.dmi'
buildstackamount = 1
var/mutable_appearance/armrest
/obj/structure/chair/sofa/Initialize()
armrest = mutable_appearance(icon, "[icon_state]_armrest", ABOVE_MOB_LAYER)
return ..()
/obj/structure/chair/sofa/post_buckle_mob(mob/living/M)
. = ..()
update_armrest()
/obj/structure/chair/sofa/proc/update_armrest()
if(has_buckled_mobs())
add_overlay(armrest)
else
cut_overlay(armrest)
/obj/structure/chair/sofa/post_unbuckle_mob()
. = ..()
update_armrest()
/obj/structure/chair/sofa/left
icon_state = "sofaend_left"
/obj/structure/chair/sofa/right
icon_state = "sofaend_right"
/obj/structure/chair/sofa/corner
icon_state = "sofacorner"
/obj/structure/chair/sofa/corner/handle_layer() //only the armrest/back of this chair should cover the mob.
return
// Credit for the sprites goes to CEV Eris. The sprites were taken from Hyper Station and modified to fit with armrests which were also added.
/obj/structure/chair/sofa/corp
name = "sofa"
desc = "Soft, cushy and cozy. These sofas reek of bland faceless corporatism, but they aren't old and ratty at least."
icon_state = "corp_sofamiddle"
/obj/structure/chair/sofa/corp/left
icon_state = "corp_sofaend_left"
/obj/structure/chair/sofa/corp/right
icon_state = "corp_sofaend_right"
/obj/structure/chair/sofa/corp/corner
icon_state = "corp_sofacorner"
+76
View File
@@ -0,0 +1,76 @@
/obj/structure/chess
anchored = FALSE
density = FALSE
icon = 'icons/obj/chess.dmi'
icon_state = "singularity_s1"
name = "Singularity"
desc = "You've just been pranked by the Syndicate Chess Grandmaster! Report this to CentCom."
max_integrity = 100
/obj/structure/chess/wrench_act(mob/user, obj/item/tool)
to_chat(user, "<span class='notice'>You take apart the chess piece.</span>")
var/obj/item/stack/sheet/metal/M = new (drop_location(), 2)
M.add_fingerprint(user)
tool.play_tool_sound(src)
qdel(src)
return TRUE
/obj/structure/chess/whitepawn
name = "\improper White Pawn"
desc = "A white pawn chess piece. Get accused of cheating when executing a sick En Passant."
icon_state = "white_pawn"
/obj/structure/chess/whiterook
name = "\improper White Rook"
desc = "A white rook chess piece. Also known as a castle. Can move any number of tiles in a straight line. It has a special move called castling."
icon_state = "white_rook"
/obj/structure/chess/whiteknight
name = "\improper White Knight"
desc = "A white knight chess piece. Hah. It can hop over other pieces, moving in L shapes."
icon_state = "white_knight"
/obj/structure/chess/whitebishop
name = "\improper White Bishop"
desc = "A white bishop chess piece. It can move any number of tiles in a diagonal line."
icon_state = "white_bishop"
/obj/structure/chess/whitequeen
name = "\improper White Queen"
desc = "A white queen chess piece. It can move any number of tiles in diagonal and straight lines."
icon_state = "white_queen"
/obj/structure/chess/whiteking
name = "\improper White King"
desc = "A white king chess piece. It can move any tile in one direction."
icon_state = "white_king"
/obj/structure/chess/blackpawn
name = "\improper Black Pawn"
desc = "A black pawn chess piece. Get accused of cheating when executing a sick En Passant."
icon_state = "black_pawn"
/obj/structure/chess/blackrook
name = "\improper Black Rook"
desc = "A black rook chess piece. Also known as a castle. Can move any number of tiles in a straight line. It has a special move called castling."
icon_state = "black_rook"
/obj/structure/chess/blackknight
name = "\improper Black Knight"
desc = "A black knight chess piece. It can hop over other pieces, moving in L shapes."
icon_state = "black_knight"
/obj/structure/chess/blackbishop
name = "\improper Black Bishop"
desc = "A black bishop chess piece. It can move any number of tiles in a diagonal line."
icon_state = "black_bishop"
/obj/structure/chess/blackqueen
name = "\improper Black Queen"
desc = "A black queen chess piece. It can move any number of tiles in diagonal and straight lines."
icon_state = "black_queen"
/obj/structure/chess/blackking
name = "\improper Black King"
desc = "A black king chess piece. It can move one tile in any direction."
icon_state = "black_king"
+4 -1
View File
@@ -616,9 +616,10 @@
icon = 'icons/obj/watercloset.dmi'
icon_state = "open"
color = "#ACD1E9" //Default color, didn't bother hardcoding other colors, mappers can and should easily change it.
alpha = 200 //Mappers can also just set this to 255 if they want curtains that can't be seen through
alpha = 200 //Mappers can also just set this to 255 if they want curtains that can't be seen through <- No longer necessary unless you don't want to see through it no matter what.
layer = SIGN_LAYER
anchored = TRUE
max_integrity = 25 //This makes cloth shower curtains as durable as a directional glass window. 300 integrity buildable shower curtains as a cover mechanic is a meta I don't want to see.
opacity = 0
density = FALSE
var/open = TRUE
@@ -633,12 +634,14 @@
layer = WALL_OBJ_LAYER
density = TRUE
open = FALSE
opacity = TRUE
else
icon_state = "open"
layer = SIGN_LAYER
density = FALSE
open = TRUE
opacity = FALSE
/obj/structure/curtain/attackby(obj/item/W, mob/user)
if (istype(W, /obj/item/toy/crayon))
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 15 KiB

+2
View File
@@ -1063,6 +1063,7 @@
#include "code\game\objects\structures\artstuff.dm"
#include "code\game\objects\structures\barsigns.dm"
#include "code\game\objects\structures\bedsheet_bin.dm"
#include "code\game\objects\structures\chess.dm"
#include "code\game\objects\structures\destructible_structures.dm"
#include "code\game\objects\structures\displaycase.dm"
#include "code\game\objects\structures\divine.dm"
@@ -1121,6 +1122,7 @@
#include "code\game\objects\structures\beds_chairs\bed.dm"
#include "code\game\objects\structures\beds_chairs\chair.dm"
#include "code\game\objects\structures\beds_chairs\pew.dm"
#include "code\game\objects\structures\beds_chairs\sofa.dm"
#include "code\game\objects\structures\crates_lockers\closets.dm"
#include "code\game\objects\structures\crates_lockers\crates.dm"
#include "code\game\objects\structures\crates_lockers\closets\bodybag.dm"