Ports a significant amount of the tg cybernetic organ code while making some additional changes to their power
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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("<span class='danger'>[owner] clutches at [owner.p_their()] chest as if [owner.p_their()] heart is stopping!</span>", \
|
||||
"<span class='userdanger'>You feel a terrible pain in your chest, as if your heart has stopped!</span>")
|
||||
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"
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Reference in New Issue
Block a user