[MIRROR] De-hardcodes randomize_human() and fixes some related issues along the way [MDB IGNORE] (#15638)

* De-hardcodes randomize_human() and fixes some related issues along the way

* Update create_mob.dm

* Update species.dm

* hhhh fuck

* Fixes what was still broken with the mirror

Co-authored-by: FernandoJ8 <80640114+FernandoJ8@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
This commit is contained in:
SkyratBot
2022-08-25 00:13:52 +02:00
committed by GitHub
parent ba3cbfe76f
commit 5cd946f4d0
30 changed files with 103 additions and 132 deletions

View File

@@ -423,7 +423,7 @@
monkey_tail.Insert(human_mob, drop_if_replaced = FALSE) monkey_tail.Insert(human_mob, drop_if_replaced = FALSE)
var/datum/species/human_species = human_mob.dna?.species var/datum/species/human_species = human_mob.dna?.species
if(human_species) if(human_species)
human_species.randomize_main_appearance_element(human_mob) human_species.randomize_features(human_mob)
human_species.randomize_active_underwear(human_mob) human_species.randomize_active_underwear(human_mob)
owner.remove_status_effect(/datum/status_effect/eigenstasium) owner.remove_status_effect(/datum/status_effect/eigenstasium)

View File

@@ -11,13 +11,13 @@
user << browse(create_panel_helper(create_mob_html), "window=create_mob;size=425x475") user << browse(create_panel_helper(create_mob_html), "window=create_mob;size=425x475")
/proc/randomize_human(mob/living/carbon/human/human) /proc/randomize_human(mob/living/carbon/human/human)
human.gender = pick(MALE, FEMALE) if(human.dna.species.sexes)
human.gender = pick(MALE, FEMALE, PLURAL)
else
human.gender = PLURAL
human.physique = human.gender human.physique = human.gender
human.real_name = human.dna?.species.random_name(human.gender) || random_unique_name(human.gender) human.real_name = human.dna?.species.random_name(human.gender) || random_unique_name(human.gender)
human.name = human.real_name human.name = human.real_name
human.underwear = random_underwear(human.gender)
human.underwear_color = "#[random_color()]"
human.skin_tone = random_skin_tone()
human.hairstyle = random_hairstyle(human.gender) human.hairstyle = random_hairstyle(human.gender)
human.facial_hairstyle = random_facial_hairstyle(human.gender) human.facial_hairstyle = random_facial_hairstyle(human.gender)
human.hair_color = "#[random_color()]" human.hair_color = "#[random_color()]"
@@ -25,30 +25,22 @@
var/random_eye_color = random_eye_color() var/random_eye_color = random_eye_color()
human.eye_color_left = random_eye_color human.eye_color_left = random_eye_color
human.eye_color_right = random_eye_color human.eye_color_right = random_eye_color
human.dna.blood_type = random_blood_type()
// Mutant randomizing, doesn't affect the mob appearance unless it's the specific mutant.
/* SKYRAT EDIT REMOVAL
human.dna.features["mcolor"] = "#[random_color()]"
human.dna.features["ethcolor"] = GLOB.color_list_ethereal[pick(GLOB.color_list_ethereal)]
human.dna.features["tail_cat"] = pick(GLOB.tails_list_human)
human.dna.features["tail_lizard"] = pick(GLOB.tails_list_lizard)
human.dna.features["snout"] = pick(GLOB.snouts_list)
human.dna.features["horns"] = pick(GLOB.horns_list)
human.dna.features["frills"] = pick(GLOB.frills_list)
human.dna.features["spines"] = pick(GLOB.spines_list)
human.dna.features["body_markings"] = pick(GLOB.body_markings_list)
human.dna.features["moth_wings"] = pick(GLOB.moth_wings_list)
human.dna.features["moth_antennae"] = pick(GLOB.moth_antennae_list)
human.dna.features["pod_hair"] = pick(GLOB.pod_hair_list)
*/
//SKYRAT EDIT ADDITION BEGIN - CUSTOMIZATION //SKYRAT EDIT ADDITION BEGIN - CUSTOMIZATION
human.dna.features = human.dna.species.get_random_features()
human.dna.mutant_bodyparts = human.dna.species.get_random_mutant_bodyparts(human.dna.features) human.dna.mutant_bodyparts = human.dna.species.get_random_mutant_bodyparts(human.dna.features)
human.dna.body_markings = human.dna.species.get_random_body_markings(human.dna.features) human.dna.body_markings = human.dna.species.get_random_body_markings(human.dna.features)
human.dna.species.mutant_bodyparts = human.dna.mutant_bodyparts.Copy() human.dna.species.mutant_bodyparts = human.dna.mutant_bodyparts.Copy()
human.dna.species.body_markings = human.dna.body_markings.Copy() human.dna.species.body_markings = human.dna.body_markings.Copy()
//SKYRAT EDIT ADDITION END //SKYRAT EDIT ADDITION END
human.update_body(is_creating = TRUE) human.dna.blood_type = random_blood_type()
human.dna.features["mcolor"] = "#[random_color()]"
human.dna.species.randomize_active_underwear(human)
for(var/datum/species/species_path as anything in subtypesof(/datum/species))
var/datum/species/new_species = new species_path
new_species.randomize_features(human)
human.dna.species.spec_updatehealth(human) human.dna.species.spec_updatehealth(human)
human.dna.update_dna_identity()
human.updateappearance()
human.update_body(is_creating = TRUE)

View File

@@ -13,4 +13,3 @@
randomize_human(owner) randomize_human(owner)
var/species = pick(list(/datum/species/human, /datum/species/lizard, /datum/species/moth, /datum/species/fly)) var/species = pick(list(/datum/species/human, /datum/species/lizard, /datum/species/moth, /datum/species/fly))
owner.set_species(species) owner.set_species(species)
owner.dna.update_dna_identity()

View File

@@ -28,7 +28,6 @@
return return
var/mob/living/carbon/human/human_knight = . var/mob/living/carbon/human/human_knight = .
randomize_human(human_knight) randomize_human(human_knight)
human_knight.dna.update_dna_identity()
human_knight.dna.add_mutation(/datum/mutation/human/medieval, MUT_OTHER) human_knight.dna.add_mutation(/datum/mutation/human/medieval, MUT_OTHER)
var/oldname = human_knight.name var/oldname = human_knight.name
var/title = "error" var/title = "error"

View File

@@ -40,7 +40,6 @@
all_species += stype all_species += stype
var/random_race = pick(all_species) var/random_race = pick(all_species)
H.set_species(random_race) H.set_species(random_race)
H.dna.update_dna_identity()
L = H L = H
var/turf/T = find_safe_turf(extended_safety_checks = TRUE, dense_atoms = FALSE) var/turf/T = find_safe_turf(extended_safety_checks = TRUE, dense_atoms = FALSE)
L.forceMove(T) L.forceMove(T)

View File

@@ -504,7 +504,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava)
var/datum/species/new_human_species = GLOB.species_list[species_to_pick] var/datum/species/new_human_species = GLOB.species_list[species_to_pick]
if(new_human_species) if(new_human_species)
new_human.set_species(new_human_species) new_human.set_species(new_human_species)
new_human_species.randomize_main_appearance_element(new_human) new_human_species.randomize_features(new_human)
new_human.fully_replace_character_name(new_human.real_name, new_human_species.random_name(new_human.gender, TRUE, TRUE)) new_human.fully_replace_character_name(new_human.real_name, new_human_species.random_name(new_human.gender, TRUE, TRUE))
else else
stack_trace("failed to spawn cadaver with species ID [species_to_pick]") //if it's invalid they'll just be a human, so no need to worry too much aside from yelling at the server owner lol. stack_trace("failed to spawn cadaver with species ID [species_to_pick]") //if it's invalid they'll just be a human, so no need to worry too much aside from yelling at the server owner lol.

