Prosthetic Expansion: Advent of Species

Update robolimbs.dm
Update vorestation.dme
Update prosfab_designs.dm
Fix prosfab_designs.dm
This commit is contained in:
Aronai Sieyes
2020-03-14 14:01:34 -04:00
parent de4d58fe04
commit 91d4e6897a
17 changed files with 383 additions and 23 deletions

View File

@@ -0,0 +1,46 @@
/datum/design/circuit/disk
build_type = IMPRINTER
req_tech = list(TECH_DATA = 3)
materials = list(MAT_PLASTIC = 2000, MAT_GLASS = 1000)
chemicals = list("pacid" = 10)
time = 5
/datum/design/circuit/disk/AssembleDesignName()
..()
if(build_path)
var/obj/item/weapon/disk/D = build_path
if(istype(D, /obj/item/weapon/disk/species))
name = "Species Prosthetic design ([item_name])"
else if(istype(D, /obj/item/weapon/disk/limb))
name = "Transtellar Prosthetic design ([item_name])"
else
name = "Disk design ([item_name])"
/datum/design/circuit/disk/skrellprint
name = SPECIES_SKRELL
id = "prosthetic_skrell"
req_tech = list(TECH_DATA = 3, TECH_BIO = 3)
build_path = /obj/item/weapon/disk/species/skrell
sort_string = "DBAAA"
/datum/design/circuit/disk/tajprint
name = SPECIES_TAJ
id = "prosthetic_tajaran"
req_tech = list(TECH_DATA = 3, TECH_BIO = 3)
build_path = /obj/item/weapon/disk/species/tajaran
sort_string = "DBAAB"
/datum/design/circuit/disk/unathiprint
name = SPECIES_UNATHI
id = "prosthetic_unathi"
req_tech = list(TECH_DATA = 3, TECH_BIO = 4)
build_path = /obj/item/weapon/disk/species/unathi
sort_string = "DBAAC"
/datum/design/circuit/disk/teshariprint
name = SPECIES_TESHARI
id = "prosthetic_teshari"
req_tech = list(TECH_DATA = 3, TECH_BIO = 4)
build_path = /obj/item/weapon/disk/species/teshari
sort_string = "DBAAD"

View File

@@ -11,20 +11,21 @@
if(istype(fabricator, /obj/machinery/pros_fabricator))
var/obj/machinery/pros_fabricator/prosfab = fabricator
var/obj/item/organ/O = new build_path(newloc)
//VOREStation Edit - Suggesting a species
var/newspecies = "Human"
if(prosfab.manufacturer)
var/datum/robolimb/manf = all_robolimbs[prosfab.manufacturer]
newspecies = manf.suggested_species
O.species = GLOB.all_species[newspecies]
if(istype(O,/obj/item/organ/external))
var/obj/item/organ/external/EO = O
if(EO.species.base_color)
var/r_skin = hex2num(copytext(EO.species.base_color,2,4))
var/g_skin = hex2num(copytext(EO.species.base_color,4,6))
var/b_skin = hex2num(copytext(EO.species.base_color,6,8))
EO.s_col = list(r_skin, g_skin, b_skin)
//VOREStation Edit End
if(!(O.organ_tag in manf.parts)) // Make sure we're using an actually present icon.
manf = all_robolimbs["Unbranded"]
if(prosfab.species in manf.species_alternates) // If the prosthetics fab is set to say, Unbranded, and species set to 'Tajaran', it will make the Taj variant of Unbranded, if it exists.
manf = manf.species_alternates[prosfab.species]
if(!prosfab.species || (prosfab.species in manf.species_cannot_use)) // Fabricator ensures the manufacturer can make parts for the species we're set to.
O.species = GLOB.all_species["[manf.suggested_species]"]
else
O.species = GLOB.all_species[prosfab.species]
else
O.species = GLOB.all_species["Human"]
O.robotize(prosfab.manufacturer)
O.dna = new/datum/dna() //Uuughhhh... why do I have to do this?
O.dna.ResetUI()
@@ -38,13 +39,20 @@
/datum/design/item/prosfab/pros/torso/Fabricate(var/newloc, var/fabricator)
if(istype(fabricator, /obj/machinery/pros_fabricator))
var/obj/machinery/pros_fabricator/prosfab = fabricator
//VOREStation Edit - Suggesting a species
var/newspecies = "Human"
if(prosfab.manufacturer)
var/datum/robolimb/manf = all_robolimbs[prosfab.manufacturer]
newspecies = manf.suggested_species
var/datum/robolimb/manf = all_robolimbs[prosfab.manufacturer]
if(manf)
if(prosfab.species in manf.species_alternates) // If the prosthetics fab is set to say, Unbranded, and species set to 'Tajaran', it will make the Taj variant of Unbranded, if it exists.
manf = manf.species_alternates[prosfab.species]
if(!prosfab.species || (prosfab.species in manf.species_cannot_use))
newspecies = manf.suggested_species
else
newspecies = prosfab.species
var/mob/living/carbon/human/H = new(newloc,newspecies)
//VOREStation Edit End
H.stat = DEAD
H.gender = gender
for(var/obj/item/organ/external/EO in H.organs)
@@ -55,11 +63,26 @@
for(var/obj/item/organ/external/O in H.organs)
O.species = GLOB.all_species[newspecies]
O.robotize(prosfab.manufacturer)
if(!(O.organ_tag in manf.parts)) // Make sure we're using an actually present icon.
manf = all_robolimbs["Unbranded"]
O.robotize(manf.company)
O.dna = new/datum/dna()
O.dna.ResetUI()
O.dna.ResetSE()
// Skincolor weirdness.
O.s_col[1] = 0
O.s_col[2] = 0
O.s_col[3] = 0
// Resetting the UI does strange things for the skin of a non-human robot, which should be controlled by a whole different thing.
H.r_skin = 0
H.g_skin = 0
H.b_skin = 0
H.dna.ResetUIFrom(H)
H.real_name = "Synthmorph #[rand(100,999)]"
H.name = H.real_name
H.dir = 2