From 007b2bf5802c060c67713307d967e5cb818d4c5f Mon Sep 17 00:00:00 2001 From: Incoming Date: Fri, 5 Jun 2015 20:18:56 -0400 Subject: [PATCH 1/4] All of WJohn's Lizard Sprites are finally in game! Each portion individually selectable upon character creation, the number of lizard combinations is bordering on absurdist with six customizable fields. 36,864 unique combinations! (309,237,645,312 If you count color variations) Never feel like you can't be unique again! Have fun looking fabulous as the crew beats your special little skull in! --- code/__HELPERS/global_lists.dm | 8 + code/__HELPERS/mobs.dm | 16 ++ code/_globalvars/lists/flavor_misc.dm | 7 + code/modules/client/preferences.dm | 103 +++++++++++ code/modules/client/preferences_savefile.dm | 18 ++ .../mob/living/carbon/human/human_defines.dm | 8 + .../mob/living/carbon/human/species.dm | 45 ++++- .../mob/living/carbon/human/species_types.dm | 2 +- .../mob/new_player/preferences_setup.dm | 64 +++++-- .../mob/new_player/sprite_accessories.dm | 169 ++++++++++++++++++ ...Incoming5643-Lizard-Hypercustomization.yml | 5 + icons/mob/human.dmi | Bin 70121 -> 69474 bytes icons/mob/mutant_bodyparts.dmi | Bin 546 -> 11196 bytes 13 files changed, 420 insertions(+), 25 deletions(-) create mode 100644 html/changelogs/Incoming5643-Lizard-Hypercustomization.yml diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index f171be733e9..17c6de65b8b 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -13,6 +13,14 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, undershirt_list, undershirt_m, undershirt_f) //socks init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, socks_list, socks_m, socks_f) + //lizard bodyparts (blizzard intensifies) + init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails, tails_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, snouts_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, horns_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, frills_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, spines_list) + //Species for(var/spath in typesof(/datum/species)) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 20c38174275..60d83afb78e 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -36,6 +36,22 @@ if(FEMALE) return pick(socks_f) else return pick(socks_list) +/proc/random_lizard_features() + if(!tails_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails, tails_list) + if(!snouts_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, snouts_list) + if(!horns_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, horns_list) + if(!frills_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, frills_list) + if(!spines_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, spines_list) + if(!body_markings_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) + + return(list(pick(tails_list),pick(snouts_list),pick(horns_list),pick(frills_list),pick(spines_list),pick(body_markings_list))) + /proc/random_hair_style(gender) switch(gender) if(MALE) return pick(hair_styles_male_list) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 6271cceb754..ddf1e7f3809 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -18,6 +18,13 @@ var/global/list/undershirt_f = list() //stores only undershirt name var/global/list/socks_list = list() //stores /datum/sprite_accessory/socks indexed by name var/global/list/socks_m = list() //stores only socks name var/global/list/socks_f = list() //stores only socks name + //Lizard Bits (all datum lists indexed by name) +var/global/list/body_markings_list = list() +var/global/list/tails_list = list() +var/global/list/snouts_list = list() +var/global/list/horns_list = list() +var/global/list/frills_list = list() +var/global/list/spines_list = list() //Backpacks var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel") //Female Uniforms diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 47cfb2c51db..ce6f5216aaa 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -62,6 +62,13 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set var/eye_color = "000" //Eye color var/datum/species/pref_species = new /datum/species/human() //Mutant race var/mutant_color = "FFF" //Mutant race skin color + var/lizard_tail = "Smooth" //Mutant bodypart prefs (currently just liz-biz) + var/lizard_snout = "Round" + var/lizard_horns = "None" + var/lizard_frills = "None" + var/lizard_spines = "None" + var/lizard_body_markings = "None" + var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity") //Mob preview @@ -247,6 +254,60 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "" + if("tail" in pref_species.mutant_bodyparts) + dat += "" + + dat += "

Tail

" + + dat += "[lizard_tail]
" + + dat += "" + + if("snout" in pref_species.mutant_bodyparts) + dat += "" + + dat += "

Snout

" + + dat += "[lizard_snout]
" + + dat += "" + + if("horns" in pref_species.mutant_bodyparts) + dat += "" + + dat += "

Horns

" + + dat += "[lizard_horns]
" + + dat += "" + + if("frills" in pref_species.mutant_bodyparts) + dat += "" + + dat += "

Frills

" + + dat += "[lizard_frills]
" + + dat += "" + + if("spines" in pref_species.mutant_bodyparts) + dat += "" + + dat += "

Spines

" + + dat += "[lizard_spines]
" + + dat += "" + + if("body_markings" in pref_species.mutant_bodyparts) + dat += "" + + dat += "

Body Markings

