From 0f04bbb23b4c94ebf1dcd305a1fb12c47677fd91 Mon Sep 17 00:00:00 2001
From: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Date: Thu, 22 Apr 2021 13:06:31 +1000
Subject: [PATCH] Ports a significant amount of the tg cybernetic organ code
while making some additional changes to their power
---
code/__DEFINES/_flags/item_flags.dm | 1 +
code/game/objects/items/miscellaneous.dm | 4 +-
code/modules/cargo/exports/organs_robotics.dm | 15 ++-
.../research/designs/medical_designs.dm | 121 ++++++++++++------
.../research/techweb/nodes/medical_nodes.dm | 15 ++-
code/modules/surgery/organs/heart.dm | 74 +++++++----
code/modules/surgery/organs/liver.dm | 36 ++++--
code/modules/surgery/organs/lungs.dm | 51 +++++---
code/modules/surgery/organs/organ_internal.dm | 4 +
code/modules/surgery/organs/stomach.dm | 34 +++++
icons/obj/surgery.dmi | Bin 44539 -> 45213 bytes
11 files changed, 252 insertions(+), 103 deletions(-)
diff --git a/code/__DEFINES/_flags/item_flags.dm b/code/__DEFINES/_flags/item_flags.dm
index 7da71e22cb..529499127d 100644
--- a/code/__DEFINES/_flags/item_flags.dm
+++ b/code/__DEFINES/_flags/item_flags.dm
@@ -51,3 +51,4 @@
#define ORGAN_NO_SPOIL (1<<5) //Do not spoil under any circumstances
#define ORGAN_NO_DISMEMBERMENT (1<<6) //Immune to disembowelment.
#define ORGAN_EDIBLE (1<<7) //is a snack? :D
+#define ORGAN_SYNTHETIC_EMP (1<<6) //Synthetic organ affected by an EMP. Deteriorates over time.
diff --git a/code/game/objects/items/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm
index 224c4ffb9b..80466832a6 100644
--- a/code/game/objects/items/miscellaneous.dm
+++ b/code/game/objects/items/miscellaneous.dm
@@ -135,8 +135,8 @@
/obj/item/organ/cyberimp/arm/toolset,
/obj/item/organ/cyberimp/arm/surgery,
/obj/item/organ/cyberimp/chest/thrusters,
- /obj/item/organ/lungs/cybernetic,
- /obj/item/organ/liver/cybernetic) //cyberimplants range from a nice bonus to fucking broken bullshit so no subtypesof
+ /obj/item/organ/lungs/cybernetic/tier3,
+ /obj/item/organ/liver/cybernetic/tier3) //cyberimplants range from a nice bonus to fucking broken bullshit so no subtypesof
for(var/V in templist)
var/atom/A = V
augment_list[initial(A.name)] = A
diff --git a/code/modules/cargo/exports/organs_robotics.dm b/code/modules/cargo/exports/organs_robotics.dm
index b65cf28949..08340e6a56 100644
--- a/code/modules/cargo/exports/organs_robotics.dm
+++ b/code/modules/cargo/exports/organs_robotics.dm
@@ -75,7 +75,7 @@
cost = 250
unit_name = "heart"
export_types = list(/obj/item/organ/heart)
- exclude_types = list(/obj/item/organ/heart/cursed, /obj/item/organ/heart/cybernetic)
+ exclude_types = list(/obj/item/organ/heart/cursed, /obj/item/organ/heart/cybernetic/tier2, /obj/item/organ/heart/cybernetic/tier3)
/datum/export/organs/tongue
cost = 75
@@ -92,29 +92,30 @@
cost = 50 //can be replaced
unit_name = "stomach"
export_types = list(/obj/item/organ/stomach)
+ exclude_types = list(/obj/item/organ/stomach/cybernetic/tier2, /obj/item/organ/stomach/cybernetic/tier3)
/datum/export/organs/lungs
cost = 150
unit_name = "lungs"
- export_types = list(/obj/item/organ/lungs)
- exclude_types = list(/obj/item/organ/lungs/cybernetic, /obj/item/organ/lungs/cybernetic/upgraded)
+ export_types = list(/obj/item/organ/lungs,)
+ exclude_types = list(/obj/item/organ/lungs/cybernetic/tier2, /obj/item/organ/lungs/cybernetic/tier3)
/datum/export/organs/liver
cost = 175
unit_name = "liver"
export_types = list(/obj/item/organ/liver)
- exclude_types = list(/obj/item/organ/liver/cybernetic, /obj/item/organ/liver/cybernetic/upgraded)
+ exclude_types = list(/obj/item/organ/liver/cybernetic/tier2, /obj/item/organ/liver/cybernetic/tier3)
/datum/export/organs/cybernetic
cost = 225
unit_name = "cybernetic organ"
- export_types = list(/obj/item/organ/liver/cybernetic, /obj/item/organ/lungs/cybernetic, /obj/item/organ/eyes/robotic, /obj/item/organ/heart/cybernetic)
- exclude_types = list(/obj/item/organ/lungs/cybernetic/upgraded, /obj/item/organ/liver/cybernetic/upgraded)
+ export_types = list(/obj/item/organ/liver/cybernetic/tier2, /obj/item/organ/lungs/cybernetic/tier2, /obj/item/organ/eyes/robotic/shield, /obj/item/organ/eyes/robotic/glow, /obj/item/organ/stomach/cybernetic/tier2, /obj/item/organ/heart/cybernetic/tier2)
+ exclude_types = list(/obj/item/organ/liver/cybernetic/tier3, /obj/item/organ/lungs/cybernetic/tier3, /obj/item/organ/eyes/robotic/xray, /obj/item/organ/eyes/robotic/thermals, /obj/item/organ/stomach/cybernetic/tier3, /obj/item/organ/heart/cybernetic/tier3)
/datum/export/organs/upgraded
cost = 275
unit_name = "upgraded cybernetic organ"
- export_types = list(/obj/item/organ/lungs/cybernetic/upgraded, /obj/item/organ/liver/cybernetic/upgraded)
+ export_types = list(/obj/item/organ/liver/cybernetic/tier3, /obj/item/organ/lungs/cybernetic/tier3, /obj/item/organ/eyes/robotic/xray, /obj/item/organ/eyes/robotic/thermals, /obj/item/organ/stomach/cybernetic/tier3, /obj/item/organ/heart/cybernetic/tier3)
/datum/export/organs/tail // yeah have fun pulling this off someone without catching a bwoink
cost = 500
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index e45434cec4..bb5989e5c6 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -644,66 +644,109 @@
//Cybernetic organs
/datum/design/cybernetic_liver
- name = "Cybernetic Liver"
- desc = "A cybernetic liver"
+ name = "Basic Cybernetic Liver"
+ desc = "A basic cybernetic liver."
id = "cybernetic_liver"
build_type = PROTOLATHE | MECHFAB
+ construction_time = 40
materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/organ/liver/cybernetic
- category = list("Misc","Medical Designs")
- departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
-
-/datum/design/cybernetic_heart
- name = "Cybernetic Heart"
- desc = "A cybernetic heart"
- id = "cybernetic_heart"
- build_type = PROTOLATHE | MECHFAB
- materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
- build_path = /obj/item/organ/heart/cybernetic
- category = list("Misc","Medical Designs")
- departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
-
-/datum/design/cybernetic_heart_u
- name = "Upgraded Cybernetic Heart"
- desc = "An upgraded cybernetic heart"
- id = "cybernetic_heart_u"
- build_type = PROTOLATHE | MECHFAB
- construction_time = 50
- materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 500)
- build_path = /obj/item/organ/heart/cybernetic/upgraded
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
-/datum/design/cybernetic_liver_u
- name = "Upgraded Cybernetic Liver"
- desc = "An upgraded cybernetic liver"
- id = "cybernetic_liver_u"
- build_type = PROTOLATHE | MECHFAB
+/datum/design/cybernetic_liver/tier2
+ name = "Cybernetic Liver"
+ desc = "A cybernetic liver."
+ id = "cybernetic_liver_tier2"
materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
- build_path = /obj/item/organ/liver/cybernetic/upgraded
- category = list("Misc","Medical Designs")
+ build_path = /obj/item/organ/liver/cybernetic/tier2
+
+/datum/design/cybernetic_liver/tier3
+ name = "Upgraded Cybernetic Liver"
+ desc = "An upgraded cybernetic liver."
+ id = "cybernetic_liver_tier3"
+ construction_time = 50
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 600, /datum/material/gold = 600, /datum/material/plasma = 1000, /datum/material/diamond = 2000)
+ build_path = /obj/item/organ/liver/cybernetic/tier3
+
+/datum/design/cybernetic_heart
+ name = "Basic Cybernetic Heart"
+ desc = "A basic cybernetic heart."
+ id = "cybernetic_heart"
+ build_type = PROTOLATHE | MECHFAB
+ construction_time = 40
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
+ build_path = /obj/item/organ/heart/cybernetic
+ category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
+/datum/design/cybernetic_heart/tier2
+ name = "Cybernetic Heart"
+ desc = "A cybernetic heart."
+ id = "cybernetic_heart_tier2"
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
+ build_path = /obj/item/organ/heart/cybernetic/tier2
+
+/datum/design/cybernetic_heart/tier3
+ name = "Upgraded Cybernetic Heart"
+ desc = "An upgraded cybernetic heart."
+ id = "cybernetic_heart_tier3"
+ construction_time = 50
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 600, /datum/material/gold = 600, /datum/material/plasma = 1000, /datum/material/diamond = 2000)
+ build_path = /obj/item/organ/heart/cybernetic/tier3
+
/datum/design/cybernetic_lungs
- name = "Cybernetic Lungs"
- desc = "A pair of cybernetic lungs."
+ name = "Basic Cybernetic Lungs"
+ desc = "A basic pair of cybernetic lungs."
id = "cybernetic_lungs"
build_type = PROTOLATHE | MECHFAB
+ construction_time = 40
materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/organ/lungs/cybernetic
- category = list("Misc","Medical Designs")
+ category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
-/datum/design/cybernetic_lungs_u
+/datum/design/cybernetic_lungs/tier2
+ name = "Cybernetic Lungs"
+ desc = "A pair of cybernetic lungs."
+ id = "cybernetic_lungs_tier2"
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
+ build_path = /obj/item/organ/lungs/cybernetic/tier2
+
+/datum/design/cybernetic_lungs/tier3
name = "Upgraded Cybernetic Lungs"
desc = "A pair of upgraded cybernetic lungs."
- id = "cybernetic_lungs_u"
+ id = "cybernetic_lungs_tier3"
+ construction_time = 50
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 600, /datum/material/gold = 600, /datum/material/plasma = 1000, /datum/material/diamond = 2000)
+ build_path = /obj/item/organ/lungs/cybernetic/tier3
+
+/datum/design/cybernetic_stomach
+ name = "Basic Cybernetic Stomach"
+ desc = "A basic cybernetic stomach."
+ id = "cybernetic_stomach"
build_type = PROTOLATHE | MECHFAB
- materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 500)
- build_path = /obj/item/organ/lungs/cybernetic/upgraded
- category = list("Misc","Medical Designs")
+ construction_time = 40
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
+ build_path = /obj/item/organ/stomach/cybernetic
+ category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
+/datum/design/cybernetic_stomach/tier2
+ name = "Cybernetic Stomach"
+ desc = "A cybernetic stomach."
+ id = "cybernetic_stomach_tier2"
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
+ build_path = /obj/item/organ/stomach/cybernetic/tier2
+
+/datum/design/cybernetic_stomach/tier3
+ name = "Upgraded Cybernetic Stomach"
+ desc = "An upgraded cybernetic stomach."
+ id = "cybernetic_stomach_tier3"
+ construction_time = 50
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 600, /datum/material/gold = 600, /datum/material/plasma = 1000, /datum/material/diamond = 2000)
+ build_path = /obj/item/organ/stomach/cybernetic/tier3
+
/datum/design/cybernetic_tongue
name = "Cybernetic tongue"
desc = "A fancy cybernetic tongue."
@@ -711,7 +754,7 @@
build_type = PROTOLATHE | MECHFAB
materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/organ/tongue/cybernetic
- category = list("Misc","Medical Designs")
+ category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
/datum/design/cybernetic_ears
diff --git a/code/modules/research/techweb/nodes/medical_nodes.dm b/code/modules/research/techweb/nodes/medical_nodes.dm
index 0eca3ea877..1d7d579dad 100644
--- a/code/modules/research/techweb/nodes/medical_nodes.dm
+++ b/code/modules/research/techweb/nodes/medical_nodes.dm
@@ -67,20 +67,27 @@
design_ids = list("implanter", "implantcase", "implant_chem", "implant_tracking", "locator", "c38_trac")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
+/datum/techweb_node/basic_cyber_organs
+ id = "basic_cyber_organs"
+ starting_node = TRUE
+ display_name = "Basic Cybernetic Organs"
+ description = "We have the techinology to force him to live a disgusting halflife."
+ design_ids = list("cybernetic_liver", "cybernetic_heart", "cybernetic_lungs", "cybernetic_stomach")
+
/datum/techweb_node/cyber_organs
id = "cyber_organs"
display_name = "Cybernetic Organs"
description = "We have the technology to rebuild him."
- prereq_ids = list("adv_biotech")
- design_ids = list("cybernetic_ears", "cybernetic_heart", "cybernetic_liver", "cybernetic_lungs", "cybernetic_tongue")
+ prereq_ids = list("biotech")
+ design_ids = list("cybernetic_ears", "cybernetic_heart_tier2", "cybernetic_liver_tier2", "cybernetic_lungs_tier2", "cybernetic_stomach_tier2")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000)
/datum/techweb_node/cyber_organs_upgraded
id = "cyber_organs_upgraded"
display_name = "Upgraded Cybernetic Organs"
description = "We have the technology to upgrade him."
- prereq_ids = list("cyber_organs")
- design_ids = list("cybernetic_ears_u", "cybernetic_heart_u", "cybernetic_liver_u", "cybernetic_lungs_u", "ipc_stomach")
+ prereq_ids = list("adv_biotech", "cyber_organs")
+ design_ids = list("cybernetic_ears_u", "cybernetic_heart_tier3", "cybernetic_liver_tier3", "cybernetic_lungs_tier3", "cybernetic_stomach_tier3")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500)
/datum/techweb_node/cyber_implants
diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm
index 4dba68ada3..2079e729f4 100644
--- a/code/modules/surgery/organs/heart.dm
+++ b/code/modules/surgery/organs/heart.dm
@@ -197,45 +197,67 @@
colour = "red"
/obj/item/organ/heart/cybernetic
- name = "cybernetic heart"
- desc = "An electronic device designed to mimic the functions of an organic human heart. Offers no benefit over an organic heart other than being easy to make."
+ name = "basic cybernetic heart"
+ desc = "A basic electronic device designed to mimic the functions of an organic human heart."
icon_state = "heart-c"
organ_flags = ORGAN_SYNTHETIC
+ maxHealth = STANDARD_ORGAN_THRESHOLD*0.75 //This also hits defib timer, so a bit higher than its less important counterparts
+
+ var/dose_available = FALSE
+ var/rid = /datum/reagent/medicine/epinephrine
+ var/ramount = 10
+ var/emp_vulnerability = 80 //Chance of permanent effects if emp-ed.
+
+/obj/item/organ/heart/cybernetic/tier2
+ name = "cybernetic heart"
+ desc = "An electronic device designed to mimic the functions of an organic human heart. Also holds an emergency dose of epinephrine, used automatically after facing severe trauma."
+ icon_state = "heart-c-u"
+ maxHealth = 1.5 * STANDARD_ORGAN_THRESHOLD
+ dose_available = TRUE
+ emp_vulnerability = 40
+
+/obj/item/organ/heart/cybernetic/tier3
+ name = "upgraded cybernetic heart"
+ desc = "An electronic device designed to mimic the functions of an organic human heart. Also holds an emergency dose of epinephrine, used automatically after facing severe trauma. This upgraded model can regenerate its dose after use."
+ icon_state = "heart-c-u2"
+ maxHealth = 2 * STANDARD_ORGAN_THRESHOLD
+ dose_available = TRUE
+ rid = /datum/reagent/medicine/atropine
+ ramount = 5
+ emp_vulnerability = 20
/obj/item/organ/heart/cybernetic/emp_act(severity)
. = ..()
+
+ // If the owner doesn't need a heart, we don't need to do anything with it.
+ if(!owner.needs_heart())
+ return
+
if(. & EMP_PROTECT_SELF)
return
- Stop()
- addtimer(CALLBACK(src, .proc/Restart), 0.2*severity SECONDS)
- damage += severity
+ if(!COOLDOWN_FINISHED(src, severe_cooldown)) //So we cant just spam emp to kill people.
+ owner.Dizzy(10)
+ owner.losebreath += 10
+ COOLDOWN_START(src, severe_cooldown, 20 SECONDS)
+ if(prob(emp_vulnerability/severity)) //Chance of permanent effects
+ organ_flags |= ORGAN_SYNTHETIC_EMP //Starts organ faliure - gonna need replacing soon.
+ Stop()
+ owner.visible_message("[owner] clutches at [owner.p_their()] chest as if [owner.p_their()] heart is stopping!", \
+ "You feel a terrible pain in your chest, as if your heart has stopped!")
+ addtimer(CALLBACK(src, .proc/Restart), 10 SECONDS)
-/obj/item/organ/heart/cybernetic/upgraded
- name = "upgraded cybernetic heart"
- desc = "An electronic device designed to mimic the functions of an organic human heart. Also holds an emergency dose of epinephrine, used automatically after facing severe trauma. This upgraded model can regenerate its dose after use."
- icon_state = "heart-c-u"
- maxHealth = 2 * STANDARD_ORGAN_THRESHOLD
-
- //I put it on upgraded for now.
- var/dose_available = TRUE
- var/rid = /datum/reagent/medicine/epinephrine
- var/ramount = 10
-
-/obj/item/organ/heart/cybernetic/upgraded/on_life()
+/obj/item/organ/heart/cybernetic/on_life(delta_time, times_fired)
. = ..()
- if(!.)
- return
if(dose_available && owner.health <= owner.crit_threshold && !owner.reagents.has_reagent(rid))
- owner.reagents.add_reagent(rid, ramount)
used_dose()
- if(ramount < 10) //eats your nutrition to regen epinephrine
- var/regen_amount = owner.nutrition/2000
- owner.adjust_nutrition(-regen_amount)
- ramount += regen_amount
-/obj/item/organ/heart/cybernetic/upgraded/proc/used_dose()
+/obj/item/organ/heart/cybernetic/proc/used_dose()
+ owner.reagents.add_reagent(rid, ramount)
+ dose_available = FALSE
+
+/obj/item/organ/heart/cybernetic/tier3/used_dose()
+ . = ..()
addtimer(VARSET_CALLBACK(src, dose_available, TRUE), 5 MINUTES)
- ramount = 0
/obj/item/organ/heart/ipc
name = "IPC heart"
diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm
index 749f5a8c38..afc770efae 100755
--- a/code/modules/surgery/organs/liver.dm
+++ b/code/modules/surgery/organs/liver.dm
@@ -98,23 +98,41 @@
icon_state = "liver-c"
/obj/item/organ/liver/cybernetic
- name = "cybernetic liver"
+ name = "basic cybernetic liver"
icon_state = "liver-c"
- desc = "An electronic device designed to mimic the functions of a human liver. It has no benefits over an organic liver, but is easy to produce."
+ desc = "A very basic device designed to mimic the functions of a human liver. Handles toxins slightly worse than an organic liver."
organ_flags = ORGAN_SYNTHETIC
- maxHealth = 1.1 * STANDARD_ORGAN_THRESHOLD
+ toxTolerance = 0.3 * LIVER_DEFAULT_TOX_TOLERANCE //little less than 1u of toxin purging
+ toxLethality = 1.1 * LIVER_DEFAULT_TOX_LETHALITY
+ maxHealth = STANDARD_ORGAN_THRESHOLD*0.5
-/obj/item/organ/liver/cybernetic/upgraded
- name = "upgraded cybernetic liver"
+ var/emp_vulnerability = 80 //Chance of permanent effects if emp-ed.
+
+/obj/item/organ/liver/cybernetic/tier2
+ name = "cybernetic liver"
icon_state = "liver-c-u"
- desc = "An upgraded version of the cybernetic liver, designed to improve upon organic livers. It is resistant to alcohol poisoning and is very robust at filtering toxins."
+ desc = "An electronic device designed to mimic the functions of a human liver. Handles toxins slightly better than an organic liver."
+ maxHealth = 1.5 * STANDARD_ORGAN_THRESHOLD
+ toxTolerance = 2 * LIVER_DEFAULT_TOX_TOLERANCE //6 units of toxin purging
+ toxLethality = 0.8 * LIVER_DEFAULT_TOX_LETHALITY //20% less damage than a normal liver
+ emp_vulnerability = 40
+
+/obj/item/organ/liver/cybernetic/tier3
+ name = "upgraded cybernetic liver"
+ icon_state = "liver-c-u2"
+ desc = "An upgraded version of the cybernetic liver, designed to improve further upon organic livers. It is resistant to alcohol poisoning and is very robust at filtering toxins."
alcohol_tolerance = 0.001
maxHealth = 2 * STANDARD_ORGAN_THRESHOLD
- toxTolerance = 15 //can shrug off up to 15u of toxins
- toxLethality = 0.008 //20% less damage than a normal liver
+ toxTolerance = 5 * LIVER_DEFAULT_TOX_TOLERANCE //15 units of toxin purging
+ toxLethality = 0.4 * LIVER_DEFAULT_TOX_LETHALITY //60% less damage than a normal liver
+ emp_vulnerability = 20
/obj/item/organ/liver/cybernetic/emp_act(severity)
. = ..()
if(. & EMP_PROTECT_SELF)
return
- damage += severity
+ if(!COOLDOWN_FINISHED(src, severe_cooldown)) //So we cant just spam emp to kill people.
+ owner.adjustToxLoss(10)
+ COOLDOWN_START(src, severe_cooldown, 10 SECONDS)
+ if(prob(emp_vulnerability/severity)) //Chance of permanent effects
+ organ_flags |= ORGAN_SYNTHETIC_EMP //Starts organ faliure - gonna need replacing soon.
diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm
index 083c71fda2..73fbe3412c 100644
--- a/code/modules/surgery/organs/lungs.dm
+++ b/code/modules/surgery/organs/lungs.dm
@@ -547,33 +547,52 @@
maxHealth = INFINITY//I don't understand how plamamen work, so I'm not going to try t give them special lungs atm
/obj/item/organ/lungs/cybernetic
- name = "cybernetic lungs"
- desc = "A cybernetic version of the lungs found in traditional humanoid entities. It functions the same as an organic lung and is merely meant as a replacement."
+ name = "basic cybernetic lungs"
+ desc = "A basic cybernetic version of the lungs found in traditional humanoid entities."
icon_state = "lungs-c"
organ_flags = ORGAN_SYNTHETIC
- maxHealth = 400
- safe_oxygen_min = 13
+ maxHealth = STANDARD_ORGAN_THRESHOLD * 0.5
-/obj/item/organ/lungs/cybernetic/emp_act()
- . = ..()
- if(. & EMP_PROTECT_SELF)
- return
- owner.losebreath = 20
- owner.adjustOrganLoss(ORGAN_SLOT_LUNGS, 25)
+ var/emp_vulnerability = 80 //Chance of permanent effects if emp-ed.
-/obj/item/organ/lungs/cybernetic/upgraded
- name = "upgraded cybernetic lungs"
- desc = "A more advanced version of the stock cybernetic lungs. They are capable of filtering out lower levels of toxins and carbon dioxide."
+/obj/item/organ/lungs/cybernetic/tier2
+ name = "cybernetic lungs"
+ desc = "A cybernetic version of the lungs found in traditional humanoid entities. Allows for greater intakes of oxygen than organic lungs, requiring slightly less pressure."
icon_state = "lungs-c-u"
- safe_toxins_max = 20
- safe_co2_max = 20
- safe_oxygen_max = 250
+ maxHealth = 1.5 * STANDARD_ORGAN_THRESHOLD
+ safe_oxygen_min = 13
+ safe_oxygen_max = 100
+ emp_vulnerability = 40
+
+/obj/item/organ/lungs/cybernetic/tier3
+ name = "upgraded cybernetic lungs"
+ desc = "A more advanced version of the stock cybernetic lungs. Features the ability to filter out various airbourne toxins and carbon dioxide even at heavy levels."
+ icon_state = "lungs-c-u2"
+ maxHealth = 2 * STANDARD_ORGAN_THRESHOLD
+ safe_oxygen_min = 4 //You could literally be breathing the thinnest amount of oxygen and be fine
+ safe_oxygen_max = 250 //Or be in an enriched oxygen room for that matter
+ safe_toxins_max = 50
+ safe_co2_max = 50
+ SA_para_min = 50
+ SA_sleep_min = 100
+ BZ_trip_balls_min = 50
+ emp_vulnerability = 20
cold_level_1_threshold = 200
cold_level_2_threshold = 140
cold_level_3_threshold = 100
maxHealth = 550
+/obj/item/organ/lungs/cybernetic/emp_act(severity)
+ . = ..()
+ if(. & EMP_PROTECT_SELF)
+ return
+ if(!COOLDOWN_FINISHED(src, severe_cooldown)) //So we cant just spam emp to kill people.
+ owner.losebreath += 20
+ COOLDOWN_START(src, severe_cooldown, 30 SECONDS)
+ if(prob(emp_vulnerability/severity)) //Chance of permanent effects
+ organ_flags |= ORGAN_SYNTHETIC_EMP //Starts organ faliure - gonna need replacing soon.
+
/obj/item/organ/lungs/ashwalker
name = "ash lungs"
desc = "blackened lungs identical from specimens recovered from lavaland, unsuited to higher air pressures."
diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm
index cb4de69fbd..6cdeadcbb3 100644
--- a/code/modules/surgery/organs/organ_internal.dm
+++ b/code/modules/surgery/organs/organ_internal.dm
@@ -16,6 +16,7 @@
var/decay_factor = 0 //same as above but when without a living owner, set to 0 for generic organs
var/high_threshold = STANDARD_ORGAN_THRESHOLD * 0.45 //when severe organ damage occurs
var/low_threshold = STANDARD_ORGAN_THRESHOLD * 0.1 //when minor organ damage occurs
+ var/severe_cooldown //cooldown for severe effects, used for synthetic organ emp effects.
///Organ variables for determining what we alert the owner with when they pass/clear the damage thresholds
var/prev_damage = 0
@@ -153,6 +154,9 @@
/obj/item/organ/proc/on_life() //repair organ damage if the organ is not failing or synthetic
if(organ_flags & ORGAN_FAILING || !owner)
return FALSE
+ if(organ_flags & ORGAN_SYNTHETIC_EMP) //Synthetic organ has been emped, is now failing.
+ applyOrganDamage(maxHealth * decay_factor)
+ return
if(!is_cold() && damage)
///Damage decrements by a percent of its maxhealth
var/healing_amount = -(maxHealth * healing_factor)
diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm
index ba7b950602..f286c294fc 100644
--- a/code/modules/surgery/organs/stomach.dm
+++ b/code/modules/surgery/organs/stomach.dm
@@ -93,6 +93,40 @@
icon_state = "stomach-p"
desc = "A strange crystal that is responsible for metabolizing the unseen energy force that feeds plasmamen."
+/obj/item/organ/stomach/cybernetic
+ name = "basic cybernetic stomach"
+ icon_state = "stomach-c"
+ desc = "A basic device designed to mimic the functions of a human stomach"
+ organ_flags = ORGAN_SYNTHETIC
+ maxHealth = STANDARD_ORGAN_THRESHOLD * 0.5
+ var/emp_vulnerability = 80 //Chance of permanent effects if emp-ed.
+
+/obj/item/organ/stomach/cybernetic/tier2
+ name = "cybernetic stomach"
+ icon_state = "stomach-c-u"
+ desc = "An electronic device designed to mimic the functions of a human stomach. Handles disgusting food a bit better."
+ maxHealth = 1.5 * STANDARD_ORGAN_THRESHOLD
+ disgust_metabolism = 2
+ emp_vulnerability = 40
+
+/obj/item/organ/stomach/cybernetic/tier3
+ name = "upgraded cybernetic stomach"
+ icon_state = "stomach-c-u2"
+ desc = "An upgraded version of the cybernetic stomach, designed to improve further upon organic stomachs. Handles disgusting food very well."
+ maxHealth = 2 * STANDARD_ORGAN_THRESHOLD
+ disgust_metabolism = 3
+ emp_vulnerability = 20
+
+/obj/item/organ/stomach/cybernetic/emp_act(severity)
+ . = ..()
+ if(. & EMP_PROTECT_SELF)
+ return
+ if(!COOLDOWN_FINISHED(src, severe_cooldown)) //So we cant just spam emp to kill people.
+ owner.vomit(stun = FALSE)
+ COOLDOWN_START(src, severe_cooldown, 10 SECONDS)
+ if(prob(emp_vulnerability/severity)) //Chance of permanent effects
+ organ_flags |= ORGAN_SYNTHETIC_EMP //Starts organ faliure - gonna need replacing soon.
+
/obj/item/organ/stomach/ipc
name = "ipc cell"
icon_state = "stomach-ipc"
diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi
index 0460934eee163988b724d4398cf7cade6593aadd..52172bbe292a5303fda2eaa53d57428de1d43aa0 100755
GIT binary patch
literal 45213
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
ZNBJ{g!`6M7mjnWSo;=joEYYwI`yU6Nb`Agl
literal 44539
zcmbrlbx<8m6g@b&1_