diff --git a/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm index 88de2dcf093..585198789f5 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm @@ -31,6 +31,10 @@ return list("operation_time" = 50, "new_obj_type" = /turf/open/floor/clockwork, "alloy_cost" = -REPLICANT_WALL_MINUS_FLOOR, "spawn_dir" = SOUTH) /turf/open/floor/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(floor_tile == /obj/item/stack/tile/plasteel) + PoolOrNew(floor_tile, src) + make_plating() + playsound(src, 'sound/items/Crowbar.ogg', 10, 1) //clink return list("operation_time" = 30, "new_obj_type" = /turf/open/floor/clockwork, "alloy_cost" = REPLICANT_FLOOR, "spawn_dir" = SOUTH) /turf/open/floor/plating/asteroid/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) @@ -67,6 +71,34 @@ return FALSE //Metal conversion +/obj/item/stack/tile/plasteel/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(source) + return FALSE + var/amount_temp = get_amount() + if(proselytizer.metal_to_alloy) + var/no_delete = FALSE + if(amount_temp < 2) + user << "You need at least 2 floor tiles to convert into alloy." + return TRUE + if(IsOdd(amount_temp)) + amount_temp-- + no_delete = TRUE + use(amount_temp) + amount_temp *= 0.5 //halve the alloy output; each tile is 0.5 alloy so this is 2 tiles to 1 alloy + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -amount_temp, "spawn_dir" = SOUTH, "no_target_deletion" = no_delete) + if(amount_temp >= 20) + var/sheets_to_make = round(amount_temp * 0.05) //and 20 to 1 brass + var/used = sheets_to_make * 20 + user.visible_message("[user]'s [proselytizer.name] rips into [src], converting it to brass!", \ + "You convert [get_amount() - used > 0 ? "part of ":""][src] into brass...") + playsound(src, 'sound/machines/click.ogg', 50, 1) + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + new /obj/item/stack/tile/brass(get_turf(src), sheets_to_make) + use(used) + else + user << "You need at least 20 floor tiles to convert into brass." + return TRUE + /obj/item/stack/rods/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) if(source) return FALSE @@ -79,10 +111,10 @@ "You convert [get_amount() - used > 0 ? "part of ":""][src] into brass...") playsound(src, 'sound/machines/click.ogg', 50, 1) playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) - new /obj/item/stack/sheet/brass(get_turf(src), sheets_to_make) + new /obj/item/stack/tile/brass(get_turf(src), sheets_to_make) use(used) else - user << "You need at least 10 rods to convert into brass." + user << "You need at least 10 rods to convert into brass." return TRUE /obj/item/stack/sheet/metal/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) @@ -97,10 +129,10 @@ "You convert [get_amount() - used > 0 ? "part of ":""][src] into brass...") playsound(src, 'sound/machines/click.ogg', 50, 1) playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) - new /obj/item/stack/sheet/brass(get_turf(src), sheets_to_make) + new /obj/item/stack/tile/brass(get_turf(src), sheets_to_make) use(used) else - user << "You need at least 5 sheets of metal to convert into brass." + user << "You need at least 5 sheets of metal to convert into brass." return TRUE /obj/item/stack/sheet/plasteel/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) @@ -115,14 +147,14 @@ "You convert [get_amount() - used > 0 ? "part of ":""][src] into brass...") playsound(src, 'sound/machines/click.ogg', 50, 1) playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) - new /obj/item/stack/sheet/brass(get_turf(src), sheets_to_make) + new /obj/item/stack/tile/brass(get_turf(src), sheets_to_make) use(used) else - user << "You need at least 2 sheets of plasteel to convert into brass." + user << "You need at least 2 sheets of plasteel to convert into brass." return TRUE //Brass directly to alloy; scarab only -/obj/item/stack/sheet/brass/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) +/obj/item/stack/tile/brass/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) if(source) return FALSE if(!proselytizer.metal_to_alloy) diff --git a/code/game/gamemodes/clock_cult/clock_items/clock_components.dm b/code/game/gamemodes/clock_cult/clock_items/clock_components.dm index 6ec41067a3d..a57730e96ae 100644 --- a/code/game/gamemodes/clock_cult/clock_items/clock_components.dm +++ b/code/game/gamemodes/clock_cult/clock_items/clock_components.dm @@ -96,7 +96,7 @@ /obj/item/clockwork/component/replicant_alloy/attack_self(mob/user) if(is_servant_of_ratvar(user)) - var/obj/item/stack/sheet/brass/B = new /obj/item/stack/sheet/brass(get_turf(src), 10) + var/obj/item/stack/tile/brass/B = new /obj/item/stack/tile/brass(get_turf(src), 10) user.unEquip(src, TRUE) user.put_in_hands(B) user << "You shape the alloy into some brass sheets." diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm index cb0b3386705..2bdc413645a 100644 --- a/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm @@ -155,7 +155,6 @@ if(refueling) user << "You are currently refueling [src]!" return FALSE - var/target_type = target.type var/list/proselytize_values = target.proselytize_vals(user, src) //relevant values for proselytizing stuff, given as an associated list if(!islist(proselytize_values)) if(proselytize_values != TRUE) //if we get true, fail, but don't send a message for whatever reason @@ -176,19 +175,26 @@ user << "You have too much liquified alloy stored to proselytize [target]!" return FALSE + var/target_type = target.type + if(can_use_alloy(RATVAR_ALLOY_CHECK)) //Ratvar makes it faster proselytize_values["operation_time"] *= 0.5 proselytize_values["operation_time"] *= speed_multiplier - user.visible_message("[user]'s [name] begins tearing apart [target]!", "You begin proselytizing [target]...") + playsound(target, 'sound/machines/click.ogg', 50, 1) - if(proselytize_values["operation_time"] && !do_after(user, proselytize_values["operation_time"], target = target)) - return FALSE + if(proselytize_values["operation_time"]) + user.visible_message("[user]'s [name] begins tearing apart [target]!", "You begin proselytizing [target]...") + if(!do_after(user, proselytize_values["operation_time"], target = target)) + return FALSE + user.visible_message("[user]'s [name] disgorges a chunk of metal and shapes it over what's left of [target]!", \ + "You proselytize [target].") + else + user.visible_message("[user]'s [name] tears apart [target], covering it in metal!", "You proselytize [target].") if(repairing || refueling || !can_use_alloy(proselytize_values["alloy_cost"]) || !target || target.type != target_type) //Check again to prevent bypassing via spamclick return FALSE - user.visible_message("[user]'s [name] disgorges a chunk of metal and shapes it over what's left of [target]!", \ - "You proselytize [target].") + playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) var/new_thing_type = proselytize_values["new_obj_type"] if(isturf(target)) @@ -200,6 +206,7 @@ else var/atom/A = new new_thing_type(get_turf(target)) A.setDir(proselytize_values["spawn_dir"]) - qdel(target) + if(!proselytize_values["no_target_deletion"]) + qdel(target) modify_stored_alloy(-proselytize_values["alloy_cost"]) return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_structures/wall_gear.dm b/code/game/gamemodes/clock_cult/clock_structures/wall_gear.dm index 2e02e4f58af..f15d9c609d4 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/wall_gear.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/wall_gear.dm @@ -35,8 +35,8 @@ user << "You disassemble [src]." deconstruct(TRUE) return 1 - else if(istype(I, /obj/item/stack/sheet/brass)) - var/obj/item/stack/sheet/brass/W = I + else if(istype(I, /obj/item/stack/tile/brass)) + var/obj/item/stack/tile/brass/W = I if(W.get_amount() < 1) user << "You need one brass sheet to do this!" return @@ -69,5 +69,5 @@ /obj/structure/destructible/clockwork/wall_gear/deconstruct(disassembled = TRUE) if(!(flags & NODECONSTRUCT) && disassembled) - new /obj/item/stack/sheet/brass(loc, 3) + new /obj/item/stack/tile/brass(loc, 3) return ..() diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index aaabca39633..75541565bbd 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -469,7 +469,7 @@ if(!(flags & NODECONSTRUCT)) var/turf/T = get_turf(src) if(disassembled) - new/obj/item/stack/sheet/brass(T, 4) + new/obj/item/stack/tile/brass(T, 4) else new/obj/item/clockwork/alloy_shards(T) new/obj/item/clockwork/component/vanguard_cogwheel/pinion_lock(T) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 5f2fdcdade1..c30de0a25bd 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -65,7 +65,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ merge_type = /obj/item/stack/sheet/metal /obj/item/stack/sheet/metal/ratvar_act() - new /obj/item/stack/sheet/brass(loc, amount) + new /obj/item/stack/tile/brass(loc, amount) qdel(src) /obj/item/stack/sheet/metal/narsie_act() @@ -261,7 +261,7 @@ var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \ merge_type = /obj/item/stack/sheet/runed_metal /obj/item/stack/sheet/runed_metal/ratvar_act() - new /obj/item/stack/sheet/brass(loc, amount) + new /obj/item/stack/tile/brass(loc, amount) qdel(src) /obj/item/stack/sheet/runed_metal/attack_self(mob/living/user) @@ -284,11 +284,10 @@ var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \ return ..() /* - * Metal + * Brass */ var/global/list/datum/stack_recipe/brass_recipes = list ( \ new/datum/stack_recipe("wall gear", /obj/structure/destructible/clockwork/wall_gear, 3, time = 30, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("brass floor tile", /obj/item/stack/tile/brass, 1, 1, 50), \ null, new/datum/stack_recipe("pinion airlock", /obj/machinery/door/airlock/clockwork, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("brass pinion airlock", /obj/machinery/door/airlock/clockwork/brass, 5, time = 50, one_per_turf = 1, on_floor = 1), \ @@ -299,22 +298,29 @@ var/global/list/datum/stack_recipe/brass_recipes = list ( \ new/datum/stack_recipe("brass table frame", /obj/structure/table_frame/brass, 1, time = 5, one_per_turf = 1, on_floor = 1) \ ) -/obj/item/stack/sheet/brass +/obj/item/stack/tile/brass name = "brass" desc = "Sheets made out of brass." singular_name = "brass sheet" icon_state = "sheet-brass" + icon = 'icons/obj/items.dmi' resistance_flags = FIRE_PROOF | ACID_PROOF throwforce = 10 + max_amount = 50 + throw_speed = 1 + throw_range = 3 + turf_type = /turf/open/floor/clockwork -/obj/item/stack/sheet/brass/narsie_act() +/obj/item/stack/tile/brass/narsie_act() if(prob(20)) new /obj/item/stack/sheet/runed_metal(loc, amount) qdel(src) -/obj/item/stack/sheet/brass/New(var/loc, var/amount=null) +/obj/item/stack/tile/brass/New(var/loc, var/amount=null) recipes = brass_recipes - return ..() + ..() + pixel_x = 0 + pixel_y = 0 /obj/item/stack/sheet/lessergem name = "lesser gems" diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 4f8f30c2f4a..e206d9ac087 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -150,14 +150,6 @@ icon_state = "tile_poddark" turf_type = /turf/open/floor/pod/dark -/obj/item/stack/tile/brass - name = "brass floor tile" - singular_name = "brass floor tile" - desc = "A brass floor tile. It vibrates slightly." - icon_state = "tile_brass" - resistance_flags = FIRE_PROOF | ACID_PROOF - turf_type = /turf/open/floor/clockwork - //Plasteel (normal) /obj/item/stack/tile/plasteel name = "floor tile" diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index cdf5135fd35..9e4438a52a7 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -324,9 +324,10 @@ icon_state = "clockwork_wall" resistance_flags = FIRE_PROOF | ACID_PROOF mineral_amount = 1 + canSmoothWith = list(/obj/effect/clockwork/overlay/wall, /obj/structure/falsewall/brass) girder_type = /obj/structure/destructible/clockwork/wall_gear/displaced walltype = /turf/closed/wall/clockwork - mineral = /obj/item/stack/sheet/brass + mineral = /obj/item/stack/tile/brass /obj/structure/falsewall/brass/New(loc) ..() diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm index 0434d6c8103..029b51331e8 100644 --- a/code/game/objects/structures/table_frames.dm +++ b/code/game/objects/structures/table_frames.dm @@ -130,7 +130,7 @@ desc = "Four pieces of brass arranged in a square. It's slightly warm to the touch." icon_state = "brass_frame" resistance_flags = FIRE_PROOF | ACID_PROOF - framestack = /obj/item/stack/sheet/brass + framestack = /obj/item/stack/tile/brass framestackamount = 1 /obj/structure/table_frame/brass/New() @@ -142,8 +142,8 @@ return ..() /obj/structure/table_frame/brass/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/stack/sheet/brass)) - var/obj/item/stack/sheet/brass/W = I + if(istype(I, /obj/item/stack/tile/brass)) + var/obj/item/stack/tile/brass/W = I if(W.get_amount() < 1) user << "You need one brass sheet to do this!" return diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index eb8dbe2615c..a1fff8c0680 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -321,8 +321,8 @@ icon_state = "brass_table" resistance_flags = FIRE_PROOF | ACID_PROOF frame = /obj/structure/table_frame/brass - framestack = /obj/item/stack/sheet/brass - buildstack = /obj/item/stack/sheet/brass + framestack = /obj/item/stack/tile/brass + buildstack = /obj/item/stack/tile/brass framestackamount = 1 buildstackamount = 1 canSmoothWith = list(/obj/structure/table/reinforced/brass) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 1abcc780256..a0c75d41301 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -440,7 +440,7 @@ max_integrity = 100 armor = list(melee = 60, bullet = 25, laser = 0, energy = 0, bomb = 25, bio = 100, rad = 100, fire = 80, acid = 100) explosion_block = 2 //fancy AND hard to destroy. the most useful combination. - glass_type = /obj/item/stack/sheet/brass + glass_type = /obj/item/stack/tile/brass glass_amount = 1 var/made_glow = FALSE diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index 685a9015d52..d080dbd659d 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -137,15 +137,14 @@ playsound(src, 'sound/items/Crowbar.ogg', 20, 1) if(!do_after(user, 70 / I.toolspeed, target = src)) return 0 - user.visible_message("[user] pries up [src]!", "You pry up [src], destroying it!") + user.visible_message("[user] pries up [src]!", "You pry up [src]!") playsound(src, 'sound/items/Crowbar.ogg', 80, 1) make_plating() return 1 return ..() /turf/open/floor/clockwork/make_plating() - new/obj/item/clockwork/alloy_shards/small(src) - new/obj/item/clockwork/alloy_shards/medium(src) + PoolOrNew(/obj/item/stack/tile/brass, src) return ..() /turf/open/floor/clockwork/narsie_act() diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm index 98f65437792..ddc22d60c38 100644 --- a/code/game/turfs/simulated/wall/misc_walls.dm +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -45,7 +45,7 @@ desc = "A huge chunk of warm metal. The clanging of machinery emanates from within." explosion_block = 2 hardness = 10 - sheet_type = /obj/item/stack/sheet/brass + sheet_type = /obj/item/stack/tile/brass var/obj/effect/clockwork/overlay/wall/realappearence var/obj/structure/destructible/clockwork/cache/linkedcache