View File

@@ -814,21 +814,6 @@ GLOBAL_LIST_EMPTY(features_by_species)
return "FRONT" return "FRONT"
//SKYRAT EDIT ADDITION END //SKYRAT EDIT ADDITION END
///Proc that will randomise the hair, or primary appearance element (i.e. for moths wings) of a species' associated mob
/datum/species/proc/randomize_main_appearance_element(mob/living/carbon/human/human_mob)
//SKYRAT EDIT ADDITION BEGIN
for(var/key in mutant_bodyparts) //Randomize currently attached mutant bodyparts, organs should update when they need to (detachment)
var/datum/sprite_accessory/SP = random_accessory_of_key_for_species(key, src)
var/list/color_list = SP.get_default_color(human_mob.dna.features, src)
var/list/final_list = list()
final_list[MUTANT_INDEX_NAME] = SP.name
final_list[MUTANT_INDEX_COLOR_LIST] = color_list
mutant_bodyparts[key] = final_list
human_mob.update_mutant_bodyparts()
//SKYRAT EDIT ADDITION END
human_mob.hairstyle = random_hairstyle(human_mob.gender)
human_mob.update_body_parts()
///Proc that will randomise the underwear (i.e. top, pants and socks) of a species' associated mob ///Proc that will randomise the underwear (i.e. top, pants and socks) of a species' associated mob
/datum/species/proc/randomize_active_underwear(mob/living/carbon/human/human_mob) /datum/species/proc/randomize_active_underwear(mob/living/carbon/human/human_mob)
human_mob.undershirt = random_undershirt(human_mob.gender) human_mob.undershirt = random_undershirt(human_mob.gender)
@@ -836,6 +821,19 @@ GLOBAL_LIST_EMPTY(features_by_species)
human_mob.socks = random_socks(human_mob.gender) human_mob.socks = random_socks(human_mob.gender)
human_mob.update_body() human_mob.update_body()
///Proc that will randomize all the external organs (i.e. horns, frills, tails etc.) of a species' associated mob
/datum/species/proc/randomize_external_organs(mob/living/carbon/human/human_mob)
for(var/obj/item/organ/external/organ_path as anything in external_organs)
var/obj/item/organ/external/randomized_organ = human_mob.getorgan(organ_path)
if(randomized_organ)
var/new_look = pick(randomized_organ.get_global_feature_list())
human_mob.dna.features["[randomized_organ.feature_key]"] = new_look
mutant_bodyparts["[randomized_organ.feature_key]"] = new_look
///Proc that randomizes all the appearance elements (external organs, markings, hair etc.) of a species' associated mob. Function set by child procs
/datum/species/proc/randomize_features(mob/living/carbon/human/human_mob)
return
/datum/species/proc/spec_life(mob/living/carbon/human/H, delta_time, times_fired) /datum/species/proc/spec_life(mob/living/carbon/human/H, delta_time, times_fired)
if(HAS_TRAIT(H, TRAIT_NOBREATH)) if(HAS_TRAIT(H, TRAIT_NOBREATH))
H.setOxyLoss(0) H.setOxyLoss(0)

