[MIRROR] Reworks transformation sting to be temporarily in living mobs, forever in dead mobs [MDB IGNORE] (#24002)

* Reworks transformation sting to be temporarily in living mobs, forever in dead mobs

* Modular updates

* Recaches the icons generated in the `changeling` unit test

* Pain

* More tweaks

* Disable unit test

* Let's see if we can pass test temporarily

* Makes transformation sting unobtainable more cleanly

* Unit test

* Cursed proc

* Kill the unholy copy pasta

Seriously this stuff is just awful. This is not maintainable.

* test this

* Update comments

* Fixing the screenshot test, maybe?

* grrr

* Update changeling.dm

* Attempt to fix this nonsense

* Update changeling.dm

* Update changeling.dm

* Update changeling.dm

* Update dna.dm

* Fixes it?

* Screenshot test

* Update _traits.dm

* Update _traits.dm

* Fix this

* Update dna.dm

* Update dna.dm

* Hmm

* This proc needs a new name

* I want to scream but I have no mutant parts

* Fix

* Update species.dm

* Update species.dm

* Update species.dm

* Update species.dm

* Some touch ups

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-11-21 13:21:37 -05:00
committed by GitHub
co-authored by MrMelbert Giz Jolly
parent ec9977f7a7
commit 5540632705
96 changed files with 787 additions and 473 deletions
+19 -27
View File
@@ -10,36 +10,28 @@
user << browse(create_panel_helper(create_mob_html), "window=create_mob;size=425x475")
/proc/randomize_human(mob/living/carbon/human/human)
if(human.dna.species.sexes)
human.gender = pick(MALE, FEMALE, PLURAL, NEUTER)
else
human.gender = PLURAL
/**
* Randomizes everything about a human, including DNA and name
*/
/proc/randomize_human(mob/living/carbon/human/human, randomize_mutations = FALSE)
human.gender = human.dna.species.sexes ? pick(MALE, FEMALE, PLURAL, NEUTER) : PLURAL
human.physique = human.gender
human.real_name = human.dna?.species.random_name(human.gender) || random_unique_name(human.gender)
human.name = human.real_name
human.hairstyle = random_hairstyle(human.gender)
human.facial_hairstyle = random_facial_hairstyle(human.gender)
human.hair_color = "#[random_color()]"
human.facial_hair_color = human.hair_color
var/random_eye_color = random_eye_color()
human.eye_color_left = random_eye_color
human.eye_color_right = random_eye_color
human.dna.blood_type = random_blood_type()
human.dna.features["mcolor"] = "#[random_color()]"
human.name = human.get_visible_name()
human.set_hairstyle(random_hairstyle(human.gender), update = FALSE)
human.set_facial_hairstyle(random_facial_hairstyle(human.gender), update = FALSE)
human.set_haircolor("#[random_color()]", update = FALSE)
human.set_facial_haircolor(human.hair_color, update = FALSE)
human.eye_color_left = random_eye_color()
human.eye_color_right = human.eye_color_left
human.skin_tone = random_skin_tone()
human.dna.species.randomize_active_underwear_only(human)
/*SKYRAT EDIT OLD
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)
SKYRAT EDIT ADDITION BEGIN - CUSTOMIZATION*/
human.dna.species.randomize_features(human)
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)
// Needs to be called towards the end to update all the UIs just set above
human.dna.initialize_dna(newblood_type = random_blood_type(), create_mutation_blocks = randomize_mutations, randomize_features = TRUE)
// SKYRAT EDIT ADDITION BEGIN - CUSTOMIZATION
human.dna.species.mutant_bodyparts = human.dna.mutant_bodyparts.Copy()
human.dna.species.body_markings = human.dna.body_markings.Copy()
//SKYRAT EDIT ADDITION END
// SKYRAT EDIT ADDITION END
// Snowflake stuff (ethereals)
human.dna.species.spec_updatehealth(human)
human.dna.update_dna_identity()
human.updateappearance()
human.update_body(is_creating = TRUE)
human.updateappearance(mutcolor_update = TRUE)