diff --git a/code/game/objects/items/weapons/circuitboards/machinery/miscboards.dm b/code/game/objects/items/weapons/circuitboards/machinery/miscboards.dm
index 20b3bb0169e..5510a9bd9e2 100644
--- a/code/game/objects/items/weapons/circuitboards/machinery/miscboards.dm
+++ b/code/game/objects/items/weapons/circuitboards/machinery/miscboards.dm
@@ -172,26 +172,6 @@
"/obj/item/stock_parts/capacitor" = 2,
"/obj/item/stock_parts/scanning_module" = 1)
-/obj/item/circuitboard/crystelpodconsole
- name = T_BOARD("Crystal Therapy Pod Console")
- desc = "The circuitboard for a crystal therapy pod console."
- build_path = /obj/machinery/chakraconsole
- origin_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
- board_type = "machine"
- req_components = list(
- "/obj/item/stock_parts/scanning_module" = 2,
- "/obj/item/stock_parts/capacitor" = 1)
-
-/obj/item/circuitboard/crystelpod
- name = T_BOARD("Crystal Therapy Pod")
- desc = "The circuitboard for a crystal therapy pod."
- build_path = /obj/machinery/chakrapod
- origin_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
- board_type = "machine"
- req_components = list(
- "/obj/item/stock_parts/scanning_module" = 2,
- "/obj/item/stock_parts/capacitor" = 2)
-
/obj/item/circuitboard/weapons_analyzer
name = T_BOARD("Weapons Analyzer")
desc = "The circuitboard for a weapons analyzer."
diff --git a/code/game/objects/structures/therapy.dm b/code/game/objects/structures/therapy.dm
index 5cec981f9b2..e7114771aec 100644
--- a/code/game/objects/structures/therapy.dm
+++ b/code/game/objects/structures/therapy.dm
@@ -214,397 +214,4 @@
else
ticktock = "Tick"
to_chat(H, "[ticktock]. . .")
- sound_to(H, 'sound/effects/singlebeat.ogg')
-
-
-/obj/machinery/chakrapod
- name = "Crystal Therapy Pod"
- desc = "A state-of-the-art crystal therapy pod. Designed to utilize phoron enhanced quartz crystals to remove mental trauma from the body. Proven to be 100% effective 30% of the time!"
- icon = 'icons/obj/sleeper.dmi'
- icon_state = "sleeper_s"
- density = 1
- anchored = 1
-
- idle_power_usage = 60
- active_power_usage = 10000
-
- var/datum/weakref/occupant = null
- var/locked
- var/obj/machinery/chakraconsole/connected
-
- component_types = list(
- /obj/item/circuitboard/crystelpod,
- /obj/item/stock_parts/capacitor = 2,
- /obj/item/stock_parts/scanning_module = 2
- )
-
-/obj/machinery/chakrapod/Destroy()
- if (connected)
- connected.connected = null
- connected = null
-
- occupant = null
-
- return ..()
-
-/obj/machinery/chakrapod/relaymove(mob/user as mob)
- if (user.stat)
- return
- src.go_out()
- return
-
-/obj/machinery/chakrapod/update_icon()
- if(occupant)
- icon_state = "[initial(icon_state)]-closed"
- return
- else
- icon_state = initial(icon_state)
-
-/obj/machinery/chakrapod/verb/eject()
- set src in oview(1)
- set category = "Object"
- set name = "Eject Crystal Therapy Pod"
-
- if (usr.stat != 0)
- return
- src.go_out()
- add_fingerprint(usr)
- return
-
-/obj/machinery/chakrapod/verb/move_inside()
- set src in oview(1)
- set category = "Object"
- set name = "Enter Crystal Therapy Pod"
-
- if (usr.stat != 0 || locked)
- return
- if (occupant.resolve())
- to_chat(usr, "The pod is already occupied!")
- return
- if (usr.abiotic())
- to_chat(usr, "The subject cannot have abiotic items on.")
- return
- if(locked)
- to_chat(usr, "The pod is currently locked!")
- return
- if(!ishuman(usr))
- to_chat(usr, "The subject does not fit!")
- return
- usr.pulling = null
- usr.client.perspective = EYE_PERSPECTIVE
- usr.client.eye = src
- usr.forceMove(src)
- src.occupant = WEAKREF(usr)
- update_use_power(POWER_USE_ACTIVE)
- flick("[initial(icon_state)]-anim", src)
- update_icon()
- src.add_fingerprint(usr)
- return
-
-/obj/machinery/chakrapod/proc/go_out()
- if (!src.occupant || !occupant.resolve())
- occupant = null
- return
-
- var/mob/living/carbon/human/H = occupant.resolve()
-
- if(locked)
- to_chat(H, "You push against the pod door and attempt to escape. This process will take roughly two minutes.")
- if(!do_after(H, 1200))
- return
-
- if (H.client)
- H.client.eye = H.client.mob
- H.client.perspective = MOB_PERSPECTIVE
- H.forceMove(get_turf(src))
- occupant = null
- update_use_power(POWER_USE_IDLE)
- flick("[initial(icon_state)]-anim", src)
- update_icon()
- return
-
-/obj/machinery/chakrapod/attackby(obj/item/grab/G, mob/user)
- if (!istype(G) || !ishuman(G.affecting))
- return
- if (occupant)
- to_chat(user, "The pod is already occupied!")
- return
- if (G.affecting.abiotic())
- to_chat(user, "Subject cannot have abiotic items on.")
- return
- if(locked)
- to_chat(user, "The pod is locked.")
- return
-
- var/mob/living/L = G.affecting
- var/bucklestatus = L.bucklecheck(user)
- if (!bucklestatus)
- return
-
- user.visible_message("[user] starts putting [L] into [src].", "You start putting [L] into [src].", range = 3)
- if (do_mob(user, L, 30, needhand = 0))
- if (L.client)
- L.client.perspective = EYE_PERSPECTIVE
- L.client.eye = src
- L.forceMove(src)
- occupant = WEAKREF(L)
-
- update_use_power(POWER_USE_ACTIVE)
- flick("[initial(icon_state)]-anim", src)
- update_icon()
-
- src.add_fingerprint(user)
- qdel(G)
- return
-
-/obj/machinery/chakrapod/MouseDrop_T(mob/living/carbon/human/H, mob/living/user)
- if(!istype(user) || !istype(H))
- return
- if (occupant)
- to_chat(user, "The pod is already occupied!")
- return
- if (H.abiotic())
- to_chat(user, "Subject cannot have abiotic items on.")
- return
- if(locked)
- to_chat(user, "The pod is locked.")
- return
-
- var/bucklestatus = H.bucklecheck(user)
- if (!bucklestatus)
- return
-
- if(H == user)
- user.visible_message("[user] starts climbing into [src].", "You start climbing into [src].", range = 3)
- else
- user.visible_message("[user] starts putting [H] into [src].", "You start putting [H] into [src].", range = 3)
-
- if (do_mob(user, H, 30, needhand = 0))
- if (bucklestatus == 2)
- var/obj/structure/LB = H.buckled_to
- LB.user_unbuckle(user)
- if (H.client)
- H.client.perspective = EYE_PERSPECTIVE
- H.client.eye = src
- H.forceMove(src)
- occupant = WEAKREF(H)
- update_use_power(POWER_USE_ACTIVE)
- flick("[initial(icon_state)]-anim", src)
- update_icon()
- src.add_fingerprint(user)
- return
-
-/obj/machinery/chakraconsole
- name = "Therapy Pod Console"
- desc = "An advanced control panel that can be used to interface with a connected therapy pod."
- icon = 'icons/obj/sleeper.dmi'
- icon_state = "sleeper_s_scannerconsole"
- density = 0
- anchored = 1
- var/obj/machinery/chakrapod/connected
- var/crystal = 0
- var/working = 0
- component_types = list(
- /obj/item/circuitboard/crystelpodconsole,
- /obj/item/stock_parts/capacitor = 1,
- /obj/item/stock_parts/scanning_module = 2
- )
-
-/obj/machinery/chakraconsole/ex_act(severity)
-
- switch(severity)
- if(1.0)
- qdel(src)
- return
- if(2.0)
- if (prob(50))
- qdel(src)
- return
- else
- return
-
-/obj/machinery/chakraconsole/Destroy()
- if (connected)
- connected.connected = null
- connected = null
-
- return ..()
-
-/obj/machinery/chakraconsole/power_change()
- ..()
- update_icon()
-
-/obj/machinery/chakraconsole/update_icon()
- cut_overlays()
- if((stat & BROKEN) || (stat & NOPOWER))
- return
- else
- var/mutable_appearance/screen_overlay = mutable_appearance(icon, "sleeper_s_scannerconsole-screen", EFFECTS_ABOVE_LIGHTING_LAYER)
- add_overlay(screen_overlay)
- set_light(1.4, 1, COLOR_RED)
-
-/obj/machinery/chakraconsole/Initialize()
- . = ..()
- for(var/obj/machinery/chakrapod/C in orange(1,src))
- connected = C
- break
- if(connected)
- connected.connected = src
- update_icon()
-
-/obj/machinery/chakraconsole/Destroy()
- if (connected)
- connected.connected = null
- connected = null
-
- . = ..()
-
-/obj/machinery/chakraconsole/attack_ai(user as mob)
- if(!ai_can_interact(user))
- return
- return src.attack_hand(user)
-
-/obj/machinery/chakraconsole/attack_hand(user as mob)
- if(..())
- return
-
- button_prompt(user)
-
-/obj/machinery/chakraconsole/emag_act(var/remaining_charges, var/mob/user)
- if(!emagged)
- to_chat(user, "You short out [src]'s safety measurements.")
- visible_message("[src] hums oddly...")
- emagged = 1
- return 1
-
-/obj/machinery/chakraconsole/proc/button_prompt(user as mob)
- var/mob/living/carbon/human/H = connected && connected.occupant ? connected.occupant.resolve() : null
- if(!H)
- to_chat(user, "The pod is currently unoccupied.")
- else
- var/list/choices1 = list("Therapy Pod", "Toggle Locking Mechanism", "Initiate Neural Scan", "Initiate Crystal Therapy", "Recycle Crystal", "Cancel")
- if(emagged)
- choices1.Add("%eRr:# C:\\NT>quaid.exe")
- var/response1 = input(user,"Input Operation","Therapy Pod OS") as null|anything in choices1
-
- switch(response1)
- if("Toggle Locking Mechanism")
- connected.locked = !connected.locked
- visible_message("[connected]'s locking mechanism clicks.", "You hear a click.")
- return
- if("Initiate Neural Scan")
- visible_message("[connected] begins humming with an electrical tone.", "You hear an electrical humming.")
- if(H && connected.occupant.resolve() == H)
- var/obj/item/organ/internal/brain/sponge = H.internal_organs_by_name[BP_BRAIN]
- var/braindamage = H.getBrainLoss()
- if(sponge && istype(sponge))
- if(!sponge.prepared)
- to_chat(user, "Scans indicate [braindamage] distinct abnormalities present in subject.")
- return
- else
- to_chat(user, "Scans indicate [braindamage+rand(-20,20)] distinct abnormalities present in subject.")
- return
-
- to_chat(user, "Scans indicate total brain failure in subject.")
- return
- if("Initiate Crystal Therapy")
- if(!crystal)
- neural_check(user, H)
- return
- to_chat(user, "Error: Crystal depleted. Terminating operation..")
- playsound(src, 'sound/machines/buzz-two.ogg', 50, 1)
- visible_message("[connected] buzzes harshly.", "You hear a sharp buzz.")
- if("%eRr:# C:\\NT>quaid.exe")
- if(!crystal)
- total_recall(user, H)
- return
- to_chat(user, "Error: Crystal depleted. Terminating operation..")
- playsound(src, 'sound/machines/buzz-two.ogg', 50, 1)
- visible_message("[connected] buzzes harshly.", "You hear a sharp buzz.")
- if("Recycle Crystal")
- if(crystal)
- to_chat(user, "Eliminating depleted crystal.")
- playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1)
- sleep(100)
- crystal = 0
- visible_message("[connected] pings cheerfully.", "You hear a ping.")
- playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
- return
- to_chat(user, "Error: Crystal depletion not detected. Terminating operation..")
- playsound(src, 'sound/machines/buzz-two.ogg', 50, 1)
- visible_message("[connected] buzzes harshly.", "You hear a sharp buzz.")
-
-/obj/machinery/chakraconsole/proc/neural_check(var/mob/user, var/mob/living/carbon/human/H)
- var/response = input(user,"Input number of rotations","Therapy Pod","0")
- var/alert = text2num(sanitize(response))
- if(!alert)
- to_chat(user, "Error. Invalid input.")
- return
-
- for(var/i=0;iError: Subject not recognized. Terminating operation.")
- playsound(src, 'sound/machines/buzz-two.ogg', 50, 1)
- visible_message("[connected] buzzes harshly.", "You hear a sharp buzz.")
- break
-
- var/obj/item/organ/internal/brain/sponge = H.internal_organs_by_name[BP_BRAIN]
- if (!istype(sponge))
- if(get_dist(user,src) <= 1)
- to_chat(user, "Error: Subject not recognized. Terminating operation.")
- playsound(src, 'sound/machines/buzz-two.ogg', 50, 1)
- visible_message("[connected] buzzes harshly.", "You hear a sharp buzz.")
- break
-
-
- if(electroshock_trauma)
- visible_message("[connected] pings cheerfully.", "You hear a ping.")
- playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
-
- else
- if(get_dist(user,src) <= 1)
- to_chat(user, "Error: Brain abnormality not recognized. Subject contamination detected.")
- playsound(src, 'sound/machines/buzz-two.ogg', 50, 1)
- visible_message("[connected] buzzes harshly.", "You hear a sharp buzz.")
- H.apply_radiation(max(1,i))
-
-/obj/machinery/chakraconsole/proc/total_recall(var/mob/user, var/mob/living/carbon/human/H)
- if(H && H == connected.occupant.resolve())
- var/list/choices1 = list("Wipe Memory", "Implant Memory", "Cancel")
- var/response1 = input(user,"Input operation.","quaid.exe") as null|anything in choices1
- if(response1 == "Cancel")
- return
- if(response1 == "Wipe Memory")
- var/list/choices2 = list("5 minutes", "15 minutes", "30 minutes", "2 hours", "6 months", "Cancel")
- var/response2 = input(user,"Input timeframe.","Memory Wipe") as null|anything in choices2
- if(response2 != "Cancel")
- to_chat(user, "Initiating memory wipe. Process will take approximately two minutes.")
- to_chat(H, "You feel a sharp pain in your brain as the therapy pod begins to hum menacingly!!")
- sleep(1200-rand(0,150))
- if(H && H == connected.occupant.resolve())
- var/timespan = response2
- to_chat(H, "You feel a part of your past self, a portion of your memories, a piece of your very being slip away...")
- to_chat(H, "Your memory of the past [timespan] has been wiped. Your ability to recall these past [timespan] has been removed from your brain, and you remember nothing that ever ocurred within those [timespan].")
- crystal = 1
- return
- else
- return
- if(response1 == "Implant Memory")
- var/new_memory = input(user,"Input New Memory","quaid.exe")
- var/memory_implant = sanitize(new_memory)
- if(memory_implant)
- to_chat(user, "Initiating memory implantation. Process will take approximately two minutes. Subject's memory of this process will also be wiped.")
- to_chat(H, "You feel a sharp pain in your brain as the therapy pod begins to hum menacingly!")
- sleep(1200-rand(0,150))
- if(H && H == connected.occupant.resolve())
- to_chat(H, "You blink, and somehow between the timespan of your eyes closing and your eyes opening your perception of the world has changed in some imperceptible way...")
- to_chat(H, "A new memory has been implanted in your mind as follows: [memory_implant] - you have no reason to suspect the memory to be fabricated, as your memory of the past two minutes has also been altered.")
- crystal = 1
- return
- if(get_dist(user,src) <= 1)
- to_chat(user, "Error: Operation failed. Terminating operation.")
- playsound(src, 'sound/machines/buzz-two.ogg', 50, 1)
- visible_message("[connected] buzzes harshly.", "You hear a sharp buzz.")
+ sound_to(H, 'sound/effects/singlebeat.ogg')
\ No newline at end of file
diff --git a/code/modules/research/designs/circuit/machine_circuits.dm b/code/modules/research/designs/circuit/machine_circuits.dm
index 12c96158b59..e4441053b22 100644
--- a/code/modules/research/designs/circuit/machine_circuits.dm
+++ b/code/modules/research/designs/circuit/machine_circuits.dm
@@ -116,16 +116,6 @@
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/circuitboard/cryotube
-/datum/design/circuit/machine/crystelpod
- name = "Crystal Therapy Pod"
- req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
- build_path = /obj/item/circuitboard/crystelpod
-
-/datum/design/circuit/machine/crystelpodconsole
- name = "Crystal Therapy Pod"
- req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
- build_path = /obj/item/circuitboard/crystelpodconsole
-
/datum/design/circuit/machine/stove
name = "Stove"
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
diff --git a/html/changelogs/crystal_pod_removal.yml b/html/changelogs/crystal_pod_removal.yml
new file mode 100644
index 00000000000..cd68fb64e53
--- /dev/null
+++ b/html/changelogs/crystal_pod_removal.yml
@@ -0,0 +1,6 @@
+author: SleepyGemmy
+
+delete-after: True
+
+changes:
+ - rscdel: "Removes the depreciated crystal therapy pod and its console from the codebase."
\ No newline at end of file
diff --git a/icons/obj/sleeper.dmi b/icons/obj/sleeper.dmi
index ac70860548f..d086cb746ba 100644
Binary files a/icons/obj/sleeper.dmi and b/icons/obj/sleeper.dmi differ