View File

@@ -97,6 +97,8 @@
return randname return randname
/datum/species/ethereal/randomize_features(mob/living/carbon/human/human_mob)
human_mob.dna.features["ethcolor"] = GLOB.color_list_ethereal[pick(GLOB.color_list_ethereal)]
/datum/species/ethereal/spec_updatehealth(mob/living/carbon/human/ethereal) /datum/species/ethereal/spec_updatehealth(mob/living/carbon/human/ethereal)
. = ..() . = ..()

View File

@@ -44,6 +44,10 @@
mutantears = /obj/item/organ/internal/ears mutantears = /obj/item/organ/internal/ears
return ..() return ..()
/datum/species/human/felinid/randomize_features(mob/living/carbon/human/human_mob)
randomize_external_organs(human_mob)
return ..()
/proc/mass_purrbation() /proc/mass_purrbation()
for(var/mob in GLOB.human_list) for(var/mob in GLOB.human_list)
purrbation_apply(mob) purrbation_apply(mob)

View File

@@ -21,6 +21,9 @@
human.hair_color = "#bb9966" // brown human.hair_color = "#bb9966" // brown
human.update_body_parts() human.update_body_parts()
/datum/species/human/randomize_features(mob/living/carbon/human/human_mob)
human_mob.skin_tone = random_skin_tone()
/datum/species/human/get_scream_sound(mob/living/carbon/human/human) /datum/species/human/get_scream_sound(mob/living/carbon/human/human)
if(human.gender == MALE) if(human.gender == MALE)
if(prob(1)) if(prob(1))

