From 75b038511cac40fd422d64cca70fe98a4aea2e82 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 2 Mar 2018 20:07:39 -0600 Subject: [PATCH] [MIRROR] Alternative PR to brass apples: Adds bronze sheets (#5758) * Alternative PR to brass apples: Adds bronze sheets (#35874) * Adds bronze sheets * nope! * Alternative PR to brass apples: Adds bronze sheets --- .../items/stacks/sheets/sheet_types.dm | 48 +++++++++++++++++++ .../objects/structures/beds_chairs/chair.dm | 14 ++++++ code/game/objects/structures/girders.dm | 44 +++++++++++++++++ code/game/objects/structures/table_frames.dm | 8 ++++ code/game/objects/structures/tables_racks.dm | 15 +++++- code/game/turfs/simulated/floor/misc_floor.dm | 8 ++++ code/game/turfs/simulated/wall/misc_walls.dm | 9 ++++ code/modules/clothing/head/misc_special.dm | 10 ++++ code/modules/clothing/shoes/miscellaneous.dm | 10 ++++ code/modules/clothing/suits/miscellaneous.dm | 7 +++ .../chemistry/reagents/other_reagents.dm | 7 +++ 11 files changed, 179 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index ad752ba14a..6109f6b0d0 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -9,6 +9,7 @@ * Paper Frames * Runed Metal (cult) * Brass (clockwork cult) + * Bronze (bake brass) */ /* @@ -421,6 +422,53 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ /obj/item/stack/tile/brass/fifty amount = 50 +/* + * Bronze + */ + +GLOBAL_LIST_INIT(bronze_recipes, list ( \ + new/datum/stack_recipe("wall gear", /obj/structure/girder/bronze, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \ + null, + new/datum/stack_recipe("bronze hat", /obj/item/clothing/head/bronze), \ + new/datum/stack_recipe("bronze suit", /obj/item/clothing/suit/bronze), \ + new/datum/stack_recipe("bronze boots", /obj/item/clothing/shoes/bronze), \ + null, + new/datum/stack_recipe("bronze chair", /obj/structure/chair/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ +)) + +/obj/item/stack/tile/bronze + name = "brass" + desc = "On closer inspection, what appears to be wholly-unsuitable-for-building brass is actually more structurally stable bronze." + singular_name = "bronze sheet" + icon_state = "sheet-brass" + item_state = "sheet-brass" + icon = 'icons/obj/stack_objects.dmi' + resistance_flags = FIRE_PROOF | ACID_PROOF + throwforce = 10 + max_amount = 50 + throw_speed = 1 + throw_range = 3 + turf_type = /turf/open/floor/bronze + novariants = FALSE + grind_results = list("iron" = 5, "copper" = 3) //we have no "tin" reagent so this is the closest thing + +/obj/item/stack/tile/bronze/attack_self(mob/living/user) + if(is_servant_of_ratvar(user)) //still lets them build with it, just gives a message + to_chat(user, "Wha... what is this cheap imitation crap? This isn't brass at all!") + ..() + +/obj/item/stack/tile/bronze/Initialize(mapload, new_amount, merge = TRUE) + recipes = GLOB.bronze_recipes + . = ..() + pixel_x = 0 + pixel_y = 0 + +/obj/item/stack/tile/bronze/thirty + amount = 30 + +/* + * Lesser and Greater gems - unused + */ /obj/item/stack/sheet/lessergem name = "lesser gems" desc = "Rare kind of gems which are only gained by blood sacrifice to minor deities. They are needed in crafting powerful objects." diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 120fe15a00..54b10a6203 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -391,3 +391,17 @@ user.visible_message("[user] stops [src]'s uncontrollable spinning.", \ "You grab [src] and stop its wild spinning.") STOP_PROCESSING(SSfastprocess, src) + +/obj/structure/chair/bronze + name = "brass chair" + desc = "A spinny chair made of bronze. It has little cogs for wheels!" + anchored = FALSE + icon_state = "brass_chair" + buildstacktype = /obj/item/stack/tile/bronze + buildstackamount = 1 + item_chair = null + +/obj/structure/chair/bronze/Moved() + . = ..() + if(has_gravity()) + playsound(src, 'sound/machines/clockcult/integration_cog_install.ogg', 50, TRUE) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 05935a6d48..d3844a8c98 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -408,3 +408,47 @@ qdel(src) return TRUE return FALSE + +/obj/structure/girder/bronze + name = "wall gear" + desc = "A girder made out of sturdy bronze, made to resemble a gear." + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "wall_gear" + can_displace = FALSE + +/obj/structure/girder/bronze/attackby(obj/item/W, mob/living/user, params) + add_fingerprint(user) + if(istype(W, /obj/item/weldingtool) || istype(W, /obj/item/gun/energy/plasmacutter)) + if(!W.tool_start_check(user, amount = 0)) + return + to_chat(user, "You start slicing apart [src]...") + if(W.use_tool(src, user, 40, volume=50)) + to_chat(user, "You slice apart [src].") + var/obj/item/stack/tile/bronze/B = new(drop_location(), 2) + transfer_fingerprints_to(B) + qdel(src) + + else if(istype(W, /obj/item/pickaxe/drill/jackhammer)) + to_chat(user, "Your jackhammer smashes through the girder!") + var/obj/item/stack/tile/bronze/B = new(drop_location(), 2) + transfer_fingerprints_to(B) + W.play_tool_sound(src) + qdel(src) + + else if(istype(W, /obj/item/stack/tile/bronze)) + var/obj/item/stack/tile/bronze/B = W + if(B.get_amount() < 2) + to_chat(user, "You need at least two bronze sheets to build a bronze wall!") + return 0 + user.visible_message("[user] begins plating [src] with brozne...", "You begin constructing a bronze wall...") + if(do_after(user, 50, target = src)) + if(B.get_amount() < 2) + return + user.visible_message("[user] plates [src] with bronze!", "You construct a bronze wall.") + B.use(2) + var/turf/T = get_turf(src) + T.PlaceOnTop(/turf/closed/wall/mineral/bronze) + qdel(src) + + else + return ..() diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm index 2b503f4200..1aaae691f8 100644 --- a/code/game/objects/structures/table_frames.dm +++ b/code/game/objects/structures/table_frames.dm @@ -76,6 +76,14 @@ to_chat(user, "You start adding [C] to [src]...") if(do_after(user, 20, target = src) && C.use(1)) make_new_table(/obj/structure/table/wood/fancy) + else if(istype(I, /obj/item/stack/tile/bronze)) + var/obj/item/stack/tile/bronze/B = I + if(B.get_amount() < 1) + to_chat(user, "You need one bronze sheet to do this!") + return + to_chat(user, "You start adding [B] to [src]...") + if(do_after(user, 20, target = src) && B.use(1)) + make_new_table(/obj/structure/table/bronze) else return ..() diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index e2d270aa56..230c1a3295 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -325,7 +325,7 @@ buildstack = /obj/item/stack/tile/brass framestackamount = 1 buildstackamount = 1 - canSmoothWith = list(/obj/structure/table/reinforced/brass) + canSmoothWith = list(/obj/structure/table/reinforced/brass, /obj/structure/table/bronze) /obj/structure/table/reinforced/brass/New() change_construction_value(2) @@ -350,6 +350,19 @@ /obj/structure/table/reinforced/brass/ratvar_act() obj_integrity = max_integrity +/obj/structure/table/bronze + name = "brass table" + desc = "A solid table made out of bronze." + icon = 'icons/obj/smooth_structures/brass_table.dmi' + icon_state = "brass_table" + resistance_flags = FIRE_PROOF | ACID_PROOF + buildstack = /obj/item/stack/tile/bronze + canSmoothWith = list(/obj/structure/table/reinforced/brass, /obj/structure/table/bronze) + +/obj/structure/table/bronze/tablepush(mob/living/user, mob/living/pushed_mob) + ..() + playsound(src, 'sound/magic/clockwork/fellowship_armory.ogg', 50, TRUE) + /* * Surgery Tables */ diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index 73e99d7b41..d3f8d00be7 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -240,3 +240,11 @@ icon_state = "sepia" desc = "Time seems to flow very slowly around these tiles." floor_tile = /obj/item/stack/tile/sepia + + +/turf/open/floor/bronze + name = "clockwork floor" + desc = "Some heavy bronze tiles." + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "clockwork_floor" + floor_tile = /obj/item/stack/tile/bronze diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm index 73ec2515f4..7012c5f6d8 100644 --- a/code/game/turfs/simulated/wall/misc_walls.dm +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -170,3 +170,12 @@ desc = "A huge chunk of rusted reinforced metal." icon = 'icons/turf/walls/rusty_reinforced_wall.dmi' hardness = 15 + +/turf/closed/wall/mineral/bronze + name = "clockwork wall" + desc = "A huge chunk of bronze, decorated like gears and cogs." + icon = 'icons/turf/walls/clockwork_wall.dmi' + icon_state = "clockwork_wall" + sheet_type = /obj/item/stack/tile/bronze + sheet_amount = 2 + girder_type = /obj/structure/girder/bronze diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index d220018ccc..5c1067c1d7 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -6,6 +6,8 @@ * Pumpkin head * Kitty ears * Cardborg disguise + * Wig + * Bronze hat */ /* @@ -219,6 +221,14 @@ hair_color = "#[random_short_color()]" . = ..() +/obj/item/clothing/head/bronze + name = "bronze hat" + desc = "A crude helmet made out of bronze plates. It offers very little in the way of protection." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "clockwork_helmet_old" + flags_inv = HIDEEARS|HIDEHAIR + armor = list("melee" = 5, "bullet" = 0, "laser" = -5, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20) + /obj/item/clothing/head/foilhat name = "tinfoil hat" desc = "Thought control rays, psychotronic scanning. Don't mind that, I'm protected cause I made this hat." diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index f4c37b281d..0d8c00cad7 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -229,3 +229,13 @@ desc = "These boots were made for dancing." icon_state = "bsing" equip_delay_other = 50 + +/obj/item/clothing/shoes/bronze + name = "bronze boots" + desc = "A giant, clunky pair of shoes crudely made out of bronze. Why would anyone wear these?" + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "clockwork_treads" + +/obj/item/clothing/shoes/bronze/Initialize() + . = ..() + AddComponent(/datum/component/squeak, list('sound/machines/clockcult/integration_cog_install.ogg' = 1, 'sound/magic/clockwork/fellowship_armory.ogg' = 1), 50) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 154f1bffdd..90ae827957 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -587,3 +587,10 @@ icon_state = "bedsheet" user_vars_to_edit = list("name" = "Spooky Ghost", "real_name" = "Spooky Ghost" , "incorporeal_move" = INCORPOREAL_MOVE_BASIC, "appearance_flags" = KEEP_TOGETHER|TILE_BOUND, "alpha" = 150) alternate_worn_layer = ABOVE_BODY_FRONT_LAYER //so the bedsheet goes over everything but fire + +/obj/item/clothing/suit/bronze + name = "bronze suit" + desc = "A big and clanky suit made of bronze that offers no protection and looks very unfashionable. Nice." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "clockwork_cuirass_old" + armor = list("melee" = 5, "bullet" = 0, "laser" = -5, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index f486dd1a95..75b4552a58 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -679,6 +679,13 @@ color = "#6E3B08" // rgb: 110, 59, 8 taste_description = "metal" +/datum/reagent/copper/reaction_obj(obj/O, reac_volume) + if(istype(O, /obj/item/stack/sheet/metal)) + var/obj/item/stack/sheet/metal/M = O + reac_volume = min(reac_volume, M.amount) + new/obj/item/stack/tile/bronze(get_turf(M), reac_volume) + M.use(reac_volume) + /datum/reagent/nitrogen name = "Nitrogen" id = "nitrogen"