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