" + + dat += "[lizard_body_markings]
" + + dat += "" + dat += "" @@ -749,6 +810,41 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set mutant_color = sanitize_hexcolor(new_mutantcolor) else user << "Invalid color. Your color is not bright enough." + if("tail") + var/new_tail + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in tails_list + if(new_tail) + lizard_tail = new_tail + + if("snout") + var/new_snout + new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in snouts_list + if(new_snout) + lizard_snout = new_snout + + if("horns") + var/new_horns + new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in horns_list + if(new_horns) + lizard_horns = new_horns + + if("frills") + var/new_frills + new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in frills_list + if(new_frills) + lizard_frills = new_frills + + if("spines") + var/new_spines + new_spines = input(user, "Choose your character's spines:", "Character Preference") as null|anything in spines_list + if(new_spines) + lizard_spines = new_spines + + if("body_markings") + var/new_body_markings + new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in body_markings_list + if(new_body_markings) + lizard_body_markings = new_body_markings if("s_tone") var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones @@ -940,6 +1036,13 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set character.undershirt = undershirt character.socks = socks + character.lizard_body_markings = lizard_body_markings + character.lizard_tail = lizard_tail + character.lizard_snout = lizard_snout + character.lizard_horns = lizard_horns + character.lizard_frills = lizard_frills + character.lizard_spines = lizard_spines + if(backbag > 3 || backbag < 1) backbag = 1 //Same as above character.backbag = backbag diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index f2da84ddd52..9d0cafedbaf 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -187,6 +187,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["socks"] >> socks S["backbag"] >> backbag S["mutant_color"] >> mutant_color + S["lizard_tail"] >> lizard_tail + S["lizard_snout"] >> lizard_snout + S["lizard_horns"] >> lizard_horns + S["lizard_frills"] >> lizard_frills + S["lizard_spines"] >> lizard_spines + S["lizard_body_markings"] >> lizard_body_markings S["clown_name"] >> custom_names["clown"] S["mime_name"] >> custom_names["mime"] S["ai_name"] >> custom_names["ai"] @@ -239,6 +245,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car skin_tone = sanitize_inlist(skin_tone, skin_tones) backbag = sanitize_integer(backbag, 1, backbaglist.len, initial(backbag)) mutant_color = sanitize_hexcolor(mutant_color, 3, 0) + lizard_tail = sanitize_inlist(lizard_tail, tails_list) + lizard_snout = sanitize_inlist(lizard_snout, snouts_list) + lizard_horns = sanitize_inlist(lizard_horns, horns_list) + lizard_frills = sanitize_inlist(lizard_frills, frills_list) + lizard_spines = sanitize_inlist(lizard_spines, spines_list) + lizard_body_markings = sanitize_inlist(lizard_body_markings, body_markings_list) userandomjob = sanitize_integer(userandomjob, 0, 1, initial(userandomjob)) job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high)) @@ -280,6 +292,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["backbag"] << backbag S["species"] << pref_species.name S["mutant_color"] << mutant_color + S["lizard_tail"] << lizard_tail + S["lizard_snout"] << lizard_snout + S["lizard_horns"] << lizard_horns + S["lizard_frills"] << lizard_frills + S["lizard_spines"] << lizard_spines + S["lizard_body_markings"] << lizard_body_markings S["clown_name"] << custom_names["clown"] S["mime_name"] << custom_names["mime"] S["ai_name"] << custom_names["ai"] diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 9b373ba72f4..6eb1d6bd469 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -25,6 +25,14 @@ var/socks = "Nude" //Which socks the player wants var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack. + //Mutant Parts (currently used only by lizards) + var/lizard_tail = "Smooth" + var/lizard_snout = "Round" + var/lizard_horns = "None" + var/lizard_frills = "None" + var/lizard_spines = "None" + var/lizard_body_markings = "None" + //Equipment slots var/obj/item/wear_suit = null var/obj/item/w_uniform = null diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index aa3f793b677..be71df907ad 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -240,25 +240,56 @@ if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "tail" + if("spines" in mutant_bodyparts) + if(!H.lizard_spines || H.lizard_spines == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + bodyparts_to_add -= "spines" + if("snout" in mutant_bodyparts) //Take a closer look at that snout! if(H.wear_mask && (H.wear_mask.flags_inv & HIDEFACE)) bodyparts_to_add -= "snout" + if("frills" in mutant_bodyparts) + if(!H.lizard_frills || H.lizard_frills == "None" || H.head && (H.head.flags_inv & HIDEEARS)) + bodyparts_to_add -= "frills" + + if("horns" in mutant_bodyparts) + if(!H.lizard_horns || H.lizard_horns == "None" || H.head && (H.head.flags & BLOCKHAIR) || (H.wear_mask && (H.wear_mask.flags & BLOCKHAIR))) + bodyparts_to_add -= "horns" + if(!bodyparts_to_add) return - var/icon_state_string = "[id]_" var/g = (H.gender == FEMALE) ? "f" : "m" - var/image/I - if(sexes) - icon_state_string += "[g]_s" - else - icon_state_string += "_s" + var/image/I for(var/layer in relevent_layers) for(var/bodypart in bodyparts_to_add) - I = image("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = "[icon_state_string]_[bodypart]_[layer]", "layer" =- layer) + var/datum/sprite_accessory/S + switch(bodypart) + if("tail") + S = tails_list[H.lizard_tail] + if("spines") + S = spines_list[H.lizard_spines] + if("snout") + S = snouts_list[H.lizard_snout] + if("frills") + S = frills_list[H.lizard_frills] + if("horns") + S = horns_list[H.lizard_horns] + if("body_markings") + S = body_markings_list[H.lizard_body_markings] + + if(S.icon_state == "none") + continue + var/icon_string + if(S.gender_specific) + icon_string = "[id]_[g]_[bodypart]_[S.icon_state]_[layer]" + else + icon_string = "[id]_m_[bodypart]_[S.icon_state]_[layer]" + + I = image("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = icon_string, "layer" =- layer) + if(!(H.disabilities & HUSK)) I.color = "#[H.dna.mutant_color]" standing += I diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index 7629bfe3bb7..b0fa5d9937e 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -30,7 +30,7 @@ default_color = "00FF00" roundstart = 1 specflags = list(MUTCOLORS,EYECOLOR,LIPS) - mutant_bodyparts = list("tail", "snout") + mutant_bodyparts = list("tail", "snout", "spines", "frills", "horns", "body_markings") attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 5415474439d..53a0433edf8 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -14,8 +14,16 @@ hair_color = random_short_color() facial_hair_color = hair_color eye_color = random_eye_color() - pref_species = new /datum/species/human() + if(!pref_species) + pref_species = new /datum/species/human() backbag = 2 + var/list/lizbiz = random_lizard_features() + lizard_tail = lizbiz[1] + lizard_snout = lizbiz[2] + lizard_horns = lizbiz[3] + lizard_frills = lizbiz[4] + lizard_spines = lizbiz[5] + lizard_body_markings = lizbiz[6] age = rand(AGE_MIN,AGE_MAX) /datum/preferences/proc/update_preview_icon() //seriously. This is horrendous. @@ -48,21 +56,6 @@ preview_icon.Blend("#[mutant_color]", ICON_MULTIPLY) var/datum/sprite_accessory/S - if(underwear) - S = underwear_list[underwear] - if(S) - preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY) - - if(undershirt) - S = undershirt_list[undershirt] - if(S) - preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY) - - if(socks) - S = socks_list[socks] - if(S) - preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY) - var/icon/eyes_s = new/icon() if(EYECOLOR in pref_species.specflags) eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[pref_species.eyes]_s") @@ -90,10 +83,47 @@ for(var/layer in relevent_layers) for(var/bodypart in pref_species.mutant_bodyparts) - var/icon/part = new/icon("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = "[icon_state_string]_[bodypart]_[layer]") + switch(bodypart) + if("tail") + S = tails_list[lizard_tail] + if("spines") + S = spines_list[lizard_spines] + if("snout") + S = snouts_list[lizard_snout] + if("frills") + S = frills_list[lizard_frills] + if("horns") + S = horns_list[lizard_horns] + if("body_markings") + S = body_markings_list[lizard_body_markings] + + if(S.icon_state == "none") + continue + var/icon_string + if(S.gender_specific) + icon_string = "[pref_species.id]_[g]_[bodypart]_[S.icon_state]_[layer]" + else + icon_string = "[pref_species.id]_m_[bodypart]_[S.icon_state]_[layer]" + var/icon/part = new/icon("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = icon_string) + part.Blend("#[mutant_color]", ICON_MULTIPLY) preview_icon.Blend(part, ICON_OVERLAY) + if(underwear) + S = underwear_list[underwear] + if(S) + preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY) + + if(undershirt) + S = undershirt_list[undershirt] + if(S) + preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY) + + if(socks) + S = socks_list[socks] + if(S) + preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY) + var/icon/clothes_s = null if(job_civilian_low & ASSISTANT)//This gives the preview icon clothes depending on which job(if any) is set to 'high' clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 8b42ef1bcb8..84720b1e184 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -41,6 +41,7 @@ var/icon_state //the icon_state of the accessory var/name //the preview name of the accessory var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations + var/gender_specific //Something that can be worn by either gender, but looks different on each ////////////////////// // Hair Definitions // @@ -1046,3 +1047,171 @@ name = "Pantyhose" icon_state = "pantyhose" gender = FEMALE + +//////////.////////////////// +// MutantParts Definitions // +///////////////////////////// + +/datum/sprite_accessory/body_markings + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/body_markings/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/body_markings/dstripe + name = "Dark Stripe" + icon_state = "dstripe" + +/datum/sprite_accessory/body_markings/lstripe + name = "Light Stripe" + icon_state = "lstripe" + +/datum/sprite_accessory/body_markings/dtiger + name = "Dark Tiger Body" + icon_state = "dtiger" + +/datum/sprite_accessory/body_markings/dtigerhead + name = "Dark Tiger Body + Head" + icon_state = "dtigerhead" + +/datum/sprite_accessory/body_markings/ltiger + name = "Light Tiger Body" + icon_state = "ltiger" + +/datum/sprite_accessory/body_markings/ltigerhead + name = "Light Tiger Body + Head" + icon_state = "ltigerhead" + +/datum/sprite_accessory/body_markings/lbelly + name = "Light Belly" + icon_state = "lbelly" + gender_specific = 1 + +/datum/sprite_accessory/tails + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/tails/smooth + name = "Smooth" + icon_state = "smooth" + +/datum/sprite_accessory/tails/light + name = "Light" + icon_state = "light" + +/datum/sprite_accessory/tails/dstripe + name = "Dark Stripe" + icon_state = "dstripe" + +/datum/sprite_accessory/tails/lstripe + name = "Light Stripe" + icon_state = "lstripe" + +/datum/sprite_accessory/tails/dtiger + name = "Dark Tiger" + icon_state = "dtiger" + +/datum/sprite_accessory/tails/ltiger + name = "Light Tiger" + icon_state = "ltiger" + +/datum/sprite_accessory/tails/club + name = "Club" + icon_state = "club" + +/datum/sprite_accessory/tails/aqua + name = "Aquatic" + icon_state = "aqua" + +/datum/sprite_accessory/snouts + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/snouts/sharp + name = "Sharp" + icon_state = "sharp" + +/datum/sprite_accessory/snouts/round + name = "Round" + icon_state = "round" + +/datum/sprite_accessory/snouts/sharplight + name = "Sharp + Light" + icon_state = "sharplight" + +/datum/sprite_accessory/snouts/roundlight + name = "Round + Light" + icon_state = "roundlight" + +/datum/sprite_accessory/horns + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/horns/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/horns/simple + name = "Simple" + icon_state = "simple" + +/datum/sprite_accessory/horns/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/horns/curled + name = "Curled" + icon_state = "curled" + +/datum/sprite_accessory/horns/ram + name = "Ram" + icon_state = "ram" + +/datum/sprite_accessory/horns/angler + name = "Angeler" + icon_state = "angler" + +/datum/sprite_accessory/frills + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/frills/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/frills/simple + name = "Simple" + icon_state = "simple" + +/datum/sprite_accessory/frills/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/frills/aquatic + name = "Aquatic" + icon_state = "aqua" + +/datum/sprite_accessory/spines + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/spines/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/spines/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/spines/shortmeme + name = "Short + Membrane" + icon_state = "shortmeme" + +/datum/sprite_accessory/spines/long + name = "Long" + icon_state = "long" + +/datum/sprite_accessory/spines/longmeme + name = "Long + Membrane" + icon_state = "longmeme" + +/datum/sprite_accessory/spines/aqautic + name = "Aquatic" + icon_state = "aqua" + diff --git a/html/changelogs/Incoming5643-Lizard-Hypercustomization.yml b/html/changelogs/Incoming5643-Lizard-Hypercustomization.yml new file mode 100644 index 00000000000..2851e7a2230 --- /dev/null +++ b/html/changelogs/Incoming5643-Lizard-Hypercustomization.yml @@ -0,0 +1,5 @@ +author: Incoming5643 +delete-after: True + +changes: + - rscadd: "Lizards can now choose from a wide varity of physical appearances in character creation! Sprites made by WJohn. Hiss Responsibly." \ No newline at end of file diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index 7b47bec096283311a36f908ab253b2a6b831e1f2..8f924ee663219a5eb8d637f7a0f09dff6bbfe9cb 100644 GIT binary patch delta 48051 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 D&8_6? delta 48703 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 S?j1wm-!)wWoiZ)!;Qt2_k;!2I diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi index 8b62aabb7daeae0dd7b1fcaf782a69b93b7ca7ae..16cd8e0dd2d829f6a602ef1648e6b238ba084df5 100644 GIT binary patch literal 11196 zcmcI~2{={n+wL-i%#zH6N=2q*o-!pBMVUe*$vkg!duNt8nKG85k~uTmOhOVe+uOLY zv9Zk?`@H)7{^$Ci@A{wbJKu0zm&;nqdf#`g_qm_@xu54*5qEWN&{1s>OTxqXXBJXE zkUpSYqmFO7P~lslKW3|ug$&X+q1GetT7}|{dNI4ppS(>Jiz**i8xJ|lUEr*H);hh4 zESxO(t||FgDPJhZ(Z+30%lPRP4skvLUyhww+J_HP)r_UKHn9mcdQunq!Zpme-+9PI zXeu1E^`vrz$FJOOzjA{%kxM*I@6wGi`|%C(cbS5WX1qhMt8!ZMe!BB}E0`{oNs`ZvbVu!6^okBijt8yweoUi2JUl6UFje%FQx8>h zn9$a5tp3>zO!|v%^*nA^ky*31#0iwEDosb%jL2qMoBPzde>;g!ZFWpS!g|}jNXg_4 z42ujd=@I=d9lQY1r#Epoc>PC}0oouk#h}1Te z^G8x{mGKl9{60!e-SK~#$sm?wSgM3e?Om;#SG+2p_R!3X1%eoh2w!QyQ$=cgYNHZc3Vop{YpOWHiM56S$lzD!v4-O-^QZHoNiHQ(2&S0;k5FNxsgP z%_tCG;j62zPW_ZY_rCuwiNhmul~FK{!>$wuovkE?UV%Y*m)wJL6UQO@mP^qj*2((8 zjK7<=;ojAQgM*pRf9?e6f4c9Mr$|vH?9Ddhgmzr3*)Xl_x+{{bq5j@T`1|PSoA9bK z+WNHs)cXMTguoTJqz)Y#O|iH7MbVIut%>pBFtQ>|0fPQ;G(c6IglgLWl6YA|6$|L{rZTd1(d;k_l= z$>`|l?Va|H4r4fj#_H-X+unUCD2NEx`k;67Nl(z{A?#B){1Lbs9uBU5aAHqza(C}Ht#WzcNpHi{ zcyi|P8tl6&yx)?!WWqUu3WL}$k2 z6niZs^k!NI@IRokum-Pv zgU4rfc&0FP^`?%T?wh1I{_qwST5~@$lCZRRDRMDJe$H0@Fw5JFJ9$^V^9St+eqWT| z(~;1spJQvkZYy8I6bfeMWQt#3Ul)jFuF<;s$9w7+{wqH8ugvxDdgX!;LU|WW#{7WK z()Fz-sob^2y5x+Gk*k5D_zwJv|Wa&@(^I)DIMN@hl6TI|*oA9`I1)}=#R00)fzM#GWx zw}aX$5f9vb_80R)7%3P-z>QxIz0L>g(xMrZb{mJ+93?q^J(GNIQqXQZrt*2vuGXBh z*_L+NuKaRBLV_w4c4U0~NrpgTMMXsv-6O+FqEv7KSL?A03or~9mo^FUudqAbFPjHPvTpQHQJX z&Q&$PbbtA*H#QItotgN;`^?0=9R*#cnos-|&}*Z>u|D#5on8OxOyqsOYsu8dFl`l< zJyn5bE*P|9Y7GDsA?ZO1y^4Tz#5voyd=J0PkgvNMFOoy&DF4v0lg7#aDk=Xb0hNv> zAo~iZBt-_oXa5lyv=mS~JvLbZxd1IngypL>7Ml(qA*9FRtC7*s=}wBX5`R&L&*F#V zQ`}DAB-z~eCLn!gGaIAr?d{uVlCEl#Q3968-P`Qfo!i4?v8uAEoOZwve#qmra{7LX zVD3k2s!jS}G6uYw)6&v3)g{Wxm=a%*RhblM7Z@L9Ozv$N=?PGsANX=DaGVR0qr>7q;ndc4KmDj6nj@V?~i)kXzru&`}c44)(q=~wu6JZ)b#Yz@tY!61EJIw@wK{AfifK6{bQB(wWvb^ z>kc-$0AyYTWHxMk7y8Q;UWR}3!_^B86+QCW@KIJ)c7DEHmKE`BYP$r)rH9V-=aWUu zwC`w*SPLh20hAL^MDsU2Pd_J#YpYQfYcPi8y9aHq*5ba;btN0eYOw&z98V|pae2sg z%sVeYc4gy^j?VX9_>udiGm)hg6&H8|Hkrl>{HU%V3eYF_I(Yn|&aUcS4M`1 zpEW$|-*|i?P6tMCZW(s!SO~ABQA7kSKT$YXYq`NA7#@3zz$1ZhuuOy1XpsR%^XSMZ zhW>{H!+(Iyh4}v+rVwg>i;-+fu)V;W?$t)=*Y8e8dNd&ffOI(h7XtS-xlDn= z0!ZuYySGxRb4^a}a?ewJC4e57j8A5A&5$inAUMY3$9UCleOs=A*wR%{Sh&3z1fE9w z!z=j}@kZ;4v^SZVNhKxXOiX)gEesm!t%;Z#vrwB%A5C?2tf5K?v;1x|?Q}j{gN7RFF(KkuQU4W4=WoFM<^tK^59b4=DgFSXiiz?+r&a$0=>048%RT)MYNUd0 z{w<@aMW=%(b4*NPD+S}Xfi6qY*qvmnRMQNvTEsY^I({}K*b8gl4L(Z{IRmeIH5XifM za_Ge1JCK-PAl8P`8-W;~?z2)pq&{05S!(7oDkW0!@N3sa{*5%$fo4)tl3q#r&eHx$ zU({ERBiG^4Q3;^T5(%rdMTh>?E>omfx=*T*AY#J1;c$CwBl6J!e>vwf)K0XSX1oVX ztVv{O)x`)rPTZrzCBuz&PUmlf`G)$H%a#kYlW0!{TYu!)F)E9*{IIYVo~hzr-oaKz zU<*Lhjub`8Y{+0w+G;{%OkJuNhHUs>K%(aOSGNDRDbm@~Ab8~BgDy5dhT|qDd3c}2 z--R9J>>u7tgZJV?3qv3Z#y7wR1>w@o;!;v)I`h)^kj}5fh?JC+?RW)!;WN<~pN*`B zo~EWIm9EmM1$mcOv++uAuv-XI`Zt_TfEJs*n}` zcQr$v0}Z?_o!<|Juv=CWtGm0qD%bvGTxdqg|IiTvk)+=C_Cn%2Qwk9@*GM6izl9>W z*fopayJ&w>Ln$kdh5|Zgek==77nPmtjQ+^N54Vy*FlUB-Eet^Pq0Tvd;dR-TBOLua z$3c6(UspL1lLc2A>^ceAZe=7OEv1+C{E^&tK!@j+QWye6{jK2~L_7BI82zo2mz%1+ zkM=NgUJZndn`08BDsQ+6lJEUa6m55?Y<=f>Nl&p302TgTC_Dfq4Kj%K_V!so%C83p zAB>ER-5LZVOv=fsu6hS?CkZu;UGhfO94BnyLGqmB;!u^q4hWSTO!1<~-RW=ArgRet z9_9+$fEOdFuG2z4U6&ap$Ip!Sc`uiAP(6mUE|SW$Ik1g6q4>i|R8SFy*INQ?<)b0U zwz=TqzeT|RRgcAU0BE%D1oZo$aAL!#+RDo0lwR{~1yS*GXmlB?{29gDhRu3-kDrB} zp8mE{R`SGznXOcsgpv}^l3C-@R?Vf;)Q>yZ*xBz@ccqx=^x{Wj%T2BfzJVMIkw=S& zDFwnbv+RLP&qwkO85xQ2W|BuYOPmczi*xx&2+0O;Hv}|fEPY(*uK??Uagnt8+a&r{l`1`7~ zG;5cAc2-Bf%=0x}E~^V4G7~Zhu8PEEwuyG!w)eob;F7uk$~B-tO9Tnc&4DApRV$KO zW8qs%gX!GLCqHU&Mgh*S6}St-Z+R17rt_3Zdp#}`#~g^l5}!X5`Tst)8ST; z?DMs2PdoZE;qfh=r^cl;#D9Z_ko8(kcW`#*O(m<D^WZ&(n9hTaM?v!k zlpQ5lzMFX7Ij-Tg@-A*#etFnytbojO%+9ivYtN08nK=VP!?hJEy z;Ujl=`DH@ijagXeS;B+kyxUBI4Bwzij~mvKuSyu@8)ccLh9mJ?_r zVt1QtVR@}z9L-S%d7}0Qvs-M~yfGYA3{&#R$jEjA(OeWF@UzW^#Lceb9_YR&+dBKh zde!qV&-EZ-DZ;wgFWf#gIXPMFu=@Fk=Y(TD<R2k+NR znbz{|va+(gQ0&Hr+Y@YSOha9r|Cf`W?q8NA)Iaa&1@bl2Sdj6v-lr#lqIG_r=nPBa z{K3#k_5q%Thl>1OJDb;Hw8%X}uix()@7kcSKUqe3Y(=8>goP-I!OA~= za=syJ{iMY?b1@GcKN58&^3fTu7`{`E=q-UlZc0NTMQ=-Gh+oLZ+_f!XXh~`%3KagoRZ)h4vZtuRas=gbR|EC}+6CgkjL8d^` z|9^(>zbb_8>J%w25RfI0K+0$;IY-+O!a)KtE(#!o615BOUuI{DpPRF`;*I=V{CpUl zk&(f|6mL?H6kY>CGBV)~df}DJOMxKQg;|Le-#)gOAzs%C}3f%F)${G`nhvI!9jo zZKBYW;35M-^&A%w8uV&1mtG{lH-Vsqwno4R5XI2YgP+hVD{Jev?(XhZ*sKjW3J>=O zd4ulwA`gIh!_k%~6H|nH2Go-MhxRMqk#kwg|N0tzO*q+3qoR-Gc)#h{TuyVlc!>N&$t{NP zdr3%2wsa|Z`h)?DE&f=mXc*-1^y!5gf>G}U5F}wEF0}Fv%Q$y&|ALRd=@`$DR^6xz zkAGqra)$$y_t>zx_b;#S-&l~L^rtptXyP05o(#>oe>pWx+Bw%QjJ)$YrGKC#jPx5l zeFJ?SxSp8EqMtwL=0L{CB6nP3{rTrL{+rcqFb^$DqbvOP!uRhljg5`PkvPHCt2#iZ zR4A>OAY`5?3?=My+_E#%s(7o!Pz4^tq~Oe0*n@y47{c-MMA^Gy-i)tBU zNFV%DBhPboUo631i+!xh#0Uuq&3{i6Dv4qV6*4URn9dvKw}22p>lHL+|7C!McVsb$ zTjiud@5okT=-KN3>Ga13ledxdGNi|gzof5{m$TS>`A?_Gb|E5iXsRl((y_T05PkV? z8+-vrnyV_KKT6{B1e88^U^tGSg2ffZt!S(L$+rT$USfg%J z`EkbO(o5Xw3UmqCu+_R3eCN}B3GmoDS+~mN1uegDnzw4b`;jqIoRufC>i^L4_YbUc zhAKg(xw!cPTb)S5?w8cm)NwIvC@YUCqXA>ydJFAxDQ&5a_hH`HPYj~Ag!N9RSF zn0PdQX62NHV(!Cd+%7+h&3J!}oIEQZy13tnRTko31d67yUgHTe~?qAh3$nXJK zl_@IG^Y|iQzjF%202HPmlU@KJUOX~lymAU*w1-5|PlDQ*!4+tQzOk%V$?uCuRnQKJ zm4*MRxTLKD5kwJ?0=;%_IIK`C1j!-{CRHI%Ow>MK23P<@2gS+Mt2W)BrBFr4wgTLy zBj-LJb&|qzz#%VfAnulLfJ_WTfj)=Yxl>FN={xvM1qvGbonhPR23p~`Ney*7B<|z5r7gF73~7c zo+21zUA6g<0_bWo3&)t(OJeVDHu)v_pdX8}u6!Qwqnt!I#qh*3F{3zy4I!5SA ztii{ohe|b#ll=O%F&`)3#KY0^v^|SZjLnpd7v z%^?G*ya`xCp;wa*rHkoXnX6Y5+&|^l`QUSz!@6Erwr)wCW2IO0ax0mCJ`QHw*cy5y zk2)dG-3S<~k3@iGT7j~zu8wQWsKxEm@9QILAIJ>UDaX0F#Yz$GjT6>WTw>fVq(4c# zZcx$&hq*U)s!^sxe-8zOB*ALGO8Ji)qJ($1$DG}_=^xx%4?w-vK0ouzXAtc6r9|xu zJz;Mb5zH2V^;kWB4v(4De7ylet()r?P8F~zk&?kSHa6BEM11NUD!6~S8iexuyrC5t zqTDX3!Q4`|)J2k4XntOL$w&`Fii8wdtH~5(tO47+>B8V;lbzKry$Xa@6^7Vh!&Uww z*SbghclkAahZ%Xcee8k^)zh*5@*|9A;s+>7u;~mILSN46%!IKITeCmOAeYusc{S3n z-Vz#3XP(?LRN6K5OLke?gowuT|9&sA$qRHP5!btWd(*H(Mfnp?)Z7pD_VxrS zN26+iz~~R82T0D%&6SWn0yS5VAh{jxZ;fwZhurn`^*cz#m)7%gb4O=bsY8r9beUI! zPc*W_W{98|h;f>zv0g@bt&T^0pedV))T*UmikImSJxwhkD?3uiw_E?weu1k+gxKC5 z3X&$dDJ76ar-QE74_q5lbH>aVH=?S&^4e+Y6QHQ!wzn~-9y~EU{cdDp;yi*9)PPiY z9fnw!5w$C)p*#Q#$R^#RP`uDR4v)u!##RG&6{thHIlwwweJ$q4KfJ}~F} zbX(*vyYktMxvuKAHjNpd%r8Yn9k3&NC#N3=XiDX{&d!@#YFU*|6B3-9oExADtPe^o zkBy1la2Te+yeJK{sH|qvH@#2KjP0RDMml{mhcb!R+w;hHejd|M?DI{5;}U%cV~lR4 zyOXgJgN-x-h=L+3vu*pKLiT9L;wbj}=z;F-+iXnn7MPJ0aYGk+Z>q7evC;ESUMkKG zIY^ChPCTr1N_|@9GaHz4yt_BB{^@4CpyT7VGFm>|&fw%fW9l?d^uA*J2JZK*a>SuR z&Fk^wX0ZK09(Rs(yeoX`p6(R8^%CM~u6DQjH!8iqeG`7LE-M zN_3^=^X)bY(1BIe@JPrNj_CrzgbnMG? zY}3>v^Tdx|df=cQ40e2_m}Wzv*TKPo)`RbU!?Ax@VX{{acI1^v6wb<7aBqL^@9XQ^ zmi>5mc)0!G)99A1H@-(Y+KksV%4TQ}w9>kUhotdv)1-Nnxu=4h+^7=H9@FqpOpyC{ zJldPqEwaIHqSR%0ot2gK&fB|;@i|_q)R~dA?gxH@uivZ1-Mb=+hr8V|P9a7_oCN7x z22!pI)F6N>t5#pGaX;Q-Ja65akhe$;NEpy0eIz%E@cwTU$rpSk6zFPa;vjV8O0l0zGIh(t5Q@DCnmK*X z>x_geFb#N2nC!WLKVxy${-oY29*w?%VU5#D2TAI#yr%}tG2O&_#%XZB;p)C;v!E4S z5|(q#j{VG^H(ah6dQhyTJg+>q>dE5KK!ql875uV0qK4qVA?*zlNGZ>^C=1=|mGYx9 zntg^IVVu4E?Cgc@0~1qRt$L{#apY-lQM)I@!pAjBS{LoL%lErrXI;4{zRq}I5z|Vv zwndH6GeKzi5upH$>3Yhmc(~yi49Yyjv}kB7c7$Fsrjl=Dz1Fi40E3d&=G>ent;q}} z_Tp*kh<(ZQs@2f80~@cS1UG>gu@1pw0n->J-pHOefmV9SiS{~r?$@N7*Vfji<G!-iJc{4#9s61$*%n`w-P1J?z4CCcO`r5%-Qm`6dP;?hiF+r+D!$bsU#& zK~MGks(WKMTnf{GlDE{jri4Mn`@C^h^8rZd+25}jUKcg5`{-unE42I&y5QM;cAi)$ z{G(xhEDr3Y@uNqq@<(lvtg*|Cn?ZjR_wlz5*&vcah}*uPbNry=uL9Gbk_G*BhU)}P z^qUzkKIL(^oGg8j@8)>9vJLcj+F(n?C1X>Z=VJP?u0n9;p+r@VvM z+cQ#4!vy6qHU=DjRPgxm^tblsj~_qI9*d*9deqt){D)hLX1Gw3U+0*ne#Lmu6tOtrfAe6+wU0i-D z(eiYp>^#PTl3nl>_f>UR|6%$R>BYp>vt0bF7T>gUI9g&-U_dAk?Ri>uNYc|}((J2B z(Xpe@>)}U;ow&57P*kta*ha%2iAR09d-2=C!pCJCu965A(tdk4+-;-pZYvZW))#j$e4jp`98oie<=7L!ioAQz4F>G4G1I=SA}14D zbtg7)1j4~%5VM)u_<9a0Lgdf*2)WDmrRGl)N8dP8*$lo?g?$zsNKcfFlJ@2`cPSlu#YffRjv+PFZa6FE!V#^hGrP+7 z?W0KhqC%EkksN(y5UqKl@UO$?eU{NU!0~Ao!$mluC^S)HFe zIcEc?-<8B*&Hu9^`FM3*#Tm}mf*I2ER{l)3D4H5Pwzva#;T9hLD&Yr-4ahscudJ?q z_H3-Jtvxj~)*F~YRBPIc#cDtEJMne?AnX$kS~W!*VCWTZn^ke zvnvTpTVd(j##UjA0sO(bD?2YtV9p9Z@O?L5CAv5Acf+NP-w=ykMHiF?u%1@ETjXTD zq3HH@&G)SQ!|OC5&GA3Wq{$+D{kfK4bCvV-aTj{=$4xiMw4UKizwN7^@OyRNeQl0# zZUIN-xD(vkl<6$nm!HJf^3wA9V|51%`2<%kF9?r;);~OBj>ZKbVf6(ikC-bjy+8T| z<^9-TF=AM$9MO_}-{AGV3C~5z?e9ZX&Kl2(ROyv|`>?pZ>A-PG+v7#uyxH_-S3`%6 zO>tH9vuw$;M49OZadMlsM*V>{E!h%z}M z#F%?`lF~GP@b-AvW65^frERJARi`60%8|S3aA+%4*xAL@TZAkhp_tq{;gNKENB|l(jGgyN<~INU z0S`$;K~#90?b^)_0WlPY;VR?jF6v|=E@LtgYnLD*)^;q##%(hjLsX?rkNA0?mFe(( zx}51T1^@uyt8{eZo$0FPOJxex{8^)$@EdT%jz?JhY+I;zT>09l4Ym@RPYv1yG z6>3;T<=2bH<)REV^f#gQ`}}fNd%yhjMxz(r-z^dG{QpLAx%KQ<;r-w} z1J{1GTZR1HvAvk?@;40jb$d~s@)rzmU&&ZGWG?`K@8DF^N4f>h^fU{sRH_AbysmOS zl0M`M=MMk?0B_@bi@$#U5SJf+{t%O&bp8+_?fd}%008(L5%WVyBIbwEM9dGRVSWg} kk79o473PNk0KjKE0~BQ>G7upBc>n+a07*qoM6N<$f;S8H-v9sr From bff351c555760b16e8646b6362a4114ee15c1463 Mon Sep 17 00:00:00 2001 From: Incoming Date: Sun, 7 Jun 2015 21:05:34 -0400 Subject: [PATCH 2/4] Intergrates lizard parts into dna stuff so changelings can properly steal them. Turns all the lizard options into one associated list instead of their own vars, for tidiness Shuffles horns behind frills in terms of layering --- code/__HELPERS/mobs.dm | 2 +- code/datums/datacore.dm | 1 + code/game/dna.dm | 17 ++++++++- .../gamemodes/changeling/powers/tiny_prick.dm | 2 +- .../gamemodes/changeling/powers/transform.dm | 1 + code/game/machinery/cloning.dm | 4 +- code/game/machinery/computer/cloning.dm | 5 ++- code/modules/admin/verbs/randomverbs.dm | 2 +- code/modules/client/preferences.dm | 38 +++++++------------ code/modules/client/preferences_savefile.dm | 26 ++++--------- .../mob/living/carbon/human/human_defines.dm | 9 +---- .../mob/living/carbon/human/species.dm | 18 ++++----- .../mob/living/carbon/human/species_types.dm | 2 +- .../mob/new_player/preferences_setup.dm | 20 ++++------ 14 files changed, 66 insertions(+), 81 deletions(-) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 60d83afb78e..4adc380f245 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -50,7 +50,7 @@ if(!body_markings_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) - return(list(pick(tails_list),pick(snouts_list),pick(horns_list),pick(frills_list),pick(spines_list),pick(body_markings_list))) + return(list("tail" = pick(tails_list), "snout" = pick(snouts_list), "horns" = pick(horns_list), "frills" = pick(frills_list), "spines" = pick(spines_list), "body_markings" = pick(body_markings_list))) /proc/random_hair_style(gender) switch(gender) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 78728738681..556bafff59c 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -261,6 +261,7 @@ var/record_id_num = 1001 L.fields["identity"] = H.dna.uni_identity L.fields["species"] = H.dna.species.type L.fields["mcolor"] = H.dna.mutant_color + L.fields["lizard_parts"]= H.dna.lizard_parts L.fields["image"] = image locked += L return diff --git a/code/game/dna.dm b/code/game/dna.dm index 128b7aa1fc6..707fcb2f264 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -22,6 +22,7 @@ var/blood_type var/datum/species/species = new /datum/species/human() //The type of mutant race the player is if applicable (i.e. potato-man) var/mutant_color = "FFF" // What color you are if you have certain speciess + var/list/lizard_parts = list() var/real_name //Stores the real name of the person who originally got this dna datum. Used primarely for changelings, var/list/mutations = list() //All mutations are from now on here var/mob/living/carbon/holder @@ -37,6 +38,7 @@ destination.dna.blood_type = blood_type hardset_dna(destination, null, null, null, null, species) destination.dna.mutant_color = mutant_color + destination.dna.lizard_parts = lizard_parts destination.dna.real_name = real_name destination.dna.mutations = mutations @@ -47,6 +49,7 @@ new_dna.blood_type = blood_type new_dna.species = new species.type new_dna.mutant_color = mutant_color + new_dna.lizard_parts = lizard_parts new_dna.real_name = real_name new_dna.mutations = mutations @@ -131,7 +134,7 @@ spans |= M.get_spans() return spans -/proc/hardset_dna(mob/living/carbon/owner, ui, se, real_name, blood_type, datum/species/mrace, mcolor) +/proc/hardset_dna(mob/living/carbon/owner, ui, se, real_name, blood_type, datum/species/mrace, mcolor, lizard_parts) if(!ismonkey(owner) && !ishuman(owner)) return if(!owner.dna) @@ -146,6 +149,13 @@ if(mcolor) owner.dna.mutant_color = mcolor + if(lizard_parts) + owner.dna.lizard_parts = lizard_parts + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.lizard_parts = lizard_parts + + if(real_name) owner.real_name = real_name owner.dna.generate_unique_enzymes(owner) @@ -193,6 +203,9 @@ character.dna.uni_identity = character.dna.generate_uni_identity(character) character.dna.struc_enzymes = character.dna.generate_struc_enzymes(character) character.dna.unique_enzymes = character.dna.generate_unique_enzymes(character) + if(istype(character, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = character + H.dna.lizard_parts = H.lizard_parts return character.dna /proc/create_dna(mob/living/carbon/C, datum/species/S) //don't use this unless you're about to use hardset_dna or ready_dna @@ -972,7 +985,7 @@ /datum/dna/proc/is_same_as(var/datum/dna/D) if(uni_identity == D.uni_identity && struc_enzymes == D.struc_enzymes && real_name == D.real_name) - if(species == D.species && mutant_color == D.mutant_color && blood_type == D.blood_type) + if(species == D.species && mutant_color == D.mutant_color && blood_type == D.blood_type && D.lizard_parts == lizard_parts) return 1 return 0 diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index 936f3f47662..280a6e468f2 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -91,7 +91,7 @@ var/datum/dna/NewDNA = selected_dna if(ismonkey(target)) user << "We stealthily sting [target.name]." - hardset_dna(target, NewDNA.uni_identity, NewDNA.struc_enzymes, NewDNA.real_name, NewDNA.blood_type, NewDNA.species.type, NewDNA.mutant_color) + hardset_dna(target, NewDNA.uni_identity, NewDNA.struc_enzymes, NewDNA.real_name, NewDNA.blood_type, NewDNA.species.type, NewDNA.mutant_color, NewDNA.lizard_parts) updateappearance(target) feedback_add_details("changeling_powers","TS") return 1 diff --git a/code/game/gamemodes/changeling/powers/transform.dm b/code/game/gamemodes/changeling/powers/transform.dm index 7b13ecf03da..9c6dad4d2d8 100644 --- a/code/game/gamemodes/changeling/powers/transform.dm +++ b/code/game/gamemodes/changeling/powers/transform.dm @@ -19,6 +19,7 @@ user.real_name = chosen_dna.real_name hardset_dna(user, null, null, null, null, chosen_dna.species.type) user.dna.mutant_color = chosen_dna.mutant_color + user.dna.lizard_parts = chosen_dna.lizard_parts updateappearance(user) domutcheck(user) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 87be0acbdf5..69f0b6d36e5 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -122,7 +122,7 @@ //Clonepod //Start growing a human clone in the pod! -/obj/machinery/clonepod/proc/growclone(var/ckey, var/clonename, var/ui, var/se, var/mindref, var/datum/species/mrace, var/mcolor, var/factions) +/obj/machinery/clonepod/proc/growclone(var/ckey, var/clonename, var/ui, var/se, var/mindref, var/datum/species/mrace, var/mcolor, var/lizard_parts, var/factions) if(panel_open) return 0 if(mess || attempting) @@ -183,7 +183,7 @@ H.ckey = ckey H << "Consciousness slowly creeps over you as your body regenerates.
So this is what cloning feels like?
" - hardset_dna(H, ui, se, null, null, mrace, mcolor) + hardset_dna(H, ui, se, null, null, mrace, mcolor, lizard_parts) H.faction |= factions H.set_cloned_appearance() diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 38489cb1497..5c30286ba75 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -35,7 +35,7 @@ if(!(pod1.occupant || pod1.mess) && (pod1.efficiency > 5)) for(var/datum/data/record/R in records) if(!(pod1.occupant || pod1.mess)) - if(pod1.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["mcolor"], R.fields["factions"])) + if(pod1.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["mcolor"], R.fields["lizard_parts"], R.fields["factions"])) records -= R /obj/machinery/computer/cloning/proc/updatemodules() @@ -329,7 +329,7 @@ temp = "Clonepod malfunction." else if(!config.revival_cloning) temp = "Unable to initiate cloning cycle." - else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["mcolor"], C.fields["factions"])) + else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["mcolor"], C.fields["lizard_parts"], C.fields["factions"])) temp = "[C.fields["name"]] => Cloning cycle in progress..." records.Remove(C) if(active_record == C) @@ -381,6 +381,7 @@ R.fields["SE"] = subject.dna.struc_enzymes R.fields["blood_type"] = subject.dna.blood_type R.fields["mcolor"] = subject.dna.mutant_color + R.fields["lizard_parts"] = subject.dna.lizard_parts R.fields["factions"] = subject.faction //Add an implant if needed var/obj/item/weapon/implant/health/imp = locate(/obj/item/weapon/implant/health, subject) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 87ebd141d1d..9159d969197 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -298,7 +298,7 @@ Traitors and the like can also be revived with the previous role mostly intact. //DNA if(record_found)//Pull up their name from database records if they did have a mind. - hardset_dna(new_character, record_found.fields["identity"], record_found.fields["enzymes"], record_found.fields["name"], record_found.fields["blood_type"], record_found.fields["species"], record_found.fields["mcolor"]) + hardset_dna(new_character, record_found.fields["identity"], record_found.fields["enzymes"], record_found.fields["name"], record_found.fields["blood_type"], record_found.fields["species"], record_found.fields["mcolor"], record_found.fields["lizard_parts"]) else//If they have no records, we just do a random DNA for them, based on their random appearance/savefile. ready_dna(new_character) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index ce6f5216aaa..6a5421efc2b 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -62,12 +62,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set var/eye_color = "000" //Eye color var/datum/species/pref_species = new /datum/species/human() //Mutant race var/mutant_color = "FFF" //Mutant race skin color - var/lizard_tail = "Smooth" //Mutant bodypart prefs (currently just liz-biz) - var/lizard_snout = "Round" - var/lizard_horns = "None" - var/lizard_frills = "None" - var/lizard_spines = "None" - var/lizard_body_markings = "None" + var/list/lizard_parts = list("tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None") var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity") @@ -259,7 +254,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Tail

