[src] Menu:
"
+ dat += "
[dna_disk ? "Remove" : "Insert"] cloning data disk"
+ dat += "
"
dat += "
Chemical Storage"
dat += materials_printout()
dat += "
"
@@ -218,7 +299,7 @@
/obj/machinery/limbgrower/proc/get_design_cost(datum/design/D)
var/dat
- if(D.reagents_list["synthflesh"])
+ if(D.reagents_list[/datum/reagent/medicine/synthflesh])
dat += "[D.reagents_list[/datum/reagent/medicine/synthflesh] * prod_coeff] Synthetic flesh "
return dat
@@ -233,3 +314,47 @@
to_chat(user, "A warning flashes onto the screen, stating that safety overrides have been deactivated!")
obj_flags |= EMAGGED
return TRUE
+
+/obj/machinery/limbgrower/AltClick(mob/living/user)
+ . = ..()
+ if(istype(user) && user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
+ if(busy)
+ to_chat(user, "\The [src] is busy. Please wait for completion of previous operation.")
+ else
+ if(dna_disk)
+ dna_disk.forceMove(src.loc)
+ user.put_in_active_hand(dna_disk)
+ to_chat(user, "You remove \the [dna_disk] from \the [src].")
+ dna_disk = null
+ else
+ to_chat(user, "\The [src] has doesn't have a disk on it!")
+
+//Defines some vars that makes limbs appears, TO-DO: define every single species.
+
+/datum/species/human
+ limbs_id = SPECIES_HUMAN
+ icon_limbs = 'icons/mob/human_parts_greyscale.dmi'
+
+/datum/species/lizard
+ limbs_id = SPECIES_LIZARD
+ icon_limbs = 'icons/mob/human_parts_greyscale.dmi'
+
+/datum/species/mammal
+ limbs_id = SPECIES_MAMMAL
+ icon_limbs = 'icons/mob/human_parts_greyscale.dmi'
+
+/datum/species/insect
+ limbs_id = SPECIES_INSECT
+ icon_limbs = 'icons/mob/human_parts_greyscale.dmi'
+
+/datum/species/fly
+ limbs_id = SPECIES_FLY
+ icon_limbs = 'icons/mob/human_parts.dmi'
+
+/datum/species/plasmaman
+ limbs_id = SPECIES_PLASMAMAN
+ icon_limbs = 'icons/mob/human_parts.dmi'
+
+/datum/species/xeno
+ limbs_id = SPECIES_XENOHYBRID
+ icon_limbs = 'icons/mob/human_parts_greyscale.dmi'
diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm
index 7508d59b18..8da18c453c 100644
--- a/code/modules/research/designs/limbgrower_designs.dm
+++ b/code/modules/research/designs/limbgrower_designs.dm
@@ -41,3 +41,162 @@
reagents_list = list(/datum/reagent/medicine/synthflesh = 75)
build_path = /obj/item/melee/synthetic_arm_blade
category = list("other","emagged")
+
+//Extra limbs
+
+/datum/design/chest
+ name = "Chest"
+ id = "chest"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 50)
+ build_path = /obj/item/bodypart/chest
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/head
+ name = "Head"
+ id = "head"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 75)
+ build_path = /obj/item/bodypart/head
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+//Organs
+/datum/design/brain
+ name = "Brain"
+ id = "brain"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 50)
+ build_path = /obj/item/organ/brain
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/heart
+ name = "Heart"
+ id = "heart"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/heart
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/lungs
+ name = "Lungs"
+ id = "lungs"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/lungs
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/liver
+ name = "Liver"
+ id = "liver"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/liver
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/stomach
+ name = "Stomach"
+ id = "stomach"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/stomach
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/appendix
+ name = "Appendix"
+ id = "appendix"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 10)
+ build_path = /obj/item/organ/appendix
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/tail
+ name = "Tail"
+ id = "tail"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/tail
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/ears
+ name = "Ears"
+ id = "ears"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/ears
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/eyes
+ name = "Eyes"
+ id = "eyes"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 30)
+ build_path = /obj/item/organ/eyes
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/tongue
+ name = "Tongue"
+ id = "tongue"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/tongue
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/vocal_cords
+ name = "Vocal cords"
+ id = "vocal_cords"
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/vocal_cords
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+//genitals
+
+/datum/design/penis
+ name = "Penis"
+ id = "penis"
+ build_type = LIMBGROWER
+ research_icon_state = "penis_human_3_s"
+ research_icon = 'icons/obj/genitals/penis.dmi'
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/genital/penis
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/vagina
+ name = "Vagina"
+ id = "vagina"
+ research_icon_state = "vagina-s"
+ research_icon = 'icons/obj/genitals/vagina.dmi'
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/genital/vagina
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/womb
+ name = "Womb"
+ id = "womb"
+ research_icon_state = "womb"
+ research_icon = 'icons/obj/genitals/vagina.dmi'
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/genital/womb
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/testicles
+ name = "Testicles"
+ id = "testicles"
+ research_icon_state = "testicles_single_3_s"
+ research_icon = 'icons/obj/genitals/testicles.dmi'
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/genital/testicles
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")
+
+/datum/design/breasts
+ name = "Breasts"
+ id = "breasts"
+ research_icon_state = "breasts_pair_e_s"
+ research_icon = 'icons/obj/genitals/breasts.dmi'
+ build_type = LIMBGROWER
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
+ build_path = /obj/item/organ/genital/breasts
+ category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno")