diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 18b9d40346..48cf0b4a8b 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -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 diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 7552e0b79d..d6c9a94273 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -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 diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 0d38f5eca6..39fa7affa6 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -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 diff --git a/code/game/objects/structures/beds_chairs/pew.dm b/code/game/objects/structures/beds_chairs/pew.dm index 65440fb5d8..ec257a9898 100644 --- a/code/game/objects/structures/beds_chairs/pew.dm +++ b/code/game/objects/structures/beds_chairs/pew.dm @@ -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 diff --git a/code/game/objects/structures/beds_chairs/sofa.dm b/code/game/objects/structures/beds_chairs/sofa.dm new file mode 100644 index 0000000000..e138e4d314 --- /dev/null +++ b/code/game/objects/structures/beds_chairs/sofa.dm @@ -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" diff --git a/code/game/objects/structures/chess.dm b/code/game/objects/structures/chess.dm new file mode 100644 index 0000000000..8254405fee --- /dev/null +++ b/code/game/objects/structures/chess.dm @@ -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, "You take apart the chess piece.") + 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" \ No newline at end of file diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 359436dc2e..bd86255377 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -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)) diff --git a/icons/obj/chess.dmi b/icons/obj/chess.dmi new file mode 100644 index 0000000000..191eed8843 Binary files /dev/null and b/icons/obj/chess.dmi differ diff --git a/icons/obj/contraband.dmi b/icons/obj/contraband.dmi index 1e429754f0..29308832cf 100644 Binary files a/icons/obj/contraband.dmi and b/icons/obj/contraband.dmi differ diff --git a/icons/obj/sofa.dmi b/icons/obj/sofa.dmi index 13cc43fe4e..1d6510981b 100644 Binary files a/icons/obj/sofa.dmi and b/icons/obj/sofa.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 73beef27e5..13b3380025 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -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"