" - dat += "[lizard_tail]
" + dat += "[lizard_parts["tail"]]
" dat += "" @@ -268,7 +263,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Snout

" - dat += "[lizard_snout]
" + dat += "[lizard_parts["snout"]]
" dat += "" @@ -277,7 +272,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Horns

" - dat += "[lizard_horns]
" + dat += "[lizard_parts["horns"]]
" dat += "" @@ -286,7 +281,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Frills

" - dat += "[lizard_frills]
" + dat += "[lizard_parts["frills"]]
" dat += "" @@ -295,7 +290,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Spines

" - dat += "[lizard_spines]
" + dat += "[lizard_parts["spines"]]
" dat += "" @@ -304,7 +299,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Body Markings

" - dat += "[lizard_body_markings]
" + dat += "[lizard_parts["body_markings"]]
" dat += "" @@ -814,37 +809,37 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set var/new_tail new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in tails_list if(new_tail) - lizard_tail = new_tail + lizard_parts["tail"] = new_tail if("snout") var/new_snout new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in snouts_list if(new_snout) - lizard_snout = new_snout + lizard_parts["snout"] = new_snout if("horns") var/new_horns new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in horns_list if(new_horns) - lizard_horns = new_horns + lizard_parts["horns"] = new_horns if("frills") var/new_frills new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in frills_list if(new_frills) - lizard_frills = new_frills + lizard_parts["frills"] = new_frills if("spines") var/new_spines new_spines = input(user, "Choose your character's spines:", "Character Preference") as null|anything in spines_list if(new_spines) - lizard_spines = new_spines + lizard_parts["spines"] = new_spines if("body_markings") var/new_body_markings new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in body_markings_list if(new_body_markings) - lizard_body_markings = new_body_markings + lizard_parts["body_markings"] = new_body_markings if("s_tone") var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones @@ -1036,12 +1031,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set character.undershirt = undershirt character.socks = socks - character.lizard_body_markings = lizard_body_markings - character.lizard_tail = lizard_tail - character.lizard_snout = lizard_snout - character.lizard_horns = lizard_horns - character.lizard_frills = lizard_frills - character.lizard_spines = lizard_spines + character.lizard_parts = lizard_parts if(backbag > 3 || backbag < 1) backbag = 1 //Same as above diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 9d0cafedbaf..2c675713c3e 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -187,12 +187,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["socks"] >> socks S["backbag"] >> backbag S["mutant_color"] >> mutant_color - S["lizard_tail"] >> lizard_tail - S["lizard_snout"] >> lizard_snout - S["lizard_horns"] >> lizard_horns - S["lizard_frills"] >> lizard_frills - S["lizard_spines"] >> lizard_spines - S["lizard_body_markings"] >> lizard_body_markings + S["lizard_parts"] >> lizard_parts S["clown_name"] >> custom_names["clown"] S["mime_name"] >> custom_names["mime"] S["ai_name"] >> custom_names["ai"] @@ -245,12 +240,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car skin_tone = sanitize_inlist(skin_tone, skin_tones) backbag = sanitize_integer(backbag, 1, backbaglist.len, initial(backbag)) mutant_color = sanitize_hexcolor(mutant_color, 3, 0) - lizard_tail = sanitize_inlist(lizard_tail, tails_list) - lizard_snout = sanitize_inlist(lizard_snout, snouts_list) - lizard_horns = sanitize_inlist(lizard_horns, horns_list) - lizard_frills = sanitize_inlist(lizard_frills, frills_list) - lizard_spines = sanitize_inlist(lizard_spines, spines_list) - lizard_body_markings = sanitize_inlist(lizard_body_markings, body_markings_list) + lizard_parts["tail"] = sanitize_inlist(lizard_parts["tail"], tails_list) + lizard_parts["snout"] = sanitize_inlist(lizard_parts["snout"], snouts_list) + lizard_parts["horns"] = sanitize_inlist(lizard_parts["horns"], horns_list) + lizard_parts["frills"] = sanitize_inlist(lizard_parts["frills"], frills_list) + lizard_parts["spines"] = sanitize_inlist(lizard_parts["spines"], spines_list) + lizard_parts["body_markings"] = sanitize_inlist(lizard_parts["body_markings"], body_markings_list) userandomjob = sanitize_integer(userandomjob, 0, 1, initial(userandomjob)) job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high)) @@ -292,12 +287,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["backbag"] << backbag S["species"] << pref_species.name S["mutant_color"] << mutant_color - S["lizard_tail"] << lizard_tail - S["lizard_snout"] << lizard_snout - S["lizard_horns"] << lizard_horns - S["lizard_frills"] << lizard_frills - S["lizard_spines"] << lizard_spines - S["lizard_body_markings"] << lizard_body_markings + S["lizard_parts"] << lizard_parts S["clown_name"] << custom_names["clown"] S["mime_name"] << custom_names["mime"] S["ai_name"] << custom_names["ai"] diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 6eb1d6bd469..e63c0832a7c 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -25,13 +25,8 @@ var/socks = "Nude" //Which socks the player wants var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack. - //Mutant Parts (currently used only by lizards) - var/lizard_tail = "Smooth" - var/lizard_snout = "Round" - var/lizard_horns = "None" - var/lizard_frills = "None" - var/lizard_spines = "None" - var/lizard_body_markings = "None" + //Mutant Parts + var/list/lizard_parts = list("tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None") //Equipment slots var/obj/item/wear_suit = null diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index be71df907ad..bf239e68541 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -241,7 +241,7 @@ bodyparts_to_add -= "tail" if("spines" in mutant_bodyparts) - if(!H.lizard_spines || H.lizard_spines == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + if(!H.lizard_parts["spines"] || H.lizard_parts["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "spines" if("snout" in mutant_bodyparts) //Take a closer look at that snout! @@ -249,11 +249,11 @@ bodyparts_to_add -= "snout" if("frills" in mutant_bodyparts) - if(!H.lizard_frills || H.lizard_frills == "None" || H.head && (H.head.flags_inv & HIDEEARS)) + if(!H.lizard_parts["frills"] || H.lizard_parts["frills"] == "None" || H.head && (H.head.flags_inv & HIDEEARS)) bodyparts_to_add -= "frills" if("horns" in mutant_bodyparts) - if(!H.lizard_horns || H.lizard_horns == "None" || H.head && (H.head.flags & BLOCKHAIR) || (H.wear_mask && (H.wear_mask.flags & BLOCKHAIR))) + if(!H.lizard_parts["horns"] || H.lizard_parts["horns"] == "None" || H.head && (H.head.flags & BLOCKHAIR) || (H.wear_mask && (H.wear_mask.flags & BLOCKHAIR))) bodyparts_to_add -= "horns" if(!bodyparts_to_add) @@ -268,17 +268,17 @@ var/datum/sprite_accessory/S switch(bodypart) if("tail") - S = tails_list[H.lizard_tail] + S = tails_list[H.lizard_parts["tail"]] if("spines") - S = spines_list[H.lizard_spines] + S = spines_list[H.lizard_parts["spines"]] if("snout") - S = snouts_list[H.lizard_snout] + S = snouts_list[H.lizard_parts["snout"]] if("frills") - S = frills_list[H.lizard_frills] + S = frills_list[H.lizard_parts["frills"]] if("horns") - S = horns_list[H.lizard_horns] + S = horns_list[H.lizard_parts["horns"]] if("body_markings") - S = body_markings_list[H.lizard_body_markings] + S = body_markings_list[H.lizard_parts["body_markings"]] if(S.icon_state == "none") continue diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index 2f2ebd598ef..79f84797b28 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -30,7 +30,7 @@ default_color = "00FF00" roundstart = 1 specflags = list(MUTCOLORS,EYECOLOR,LIPS) - mutant_bodyparts = list("tail", "snout", "spines", "frills", "horns", "body_markings") + mutant_bodyparts = list("tail", "snout", "spines", "horns", "frills", "body_markings") attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 53a0433edf8..35ae61dc9ff 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -17,13 +17,7 @@ if(!pref_species) pref_species = new /datum/species/human() backbag = 2 - var/list/lizbiz = random_lizard_features() - lizard_tail = lizbiz[1] - lizard_snout = lizbiz[2] - lizard_horns = lizbiz[3] - lizard_frills = lizbiz[4] - lizard_spines = lizbiz[5] - lizard_body_markings = lizbiz[6] + lizard_parts = random_lizard_features() age = rand(AGE_MIN,AGE_MAX) /datum/preferences/proc/update_preview_icon() //seriously. This is horrendous. @@ -85,17 +79,17 @@ for(var/bodypart in pref_species.mutant_bodyparts) switch(bodypart) if("tail") - S = tails_list[lizard_tail] + S = tails_list[lizard_parts["tail"]] if("spines") - S = spines_list[lizard_spines] + S = spines_list[lizard_parts["spines"]] if("snout") - S = snouts_list[lizard_snout] + S = snouts_list[lizard_parts["snout"]] if("frills") - S = frills_list[lizard_frills] + S = frills_list[lizard_parts["frills"]] if("horns") - S = horns_list[lizard_horns] + S = horns_list[lizard_parts["horns"]] if("body_markings") - S = body_markings_list[lizard_body_markings] + S = body_markings_list[lizard_parts["body_markings"]] if(S.icon_state == "none") continue From 595bb0c8e4ef3ee5aec68ef892357420631b0db6 Mon Sep 17 00:00:00 2001 From: Incoming Date: Fri, 12 Jun 2015 00:43:35 -0400 Subject: [PATCH 3/4] Generalizes lizard parts to "features" for future non-lizard fields, at the same time merging mutant color into this list Random lizard bodies will finally have color! Pushes features almost all the way to the DNA side of thing, the mob side is only needed during character creation. Note that changes to the save file will invoke a one time per character runtime for legacy characters as the save file purges mutant_color, this is as far as I can tell harmless, has no effect on the player, and is self correcting. --- code/__HELPERS/mobs.dm | 4 +- code/datums/datacore.dm | 5 +-- code/game/dna.dm | 28 ++++-------- code/game/gamemodes/abduction/gland.dm | 2 +- .../abduction/machinery/experiment.dm | 2 +- .../gamemodes/changeling/powers/absorb.dm | 2 +- .../gamemodes/changeling/powers/tiny_prick.dm | 2 +- .../gamemodes/changeling/powers/transform.dm | 4 +- code/game/machinery/cloning.dm | 4 +- code/game/machinery/computer/cloning.dm | 7 ++- code/game/objects/structures/mirror.dm | 2 +- code/modules/admin/verbs/randomverbs.dm | 2 +- code/modules/client/preferences.dm | 44 +++++++++---------- code/modules/client/preferences_savefile.dm | 28 ++++++------ code/modules/hydroponics/hydroponics.dm | 6 +-- code/modules/hydroponics/seeds.dm | 4 +- .../mob/living/carbon/carbon_defines.dm | 3 ++ code/modules/mob/living/carbon/human/blood.dm | 4 +- .../mob/living/carbon/human/human_defines.dm | 3 -- .../mob/living/carbon/human/species.dm | 28 ++++++------ .../mob/new_player/preferences_setup.dm | 18 ++++---- 21 files changed, 91 insertions(+), 111 deletions(-) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 4adc380f245..01f8d00be82 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -36,7 +36,7 @@ if(FEMALE) return pick(socks_f) else return pick(socks_list) -/proc/random_lizard_features() +/proc/random_features() if(!tails_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails, tails_list) if(!snouts_list.len) @@ -50,7 +50,7 @@ if(!body_markings_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) - return(list("tail" = pick(tails_list), "snout" = pick(snouts_list), "horns" = pick(horns_list), "frills" = pick(frills_list), "spines" = pick(spines_list), "body_markings" = pick(body_markings_list))) + return(list("mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "tail" = pick(tails_list), "snout" = pick(snouts_list), "horns" = pick(horns_list), "frills" = pick(frills_list), "spines" = pick(spines_list), "body_markings" = pick(body_markings_list))) /proc/random_hair_style(gender) switch(gender) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 556bafff59c..ae0df9ac76d 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -260,8 +260,7 @@ var/record_id_num = 1001 L.fields["enzymes"] = H.dna.struc_enzymes L.fields["identity"] = H.dna.uni_identity L.fields["species"] = H.dna.species.type - L.fields["mcolor"] = H.dna.mutant_color - L.fields["lizard_parts"]= H.dna.lizard_parts + L.fields["features"] = H.dna.features L.fields["image"] = image locked += L return @@ -273,7 +272,7 @@ var/record_id_num = 1001 photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.skin_tone]_[g]_s") else photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.dna.species.id]_[g]_s") - photo.Blend("#[H.dna.mutant_color]", ICON_MULTIPLY) + photo.Blend("#[H.dna.features["mcolor"]]", ICON_MULTIPLY) var/icon/eyes_s if(EYECOLOR in H.dna.species.specflags) diff --git a/code/game/dna.dm b/code/game/dna.dm index 707fcb2f264..bcc55e48d35 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -21,8 +21,7 @@ var/uni_identity var/blood_type var/datum/species/species = new /datum/species/human() //The type of mutant race the player is if applicable (i.e. potato-man) - var/mutant_color = "FFF" // What color you are if you have certain speciess - var/list/lizard_parts = list() + var/list/features = list("FFF") //first value is mutant color var/real_name //Stores the real name of the person who originally got this dna datum. Used primarely for changelings, var/list/mutations = list() //All mutations are from now on here var/mob/living/carbon/holder @@ -37,8 +36,7 @@ destination.dna.uni_identity = uni_identity destination.dna.blood_type = blood_type hardset_dna(destination, null, null, null, null, species) - destination.dna.mutant_color = mutant_color - destination.dna.lizard_parts = lizard_parts + destination.dna.features = features destination.dna.real_name = real_name destination.dna.mutations = mutations @@ -48,8 +46,7 @@ new_dna.uni_identity = uni_identity new_dna.blood_type = blood_type new_dna.species = new species.type - new_dna.mutant_color = mutant_color - new_dna.lizard_parts = lizard_parts + new_dna.features = features new_dna.real_name = real_name new_dna.mutations = mutations @@ -134,7 +131,7 @@ spans |= M.get_spans() return spans -/proc/hardset_dna(mob/living/carbon/owner, ui, se, real_name, blood_type, datum/species/mrace, mcolor, lizard_parts) +/proc/hardset_dna(mob/living/carbon/owner, ui, se, real_name, blood_type, datum/species/mrace, features) if(!ismonkey(owner) && !ishuman(owner)) return if(!owner.dna) @@ -146,15 +143,8 @@ owner.reagents.del_reagent(exotic_blood.id) owner.dna.species = new mrace() - if(mcolor) - owner.dna.mutant_color = mcolor - - if(lizard_parts) - owner.dna.lizard_parts = lizard_parts - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - H.lizard_parts = lizard_parts - + if(features) + owner.dna.features = features if(real_name) owner.real_name = real_name @@ -203,9 +193,7 @@ character.dna.uni_identity = character.dna.generate_uni_identity(character) character.dna.struc_enzymes = character.dna.generate_struc_enzymes(character) character.dna.unique_enzymes = character.dna.generate_unique_enzymes(character) - if(istype(character, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = character - H.dna.lizard_parts = H.lizard_parts + character.dna.features = character.features return character.dna /proc/create_dna(mob/living/carbon/C, datum/species/S) //don't use this unless you're about to use hardset_dna or ready_dna @@ -985,7 +973,7 @@ /datum/dna/proc/is_same_as(var/datum/dna/D) if(uni_identity == D.uni_identity && struc_enzymes == D.struc_enzymes && real_name == D.real_name) - if(species == D.species && mutant_color == D.mutant_color && blood_type == D.blood_type && D.lizard_parts == lizard_parts) + if(species == D.species && features == D.features && blood_type == D.blood_type) return 1 return 0 diff --git a/code/game/gamemodes/abduction/gland.dm b/code/game/gamemodes/abduction/gland.dm index ccb60820159..264d0d3a445 100644 --- a/code/game/gamemodes/abduction/gland.dm +++ b/code/game/gamemodes/abduction/gland.dm @@ -213,7 +213,7 @@ /obj/effect/cocoon/abductor/proc/Copy(var/mob/living/carbon/human/H) var/mob/living/carbon/human/interactive/greytide/clone = new(src) - hardset_dna(clone,H.dna.uni_identity,H.dna.struc_enzymes,H.real_name, H.dna.blood_type, H.dna.species.type, H.dna.mutant_color) + hardset_dna(clone,H.dna.uni_identity,H.dna.struc_enzymes,H.real_name, H.dna.blood_type, H.dna.species.type, H.dna.features) //There's no define for this / get all items ? var/list/slots = list(slot_back,slot_w_uniform,slot_wear_suit,\ diff --git a/code/game/gamemodes/abduction/machinery/experiment.dm b/code/game/gamemodes/abduction/machinery/experiment.dm index 3d79a64b56b..bfa6d9b2a53 100644 --- a/code/game/gamemodes/abduction/machinery/experiment.dm +++ b/code/game/gamemodes/abduction/machinery/experiment.dm @@ -43,7 +43,7 @@ photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.skin_tone]_[g]_s") else photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.dna.species.id]_[g]_s") - photo.Blend("#[H.dna.mutant_color]", ICON_MULTIPLY) + photo.Blend("#[H.dna.features["mcolor"]]", ICON_MULTIPLY) var/icon/eyes_s if(EYECOLOR in H.dna.species.specflags) diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index 913b6dd295d..516a407cbef 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -92,7 +92,7 @@ new_dna.struc_enzymes = T.dna.struc_enzymes new_dna.real_name = T.dna.real_name new_dna.species = T.dna.species - new_dna.mutant_color = T.dna.mutant_color + new_dna.features = T.dna.features new_dna.blood_type = T.dna.blood_type absorbedcount++ store_dna(new_dna, user) diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index 280a6e468f2..bbadbcd6cac 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -91,7 +91,7 @@ var/datum/dna/NewDNA = selected_dna if(ismonkey(target)) user << "We stealthily sting [target.name]." - hardset_dna(target, NewDNA.uni_identity, NewDNA.struc_enzymes, NewDNA.real_name, NewDNA.blood_type, NewDNA.species.type, NewDNA.mutant_color, NewDNA.lizard_parts) + hardset_dna(target, NewDNA.uni_identity, NewDNA.struc_enzymes, NewDNA.real_name, NewDNA.blood_type, NewDNA.species.type, NewDNA.features) updateappearance(target) feedback_add_details("changeling_powers","TS") return 1 diff --git a/code/game/gamemodes/changeling/powers/transform.dm b/code/game/gamemodes/changeling/powers/transform.dm index 9c6dad4d2d8..2f57a81ebb7 100644 --- a/code/game/gamemodes/changeling/powers/transform.dm +++ b/code/game/gamemodes/changeling/powers/transform.dm @@ -17,9 +17,7 @@ user.dna = chosen_dna user.real_name = chosen_dna.real_name - hardset_dna(user, null, null, null, null, chosen_dna.species.type) - user.dna.mutant_color = chosen_dna.mutant_color - user.dna.lizard_parts = chosen_dna.lizard_parts + hardset_dna(user, null, null, null, null, chosen_dna.species.type, chosen_dna.features) updateappearance(user) domutcheck(user) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 69f0b6d36e5..4c94c276c2d 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -122,7 +122,7 @@ //Clonepod //Start growing a human clone in the pod! -/obj/machinery/clonepod/proc/growclone(var/ckey, var/clonename, var/ui, var/se, var/mindref, var/datum/species/mrace, var/mcolor, var/lizard_parts, var/factions) +/obj/machinery/clonepod/proc/growclone(var/ckey, var/clonename, var/ui, var/se, var/mindref, var/datum/species/mrace, var/list/features, var/factions) if(panel_open) return 0 if(mess || attempting) @@ -183,7 +183,7 @@ H.ckey = ckey H << "Consciousness slowly creeps over you as your body regenerates.
So this is what cloning feels like?
" - hardset_dna(H, ui, se, null, null, mrace, mcolor, lizard_parts) + hardset_dna(H, ui, se, null, null, mrace, features) H.faction |= factions H.set_cloned_appearance() diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 5c30286ba75..1a45351b770 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -35,7 +35,7 @@ if(!(pod1.occupant || pod1.mess) && (pod1.efficiency > 5)) for(var/datum/data/record/R in records) if(!(pod1.occupant || pod1.mess)) - if(pod1.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["mcolor"], R.fields["lizard_parts"], R.fields["factions"])) + if(pod1.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"])) records -= R /obj/machinery/computer/cloning/proc/updatemodules() @@ -329,7 +329,7 @@ temp = "Clonepod malfunction." else if(!config.revival_cloning) temp = "Unable to initiate cloning cycle." - else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["mcolor"], C.fields["lizard_parts"], C.fields["factions"])) + else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"])) temp = "[C.fields["name"]] => Cloning cycle in progress..." records.Remove(C) if(active_record == C) @@ -380,8 +380,7 @@ R.fields["UI"] = subject.dna.uni_identity R.fields["SE"] = subject.dna.struc_enzymes R.fields["blood_type"] = subject.dna.blood_type - R.fields["mcolor"] = subject.dna.mutant_color - R.fields["lizard_parts"] = subject.dna.lizard_parts + R.fields["features"] = subject.dna.features R.fields["factions"] = subject.faction //Add an implant if needed var/obj/item/weapon/implant/health/imp = locate(/obj/item/weapon/implant/health, subject) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 6eb5f7b9317..90949e773ef 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -150,7 +150,7 @@ var/temp_hsv = RGBtoHSV(new_mutantcolor) if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright - H.dna.mutant_color = sanitize_hexcolor(new_mutantcolor) + H.dna.features["mcolor"] = sanitize_hexcolor(new_mutantcolor) else H << "Invalid color. Your color is not bright enough." diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 9159d969197..8a455d9e69c 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -298,7 +298,7 @@ Traitors and the like can also be revived with the previous role mostly intact. //DNA if(record_found)//Pull up their name from database records if they did have a mind. - hardset_dna(new_character, record_found.fields["identity"], record_found.fields["enzymes"], record_found.fields["name"], record_found.fields["blood_type"], record_found.fields["species"], record_found.fields["mcolor"], record_found.fields["lizard_parts"]) + hardset_dna(new_character, record_found.fields["identity"], record_found.fields["enzymes"], record_found.fields["name"], record_found.fields["blood_type"], record_found.fields["species"], record_found.fields["features"]) else//If they have no records, we just do a random DNA for them, based on their random appearance/savefile. ready_dna(new_character) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 6a5421efc2b..4728a49daf9 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -61,8 +61,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set var/skin_tone = "caucasian1" //Skin color var/eye_color = "000" //Eye color var/datum/species/pref_species = new /datum/species/human() //Mutant race - var/mutant_color = "FFF" //Mutant race skin color - var/list/lizard_parts = list("tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None") + var/list/features = list("mcolor" = "FFF", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None") var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity") @@ -245,7 +244,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Alien Color