View File

@@ -73,11 +73,9 @@
//SKYRAT EDIT REMOVAL BEGIN //SKYRAT EDIT REMOVAL BEGIN
/* /*
/datum/species/lizard/randomize_main_appearance_element(mob/living/carbon/human/human_mob) /datum/species/lizard/randomize_features(mob/living/carbon/human/human_mob)
var/tail = pick(GLOB.tails_list_lizard) human_mob.dna.features["body_markings"] = pick(GLOB.body_markings_list)
human_mob.dna.features["tail_lizard"] = tail randomize_external_organs(human_mob)
mutant_bodyparts["tail_lizard"] = tail
human_mob.update_body()
*/ */
//SKYRAT EDIT REMOVAL END //SKYRAT EDIT REMOVAL END

View File

@@ -66,13 +66,10 @@
return 10 //flyswatters deal 10x damage to moths return 10 //flyswatters deal 10x damage to moths
return 1 return 1
/datum/species/moth/randomize_main_appearance_element(mob/living/carbon/human/human_mob)
var/wings = pick(GLOB.moth_wings_list) /datum/species/moth/randomize_features(mob/living/carbon/human/human_mob)
mutant_bodyparts["wings"] = wings human_mob.dna.features["moth_markings"] = pick(GLOB.moth_wings_list)
mutant_bodyparts["moth_wings"] = wings randomize_external_organs(human_mob)
human_mob.dna.features["wings"] = wings
human_mob.dna.features["moth_wings"] = wings
human_mob.update_body()
/datum/species/moth/get_scream_sound(mob/living/carbon/human/human) /datum/species/moth/get_scream_sound(mob/living/carbon/human/human)
return 'sound/voice/moth/scream_moth.ogg' return 'sound/voice/moth/scream_moth.ogg'

View File

@@ -75,11 +75,8 @@
return list("You're a plant!") return list("You're a plant!")
// SKYRAT EDIT END // SKYRAT EDIT END
/datum/species/pod/randomize_main_appearance_element(mob/living/carbon/human/human_mob) /datum/species/pod/randomize_features(mob/living/carbon/human_mob)
var/hairstyle = pick(GLOB.pod_hair_list) randomize_external_organs(human_mob)
human_mob.dna.features["pod_hair"] = hairstyle
mutant_bodyparts["pod_hair"] = hairstyle
human_mob.update_body()
/datum/species/pod/proc/change_hairstyle(mob/living/carbon/human/human_mob, new_style) /datum/species/pod/proc/change_hairstyle(mob/living/carbon/human/human_mob, new_style)
var/obj/item/organ/external/organ = human_mob.getorganslot(ORGAN_SLOT_EXTERNAL_POD_HAIR) var/obj/item/organ/external/organ = human_mob.getorganslot(ORGAN_SLOT_EXTERNAL_POD_HAIR)

View File

@@ -746,7 +746,6 @@
to_chat(H, span_warning("<b>You grit your teeth in pain as your body rapidly mutates!</b>")) to_chat(H, span_warning("<b>You grit your teeth in pain as your body rapidly mutates!</b>"))
H.visible_message("<b>[H]</b> suddenly transforms!") H.visible_message("<b>[H]</b> suddenly transforms!")
randomize_human(H) randomize_human(H)
H.dna.update_dna_identity()
/datum/reagent/aslimetoxin /datum/reagent/aslimetoxin
name = "Advanced Mutation Toxin" name = "Advanced Mutation Toxin"

