mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-26 10:02:28 +00:00
Le Kidney Beans (#7672)
rscadd: "Adds the ability to remove appendix and other organs in character setup."
rscadd: "Adds two kidneys! Splits the work up between the two organs."
Also adds the ability for a mechanical liver and kidneys,appendix
This commit is contained in:
@@ -74,7 +74,8 @@
|
||||
#define BP_LUNGS "lungs"
|
||||
#define BP_BRAIN "brain"
|
||||
#define BP_LIVER "liver"
|
||||
#define BP_KIDNEYS "kidneys"
|
||||
#define BP_LKIDNEY "left kidney"
|
||||
#define BP_RKIDNEY "right kidney"
|
||||
#define BP_STOMACH "stomach"
|
||||
#define BP_APPENDIX "appendix"
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
var/list/products = list(
|
||||
BP_HEART = list(/obj/item/organ/internal/heart, 50),
|
||||
BP_LUNGS = list(/obj/item/organ/internal/lungs, 40),
|
||||
BP_KIDNEYS = list(/obj/item/organ/internal/kidneys,20),
|
||||
BP_LKIDNEY = list(/obj/item/organ/internal/kidneys,20),
|
||||
BP_EYES = list(/obj/item/organ/internal/eyes, 30),
|
||||
BP_LIVER = list(/obj/item/organ/internal/liver, 50)
|
||||
)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
if(!user.is_wizard())
|
||||
if(istype(user, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/obj/item/organ/O = H.internal_organs_by_name[pick(BP_EYES,"appendix",BP_KIDNEYS,BP_LIVER, BP_HEART, BP_LUNGS, BP_BRAIN)]
|
||||
var/obj/item/organ/O = H.internal_organs_by_name[pick(BP_EYES,BP_APPENDIX,BP_LKIDNEY,BP_RKIDNEY,BP_LIVER, BP_HEART, BP_LUNGS, BP_BRAIN)]
|
||||
if(O == null)
|
||||
to_chat(user, span("notice", "You can't make any sense of the arcane glyphs. . . maybe you should try again."))
|
||||
else
|
||||
|
||||
@@ -236,6 +236,14 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
organ_name = "heart"
|
||||
if(BP_EYES)
|
||||
organ_name = "eyes"
|
||||
if(BP_APPENDIX)
|
||||
organ_name = "appendix"
|
||||
if(BP_LKIDNEY)
|
||||
organ_name = "left kidneys"
|
||||
if(BP_RKIDNEY)
|
||||
organ_name = "right kidneys"
|
||||
if(BP_LIVER)
|
||||
organ_name = "liver"
|
||||
|
||||
if(status == "cyborg")
|
||||
++ind
|
||||
@@ -270,6 +278,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
out += "\tRetinal overlayed [organ_name]"
|
||||
else
|
||||
out += "\tMechanically assisted [organ_name]"
|
||||
else if(status == "removed")
|
||||
out += "\tRemoved [organ_name]"
|
||||
out += "<br>"
|
||||
if(!ind)
|
||||
out += "\[...\]<br><br>"
|
||||
else
|
||||
@@ -617,7 +628,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["organs"])
|
||||
var/organ_name = input(user, "Which internal function do you want to change?") as null|anything in list(BP_HEART, BP_EYES)
|
||||
var/organ_name = input(user, "Which internal function do you want to change?") as null|anything in list(BP_HEART, BP_EYES, BP_APPENDIX, BP_LKIDNEY, BP_LIVER, BP_RKIDNEY)
|
||||
if(!organ_name) return
|
||||
|
||||
var/organ = null
|
||||
@@ -626,8 +637,16 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
organ = BP_HEART
|
||||
if(BP_EYES)
|
||||
organ = BP_EYES
|
||||
if(BP_APPENDIX)
|
||||
organ = BP_APPENDIX
|
||||
if(BP_LKIDNEY)
|
||||
organ = BP_LKIDNEY
|
||||
if(BP_RKIDNEY)
|
||||
organ = BP_RKIDNEY
|
||||
if(BP_LIVER)
|
||||
organ = BP_LIVER
|
||||
|
||||
var/new_state = input(user, "What state do you wish the organ to be in?") as null|anything in list("Normal","Assisted","Mechanical")
|
||||
var/new_state = input(user, "What state do you wish the organ to be in?") as null|anything in list("Normal","Assisted","Mechanical", "Removed")
|
||||
if(!new_state) return
|
||||
|
||||
switch(new_state)
|
||||
@@ -637,6 +656,11 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
pref.organ_data[organ] = "assisted"
|
||||
if("Mechanical")
|
||||
pref.organ_data[organ] = "mechanical"
|
||||
if("Removed")
|
||||
if((organ in list(BP_HEART, BP_LIVER)) || (organ == BP_LKIDNEY && pref.organ_data[BP_RKIDNEY] == "removed") || (organ == BP_RKIDNEY && pref.organ_data[BP_LKIDNEY]))
|
||||
to_chat(user, "<span class='notice'>You cannot start without a [organ].</span>")
|
||||
return
|
||||
pref.organ_data[organ] = "removed"
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["reset_organs"])
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
var/list/pick_organs = shuffle(internal_organs.Copy())
|
||||
|
||||
// Prioritize damaging our filtration organs first.
|
||||
var/obj/item/organ/internal/kidneys/kidneys = internal_organs_by_name[BP_KIDNEYS]
|
||||
var/obj/item/organ/internal/kidneys/kidneys = internal_organs_by_name[pick(BP_LKIDNEY,BP_RKIDNEY)]
|
||||
if(kidneys)
|
||||
pick_organs -= kidneys
|
||||
pick_organs.Insert(1, kidneys)
|
||||
|
||||
@@ -110,6 +110,8 @@
|
||||
I.mechassist()
|
||||
if ("mechanical")
|
||||
I.robotize()
|
||||
if ("removed")
|
||||
qdel(I)
|
||||
|
||||
if (apply_markings)
|
||||
for(var/N in organs_by_name)
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
BP_HEART = /obj/item/organ/internal/heart/vox,
|
||||
BP_LUNGS = /obj/item/organ/internal/lungs/vox,
|
||||
BP_LIVER = /obj/item/organ/internal/liver/vox,
|
||||
BP_KIDNEYS = /obj/item/organ/internal/kidneys/vox,
|
||||
BP_LKIDNEY = /obj/item/organ/internal/kidneys/vox,
|
||||
BP_STOMACH = /obj/item/organ/internal/stomach,
|
||||
BP_BRAIN = /obj/item/organ/internal/brain,
|
||||
BP_EYES = /obj/item/organ/internal/eyes,
|
||||
|
||||
@@ -176,7 +176,8 @@
|
||||
BP_HEART = /obj/item/organ/internal/heart,
|
||||
BP_LUNGS = /obj/item/organ/internal/lungs,
|
||||
BP_LIVER = /obj/item/organ/internal/liver,
|
||||
BP_KIDNEYS = /obj/item/organ/internal/kidneys,
|
||||
BP_LKIDNEY = /obj/item/organ/internal/kidneys/left,
|
||||
BP_RKIDNEY = /obj/item/organ/internal/kidneys/right,
|
||||
BP_STOMACH = /obj/item/organ/internal/stomach,
|
||||
BP_BRAIN = /obj/item/organ/internal/brain,
|
||||
BP_APPENDIX = /obj/item/organ/internal/appendix,
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
BP_HEART = /obj/item/organ/internal/heart/skrell,
|
||||
BP_LUNGS = /obj/item/organ/internal/lungs/skrell,
|
||||
BP_LIVER = /obj/item/organ/internal/liver/skrell,
|
||||
BP_KIDNEYS = /obj/item/organ/internal/kidneys/skrell,
|
||||
BP_LKIDNEY = /obj/item/organ/internal/kidneys/skrell,
|
||||
BP_BRAIN = /obj/item/organ/internal/brain/skrell,
|
||||
BP_STOMACH = /obj/item/organ/internal/stomach,
|
||||
BP_APPENDIX = /obj/item/organ/internal/appendix,
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
BP_HEART = /obj/item/organ/internal/heart,
|
||||
BP_LUNGS = /obj/item/organ/internal/lungs,
|
||||
BP_LIVER = /obj/item/organ/internal/liver,
|
||||
BP_KIDNEYS = /obj/item/organ/internal/kidneys/autakh,
|
||||
BP_LKIDNEY = /obj/item/organ/internal/kidneys/autakh,
|
||||
BP_STOMACH = /obj/item/organ/internal/stomach,
|
||||
BP_BRAIN = /obj/item/organ/internal/brain,
|
||||
BP_EYES = /obj/item/organ/internal/eyes/autakh,
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
BP_HEART = /obj/item/organ/internal/heart/vaurca,
|
||||
"phoron reserve tank" = /obj/item/organ/vaurca/preserve,
|
||||
BP_LIVER = /obj/item/organ/internal/liver/vaurca,
|
||||
BP_KIDNEYS = /obj/item/organ/internal/kidneys/vaurca,
|
||||
BP_LKIDNEY = /obj/item/organ/internal/kidneys/vaurca,
|
||||
BP_STOMACH = /obj/item/organ/internal/stomach,
|
||||
BP_BRAIN = /obj/item/organ/internal/brain/vaurca,
|
||||
BP_EYES = /obj/item/organ/internal/eyes/vaurca
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/obj/item/organ/internal/kidneys
|
||||
name = "kidneys"
|
||||
name = "kidney"
|
||||
icon_state = "kidneys"
|
||||
gender = PLURAL
|
||||
organ_tag = BP_KIDNEYS
|
||||
organ_tag = BP_LKIDNEY
|
||||
parent_organ = BP_GROIN
|
||||
robotic_name = "prosthetic kidneys"
|
||||
robotic_sprite = "kidneys-prosthetic"
|
||||
@@ -25,21 +25,42 @@
|
||||
var/datum/reagent/coffee = locate(/datum/reagent/drink/coffee) in owner.reagents.reagent_list
|
||||
if(coffee)
|
||||
if(is_bruised())
|
||||
owner.adjustToxLoss(0.1 * PROCESS_ACCURACY)
|
||||
owner.adjustToxLoss(0.1 * PROCESS_ACCURACY / 2)
|
||||
else if(is_broken())
|
||||
owner.adjustToxLoss(0.3 * PROCESS_ACCURACY)
|
||||
owner.adjustToxLoss(0.3 * PROCESS_ACCURACY / 2)
|
||||
|
||||
if(is_bruised())
|
||||
if(prob(5) && reagents.get_reagent_amount("potassium") < 5)
|
||||
reagents.add_reagent("potassium", REM*5)
|
||||
reagents.add_reagent("potassium", REM*5 / 2)
|
||||
if(is_broken())
|
||||
if(owner.reagents.get_reagent_amount("potassium") < 15)
|
||||
owner.reagents.add_reagent("potassium", REM*2)
|
||||
owner.reagents.add_reagent("potassium", REM*2 / 2)
|
||||
|
||||
//If your kidneys aren't working, your body's going to have a hard time cleaning your blood.
|
||||
if(!owner.chem_effects[CE_ANTITOXIN])
|
||||
if(prob(33))
|
||||
if(is_broken())
|
||||
owner.adjustToxLoss(0.5)
|
||||
owner.adjustToxLoss(0.3)
|
||||
if(status & ORGAN_DEAD)
|
||||
owner.adjustToxLoss(1)
|
||||
owner.adjustToxLoss(0.5)
|
||||
|
||||
/obj/item/organ/internal/kidneys/attackby(var/obj/item/I, var/mob/user)
|
||||
..()
|
||||
if(istype(I, /obj/item/hemostat))
|
||||
if(src.organ_tag == BP_LKIDNEY)
|
||||
to_chat(usr, "You prepare the kidney for placement on the right side.")
|
||||
organ_tag = BP_RKIDNEY
|
||||
name = "right kidney"
|
||||
else if(organ_tag == BP_RKIDNEY)
|
||||
organ_tag = BP_LKIDNEY
|
||||
to_chat(usr, "You prepare the kidney for placement on the left side.")
|
||||
name = "left kidney"
|
||||
|
||||
/obj/item/organ/internal/kidneys/left
|
||||
name = "left kidney"
|
||||
organ_tag = BP_LKIDNEY
|
||||
robotic_name = "prosthetic left kidneys"
|
||||
/obj/item/organ/internal/kidneys/right
|
||||
name = "right kidney"
|
||||
robotic_name = "prosthetic right kidney"
|
||||
organ_tag = BP_RKIDNEY
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
|
||||
/obj/item/organ/internal/kidneys/skrell
|
||||
icon_state = "kidney_skrell"
|
||||
/obj/item/organ/internal/kidneys/skrell/right
|
||||
icon_state = "kidney_skrell"
|
||||
|
||||
/obj/item/organ/internal/eyes/skrell
|
||||
icon_state = "eyes_skrell"
|
||||
|
||||
@@ -284,7 +284,7 @@ obj/item/gun/energy/staff/focus/attack_self(mob/living/user as mob)
|
||||
if(!user.is_wizard())
|
||||
if(istype(user, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/obj/item/organ/O = H.internal_organs_by_name[pick(H.species.vision_organ || BP_EYES,"appendix",BP_KIDNEYS,BP_LIVER, BP_HEART, BP_LUNGS, BP_BRAIN)]
|
||||
var/obj/item/organ/O = H.internal_organs_by_name[pick(H.species.vision_organ || BP_EYES,BP_APPENDIX,BP_LKIDNEY,BP_RKIDNEY,BP_LIVER, BP_HEART, BP_LUNGS, BP_BRAIN)]
|
||||
if(O == null)
|
||||
to_chat(user, "<span class='notice'>You can't make any sense of the arcane glyphs... maybe you should try again.</span>")
|
||||
else
|
||||
|
||||
@@ -19,10 +19,15 @@
|
||||
id = "robotic_lungs"
|
||||
build_path = /obj/item/organ/internal/lungs
|
||||
|
||||
/datum/design/item/mechfab/prosthetic/internal/kidneys
|
||||
name = "Prosthetic Kidneys"
|
||||
/datum/design/item/mechfab/prosthetic/internal/lkidney
|
||||
name = "Prosthetic Left Kidney"
|
||||
id = "robotic_kidneys"
|
||||
build_path = /obj/item/organ/internal/kidneys
|
||||
build_path = /obj/item/organ/internal/kidneys/left
|
||||
|
||||
/datum/design/item/mechfab/prosthetic/internal/rkidney
|
||||
name = "Prosthetic Right Kidney"
|
||||
id = "robotic_rkidneys"
|
||||
build_path = /obj/item/organ/internal/kidneys/right
|
||||
|
||||
/datum/design/item/mechfab/prosthetic/internal/eyes
|
||||
name = "Prosthetic Eyes"
|
||||
|
||||
Reference in New Issue
Block a user