diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 1c5185b8dc..17315683d5 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -47,7 +47,7 @@ //DNA - Because fuck you and your magic numbers being all over the codebase. #define DNA_BLOCK_SIZE 3 -#define DNA_UNI_IDENTITY_BLOCKS 19 //CIT CHANGE - adds more DNA blocks for cit's mutant bodyparts. Update citadel_defines.dm if this gets changed. +#define DNA_UNI_IDENTITY_BLOCKS 14 #define DNA_HAIR_COLOR_BLOCK 1 #define DNA_FACIAL_HAIR_COLOR_BLOCK 2 #define DNA_SKIN_TONE_BLOCK 3 @@ -55,6 +55,13 @@ #define DNA_GENDER_BLOCK 5 #define DNA_FACIAL_HAIR_STYLE_BLOCK 6 #define DNA_HAIR_STYLE_BLOCK 7 +#define DNA_COLOR_ONE_BLOCK 8 +#define DNA_COLOR_TWO_BLOCK 9 +#define DNA_COLOR_THREE_BLOCK 10 +#define DNA_MUTANTTAIL_BLOCK 11 +#define DNA_MUTANTEAR_BLOCK 12 +#define DNA_MUTANTMARKING_BLOCK 13 +#define DNA_TAUR_BLOCK 14 #define DNA_STRUC_ENZYMES_BLOCKS 18 #define DNA_UNIQUE_ENZYMES_LEN 32 diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index d6ce47ea62..136a52acf7 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -86,19 +86,6 @@ #define AROUSAL "arousal" //DNA stuffs. Remember to change this if upstream adds more snowflake options -#define DNA_EYE_COLOR_TWO_BLOCK 8 -#define DNA_EYE_COLOR_SWITCH_BLOCK 9 -#define DNA_EYE_COLOR_BLOCK 10 -#define DNA_COLOR_ONE_BLOCK 11 -#define DNA_COLOR_TWO_BLOCK 12 -#define DNA_COLOR_THR_BLOCK 13 -#define DNA_COLOR_SWITCH_BLOCK 14 -#define DNA_COLOR_SWITCH_MAX 7 //must be (2^(n+1))-1 -#define DNA_COCK_BLOCK 15 -#define DNA_MUTANTRACE_BLOCK 16 -#define DNA_MUTANTTAIL_BLOCK 17 -#define DNA_MUTANTWING_BLOCK 18 -#define DNA_WINGCOLOR_BLOCK 19 //Species stuffs. Remember to change this if upstream updates species flags diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 3e97fd20f9..8474306852 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -96,6 +96,21 @@ L[DNA_FACIAL_HAIR_COLOR_BLOCK] = sanitize_hexcolor(H.facial_hair_color) L[DNA_SKIN_TONE_BLOCK] = construct_block(GLOB.skin_tones.Find(H.skin_tone), GLOB.skin_tones.len) L[DNA_EYE_COLOR_BLOCK] = sanitize_hexcolor(H.eye_color) + L[DNA_COLOR_ONE_BLOCK] = sanitize_hexcolor(features["mcolor"]) + L[DNA_COLOR_TWO_BLOCK] = sanitize_hexcolor(features["mcolor2"]) + L[DNA_COLOR_THREE_BLOCK] = sanitize_hexcolor(features["mcolor3"]) + if(!GLOB.mam_tails_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, GLOB.mam_tails_list) + L[DNA_MUTANTTAIL_BLOCK] = construct_block(GLOB.mam_tails_list.Find(features["mam_tail"]), GLOB.mam_tails_list.len) + if(!GLOB.mam_ears_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_ears, GLOB.mam_ears_list) + L[DNA_MUTANTEAR_BLOCK] = construct_block(GLOB.mam_ears_list.Find(features["mam_ears"]), GLOB.mam_ears_list.len) + if(!GLOB.mam_body_markings_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, GLOB.mam_body_markings_list) + L[DNA_MUTANTMARKING_BLOCK] = construct_block(GLOB.mam_body_markings_list.Find(features["mam_body_markings"]), GLOB.mam_body_markings_list.len) + if(!GLOB.taur_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/taur, GLOB.taur_list) + L[DNA_TAUR_BLOCK] = construct_block(GLOB.taur_list.Find(features["taur"]), GLOB.taur_list.len) for(var/i=1, i<=DNA_UNI_IDENTITY_BLOCKS, i++) if(L[i]) @@ -146,6 +161,20 @@ setblock(uni_identity, blocknumber, construct_block(GLOB.facial_hair_styles_list.Find(H.facial_hair_style), GLOB.facial_hair_styles_list.len)) if(DNA_HAIR_STYLE_BLOCK) setblock(uni_identity, blocknumber, construct_block(GLOB.hair_styles_list.Find(H.hair_style), GLOB.hair_styles_list.len)) + if(DNA_COLOR_ONE_BLOCK) + sanitize_hexcolor(features["mcolor"]) + if(DNA_COLOR_TWO_BLOCK) + sanitize_hexcolor(features["mcolor2"]) + if(DNA_COLOR_THREE_BLOCK) + sanitize_hexcolor(features["mcolor3"]) + if(DNA_MUTANTTAIL_BLOCK) + construct_block(GLOB.mam_tails_list.Find(features["mam_tail"]), GLOB.mam_tails_list.len) + if(DNA_MUTANTEAR_BLOCK) + construct_block(GLOB.mam_ears_list.Find(features["mam_ears"]), GLOB.mam_ears_list.len) + if(DNA_MUTANTMARKING_BLOCK) + construct_block(GLOB.mam_body_markings_list.Find(features["mam_body_markings"]), GLOB.mam_body_markings_list.len) + if(DNA_TAUR_BLOCK) + construct_block(GLOB.taur_list.Find(features["taur"]), GLOB.taur_list.len) /datum/dna/proc/mutations_say_mods(message) if(message) @@ -180,10 +209,10 @@ /datum/dna/proc/initialize_dna(newblood_type) if(newblood_type) blood_type = newblood_type + features = random_features() unique_enzymes = generate_unique_enzymes() uni_identity = generate_uni_identity() struc_enzymes = generate_struc_enzymes() - features = random_features() /datum/dna/stored //subtype used by brain mob's stored_dna