View File

@@ -810,7 +810,6 @@
originalname = H.real_name originalname = H.real_name
H.dna.copy_dna(originalDNA) H.dna.copy_dna(originalDNA)
randomize_human(H) randomize_human(H)
H.dna.update_dna_identity()
return ..() return ..()
// Only occasionally give examiners a warning. // Only occasionally give examiners a warning.

View File

@@ -385,6 +385,9 @@
color_source = ORGAN_COLOR_OVERRIDE color_source = ORGAN_COLOR_OVERRIDE
/obj/item/organ/external/pod_hair/get_global_feature_list()
return GLOB.pod_hair_list
/obj/item/organ/external/pod_hair/can_draw_on_bodypart(mob/living/carbon/human/human) /obj/item/organ/external/pod_hair/can_draw_on_bodypart(mob/living/carbon/human/human)
if(!(human.head?.flags_inv & HIDEHAIR) || (human.wear_mask?.flags_inv & HIDEHAIR)) if(!(human.head?.flags_inv & HIDEHAIR) || (human.wear_mask?.flags_inv & HIDEHAIR))
return TRUE return TRUE

View File

@@ -77,6 +77,9 @@
color_source = ORGAN_COLOR_HAIR color_source = ORGAN_COLOR_HAIR
wag_flags = WAG_ABLE wag_flags = WAG_ABLE
/obj/item/organ/external/tail/cat/get_global_feature_list()
return GLOB.sprite_accessories["tail"] // SKYRAT EDIT - Customization - ORIGINAL: return GLOB.tails_list_human
/obj/item/organ/external/tail/monkey /obj/item/organ/external/tail/monkey
color_source = NONE color_source = NONE
@@ -89,6 +92,9 @@
///A reference to the paired_spines, since for some fucking reason tail spines are tied to the spines themselves. ///A reference to the paired_spines, since for some fucking reason tail spines are tied to the spines themselves.
var/obj/item/organ/external/spines/paired_spines var/obj/item/organ/external/spines/paired_spines
/obj/item/organ/external/tail/lizard/get_global_feature_list()
return GLOB.sprite_accessories["tail"] // SKYRAT EDIT - Customization - ORIGINAL: return GLOB.tails_list_lizard
/obj/item/organ/external/tail/lizard/Insert(mob/living/carbon/reciever, special, drop_if_replaced) /obj/item/organ/external/tail/lizard/Insert(mob/living/carbon/reciever, special, drop_if_replaced)
. = ..() . = ..()
if(.) if(.)

View File

@@ -64,7 +64,7 @@ GLOBAL_LIST_EMPTY(total_uf_len_by_block)
unique_identity = generate_unique_identity() unique_identity = generate_unique_identity()
if(!skip_index) //I hate this if(!skip_index) //I hate this
generate_dna_blocks() generate_dna_blocks()
features = species.get_random_features() features = random_features()
mutant_bodyparts = species.get_random_mutant_bodyparts(features) mutant_bodyparts = species.get_random_mutant_bodyparts(features)
unique_features = generate_unique_features() unique_features = generate_unique_features()

View File

@@ -300,12 +300,10 @@ GLOBAL_LIST_EMPTY(customizable_races)
name = "Primal Podperson" name = "Primal Podperson"
always_customizable = TRUE always_customizable = TRUE
/datum/species/proc/get_random_features() /datum/species/randomize_features(mob/living/carbon/human/human_mob)
var/list/returned = MANDATORY_FEATURE_LIST human_mob.dna.features["mcolor"] = random_color()
returned["mcolor"] = random_color() human_mob.dna.features["mcolor2"] = random_color()
returned["mcolor2"] = random_color() human_mob.dna.features["mcolor3"] = random_color()
returned["mcolor3"] = random_color()
return returned
/datum/species/proc/get_random_mutant_bodyparts(list/features) //Needs features to base the colour off of /datum/species/proc/get_random_mutant_bodyparts(list/features) //Needs features to base the colour off of
var/list/mutantpart_list = list() var/list/mutantpart_list = list()

