mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Prosthetic Expansion: Advent of Species
Update robolimbs.dm Update vorestation.dme Update prosfab_designs.dm Fix prosfab_designs.dm
This commit is contained in:
46
code/modules/research/designs/circuits/disks.dm
Normal file
46
code/modules/research/designs/circuits/disks.dm
Normal 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"
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user