mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 16:44:43 +01:00
Bargain bin organ quirks: Prosthetic organ and Tin Man (#76498)
## About The Pull Request Basically, the organ equivalents of prosthetic limb and quadruple amputee. These replace your organs with absolutely terrible cybernetic counterparts which also have absolutely no resistance against EMPs.  ### ADDITIONAL FUN Surplus organs are so awful that if surgically removed while not EMPed nor failing, they *explode*! ## Why It's Good For The Game More character customization, and more suffering for hardcore random players. ## Changelog 🆑 add: Added two new quirks, prosthetic organ and tin man. Essentially, they replace organs with bad bad not good cybernetic counterparts. /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
This commit is contained in:
@@ -268,6 +268,7 @@
|
||||
log_combat(user, target, "surgically removed [target_organ.name] from", addition="COMBAT MODE: [uppertext(user.combat_mode)]")
|
||||
target_organ.Remove(target)
|
||||
target_organ.forceMove(get_turf(target))
|
||||
target_organ.on_surgical_removal(user, target, target_zone, tool)
|
||||
else
|
||||
display_results(
|
||||
user,
|
||||
|
||||
@@ -198,6 +198,14 @@ INITIALIZE_IMMEDIATE(/obj/item/organ)
|
||||
/obj/item/organ/proc/on_find(mob/living/finder)
|
||||
return
|
||||
|
||||
/**
|
||||
* Proc that gets called when the organ is surgically removed by someone, can be used for special effects
|
||||
* Currently only used so surplus organs can explode when surgically removed.
|
||||
*/
|
||||
/obj/item/organ/proc/on_surgical_removal(mob/living/user, mob/living/carbon/old_owner, target_zone, obj/item/tool)
|
||||
SHOULD_CALL_PARENT(TRUE)
|
||||
SEND_SIGNAL(src, COMSIG_ORGAN_SURGICALLY_REMOVED, user, old_owner, target_zone, tool)
|
||||
|
||||
/obj/item/organ/process(seconds_per_tick, times_fired)
|
||||
return
|
||||
|
||||
@@ -220,6 +228,9 @@ INITIALIZE_IMMEDIATE(/obj/item/organ)
|
||||
return
|
||||
|
||||
if(damage > high_threshold)
|
||||
if(IS_ROBOTIC_ORGAN(src))
|
||||
. += span_warning("[src] seems to be malfunctioning.")
|
||||
return
|
||||
. += span_warning("[src] is starting to look discolored.")
|
||||
|
||||
///Used as callbacks by object pooling
|
||||
@@ -380,7 +391,7 @@ INITIALIZE_IMMEDIATE(/obj/item/organ)
|
||||
/obj/item/organ/proc/get_status_text()
|
||||
var/status = ""
|
||||
if(owner.has_reagent(/datum/reagent/inverse/technetium))
|
||||
status = "<font color='#E42426'> organ is [round((damage/maxHealth)*100, 1)]% damaged.</font>"
|
||||
status = "<font color='#E42426'>[round((damage/maxHealth)*100, 1)]% damaged.</font>"
|
||||
else if(organ_flags & ORGAN_FAILING)
|
||||
status = "<font color='#cc3333'>Non-Functional</font>"
|
||||
else if(damage > high_threshold)
|
||||
|
||||
@@ -209,24 +209,6 @@
|
||||
var/ramount = 10
|
||||
var/emp_vulnerability = 80 //Chance of permanent effects if emp-ed.
|
||||
|
||||
/obj/item/organ/internal/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-on"
|
||||
base_icon_state = "heart-c-u"
|
||||
maxHealth = 1.5 * STANDARD_ORGAN_THRESHOLD
|
||||
dose_available = TRUE
|
||||
emp_vulnerability = 40
|
||||
|
||||
/obj/item/organ/internal/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-on"
|
||||
base_icon_state = "heart-c-u2"
|
||||
maxHealth = 2 * STANDARD_ORGAN_THRESHOLD
|
||||
dose_available = TRUE
|
||||
emp_vulnerability = 20
|
||||
|
||||
/obj/item/organ/internal/heart/cybernetic/emp_act(severity)
|
||||
. = ..()
|
||||
if(. & EMP_PROTECT_SELF)
|
||||
@@ -258,10 +240,42 @@
|
||||
owner.reagents.add_reagent(rid, ramount)
|
||||
dose_available = FALSE
|
||||
|
||||
/obj/item/organ/internal/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-on"
|
||||
base_icon_state = "heart-c-u"
|
||||
maxHealth = 1.5 * STANDARD_ORGAN_THRESHOLD
|
||||
dose_available = TRUE
|
||||
emp_vulnerability = 40
|
||||
|
||||
/obj/item/organ/internal/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-on"
|
||||
base_icon_state = "heart-c-u2"
|
||||
maxHealth = 2 * STANDARD_ORGAN_THRESHOLD
|
||||
dose_available = TRUE
|
||||
emp_vulnerability = 20
|
||||
|
||||
/obj/item/organ/internal/heart/cybernetic/tier3/used_dose()
|
||||
. = ..()
|
||||
addtimer(VARSET_CALLBACK(src, dose_available, TRUE), 5 MINUTES)
|
||||
|
||||
/obj/item/organ/internal/heart/cybernetic/surplus
|
||||
name = "surplus prosthetic heart"
|
||||
desc = "A fragile mockery of a human heart that resembles a water pump more than an actual heart. \
|
||||
Offers no protection against EMPs."
|
||||
icon_state = "heart-c-s-on"
|
||||
base_icon_state = "heart-c-s"
|
||||
maxHealth = STANDARD_ORGAN_THRESHOLD*0.5
|
||||
emp_vulnerability = 100
|
||||
|
||||
//surplus organs are so awful that they explode when removed, unless failing
|
||||
/obj/item/organ/internal/heart/cybernetic/surplus/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/dangerous_surgical_removal)
|
||||
|
||||
/obj/item/organ/internal/heart/freedom
|
||||
name = "heart of freedom"
|
||||
desc = "This heart pumps with the passion to give... something freedom."
|
||||
|
||||
@@ -247,11 +247,21 @@
|
||||
desc = "A very basic device designed to mimic the functions of a human liver. Handles toxins slightly worse than an organic liver."
|
||||
icon_state = "liver-c"
|
||||
organ_flags = ORGAN_ROBOTIC
|
||||
maxHealth = STANDARD_ORGAN_THRESHOLD*0.5
|
||||
toxTolerance = 2
|
||||
liver_resistance = 0.9 * LIVER_DEFAULT_TOX_RESISTANCE // -10%
|
||||
maxHealth = STANDARD_ORGAN_THRESHOLD*0.5
|
||||
var/emp_vulnerability = 80 //Chance of permanent effects if emp-ed.
|
||||
|
||||
/obj/item/organ/internal/liver/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.adjustToxLoss(10)
|
||||
COOLDOWN_START(src, severe_cooldown, 10 SECONDS)
|
||||
if(prob(emp_vulnerability/severity)) //Chance of permanent effects
|
||||
organ_flags |= ORGAN_EMP //Starts organ faliure - gonna need replacing soon.
|
||||
|
||||
/obj/item/organ/internal/liver/cybernetic/tier2
|
||||
name = "cybernetic liver"
|
||||
desc = "An electronic device designed to mimic the functions of a human liver. Handles toxins slightly better than an organic liver."
|
||||
@@ -265,21 +275,29 @@
|
||||
name = "upgraded cybernetic liver"
|
||||
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."
|
||||
icon_state = "liver-c-u2"
|
||||
alcohol_tolerance = 0.001
|
||||
alcohol_tolerance = ALCOHOL_RATE * 0.2
|
||||
maxHealth = 2 * STANDARD_ORGAN_THRESHOLD
|
||||
toxTolerance = 10 //can shrug off up to 10u of toxins
|
||||
liver_resistance = 1.5 * LIVER_DEFAULT_TOX_RESISTANCE // +50%
|
||||
emp_vulnerability = 20
|
||||
|
||||
/obj/item/organ/internal/liver/cybernetic/emp_act(severity)
|
||||
/obj/item/organ/internal/liver/cybernetic/surplus
|
||||
name = "surplus prosthetic liver"
|
||||
desc = "A very cheap prosthetic liver, mass produced for low-functioning alcoholics... It looks more like a water filter than \
|
||||
an actual liver. \
|
||||
Very fragile, absolutely terrible at filtering toxins and substantially weak to alcohol. \
|
||||
Offers no protection against EMPs."
|
||||
icon_state = "liver-c-s"
|
||||
maxHealth = STANDARD_ORGAN_THRESHOLD * 0.35
|
||||
alcohol_tolerance = ALCOHOL_RATE * 2 // can barely handle alcohol
|
||||
toxTolerance = 1 //basically can't shrug off any toxins
|
||||
liver_resistance = 0.75 * LIVER_DEFAULT_TOX_RESISTANCE // -25%
|
||||
emp_vulnerability = 100
|
||||
|
||||
//surplus organs are so awful that they explode when removed, unless failing
|
||||
/obj/item/organ/internal/liver/cybernetic/surplus/Initialize(mapload)
|
||||
. = ..()
|
||||
if(. & EMP_PROTECT_SELF)
|
||||
return
|
||||
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_EMP //Starts organ faliure - gonna need replacing soon.
|
||||
AddElement(/datum/element/dangerous_surgical_removal)
|
||||
|
||||
#undef HAS_SILENT_TOXIN
|
||||
#undef HAS_NO_TOXIN
|
||||
|
||||
@@ -822,9 +822,18 @@
|
||||
icon_state = "lungs-c"
|
||||
organ_flags = ORGAN_ROBOTIC
|
||||
maxHealth = STANDARD_ORGAN_THRESHOLD * 0.5
|
||||
|
||||
var/emp_vulnerability = 80 //Chance of permanent effects if emp-ed.
|
||||
|
||||
/obj/item/organ/internal/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_EMP //Starts organ faliure - gonna need replacing soon.
|
||||
|
||||
/obj/item/organ/internal/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."
|
||||
@@ -847,16 +856,18 @@
|
||||
cold_level_2_threshold = 140
|
||||
cold_level_3_threshold = 100
|
||||
|
||||
/obj/item/organ/internal/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_EMP //Starts organ faliure - gonna need replacing soon.
|
||||
/obj/item/organ/internal/lungs/cybernetic/surplus
|
||||
name = "surplus prosthetic lungs"
|
||||
desc = "Two fragile, inflatable sacks of air that only barely mimic the function of human lungs. \
|
||||
Offer no protection against EMPs."
|
||||
icon_state = "lungs-c-s"
|
||||
maxHealth = 0.35 * STANDARD_ORGAN_THRESHOLD
|
||||
emp_vulnerability = 100
|
||||
|
||||
//surplus organs are so awful that they explode when removed, unless failing
|
||||
/obj/item/organ/internal/lungs/cybernetic/surplus/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/dangerous_surgical_removal)
|
||||
|
||||
/obj/item/organ/internal/lungs/lavaland
|
||||
name = "blackened frilled lungs" // blackened from necropolis exposure
|
||||
|
||||
@@ -291,8 +291,18 @@
|
||||
icon_state = "stomach-c"
|
||||
organ_flags = ORGAN_ROBOTIC
|
||||
maxHealth = STANDARD_ORGAN_THRESHOLD * 0.5
|
||||
var/emp_vulnerability = 80 //Chance of permanent effects if emp-ed.
|
||||
metabolism_efficiency = 0.035 // not as good at digestion
|
||||
var/emp_vulnerability = 80 //Chance of permanent effects if emp-ed.
|
||||
|
||||
/obj/item/organ/internal/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_EMP //Starts organ faliure - gonna need replacing soon.
|
||||
|
||||
/obj/item/organ/internal/stomach/cybernetic/tier2
|
||||
name = "cybernetic stomach"
|
||||
@@ -312,15 +322,19 @@
|
||||
emp_vulnerability = 20
|
||||
metabolism_efficiency = 0.1
|
||||
|
||||
/obj/item/organ/internal/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_EMP //Starts organ faliure - gonna need replacing soon.
|
||||
/obj/item/organ/internal/stomach/cybernetic/surplus
|
||||
name = "surplus prosthetic stomach"
|
||||
desc = "A mechanical plastic oval that utilizes sulfuric acid instead of stomach acid. \
|
||||
Very fragile, with painfully slow metabolism.\
|
||||
Offers no protection against EMPs."
|
||||
icon_state = "stomach-c-s"
|
||||
maxHealth = STANDARD_ORGAN_THRESHOLD * 0.35
|
||||
emp_vulnerability = 100
|
||||
metabolism_efficiency = 0.025
|
||||
|
||||
//surplus organs are so awful that they explode when removed, unless failing
|
||||
/obj/item/organ/internal/stomach/cybernetic/surplus/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/dangerous_surgical_removal)
|
||||
|
||||
#undef STOMACH_METABOLISM_CONSTANT
|
||||
|
||||
Reference in New Issue
Block a user