" - dat += "    Change
" + dat += "    Change
" dat += "" @@ -254,7 +253,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Tail

" - dat += "[lizard_parts["tail"]]
" + dat += "[features["tail"]]
" dat += "" @@ -263,7 +262,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Snout

" - dat += "[lizard_parts["snout"]]
" + dat += "[features["snout"]]
" dat += "" @@ -272,7 +271,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Horns

" - dat += "[lizard_parts["horns"]]
" + dat += "[features["horns"]]
" dat += "" @@ -281,7 +280,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Frills

" - dat += "[lizard_parts["frills"]]
" + dat += "[features["frills"]]
" dat += "" @@ -290,7 +289,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Spines

" - dat += "[lizard_parts["spines"]]
" + dat += "[features["spines"]]
" dat += "" @@ -299,7 +298,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set dat += "

Body Markings

" - dat += "[lizard_parts["body_markings"]]
" + dat += "[features["body_markings"]]
" dat += "" @@ -792,54 +791,54 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set if(result) var/newtype = roundstart_species[result] pref_species = new newtype() - if(mutant_color == "#000") - mutant_color = pref_species.default_color + if(features["mcolor"] == "#000") + features["mcolor"] = pref_species.default_color if("mutant_color") var/new_mutantcolor = input(user, "Choose your character's alien skin color:", "Character Preference") as color|null if(new_mutantcolor) var/temp_hsv = RGBtoHSV(new_mutantcolor) if(new_mutantcolor == "#000000") - mutant_color = pref_species.default_color + features["mcolor"] = pref_species.default_color else if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright - mutant_color = sanitize_hexcolor(new_mutantcolor) + features["mcolor"] = sanitize_hexcolor(new_mutantcolor) else user << "Invalid color. Your color is not bright enough." if("tail") var/new_tail new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in tails_list if(new_tail) - lizard_parts["tail"] = new_tail + features["tail"] = new_tail if("snout") var/new_snout new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in snouts_list if(new_snout) - lizard_parts["snout"] = new_snout + features["snout"] = new_snout if("horns") var/new_horns new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in horns_list if(new_horns) - lizard_parts["horns"] = new_horns + features["horns"] = new_horns if("frills") var/new_frills new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in frills_list if(new_frills) - lizard_parts["frills"] = new_frills + features["frills"] = new_frills if("spines") var/new_spines new_spines = input(user, "Choose your character's spines:", "Character Preference") as null|anything in spines_list if(new_spines) - lizard_parts["spines"] = new_spines + features["spines"] = new_spines if("body_markings") var/new_body_markings new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in body_markings_list if(new_body_markings) - lizard_parts["body_markings"] = new_body_markings + features["body_markings"] = new_body_markings if("s_tone") var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones @@ -1010,10 +1009,9 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set if(character.dna) character.dna.real_name = character.real_name if(pref_species != /datum/species/human && config.mutant_races) - hardset_dna(character, null, null, null, null, pref_species.type) + hardset_dna(character, null, null, null, null, pref_species.type, features) else - hardset_dna(character, null, null, null, null, /datum/species/human) - character.dna.mutant_color = mutant_color + hardset_dna(character, null, null, null, null, /datum/species/human, features) character.update_mutcolor() character.gender = gender @@ -1031,7 +1029,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set character.undershirt = undershirt character.socks = socks - character.lizard_parts = lizard_parts + character.features = features if(backbag > 3 || backbag < 1) backbag = 1 //Same as above diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 2c675713c3e..e4b0d1c0781 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -166,8 +166,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car else pref_species = new /datum/species/human() - if(!S["mutant_color"] || S["mutant_color"] == "#000") - S["mutant_color"] << "#FFF" + if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000") + S["features["mcolor"]"] << "#FFF" //Character S["OOC_Notes"] >> metadata @@ -186,8 +186,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["undershirt"] >> undershirt S["socks"] >> socks S["backbag"] >> backbag - S["mutant_color"] >> mutant_color - S["lizard_parts"] >> lizard_parts + S["features"] >> features S["clown_name"] >> custom_names["clown"] S["mime_name"] >> custom_names["mime"] S["ai_name"] >> custom_names["ai"] @@ -214,8 +213,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //Sanitize metadata = sanitize_text(metadata, initial(metadata)) real_name = reject_bad_name(real_name) - if(!mutant_color || mutant_color == "#000") - mutant_color = "#FFF" + if(!features["mcolor"] || features["mcolor"] == "#000") + features["mcolor"] = "#FFF" if(!real_name) real_name = random_name(gender) be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name)) be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body)) @@ -239,13 +238,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car eye_color = sanitize_hexcolor(eye_color, 3, 0) skin_tone = sanitize_inlist(skin_tone, skin_tones) backbag = sanitize_integer(backbag, 1, backbaglist.len, initial(backbag)) - mutant_color = sanitize_hexcolor(mutant_color, 3, 0) - lizard_parts["tail"] = sanitize_inlist(lizard_parts["tail"], tails_list) - lizard_parts["snout"] = sanitize_inlist(lizard_parts["snout"], snouts_list) - lizard_parts["horns"] = sanitize_inlist(lizard_parts["horns"], horns_list) - lizard_parts["frills"] = sanitize_inlist(lizard_parts["frills"], frills_list) - lizard_parts["spines"] = sanitize_inlist(lizard_parts["spines"], spines_list) - lizard_parts["body_markings"] = sanitize_inlist(lizard_parts["body_markings"], body_markings_list) + features["mcolor"] = sanitize_hexcolor(features["mcolor"], 3, 0) + features["tail"] = sanitize_inlist(features["tail"], tails_list) + features["snout"] = sanitize_inlist(features["snout"], snouts_list) + features["horns"] = sanitize_inlist(features["horns"], horns_list) + features["frills"] = sanitize_inlist(features["frills"], frills_list) + features["spines"] = sanitize_inlist(features["spines"], spines_list) + features["body_markings"] = sanitize_inlist(features["body_markings"], body_markings_list) userandomjob = sanitize_integer(userandomjob, 0, 1, initial(userandomjob)) job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high)) @@ -286,8 +285,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["socks"] << socks S["backbag"] << backbag S["species"] << pref_species.name - S["mutant_color"] << mutant_color - S["lizard_parts"] << lizard_parts + S["features"] << features S["clown_name"] << custom_names["clown"] S["mime_name"] << custom_names["mime"] S["ai_name"] << custom_names["ai"] diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 78a92dc1481..a0eb0bb53a9 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -848,9 +848,9 @@ podman.ckey = ckey_holder podman.gender = blood_gender podman.faction |= factions - if(!mutant_color) - mutant_color = "#59CE00" - hardset_dna(podman,null,null,podman.real_name,blood_type,/datum/species/plant/pod,mutant_color)//Discard SE's and UI's, podman cloning is inaccurate, and always make them a podman + if(!features["mcolor"]) + features["mcolor"] = "#59CE00" + hardset_dna(podman,null,null,podman.real_name,blood_type,/datum/species/plant/pod,features)//Discard SE's and UI's, podman cloning is inaccurate, and always make them a podman podman.set_cloned_appearance() else //else, one packet of seeds. maybe two diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 05369322619..17f0e3a7eff 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -90,7 +90,7 @@ var/datum/mind/mind = null var/blood_gender = null var/blood_type = null - var/mutant_color = null + var/list/features = null var/factions = null var/contains_sample = 0 @@ -104,7 +104,7 @@ realName = bloodSample.data["real_name"] blood_gender = bloodSample.data["gender"] blood_type = bloodSample.data["blood_type"] - mutant_color = bloodSample.data["mutant_color"] + features = bloodSample.data["features"] factions = bloodSample.data["factions"] W.reagents.clear_reagents() user << "You inject the contents of the syringe into the seeds." diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 41a04d1273f..37dc0b19792 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -9,6 +9,9 @@ var/obj/item/handcuffed = null //Whether or not the mob is handcuffed var/obj/item/legcuffed = null //Same as handcuffs but for legs. Bear traps use this. + var/list/features = list("mcolor" = "FFF", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None") + + //inventory slots var/obj/item/back = null var/obj/item/clothing/mask/wear_mask = null diff --git a/code/modules/mob/living/carbon/human/blood.dm b/code/modules/mob/living/carbon/human/blood.dm index e8b46b5ca51..289fb8e5ee8 100644 --- a/code/modules/mob/living/carbon/human/blood.dm +++ b/code/modules/mob/living/carbon/human/blood.dm @@ -30,7 +30,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 /mob/living/carbon/human/proc/fixblood() for(var/datum/reagent/blood/B in vessel.reagent_list) if(B.id == "blood") - B.data = list("donor"=src,"viruses"=null,"blood_DNA"=dna.unique_enzymes,"blood_type"=dna.blood_type,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"mutant_color"=null, "factions"=null) + B.data = list("donor"=src,"viruses"=null,"blood_DNA"=dna.unique_enzymes,"blood_type"=dna.blood_type,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"features"=null, "factions"=null) /mob/living/carbon/human/proc/suppress_bloodloss(var/amount) if(bleedsuppress) @@ -172,7 +172,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 B.data["blood_type"] = copytext(src.dna.blood_type,1,0) B.data["gender"] = src.gender B.data["real_name"] = src.real_name - B.data["mutant_color"] = src.dna.mutant_color + B.data["features"] = src.dna.features B.data["factions"] = src.faction return B diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index e63c0832a7c..9b373ba72f4 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -25,9 +25,6 @@ var/socks = "Nude" //Which socks the player wants var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack. - //Mutant Parts - var/list/lizard_parts = list("tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None") - //Equipment slots var/obj/item/wear_suit = null var/obj/item/w_uniform = null diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index bf239e68541..e6722b607f2 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -113,7 +113,7 @@ spec_base = image("icon" = 'icons/mob/human.dmi', "icon_state" = icon_state_string, "layer" = -SPECIES_LAYER) - spec_base.color = "#[H.dna.mutant_color]" + spec_base.color = "#[H.dna.features["mcolor"]]" standing = spec_base if(standing) @@ -136,7 +136,7 @@ if(hair_color) if(hair_color == "mutcolor") - img_facial_s.color = "#" + H.dna.mutant_color + img_facial_s.color = "#" + H.dna.features["mcolor"] else img_facial_s.color = "#" + hair_color else @@ -164,7 +164,7 @@ if(hair_color) if(hair_color == "mutcolor") - img_hair_s.color = "#" + H.dna.mutant_color + img_hair_s.color = "#" + H.dna.features["mcolor"] else img_hair_s.color = "#" + hair_color else @@ -241,7 +241,7 @@ bodyparts_to_add -= "tail" if("spines" in mutant_bodyparts) - if(!H.lizard_parts["spines"] || H.lizard_parts["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "spines" if("snout" in mutant_bodyparts) //Take a closer look at that snout! @@ -249,11 +249,11 @@ bodyparts_to_add -= "snout" if("frills" in mutant_bodyparts) - if(!H.lizard_parts["frills"] || H.lizard_parts["frills"] == "None" || H.head && (H.head.flags_inv & HIDEEARS)) + if(!H.dna.features["frills"] || H.dna.features["frills"] == "None" || H.head && (H.head.flags_inv & HIDEEARS)) bodyparts_to_add -= "frills" if("horns" in mutant_bodyparts) - if(!H.lizard_parts["horns"] || H.lizard_parts["horns"] == "None" || H.head && (H.head.flags & BLOCKHAIR) || (H.wear_mask && (H.wear_mask.flags & BLOCKHAIR))) + if(!H.dna.features["horns"] || H.dna.features["horns"] == "None" || H.head && (H.head.flags & BLOCKHAIR) || (H.wear_mask && (H.wear_mask.flags & BLOCKHAIR))) bodyparts_to_add -= "horns" if(!bodyparts_to_add) @@ -268,19 +268,19 @@ var/datum/sprite_accessory/S switch(bodypart) if("tail") - S = tails_list[H.lizard_parts["tail"]] + S = tails_list[H.dna.features["tail"]] if("spines") - S = spines_list[H.lizard_parts["spines"]] + S = spines_list[H.dna.features["spines"]] if("snout") - S = snouts_list[H.lizard_parts["snout"]] + S = snouts_list[H.dna.features["snout"]] if("frills") - S = frills_list[H.lizard_parts["frills"]] + S = frills_list[H.dna.features["frills"]] if("horns") - S = horns_list[H.lizard_parts["horns"]] + S = horns_list[H.dna.features["horns"]] if("body_markings") - S = body_markings_list[H.lizard_parts["body_markings"]] + S = body_markings_list[H.dna.features["body_markings"]] - if(S.icon_state == "none") + if(!S || S.icon_state == "none") continue var/icon_string if(S.gender_specific) @@ -291,7 +291,7 @@ I = image("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = icon_string, "layer" =- layer) if(!(H.disabilities & HUSK)) - I.color = "#[H.dna.mutant_color]" + I.color = "#[H.dna.features["mcolor"]]" standing += I H.overlays_standing[layer] = standing.Copy() standing = list() diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 35ae61dc9ff..68d6f57c709 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -17,7 +17,7 @@ if(!pref_species) pref_species = new /datum/species/human() backbag = 2 - lizard_parts = random_lizard_features() + features = random_features() age = rand(AGE_MIN,AGE_MAX) /datum/preferences/proc/update_preview_icon() //seriously. This is horrendous. @@ -47,7 +47,7 @@ preview_icon = new /icon('icons/mob/human.dmi', "[skin_tone]_[g]_s") else preview_icon = new /icon('icons/mob/human.dmi', "[pref_species.id]_[g]_s") - preview_icon.Blend("#[mutant_color]", ICON_MULTIPLY) + preview_icon.Blend("#[features["mcolor"]]", ICON_MULTIPLY) var/datum/sprite_accessory/S var/icon/eyes_s = new/icon() @@ -79,17 +79,17 @@ for(var/bodypart in pref_species.mutant_bodyparts) switch(bodypart) if("tail") - S = tails_list[lizard_parts["tail"]] + S = tails_list[features["tail"]] if("spines") - S = spines_list[lizard_parts["spines"]] + S = spines_list[features["spines"]] if("snout") - S = snouts_list[lizard_parts["snout"]] + S = snouts_list[features["snout"]] if("frills") - S = frills_list[lizard_parts["frills"]] + S = frills_list[features["frills"]] if("horns") - S = horns_list[lizard_parts["horns"]] + S = horns_list[features["horns"]] if("body_markings") - S = body_markings_list[lizard_parts["body_markings"]] + S = body_markings_list[features["body_markings"]] if(S.icon_state == "none") continue @@ -100,7 +100,7 @@ icon_string = "[pref_species.id]_m_[bodypart]_[S.icon_state]_[layer]" var/icon/part = new/icon("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = icon_string) - part.Blend("#[mutant_color]", ICON_MULTIPLY) + part.Blend("#[features["mcolor"]]", ICON_MULTIPLY) preview_icon.Blend(part, ICON_OVERLAY) if(underwear) From b92f51843523c6f27fb34e59c9d733eb231e730e Mon Sep 17 00:00:00 2001 From: Incoming Date: Sat, 13 Jun 2015 20:34:38 -0400 Subject: [PATCH 4/4] Readds wagging tail feature with WJohn's help on sprites Changes some sprites to better show off highlighting --- code/__HELPERS/global_lists.dm | 2 + code/_globalvars/lists/flavor_misc.dm | 2 + code/modules/mob/living/carbon/human/emote.dm | 5 ++ .../mob/living/carbon/human/species.dm | 17 +++++ .../mob/new_player/preferences_setup.dm | 2 +- .../mob/new_player/sprite_accessories.dm | 61 ++++++++++++++++++ icons/mob/mutant_bodyparts.dmi | Bin 11196 -> 42885 bytes 7 files changed, 88 insertions(+), 1 deletion(-) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 17c6de65b8b..a80a9bb9ebd 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -16,10 +16,12 @@ //lizard bodyparts (blizzard intensifies) init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails, tails_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated, animated_tails_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, snouts_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, horns_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, frills_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, spines_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/spines_animated, animated_spines_list) //Species diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index ddf1e7f3809..c3bc1e7c1f8 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -21,10 +21,12 @@ var/global/list/socks_f = list() //stores only socks name //Lizard Bits (all datum lists indexed by name) var/global/list/body_markings_list = list() var/global/list/tails_list = list() +var/global/list/animated_tails_list = list() var/global/list/snouts_list = list() var/global/list/horns_list = list() var/global/list/frills_list = list() var/global/list/spines_list = list() +var/global/list/animated_spines_list = list() //Backpacks var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel") //Female Uniforms diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 1fda3b351f4..9a718fb01bc 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -355,7 +355,9 @@ return if("tail" in dna.species.mutant_bodyparts) dna.species.mutant_bodyparts -= "tail" + dna.species.mutant_bodyparts -= "spines" dna.species.mutant_bodyparts |= "waggingtail" + dna.species.mutant_bodyparts |= "waggingspines" update_body() @@ -364,5 +366,8 @@ return if("waggingtail" in dna.species.mutant_bodyparts) dna.species.mutant_bodyparts -= "waggingtail" + dna.species.mutant_bodyparts -= "waggingspines" dna.species.mutant_bodyparts |= "tail" + dna.species.mutant_bodyparts |= "spines" + update_body() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index e6722b607f2..76e7590ecb1 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -240,10 +240,23 @@ if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "tail" + + if("waggingtail" in mutant_bodyparts) + if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + bodyparts_to_add -= "waggingtail" + else if ("tail" in mutant_bodyparts) + bodyparts_to_add -= "waggingtail" + if("spines" in mutant_bodyparts) if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "spines" + if("waggingspines" in mutant_bodyparts) + if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + bodyparts_to_add -= "waggingspines" + else if ("tail" in mutant_bodyparts) + bodyparts_to_add -= "waggingspines" + if("snout" in mutant_bodyparts) //Take a closer look at that snout! if(H.wear_mask && (H.wear_mask.flags_inv & HIDEFACE)) bodyparts_to_add -= "snout" @@ -269,8 +282,12 @@ switch(bodypart) if("tail") S = tails_list[H.dna.features["tail"]] + if("waggingtail") + S.= animated_tails_list[H.dna.features["tail"]] if("spines") S = spines_list[H.dna.features["spines"]] + if("waggingspines") + S.= animated_spines_list[H.dna.features["spines"]] if("snout") S = snouts_list[H.dna.features["snout"]] if("frills") diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 68d6f57c709..e28dcc3adab 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -91,7 +91,7 @@ if("body_markings") S = body_markings_list[features["body_markings"]] - if(S.icon_state == "none") + if(!S || S.icon_state == "none") continue var/icon_string if(S.gender_specific) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 84720b1e184..c28d4fd705c 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -1091,38 +1091,73 @@ /datum/sprite_accessory/tails icon = 'icons/mob/mutant_bodyparts.dmi' +/datum/sprite_accessory/tails_animated + icon = 'icons/mob/mutant_bodyparts.dmi' + /datum/sprite_accessory/tails/smooth name = "Smooth" icon_state = "smooth" +/datum/sprite_accessory/tails_animated/smooth + name = "Smooth" + icon_state = "smooth" + /datum/sprite_accessory/tails/light name = "Light" icon_state = "light" +/datum/sprite_accessory/tails_animated/light + name = "Light" + icon_state = "light" + /datum/sprite_accessory/tails/dstripe name = "Dark Stripe" icon_state = "dstripe" +/datum/sprite_accessory/tails_animated/dstripe + name = "Dark Stripe" + icon_state = "dstripe" + /datum/sprite_accessory/tails/lstripe name = "Light Stripe" icon_state = "lstripe" +/datum/sprite_accessory/tails_animated/lstripe + name = "Light Stripe" + icon_state = "lstripe" + /datum/sprite_accessory/tails/dtiger name = "Dark Tiger" icon_state = "dtiger" +/datum/sprite_accessory/tails_animated/dtiger + name = "Dark Tiger" + icon_state = "dtiger" + /datum/sprite_accessory/tails/ltiger name = "Light Tiger" icon_state = "ltiger" +/datum/sprite_accessory/tails_animated/ltiger + name = "Light Tiger" + icon_state = "ltiger" + /datum/sprite_accessory/tails/club name = "Club" icon_state = "club" +/datum/sprite_accessory/tails_animated/club + name = "Club" + icon_state = "club" + /datum/sprite_accessory/tails/aqua name = "Aquatic" icon_state = "aqua" +/datum/sprite_accessory/tails_animated/aqua + name = "Aquatic" + icon_state = "aqua" + /datum/sprite_accessory/snouts icon = 'icons/mob/mutant_bodyparts.dmi' @@ -1191,27 +1226,53 @@ /datum/sprite_accessory/spines icon = 'icons/mob/mutant_bodyparts.dmi' +/datum/sprite_accessory/spines_animated + icon = 'icons/mob/mutant_bodyparts.dmi' + /datum/sprite_accessory/spines/none name = "None" icon_state = "none" +/datum/sprite_accessory/spines_animated/none + name = "None" + icon_state = "none" + /datum/sprite_accessory/spines/short name = "Short" icon_state = "short" +/datum/sprite_accessory/spines_animated/short + name = "Short" + icon_state = "short" + /datum/sprite_accessory/spines/shortmeme name = "Short + Membrane" icon_state = "shortmeme" +/datum/sprite_accessory/spines_animated/shortmeme + name = "Short + Membrane" + icon_state = "shortmeme" + /datum/sprite_accessory/spines/long name = "Long" icon_state = "long" +/datum/sprite_accessory/spines_animated/long + name = "Long" + icon_state = "long" + /datum/sprite_accessory/spines/longmeme name = "Long + Membrane" icon_state = "longmeme" +/datum/sprite_accessory/spines_animated/longmeme + name = "Long + Membrane" + icon_state = "longmeme" + /datum/sprite_accessory/spines/aqautic name = "Aquatic" icon_state = "aqua" +/datum/sprite_accessory/spines_animated/aqautic + name = "Aquatic" + icon_state = "aqua" diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi index 16cd8e0dd2d829f6a602ef1648e6b238ba084df5..94acba1cbc59bca5a5e9b81cc87a72d4247a43fe 100644 GIT binary patch literal 42885 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 DA;f1| literal 11196 zcmcI~2{={n+wL-i%#zH6N=2q*o-!pBMVUe*$vkg!duNt8nKG85k~uTmOhOVe+uOLY zv9Zk?`@H)7{^$Ci@A{wbJKu0zm&;nqdf#`g_qm_@xu54*5qEWN&{1s>OTxqXXBJXE zkUpSYqmFO7P~lslKW3|ug$&X+q1GetT7}|{dNI4ppS(>Jiz**i8xJ|lUEr*H);hh4 zESxO(t||FgDPJhZ(Z+30%lPRP4skvLUyhww+J_HP)r_UKHn9mcdQunq!Zpme-+9PI zXeu1E^`vrz$FJOOzjA{%kxM*I@6wGi`|%C(cbS5WX1qhMt8!ZMe!BB}E0`{oNs`ZvbVu!6^okBijt8yweoUi2JUl6UFje%FQx8>h zn9$a5tp3>zO!|v%^*nA^ky*31#0iwEDosb%jL2qMoBPzde>;g!ZFWpS!g|}jNXg_4 z42ujd=@I=d9lQY1r#Epoc>PC}0oouk#h}1Te z^G8x{mGKl9{60!e-SK~#$sm?wSgM3e?Om;#SG+2p_R!3X1%eoh2w!QyQ$=cgYNHZc3Vop{YpOWHiM56S$lzD!v4-O-^QZHoNiHQ(2&S0;k5FNxsgP z%_tCG;j62zPW_ZY_rCuwiNhmul~FK{!>$wuovkE?UV%Y*m)wJL6UQO@mP^qj*2((8 zjK7<=;ojAQgM*pRf9?e6f4c9Mr$|vH?9Ddhgmzr3*)Xl_x+{{bq5j@T`1|PSoA9bK z+WNHs)cXMTguoTJqz)Y#O|iH7MbVIut%>pBFtQ>|0fPQ;G(c6IglgLWl6YA|6$|L{rZTd1(d;k_l= z$>`|l?Va|H4r4fj#_H-X+unUCD2NEx`k;67Nl(z{A?#B){1Lbs9uBU5aAHqza(C}Ht#WzcNpHi{ zcyi|P8tl6&yx)?!WWqUu3WL}$k2 z6niZs^k!NI@IRokum-Pv zgU4rfc&0FP^`?%T?wh1I{_qwST5~@$lCZRRDRMDJe$H0@Fw5JFJ9$^V^9St+eqWT| z(~;1spJQvkZYy8I6bfeMWQt#3Ul)jFuF<;s$9w7+{wqH8ugvxDdgX!;LU|WW#{7WK z()Fz-sob^2y5x+Gk*k5D_zwJv|Wa&@(^I)DIMN@hl6TI|*oA9`I1)}=#R00)fzM#GWx zw}aX$5f9vb_80R)7%3P-z>QxIz0L>g(xMrZb{mJ+93?q^J(GNIQqXQZrt*2vuGXBh z*_L+NuKaRBLV_w4c4U0~NrpgTMMXsv-6O+FqEv7KSL?A03or~9mo^FUudqAbFPjHPvTpQHQJX z&Q&$PbbtA*H#QItotgN;`^?0=9R*#cnos-|&}*Z>u|D#5on8OxOyqsOYsu8dFl`l< zJyn5bE*P|9Y7GDsA?ZO1y^4Tz#5voyd=J0PkgvNMFOoy&DF4v0lg7#aDk=Xb0hNv> zAo~iZBt-_oXa5lyv=mS~JvLbZxd1IngypL>7Ml(qA*9FRtC7*s=}wBX5`R&L&*F#V zQ`}DAB-z~eCLn!gGaIAr?d{uVlCEl#Q3968-P`Qfo!i4?v8uAEoOZwve#qmra{7LX zVD3k2s!jS}G6uYw)6&v3)g{Wxm=a%*RhblM7Z@L9Ozv$N=?PGsANX=DaGVR0qr>7q;ndc4KmDj6nj@V?~i)kXzru&`}c44)(q=~wu6JZ)b#Yz@tY!61EJIw@wK{AfifK6{bQB(wWvb^ z>kc-$0AyYTWHxMk7y8Q;UWR}3!_^B86+QCW@KIJ)c7DEHmKE`BYP$r)rH9V-=aWUu zwC`w*SPLh20hAL^MDsU2Pd_J#YpYQfYcPi8y9aHq*5ba;btN0eYOw&z98V|pae2sg z%sVeYc4gy^j?VX9_>udiGm)hg6&H8|Hkrl>{HU%V3eYF_I(Yn|&aUcS4M`1 zpEW$|-*|i?P6tMCZW(s!SO~ABQA7kSKT$YXYq`NA7#@3zz$1ZhuuOy1XpsR%^XSMZ zhW>{H!+(Iyh4}v+rVwg>i;-+fu)V;W?$t)=*Y8e8dNd&ffOI(h7XtS-xlDn= z0!ZuYySGxRb4^a}a?ewJC4e57j8A5A&5$inAUMY3$9UCleOs=A*wR%{Sh&3z1fE9w z!z=j}@kZ;4v^SZVNhKxXOiX)gEesm!t%;Z#vrwB%A5C?2tf5K?v;1x|?Q}j{gN7RFF(KkuQU4W4=WoFM<^tK^59b4=DgFSXiiz?+r&a$0=>048%RT)MYNUd0 z{w<@aMW=%(b4*NPD+S}Xfi6qY*qvmnRMQNvTEsY^I({}K*b8gl4L(Z{IRmeIH5XifM za_Ge1JCK-PAl8P`8-W;~?z2)pq&{05S!(7oDkW0!@N3sa{*5%$fo4)tl3q#r&eHx$ zU({ERBiG^4Q3;^T5(%rdMTh>?E>omfx=*T*AY#J1;c$CwBl6J!e>vwf)K0XSX1oVX ztVv{O)x`)rPTZrzCBuz&PUmlf`G)$H%a#kYlW0!{TYu!)F)E9*{IIYVo~hzr-oaKz zU<*Lhjub`8Y{+0w+G;{%OkJuNhHUs>K%(aOSGNDRDbm@~Ab8~BgDy5dhT|qDd3c}2 z--R9J>>u7tgZJV?3qv3Z#y7wR1>w@o;!;v)I`h)^kj}5fh?JC+?RW)!;WN<~pN*`B zo~EWIm9EmM1$mcOv++uAuv-XI`Zt_TfEJs*n}` zcQr$v0}Z?_o!<|Juv=CWtGm0qD%bvGTxdqg|IiTvk)+=C_Cn%2Qwk9@*GM6izl9>W z*fopayJ&w>Ln$kdh5|Zgek==77nPmtjQ+^N54Vy*FlUB-Eet^Pq0Tvd;dR-TBOLua z$3c6(UspL1lLc2A>^ceAZe=7OEv1+C{E^&tK!@j+QWye6{jK2~L_7BI82zo2mz%1+ zkM=NgUJZndn`08BDsQ+6lJEUa6m55?Y<=f>Nl&p302TgTC_Dfq4Kj%K_V!so%C83p zAB>ER-5LZVOv=fsu6hS?CkZu;UGhfO94BnyLGqmB;!u^q4hWSTO!1<~-RW=ArgRet z9_9+$fEOdFuG2z4U6&ap$Ip!Sc`uiAP(6mUE|SW$Ik1g6q4>i|R8SFy*INQ?<)b0U zwz=TqzeT|RRgcAU0BE%D1oZo$aAL!#+RDo0lwR{~1yS*GXmlB?{29gDhRu3-kDrB} zp8mE{R`SGznXOcsgpv}^l3C-@R?Vf;)Q>yZ*xBz@ccqx=^x{Wj%T2BfzJVMIkw=S& zDFwnbv+RLP&qwkO85xQ2W|BuYOPmczi*xx&2+0O;Hv}|fEPY(*uK??Uagnt8+a&r{l`1`7~ zG;5cAc2-Bf%=0x}E~^V4G7~Zhu8PEEwuyG!w)eob;F7uk$~B-tO9Tnc&4DApRV$KO zW8qs%gX!GLCqHU&Mgh*S6}St-Z+R17rt_3Zdp#}`#~g^l5}!X5`Tst)8ST; z?DMs2PdoZE;qfh=r^cl;#D9Z_ko8(kcW`#*O(m<D^WZ&(n9hTaM?v!k zlpQ5lzMFX7Ij-Tg@-A*#etFnytbojO%+9ivYtN08nK=VP!?hJEy z;Ujl=`DH@ijagXeS;B+kyxUBI4Bwzij~mvKuSyu@8)ccLh9mJ?_r zVt1QtVR@}z9L-S%d7}0Qvs-M~yfGYA3{&#R$jEjA(OeWF@UzW^#Lceb9_YR&+dBKh zde!qV&-EZ-DZ;wgFWf#gIXPMFu=@Fk=Y(TD<R2k+NR znbz{|va+(gQ0&Hr+Y@YSOha9r|Cf`W?q8NA)Iaa&1@bl2Sdj6v-lr#lqIG_r=nPBa z{K3#k_5q%Thl>1OJDb;Hw8%X}uix()@7kcSKUqe3Y(=8>goP-I!OA~= za=syJ{iMY?b1@GcKN58&^3fTu7`{`E=q-UlZc0NTMQ=-Gh+oLZ+_f!XXh~`%3KagoRZ)h4vZtuRas=gbR|EC}+6CgkjL8d^` z|9^(>zbb_8>J%w25RfI0K+0$;IY-+O!a)KtE(#!o615BOUuI{DpPRF`;*I=V{CpUl zk&(f|6mL?H6kY>CGBV)~df}DJOMxKQg;|Le-#)gOAzs%C}3f%F)${G`nhvI!9jo zZKBYW;35M-^&A%w8uV&1mtG{lH-Vsqwno4R5XI2YgP+hVD{Jev?(XhZ*sKjW3J>=O zd4ulwA`gIh!_k%~6H|nH2Go-MhxRMqk#kwg|N0tzO*q+3qoR-Gc)#h{TuyVlc!>N&$t{NP zdr3%2wsa|Z`h)?DE&f=mXc*-1^y!5gf>G}U5F}wEF0}Fv%Q$y&|ALRd=@`$DR^6xz zkAGqra)$$y_t>zx_b;#S-&l~L^rtptXyP05o(#>oe>pWx+Bw%QjJ)$YrGKC#jPx5l zeFJ?SxSp8EqMtwL=0L{CB6nP3{rTrL{+rcqFb^$DqbvOP!uRhljg5`PkvPHCt2#iZ zR4A>OAY`5?3?=My+_E#%s(7o!Pz4^tq~Oe0*n@y47{c-MMA^Gy-i)tBU zNFV%DBhPboUo631i+!xh#0Uuq&3{i6Dv4qV6*4URn9dvKw}22p>lHL+|7C!McVsb$ zTjiud@5okT=-KN3>Ga13ledxdGNi|gzof5{m$TS>`A?_Gb|E5iXsRl((y_T05PkV? z8+-vrnyV_KKT6{B1e88^U^tGSg2ffZt!S(L$+rT$USfg%J z`EkbO(o5Xw3UmqCu+_R3eCN}B3GmoDS+~mN1uegDnzw4b`;jqIoRufC>i^L4_YbUc zhAKg(xw!cPTb)S5?w8cm)NwIvC@YUCqXA>ydJFAxDQ&5a_hH`HPYj~Ag!N9RSF zn0PdQX62NHV(!Cd+%7+h&3J!}oIEQZy13tnRTko31d67yUgHTe~?qAh3$nXJK zl_@IG^Y|iQzjF%202HPmlU@KJUOX~lymAU*w1-5|PlDQ*!4+tQzOk%V$?uCuRnQKJ zm4*MRxTLKD5kwJ?0=;%_IIK`C1j!-{CRHI%Ow>MK23P<@2gS+Mt2W)BrBFr4wgTLy zBj-LJb&|qzz#%VfAnulLfJ_WTfj)=Yxl>FN={xvM1qvGbonhPR23p~`Ney*7B<|z5r7gF73~7c zo+21zUA6g<0_bWo3&)t(OJeVDHu)v_pdX8}u6!Qwqnt!I#qh*3F{3zy4I!5SA ztii{ohe|b#ll=O%F&`)3#KY0^v^|SZjLnpd7v z%^?G*ya`xCp;wa*rHkoXnX6Y5+&|^l`QUSz!@6Erwr)wCW2IO0ax0mCJ`QHw*cy5y zk2)dG-3S<~k3@iGT7j~zu8wQWsKxEm@9QILAIJ>UDaX0F#Yz$GjT6>WTw>fVq(4c# zZcx$&hq*U)s!^sxe-8zOB*ALGO8Ji)qJ($1$DG}_=^xx%4?w-vK0ouzXAtc6r9|xu zJz;Mb5zH2V^;kWB4v(4De7ylet()r?P8F~zk&?kSHa6BEM11NUD!6~S8iexuyrC5t zqTDX3!Q4`|)J2k4XntOL$w&`Fii8wdtH~5(tO47+>B8V;lbzKry$Xa@6^7Vh!&Uww z*SbghclkAahZ%Xcee8k^)zh*5@*|9A;s+>7u;~mILSN46%!IKITeCmOAeYusc{S3n z-Vz#3XP(?LRN6K5OLke?gowuT|9&sA$qRHP5!btWd(*H(Mfnp?)Z7pD_VxrS zN26+iz~~R82T0D%&6SWn0yS5VAh{jxZ;fwZhurn`^*cz#m)7%gb4O=bsY8r9beUI! zPc*W_W{98|h;f>zv0g@bt&T^0pedV))T*UmikImSJxwhkD?3uiw_E?weu1k+gxKC5 z3X&$dDJ76ar-QE74_q5lbH>aVH=?S&^4e+Y6QHQ!wzn~-9y~EU{cdDp;yi*9)PPiY z9fnw!5w$C)p*#Q#$R^#RP`uDR4v)u!##RG&6{thHIlwwweJ$q4KfJ}~F} zbX(*vyYktMxvuKAHjNpd%r8Yn9k3&NC#N3=XiDX{&d!@#YFU*|6B3-9oExADtPe^o zkBy1la2Te+yeJK{sH|qvH@#2KjP0RDMml{mhcb!R+w;hHejd|M?DI{5;}U%cV~lR4 zyOXgJgN-x-h=L+3vu*pKLiT9L;wbj}=z;F-+iXnn7MPJ0aYGk+Z>q7evC;ESUMkKG zIY^ChPCTr1N_|@9GaHz4yt_BB{^@4CpyT7VGFm>|&fw%fW9l?d^uA*J2JZK*a>SuR z&Fk^wX0ZK09(Rs(yeoX`p6(R8^%CM~u6DQjH!8iqeG`7LE-M zN_3^=^X)bY(1BIe@JPrNj_CrzgbnMG? zY}3>v^Tdx|df=cQ40e2_m}Wzv*TKPo)`RbU!?Ax@VX{{acI1^v6wb<7aBqL^@9XQ^ zmi>5mc)0!G)99A1H@-(Y+KksV%4TQ}w9>kUhotdv)1-Nnxu=4h+^7=H9@FqpOpyC{ zJldPqEwaIHqSR%0ot2gK&fB|;@i|_q)R~dA?gxH@uivZ1-Mb=+hr8V|P9a7_oCN7x z22!pI)F6N>t5#pGaX;Q-Ja65akhe$;NEpy0eIz%E@cwTU$rpSk6zFPa;vjV8O0l0zGIh(t5Q@DCnmK*X z>x_geFb#N2nC!WLKVxy${-oY29*w?%VU5#D2TAI#yr%}tG2O&_#%XZB;p)C;v!E4S z5|(q#j{VG^H(ah6dQhyTJg+>q>dE5KK!ql875uV0qK4qVA?*zlNGZ>^C=1=|mGYx9 zntg^IVVu4E?Cgc@0~1qRt$L{#apY-lQM)I@!pAjBS{LoL%lErrXI;4{zRq}I5z|Vv zwndH6GeKzi5upH$>3Yhmc(~yi49Yyjv}kB7c7$Fsrjl=Dz1Fi40E3d&=G>ent;q}} z_Tp*kh<(ZQs@2f80~@cS1UG>gu@1pw0n->J-pHOefmV9SiS{~r?$@N7*Vfji<G!-iJc{4#9s61$*%n`w-P1J?z4CCcO`r5%-Qm`6dP;?hiF+r+D!$bsU#& zK~MGks(WKMTnf{GlDE{jri4Mn`@C^h^8rZd+25}jUKcg5`{-unE42I&y5QM;cAi)$ z{G(xhEDr3Y@uNqq@<(lvtg*|Cn?ZjR_wlz5*&vcah}*uPbNry=uL9Gbk_G*BhU)}P z^qUzkKIL(^oGg8j@8)>9vJLcj+F(n?C1X>Z=VJP?u0n9;p+r@VvM z+cQ#4!vy6qHU=DjRPgxm^tblsj~_qI9*d*9deqt){D)hLX1Gw3U+0*ne#Lmu6tOtrfAe6+wU0i-D z(eiYp>^#PTl3nl>_f>UR|6%$R>BYp>vt0bF7T>gUI9g&-U_dAk?Ri>uNYc|}((J2B z(Xpe@>)}U;ow&57P*kta*ha%2iAR09d-2=C!pCJCu965A(tdk4+-;-pZYvZW))#j$e4jp`98oie<=7L!ioAQz4F>G4G1I=SA}14D zbtg7)1j4~%5VM)u_<9a0Lgdf*2)WDmrRGl)N8dP8*$lo?g?$zsNKcfFlJ@2`cPSlu#YffRjv+PFZa6FE!V#^hGrP+7 z?W0KhqC%EkksN(y5UqKl@UO$?eU{NU!0~Ao!$mluC^S)HFe zIcEc?-<8B*&Hu9^`FM3*#Tm}mf*I2ER{l)3D4H5Pwzva#;T9hLD&Yr-4ahscudJ?q z_H3-Jtvxj~)*F~YRBPIc#cDtEJMne?AnX$kS~W!*VCWTZn^ke zvnvTpTVd(j##UjA0sO(bD?2YtV9p9Z@O?L5CAv5Acf+NP-w=ykMHiF?u%1@ETjXTD zq3HH@&G)SQ!|OC5&GA3Wq{$+D{kfK4bCvV-aTj{=$4xiMw4UKizwN7^@OyRNeQl0# zZUIN-xD(vkl<6$nm!HJf^3wA9V|51%`2<%kF9?r;);~OBj>ZKbVf6(ikC-bjy+8T| z<^9-TF=AM$9MO_}-{AGV3C~5z?e9ZX&Kl2(ROyv|`>?pZ>A-PG+v7#uyxH_-S3`%6 zO>tH9vuw$;M49OZadMlsM*V>{E!h%z}M z#F%?`lF~GP@b-AvW65^frERJARi`60%8|S3aA+%4*xAL@TZAkhp_tq{;