View File

@@ -41,8 +41,7 @@
BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/mutant/akula, BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/mutant/akula,
) )
/datum/species/akula/get_random_features() /datum/species/akula/randomize_features(mob/living/carbon/human/human_mob)
var/list/returned = MANDATORY_FEATURE_LIST
var/main_color var/main_color
var/second_color var/second_color
var/random = rand(1,5) var/random = rand(1,5)
@@ -63,10 +62,9 @@
if(5) if(5)
main_color = "#444444" main_color = "#444444"
second_color = "#DDDDEE" second_color = "#DDDDEE"
returned["mcolor"] = main_color human_mob.dna.features["mcolor"] = main_color
returned["mcolor2"] = second_color human_mob.dna.features["mcolor2"] = second_color
returned["mcolor3"] = second_color human_mob.dna.features["mcolor3"] = second_color
return returned
/datum/species/akula/get_random_body_markings(list/passed_features) /datum/species/akula/get_random_body_markings(list/passed_features)
var/name = "Shark" var/name = "Shark"

View File

@@ -45,8 +45,7 @@
BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/mutant/akula, BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/mutant/akula,
) )
/datum/species/aquatic/get_random_features() /datum/species/aquatic/randomize_features(mob/living/carbon/human/human_mob)
var/list/returned = MANDATORY_FEATURE_LIST
var/main_color var/main_color
var/second_color var/second_color
var/random = rand(1,5) var/random = rand(1,5)
@@ -67,10 +66,9 @@
if(5) if(5)
main_color = "#444444" main_color = "#444444"
second_color = "#DDDDEE" second_color = "#DDDDEE"
returned["mcolor"] = main_color human_mob.dna.features["mcolor"] = main_color
returned["mcolor2"] = second_color human_mob.dna.features["mcolor2"] = second_color
returned["mcolor3"] = second_color human_mob.dna.features["mcolor3"] = second_color
return returned
/datum/species/aquatic/get_random_body_markings(list/passed_features) /datum/species/aquatic/get_random_body_markings(list/passed_features)
var/name = "Shark" var/name = "Shark"

View File

@@ -23,8 +23,7 @@
) )
payday_modifier = 0.75 payday_modifier = 0.75
/datum/species/lizard/get_random_features() /datum/species/lizard/randomize_features(mob/living/carbon/human/human_mob)
var/list/returned = MANDATORY_FEATURE_LIST
var/main_color = "#[random_color()]" var/main_color = "#[random_color()]"
var/second_color var/second_color
var/third_color var/third_color
@@ -39,10 +38,9 @@
if(3) //Third case, more randomisation if(3) //Third case, more randomisation
second_color = "#[random_color()]" second_color = "#[random_color()]"
third_color = "#[random_color()]" third_color = "#[random_color()]"
returned["mcolor"] = main_color human_mob.dna.features["mcolor"] = main_color
returned["mcolor2"] = second_color human_mob.dna.features["mcolor2"] = second_color
returned["mcolor3"] = third_color human_mob.dna.features["mcolor3"] = third_color
return returned
/datum/species/lizard/prepare_human_for_preview(mob/living/carbon/human/lizard, lizard_color = "#009999") /datum/species/lizard/prepare_human_for_preview(mob/living/carbon/human/lizard, lizard_color = "#009999")
lizard.dna.features["mcolor"] = lizard_color lizard.dna.features["mcolor"] = lizard_color

View File

@@ -48,8 +48,7 @@
BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/mutant, BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/mutant,
) )
/datum/species/mammal/get_random_features() /datum/species/mammal/randomize_features(mob/living/carbon/human/human_mob)
var/list/returned = MANDATORY_FEATURE_LIST
var/main_color var/main_color
var/second_color var/second_color
var/third_color var/third_color
@@ -83,10 +82,9 @@
main_color = "#[random_color()]" main_color = "#[random_color()]"
second_color = "#[random_color()]" second_color = "#[random_color()]"
third_color = "#[random_color()]" third_color = "#[random_color()]"
returned["mcolor"] = main_color human_mob.dna.features["mcolor"] = main_color
returned["mcolor2"] = second_color human_mob.dna.features["mcolor2"] = second_color
returned["mcolor3"] = third_color human_mob.dna.features["mcolor3"] = third_color
return returned
/datum/species/mammal/get_random_body_markings(list/passed_features) /datum/species/mammal/get_random_body_markings(list/passed_features)
var/name = "None" var/name = "None"

