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