diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index c6807bf859f..488d2cc708d 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -451,50 +451,66 @@ name = "Cybernetic Liver" desc = "A cybernetic liver" id = "cybernetic_liver" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB + construction_time = 40 materials = list(MAT_METAL = 500, MAT_GLASS = 500) build_path = /obj/item/organ/liver/cybernetic - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/cybernetic_heart - name = "Cybernetic Heart" - desc = "A cybernetic heart" - id = "cybernetic_heart" - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) - build_path = /obj/item/organ/heart/cybernetic - category = list("Medical Designs") + 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 + build_type = PROTOLATHE | MECHFAB + construction_time = 50 materials = list(MAT_METAL = 500, MAT_GLASS = 500) build_path = /obj/item/organ/liver/cybernetic/upgraded - category = list("Medical Designs") + 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 + construction_time = 40 + materials = list(MAT_METAL = 500, MAT_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(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER=500) + build_path = /obj/item/organ/heart/cybernetic/upgraded + category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/cybernetic_lungs name = "Cybernetic Lungs" desc = "A pair of cybernetic lungs." id = "cybernetic_lungs" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB + construction_time = 40 materials = list(MAT_METAL = 500, MAT_GLASS = 500) build_path = /obj/item/organ/lungs/cybernetic - category = list("Medical Designs") + category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/cybernetic_lungs_u name = "Upgraded Cybernetic Lungs" desc = "A pair of upgraded cybernetic lungs." id = "cybernetic_lungs_u" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB + construction_time = 50 materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500) build_path = /obj/item/organ/lungs/cybernetic/upgraded - category = list("Medical Designs") + category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL ///////////////////// diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index ee998568573..720cda77a60 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -462,7 +462,7 @@ display_name = "Upgraded Cybernetic Organs" description = "We have the technology to upgrade him." prereq_ids = list("cyber_organs") - design_ids = list("cybernetic_liver_u", "cybernetic_lungs_u") + design_ids = list("cybernetic_heart_u", "cybernetic_liver_u", "cybernetic_lungs_u") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) export_price = 5000 diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 035b0e54199..8f8925e9f15 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -142,7 +142,7 @@ /datum/client_colour/cursed_heart_blood - priority = 100 //it's an indicator you're dieing, so it's very high priority + priority = 100 //it's an indicator you're dying, so it's very high priority colour = "red" /obj/item/organ/heart/cybernetic @@ -150,7 +150,10 @@ 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" synthetic = TRUE - var/crituse = FALSE // doses with epi if in crit once. + var/dose_available = TRUE + + var/rid = "epinephrine" + var/ramount = 10 /obj/item/organ/heart/cybernetic/emp_act() . = ..() @@ -160,9 +163,21 @@ /obj/item/organ/heart/cybernetic/on_life() . = ..() - if(!crituse && owner.stat == UNCONSCIOUS) - crituse = TRUE - owner.reagents.add_reagent("epinephrine", 10) + if(dose_available && owner.stat == UNCONSCIOUS && !owner.reagents.has_reagent(rid)) + owner.reagents.add_reagent(rid, ramount) + used_dose() + +/obj/item/organ/heart/cybernetic/proc/used_dose() + dose_available = FALSE + +/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" + +/obj/item/organ/heart/cybernetic/upgraded/used_dose() + . = ..() + addtimer(VARSET_CALLBACK(src, dose_available, TRUE), 5 MINUTES) /obj/item/organ/heart/freedom name = "heart of freedom" diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index 008678cba67..bece386d3de 100755 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