View File

@@ -14,10 +14,8 @@
MUTCOLORS, MUTCOLORS,
) )
/datum/species/moth/get_random_features() /datum/species/moth/randomize_features(mob/living/carbon/human/human_mob)
var/list/returned = MANDATORY_FEATURE_LIST human_mob.dna.features["mcolor"] = "#E5CD99"
returned["mcolor"] = "#E5CD99"
return returned
/datum/species/moth/get_random_body_markings(list/passed_features) /datum/species/moth/get_random_body_markings(list/passed_features)
var/name = "None" var/name = "None"

View File

@@ -33,8 +33,7 @@
BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/robot/mutant, BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/robot/mutant,
) )
/datum/species/robotic/synthetic_mammal/get_random_features() /datum/species/robotic/synthetic_mammal/randomize_features(mob/living/carbon/human/human_mob)
var/list/returned = MANDATORY_FEATURE_LIST
var/main_color var/main_color
var/second_color var/second_color
var/third_color var/third_color
@@ -68,10 +67,9 @@
main_color = "#[random_color()]" main_color = "#[random_color()]"
second_color = "#[random_color()]" second_color = "#[random_color()]"
third_color = "#[random_color()]" third_color = "#[random_color()]"
returned["mcolor"] = main_color human_mob.dna.features["mcolor"] = main_color
returned["mcolor2"] = second_color human_mob.dna.features["mcolor2"] = second_color
returned["mcolor3"] = third_color human_mob.dna.features["mcolor3"] = third_color
return returned
/datum/species/robotic/synthetic_mammal/get_random_body_markings(list/passed_features) /datum/species/robotic/synthetic_mammal/get_random_body_markings(list/passed_features)
var/name = "None" var/name = "None"

View File

@@ -53,8 +53,7 @@
/datum/species/skrell/get_species_lore() /datum/species/skrell/get_species_lore()
return list(placeholder_lore) return list(placeholder_lore)
/datum/species/skrell/get_random_features() /datum/species/skrell/randomize_features(mob/living/carbon/human/human_mob)
var/list/returned = MANDATORY_FEATURE_LIST
var/main_color var/main_color
var/random = rand(1,6) var/random = rand(1,6)
//Choose from a range of green-blue colors //Choose from a range of green-blue colors
@@ -71,10 +70,9 @@
main_color = "#22BBFF" main_color = "#22BBFF"
if(6) if(6)
main_color = "#2266FF" main_color = "#2266FF"
returned["mcolor"] = main_color human_mob.dna.features["mcolor"] = main_color
returned["mcolor2"] = main_color human_mob.dna.features["mcolor2"] = main_color
returned["mcolor3"] = main_color human_mob.dna.features["mcolor3"] = main_color
return returned
/datum/species/skrell/prepare_human_for_preview(mob/living/carbon/human/skrell) /datum/species/skrell/prepare_human_for_preview(mob/living/carbon/human/skrell)
var/skrell_color = "#22BBFF" var/skrell_color = "#22BBFF"

View File

