diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
index 06a81abe8f..d796502e68 100644
--- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
+++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_applications.dm
@@ -23,7 +23,7 @@
quickbind = TRUE
quickbind_desc = "Creates a Sigil of Transmission, which can drain and will store power for clockwork structures."
-/*//Prolonging Prism: Creates a prism that will delay the shuttle at a power cost
+//Prolonging Prism: Creates a prism that will delay the shuttle at a power cost
/datum/clockwork_scripture/create_object/prolonging_prism
descname = "Powered Structure, Delay Emergency Shuttles"
name = "Prolonging Prism"
@@ -56,30 +56,6 @@
return ..()
-
-//Tinkerer's Daemon: Creates an efficient machine that rapidly produces components at a power cost.
-/datum/clockwork_scripture/create_object/tinkerers_daemon
- descname = "Powered Structure, Component Generator"
- name = "Tinkerer's Daemon"
- desc = "Creates a tinkerer's daemon which can rapidly collect components. It will only function if it has sufficient power, active daemons are outnumbered by Servants by a ratio of 5:1, \
- and there is at least one existing cache."
- invocations = list("May this generator...", "...collect Engine parts that yet hold greatness!")
- channel_time = 80
- consumed_components = list(BELLIGERENT_EYE = 2, GEIS_CAPACITOR = 2, REPLICANT_ALLOY = 5)
- object_path = /obj/structure/destructible/clockwork/powered/tinkerers_daemon
- creator_message = "You form a tinkerer's daemon which can rapidly collect components at a power cost."
- invokers_required = 2
- multiple_invokers_used = TRUE
- usage_tip = "Vital to your success!"
- tier = SCRIPTURE_APPLICATION
- one_per_tile = TRUE
- primary_component = REPLICANT_ALLOY
- sort_priority = 9
- quickbind = TRUE
- quickbind_desc = "Creates a Tinkerer's Daemon, which can rapidly collect components for power."
-
-*/
-
//Mania Motor: Creates a malevolent transmitter that will broadcast the whispers of Sevtug into the minds of nearby nonservants, causing a variety of mental effects at a power cost.
/datum/clockwork_scripture/create_object/mania_motor
descname = "Powered Structure, Area Denial"
diff --git a/code/modules/antagonists/clockcult/clock_structures/tinkerers_cache.dm b/code/modules/antagonists/clockcult/clock_structures/tinkerers_cache.dm
deleted file mode 100644
index cd33cf7adc..0000000000
--- a/code/modules/antagonists/clockcult/clock_structures/tinkerers_cache.dm
+++ /dev/null
@@ -1,116 +0,0 @@
-//Tinkerer's cache: Stores components for later use.
-/obj/structure/destructible/clockwork/cache
- name = "tinkerer's cache"
- desc = "A large brass spire with a flaming hole in its center."
- clockwork_desc = "A brass container capable of storing a large amount of components.\n\
- Shares components with all other caches and will gradually generate components if near a Clockwork Wall."
- icon_state = "tinkerers_cache"
- unanchored_icon = "tinkerers_cache_unwrenched"
- construction_value = 10
- break_message = "The cache's fire winks out before it falls in on itself!"
- max_integrity = 80
- light_color = "#C2852F"
- var/wall_generation_cooldown
- var/turf/closed/wall/clockwork/linkedwall //if we've got a linked wall and are producing
- var/static/linked_caches = 0 //how many caches are linked to walls; affects how fast components are produced
-
-/obj/structure/destructible/clockwork/cache/Initialize()
- . = ..()
- START_PROCESSING(SSobj, src)
- GLOB.clockwork_caches++
- update_slab_info()
- set_light(2, 0.7)
-
-/obj/structure/destructible/clockwork/cache/Destroy()
- GLOB.clockwork_caches--
- update_slab_info()
- STOP_PROCESSING(SSobj, src)
- if(linkedwall)
- linked_caches--
- linkedwall.linkedcache = null
- linkedwall = null
- return ..()
-
-/obj/structure/destructible/clockwork/cache/process()
- if(!anchored)
- if(linkedwall)
- linked_caches--
- linkedwall.linkedcache = null
- linkedwall = null
- return
- for(var/turf/closed/wall/clockwork/C in range(4, src))
- if(!C.linkedcache && !linkedwall)
- linked_caches++
- C.linkedcache = src
- linkedwall = C
- wall_generation_cooldown = world.time + get_production_time()
- visible_message("[src] starts to whirr in the presence of [C]...")
- break
- if(linkedwall && wall_generation_cooldown <= world.time)
- wall_generation_cooldown = world.time + get_production_time()
- var/component_id = generate_cache_component(null, src)
- playsound(linkedwall, 'sound/magic/clockwork/fellowship_armory.ogg', rand(15, 20), 1, -3, 1, 1)
- visible_message("Something cl[pick("ank", "ink", "unk", "ang")]s around inside of [src]...")
-
-/obj/structure/destructible/clockwork/cache/attackby(obj/item/I, mob/living/user, params)
- if(!is_servant_of_ratvar(user))
- return ..()
- if(istype(I, /obj/item/clockwork/component))
- var/obj/item/clockwork/component/C = I
- if(!anchored)
- to_chat(user, "[src] needs to be secured to place [C] into it!")
- else
- GLOB.clockwork_component_cache[C.component_id]++
- update_slab_info()
- to_chat(user, "You add [C] to [src].")
- user.drop_item()
- qdel(C)
- return 1
- else if(istype(I, /obj/item/clockwork/slab))
- var/obj/item/clockwork/slab/S = I
- if(!anchored)
- to_chat(user, "[src] needs to be secured to offload your slab's components into it!")
- else
- for(var/i in S.stored_components)
- GLOB.clockwork_component_cache[i] += S.stored_components[i]
- S.stored_components[i] = 0
- update_slab_info()
- user.visible_message("[user] empties [S] into [src].", "You offload your slab's components into [src].")
- return 1
- else
- return ..()
-
-/obj/structure/destructible/clockwork/cache/update_anchored(mob/user, do_damage)
- ..()
- if(anchored)
- set_light(2, 0.7)
- else
- set_light(0)
-
-/obj/structure/destructible/clockwork/cache/attack_hand(mob/living/user)
- ..()
- if(is_servant_of_ratvar(user))
- if(linkedwall)
- if(wall_generation_cooldown > world.time)
- var/temp_time = (wall_generation_cooldown - world.time) * 0.1
- to_chat(user, "[src] will produce a component in [temp_time] second[temp_time == 1 ? "":"s"].")
- else
- to_chat(user, "[src] is about to produce a component!")
- else if(anchored)
- to_chat(user, "[src] is unlinked! Construct a Clockwork Wall nearby to generate components!")
- else
- to_chat(user, "[src] needs to be secured to generate components!")
-
-/obj/structure/destructible/clockwork/cache/examine(mob/user)
- ..()
- if(is_servant_of_ratvar(user) || isobserver(user))
- if(linkedwall)
- to_chat(user, "It is linked to a Clockwork Wall and will generate a component every [DisplayTimeText(get_production_time())]!")
- else
- to_chat(user, "It is unlinked! Construct a Clockwork Wall nearby to generate components!")
- to_chat(user, "Stored components:")
- for(var/i in GLOB.clockwork_component_cache)
- to_chat(user, "[get_component_icon(i)] [get_component_name(i)][i != REPLICANT_ALLOY ? "s":""]: [GLOB.clockwork_component_cache[i]]")
-
-/obj/structure/destructible/clockwork/cache/proc/get_production_time()
- return (CACHE_PRODUCTION_TIME + (ACTIVE_CACHE_SLOWDOWN * linked_caches)) * get_efficiency_mod(TRUE)
diff --git a/code/modules/antagonists/clockcult/clock_structures/tinkerers_daemon.dm b/code/modules/antagonists/clockcult/clock_structures/tinkerers_daemon.dm
deleted file mode 100644
index 4ceb7c3e26..0000000000
--- a/code/modules/antagonists/clockcult/clock_structures/tinkerers_daemon.dm
+++ /dev/null
@@ -1,171 +0,0 @@
-//Tinkerer's Daemon: A machine that rapidly produces components at a power cost.
-/obj/structure/destructible/clockwork/powered/tinkerers_daemon
- name = "tinkerer's daemon"
- desc = "A strange machine with three small brass obelisks attached to it."
- clockwork_desc = "An efficient machine that can rapidly produce components at a small power cost. It will only function if active daemons are outnumbered by servants at a rate to 5:1."
- icon_state = "tinkerers_daemon"
- active_icon = "tinkerers_daemon"
- inactive_icon = "tinkerers_daemon"
- unanchored_icon = "tinkerers_daemon_unwrenched"
- max_integrity = 100
- construction_value = 20
- break_message = "The daemon shatters into millions of pieces, leaving only a disc of metal!"
- debris = list(/obj/item/clockwork/alloy_shards/medium = 1, \
- /obj/item/clockwork/alloy_shards/small = 6, \
- /obj/item/clockwork/component/replicant_alloy/replication_plate = 1)
- var/static/mutable_appearance/daemon_glow = mutable_appearance('icons/obj/clockwork_objects.dmi', "tinkerglow")
- var/static/mutable_appearance/component_glow = mutable_appearance('icons/obj/clockwork_objects.dmi', "t_random_component")
- var/component_id_to_produce
- var/production_time = 0 //last time we produced a component
- var/production_cooldown = 70
-
-/obj/structure/destructible/clockwork/powered/tinkerers_daemon/Destroy()
- GLOB.active_daemons -= src
- return ..()
-
-/obj/structure/destructible/clockwork/powered/tinkerers_daemon/examine(mob/user)
- ..()
- if(is_servant_of_ratvar(user) || isobserver(user))
- if(active)
- if(component_id_to_produce)
- to_chat(user, "It is currently producing [get_component_name(component_id_to_produce)][component_id_to_produce != REPLICANT_ALLOY ? "s":""].")
- else
- to_chat(user, "It is currently producing random components.")
- to_chat(user, "It will produce a component every [round((production_cooldown*0.1) * get_efficiency_mod(TRUE), 0.1)] seconds and requires at least the following power for each component type:")
- for(var/i in GLOB.clockwork_component_cache)
- to_chat(user, "[get_component_icon(i)] [get_component_name(i)]: [DisplayPower(get_component_cost(i))] ([GLOB.clockwork_component_cache[i]] exist[GLOB.clockwork_component_cache[i] == 1 ? "s" : ""])")
-
-/obj/structure/destructible/clockwork/powered/tinkerers_daemon/forced_disable(bad_effects)
- if(active)
- if(bad_effects)
- try_use_power(MIN_CLOCKCULT_POWER*4)
- visible_message("[src] shuts down with a horrible grinding noise!")
- playsound(src, 'sound/magic/clockwork/anima_fragment_attack.ogg', 50, 1)
- else
- visible_message("[src] shuts down!")
- toggle()
- return TRUE
-
-/obj/structure/destructible/clockwork/powered/tinkerers_daemon/attack_hand(mob/living/user)
- if(!is_servant_of_ratvar(user))
- to_chat(user, "You place your hand on the daemon, but nothing happens.")
- return
- if(active)
- toggle(0, user)
- else
- if(!anchored)
- to_chat(user, "[src] needs to be secured to the floor before it can be activated!")
- return FALSE
- if(!GLOB.clockwork_caches)
- to_chat(user, "\"You require a cache for this daemon to operate. Get to it.\"")
- return
- var/min_power_usable = 0
- for(var/i in GLOB.clockwork_component_cache)
- if(!min_power_usable)
- min_power_usable = get_component_cost(i)
- else
- min_power_usable = min(min_power_usable, get_component_cost(i))
- if(total_accessable_power() < min_power_usable)
- to_chat(user, "\"You need more power to activate this daemon, friend.\"")
- return
- var/servants = 0
- for(var/mob/living/L in GLOB.living_mob_list)
- if(is_servant_of_ratvar(L))
- servants++
- if(servants * 0.2 < 1)
- to_chat(user, "\"There are too few servants for daemons to work.\"")
- return
- var/choice = alert(user,"Activate Daemon...",,"Specific Component","Random Component","Cancel")
- switch(choice)
- if("Specific Component")
- var/list/components = list()
- for(var/i in GLOB.clockwork_component_cache)
- components["[get_component_name(i)] ([DisplayPower(get_component_cost(i))])"] = i
- var/input_component = input(user, "Choose a component type.", name) as null|anything in components
- component_id_to_produce = components[input_component]
- servants = 0
- for(var/mob/living/L in GLOB.living_mob_list)
- if(is_servant_of_ratvar(L))
- servants++
- if(!is_servant_of_ratvar(user) || !user.canUseTopic(src, !issilicon(user), NO_DEXTERY) || active || !GLOB.clockwork_caches || servants * 0.2 < 1)
- return
- if(!component_id_to_produce)
- to_chat(user, "You decide not to select a component and activate the daemon.")
- return
- if(total_accessable_power() < get_component_cost(component_id_to_produce))
- to_chat(user, "There is too little power to produce this type of component!")
- return
- toggle(0, user)
- if("Random Component")
- component_id_to_produce = null
- servants = 0
- for(var/mob/living/L in GLOB.living_mob_list)
- if(is_servant_of_ratvar(L))
- servants++
- if(!is_servant_of_ratvar(user) || !user.canUseTopic(src, !issilicon(user), NO_DEXTERY) || active || !GLOB.clockwork_caches || servants * 0.2 < 1)
- return
- toggle(0, user)
-
-/obj/structure/destructible/clockwork/powered/tinkerers_daemon/toggle(fast_process, mob/living/user)
- . = ..()
- if(active)
- GLOB.active_daemons += src
- var/component_color = get_component_color(component_id_to_produce)
- daemon_glow.color = component_color
- add_overlay(daemon_glow)
- component_glow.icon_state = "t_[component_id_to_produce ? component_id_to_produce :"random_component"]"
- component_glow.color = component_color
- add_overlay(component_glow)
- production_time = world.time + production_cooldown //don't immediately produce when turned on after being off
- set_light(2, 0.9, get_component_color_bright(component_id_to_produce))
- else
- GLOB.active_daemons -= src
- cut_overlays()
- set_light(0)
-
-/obj/structure/destructible/clockwork/powered/tinkerers_daemon/proc/get_component_cost(id)
- return max(MIN_CLOCKCULT_POWER*2, (MIN_CLOCKCULT_POWER*2) * (1 + round(GLOB.clockwork_component_cache[id] * 0.2)))
-
-/obj/structure/destructible/clockwork/powered/tinkerers_daemon/process()
- var/servants = 0
- for(var/mob/living/L in GLOB.living_mob_list)
- if(is_servant_of_ratvar(L))
- servants++
- while(servants * 0.2 < LAZYLEN(GLOB.active_daemons))
- var/obj/structure/destructible/clockwork/powered/tinkerers_daemon/D = GLOB.active_daemons[1]
- if(!istype(D))
- break
- if(D.active)
- D.forced_disable(FALSE)
- if(D == src)
- return
- . = ..()
- var/min_power_usable = 0
- if(!component_id_to_produce)
- for(var/i in GLOB.clockwork_component_cache)
- if(!min_power_usable)
- min_power_usable = get_component_cost(i)
- else
- min_power_usable = min(min_power_usable, get_component_cost(i))
- else
- min_power_usable = get_component_cost(component_id_to_produce)
- if(!GLOB.clockwork_caches || . < min_power_usable) //if we don't have enough to produce the lowest or what we chose to produce, cancel out
- forced_disable(FALSE)
- return
- if(production_time <= world.time)
- var/component_to_generate = component_id_to_produce
- if(!component_to_generate)
- component_to_generate = get_weighted_component_id() //more likely to generate components that we have less of
- if(!try_use_power(get_component_cost(component_to_generate)))
- component_to_generate = null
- if(!component_id_to_produce)
- for(var/i in GLOB.clockwork_component_cache)
- if(try_use_power(get_component_cost(i))) //if we fail but are producing random, try and get a different component to produce
- component_to_generate = i
- break
- if(component_to_generate)
- generate_cache_component(component_to_generate, src)
- production_time = world.time + (production_cooldown * get_efficiency_mod(TRUE)) //go on cooldown
- visible_message("[src] hums as it produces a component.")
- else
- forced_disable(FALSE) //we shouldn't actually ever get here, as we should cancel out way before this