@@ -42,8 +42,7 @@
BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/mutant, BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/mutant,
) )
/datum/species/tajaran/get_random_features() /datum/species/tajaran/randomize_features(mob/living/carbon/human/human_mob)
var/list/returned = MANDATORY_FEATURE_LIST
var/main_color var/main_color
var/second_color var/second_color
var/random = rand(1,5) var/random = rand(1,5)
@@ -64,10 +63,9 @@
if(5) if(5)
main_color = "#DDCC99" main_color = "#DDCC99"
second_color = "#DDCCAA" second_color = "#DDCCAA"
returned["mcolor"] = main_color human_mob.dna.features["mcolor"] = main_color
returned["mcolor2"] = second_color human_mob.dna.features["mcolor2"] = second_color
returned["mcolor3"] = second_color human_mob.dna.features["mcolor3"] = second_color
return returned
/datum/species/tajaran/get_random_body_markings(list/passed_features) /datum/species/tajaran/get_random_body_markings(list/passed_features)
var/name = pick("Tajaran", "Floof", "Floofer") var/name = pick("Tajaran", "Floof", "Floofer")

View File

@@ -47,8 +47,7 @@
BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/lizard, BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/lizard,
) )
/datum/species/unathi/get_random_features() /datum/species/unathi/randomize_features(mob/living/carbon/human/human_mob)
var/list/returned = MANDATORY_FEATURE_LIST
var/main_color var/main_color
var/second_color var/second_color
var/random = rand(1,5) var/random = rand(1,5)
@@ -69,10 +68,9 @@
if(5) if(5)
main_color = "#33BB11" main_color = "#33BB11"
second_color = "#339911" second_color = "#339911"
returned["mcolor"] = main_color human_mob.dna.features["mcolor"] = main_color
returned["mcolor2"] = second_color human_mob.dna.features["mcolor2"] = second_color
returned["mcolor3"] = second_color human_mob.dna.features["mcolor3"] = second_color
return returned
/datum/species/unathi/get_species_description() /datum/species/unathi/get_species_description()
return placeholder_description return placeholder_description

View File

@@ -82,12 +82,10 @@
return randname return randname
/datum/species/vox/get_random_features() /datum/species/vox/randomize_features(mob/living/carbon/human/human_mob)
var/list/returned = MANDATORY_FEATURE_LIST human_mob.dna.features["mcolor"] = pick("#77DD88", "#77DDAA", "#77CCDD", "#77DDCC")
returned["mcolor"] = pick("#77DD88", "#77DDAA", "#77CCDD", "#77DDCC") human_mob.dna.features["mcolor2"] = pick("#EEDD88", "#EECC88")
returned["mcolor2"] = pick("#EEDD88", "#EECC88") human_mob.dna.features["mcolor3"] = pick("#222222", "#44EEFF", "#44FFBB", "#8844FF", "#332233")
returned["mcolor3"] = pick("#222222", "#44EEFF", "#44FFBB", "#8844FF", "#332233")
return returned
/datum/species/vox/get_random_body_markings(list/passed_features) /datum/species/vox/get_random_body_markings(list/passed_features)
var/name = pick(list("Vox", "Vox Hive", "Vox Nightling", "Vox Heart", "Vox Tiger")) var/name = pick(list("Vox", "Vox Hive", "Vox Nightling", "Vox Heart", "Vox Tiger"))

View File

@@ -42,8 +42,7 @@
BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/mutant, BODY_ZONE_R_LEG = /obj/item/bodypart/r_leg/mutant,
) )
/datum/species/vulpkanin/get_random_features() /datum/species/vulpkanin/randomize_features(mob/living/carbon/human/human_mob)
var/list/returned = MANDATORY_FEATURE_LIST
var/main_color var/main_color
var/second_color var/second_color
var/random = rand(1,5) var/random = rand(1,5)
@@ -64,10 +63,9 @@
if(5) if(5)
main_color = "#999999" main_color = "#999999"
second_color = "#EEEEEE" second_color = "#EEEEEE"
returned["mcolor"] = main_color human_mob.dna.features["mcolor"] = main_color
returned["mcolor2"] = second_color human_mob.dna.features["mcolor2"] = second_color
returned["mcolor3"] = second_color human_mob.dna.features["mcolor3"] = second_color
return returned
/datum/species/vulpkanin/get_random_body_markings(list/passed_features) /datum/species/vulpkanin/get_random_body_markings(list/passed_features)
var/name = pick("Fox", "Floof", "Floofer") var/name = pick("Fox", "Floof", "Floofer")