From a9ee7ea97eaeedc0f781181c321c6e95886f5112 Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Sun, 17 Apr 2016 05:08:24 -0400 Subject: [PATCH 1/9] PASS 1 TO DO: SCISSORS AND SHAVER REWORK --- code/modules/client/preferences.dm | 81 ++++++---- .../mob/living/carbon/human/appearance.dm | 10 +- code/modules/mob/living/carbon/human/human.dm | 8 +- .../mob/new_player/sprite_accessories.dm | 149 +++++++++++++++--- code/modules/surgery/organs/robolimbs.dm | 90 +++++++++-- icons/mob/body_accessory.dmi | Bin 4069 -> 13074 bytes icons/mob/human_face.dmi | Bin 80515 -> 70884 bytes .../cyberlimbs/bishop/bishop_alt1.dmi | Bin 0 -> 659 bytes .../{bishop.dmi => bishop/bishop_main.dmi} | Bin .../cyberlimbs/bishop/bishop_monitor.dmi | Bin 0 -> 505 bytes .../hesphiastos/hesphiastos_alt1.dmi | Bin 0 -> 483 bytes .../hesphiastos_main.dmi} | Bin .../hesphiastos/hesphiastos_monitor.dmi | Bin 0 -> 469 bytes .../cyberlimbs/morpheus/morpheus_alt1.dmi | Bin 0 -> 596 bytes .../{ipc.dmi => morpheus/morpheus_main.dmi} | Bin .../wardtakahashi/wardtakahashi_alt1.dmi | Bin 0 -> 498 bytes .../wardtakahashi_main.dmi} | Bin .../wardtakahashi/wardtakahashi_monitor.dmi | Bin 0 -> 513 bytes .../human_races/cyberlimbs/xion/xion_alt1.dmi | Bin 0 -> 457 bytes .../{xion.dmi => xion/xion_main.dmi} | Bin .../cyberlimbs/xion/xion_monitor.dmi | Bin 0 -> 474 bytes .../{zenghu.dmi => zenghu/zenghu_main.dmi} | Bin 22 files changed, 273 insertions(+), 65 deletions(-) create mode 100644 icons/mob/human_races/cyberlimbs/bishop/bishop_alt1.dmi rename icons/mob/human_races/cyberlimbs/{bishop.dmi => bishop/bishop_main.dmi} (100%) create mode 100644 icons/mob/human_races/cyberlimbs/bishop/bishop_monitor.dmi create mode 100644 icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_alt1.dmi rename icons/mob/human_races/cyberlimbs/{hesphaistos.dmi => hesphiastos/hesphiastos_main.dmi} (100%) create mode 100644 icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_monitor.dmi create mode 100644 icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt1.dmi rename icons/mob/human_races/cyberlimbs/{ipc.dmi => morpheus/morpheus_main.dmi} (100%) create mode 100644 icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_alt1.dmi rename icons/mob/human_races/cyberlimbs/{wardtakahashi.dmi => wardtakahashi/wardtakahashi_main.dmi} (100%) create mode 100644 icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_monitor.dmi create mode 100644 icons/mob/human_races/cyberlimbs/xion/xion_alt1.dmi rename icons/mob/human_races/cyberlimbs/{xion.dmi => xion/xion_main.dmi} (100%) create mode 100644 icons/mob/human_races/cyberlimbs/xion/xion_monitor.dmi rename icons/mob/human_races/cyberlimbs/{zenghu.dmi => zenghu/zenghu_main.dmi} (100%) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index e458ebb7a14..2d430c19328 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1200,18 +1200,20 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts for(var/hairstyle in hair_styles_list) var/datum/sprite_accessory/S = hair_styles_list[hairstyle] if(species == "Machine") //Species that can use prosthetic heads. + var/obj/item/organ/external/head/H = new() + H.model = rlimb_data["head"] + var/datum/robolimb/robohead = all_robolimbs[H.model] if(species in S.species_allowed) - if(!rlimb_data["head"]) - valid_hairstyles[hairstyle] = S - continue - else - continue + if((!rlimb_data["head"] || robohead.is_monitor) && (robohead.company in S.models_allowed)) //If the Machine character has the default Morpheus screen head or another screen head + //and said head is in the hair style's allowed models list... + valid_hairstyles[hairstyle] = S //Allow them to select the hairstyle. + continue else - if(!rlimb_data["head"]) + if(!rlimb_data["head"] || robohead.is_monitor) //Monitors (incl. the default morpheus head) cannot have wigs (human hairstyles). continue - else if("Human" in S.species_allowed) + else if(!robohead.is_monitor && ("Human" in S.species_allowed) || S.name == "Bald") valid_hairstyles[hairstyle] = S - continue + continue else if(!(species in S.species_allowed)) continue @@ -1223,7 +1225,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts h_style = new_h_style if("headaccessory") - if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) // Species with head accessories + if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) //Species with head accessories. var/input = "Choose the colour of your your character's head accessory:" var/new_head_accessory = input(user, input, "Character Preference", rgb(r_headacc, g_headacc, b_headacc)) as color|null if(new_head_accessory) @@ -1232,7 +1234,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts b_headacc = hex2num(copytext(new_head_accessory, 6, 8)) if("ha_style") - if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) // Species with head accessories + if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) //Species with head accessories. var/list/valid_head_accessory_styles = list() for(var/head_accessory_style in head_accessory_styles_list) var/datum/sprite_accessory/H = head_accessory_styles_list[head_accessory_style] @@ -1246,7 +1248,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts ha_style = new_head_accessory_style if("markings") - if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) // Species with markings + if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) //Species with markings. var/input = "Choose the colour of your your character's markings:" var/new_markings = input(user, input, "Character Preference", rgb(r_markings, g_markings, b_markings)) as color|null if(new_markings) @@ -1255,7 +1257,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts b_markings = hex2num(copytext(new_markings, 6, 8)) if("m_style") - if(species in list("Unathi", "Vulpkanin", "Tajaran")) // Species with markings + if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) //Species with markings. var/list/valid_markings = list() for(var/markingstyle in marking_styles_list) var/datum/sprite_accessory/M = marking_styles_list[markingstyle] @@ -1263,10 +1265,14 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts continue if(species == "Machine") //Species that can use prosthetic heads. - if(!("head" in rlimb_data) && M.name != "None") //If the character can have prosthetic heads and they have the default head (with screen), no optic markings. - continue - else if(("head" in rlimb_data) && M.name == "None") //Otherwise, if they DON'T have the default head and since they must have optics, give them a list of styles excluding the "None" option. + var/obj/item/organ/external/head/H = new() + H.model = rlimb_data["head"] + var/datum/robolimb/robohead = all_robolimbs[H.model] + if((!("head" in rlimb_data) || robohead.is_monitor) && M.name != "None") //If the character can have prosthetic heads and they have the default Morpheus head (or another monitor-head), no optic markings. continue + else if(("head" in rlimb_data || !robohead.is_monitor) && M.name != "None") //Otherwise, if they DON'T have the default head and the head's not a monitor but the head's not in the style's list of allowed models, skip. + if(!(robohead.company in M.models_allowed)) + continue valid_markings[markingstyle] = marking_styles_list[markingstyle] @@ -1307,20 +1313,19 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if(gender == FEMALE && S.gender == MALE) continue if(species == "Machine") //Species that can use prosthetic heads. + var/obj/item/organ/external/head/H = new() + H.model = rlimb_data["head"] + var/datum/robolimb/robohead = all_robolimbs[H.model] if(species in S.species_allowed) - if(!rlimb_data["head"]) + if(!rlimb_data["head"] || robohead.is_monitor) //If the Machine character has the default Morpheus screen head or another screen head and they're allowed to have the style, let them have it. valid_facialhairstyles[facialhairstyle] = S - continue - else - continue + continue else - if(!rlimb_data["head"]) + if(!rlimb_data["head"] || robohead.is_monitor) //Monitors (incl. the default morpheus head) cannot have wigs (human facial hairstyles). continue - else if("Human" in S.species_allowed) + else if(!robohead.is_monitor && ("Human" in S.species_allowed) || S.name == "Shaved") valid_facialhairstyles[facialhairstyle] = S - continue - else - continue + continue else if(!(species in S.species_allowed)) continue @@ -1492,17 +1497,39 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts rlimb_data[second_limb] = null if("Prosthesis") var/choice = input(user, "Which manufacturer do you wish to use for this limb?") as null|anything in chargen_robolimbs + var/subchoice + var/datum/robolimb/R = new() + var/in_model if(!choice) return + R.company = choice + R = all_robolimbs[R.company] + if(R.has_subtypes == 1) + var/list/robolimb_models = list() + for(var/limb_type in typesof(R)) + var/datum/robolimb/L = new limb_type() + if(limb in L.parts) + robolimb_models[L.company] = L + if(second_limb in L.parts) + in_model = 1 + subchoice = input(user, "Which model of [choice] [limb_name] do you wish to use?") as null|anything in robolimb_models + if(subchoice) + choice = subchoice if(limb == "head") - m_style = "Humanoid Optics" ha_style = "None" h_style = hair_styles_list["Bald"] + f_style = facial_hair_styles_list["Shaved"] + m_style = "None" rlimb_data[limb] = choice organ_data[limb] = "cyborg" if(second_limb) - rlimb_data[second_limb] = choice - organ_data[second_limb] = "cyborg" + if(subchoice) + if(in_model) + rlimb_data[second_limb] = choice + organ_data[second_limb] = "cyborg" + else + rlimb_data[second_limb] = choice + organ_data[second_limb] = "cyborg" if("organs") var/organ_name = input(user, "Which internal function do you want to change?") as null|anything in list("Heart", "Eyes") diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index d74dcbd54c4..8264db804fd 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -179,16 +179,17 @@ continue if(species.flags & ALL_RPARTS) //If the user is a species who can have a robotic head... var/obj/item/organ/external/head/H = organs_by_name["head"] + var/datum/robolimb/robohead = all_robolimbs[H.model] if(!H) return if(species.name in S.species_allowed) //If this is a hairstyle native to the user's species... - if(H.model == "Morpheus Cyberkinetics") //Check to see if they have the default head. + if(robohead.is_monitor && (robohead.company in S.models_allowed)) //Check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list. valid_hairstyles += hairstyle //Give them their hairstyles if they do. continue else //If they don't have the default head, they shouldn't be getting any hairstyles they wouldn't normally. continue else - if(H.model == "Morpheus Cyberkinetics") //If the hairstyle is not native to the user's species, and they're using the default head, don't let them access it. + if(robohead.is_monitor) //If the hair style is not native to the user's species and they're using a head with an ipc-style screen, don't let them access it. continue else if("Human" in S.species_allowed) //If the user has a robotic head and the hairstyle can fit humans, let them use it as a wig for their humanoid robot head. @@ -212,17 +213,18 @@ continue if(species.flags & ALL_RPARTS) //If the user is a species who can have a robotic head... var/obj/item/organ/external/head/H = organs_by_name["head"] + var/datum/robolimb/robohead = all_robolimbs[H.model] if(!H) continue // No head, no hair if(species.name in S.species_allowed) //If this is a facial hair style native to the user's species... - if(H.model == "Morpheus Cyberkinetics") //Check to see if they have the default head. + if(robohead.is_monitor && (robohead.company in S.models_allowed)) //Check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list. valid_facial_hairstyles += facialhairstyle //Give them their facial hair styles if they do. continue else //If they don't have the default head, they shouldn't be getting any facial hair styles they wouldn't normally. continue else - if(H.model == "Morpheus Cyberkinetics") //If the facial hair style is not native to the user's species, and they're using the default head, don't let them access it. + if(robohead.is_monitor) //If the facial hair style is not native to the user's species and they're using a head with an ipc-style screen, don't let them access it. continue else if("Human" in S.species_allowed) //If the user has a robotic head and the facial hair style can fit humans, let them use it as a postiche for their humanoid robot head. diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index aa187431c63..6a5cca19723 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1590,7 +1590,11 @@ return if(species.flags & ALL_RPARTS) //If they can have a fully cybernetic body... - if(client.prefs.rlimb_data["head"]) //If head is present here, that means it's not the default Morpheus. Thus, no screen to adjust. Instead, let them change the colour of their optics! + var/obj/item/organ/external/head/H = organs_by_name["head"] + var/datum/robolimb/robohead = all_robolimbs[H.model] + if(!H) + return + if(!robohead.is_monitor) //If head is present here, that means it's not the default Morpheus. Thus, no screen to adjust. Instead, let them change the colour of their optics! var/optic_colour = input(src, "Select optic colour", rgb(r_markings, g_markings, b_markings)) as color|null if(optic_colour) r_markings = hex2num(copytext(optic_colour, 2, 4)) @@ -1598,7 +1602,7 @@ b_markings = hex2num(copytext(optic_colour, 6, 8)) update_markings() - else if(!client.prefs.rlimb_data["head"])//Means that the character has the default Morpheus head, which has a screen. Time to customize. + else if(robohead.is_monitor)//Means that the character has the default Morpheus head, which has a screen. Time to customize. var/list/hair = list() for(var/i in hair_styles_list) var/datum/sprite_accessory/hair/tmp_hair = hair_styles_list[i] diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 23e3fb1d906..a1e764eb2b3 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -43,6 +43,7 @@ // Restrict some styles to specific species var/list/species_allowed = list("Human", "Slime People") + var/models_allowed = list() //Specifies which, if any, hairstyles can be accessed by which prosthetics. Should equal the manufacturing company name in robolimbs.dm. // Whether or not the accessory can be affected by colouration var/do_colouration = 1 @@ -57,7 +58,6 @@ */ /datum/sprite_accessory/hair - icon = 'icons/mob/human_face.dmi' // default icon for all hairs bald @@ -379,105 +379,169 @@ //////END VG HAIRSTYLES/////// ////////////////////////////// + ipc_screen_pink - name = "pink IPC screen" + name = "Pink IPC Screen" icon_state = "ipc_pink" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_red - name = "red IPC screen" + name = "Red IPC Screen" icon_state = "ipc_red" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_green - name = "green IPC screen" + name = "Green IPC Screen" icon_state = "ipc_green" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_blue - name = "blue IPC screen" + name = "Blue IPC Screen" icon_state = "ipc_blue" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_breakout - name = "breakout IPC screen" + name = "Breakout IPC Screen" icon_state = "ipc_breakout" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_eight - name = "eight IPC screen" + name = "Eight IPC Screen" icon_state = "ipc_eight" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_rainbow - name = "rainbow IPC screen" + name = "Rainbow IPC Screen" icon_state = "ipc_rainbow" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_goggles - name = "goggles IPC screen" + name = "Goggles IPC Screen" icon_state = "ipc_goggles" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_heart - name = "heart IPC screen" + name = "Heart IPC Screen" icon_state = "ipc_heart" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_monoeye - name = "monoeye IPC screen" + name = "Monoeye IPC Screen" icon_state = "ipc_monoeye" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_nature - name = "nature IPC screen" + name = "Nature IPC Screen" icon_state = "ipc_nature" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_orange - name = "orange IPC screen" + name = "Orange IPC Screen" icon_state = "ipc_orange" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_purple - name = "purple IPC screen" + name = "Purple IPC Screen" icon_state = "ipc_purple" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_shower - name = "shower IPC screen" + name = "Shower IPC Screen" icon_state = "ipc_shower" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_static - name = "static IPC screen" + name = "Static IPC Screen" icon_state = "ipc_static" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_yellow - name = "yellow IPC screen" + name = "Yellow IPC Screen" icon_state = "ipc_yellow" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_scrolling - name = "scanline IPC screen" + name = "Scanline IPC Screen" icon_state = "ipc_scroll" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_console - name = "console IPC screen" + name = "Console IPC Screen" icon_state = "ipc_console" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_rgb - name = "rgb IPC screen" + name = "RGB IPC Screen" icon_state = "ipc_rgb" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") ipc_screen_glider - name = "glider IPC screen" + name = "Glider IPC Screen" icon_state = "ipc_gol_glider" species_allowed = list("Machine") + models_allowed = list("Bishop Cybernetics mtr.", "Hesphiastos Industries mtr.", "Morpheus Cyberkinetics", "Ward-Takahashi mtr.", "Xion Manufacturing Group mtr.") + + hesphiastos_alt_off + name = "Dark Hesphiastos Screen" + icon_state = "hesphiastos_alt_off" + species_allowed = list("Machine") + models_allowed = list("Hesphiastos Industries alt.") + + hesphiastos_alt_pink + name = "Pink Hesphiastos Screen" + icon_state = "hesphiastos_alt_pink" + species_allowed = list("Machine") + models_allowed = list("Hesphiastos Industries alt.") + + hesphiastos_alt_orange + name = "Orange Hesphiastos Screen" + icon_state = "hesphiastos_alt_orange" + species_allowed = list("Machine") + models_allowed = list("Hesphiastos Industries alt.") + + hesphiastos_alt_goggle + name = "Goggles Hesphiastos Screen" + icon_state = "hesphiastos_alt_goggles" + species_allowed = list("Machine") + models_allowed = list("Hesphiastos Industries alt.") + + hesphiastos_alt_scroll + name = "Scrolling Hesphiastos Screen" + icon_state = "hesphiastos_alt_scroll" + species_allowed = list("Machine") + models_allowed = list("Hesphiastos Industries alt.") + + hesphiastos_alt_rgb + name = "RGB Hesphiastos Screen" + icon_state = "hesphiastos_alt_rgb" + species_allowed = list("Machine") + models_allowed = list("Hesphiastos Industries alt.") + + hesphiastos_alt_rainbow + name = "Rainbow Hesphiastos Screen" + icon_state = "hesphiastos_alt_rainbow" + species_allowed = list("Machine") + models_allowed = list("Hesphiastos Industries alt.") + /* /////////////////////////////////// @@ -496,8 +560,7 @@ name = "Shaved" icon_state = "bald" gender = NEUTER - species_allowed = list("Human", "Unathi", "Tajaran", "Skrell", "Vox", "Diona", "Kidan", "Greys", "Machine", "Vulpkanin", "Slime People") - + species_allowed = list("Human", "Unathi", "Tajaran", "Skrell", "Vox", "Diona", "Kidan", "Greys", "Vulpkanin", "Slime People") watson name = "Watson Mustache" @@ -1785,6 +1848,21 @@ icon_state = "antennae" species_allowed = list("Machine") +/datum/sprite_accessory/head_accessory/ipc_tv_antennae + name = "T.V. Antennae" + icon_state = "tvantennae" + species_allowed = list("Machine") + +/datum/sprite_accessory/head_accessory/ipc_tesla_antennae + name = "Tesla Antennae" + icon_state = "tesla" + species_allowed = list("Machine") + +/datum/sprite_accessory/head_accessory/ipc_light + name = "Head Light" + icon_state = "light" + species_allowed = list("Machine") + /* BODY MARKINGS */ @@ -1832,6 +1910,31 @@ name = "Humanoid Optics" species_allowed = list("Machine") icon_state = "optics" + models_allowed = list("Bishop Cybernetics", "Hesphiastos Industries", "Ward-Takahashi", "Xion Manufacturing Group", "Zeng-Hu Pharmaceuticals") //Should be the same as the manufacturing company of the limb in robolimbs.dm + +/datum/sprite_accessory/body_markings/optics/bishop_alt + name = "Bishop Alt. Optics" + species_allowed = list("Machine") + icon_state = "bishop_alt_optics" + models_allowed = list("Bishop Cybernetics alt.") + +/datum/sprite_accessory/body_markings/optics/morpheus_alt + name = "Morpheus Alt. Optics" + species_allowed = list("Machine") + icon_state = "morpheus_alt_optics" + models_allowed = list("Morpheus Cyberkinetics alt.") + +/datum/sprite_accessory/body_markings/optics/wardtakahashi_alt + name = "Ward-Takahashi Alt. Optics" + species_allowed = list("Machine") + icon_state = "wardtakahashi_alt_optics" + models_allowed = list("Ward-Takahashi alt.") + +/datum/sprite_accessory/body_markings/optics/xion_alt + name = "Xion Alt. Optics" + species_allowed = list("Machine") + icon_state = "xion_alt_optics" + models_allowed = list("Xion Manufacturing Group alt.") /datum/sprite_accessory/body_markings/tattoo // Tattoos applied post-round startup with tattoo guns in item_defines.dm name = "base tattoo" diff --git a/code/modules/surgery/organs/robolimbs.dm b/code/modules/surgery/organs/robolimbs.dm index bcebd7e1e64..f7a450d77f6 100644 --- a/code/modules/surgery/organs/robolimbs.dm +++ b/code/modules/surgery/organs/robolimbs.dm @@ -1,4 +1,5 @@ var/global/list/all_robolimbs = list() +var/global/list/robolimb_data = list() var/global/list/chargen_robolimbs = list() var/global/datum/robolimb/basic_robolimb @@ -9,41 +10,112 @@ var/global/datum/robolimb/basic_robolimb all_robolimbs[R.company] = R if(!R.unavailable_at_chargen) if(R != "head" && R != "chest" && R != "groin" ) //Part of the method that ensures only IPCs can access head, chest and groin prosthetics. - chargen_robolimbs[R.company] = R + if(R.has_subtypes) //Ensures solos get added to the list as well be incorporating has_subtypes == 1 and has_subtypes == 2. + chargen_robolimbs[R.company] = R //List only main brands and solo parts. /datum/robolimb var/company = "Unbranded" // Shown when selecting the limb. var/desc = "A generic unbranded robotic prosthesis." // Seen when examining a limb. var/icon = 'icons/mob/human_races/robotic.dmi' // Icon base to draw from. var/unavailable_at_chargen // If set, not available at chargen. + var/is_monitor // If set, limb is a monitor and should be getting monitor styles. + var/has_subtypes = 2 // If null, object is a model. If 1, object is a brand (that serves as the default model) with child models. If 2, object is a brand that has no child models and thus also serves as the model.. + var/parts = list("chest", "groin", "head", "r_arm", "r_hand", "r_leg", "r_foot", "l_leg", "l_foot", "l_arm", "l_hand") //Defines what parts said brand can replace on a body. /datum/robolimb/bishop company = "Bishop Cybernetics" desc = "This limb has a white polymer casing with blue holo-displays." - icon = 'icons/mob/human_races/cyberlimbs/bishop.dmi' + icon = 'icons/mob/human_races/cyberlimbs/bishop/bishop_main.dmi' + has_subtypes = 1 -/datum/robolimb/hesphaistos +/datum/robolimb/bishop/alt1 + company = "Bishop Cybernetics alt." + icon = 'icons/mob/human_races/cyberlimbs/bishop/bishop_alt1.dmi' + parts = list("head") + has_subtypes = null + +/datum/robolimb/bishop/monitor + company = "Bishop Cybernetics mtr." + icon = 'icons/mob/human_races/cyberlimbs/bishop/bishop_monitor.dmi' + parts = list("head") + is_monitor = 1 + has_subtypes = null + +/datum/robolimb/hesphiastos company = "Hesphiastos Industries" desc = "This limb has a militaristic black and green casing with gold stripes." - icon = 'icons/mob/human_races/cyberlimbs/hesphaistos.dmi' + icon = 'icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_main.dmi' + has_subtypes = 1 -/datum/robolimb/ipc +/datum/robolimb/hesphiastos/alt1 + company = "Hesphiastos Industries alt." + icon = 'icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_alt1.dmi' + parts = list("head") + is_monitor = 1 + has_subtypes = null + +/datum/robolimb/hesphiastos/monitor + company = "Hesphiastos Industries mtr." + icon = 'icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_monitor.dmi' + parts = list("head") + is_monitor = 1 + has_subtypes = null + +/datum/robolimb/morpheus company = "Morpheus Cyberkinetics" desc = "This limb is simple and functional; no effort has been made to make it look human." - icon = 'icons/mob/human_races/cyberlimbs/ipc.dmi' + icon = 'icons/mob/human_races/cyberlimbs/morpheus/morpheus_main.dmi' unavailable_at_chargen = 1 + is_monitor = 1 + has_subtypes = 1 + +/datum/robolimb/morpheus/alt1 + company = "Morpheus Cyberkinetics alt." + icon = 'icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt1.dmi' + parts = list("head") + unavailable_at_chargen = null + is_monitor = null + has_subtypes = 2 //Edge case. We want to be able to pick this one, and if we had it left as null for has_subtypes we'd be assuming it'll be chosen as a child model, + //and since the parent is unavailable at chargen, we wouldn't be able to see it in the list anyway. Now, we'll be able to select the Morpheus Ckt. Alt. head as a solo-model. /datum/robolimb/wardtakahashi company = "Ward-Takahashi" desc = "This limb features sleek black and white polymers." - icon = 'icons/mob/human_races/cyberlimbs/wardtakahashi.dmi' + icon = 'icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_main.dmi' + has_subtypes = 1 + +/datum/robolimb/wardtakahashi/alt1 + company = "Ward-Takahashi alt." + icon = 'icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_alt1.dmi' + parts = list("head") + has_subtypes = null + +/datum/robolimb/wardtakahashi/monitor + company = "Ward-Takahashi mtr." + icon = 'icons/mob/human_races/cyberlimbs/wardtakahashi/wardtakahashi_monitor.dmi' + parts = list("head") + is_monitor = 1 + has_subtypes = null /datum/robolimb/xion company = "Xion Manufacturing Group" desc = "This limb has a minimalist black and red casing." - icon = 'icons/mob/human_races/cyberlimbs/xion.dmi' + icon = 'icons/mob/human_races/cyberlimbs/xion/xion_main.dmi' + has_subtypes = 1 + +/datum/robolimb/xion/alt1 + company = "Xion Manufacturing Group alt." + icon = 'icons/mob/human_races/cyberlimbs/xion/xion_alt1.dmi' + has_subtypes = null + +/datum/robolimb/xion/monitor + company = "Xion Manufacturing Group mtr." + icon = 'icons/mob/human_races/cyberlimbs/xion/xion_monitor.dmi' + is_monitor = 1 + has_subtypes = null /datum/robolimb/zenghu company = "Zeng-Hu Pharmaceuticals" desc = "This limb has a rubbery fleshtone covering with visible seams." - icon = 'icons/mob/human_races/cyberlimbs/zenghu.dmi' \ No newline at end of file + icon = 'icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi' + has_subtypes = 2 \ No newline at end of file diff --git a/icons/mob/body_accessory.dmi b/icons/mob/body_accessory.dmi index 16d6b2f03f917153409dcef6e67a17932ccfa710..e98c077053b2a061ccee33283b638ce1c9278c8a 100644 GIT binary patch literal 13074 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 delta 60645 zcmce;XH-*N+btZV-XI`FK#*#oH>G!^D$=CaD2URL4pKIP)KEo0lp-KqK#<;o^rBP& zr4xE5^qPDt_wzpEJHO8PbH>SV=+4eg_S$P*>ss@gb1oMP2|^AD;^`p;5+WE3mX&=c z69yxceywlpp={%B?PmAN!_LJS2J=ZvH|=p|lDsB631`1;^lZ-Qg&W!?{%O3@9+|SI zcO;*;XwNIVhnO?TZZA_t4d1IC2|>qEU#&{M$dzJF_jbm2iU($!EeFyn2#~MMWiMRa z1FDj;YDX8=G23Uo<;IW^g}hr40xs@C`DktociX@+VTKFSg zd-J~doT$&F?Z?O`R8JnMxP^@Ak;qA-(@Z6*Ms@Q|AK3~8tpqxXC_JAV=ddF+tjmPJcZ#Nu{M6>)yN^g56ogmlGyG z5#!-C6kvXM@72v+f-cxFoH^)m$9(=vlcZ<&&5j7yhrvg&9wSgfO&D$UG!t=$IN^uH zNGAW$hySS8tf*7ZG%~j;%%MaKn0N7+dxmcd)xX$#{;ZMc!dAp*GQLXGr{N)re-lo# z(ir~Z*&G4u0PRhuc}HrZJvxddAwYOPI-U-ig0TzBd_3qY6=T~AU6Dt>~l9fAw_05dNb|BaS zOtE|J91_AY^Zw+rg6GB*aJQj`TkKuROkYR$@6QFlt_iG_gy!!y>txgao;+;Gw6=@o zzDy?7+kJEVa$sei^KgE-DO5J;b=F(H!`eENZRm8v__?~r4`S@=W1YA=%IKHr`|pIU zG|~RrzLBZ@^qm@&o2^F=D*Vn-=IYtVPBL z%iMdvsAd!P+5}4apqWoVZpS11iIXw@YXS9l-N-r;f%A&-^lU+&32u=tWxwxPEL3tm z_u02n%9_?{uf5J$b#OVW90-lSx9;E~_T@Euab|YnBH!Tk%(A9(5zY4`YeN28F)OCj zd@@69vR__$&HFc7qB`4)^2T*;%J^gB-nRcC>mgz`rGLEuiF_TYClZh+^^lhdPhX>1 zX>E(+A+;d*_3WijRN4dkg{Sl#?tfAfOg=r2`>m>=}pPa zU0ojv>F@dGiUnlG0-xIYeacHe&&k>DM&Eubx%rc5x~yvkTK;x_74g$t^y9d-+%z`or-XN&tXbURtl~|qsZe}(_U^t>42sIZWn_kFFSLpC zqJMd50>8QEmDM!wKTD2xZW$#~`z4;!9(_3P~D`QoFaO{PDW z5AXZ^9$-@6*ET8h8 zvq9(`byg#IGh`WnIXXO(?@Mt~IsUt^{2fW?tPP#V#4I%K6JYs!6WSqRGq0Lo>JCz= zzU~l1Y~7{FXU7No8|$TKhx;;juszf-jl4Vs;bs=gU)MbrbIN*!eaVjd%A%gs`??}wfTqH0?j?uzVfTRU3tbS9nE?7 zE?b~Sm;CF40t+)UGT1d_hZl2s$E+KZM-x`nTKKW1rX(TBDZ#C|w8|o!7N(}AmX1o}37v89 zY$85qhI@Zy>maJglph%xiHF*~ES$KOPO(v>LY8=*+ps-F;&|C>BS}HH?rE70i7P59 zYTT0YIjovRdxBq+Z(QXHK7p87yJP(m)Q}NQd$zQrj7&^UWn#58NfSdkYFnv~i4GgQ zt)D+9fbEuH&&mpBo6Iz*Iz=@7938K=OkY}FurM)=R8U5s`VI~%-LFX8yO+)1yc&{_ zK*fnUI1q83t~bc5C;9$coUaJ^<{v+QScEbMQ*teQO}$`h1uMyRegjH7m!wa|e}O~~0iWJ^0_{L?P8_k=azAmRRm z>c#fXj`$+Yv!q*W&6is)OjecQ7Z*#jd%wRuk@ntBqsd1iXIFQ2ye)}~tnvS1wC^UW zYiV&XBG@G*Q!jgDvFe-W2)0E6v5Ft*kSJ|ST6$OaMTxEl%Y0Bv$8B#xo_+PmS+p(mR?l zspg%Da1T696Hn}ssF6Re8{m#Xrd`o5&+JgiERTZi2^l|~@2Pzhsm!tSu)4Z>0>xx9 zt<0`kbH0OQg~rR^T_9B5h;vQl-d_HMO#Y%)JT<1_JT=bK4=Rt?I#p>R##ofyQ2exv zH}rV0duYntx$1nO^guJaw9$gEUzI%<|GDVvl85c;_prh@9kwr7y93V)9N-@G?8=JD zMvl4%C8ecD*5uLmV6_3~)vo79ThbsGX_>*;5__PNd!))ntUk=Es~Om>;|Dc$9Efz@ zc9IOj8$A5-v98HVY7Jq0eY=b{!_(7FBBG*y_af^^IVge}Y36K2ikyUvbq`+AKl6B} z-D(hbmf-2(A#u5*;)yvwKaauBvqPZBf*J@@pFeS6|Cvg3r%I*9ThRPfhIBkqyMT?} zBKbRHp>olo)p{vK5x-F67-DoYU4_Bbf5)@bp>${gdp)!K=@nX7L+UH)|R$)(wD)_XRf`ea$L z(xxd+;hjmcO$6(-t7oU#&$+qJ{FgtAohP4Ux);e4pP!vYKREwXDyX=4qG;@+(_a^R zoc%zBVw7_>_&!Q$sSe@}tnbue?~x0bL_1<#wu(vJ0sG z%6p;bCaP|3d(M7tIobNg+YbYcReunyNhlbZjV++DMd4Q)k7xYg7F*VQDK;jEjLnUV zkex1C7}a=Lv3z$s-sjn^!L=@VOgVe0|7}u15I3!H(1rCwLUZC}%=r#{ z^s?AyZd<(RlbBQM`43bWraP{oQ#W2x-Hpz~ zqQ2@XAPtB7Wc?jHIP@UC!Q8S?3_pi2*1NXg5)D@{U($Gm8TV8F}ft!{uZ(AG!A2MPvL z@THyQ>|Yv>n+kT2jGV%qoJv+`Ym;Iz0zE~!^^}1g9X!hV)++3(x0O8!wPMR|X$c4a zxtpYnR*4Q9%BrZiH%LfPuJEl$%+Syt7Ni9q`D6pvvWcml>-X&s}SRXqgJ- zuXU)GRI2UC<6m@TA8@K?%1E!TTN!nA%H`b8YdrCU!)K$y<&qzGdREzLn}A!B2WDKO zqM}ODzeXnL?2r|s*oyzcRF5>~-jMK_@^TlW&^EUiK0dxGNRv+J>7rZOe8$&|mqb2y zgw-)>OhIrS@Y{RNhy=mm0)~oDdlFidGE}^55ZE*p+L{CO>No1#PR&QkaxiYQzejUTsJX(n`Lz)+2(Ybh$CBcA;?aS za?a(8=Io7%uOop~;s5^j7!i1Y2*Ww>;Xo@H?weHn^khP~XH!;&l$E1g$r*4h$Gtj0 z3;uJ&@g$n?|G{bKe|JyrVe~@RmQ{6G%}KpAf7hyf<1>O1P320=$t7mP+kd(|S>xp= z6uNf$_wV<|IlN-9TI;R_*AnysI5jilTvJnXzIXAaA%JZntC;d)273`(COzgxSgxt8 zj1cDQ+iM_qfI4xvX!1Ko4d-e|xGzVS|Mt3$?wH*^v79uhQtWc)58D=FmiBV|5q|mi z`^&1s&{?z!Q)g$Vj*$^D+RTXQBAOf)6B9#r20eYsCW6)+xgdkh#&uZrSNHVvU~Nst zDD}IX?d|W~<>bWH81o%nPTlo$a~pQ`T^Cf$S=Y!wqzS_i1|aF9qfa*Q#F4dPhZu*_S%}R+_%rUxgE`JOQc@gQ-zfS zA&l7Wgj-%x>7D)Q(g|Am!V(e%CFB6U3B!J>aZs7pxe+F)x3k>5`CICPawCSn@808) zN~5z0xNA-vz@UiCu`$D~(G~DFWab>w|HtomTLstrv9TB8;^LFw?I>MCcJ>w69;$EB zlZw?No7pr3KR&aep9ar$ZwG_siTc`gl1+}oNKQ`t0OyBJH+V}=dbSeE~s;!8W;B`2xC8ER13*w_Y7qlb}<=MTI$6mrK z6*(nKOOLU*)qpYP3hZ5C;vaw@r^H1?2}f@!e*E}xv#^kRil%)ub*^X~FhL zbwKenSdImk{RPM~sOxA4J{T4k7G71UxQR_rCkWieax^zuq}+em&j8+nI*xiko;uQ2 z7Q!^REk(KS@dmbUeQOuj9GR(e=Y+9QM?PKYPY2b?;K8Z1U>8A9y0kZAo?ZXOI{t{r zeiUVWtaLCfYY+|ijX5w9Qj&`ZsnTkH7&91c48v5JG65DG(*1_4W19Gc%R|Cp(lV^#A%L=^_Wl z@$~KkdbEFsxR8Z~#RTs+c)-bQlI+=TDLJYQZbVTU8}kFUI~PKkU0Om4@)1)HmZE{7*m!*ax3a4fS`z(GDu1e1`5sR_hBld~nYb%%TSW_q0cI*11xpr>_=Sg;&lXjc8Tk46d$l@M&<`sW7cIw6<>9;GFc=%`p|YZW z*-f~>gOls5-5DY4Jgqk+-P*YuqyE&%agFG{O+W~upksT>a~1lhV1DH1=O^?$*D)|i zI(A_XfKELvindESu=l3G} z`?Z(@bdw+7ZHf|7s3zHm>k|ojd@kF#{kU6aVhZc_t+30lSi-ttYv2>?0C@7=`d}o^jdZXZg?Lcc>j4@*!;O8F`&k^*3+4=chgCgXGeCb*)wLa)<8r(;W zu&3a9n<9jZ+mK4*_R={b;Ab|O5GW`>y-frIIO0}f&m4fiBJJAcaYlTShIbQt91slT zpM$yNXnCX#j*b|4ATk(gZrsA3iX$On4_}9>D~>%sw6f{d@b>G|=QE0t_R=C{lBnew zVuR-Gl&JKc=dZAr$4Xtzf+L`(7efRUcFuT1wcI?eKbry*r==yRG(^zD%PZ=%nu(P5 z+55^i3;*5h*SDkm77-Wx9~k~A+-ovvCmlXV4&vfwwiha78nf&&|(Qi*DxjR3A9mQ|A-DqVDZ4nbChiNkK7z z;|aQ#W^y!pCs6_trOT)E7D0ujrJe2V1R&W62@C7Kl4zy?$;H=+iqo2h?`1(%@BAOs zr?3Y}M;=n-=#rqQ6Stf4YRx`&e)C^0Auv^X^&v80F|jaXzGV~t$PTMswWkp$fO~40 zUQ{ht|!Y}P+Z(cviH#VHnpxCPggMv_pMDkTb+86uMigor>rkQ1G0$sQyDgC$-Q(_N;yZfr{%#A%0eTJsp5B z`!;*;6_^9&44@#37!b5zZGas>`<4+GF^#sLcr=*Ji!m<-1FmgjN)|r#fF)t6O$IS~ zxc6{@o)w-!IjI=Y8=OO5zKw{mFfa&hZkB_ePk|ts!Ga`~)ai#gU6F;KhgO%VX=-X# z_ZG*{_H1u&i(S;xmeMB?`qZ^>AdfdPAlCL{=x;jZR9Pbo`N!dFLxWi#?ain2uX&}$ z;5V3=J)@Y3ACIt9@ZDmJK?N-nvW0GMJ1c$lyAS9wyphVp#6^2)|Kw!nhoIW6`Yp`ZFej8Md;8B(QnYQWC zCElQ_Nq+XK?*?9uRI@)!z$n|3Ka7iR#(+7Wp^i$3NuNIKDl8FkbF*lh*85_%{z!Hd zt&-K&-7zM+RS*vtVu=9@PhF^J@H{U-k5ioSX}Jq{%_%o`P}=GHc$X}%RjXRWI9U@A!#-WsTW;M2ZLY1^F?3V39XqVnrLgzi0}N=3g4g@l-i`>errFa|IrUzLxHk)y z1o|(3vhg)<+@1JRB%l0oj5?;{y(OvXSN`w$S9xs>Y$in_R@QXKr;a9!u-Agj->!p7F{K;j3=-gOz+ZZdUFAaRZ(jG}e z6m+UBfB8EgWqNkDY_Tn+l^@WctmKq_beWVNpu7?{at10tZk|aT>+OxUDVNiISb2vr zMrxo25TaUIT14x8cpTYJXl@A@O6>&)zacJic+ZfK?VxTu2(WK_17Fo%p}L}Os#(ax z=rCP7FuVm{i%1>Ogs}b$SqFVX1MZEu+$dft0YWKI&t6!7!U=XVoYMTh#v-&6>QtR< z`cne$pl9Dl8Ij!aAk zd^iVV%$cD-m6Wvf%Fa~XcXq}YE6~R{?nCze{qK0}pq;OMVg!60v4OwG$EA&Uo^UfF zd<9xRrKPolYQaY3b4T9Ms%5;{ONfSws_<3ZEcxf85mAUj(OQNA4BY0BTDhFuQnfU^UcFPE2_f4}?IMCy;|l5pu8 zQxV>9htV|cEdS_iy($N&@=ItzmG98Kx#>8w6%|GLv%g>9kJd)YILE8Ns?dmo zea3(ApF@Hjg;x-afCP%`^uV{Nezqn0uTU}>-GS67ABH#X=m#d*f>tbsQylgL>UmyWvImHIvj zJCyfh$JjZtKU?F4*~S1B1j7sa`TX7oC_UXXuwe)H1Exi_*{}H-&?j+Qvy`q6?R6c& z{dF0^ye1`fbI>OI3v#~Xm9U72;8;S2?5c(O6D3+pW%d^URW%@ggOVdaZPYqt!qlFZ zN>{ku_5MjkXFtVh^l$F0Q{Fk-?tW7!W|HA1K z=4;wX}@&kct85q@+wf3zP`4${e-6`+3P2 z`bJBv)UhIRf!;o3z1pXpw#I4n97DZDVu5Lz$lAZ0jjL6DprL_C*Mjn?B9#FXl5=^u z;(hVp{3$qFk}V4=I*>NOlF%lii63MhRKwr*1Y?uuzv;gG^F|K1)i!`&Q z-=skYy;FSLn@g!9nvb78Iazeg(mID8xm%ng&7T)wNAja{tBdX1X5<5?Q!w+5d&Yft zs_dFE+L=7-kjz|$RY)W%#Qg0w!c;3(hdb@WWfG_K(1v~ZMWcIp%+wq8RJ)Jf9%&I< z(+%|U*wcaZ6{Po$}ep>MI7`p!?)9}jWg3fyNVojDt|Dj z)L%Vr>8I(p?Y%t}33@m=neMzdiPtm(DSf==A$6?`D&ILiIADm167v4i1$fTiM;OZI zamVc`^1pulIx=eByUzR!Z%Ve`!NKACtpt*Zi3vyF27x_vW+uGl5R^Ts+HySS^Gr(K z`cRiyziV7?z~IhFpIzJQILhb8SWwsJ!%Fur${gl)hQ>}_uD(9~!i@O+^qy=eb_pHO z?`5HkUUF%GmvfHj*#Zzhb{sUdUxU1kbvCKyuW46^&Ze~pLUWMbtCtIEiV}1aRuJ`e zj7(l(jq8f>k;$mhG{S@JVs>#TH3{mXpA~CgaLv!WydYAJWd@flbj3{uvRr$s7!)Pw z+)MUt&pl<}yr-D_YmH$VWt0K&P5;b=lz99EN|Og=6$ADAezt zNdV5r*_i?iYVQKk*2&ILxOWns!l;tpa%KQ26POPkYF+5e@pH$ZIK+Fj^`hOiGt0nB zGO1&1X0yBN&}5O#w;o>%ZXrpzoVD2PsVZE(NqhKg{&1_y>Nw?N*J@&;*QyLj4PW0Y zd93L(69huHJSaz-K*l!DlKDY%}h6-YL zw%xt))NLFkv9hwVoj^ew8X2J}y6~eq1u#n($0b7ckA8>Y$gR3Afdfq0#UcIs1$kY6 zs;-uzIBd`+Ixs#KJ7FoY);LqlGI1Y^ly|TFxuEg)9nV1>O|mtNU46jF$ZUCenQj`p zvb_AhGczNj6C>YCS7V*z9;R6(>B^<-i=>%g%*6 zP`cKwbgi~wAL@^0=bhIezvxEYvDjQWe|<>elsWSP3p?dQxWXmdj}8!YAQ5FZppQZw$=TgsXI)^EQa@TyydI9(5F zJn^_j+f9j={@TxvJe_PV%13c!CA+2mMD$8qz~I&~vFkQlBj0i0=fkJal(wg*Ct}9% z*G{7!(2jCdeF|9cI5MoW1mPYBKR{9l2C3jzd_MN%;bVLnrzbr-G;GL)hK1EYRxpOH zf)~6kk@XR8Zc|$bKmyM>QEcs_rCzff$~+EpoWcd zataE2h;^`T`4PL-qj#~!f!cU`(#_ivea}piodg|YfmN)d3 z3-YP!)%>2AoQ;ca*-P~c!-srlWY5Xu0A#=VGw^QQ&qx*fXsZds1Dk>-xr=ti53%V= za;u|tyYM&F5tK6(Q#%Ss#cNb0$zXM}uwVv40bAgP{|<5Ru^iK4H6UB8M-J-*yU6Xa zM0HNexp~leFuo$PMRB~3vo8>hUXoUHzE$EBdW6S(9@aoIeAN1|&EeDfNuc?mEjO=| z*-(yXBZUx9l@?v5FXjGFDQV}j7cd1MY+VJgEb`bw_|UdVTh=(1twxiOw+55CjY5J{Qh!a?^0fwR1;|`h&Hq@sZ6vL#U=Ul zjr7&nnkTZ@)3RQHn1I(W`74tmE~-$6j~4N-vN&F&3T*=-3c2p91Z>{!kR-~QAG-Mx z2eL|%w-4dL^(Up1KYvO3mEgX0J&MpeGNPc;*ykTXIz}8WG6c#RfNwmEWr5{`0Ok#u zelw)2cEZs(fW`5#R8iJIF%bgHbUic_$YK6Yf&?qnb;`8nd@VSIkZP!6*Ir&(nYZi8 zf4~+0!{hhR=c*^0r<2=8(N)8S9DD!O#VYxv%8tGpmhyq=WqRM~4hQsKxYaidG!_wY zabDJ~AwZ#(m8+4`4s9%sj z-~4{`pVDBrjTNKg=RXw2irEbZ9*&%n@64z=%BxoyvdN`TS6alO*qhZaUpk|Xwk8WA zrx1k)>B$wOw` zYIPG@&OCjIX-kE0UY@lbTahS0Sp(_JDPZ2)pUsc@F6QV~pq^eLbBt>GB)~`$CbDXKtaQUEiEm< zDguUvhNy~8z_FGz>@#rotcp#29}erzVZD&RqkQ5oKQV_>H2}E~4HQHetlb4bgbPrx z`#pWy0+5@^y;KiK4%Y59iYC-0uyb@g*!sjtW%iQl1y2Az?3?RCXCsO%oeC(ImAN}TkYMf^tsMs8Z%jZ>b0Cl z4#5+dBGvx6n(VHKP{sCGd~$w(kz0x=9!Vt9a4^8#!TduCcP>aA`03FODf_`d7d zK3oD#9{>ck^po7E8U|hehj$aTm==ShdlQFzWSk)pnP~7Ei;K5`AlL83ObDZbUn^5g zN2?%r>}+3UKtL=l$$_z1Mb-k39tUgDxxyyCsHmtGnj3hsRM3HY10#ZGQOU9rqse6B6GRNGeLAKyi9 zejk_s*epUdr=Xyq<@qDN!58uCkH_aoAY>fk#x*o0@l$0T3n8c+B z!=rlL@)_LDkDPM1uEp`w2P|4em&(1OhhK2i%onz4+d+Mh42w8er(;S>1#*Cz716a| zsx1c)&9z8n7z}8I?(XiUsHnui)6=NH!C_eBs-LS_n&ohzR7YG_HG^391 z6&`@L`}!cDqo!-+?{AMhTl7X|5(jxmHO+|@<}kBD7p^myV{{j5F-2Lfc>9X#`P%tw8T|M7wnKBov)wpJYol8%aM$5ir0g zY$Y()gmDU+%oSBfJ@gb|-3hxTzMG@3e*F3gY|k>J9tAuUb^QOj@S1HyB<6|dXxaWl z*gl$Mi(3ZkL?Wli8ueP(6V`d0umMg{K%G{J`t zuc8E#l9F(KHw_I9-AniZ34`mqTX9}s2*yOOWDh<}2AL~12vFZ#`fqioV+Enpz6?Dl zj{yAfKYt>Cfr?V$Xi~_xfdWkX>YEzJJ>d;IOMyGk_I9;FRTr?7E_BBHsdc^8pDFL+ zztH_`vVw1cNsVH1Wgt_$y^>9rL06I1a&buTLDp7obsDMa3 zeGa4eqnyEn`|#;g+d`bYGjhLQ`i`AhKtR(zdCho=IqG&TNL)S7sloKp0r@LxkZ=K^ zO9@M(d8Ql9<>_DM1vA!(pei?jCPxOpu~BBT;lykiZ?^L-WWx!2V4uo0gPd!m9Vvy; zf)TBW4VgLRA678BdnY~5Ei>`|QfXU#YTz=m&z=*yo&Hkn|5v?@7|r7IFC&Jy#9d}^ z^x1GNn1!GwzYDaP_@3u!TVM=*_BrK+VW31a86shTjvqF&>IGfA0Q>;ggIRUo>pDGs3bUHNJ>3CxIC5Z6`1J;mv#0wjoFb?IcD ziY2)KaCs0Og+loF3tx6`pv9A1p2(5DC`5(CqTYV+Vxv()8&K=91Pf3{axoEp|E*3l z3fMV&W#a6^ zfng$PP;F+S%;m#~P9RTVf#(j8j7lt_9LM4B=BUf$AfOh3Gb@^1PyP~lH{;xwy}gf; z*qKrHRcS4!COyx7CGq-pq$F|G!}M04!;Pp~c5t2=Bk0=Xm*5Y93qRX_U5-g&!OFy@ zgD_f&5^P?A3y`cbgi;giedKl1eFP+jy@ftP!SoH}$*+K6{@F1q=~ewI-3;gN#*PMr zq{0>W#u8gfQ_i5|H|QMKT{SBNfKtjKn;=X5%M(xx=fufHfrV>fNR4$gIq?adm_D~B z(>VlMdUp02s9~?@PH8)cU0b=Gy#d{ei(5DxUJ?BECTo!UFn<}6J&xqxz>SWL&2Da< zsnZU`q&h+&KIb?E(zg&15nV+)g+p68t2aut5x7M_ zjddn>vDR6VP=Xog@?ulE5t=^+ zB~|hVNk~SA*DA+43=wz6xOMHyFL=o}qizYd7V$P;Fj79EQhh9YWqUi*%JfMge^qAT z4CPX2=F$bA$~q}GNF;m-9sv|EZ)puFHS?=JD~OsM8hRGNtzael-j;7U`l>F~>@t;Y}A6o3kV;wn=OAuF1%p{ExKvkW?qpA^V@#Gjjo z9~~Xp$aXDZ8j{+9AZ#Ex@##E#m0N3mu$KToE#&dDR4qO#`O5ggHeMG5^V zjeDu>zkkyLULE-qT4g&v1tU&xe%maCG{&K&R_zD44rtPb2v8-NR=M1ibkxqp!X3Hv zj+0SpSsfZWq=MTj-XX&R28)RrzT^yL=LYSDP(W~lDR52Zve94hgcHd`1bi}!_Lhrq z(o?Z~Yr3e~_WPtrlJSgCU8URG8X{^819 zu$17OPviG4^KsXpm)6wk_o!l2hk$P&qBX?`*JfW3khu2+=J+oPG3n`0sw>8#P%R6m zIDmBuz^i_Ph@gu?wW4t()xFfmmhhWrXX8eP<|aYx*#=ZbD}|940~toES;KzoyLv|l zG3+ZxuLYY)_EzyvYt|D7mX}}n@u$s!0N_E=iiUn_*qu{jf3Sj@bbG8wdwIdv8u7;s z?_T#U4_l|iGJ-oJkmunYMZTj=&pQGJ_V)IBblF6t$Ke!~0Rm?#qq*I{Hx>N{pOTMD z3fGJ+a411GSj2!wJY_-fr|FtAfRgu8^1 zjnYf`9{LUDKOCAE1y%uE-)s*Np}xRZ3fOc>hCEMQ%2o_PsB`^Zkt%Ip5|CQ`5U8)G zw_xtkvGGV5L^qBFuRta8;G~1%)>edktEoRb2iAX018#ayO%WIuM0Me_jp%rRhC=mC z9SI&YoXTENt-#l*|{K?qv_&#@23Y zH23Mndc?I*8=g;rA>{!6&uq~jaoiCO&paM7(9Pe)`dCnD9FC?0fBnGwHtC7+c_S{C zQr^%7yQx$p3H|HZ{GXaxIio$hmM5RN2UtK$tOA&EHrM~WXcuU2|BsFJ|6pka_viS3 zWOW5j*KKqI9`7iyrfNTa3<^d%W@d<4^$!Zvpy$iKKJ{+_XB$ibNQ%SNfRbi{O_dvT zdEVC?AqrBz9SnG_>GBx$+xIfH^6^@#`8534^<*H}H$IK?jRBxiwD{kqR+LIV%B76p zY6P~-m#lLB#^-+Ucocq1wbNvp6WI5mH<1C{Oj4QB3kwS{nEZKA1QcP*Z>o!@Dj)|i zcNQpo!6;8?x86^U?tk@$jg$>QNSKiHeSBDi>@MtH>Q&Iy7T}V-Y#mT?$%=}Gf&#m! zi03h8+Zz@X)%%E3;BzyK;5mX4?0-_0N>?o<$+iIhfTrE17JfX^Xl*h^WKj$zO>;h=HrrI*VsP_V~A}=PE7eMo@zV$7H&4Yi_XXG2*P8`bSX-b`vlC;#O=ksE-=yduoMDGl&JxWD9ZT!$8}dX7Cg!t7QVB_EE6Ac8J_RovP7zuJ z#5;tLx5NkHw=}Nn3V{+E`d;=zTcSLtRA5Jrnezun^G&mYO1iu*XgEj+3P4x<2$n@TR3dT4iYf`@2x@ zXwn54!p9&U% zU}J#^B{GqtPt&E-3l%^YnvUVyIXIkeq^73QAb}S;bGD8K6h7&|KRc^;V}uzB48*+U zYI&cO#0|ya;t>n6`p=p8Q^^7INCxcl*OMV|62AqIX2b(0*(Ce&m*-H~S8_y*&yXvO zCl4FJtv>9s)IkiBa9fOM`cugZ2##&Yh?R?9ITdWW;^fTSjS43Cd~}LPgwJh1tnt5B zxYv9Y-WwZ=oo-6?F#@D+6iz*Wgd2`W_YqC*A!@sOCq zGJ0BeeJ=f=e;AVpKj`Ia{cZ5tYNcm{w{&Rpyjn{ng|(o|EW65xEjyR`Qj%ESB2H2S z;ho9+X5Vc3=)OGR27e-eV>T`>4!4Q3q@;vwTl+S(?TPmHRk_`acVg|~P_rW?QeRi- z2yBKecbXKl323>vkNqjXpV?AOw(Zd2?r;yQlF8R}nwZJpf?4ELwXw08@e;n5otKyQ zC!Ft*nb{;9UjfWJKra2bami6#e7B2gz{JyE`0RN(O2f!#{218juO{8nZU=i?#S9D$ zy*gQZVE<0;y!VSk5Uaw`b6^NinlhASwu|f%ysznQ>FKY#d9B^!w!)xiyDUJx;>|EmzAU?^8tQq7=-ovU5SQK}J(IX7J> z(Ff@a>-0y}G7p$4jRj-e*XHo+w8lU%p7lkZ!AUg)oBDT+7&nH)zY@+1K> zhT{yN5;aFWoM!=%u|o_C1Djju;4;-l<}e{mJv&w*T*tad)wF%Y_6wRT?QiZ3L9gcT zG73y7uh5s4{JkhU;Zeu+a%WZrizBPcg{13p}*0(Hi4UUBh;Up=W%1=!AM9-vc-f{}Pgh?5X;ub9{W{Ipa))(yNRrO^PU+QEQ1eLZt-n)F3$ky=wVg-|A z(aeS`!(r;T-P9~eB*(>;ASX1VjqA~-349EH_|&t~e@|9SY`J}`4io9vT@j6+w?-TK zHoK+Qqy)R7T^f_fG(_p;OZyw?Q5KfNx;e#l<2R;|Xop8f51RlArzs+J1>2ME^(w08kJu!rKc5LWb+99+%_T$k>XlsCgSN`j5WZ!h zZ#)ymS9DY?k8}DD{nVyg*SL#N_^;J0`BW@ZR8~kxZtU-5vMoYQewT;i0hgO*0?Y_% zY)__nEAWwRMN!I&?EbtjX6dV9)BY9g{swE+3Y+;g;#nyz7!Rigok9-}4+fqwD8ctSn@9RdpQ{@oJ4hhX<9BlhCIkLDA)}b@8L{^gefD6t zI-bxAj&+%#m+tX`-%wNYpH68$as$B*Hfl|PZD&uF0w9(T*amdRHDmcmvDIEEewFc( zBSMhv$`gOMg6HIRAl`o0Nf*@EU~y4W4^KY3qHbgf%JcS7_2&)VJDnri+Pn^J;BThn zs!7Z*m%xR;cMV*Z7{D|ixCocU`q6`(D^+6qNI*X7n3*9WBO{;4n$O|{%2>ds4J4Per0{2K_=@APs0ZX90Bs{NY02e=6Wpc^pE$@uQ%^7=yD# zq5vxGwbHnfhy@t0r{`f3`~Sz=d%!iZb?d_*Dk>r>DhMbR5CsHOiqc{Q5fPR-|~G~?s*|ZBpne}*Avptv9Ay- zgcrR{o`EFu+mh#~U*PWiS?do=m4JW+t$=j z-n^J!hQB&_e2%3C8Ea1TC14=kvEortw8IHENPa*yk0EOFUMJM!Lx|MYR$mdo?a zinKH@^zY+@FL;5_FB!moeDfKvp)E)38CFcsOt+%l`soK*xgE*4D=$CGlNm zW^+zE&Wo9+nx^~Petkfl^Jz;cAW8xxtX$4lN|LlY#70ovVaNk5CNd#MJHV@~s;+{?*Iyc#?8KG|go3>@@)o>$!M+eCb4 zr|D+Hm5H%tD3K5#<#&?qad`N_!(mPNIcwe_r9m09_cnS;X&6%7!s-b8%#)iJ!CB<# zO8oNkKabZiDfbB>fuJ`EGBbndW3RGpp8G2Jo26#@(~kB_7R}E4zZUPh7uohyHI-KR z`t7v(OIKCQ=x>skXfk5c>H(uSqAPi2=+=gZ)B*%*QPhZS>b`d1kMe#2yB$E|(YlA& zR|$vg?V)c$GY|A(YKEUl{A(X@jOGj|i81lYkegyfPku(`0UqSLd%uQT6OT|&Nd0%J z;zz8Rn#lJf4E?9w&_C?|zuFD$IpxrB18z=IPPACco}06wxp*ulq`GBPsXySnoG;H$@;v_Wm&PAg-k+=u4yuvS*|^+`Tf;JNg4 zWLrjlx*8>JU)`H!&a&6ZzSJ$%X%`@uYAeTf&k3T7eNJm->(zvu20RG7cH>kljp1-4 zgMeI~;_F!b&QH_V#IyfA+&ZzmP*PJ19iuIIVOSI!$CyCQWu(I6%)v;|ZZa8a0CaPF zV4ZRzyliIH1Iy~^g9AMKN7u^T`0AlM$Mq^IEA=BzfL7Dch*@>towXKdai>)rEV_5t zp%ZMDo|^{I3I@Qin9KLQekmd??FZWS#ugFLF1-6hK9rY+rqUl>>A`R+amRac7<7QB zb?;6ZK-%hXY2uLd22z)KJ=_`F-RZswH&r-_nq0fFz@`f( z?}+p?jErJ7lx2Hr2ln=^9(iGujz+(-8Yi*6_%YP$^E@9W#45AK;^DR(WDOG3KLJB1)3PbkqU zIr{)H-C(oIQPA>qt_%he=QKp|-qh{MX;daf^6^#I)#xYxzVI2Ozk=e)PU8IIjn*k*!=_p``zg## zmsOTLlIQ-PpF+PLJMk=Lcr|G#8)`h8wx-;_<%x;gU#|tsr`QPOcJ~hLiQl}K0Kz99 zS+w7c`>ea=WBRj>gazK;+zx#eO;x`%IdLT0v}ngYH2p_~3Dw=J;{ReCLY^tV0{Yi~ zsu=#y3Wn?YBRJ*%_{96kn0rVWK=sLA0NZ`8oW(aV+bRH5Sn~Dvrvuy=dfp`Z`46NY zbAojN%Kuv|{~hY(gQzUV5E=Yk7yuf;N8tBcbbi{Bq_P9N?iEyXQ8D~5Cue0<)izBn zEtYP~buOBYj1XnQ0(5CcvZx>JaK?~vn?n+O3(cPYE zl8N!iIsz`C5HO}h=@}8z13mP;%1tkpzlToshw=hSh(9L^9`1=MXd;<`gmLmC1D#Lgi_b*tvoq#n%(iti?w{;?WPW>YOTqm783XA=V6>MeROn`09VFiKHaRa+Dpq{LVzOfTSXT$aq1FnXJv1SXPv|Nelvt_~|}OPXl}o4~CFJ6~6B4TI9dJh~D#k%0Z9 zE17+80sN^SfLda9@_~6uvOvkBa()2ppkq1pV2_Luls;<=PL;tKw%>LcrafQIvg8mP zhV%_V7jW{vWI;>VTbFJGOxr&1G<&4idE&G&uJjpwR^jqqujfZc^u7)GnOM4^H7IRu zO99ureR)1S{t_=A`nvuSGbBg}2za=YDO3Wd2%6ASP#L|dO63nDcsxZ6`0Tw!nR#LR z&%0B^-Dl}WIIE@^LhP@}x#rQ(3n80Gm~u*TImMV%z~`uSnD*$45o+@%`W#_={eJw= zrky0rs@RJsiTnL72Mm()5FYJxz)CPmz-Ql73r6I-M(BOe=1X?Pek@elbF-O0cXy*l zmtdc1VItQe*x+}@Qmp})Chq1sOFP@|+4-PB(qJ%Hy`|ES+DNRB4jGwmhAI*u319^pb#vF;>){P}r%XfGL8?)J{?;n|#VAZ%Ycwy}26FpA4&kIL zl1q3q_LZ{gPle)j@8VaG&ay5)u2%(h(|%cp>c9JZOPD!wzYB-08uHu^{j>zX8UkQJ zLS;H{AcKp7niW})=6w+}&353%{Cc6EZ?M8@+K=aycQbSTH-Z0Gn*seW8bwW_zm`F1 z8`}1J@soF1&;J(-p+Ns9RaU5>r&EileMRpSe$OSK;Z$3)FJ*VqVL#2d?*i1L8hN^03z-lx*9%|9Iuv9U zHH=;~=Ob-c9exqASY4%M2}1GrDST|*Y0e7 zgoFy|DC#TDZ`(713MdI$#?C@_{ZE>fA*OJ(v_JMf+92oZ7*KE3rf&O!BBY?X(07;jd$!D(1lxbk>tuXR5#hNlEjC+8y(2tEM4YQIEOqA*&_s+ zXNyp@-QVhuUhqNoEI~AyG9}B=2>NINd|m1>=P>O4Y6hWs>}{edx@qy4CM}n11B4VQ z!83+1iHK~|yi;2MHG0o(x;PMut%c`$UFxSiGQZrg2CC z;66#F3`ZM?mhK6#$g;duc;4dSYz1`bA;0UD>A6k&UOlJjeDaxI_)~=Z*YDpif4)zf zMv|SdY@IiZJG`)}W{<@;XlkBQ78%FmW|~`d)+Rng+&lq9T}ISMwMFN>nca5hW_;VU zifL4OY&e{Ejw&K8&N_HfyMe!4sCLtXEE1&?HgC^d(;9Sv!6aD%=Jgc1R1F$q!LpOd zgr@E#O+nl)GG7O;q36^-rtBML93L|&sN7rF>AQhWi?$WIBhxD~MYqC+ zrg=NkCfIBmpzZ}mV)`{08p4llZ2jv-2(m*-MLc>Jh&HDzOtecB4az0W6yy?6(<{Z^ zF7RO5-@Q?K#N!Gw3cK=b6ANM$_ukfe34tR815o536q!?Ns{;DD*oPGk;m}W=7A5uS zP+=9`dT2(BxWrCgty`j;3%|L$o&C*ubM_%c*yboioOw>+aog;pGJW|Y-H_n=VZM|# z8Boj;!UkaR)W3!%{gP;z6MH0@`X?VfpW*wvgQ5eGGtp1?C3ccNl};aG*7oH%w0;`s zm-A3tp_Mp<&t?oe&wXZ@%P&cp+a@jOe8R2ZuX(oy!o*eg62!d>##Q8^CjR-u)ToJU zsV&<<)pQz~H#!eC?_A${Y$&X^zCptuOG~%DrFW2#735!2|J9h3tp87QSB8#SZ=Hsw zNs6+29C746VXYzTuA`XNf#eWEMA3 z%;3GQ3_K(lfc0JhcQUmaRb`YZyH)he-6ufF5;uc8c!iRaAiZp*WRg=c3gGNZl zE4HSrUhQWN7I-tYLUz?vPPiGs6?`M!rpB^eF|oONc${!V4%3wQTD9$l8%Ty$gztc# zz0~24OH+i0W?Wz>4He2Im2Aw1M?>1VVU$B)ockX`z7g;(B6``p$K}Ky^j#cAzxJlT z`u4Vo*`s7|`s%H>d4sv+^0d>4MV76$-6t6$sa?MQ;$e$q1lOqJw-(v>>ZGEpuy2LY zl|%pndxRK7j+{~scWT~pHrpC+wZI{4TRCyY)2LI8|3E9$-ku0D_0>WaK#|BtvxaBG zOQN2!3_l$7ZaWTcrr>d?fO;9MG||zM@(ukGh1lBN8g?NHGVHr6v5EJ#P}*T~XaIDO zES8?M_2#AH%xO7pv~OM-N2w$Q)C{-u^yq9a6$+Xepat2_Pwm8eW-nh|c@mct@)FS- zXa#MCLU{dU;UP{sBF0IC9E6RpR`4x50N!LJQ!pS)K~BlZ;eB7;!*6*J=0#Q#L!7)V z881>>cI{W|eJ;ip8T>^RG%vos3Y+9Td&4vRsdgPW>wI60QD$4^Zb!G{X&m75!T080 zr4XBTu`28VauAgG%LcTutDx07pVnaK&YjP}1m{K&r|EGc?g53}%0Lke^R<L}hyMKc8;6^#!j)O~grp;+1lcEh&y==~Ha7kO zvp>(7#fv~8B6?0j`9c2y!2JpR97;}I|AA9BJNB+`{S(yvEj$7I`@e#^Uyx4!EMjV6 zaxz6X1Zp5~%Z1-OalYb=f(c0eejOJR6BA+2r=Ip%Q|kkS*J=M3+&c({=~Y-@96ZqA z#Xf`vIA@)ieHAv^*;)fe8#mE3~ zB%y6jUt|H7G#LWDopM`@^MT9rGhy@F1}&Q`vCq4@bV5}72l{OtJpshW&sVfcBKoBvk z-Y2J&q{5cd?clZnN8j+21?{Q)%Wp5jN{_61%}r@MN2C@hNZ)s9NNvcxpBZxmN|NNs zK6_pm|B-;EC~i?tOXp{Ta_@S4@fs35l{=|sn5nLn#HsCI-ji=Lg!ZK{of?S?ni@*K zx0Vl3M9F0YKQE&9VTSUAj-D6MHdSdZXMcM6?e`X<8ei~@V8%BpymEoSWDL9Dz#WRM zf(C|D!EFQhGh|&HT7_-wu=s6+?Sdo4H-Tj4%_E@J;ON!OJ6@|gC_TFnc(F9sIf22% z0$4 zcJk!pD(rx4&UGHVi7^c--%z_KH)s8X+sQd*tJW*W3c*OHQdYsM%m7E@S^926`i4A( zjU6fb(um!*!v=55GOuiD2$rvJ)t<1o&5Oz}DBxp%t1l|eqDTXJ3%q>WR$pPWFC;0& z9wN4jc1mm++eVreMxNZR-aMS{cbI7iHD_i_o~hw0v@XrX=$Lp?%2p3_m|;&9T0eQ} zFXp~Gw-&W)>J@fzI6mm~eiZbj5R7B358W;2BN_o=jUBiD!sV!b$w8+*Y_v4A&M4LY z==91~a{Dnr1?T^913YmjdLGY#RLh@i)vb>wzIbLJ2FaaR6__Ub7yNi5KOFt`g6)V2 zc>1QL-Jly6El<@VB4 zYTy9*@t5CATslNv1;E<&l5%0w2rH=J{)({#{X4P!iMZg;H3LwLVWL^<2=4C-;njaR zC>tT$onP2VT-r}PnFL+pk*uVjjFoMJvHl>e2{8eTizr37_!!{9ka3s_-3c#2iX4Y> z;*9}q9-Eudyk54^U(eWo;HtOZTiKEnc)tBlA6ioasl*og75K&3qMmMEhiScoiAOeA z=l?Pzh5nz}?I-4lHKr?9uJk7;M1D4Dd{=#zL;}S+o`v{XJw2l$SVJHM#@#$&V80U- zL4M1%FhAdtVrzp;^fUw6;?L39qWWN3ZxyFwHcp1=z%OgV&u&2s%BMEF6P`C+S8S>*qvwF3JT6z z?y99QrD!F3gnIek_%9xpF2Y0T98s!;0WVzg zdTXdpAUgFB$$ETW955}H-@XCAm6GDXhEkHSRh|N%qhogYMB9&dIhN83g^aCfJgo|> zbmYeDy2d%e9*MGJxK7vdtH?YQ1s6n#i=`StR*^qQB$Z0y!C>Zr3aB09d#egNrVPk2 zfXyf{HAfY&&m>|dL!$)09Q`g1R)m2QekxqpaBGeUy418{Ba(PCyy=03=)N6W7WKao4B- zlUjov+j{fkT@_H#N)*JKHQKHBex;$ATYHJ2)&8`$ zLi}W?Am}xP`xNtax})TR*Kq)A4fLk9iH_W+WO)ljfcrF*jV#t-0k;(hRR$BYxHp&G zEcT`cb7;3WjoFnk>@h{_igzl_xiNF<-e28x(Q|_Tb%?bY1-1%{E$!)Ke%hWT zN~I3)!ZblYM(h5=2Hu@4*7NubXg(YH!y+8nGLC+)N4kF?9bBH_C44i2z}f~>$ySm{Hzq@K;X z{Xj;F+qJ(rPlZj;n!j>G)z(!ErZ0WZ+t|98P)3KDBM|y;cyQ_&Fp#1GJC^0veRna+ z-#G2if8o+Qe=->O>4|3z@A=`BPd)!1^2GuF{a^9x4S9rDIX7H)wKVO69JmL5Y49Hi znd!YkWvfIoRLBLUh~GU#E&g^=4y5dhOla3ZvG!m9{X2&1cn2FqWC9Y7vInS%Ad+Df zeZc6zjlk?(7N=QsKVAktyBbev3+KUucYwskt*b;IX;0TvpB|O_t#^xW2ZsD3tq93V=sXS3MCe z7Hib=a{o1A!~K0PFzvImtqw#*H`LCjT7wOkDg4Y7hN2Y$Da)1&ksg7XFRBj3+@|`F z(c7(Cvp?KEsgi#&JM3@$`GlFc6K|!7h6&<`_#_9?}a?akWtw91%=PG3VrYtvj%wLJ$rb^%;b;fW?4Zx zF$nW(EE5hHbvC_rzg(P{ZgLg@&z17YeZoQ+s>#!x393sL%_VOYFEV&s&J+_l6|aW*Ob@;s`UB z?-3h>?^^94^PEIt@AjGvVW2k@_22i{GlCM4rd0m#lQ&otU>JUpZCg#x(ahe2dmrC} zGMAPh5d0|xEMf8OnczC%Ej$^@j{Y1owuud_I+EkO>z+NF{7K)CGm6q9cNuKHRf}f| zJq9@r)I-WgQg8U9W#Q?s(a^Oa#`ENYpfJjD#`6%MyJyIon8-x1a4Ukv-!Xg1=q2<&kqy zrRi<+F@UX}lq@U#3oc%iBgv#hTRu)>+bNZGacIp7>Dq!IDOI!!az zSaRQY9VT1noM(~Ew~Rps8}Ob}(ENTmv>*S2d8g5@KcHAeGO|t+qWP+Wf8V}6s9R?X z&R*yEI-p*Hv%u((C@TK@4Ln3dUwU~XvAKVs+&jyC%{kFg^3;MG%Q}ubuFJIl%{N+x zN{L4f{$Q%l?8FaclZJ96{!R)7dg+M`MKx=6Go(lSJ7pjM`6!V9z|&#ox@RU~PjUM1 z2jO5sbAQXZsy}FJsxlEJFim^2ZSqm4-jZJh%g`m`pW5sORP+1+&pEfgVJ+E(Y;Fwr zK~!1_{gs#gAg$BO-2cd7&4#serhb}=MSs-1V%1S$zC!;`~t&5gW2e{sL;vP^uCa0!a^QUlBFdaSS z>*I45V*Gb7&1SS4?wv7RZqrKjIl4e@@GK2EJx9RKWH$9+ZJo+LLG3Tckc)7*&ljPV z+1ZR}iZWH%SSH~`-?Y0wyk$tPMOISO_^YVGggV+yRZ*H87ks7`gF?Bs7xeB2N+=XY zzT(#3>#r7q|1^Z2fA)lvdMs&%F>9p9AsbPgk@LXb-HR+Dp5dqz4Ow`2XL0h(2R@vk z;Z6^`qm(e|11|7HjO1OQe^7#`*1>5EW4esM=Ooe*XiZUnb`-_UgCLGC<`b{U4GA8q zMnW;Ivn0-}AmkvjcPjycuTaS8T0C-^Mb24ZdK!1;H&Dxvu)En=j@jLA&82d1S=>~M;P zl~ytd1u)5u$ZZNHLaH@fIv0&~u6?VKz2Ey9P_Iov0h3@uuyW9?!>&N)5F+$l%j@07 z8~_cCvUpMWvISnf@SNJIH?ir|bs2bMG&GGq?bTHnl4++?9}PysO*hu4d+Nc5fxNz~ zUKC#uzP1~kq|_F4=Dk$u)S)5HYruM85DD`(;7|Z-)qfq#A>CNz0P63zAA+hb%W24i zDiFoG-3^F(x4Y7?0@cnvr^ME=B)O5SKhU0Ass1`)iKeM?k_lAHeJ`vl0R6pJA!YD! z5m+Qu7==L&jZKr{#4thb?w>wSnz9(;jv*L?LTEGN9Lv@jMg|e0f)1!g)|lOnY2z-( zw;HHJvf_>IJq}g)@}uv4bE_eh*uXd~^|f$m>^MgI_3M_yWXM@nQ=`Ztei2GkkB?XN zZ7-27CqOmoL*z;&gO-MllB<=ji;`jU27D1a=|0f6(QX$lo6P zh&*QUlyJ3#3}ArvBM(56`kFC^rT-eV)KW#DT(w=*SwEC{T6T1yYXb^!8=I-$r5%P1 z7km|(JGvfl6hDe&gSq0oj&D0?D1YOktO5z&dIFfvMHFUNVoYOizX5T>iUweRT2T<| z+;D`dlNB0_Y8V4a7GCj^^jU#9fvf9~(>3$ay$? zBRMO6WvR!04HObLZG3kv*l@&{WucDs1Jz*456!%jUcZyrOE6X85jB?|vaYyY1o?od z)-lA$S`fr174|m}NC3asSXtj|0EKVgi?=U4JyUO95e~0V5O7|ML6q*)^{{hvL z`%>Ec+CY1Ov7ugL!{mU0ZVlv>4b=$zjx@{$Z^b_Ffj-DV!wQ(EDpI9X`DTf#gc)b0wk2$3((y=joTlAS-Z>cUlj0`3S8Q*rD!{P0#*W4N^nAI&vv9Ya@zFZQ&S zd>@X!p$3oGKc-A2_tN^GLq^T9Ul*-25M%Ww(vl_O-wvVBh{ALsTmZSiicJ$xatsnF zy)NSe{jA@^B<9gbcmlo6XFoe!wjj;ELzOvcf&9I#`9KT%RT7u2MzqwWxV0K8<*E_E z!?_pn`QxWphIzY=LXi@Ba@Fffw_pSEqNbe|PeR&M6~{gais*96!UAY|*9QFLV@T`^ zjHZw?5o1M(p&1;^nT`ySi7VC*QEh}L2?Af(RnwVIZ>PWc-*0`9QEBZtEFp7(1{9RCmg(FJDV{1ToAF=mFtxfOdEzOE1b#ScHDy zV$KQVNMzmN1wp2bGz<`U{Ht`cQy(}GwSNbYK42v#k4w9SQ=}ZHwSmHZHQ#&6HA|)t<$$j>j$b|b!GbRu)eaK}xPc|{yAtLxpA(&;=4_2XL z4nRcOqmm(*fK~%ks}s%vVN<-H{d8#gM)ZQq;@{_@T$g3GG(mc z@NiHVKzH{dSe`A1=^|J#jBR z_@sKeJ4o=bKt?_W$5HB*hOD7gMNNQ)1wAl0S2y&+o_lE(Y9!Et^XZ-abo5j@(%MN{ z!56PW3TV0n72Z=+6by~i7EmYmW{-da{<|^mJ5W4=$2>Wc@Boc1(3R=a&Vs4C}6aH2OqJ}-Sfkn_%c6lKqAMOki zVh-lG{-Eegu7myTOlrkqAm1c}Y6&jG&z`B9ER1{dp}%1*7NBuY5eRnWTZom=Qz|6O zI)16br%&PUAHD`JGVaoS+u$y$LC#z&aDmg)LZ1UK!jWg1;yY?v5+PzY6CV<_UnhfLrKM;e75lfh7gR%FdYxvmt2dWwasKyRWb4jPefn%e%+3MsdFly2nB;$E@ zAjR#`m5UgyH_p`HVY)ar+xlB_UOv?p{1Z=(y|W9M<3wt@uCelbkcYojVWzN|6Cg*y zn}QQW0C|@AB|;kQ^tv3P=EW@Otkdo!%Kh`k^&C^(dCi>+dV9^}=cs9d+`w`B@mfj+ zQPLqiOcrz7qkBBEZfhagPkrHni2xXLKX`KyO~pn?^apPS^hTSSA7;HoP2<}+5PB=| z3fmEw8nj$b-h=*#e&X

_P>Oab=yPZGXs1e=-4BkrQq^n*L5``r|YpH}Hq>&+7Vj zfzLljMWMfhMSuTv;eO>;5xot2z;9l2{Ksb3_Wxlcv5x=$wM+#X@~=k1zUM(1qyEAt zZuyWF{)v_q*$-OQuBm}>tGmYXC(P4d0tvSXgKu?|Z>+wavILVpw6#WJ)8` zsMW{N!UC$*oI2j)7+Hrg<0MzfUM4lD)^W9pr4>x)&)#J_^Fze4?{S$aDg~7s0sr~} zF83VN4+*vx@T)LUfxZQDznxkU>wa)0*I}ybh$gibp?nDccCbM7m&V3B)W3X^x*{8~ z3Q9t5O^cu|q8JR>2w!@)F!+!V4LNQF)1})2x#e5%cvRAb^VB3nVd0jH?;wVoDz*G> zLCmr%?wa=j)sS$EP75`yFk~ZTr(&G-5B^UugV|Go*zI`dN6_HUnTR9uaD|3(GIQxWU!cV2XxH;jP=Gmiu0yo3JMv7I+R1&q zb^f5>=EQMM@^vR=nRBy91N30QS2lcD$yKO34bs(+{9qup)3xn85 zmQ~MVn2domG~DY%2xjFkeLxI3MSA;sVq-8UTJ!ey?YFmIX;>AwgQOdQ&}M38rhCkZ*3cChWxH0|R{5NmH zCtPBX8dn_r2v5E9lE3Ds z`*Oqcq2T5L#lKNbK`z+HJBeDC2@D!grMb3i&&iRhK$B;&>FI)!6DgUz1{s}?Uq+Zr zPxv;6_`41r@28MS+`;U7%-hpiZ7L7(u=s-2=i%@7i}lO4@{n}XONr%z?q|A-Tyo-| zhsqy1S9>@7ACJqIlGRZuQZ9=o4KY&rBN4V)z>os(CRiZjbON=1l2nvHe{Ccet=Wm| zkb#Z%Tjh~+S)BZ+hVOPL%BN~{sr8_LsAn=yyPys}Ituv{#c;)-bC7Vd6xBuCc9 z`qL3nugl*0SP1#2<`Vt8a;z~jva(s!(Q}Q&Jq|`wT8mh__V!H$SA-ZDoBQs94$TE_ zi{4aM7WF9tm8^}k+*KC3BP*cSH6z|Oaab2L#R=O2f(PA$k9LuhTXJYv?K`J(ZJ)kq)WDjm=gd;@*)l zcaJ2_1xjj;Pfxdj$0i<>e~{-z?_8pOF^(tqGK)>EY9mCF&vG)?c`!CQH^%B~i|TTX z!K*V&#h_@CIhaS-RpjD0{M+YSsQstLzwuxs6A)@{Yb`TIr6AUHS6yc6UH%X0>5A-- zm{kh@#KeRxaUf_t!f&K9@Acrp><&gI+|-MRKamN`*9hnkU{M*#5`l5+CV0G+DRWKY z^>a#mS*N@t!Y+zI>a=-|LNN%FZPpso27%a4#-!@iGjSbqSFT!I5B>{JgCN}W*8pf9 z@`bO~dYDkp_13))|yT3t&fC5xSv2>b&nL*(X+&IXBXz95yO)pAN z5H{|{BH$SpQZ+IwoT>VrCjrt$*a_B|w2pC)9D)(+m#FVJMGm;wB5fgm>J<=|VL`qu zrUrXA0aB>S0xL+fJ4Z@)k3}`kbehOqorq+B`q~Qm(!7m+BlBIi5z%?~&fqumn+ddg z2P#oqrG_yAO3YZI(s zPvu;zxt<34)qCa^M!Ki-nxp^MVK-~&t0(s9{VUCktY8@uPf(n%4U{d4mY(B|FII6s z8+Fdu53G_hHo0ABdsh51b>_i(BK3y8v8sj!Sz$|Jh|GYr_}6kw*{vIc@tT2^FIK>< zuvS^P@SA`kNKUBdK__+F`%P>Ys_)uLeP{%WA4 zXp7j`alN>QEaLS%7r%P{#n)w`339v%CJ0RR2JA9!82t9HOoe7@I_%b^m(4$E%H==e zVLxaJor$9*?y;BhUJUdf>UW!jKK=)@3)cC|zhxKy@A+4MxW>^BQp6tg*tdH)_C7NH z{<4%tHW`aW3FEChGD^vVg3~M1<~&|JJGQmfzFmjqFgZuO9r|Qg!@Gn`7tD+>=3ZG_ zTkGG#qAfIS9IEgNn2ZN)DH`I#ua!T81)q!;6qRdSB5nq9>!5NFF^7`0?3u3zO@n2e`gEU8jkYO zr>Da)Gt?G}7C_gC66y*ts&Uj%8C3^oK19$Y<^p zF|vzp#;kS|F1ItDp|&NO`aN9<5_k0JN;%vfmTqAID=*5j zXg_#jR2QMz%$lKr4IfUu&nDd%(U_MZwaXUAT<5aD3i9+GtK|}6TmX4nTCwo~`I5lp z&IjJK$occ5`JY!-SIdAt84gtvW0FBe3^1S|DZ^o=Hx(@904Ziq$F)dwmATqCZq~@Q z&{%%LcU{y4WzOXi`jj@YtXNcmG?Dv5V<9ezzWKrX%4^IgH1Wc0 zwd#=zb&Z0)6?+q%m%!Q=4GwL)!4#K^gaXj0FQBG4NTTP9zExvS*9Qs@ZdaHB?<`Z%2@gR)k@QO%{rJJEIM?E$B)mNM z!Tp@;VyE%MTqUQY(&_{nS;?h$=CJ+#exw}~?EAhb8Rfn*rf@oE7~IiAORd?!c1?J& z=(6Tag5pG=6n#*=SY> za~jo#y#-$H!E;9EEos6=o+at1;c0k<6B$(1Td7`&q?NKyI`KT>2VwbX4p7$MXkwG`FdB{vM2SuDWgZ4fep z^qA7OakvePpL`9*Vpakz34DX{hov}^I%h@6vC ze7K{jk)Jwq=|ov!zhLkU{rTjnt&i`dlkXMhE2TStatD^29{1Sv8ZS87Aj$0f%pYxp zsSl_L91R?5dx%hbu7P98Mb-re1ib4XaIUl#T^ah&mGAHS!Q#V4MWlnNNHt$NC~O*Wb*w4A6quC>(Ti>AXhEDThF>RN80h`>>_;FlJI>iH z_6}XuBI}8KB%57tL8;v|~fUK5{+rCSPxgLIu?Q_znXxBxeOymby@rweb_rYes6WDx6dwFni2h`iKzS z-a&hXpxc#H#|X;8ykKO18fjhJ*|~bF z`9ZkFV7W>1Rv)gSxe9jhSlvOg+I87;Cc$r8CB#>(_d8haE*M;@`<=mZwR-VhF8!O) zlga2cvwM+Ra);T$MZ4tZ6$Qoex24sYzqyLcKP)45C2i(I1vV;EPG)z^-;U9usc%UHGa!GvdO?}GZ66DdX#+I{(lDz*W@8v^Uoi%)%S zetPfY`F^k*fn_`lq(lF^1$X&1rFO*MA(anfp7fdq=TVXRKyVp-t?#sGd{6;y?io#{T)8?#f;myS=me?saAvwJWp~iF@ z|LxOZDB2=myLcd&4P1_QPJ8k(5H2cW4i-lY*S-5O zsc`S{?a&KnC#U7Gw)QJO<`P~UKEC2O)ul@A6xRHJz0s7WQxG9e*Y{kFaqq_b!#6$Q z37{T5RAyd#bEJuZ>c76w-$?(qOQV`$fNf96;+?p+Kc_CXKi>HKUsZ|!EDs0hAAgzP zc#&Bt$@J*L;PAtpp{K*{C?`8>6yZPKSv9G+XUoy3DKIX|CL4PutNP0$|F1ABhM(QQ z|M)~~YrRIPVrBPZstHSBTFIR#v$iQdQhowDA#8`?A2~|L^w4zd|jp;GGVOb;hUPlLF z#-+(8zE!<8$gQDP>r2iq>D@J~0^>zs;|(Jd}o%T3et z3vH$JE$2ufvr}u4I!t9QNiB8yy!M$SiY2zwOhs9|@EP_&@A3ZG2dCcaT0;fJTx+=O zd%G=PU_oG%0glf==?ohl+7HT;gu^_FC;28S6DKqrntrBH=gObuj`nM zMl6fQf_I5+iX)oi=adE2K_gSdba&cf>Lw8IKD`jenTa1Vl^j{X*Lpl!vtDq@o_2yB zP+Dph7U4S0^D_Z9zF|zSEBoaOI91?I><7t_!Q2@c zyPbkl?zh3uchfb#^un`k?UA_?l~P;VvtkuOlM4hIl&dd(|9%C8C z(8%fjrwYjirknXYK8r_zYY2eN=G(~roz2b%n4ZV-YqD`stETk!kMOCV<< zio^10SUWP9sGCOZE5-9;yzJb3x?spr2fT3Ib&8#=>sxH)ze(+Ga<*geWr2n*4s8v*N6HUVBHYSGa*q_9jiZof0lYF`6s z$cr_1vBr5~8QbbBCcp}oMM`CHw=M8QZ709(ZM4VK)~BcP^vD=ITKpC+ZVa2Rw5Df| z)v2R~>|}+5^DnrPTA9Ywv0VwaBiICEOw`y=bNeXI&OqL}P;me6_wECdaP)mmOCc{P!<#`eWs>2c48zbi;NDx~*O^#^F6! z63Uo+;ZILN?p4N&zdZ#H-2@*yRWhP?kQHU$gLZBLI`b;jAVi_SAD4Y$YAMQbX)QZV-C6rb7 z{xfn-DM^XKJYTj86bJk}NmA`O`^rO(n@0#Lyu+W#N>VZ7D;RRE@fT1jP=npS zvk{7&ovZflmB^o#_`GPY#`Hw0kaYY|2kDl=qos+iRmzz7un!AYUgtrosrcSkA^>zU+%82v~Mba%U3wU z#H44!*N##jv?Ak0PrEO2>SL+Tm_|X@rS>4BiBd*9lVB)a$ZKG}Ks}2*G=se^PC4cZ z`qf;bEVOt{&uO+uadbH;bOK5pMAUc+*9?n3%~-cCr23oU-d&oo4FK2&FT;fSUT?H& zdyaHMUnawTxJ<3ct=VzmEAwJb>6S<}&&G(-VpQ8H{uCIu^VR3$%B*)`vg6xqBo5d(^ zK9nrRlat(;s#bBw8WB9zkTo*OeohqUPdCVpUzS<^rs&>8=IFL-R_F&zJuwmEt~oM+ zN7nF_f!DNc`#xoxmRyY#3?fH6`++Iv5Ey-*&D#a!l%ncFM{{e>bDa{eQ1j>Oa!qpI zD>`8@9To?yQ9}RhWY9UPDftk2G~3ZfDJindWXcUK+5C;YLB=4UdT9;Vm-=u-bHHJz zR;sgSS>bYi2kmd}aLhjFG=nDqi>gm;i zaPj`;EmFw9+@SQFi|Nv{mDHK~jN;R}PWs}Kk8mt@)BzL6jBeL5&$s)M$lyFbrdrR* zU?iOYnTEPABwMab;dS-gREma3!J-22u@(Y2-Vgw!2O#pL=MgXOL?8B65m z=%S-9MfJ5sblA?+L9FNqK`MM2gCe7FQWE z7@fZ`euEd)TNingM6qTI5IBsC(7lN(hAY=xhhCaiMOJw0XOh8#EZ-$5iwd)QB>LEV zAwtkbOkcd`yVsIO=q)$=9(F$9XxssrP}FXZhm?|xkVs~*%3Kr2r+8gbIe*SnCy%k3 zw52pad!ViRzPnuI7s`ueI?Qk-Bf}A9-S`wkjX6Yyp7xOctZNp91dM-3Y;^x8(D7yiG~X*vYsN z>SyDXu-wc_Xh|zaq1zWvK82+2$&p2v=g`=}d;A)CJ7cgh%^HP2{rT*0wh3^b>Ha!{d?bW_dR3mG4?r!F@Tk< z`j$24eC9jnGsT>CSa)lPc368tRa1Gr4PEbmccQP%E&00^%{cS!Pm5v%YnO!8vBb{F z$=i+?+@*7_%YQ#BFnQFRjj6e=zQy2JcJwk6+n@>AE9dLhm6-}@i}$Z~@EUY+?A~Aj zty~(Jem%$UksVpD>-yscR>88e^kniY zNtd{>;+ZIzrJwg7J;A@v;H@NTSG^M`OPK!^tAND3e>f74;B#(;J@p68IS4PJCDGhg z}a7YlK0N%-w%6)Nn;h{%dVJECObIZJ(Ur|H)$hSa-_2 zV|-xK@53h*Wy#C{#pQDkd!X@2f3}L)_RIiO+tSO=|K!D)iK=jUs_VbUGr_p_4!5#qI^Z zHah5%iY{JMsh{{tykhhz&KkuSs*n{^H1L9;wW3r!jxcBWFIl{Asm5`2OTV|2wp(l)}^ z1=&|Y(6@I@^Xj&8PAbniLF;7^AGZwrx<+BWMad_R;s16>QxM1qPJZS6`^@VNpI6&g(fHp{B7~(F zz-_<>c%t{E6v?~Fyuq8~=wnjUR(teoQyeM&mVvtGYw}_W)>lN4QKDyXF_7*P%4M69 zDyno@-rBDB!O9n-8s-Ve(pV^CB_=O#=8;K(tK{9yPLtm@z5tweWw?!4wziV*W*epe zO$1JBP&3zowdSU9mZFEAZ_?JFOXSBCAR74Y`0fZ@tLJNGX(%*($KEL&>}A)C`c=J6 zCcQIZKW^CN%+8y#PuuSVRTeN|YNF<`8BQBdHIbE3aT$d7GTTWyBoIdnh(3@M1PIR= zR|{77w0QrLPK}lTnVDCuCdG+yFi{^*Fl5yP)29I;YSjC`OTdEHkGmn}DlgHq1?h@c zI_|#L($2ra3UYX&>S$?3zU@19@vel=!Ak|xs#U)xuPDYrne|3@Sx+cEt5cV~h&pM- zm9Ae(KQ{SZ6CQpaS{(Z-oDk?UU_LrsXym%1&Hdr@i4+qkPD(>aj1H6GBNCw_&6>x` zS}!H7IU_?-RaW+dfG?I8pajoA)-;n3jYrNGc-`xNfR&_M4}nNx^R5W z#I5}()Mq!Iju2SQh~v*`QOI1!r^r73)ar z$2m%UkRXWvk}oBD)OA1;CLbHG(afI7hb}!%n>RT-z#Xoe<4*>1>Nq zZdW$u9rw$JMds+>Gq$$_&#$9H-ztkW{X7#;iLQ{X5kB;W(WJkZ48II7es!BY%4374 z!>_v_M0OF0iCtVPvWD1LM!U`iY=&Hga`loYP0T_0<-EPN)_V@*oWSfwU9%RfKd+-} zLKRFE_np?MDeBywT3N3~x?H&LWqEugLayTW{`2sft@A67meY1PeNz71#gF@5RjO{B z9h-LF9_3uZrPAd?dWwqj-tzWf?=kP5YhfLbKriTkM1{g^@qiF77PKof^XAOv8@W?f zG2ZUw#RH!owS_4d3$~Y;eYx4Nx{z9lC z-nTek$jhSxY1nU^FI*x1V8feI!iP^+JYeNve2(qBj+vm5ZN<8tL1fWDSU6Q{<${UM z+wtO8Ao2dP?idKQF^yCNWyQTg$(mvj7{4*kC;Mx)$&chaw9=j{8=WO@hM|%_Wo1m&1;earRB;>2V7vyVM0NjOX~5rOm?%*UKWdP z&YmxQs0zwO;L5bwB|3dPG?n}p7jfI!j}ZnF=xPT(flR_&(r0+_fLk$y2=Gr|CNmQv zF1XS`F$i{g_Q&fF48r~8YZRoV`^d9#yo0}F!2dLF0-wuws78tAo)tPK4Qo_f^kGk& zi?x%-P*Az*Fb>qLdz^nM^DRRS{EY+kDBT`D0qd9%jXffq?va*0sj4c|lB`fJ3WGIT zf$v$`R;xG#2-LGmB%&bgBmSBOiIHL*(owP+NX zek>Uu15xj1Fq55|@jvnHgk95Q=Gf(rC7VLMCr_x$L08x5@#kWip2!likI*Wj7@{qo zSX2eu#UvPC#c0mNwqpGAVMP`06Xish*WPrAOj@HI?y|-=iZMaUBbd zU87J_*1Wk~&GrrO(YO*tJp3^hR-T2ARlyr^^(--k6cz<6L@tkQR=(@%p^An7dHU<(gN{HxI2?Um;%GcwB{hoMr26 ztD819t;P;YYkpFVdvZ{Vp`4lAWU8gBJLYD-BUG-wV63Vd*R<`WcK>06nYCMPKg=_j zwI~Ht5;E|Ra=vu>#065twzKVrt-|r=b`1v3z0XBgoe#z93x%>x4hz)E*FXw7>dPsU zqpFu4Ypf}>8;4d0jHl;ii&uH8WW3tkGYL{!P4TRt!*Ig!wRk=0db4Acw-fR2KQH+! z4HuNxC_1pqqeAsn4}Fqp?ivktT;$U^CgDCa7hV8g8S64yT4vY=`c65RN+R6)({Am~ zljx2HuZ}0&C1l~`7*k+70F`GOAi~_(3pb7~b?6C-v_GI!skO8_e@V)fM%_5_aZYz> z4dK?zTOJbkH{lMe$G%119JzHlU&s-ewlk1UYbt7b+5VnnNqlp73`=}6fC+ExIvhtH zbmH8)(jm9;jlf~7e30Hp1>3_*4`=kwH^gJdH(01wOY4YciiRQ-g@=P-COnzA_}vYi zNkzj%eS-H#8KX2B+O%@h;{u~I@N&Kmzpjk%C~L|D5}h<5dELF<6hi+cjAyUU+)Qn&D-$Q?pgpoA| zf#f*GkJNkRt2xCOpLE|$Tq9bDj34~P>u_;x$oz02B&3xCdUCDj?_!)3wK}_<7je-T z3Ewb9o}yE4wfZ1XHSO1_jzA%%Y~lCWfG0=BjK#sD9&=s`e7R4kE3bn(M!Vc5ickfb ztuC=bWTzK2aleQTB{P`l*>hgXx_UUhn4oi3T!|L zxK+E*H*dLU!f=Mba`(2_H+7GmG_npCGDE)1CH#HhCyMEVWMHB1y!l0?pX(DLr=>*M z;+JzBem@V;o=eY%wNTFJg9*Nwm1iKpz+~}xW^KHm6O8Tj5IcdeS-&xB7VS$lx60>U z!F*Ktao1M){Ctvj9IH*f>DR~nZXPH^Yl?`@nx-x@2CqW?nL#6Pjo+p}TwH3pNnv(b#Y<+Ykw5%)_-FL6B9K3qsD z2^BbSo~k!mM=je|Ae23FJNux7DdF$P>g~BPXdBEotmNX> zpaL2B)$bMpL%*Z4}H4qqI8tnDSDGWDjubyB$ZR%RRw>QKmrbH+Qnz>6Cvd{zq1Lj z=I$za3?t(2<&e_=P%v)$hi&%CzZZ5l{lhl9$LNf6Qk zRwQ?y{=~8G37R1m)_ZO~67YRM&Ue`Y`4T6|6k?n+C9%b)6=p)*Gyv^e^DMPkS8(k6QbQ$eU5yLTc{zMCFp+ z7kHKmnPyjmqi@$2v+!L2WhnCDs|b3Kt5sa6!jgne^HX)z&@-G{aGn7?;}swIBejs- z_0pX~G_lLsRJ}ZCw@bCQ6IBmQLJkFlwtpRto)-=W@a7$(tpGP3ZN}%QPsg6Q${NyS z8@F!Cm_z5a5pUP~O|1y~J)rpIlkrt)+|Rv~@q>PQ$;|q`6}5I37i`hJqR3!`uLwb$ zq_fXz*o<^aLNQBLl z=NNQuYX9YCZj7zQOi35lz~vqyTOVbSBqh~@J}U3*zJG4!t=M>DNBqg<0YA5J1et2K zabV*y?G%cJ>~c*w?J>Oeu z4?66P<8nwJ=ONCxbH*0j@=2g(8n$wt4?o&acDRtgO2<_&FNqFIWw#&hI}a8`q!vMM z)-ivrLXWc>yTd&Y)R!J7NKz-&k4Pea#4_%MA)Nvu}F#+t< z$y#r!FjB!;XI(ecf8F~H|9aM)u8&&)1_V)qyU|w4c=ox8fT@3C3A#7j8;Ie@qFgMQ z58E}N1rg*A!6Y|q#0@tS%R#s;_Vim5UTrPi_k$l|9Py!`nt{X8hF(fm-|{i zx>Gj=!rxM_7N1$@+T3AfE`Rh_@~vu2Lrmw{2%H}FL_d%AX_L47>rpetC#wArA93y3 zU>)@VvW?og*AmAA$Q^&n_x{xnYsZLLp2>RzQhb>0IfEh#OcG=(8@2 zf+C+1c{<1us%Px6ySzIy)=mhqjB7btTNI5-m^4YwAJgSUNSpH38vvCz5xL`=3jX~W z!WwhEx?Z(Byka$?)#LIWVH7CMZGH1QMOBdARvjg6V2wz(_Miiib>OM2>g4L$I-llQ zvAUSsOv5evtm=emD^s68U_IW&-991Re_kv+Y%&x=4+<3%2&oHe(kI7(s$jk*qIw1E z_u6u#QOX$Z_G+;8{(3#ZJn&|}=1sHQdc~6QE`W4z11GdmYah@eo<8OH}44XS5*=E&ihqV3kAGiJ*}=FT^D zouyKEALE=(M_5a^M>Ljh_Hx{i`ZNHA^*VB2fc#I$ei6S@-?n(dd7_u$q$;X2j~?N9 zX;4?R$7JKHd-j~jWr~~ciA5FOv~ixK9_GbeoJa2Uw8TAE9zEwg-W!4TK0(SCqHNzz z3iqOg3^K(d25}-fmcGJXG|7F$r1T`YXXH%0mSeCI;rRu7&8I>&IVIn%G0>Xb4!_oL zX7YOZBMnC9y(dv;V(W=#W7NT|URdt?sD4DrL?Hn5a{fcaUb*wXs=N)RPKa#~)F+Rd zPj=)a%!w#cTC*#%@lLe^Ro+iZES^=Z#z*%8VBmHW9~BQ^uGZ0bx$a?lrb8Q8_jc! z=hc3U!hBozL$Jh;&?|pz_46g{8z`S!JI!~qpEn4$&L(hNGRXYK9{Of;)-QG={xoko z#rad96f_7l)e&*H){uH`6akbdkjpnTCI-a=vUH#;(c;=JEHNtQZt|F!mq258mTg>q z?zUrcdkRn>#eU4(%J<5>tm{PC&r7-3JdXng4QN-(eO4I3)C_Ki1Ng{v?w6#T7Sqcl z-1fgHYAk7Ulh1c5Wg?44S}?KSw(mng`Tlx*0#&dcwnipIp__#UdY~8F!%qI0CW&EF zEs!{pt~A)1?S!Gh=@&6Q;AvlX^H!~PTerUD0vRh`49mqbqu7hT8o<@Zw<9J$s7eiV zu~;^>N(@@Ya?Xt`&{AVT9tR!a*=8R>nb>PhATumdAa$@)jCC` zP?d*;uSSy{if#U+jb&1#{PLlYHfs`$&A5NQLQ7u^vKSAeF^tMu zE&gV+7e(T7Y!~injv5w2gnsXzF*$cHcfdIeE$@7`(iVMTY#FOhSrzd8~NJIrZb+7kJm1mUk3Q)K5bFuiSYX9 zKQ^<09xM($dczc2$ouhh&Yq{I+xS37-;s+Kd!UfM7fO5M)3_ytb*iKa)%gxhF}yr}q-HsJ zIpY=x@3_O?UbDLW!R*-)e>TCpW=9ydOs%sw+WX-tv6(F0wo;Eu`A2niC4B;3?Q;cO zlUQ4pK2||PtiB;JV#s!2(=87)77n@`ho8z^1JWSb=s+Y?5EX`bZsYXhE zAfj5s^1wVVGC_0Ew@fNOP$gs1B)bmUYO|-?Pi%Q*gF%7v#7ToZz9%lx-kMX)irsA@ zg>T<-qB`WU$g9!=l-&H$P~bNxx4;-I1s<)nvpwoxc~fx5mwV@5)ZN&o5Y@yK9||E9 zPxd6|=!BH>dFnc26lt43IH)Qa#ASr+3Xw0_nX|$A;X^uCGHLIyij~`Ar?>!p%S5-I zImN{lb?*xwmog7+`a+Nu_P9^YSgFFlaZh@W*|R?|=d$+yFi`r9zmon3L06A;7za)O z1hrL9*LIpL8W}O^AqH$Ir<#4UjTRr`I^87(Jq;d=V|%k3tn>s0MfPF78bTSaE}zF| zX3~Lye&2TvnQ%L}6)zs-8C>B`z27_M&N0i^XB}OjTd18ZnBv2%z;SGDG9yM-m&7s6 zfjuZi#Vh0k`-lNd!0p@df|E0Ya7lbF35N^eJZ(z*+bnL{Rru%8x@2ILHUmXrSeJZ2 z-=rCI0Q4RsR@83OM&6-auC3+0e9NXz?d}|M4?rK!ii*%l90N3Z_R)`qr~9HvYi&J0 zBNadwWuHtzgD1KJo-FVUcraorOQNpW6$07S>;%VghuE6S6TmIfC6E^{TjDnGgw?@gflQz!csIe>~bp^(H%BK(2Edc`Um-<}q^p>JE)cqoN-Yd&l_ z34m>qg3Z`1%DIHBZ7Sds2O$X2fQrk@+|&(pb_KANXIMYLbar>Oym9Q5yw#`YrSH{L z*DwDtD*EwmhX&Uw#D$VH z;o&)8y#45kF5Sri@D_OASYZAcxY)gglCKHoUH$x7??mlW^mkQ7=f5hBpT~rR_`JC& z&r3FR9{yxnaU6vryUU$l_N!ch^nfBWmOa~AhRT5n>MaGV*pSb$FAwK}|Mvocfi{|D zl0J8J@u1bNcH?b*UBYUO98j zn^kJih>y_Kgc#iIR^^qi?%lq759XR{Z~*7@Y%&0Q085UgNqOZz>BfQ=Y7xBh<5o6B zP=YPlh-LK^re5#Z*!u*uEG%f{$2ozAZa?3>IVGDT=n{Ky>fW386I)!b%3+zZ~UWaTI6)E6aJv{X33C9i|Q>9L@a$Mb=lcTtT!qKY^N zuJLd0?<%7J4lK#w-rd8IY#jUhM*&yQ%&agM`!0Cps&>TN3Z-wF^mWo{qrmy-3ALJA zH4775Ls@tTd!cP%m?H!uPE}Xgzfa*-%AB(})_VVpWr|+P+9z$9t6?XuJm9u7s^s3k zx$aHeY>e{id)(0|52J97F9M80Yv5uxxUFvu-YkP7Yo(>fFF`9krr~zU~y5 ze<#&6t0*A~3wm^T^eoDZ7 z;Tnj@njYTh7GRtiPk z1Ik#uSnx|2eH-Gkz{|xIx5}ioH-ye7RucwClCdmGI$8q@gTIfECe=UAYB#knC}C zQ#U}l#;kX?H5xbsS1*k*8j~EErNj6vaJ7tF>1hS1G>#4eCL||`m`&R+Kg`the^fr; zja_iM1{mEceViE}H`Fq4cV}qDc#_q-dTuT$4+sR#Xjg(H#OA?5I->*k36vHdj+W5e zMDpOIv>Kl9<#}2}lu#R*nVj63o}QjRkbLW%een@c%;AhO8^rYkGVlC`n}G0hkD!a2 z+ipSnX73QzdcVg?i2C}v-nT$9wnE_)CvkKb92{W`((qVN;otBEHP~>C*x(M)^?a+v zBqftzx1MxqHERzLx2Gf7KO66^Di#@W9EGOu}1C^gh2qpSK|2E|Rse5J zV`OZ$0oVj_0T+sI7$0;hhHfNqK7j8)LFQ%Zi~ z=b|5Y;%e{o#u1vbxT6rad;6!3zRPI~6bj{P$D6XUo*#`c*~8%k@i(DE-uO!`u2?Td3D0E1;F|dtbYh@-uav?&a93s zY7GGAMvKjD+_rK*NmTE!4`U;>wA@2@9%Vfe%D;T%hOCy}lnb(o9UY@`N4XGp&UviY zZ>jqzq#iiko$%0~KHInZ6Ce@;(_}R*yS@471yvqt7tw)bU;+tfFJC?)y~NSVc)qiE zmosC%#SYT;YA_HRvU@Rc(I?VX^{|_w>W@F_Jsw@Rcg>n!=}9gL`IPm_kz#Jy&m9XA z%^#<$p>aukq;?d)Q|(2^c_|u7L&c&pyivV?qJ0 z_RTV)U5Ux4Q1u_1>`HAw%i_U@%3<8*?1d1#y&JV=VD7x%;?Nnljj*#p;JPajI+vY3D#uXlvNI{FcR1juudn}_+SVuJv|omQvwe1}ik3X!_Y(k^pT{b4rH>UHNlLO8=X&m?%S#Hf;!~`;WV9>XRKiXOt0%H=-`1R%HA${? zOsT#@8pPL~_r}Csv0O>GsLvX6YA&Q;%dzw=DWFWUi8}wA>T1n_5@(akg{MrLR1DO1 za!pHYh7IuR_t?B#6+#jZ>iG@hMPIvm?YG1joUF$r;x;A7c9{OMUOAI?N%NS#^Vf-wVz zSVX;0p>EFfK+Vt6Nx%#f5ZN&_WcLG9H0+Wd_?K&d1}tZc@IC97J4Y|6D4|?4CC>dZ z9Gnb_Q0&z(@GEKpQa_mp7yjRvQg)*oA<}9NA#{Vs+{#7sZzqxq& zKd=r9{TFseVd@;5(&luI6>{f};)Oi*KNiZ0Gw{;^t>_6VBjA^F6`EoorbClc$%{E@ zhKWhc zN{$H%g$iIS4tLJ%No{Qc2V{ODs_HI?Nl5G!jJ1|`F5}P4%zP1X!N{nkw844>s%&V~ zS@RdnX2wHHChWay*}Ci|LR+u&7>We#tcd|%$F3#AX?%)(?y8?aP>Y`K*k@iu0?;wn z0sD+g8CP7J(^q~m5YpBthW@l46uVG36auqZ9|NfNf~m&$v74Uyu>mRMI41$d~CL!x_%6IZIgAT#;L7IYe zF+}28Yj2_x;E+C0-!)N{Iqy&4LxeJJF07$SoZ1rFLj{LvC>bA4`fM{u>bOSChAXW- z`yD_JkLe`G1CiPYXcQfC`D3(KZ!lU=>^P>{ZFZM8v)nBppx;5q)$IUWnZcZ?y6Zg* zQYShe=|MELVHBR_m$O#nA_xs0&I*v;BM2yqQ`ZS|WP%P(I^i#$)t2f7ysWhJVUw)m z+M&Z=wggVU$-fU+I*#3TaY^-az1->H;^K0&uKLdK*{KsA@i;Hg=}*cXLAOQL+0Q!E z*%x2iQmQu^6CK_B?c0MrSiRJgloW5m93#~@&vye9<1%GWh2T<7KsjD|x*XP2q!b)V zgQz2QAHDP%A<-orB+^q3k5pSjw=!d*q7tKI&$2-bW?L-3%NkP$kcyQyG{Uze*(@^r z%aTcEQq&wrBcH)R?K%z6R6G2wh>R0LWotGu+t-g>XlrW&OBW=PEa=%6Ac5af_6x_- zX`b5)$zD$g1!R$dQ*=)2KB#YY0xw+vXsuy8x?YuZ@MKM!!JE>}Rf;E0><49aa>;tS zU}6{&NJ0{Js4Cw#%k7EYCp>n5S$!BT8^~4$6TAu3awLOBRO0#oQ?w&!Qy0(hST?iz zG@CU+NZN=$&yH_{E@Bs5V;wmY4e(UTuYt5R=@{ht>j>kl-MJ+??g4=GzzD5D*`88d zd;&0I?En_SsBedr4WGVCItZS0dynw_8uQY$#9h;WJ_7__wg67-DLja~Jd8$GTFd|N zSu~dSM=A{hrU=b(_DlU3OKsj*&a1|tnKThJ@wB4+{i%%*XAAL|Sv{%=1N%rW)32zJ zpa~up8-RfcAODJY!mN(J#db^MRyuWR-{hY3^1&b@NzCGzH9#S^UpjtE9BYGq7*FNj zv4clg-uf9JPk8T327a1bE6s_y7BYoc1*cYUNXvAhtkH~OM8tp}$-{g2%fqVbU2*e6 zRnYEfonLF#pSW8~?~yX@Yk>e^TdwBv^X)LuK(fe7pvTCRd$q>orDqVlR=##|U;%QtZTTn+N8?xTwKP8n$Vqq^4WV zg|hMO6YuE{7Z}G1cO4t?-0M#CN?c&mB~Y>O6cB7hbVel8M4#OR0T?m{X@D6pqm6$H z`2H|^55_j-d`%`W9RW6q=g2emY&*Mk`uH9>#^h}J=g*%3|B;=Pu_<@n%a;d!==qnu zSLNLE3ozJPK8N#WdQM7L0r9^l*+BQqHHOO*g_D&^?<~s_KmZg>3bOFY`SjdY>)+(vW;gg+QI}=wIo~sgWeLzlSQ8dvw``G%(7vW zLmTDSHNJdemIM+OEEFlT!ZbEVrj%-LK7Z@uwkaRpFw_{KI2Nuy&lVF~L%aX;VS-@M z9tQOhAn4BWWJjk5SfJnQA2O%hdjE-A_}t73*=$X66DmnZc&F#H|If+bO4%?7rHYH% z;y;>@ZZKk>WN?UL_F_cRXFxpvIz|QYVYjOM61le#ayS4-MKRS>|M}3AV#-Yc;M;Gq znrj4-^-Jsjal5l(G{5-b%CV@B%zD+H0_D}aqNHm@oxMaCched}2h@MPv&5t89Wl&H zF1;;CZnfJUS;k=q;o|C5L;tf%LF>s-IQQFU&lT4E$HL(PMaKW_-Pi{GUyA$s$8>=l z0mJ;GvH_F{6_90~GcWQ{?HojMncA4nz(0sYb3fh%fKMquGp0unz(n8_1gtVaS4R|i zL=38FXdIK4uC)H{DyE^Sc}_4kDJjV%rg9qgj)?`;LZy*^=8^1@4j|8i(u?(Uk<7(& zQ*(3t{tJUPkv$}mSSZ98evCU89771E&)X3TZMq`Govf@Qaid=abP^D(NqyV?P0#(# zAhV0sV>k}%pFgjQ4610&72^mdVy#^72TDN@S6&Xx8iZK- zpLfth*dFju?oHdwnw&dd3>Y{U0qyIeWti6$Utp}|>*|6cH|R@C=m{eX;)LrkG_7Jz zf>ry6HSzCHsbt<)2G3n*e`2*5lssD(suhajG-UVg-M}t!w70i!X5mJiPo{Rx0Wg1Y z?Xa{r!-Q^$Eozq#HrG7}>d4IjW=tP8k=Y*ezK%F?$%suNk&FoOuutxW`w0iecLK#0 zii7K$3DR&>DnzS6K@XT}XW3@Hwd4qZYnzC31q|tv>a==C^2})n7t>B>81fDlj+l*n z+&5MYhcuK67Ew%}9pkUH0s8zIC=u@h46G+l{^kU{3g;j`B+J`)?<%)$69+_GF%4sVj z8bQpueLOp-PAa>^q!o8idvmihvk#Xqs#6ulBAuR8Mo{utE$SP&Xe^6t$EKHx>&=k*Oi| zsRsSFMRQ-0ix{|(?$WJA5f^d=vN1?BYjdqXW-t9>L`1dOqD_MteuM0f(PQTyfX4`f zqu?c!0I%bUBud4V&CS*Hx{~W9@Mu*)fix%efW_xs0{GHz!l_I}>oV6wah=eCHQwj# zz0z#XMFjuYG{2RCnk6Q-{<{vBou_NnwyW2c#jhnVtzm{}U(IhVS@EI}VMqsAaCpdm zjt2Q{?uV4U=%5L3rPKgvFPO>{`ZB>Q#RSvuk4T382xu;@*6$hH6p@)sM;U9X8Imcs z_djV0AnbX$TAh6~wlwAMMYZuBhAf6%bzi&vqe;MipjHqd&bE!T>8XhebI8OYecDWP zLnF%Lt+~tWj56+xZEkT5=U>Twzt3kpCyL`Fn)OMpCfI^nOu3Ymyf<=OiYV*RYVMvN z0?WYCkZK}iDo|VMK1dwC=mA90%`z7Hr38c@-H0^hCwWk7;I-(51Lx(eYn)agy4Ty` z965B&%Jtr!9y8VJ;6~L|Rb%hV2e%Q6Q0QE_o^R!j97B2Lefim_T)G9{jm;i0_)ser znMf2av?!5TEe6o!0sxA=U0v~!$a@lrk=pX!oV}9&NsshHt0U`nzy{XU1yrp)s=j`H zU|B{^POeMRrw1OF1e2Gn$2>^OzQ8S$-j*c_UP$#P6Ok`@MaOwIa9A$MS%K$Il&4$JpH=UwetCPbZiw!ld2kAK9h4r)V!xyh(#F(z1pP!{dtqVpl7Jx?%h6IjrF*VNwprj5{f&aZBfdgzBL7x8ZlN@JvrB5gY`kpW4Skh2>K!D4_&SMn@k<;kIzHb zw%R{yBf8hW&68W%1L5YpKCilc2czygbR~MNB8o-U2cbaMNDx9kC0v2D0fE`z2GjTc zKC;JcetP;C|6dJH8hXK$y;4SE8f*B?rhEd7n#JufXZdqH zQt7n-U|R%w$^ii?tmj&A;r^HCukxzAr%Ze?)Xxh91<{HNO!9`REHlJYXlx`>+$j&ySe=2+d6dB}kOQqE=_B53b{5ekXoTCs0? zn)>TJINlSxz)&h}aDA6rag1k@i*Qx&Jfghga1Vui9aADvKeKEbh9ZQ9JTI|xhX||Q zb;+)XqQfp4Jh6%#+Lz)L|J1ap zvGGD*!*cg_()Ucw!*g?UCzX}2RTb6LK);%Xl#*MvRPj7+T9L9IO$|p2#&W=-O}H*i zOs)G6JkR(JWvr#a-<)cDZ%Hz)S^m||Odb0SVj1$zgBZX1HP=>Y%{-V`nh zvPcJc!||i(_N$Pr*ISjY*05Kj*J%E#&ZilX=*U_4xn5tEiqw2}< zegzbraia|}n%N;k{{g*-=hzbf>2WOoJNv769vXoqh(&dVP-@2AAvZ37(WHS8OMbP~ zzWsO72JI|xL5J)J8x{siYXy1+In{DbO%cZIz+YmY%;bBax(h&+>HY8@C#M~cEIv(O z-vc!cnu%-H`J<|G~Nc|Brt9?_BG@Qgwb&3%^%# z!(>y9>-~3gDIamF<=pHa6vXkr)_%0eyx$Ep!}))^5QSTdFYdkjAIe|`RQ(dQI>;`o zj)oYEH~T8Q9Hx*pbJBR+{vZUfYk2Rt!>aLJl6g8yuvp)tb z-bjO4VFr5vQGV(_VFQQ*4%!U?4=r4o2*~;t+8&&da&#bvZp?LdcG}OK2K9D-I}x3I z)SC>Bps^P&>5ie`s~SEtufVE~_SS9&SgcA*PtUEav;YON00QaQ@My?B3crY8YGrdE zL=NHaaRu^fHq_KK2AP-N`~Lm6=k9~)*aYMO9feba&&Ae4?CiEDvk6B@Vb9Jr5&93jaa#o^ z!f{8*$jH0`3#Q+`eM0ahRIa})qS$6?r$(M)LU8EHuVdWQ~v%NuVAzOuejdmR%s za{ynj3`f~a@d?*|x#O>l?^8{$s;>UZS^Uh~5N)F4={1YNR(^*1G!-)$fqTv2xWD~Yd4a`2= z@Z}CY%^by#r1!g-gwB@{v#e>;1)qtxJ{}o*yLBX8==sl2>#olqzHYBs?T;@6Z#g)G znbzn@BNJMggtk6^!p5(~l6GV|*o`8>DHjUCAAP-_b45q9n?LoJ{dG5rl0Rb0%Jm7wd$~`F(B8ZO@(M&4X3#k##W3N*U+eG zI;`ccN3(8R!15DO#0mGMW0lM0{tgN&;vHT$5y0DQ=jt42aPhR-)d)HMzy3jvcoOC9 z&J&@IKcm<_78ntwNQLY{2#!ZaDi~rF*Q+CLX!B2}I%oY2>NccZ-Cw`lpu@hx9!9YD zmu)&gu>6z}kJ7e?$xEUvBHa%?|`}_kC>W(p}qu&L>F!e&IS~~~- z5y$t?mLu3_oVA2M9*L8O{Z=-Y(_4 z?Qvr>Png2*`f1O+6Sp1Tg92&<@f&5dD!qd@fm41jhuKNmQ^4{YjgO-`!U7-lDS+qG u`K?_j!6Hrske~=({%22w*!TI-X$nX38|YoqEj(*?|NjBP7g;+1 diff --git a/icons/mob/human_races/cyberlimbs/bishop/bishop_alt1.dmi b/icons/mob/human_races/cyberlimbs/bishop/bishop_alt1.dmi new file mode 100644 index 0000000000000000000000000000000000000000..3443d18b0a3c72fbb007172385d325b810b18910 GIT binary patch literal 659 zcmV;E0&M+>P)B`E=p`oFxtE;cCud%VQprD|Oi;Kv}$h*6{*x1-qR8*dx zp2Wn&z`(#tN=m}Q!lS(zrWSh)xEvFwzjs-&CR~PzMr3;&(F`exVW{owZp^1 ztgNh;mzS8Bn30i@iHV8E#>Tq3y7%|@larIh#l`>s|KZ``!NI}K&d!#WmV0}9qobqL z)YP)FvewqtjEsz_si^_Q?Bf6c00DGTPE!Ct=GbNc003!vR9JLGWpiV4X>fFDZ*Bkp zc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LY zR3K9+BQ-HaiHkEOv#1!Phl?|ppYV%;F(9&a2_RxwHq` zv%&jdNcf@gjPTxQ?2p|5^?_^r$U}V?@i>Wj6e9j36*7@o`iT|5gvT=G6TtkJ$Ym}H z%>OoIafZ$tKh2VCihFZJDNF2tzXs!}c?T+4Q30rO(wh||wSZ~(rspjdi^cL%Kp2Mf z%R>jipUoGF3aG_==A!{v)^)u~8$8gYD-&5_fwhvY+?0H~>-W1YFE=Kl)>wfqTEEkx zll@+HLU(>!XsiIdNHE=Uz3=yX&0EbxBtT$0P+Xm5{c{W-Y@UB ttB5ZDyzkIFp7@5(2mXmH7K_E=`~W(s6{)0SD6kpKVy05ku+y}iW5#B6MApP!$_#l@qO z09RL6W@cv2&dyIyPkD%U4gdfE0d!JMQvg8b*k%9#0BL$uSad{Xb7OL8aCB*JZU6vy zoKseCa&`CgQ*iP1)s^d^C{{N>st-9;Q#x9J8ldw9M%Y+Sd-G4!5fuJ{5wKdrHgL7`^ zQNs8TeGDEpq`{5j=!S%RJaObxM7~Sswcrd3n3#3J0^zlQ1r=l_BF>e9N$+5S1(LH) zkTdd{c<`}bB2!iCkae$9z6;d#j=(`K-)}fRLZi`W{0eEoz~|eTH2}ApB*80k-S$^m zY>Wkd0?UjGn5`DzOX#$K>II|)c>n7M v@R@yPZuJA|dW{^?f55KSzkLxJjm9>2lt>FHAL7d=00000NkvXXu0mjf9IE9; literal 0 HcmV?d00001 diff --git a/icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_alt1.dmi b/icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_alt1.dmi new file mode 100644 index 0000000000000000000000000000000000000000..4e8e5658f4f6d1da995e7138cf03b486b0723bd2 GIT binary patch literal 483 zcmV<90UZ8`P)V=-0C=2JR&a84_w-Y6@%7{?OD!tS z%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5DI+y8MTv_uC9|j)q=$<$ zttc@!6~s2=QdV&Fa{-$Q02HGcpk{Hed;kCd=}AOER9J=WmO+xkFbD*NfJGZ3EB}A( zf}LYVsoYYvw2uuV--*k|vI?Fc)gRT3?I#{3fF#-!r&i!3cd=7prilQir ZlRry+2A-1cs`CH<002ovPDHLkV1jv|$F2YX literal 0 HcmV?d00001 diff --git a/icons/mob/human_races/cyberlimbs/hesphaistos.dmi b/icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_main.dmi similarity index 100% rename from icons/mob/human_races/cyberlimbs/hesphaistos.dmi rename to icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_main.dmi diff --git a/icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_monitor.dmi b/icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_monitor.dmi new file mode 100644 index 0000000000000000000000000000000000000000..cc46f848343c9b21e2438ef08864c639eadc1bd2 GIT binary patch literal 469 zcmV;`0V@89P)YE6 z3IG(N8K7oyuY3Ri0P0CZK~zYIV_={c5E2v;z{h8H3=MQf;xneZxhEnk;1HcTRRURq zmxz=ziUQM_Q!S7cNDE2}qbO*dIkf{>f#L3r#wZG!LxYhOa2g8=TcY@)qobn%nLl&p z%n2w87@8YU`P0zk85+?PaH7d$3J?McgcLAQtY8$30@?ybK|z$fXe=m*Qa&(tmMrmf zK=4_nc)8C&R>9%vEhrg);ImE?+%lyBS%Kt2B~4@nla!<;A}e6%bX2xPRxsH}WCn^O zIWZNWWp7{sfrkrnMFuLrtpQB|1DXH_x;*Uxmf}Ex?v5A*LjV8(F48NB5f(y|00000 LNkvXXu0mjf#WJfN literal 0 HcmV?d00001 diff --git a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt1.dmi b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt1.dmi new file mode 100644 index 0000000000000000000000000000000000000000..5ff0fbaa5e1d803de8281f8b9d5b970984d3279e GIT binary patch literal 596 zcmV-a0;~OrP)8YFHEC&SVq#)_eSNE| zs}Bzk85tQLA0IpYcOiWA=5D+mjF-l5GhK7bRGBPD4B}hm} zEiElHG&EdXTz-CjU|?WQPEL7wd3t(!XlQ5zYE%~h0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0* zI5Sc+(=$pSoZ^zil2jm5DI+y8MTv_uC9|j)q=$<$ttc@!6~s2=QdV&Fa{-$Q02HGc zpk{Hed;kCe21!IgR9J=WmdTF7Fc3u3gtmtS0wk;sOALhl|G#e>EaPJ&75;VJQs_ZU+26l+XHuVa~yPIOu2Icrk+U zWICI>>3lYwjA2ypd1JDqEEmg_8?Tm&vP?2#_<~!0U0Lh=|A4jC`rg17Y__|a^44iF z1gd(s-FONt?(4(R7VaGs_IRlG=&t|s!0DV{_<~D*J_R3oS0;aNxO!iC4;PJ)D*$G^ i|81`^kw_%^e*FUXuMa=gH%_?#00000041xcGJ_-_xJbU;Nb7?@3ywKXK8ASi;IMWglTDMaBy&}tgKZ= z86^M!00DGTPE!Ct=GbNc003!vR9JLGWpiV4X>fFDZ*Bkpc$`yKaB_9`^iy#0_2eo` zEh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LYR3K9+BQ-HaiHkEOv#1!P zhl?|NklpZ~J7gyu5 zAV9c5I}+47TLA$QFAea~yY)Vt1t0;BB`f;4jpPj2P_ZGCk+6<2RyrREmd!`Pn$3TK z@dHjKlgZ@&eD42LR`h#jkd=?Yt1rL>z?b*>;l z+gO0R540!y0tB-G6AQ3d;c9rYK}fLxzoOjt<7)W#@+BSnJ^2kgK*JM{|F*Wam6er?i;K)= z|7mGyaBy&=lK|`M>%hRk!#iGj00001bW%=J06^y0W&i*HX?j#xbVOxyV{&P5bZKvH z004NLQ&wYE63IG(N8K7oyuY3Ri0P;yh zK~z|U?Uuog!ypVqvyc$HF(GzS_y7NN+2q=Rs@1C6iYMhX<_U5c55s5ibpmteohu(c zKTaWpX+#D$N17?l(C|HlWm&?+AWyVr$}1%(*bc!41)@1;6)51#A-Es`@1m-*qr3>V z@(;F(U>A`c3kE)UI{zIRtMR~6&&w@a1NHcUffu>H-|+esI-O4Ezu*pFd8RYR#}k|B zY79mk+p1=qkRnl;AR-R;^S~u6ez+i{8=HFXv7m%%e8X?#NL~dCL_I}@=Swphd5KsM z#gofFDZ*Bkpc$`yK zaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LYR3K9+ zBQ-HaiHkEOv#1!Phl?|onzMq(E94EqUq2SwM0WZ9o7J63}0%>C_5T-zqM= zOrIp#{}|6`dN}NU$8j9zQ9!NLJS-zG@51V79Qz=-eu&Dn|L22k(uZ*8gV%S~w;i#i z7*r4V$oC3v83Ct#4+v}}jG-R~01pU`<2VLC(j^B}zfUbY00000NkvXXu0mjfVF$9q literal 0 HcmV?d00001 diff --git a/icons/mob/human_races/cyberlimbs/xion.dmi b/icons/mob/human_races/cyberlimbs/xion/xion_main.dmi similarity index 100% rename from icons/mob/human_races/cyberlimbs/xion.dmi rename to icons/mob/human_races/cyberlimbs/xion/xion_main.dmi diff --git a/icons/mob/human_races/cyberlimbs/xion/xion_monitor.dmi b/icons/mob/human_races/cyberlimbs/xion/xion_monitor.dmi new file mode 100644 index 0000000000000000000000000000000000000000..dee73558711caedce151c2c9a3b9c56f5270f8ac GIT binary patch literal 474 zcmV<00VV#4P)V=-0C=2JR&a84_w-Y6@%7{?OD!tS z%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5DI+y8MTv_uC9|j)q=$<$ zttc@!6~s2=QdV&Fa{-$Q02HGcpk{Hed;kCd;7LS5R9J=WmcbH&FbqUXla@e|>i>VO zv3hiiBL_#P@A{S<;F3-0zgQk%pTp*XCoZKhp~O;GsD=f&<&cr(*pG13s z!U8pBHt3T}FAzrsP0dW(pg`jvC@k>SRJAqaBk|y4e~&Cf9WOcdZv@6VrR^wilFRoS z&cDKBGMW4eeI5wDzH+c1#3?Wbk;U!qT~LKor?}s%m)E}d8k)S~0TBf`XIv063I+?q zX^$C%3t}Pd@d@bpIGx5v1#H9nDxJ^lGjkmV4s?&4(tp5P*MClg$z<}H8;9!$Xf!N0 QbpQYW07*qoM6N<$g2zO{DF6Tf literal 0 HcmV?d00001 diff --git a/icons/mob/human_races/cyberlimbs/zenghu.dmi b/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi similarity index 100% rename from icons/mob/human_races/cyberlimbs/zenghu.dmi rename to icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi From 6398e9c3fe4b37fd93f2a750d0a1768508c11d9f Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Wed, 20 Apr 2016 04:27:05 -0400 Subject: [PATCH 2/9] Pass2 --- code/game/objects/items/weapons/cosmetics.dm | 16 +++++----- code/game/objects/items/weapons/scissors.dm | 30 +++++++++++-------- code/modules/client/preferences.dm | 12 ++++---- code/modules/mob/living/carbon/human/human.dm | 13 ++++++-- .../mob/living/carbon/human/update_icons.dm | 3 ++ .../mob/new_player/sprite_accessories.dm | 2 ++ 6 files changed, 48 insertions(+), 28 deletions(-) diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm index 208b93c0c53..3e2448fa8fe 100644 --- a/code/game/objects/items/weapons/cosmetics.dm +++ b/code/game/objects/items/weapons/cosmetics.dm @@ -91,14 +91,15 @@ /obj/item/weapon/razor/attack(mob/living/carbon/M as mob, mob/user as mob) if(ishuman(M)) var/mob/living/carbon/human/H = M + var/obj/item/organ/external/head/C = H.organs_by_name["head"] + var/datum/robolimb/robohead = all_robolimbs[C.model] if(user.zone_sel.selecting == "mouth") if(!get_location_accessible(H, "mouth")) to_chat(user, "The mask is in the way.") return - if(H.species && H.species.flags & ALL_RPARTS) //If the target is of a species that can have prosthetic heads, but doesn't have one... - if(!H.client.prefs.rlimb_data["head"]) - to_chat(user, "You find yourself disappointed at the appalling lack of facial hair.") - return + if((H.species && H.species.flags & ALL_RPARTS) && robohead.is_monitor) //If the target is of a species that can have prosthetic heads, but the head doesn't support human hair 'wigs'... + to_chat(user, "You find yourself disappointed at the appalling lack of facial hair.") + return if(H.f_style == "Shaved") to_chat(user, "Already clean-shaven.") return @@ -127,10 +128,9 @@ if(!get_location_accessible(H, "head")) to_chat(user, "The headgear is in the way.") return - if(H.species && H.species.flags & ALL_RPARTS) //If the target is of a species that can have prosthetic heads, but doesn't have one... - if(!H.client.prefs.rlimb_data["head"]) - to_chat(user, "You find yourself disappointed at the appalling lack of hair.") - return + if((H.species && H.species.flags & ALL_RPARTS) && robohead.is_monitor) //If the target is of a species that can have prosthetic heads, but the head doesn't support human hair 'wigs'... + to_chat(user, "You find yourself disappointed at the appalling lack of hair.") + return if(H.h_style == "Bald" || H.h_style == "Balding Hair" || H.h_style == "Skinhead") to_chat(user, "There is not enough hair left to shave...") return diff --git a/code/game/objects/items/weapons/scissors.dm b/code/game/objects/items/weapons/scissors.dm index 34b700d440d..3032d636d19 100644 --- a/code/game/objects/items/weapons/scissors.dm +++ b/code/game/objects/items/weapons/scissors.dm @@ -30,18 +30,23 @@ //this is largely copypasted from there. //handle facial hair (if necessary) var/list/species_facial_hair = list() + var/obj/item/organ/external/head/C = H.organs_by_name["head"] + var/datum/robolimb/robohead = all_robolimbs[C.model] if(H.gender == MALE || H.get_species() == "Vulpkanin") if(H.species) for(var/i in facial_hair_styles_list) var/datum/sprite_accessory/facial_hair/tmp_facial = facial_hair_styles_list[i] if(H.species.name in tmp_facial.species_allowed) //If the species is allowed to have the style, add the style to the list. Or, if the character has a prosthetic head, give them the human hair styles. + if((H.species.flags & ALL_RPARTS) && robohead.is_monitor) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list. + to_chat(user, "You are unable to find anything on [H]'s face worth cutting. How disappointing.") + return species_facial_hair += i else - if(H.species.flags & ALL_RPARTS) - if(("head" in H.client.prefs.rlimb_data) && ("Human" in tmp_facial.species_allowed)) - species_facial_hair += i - else - return + if((H.species.flags & ALL_RPARTS) && !robohead.is_monitor && ("Human" in tmp_facial.species_allowed)) //If the target is of a species that can have prosthetic heads, and the head supports human hair 'wigs' AND the hair-style is human-suitable, add it to the list. + species_facial_hair += i + else //Otherwise, they won't be getting any hairstyles. + to_chat(user, "You are unable to find anything on [H]'s face worth cutting. How disappointing.") + return else species_facial_hair = facial_hair_styles_list var/f_new_style = input(user, "Select a facial hair style", "Grooming") as null|anything in species_facial_hair @@ -51,15 +56,16 @@ for(var/i in hair_styles_list) var/datum/sprite_accessory/hair/tmp_hair = hair_styles_list[i] if(H.species.name in tmp_hair.species_allowed) //If the species is allowed to have the style, add the style to the list. Or, if the character has a prosthetic head, give them the human facial hair styles. - if((H.species.flags & ALL_RPARTS) && !("head" in H.client.prefs.rlimb_data)) + if((H.species.flags & ALL_RPARTS) && robohead.is_monitor) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list. + to_chat(user, "You are unable to find anything on [H]'s head worth cutting. How disappointing.") return species_hair += i else - if(H.species.flags & ALL_RPARTS) - if(("head" in H.client.prefs.rlimb_data) && ("Human" in tmp_hair.species_allowed)) - species_facial_hair += i - else - return + if((H.species.flags & ALL_RPARTS) && !robohead.is_monitor && ("Human" in tmp_hair.species_allowed)) //If the target is of a species that can have prosthetic heads, and the head supports human hair 'wigs' AND the hair-style is human-suitable, add it to the list. + species_facial_hair += i + else //Otherwise, they won't be getting any hairstyles. + to_chat(user, "You are unable to find anything on [H]'s head worth cutting. How disappointing.") + return else species_hair = hair_styles_list var/h_new_style = input(user, "Select a hair style", "Grooming") as null|anything in species_hair @@ -103,7 +109,7 @@ playsound(loc, "sound/items/Wirecutter.ogg", 50, 1, -1) if(do_after(user, 50, target = H)) playsound(loc, "sound/weapons/bladeslice.ogg", 50, 1, -1) - user.visible_message("[user] abruptly stops cutting [M]'s hair and slices their throat!", "You stop cutting [M]'s hair and slice their throat!") + user.visible_message("[user] abruptly stops cutting [M]'s hair and slices their throat!", "You stop cutting [M]'s hair and slice their throat!") //Just a little off the top. H.losebreath += 10 //30 Oxy damage over time H.apply_damage(18, BRUTE, "head", sharp =1, edge =1, used_weapon = "scissors") var/turf/location = get_turf(H) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 2d430c19328..767fa014910 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1204,12 +1204,12 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts H.model = rlimb_data["head"] var/datum/robolimb/robohead = all_robolimbs[H.model] if(species in S.species_allowed) - if((!rlimb_data["head"] || robohead.is_monitor) && (robohead.company in S.models_allowed)) //If the Machine character has the default Morpheus screen head or another screen head + if(robohead.is_monitor && (robohead.company in S.models_allowed)) //If the Machine character has the default Morpheus screen head or another screen head //and said head is in the hair style's allowed models list... valid_hairstyles[hairstyle] = S //Allow them to select the hairstyle. continue else - if(!rlimb_data["head"] || robohead.is_monitor) //Monitors (incl. the default morpheus head) cannot have wigs (human hairstyles). + if(robohead.is_monitor) //Monitors (incl. the default morpheus head) cannot have wigs (human hairstyles). continue else if(!robohead.is_monitor && ("Human" in S.species_allowed) || S.name == "Bald") valid_hairstyles[hairstyle] = S @@ -1268,9 +1268,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/obj/item/organ/external/head/H = new() H.model = rlimb_data["head"] var/datum/robolimb/robohead = all_robolimbs[H.model] - if((!("head" in rlimb_data) || robohead.is_monitor) && M.name != "None") //If the character can have prosthetic heads and they have the default Morpheus head (or another monitor-head), no optic markings. + if(robohead.is_monitor && M.name != "None") //If the character can have prosthetic heads and they have the default Morpheus head (or another monitor-head), no optic markings. continue - else if(("head" in rlimb_data || !robohead.is_monitor) && M.name != "None") //Otherwise, if they DON'T have the default head and the head's not a monitor but the head's not in the style's list of allowed models, skip. + else if(!robohead.is_monitor && M.name != "None") //Otherwise, if they DON'T have the default head and the head's not a monitor but the head's not in the style's list of allowed models, skip. if(!(robohead.company in M.models_allowed)) continue @@ -1317,11 +1317,11 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts H.model = rlimb_data["head"] var/datum/robolimb/robohead = all_robolimbs[H.model] if(species in S.species_allowed) - if(!rlimb_data["head"] || robohead.is_monitor) //If the Machine character has the default Morpheus screen head or another screen head and they're allowed to have the style, let them have it. + if(robohead.is_monitor) //If the Machine character has the default Morpheus screen head or another screen head and they're allowed to have the style, let them have it. valid_facialhairstyles[facialhairstyle] = S continue else - if(!rlimb_data["head"] || robohead.is_monitor) //Monitors (incl. the default morpheus head) cannot have wigs (human facial hairstyles). + if(robohead.is_monitor) //Monitors (incl. the default morpheus head) cannot have wigs (human facial hairstyles). continue else if(!robohead.is_monitor && ("Human" in S.species_allowed) || S.name == "Shaved") valid_facialhairstyles[facialhairstyle] = S diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6a5cca19723..0af960d9538 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1589,20 +1589,28 @@ to_chat(src, "You cannot change your monitor or optical display in your current state.") return + var/obj/item/organ/external/head/head_organ = get_organ("head") + if(!head_organ || head_organ.is_stump() || (head_organ.status & ORGAN_DESTROYED)) //If the rock'em-sock'em robot's head came off during a fight, they shouldn't be able to change their screen/optics. + to_chat(src, "Where's your head at? Can't change your monitor/display without one.") + return + if(species.flags & ALL_RPARTS) //If they can have a fully cybernetic body... var/obj/item/organ/external/head/H = organs_by_name["head"] var/datum/robolimb/robohead = all_robolimbs[H.model] if(!H) return - if(!robohead.is_monitor) //If head is present here, that means it's not the default Morpheus. Thus, no screen to adjust. Instead, let them change the colour of their optics! + if(!robohead.is_monitor) //If they've got a prosthetic head and it isn't a monitor, they've no screen to adjust. Instead, let them change the colour of their optics! var/optic_colour = input(src, "Select optic colour", rgb(r_markings, g_markings, b_markings)) as color|null + if(incapacitated()) + to_chat(src, "You were interrupted while changing the colour of your optics.") + return if(optic_colour) r_markings = hex2num(copytext(optic_colour, 2, 4)) g_markings = hex2num(copytext(optic_colour, 4, 6)) b_markings = hex2num(copytext(optic_colour, 6, 8)) update_markings() - else if(robohead.is_monitor)//Means that the character has the default Morpheus head, which has a screen. Time to customize. + else if(robohead.is_monitor) //Means that the character's head is a monitor (has a screen). Time to customize. var/list/hair = list() for(var/i in hair_styles_list) var/datum/sprite_accessory/hair/tmp_hair = hair_styles_list[i] @@ -1611,6 +1619,7 @@ var/new_style = input(src, "Select a monitor display", "Monitor Display", h_style) as null|anything in hair if(incapacitated()) + to_chat(src, "You were interrupted while changing your monitor display.") return if(new_style) h_style = new_style diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 623cc9df1e9..48f5701a671 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -365,6 +365,9 @@ var/global/list/damage_icon_parts = list() if(m_style && m_style != "None") var/datum/sprite_accessory/marking_style = marking_styles_list[m_style] if(marking_style) + var/obj/item/organ/external/head/head_organ = get_organ("head") + if((!head_organ || head_organ.is_stump() || (head_organ.status & ORGAN_DESTROYED)) && marking_style.marking_location == "head") + return //If the head is destroyed and it is the organ the marking is located on, get us out of here. This prevents floating optical markings on decapitated IPCs, for example. var/icon/markings_s = new/icon("icon" = marking_style.icon, "icon_state" = "[marking_style.icon_state]_s") if(marking_style.do_colouration) markings_s.Blend(rgb(r_markings, g_markings, b_markings), ICON_ADD) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index a1e764eb2b3..e5c0c6ab38c 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -44,6 +44,7 @@ // Restrict some styles to specific species var/list/species_allowed = list("Human", "Slime People") var/models_allowed = list() //Specifies which, if any, hairstyles can be accessed by which prosthetics. Should equal the manufacturing company name in robolimbs.dm. + var/marking_location //Specifies which bodypart a body marking is located on. // Whether or not the accessory can be affected by colouration var/do_colouration = 1 @@ -1911,6 +1912,7 @@ species_allowed = list("Machine") icon_state = "optics" models_allowed = list("Bishop Cybernetics", "Hesphiastos Industries", "Ward-Takahashi", "Xion Manufacturing Group", "Zeng-Hu Pharmaceuticals") //Should be the same as the manufacturing company of the limb in robolimbs.dm + marking_location = "head" /datum/sprite_accessory/body_markings/optics/bishop_alt name = "Bishop Alt. Optics" From 3b435c023a0e33fc2ac0fbacac6a612db95a6ca3 Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Thu, 21 Apr 2016 04:35:07 -0400 Subject: [PATCH 3/9] Refactor scissors, fix and finalize prefs, fix missing part definition for xion models, etc. continued: Monitor changing verb will now only show a list of monitor styles available for the monitor head brand you are using. For example, if you chose any of the regular monitor heads (default morpheus or anything suffixed with mtr.) you will get a list of IPC standard monitor styles and nothing else. However, if you chose the hesphiastos alt head (which is also a monitor, but of a different style) the list will be populated with the monitor styles suitable for that hesphiastos head, but none others (not even the ipc standard ones, since those don't fit and hesphiastos alt. isn't in the models_allowed list) --- code/game/objects/items/weapons/scissors.dm | 40 +++++++++++------- code/modules/client/preferences.dm | 24 ++++++++--- code/modules/mob/living/carbon/human/human.dm | 2 +- code/modules/surgery/organs/robolimbs.dm | 2 + icons/mob/human_face.dmi | Bin 70884 -> 70843 bytes 5 files changed, 45 insertions(+), 23 deletions(-) diff --git a/code/game/objects/items/weapons/scissors.dm b/code/game/objects/items/weapons/scissors.dm index 3032d636d19..a5e0081e723 100644 --- a/code/game/objects/items/weapons/scissors.dm +++ b/code/game/objects/items/weapons/scissors.dm @@ -37,16 +37,20 @@ for(var/i in facial_hair_styles_list) var/datum/sprite_accessory/facial_hair/tmp_facial = facial_hair_styles_list[i] if(H.species.name in tmp_facial.species_allowed) //If the species is allowed to have the style, add the style to the list. Or, if the character has a prosthetic head, give them the human hair styles. - if((H.species.flags & ALL_RPARTS) && robohead.is_monitor) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list. - to_chat(user, "You are unable to find anything on [H]'s face worth cutting. How disappointing.") - return + if(H.species.flags & ALL_RPARTS) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list. + if(robohead.is_monitor) + to_chat(user, "You are unable to find anything on [H]'s face worth cutting. How disappointing.") + return + continue //If the head DOES support human hair wigs, make sure they don't get monitor-oriented styles. species_facial_hair += i else - if((H.species.flags & ALL_RPARTS) && !robohead.is_monitor && ("Human" in tmp_facial.species_allowed)) //If the target is of a species that can have prosthetic heads, and the head supports human hair 'wigs' AND the hair-style is human-suitable, add it to the list. - species_facial_hair += i - else //Otherwise, they won't be getting any hairstyles. - to_chat(user, "You are unable to find anything on [H]'s face worth cutting. How disappointing.") - return + if(H.species.flags & ALL_RPARTS) //If the target is of a species that can have prosthetic heads, and the head supports human hair 'wigs' AND the hair-style is human-suitable, add it to the list. + if(!robohead.is_monitor) + if("Human" in tmp_facial.species_allowed) + species_facial_hair += i + else //Otherwise, they won't be getting any hairstyles. + to_chat(user, "You are unable to find anything on [H]'s face worth cutting. How disappointing.") + return else species_facial_hair = facial_hair_styles_list var/f_new_style = input(user, "Select a facial hair style", "Grooming") as null|anything in species_facial_hair @@ -56,16 +60,20 @@ for(var/i in hair_styles_list) var/datum/sprite_accessory/hair/tmp_hair = hair_styles_list[i] if(H.species.name in tmp_hair.species_allowed) //If the species is allowed to have the style, add the style to the list. Or, if the character has a prosthetic head, give them the human facial hair styles. - if((H.species.flags & ALL_RPARTS) && robohead.is_monitor) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list. - to_chat(user, "You are unable to find anything on [H]'s head worth cutting. How disappointing.") - return + if(H.species.flags & ALL_RPARTS) //If the character is of a species that can have full body prosthetics and their head doesn't suport human hair 'wigs', don't add the style to the list. + if(robohead.is_monitor) + to_chat(user, "You are unable to find anything on [H]'s head worth cutting. How disappointing.") + return + continue //If the head DOES support human hair wigs, make sure they don't get monitor-oriented styles. species_hair += i else - if((H.species.flags & ALL_RPARTS) && !robohead.is_monitor && ("Human" in tmp_hair.species_allowed)) //If the target is of a species that can have prosthetic heads, and the head supports human hair 'wigs' AND the hair-style is human-suitable, add it to the list. - species_facial_hair += i - else //Otherwise, they won't be getting any hairstyles. - to_chat(user, "You are unable to find anything on [H]'s head worth cutting. How disappointing.") - return + if(H.species.flags & ALL_RPARTS) //If the target is of a species that can have prosthetic heads, and the head supports human hair 'wigs' AND the hair-style is human-suitable, add it to the list. + if(!robohead.is_monitor) + if("Human" in tmp_hair.species_allowed) + species_hair += i + else //Otherwise, they won't be getting any hairstyles. + to_chat(user, "You are unable to find anything on [H]'s head worth cutting. How disappointing.") + return else species_hair = hair_styles_list var/h_new_style = input(user, "Select a hair style", "Grooming") as null|anything in species_hair diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 767fa014910..546a7e5abf4 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1496,23 +1496,35 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts organ_data[second_limb] = "amputated" rlimb_data[second_limb] = null if("Prosthesis") - var/choice = input(user, "Which manufacturer do you wish to use for this limb?") as null|anything in chargen_robolimbs + var/choice var/subchoice var/datum/robolimb/R = new() var/in_model + var/robolimb_companies = list() + for(var/limb_type in typesof(/datum/robolimb)) //This loop populates a list of companies that offer the limb the user selected previously as one of their cybernetic products. + R = new limb_type() + if(!R.unavailable_at_chargen) + if(limb in R.parts) //Ensures users can only choose companies that offer the parts they want. + robolimb_companies[R.company] = R //List only main brands that have the parts we're looking for. + R = new() //Re-initialize R. + + choice = input(user, "Which manufacturer do you wish to use for this limb?") as null|anything in robolimb_companies //Choose from a list of companies that offer the part the user wants. if(!choice) return R.company = choice R = all_robolimbs[R.company] - if(R.has_subtypes == 1) + if(R.has_subtypes == 1) //If the company the user selected provides more than just one base model, lets handle it. var/list/robolimb_models = list() - for(var/limb_type in typesof(R)) + for(var/limb_type in typesof(R)) //Handling the different models of parts that manufacturers can provide. var/datum/robolimb/L = new limb_type() - if(limb in L.parts) + if(limb in L.parts) //Make sure that only models that provide the parts the user needs populate the list. robolimb_models[L.company] = L - if(second_limb in L.parts) + if(robolimb_models.len == 1) //If there's only one model available in the list, autoselect it to avoid having to bother the user with a dialog that provides only one option. + subchoice = L.company //If there ends up being more than one model populating the list, subchoice will be overwritten later anyway, so this isn't a problem. + if(second_limb in L.parts) //If the child limb of the limb the user selected is also present in the model's parts list, state it's been found so the second limb can be set later. in_model = 1 - subchoice = input(user, "Which model of [choice] [limb_name] do you wish to use?") as null|anything in robolimb_models + if(robolimb_models.len > 1) //If there's more than one model in the list that can provide the part the user wants, let them choose. + subchoice = input(user, "Which model of [choice] [limb_name] do you wish to use?") as null|anything in robolimb_models if(subchoice) choice = subchoice if(limb == "head") diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 0af960d9538..f2f533da59b 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1614,7 +1614,7 @@ var/list/hair = list() for(var/i in hair_styles_list) var/datum/sprite_accessory/hair/tmp_hair = hair_styles_list[i] - if(species.name in tmp_hair.species_allowed) + if((species.name in tmp_hair.species_allowed) && (robohead.company in tmp_hair.models_allowed)) //Populate the list of available monitor styles only with styles that the monitor-head is allowed to use. hair += i var/new_style = input(src, "Select a monitor display", "Monitor Display", h_style) as null|anything in hair diff --git a/code/modules/surgery/organs/robolimbs.dm b/code/modules/surgery/organs/robolimbs.dm index f7a450d77f6..0229ee80cae 100644 --- a/code/modules/surgery/organs/robolimbs.dm +++ b/code/modules/surgery/organs/robolimbs.dm @@ -106,11 +106,13 @@ var/global/datum/robolimb/basic_robolimb /datum/robolimb/xion/alt1 company = "Xion Manufacturing Group alt." icon = 'icons/mob/human_races/cyberlimbs/xion/xion_alt1.dmi' + parts = list("head") has_subtypes = null /datum/robolimb/xion/monitor company = "Xion Manufacturing Group mtr." icon = 'icons/mob/human_races/cyberlimbs/xion/xion_monitor.dmi' + parts = list("head") is_monitor = 1 has_subtypes = null diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 215499099f419dafec60a7bf74a3576dbd488ea2..f0e351b17674a95c834ceadde5da2c39f6627b1b 100644 GIT binary patch delta 6722 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 delta 6667 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 lzf#hBwvp-kIg(-=03#EM75cM#0qW Date: Thu, 21 Apr 2016 19:50:46 -0400 Subject: [PATCH 4/9] Attaching a prosthetic head that isn't a monitor won't cause you to go bald & Fixes disembodied prosthetic heads being bald & ... cont'd: Adds the rendering of markings on disembodied heads. --- code/modules/surgery/limb_reattach.dm | 5 ++++- code/modules/surgery/organs/organ_icon.dm | 12 ++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm index e9464fab9a1..3386f4b9366 100644 --- a/code/modules/surgery/limb_reattach.dm +++ b/code/modules/surgery/limb_reattach.dm @@ -97,7 +97,10 @@ E.forceMove(target) if(target.get_species() == "Machine")//as this is the only step needed for ipc put togethers if(target_zone == "head") - target.h_style = "" + var/obj/item/organ/external/head/H = target.organs_by_name["head"] + var/datum/robolimb/robohead = all_robolimbs[H.model] + if(robohead.is_monitor) //Ensures that if an IPC gets a head that's got a human hair wig attached to their body, the hair won't wipe. + target.h_style = "" E.status &= ~ORGAN_DESTROYED if(E.children) for(var/obj/item/organ/external/C in E.children) diff --git a/code/modules/surgery/organs/organ_icon.dm b/code/modules/surgery/organs/organ_icon.dm index ee0e450ae15..db6ffd81a2a 100644 --- a/code/modules/surgery/organs/organ_icon.dm +++ b/code/modules/surgery/organs/organ_icon.dm @@ -71,6 +71,14 @@ var/global/list/limb_icon_cache = list() overlays |= lip_icon mob_icon.Blend(lip_icon, ICON_OVERLAY) + if(owner.m_style) + var/datum/sprite_accessory/marking_style = marking_styles_list[owner.m_style] + if(marking_style && marking_style.species_allowed && (species.name in marking_style.species_allowed) && marking_style.marking_location == "head") + var/icon/markings_s = new/icon("icon" = marking_style.icon, "icon_state" = "[marking_style.icon_state]_s") + if(marking_style.do_colouration) + markings_s.Blend(rgb(owner.r_markings, owner.g_markings, owner.b_markings), ICON_ADD) + overlays |= markings_s + if(owner.ha_style) var/datum/sprite_accessory/head_accessory_style = head_accessory_styles_list[owner.ha_style] if(head_accessory_style && head_accessory_style.species_allowed && (species.name in head_accessory_style.species_allowed)) @@ -81,7 +89,7 @@ var/global/list/limb_icon_cache = list() if(owner.f_style) var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[owner.f_style] - if(facial_hair_style && facial_hair_style.species_allowed && (species.name in facial_hair_style.species_allowed)) + if(facial_hair_style && ((facial_hair_style.species_allowed && (species.name in facial_hair_style.species_allowed)) || (src.species.flags & ALL_RPARTS))) var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") if(species.name == "Slime People") // I am el worstos facial_s.Blend(rgb(owner.r_skin, owner.g_skin, owner.b_skin, 160), ICON_AND) @@ -91,7 +99,7 @@ var/global/list/limb_icon_cache = list() if(owner.h_style && !(owner.head && (owner.head.flags & BLOCKHEADHAIR))) var/datum/sprite_accessory/hair_style = hair_styles_list[owner.h_style] - if(hair_style && (species.name in hair_style.species_allowed)) + if(hair_style && ((species.name in hair_style.species_allowed) || (src.species.flags & ALL_RPARTS))) var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") if(species.name == "Slime People") // I am el worstos hair_s.Blend(rgb(owner.r_skin, owner.g_skin, owner.b_skin, 160), ICON_AND) From 698f81cefc56bd7bb5bf018e7c8ce0edbb393a7b Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Thu, 21 Apr 2016 20:42:30 -0400 Subject: [PATCH 5/9] Fix - Main Entries in Primary Choice Only Ensures the first choice posed to the user is one of companies that only offer one model and single entries for companies that offer more than one model --- code/modules/client/preferences.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 546a7e5abf4..2e1c11ca8e8 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1505,7 +1505,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts R = new limb_type() if(!R.unavailable_at_chargen) if(limb in R.parts) //Ensures users can only choose companies that offer the parts they want. - robolimb_companies[R.company] = R //List only main brands that have the parts we're looking for. + if(R.has_subtypes) //Ensures singular models get added to the list as well companies that offer more than one model. + robolimb_companies[R.company] = R //List only main brands that have the parts we're looking for. R = new() //Re-initialize R. choice = input(user, "Which manufacturer do you wish to use for this limb?") as null|anything in robolimb_companies //Choose from a list of companies that offer the part the user wants. From 6b73c047c54bf21e0d4c2ecd7a6f825a1ee823fe Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Thu, 21 Apr 2016 22:22:27 -0400 Subject: [PATCH 6/9] Fixes Runtime Occurred when trying to list hair, marking or facial hair styles in situations where the head is the default Morpheus head (no replacement head). --- code/modules/client/preferences.dm | 31 +++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 2e1c11ca8e8..29eb1f015ea 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1187,8 +1187,6 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if("hair") if(species == "Human" || species == "Unathi" || species == "Tajaran" || species == "Skrell" || species == "Machine" || species == "Vulpkanin") var/input = "Choose your character's hair colour:" - if(species == "Machine" && !("head" in rlimb_data)) - input = "Choose your character's frame colour:" var/new_hair = input(user, input, "Character Preference", rgb(r_hair, g_hair, b_hair)) as color|null if(new_hair) r_hair = hex2num(copytext(new_hair, 2, 4)) @@ -1201,7 +1199,12 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/datum/sprite_accessory/S = hair_styles_list[hairstyle] if(species == "Machine") //Species that can use prosthetic heads. var/obj/item/organ/external/head/H = new() - H.model = rlimb_data["head"] + if(S.name == "Bald") + valid_hairstyles[hairstyle] = S + if(!rlimb_data["head"]) //Handle situations where the head is default. + H.model = "Morpheus Cyberkinetics" + else + H.model = rlimb_data["head"] var/datum/robolimb/robohead = all_robolimbs[H.model] if(species in S.species_allowed) if(robohead.is_monitor && (robohead.company in S.models_allowed)) //If the Machine character has the default Morpheus screen head or another screen head @@ -1211,7 +1214,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts else if(robohead.is_monitor) //Monitors (incl. the default morpheus head) cannot have wigs (human hairstyles). continue - else if(!robohead.is_monitor && ("Human" in S.species_allowed) || S.name == "Bald") + else if(!robohead.is_monitor && ("Human" in S.species_allowed)) valid_hairstyles[hairstyle] = S continue else @@ -1266,7 +1269,10 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if(species == "Machine") //Species that can use prosthetic heads. var/obj/item/organ/external/head/H = new() - H.model = rlimb_data["head"] + if(!rlimb_data["head"]) //Handle situations where the head is default. + H.model = "Morpheus Cyberkinetics" + else + H.model = rlimb_data["head"] var/datum/robolimb/robohead = all_robolimbs[H.model] if(robohead.is_monitor && M.name != "None") //If the character can have prosthetic heads and they have the default Morpheus head (or another monitor-head), no optic markings. continue @@ -1308,13 +1314,18 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/list/valid_facialhairstyles = list() for(var/facialhairstyle in facial_hair_styles_list) var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle] + if(S.name == "Shaved") + valid_facialhairstyles[facialhairstyle] = S if(gender == MALE && S.gender == FEMALE) continue if(gender == FEMALE && S.gender == MALE) continue if(species == "Machine") //Species that can use prosthetic heads. var/obj/item/organ/external/head/H = new() - H.model = rlimb_data["head"] + if(!rlimb_data["head"]) //Handle situations where the head is default. + H.model = "Morpheus Cyberkinetics" + else + H.model = rlimb_data["head"] var/datum/robolimb/robohead = all_robolimbs[H.model] if(species in S.species_allowed) if(robohead.is_monitor) //If the Machine character has the default Morpheus screen head or another screen head and they're allowed to have the style, let them have it. @@ -1323,7 +1334,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts else if(robohead.is_monitor) //Monitors (incl. the default morpheus head) cannot have wigs (human facial hairstyles). continue - else if(!robohead.is_monitor && ("Human" in S.species_allowed) || S.name == "Shaved") + else if(!robohead.is_monitor && ("Human" in S.species_allowed)) valid_facialhairstyles[facialhairstyle] = S continue else @@ -1503,10 +1514,8 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/robolimb_companies = list() for(var/limb_type in typesof(/datum/robolimb)) //This loop populates a list of companies that offer the limb the user selected previously as one of their cybernetic products. R = new limb_type() - if(!R.unavailable_at_chargen) - if(limb in R.parts) //Ensures users can only choose companies that offer the parts they want. - if(R.has_subtypes) //Ensures singular models get added to the list as well companies that offer more than one model. - robolimb_companies[R.company] = R //List only main brands that have the parts we're looking for. + if(!R.unavailable_at_chargen && (limb in R.parts) && R.has_subtypes) //Ensures users can only choose companies that offer the parts they want, that singular models get added to the list as well companies that offer more than one model, and... + robolimb_companies[R.company] = R //List only main brands that have the parts we're looking for. R = new() //Re-initialize R. choice = input(user, "Which manufacturer do you wish to use for this limb?") as null|anything in robolimb_companies //Choose from a list of companies that offer the part the user wants. From 18520dc1e0b90b678bfee4843ffe5ac128b4b67a Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Thu, 21 Apr 2016 23:00:11 -0400 Subject: [PATCH 7/9] Fixes Headlight Sprite and Fixes Hair+Head Accessory Animation Hair and Head Accessories will now no longer animate as fast as they possibly can and, instead, will follow the timings the spriter defined in the .dmi file. --- .../mob/living/carbon/human/update_icons.dm | 6 ++++-- icons/mob/body_accessory.dmi | Bin 13074 -> 13110 bytes 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 48f5701a671..6b9632980e6 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -404,7 +404,8 @@ var/global/list/damage_icon_parts = list() var/icon/head_accessory_s = new/icon("icon" = head_accessory_style.icon, "icon_state" = "[head_accessory_style.icon_state]_s") if(head_accessory_style.do_colouration) head_accessory_s.Blend(rgb(r_headacc, g_headacc, b_headacc), ICON_ADD) - head_accessory_standing.Blend(head_accessory_s, ICON_OVERLAY) + head_accessory_standing = head_accessory_s //head_accessory_standing.Blend(head_accessory_s, ICON_OVERLAY) + //Having it this way preserves animations. Useful for animated antennae. else //warning("Invalid ha_style for [species.name]: [ha_style]") @@ -444,7 +445,8 @@ var/global/list/damage_icon_parts = list() else if(hair_style.do_colouration) hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD) - hair_standing.Blend(hair_s, ICON_OVERLAY) + hair_standing = hair_s //hair_standing.Blend(hair_s, ICON_OVERLAY) + //Having it this way preserves animations. Useful for IPC screens. else //warning("Invalid h_style for [species.name]: [h_style]") //hair_standing.Blend(debrained_s, ICON_OVERLAY)//how does i overlay for fish? diff --git a/icons/mob/body_accessory.dmi b/icons/mob/body_accessory.dmi index e98c077053b2a061ccee33283b638ce1c9278c8a..6c10bb002e87afce4b113e56fda5a7aa07a7d8a6 100644 GIT binary patch delta 562 zcmV-20?qxBX0~Rqp&`STzCUXJaz-G@mS zf7|n~?e^R5gZV#x`@P|Cc-yAz%{J&rRr<;GjeED*3oK76Y>#x7QS^WR;OaCtX zvk%^BtPi=5KZFqe_ka1%i~sEl9}gjf@WlW8e>Oh;w%c#J4{f!5{``mkD1U_TkHg=5 zY%x6a(-8jVV<9~B(`zAw|M1Q`5C6xmx8HUjCSm*`v_JpaZoln5nE%zZf22!b|LlWz zdY3O>?%la_CtSXKxp(Y*bE^&^gmCQq`J&u@(N{AH~+_N|40D{03cFzbF}hXq^A~{P_=mFZ|8N7Q;h7z4p#K z5C2wGooce}+1c3&dj$Zb;79@J{P_?6Q3&B5|7`#X;cq^+c>erPLkQtNyz|b(|FO~@ zPEgwbKsUGq1^{HIHyjR+^grIZb*uQsH@*?R{h$6-_}oAIo$&e3e?C0%#1p-0yH|hP zE`b3KKz@!KfVx5e0)YIu1O}6#FJF^T2qG5w??Mk>--7Ul&;S4c07*qoM6N<$g4gvy A7XSbN delta 530 zcmV+t0`2{_W|C&Gp&JUN*$IhQG%I!CO^3Q$zA%t+{cRn75|JVNze);ixO*gIm322|ZwY~po-~6w_kye0a zXJ@ya@Q1@;FN6@zpFdx`^GiMuKgcB7e4>_ z&xa?TctZP`wg2t^^smC_{^9RvKhyTx-v6|3{*T-Kkpd6^K+3!e43oh!Uz30WB7gJH zQUAyD=Rf?t@HZb@3=jSE+B@$&{99Fas>$|eXJ;$y6#$TeLkFPq=Rf>MA%uVYx8Wm% zzxmkW`SU*wA%y?%&N~nP$I5#+VeJC|>2nDT0LV^nI2<1Of4X(+R`HE*d?S4OKmDul zxqtXO;q#yWe0buCCwkR)um1L30uKX#{2VC&b%_830QqqV43oh!Uz30WA{X=D0lcPP U-!>WzRR91007*qoM6N<$f~Eg0l>h($ From dc7efbfc5321f68759be4d4aff62ff90f3003965 Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Fri, 22 Apr 2016 19:48:44 -0400 Subject: [PATCH 8/9] Fixes Xion alt. Head, Adjusts Morpheus and Xion alt. Head Optics The Xion alt. head faced east even when you were facing west. --- icons/mob/body_accessory.dmi | Bin 13110 -> 13093 bytes .../cyberlimbs/morpheus/morpheus_alt1.dmi | Bin 596 -> 517 bytes .../human_races/cyberlimbs/xion/xion_alt1.dmi | Bin 457 -> 485 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/body_accessory.dmi b/icons/mob/body_accessory.dmi index 6c10bb002e87afce4b113e56fda5a7aa07a7d8a6..c315fbbdc2fc1c3cffbdb6c347d148d32ce51b3a 100644 GIT binary patch literal 13093 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 z z@bZey_H*td%v5(jzhC3~dx!wSRodToAZ$H%`qvA=;c+T&G*0J}JlVNE-+Lv7-N@U$ z38DT_?oufp^J7PzvVO24RycPf>VzIEbo!YX?FFq#Q`?Wxqnl&DFG=#V6j7tBxRr{BZHPiRddCB5PoTE;+CDF+t}wl&d(BlNrS z7C>GJsuls%0WFNY?{C`F${R&s7GApuV?E@?qd^1&)hkEKtgkzn%(>V6{Ux*@jw^k7 zJO~G5^!K|CH>6|5dx2R=#z-Rs?-2E~Q5Ycwql#YCz=X}MFKrUv4#x&A zi^g<~P2$q)-^^|cA4==ucZ(-go6te_UV zMLlU=7qO)Ky#px zBLM|tr5Ul-{MEi)$t(Kh%HR3vX+j~Xe5N0{tn6C#P{s^_p5M~|Ag87VGtr*q9T1=u zKmSqcJ1AywO`w&DfO!EV4Zw?%>b!(SV_T3b78fX=OTSK;K6HcH)Z%_yTYy8MD`3VG zOe~uO5&6lB~p2Gj5{kLthW`LE5OZ5xa zZ>0GEYXe3YSO^CY78J2Y#ins}Jl=QvBD~{T5vt=5Pve;?Ca`OT_6tMh8+E>!3 zD2_IcVH2QJD+G8$pBp?(6}r1cDJ5z&X7KBA7BnI1SLZFj$)XUi_YP~c-83BpbUYYR zY(rdtZT@~$+JA3C^+=?&oWe8!)-n_`0P&8CS^9K$j1==7dl%mZL5-^#srTpyc?)e^ z`dS8J6a2VhUAvvfdxwVkE-GDAnvQt|TW;6F1s1;+M|)3d_wTegPd->vD#u(v6+<8n z#k3y~ebO?6!AckYB`NRU+fXf*b3kLdY&Lp(haUUYRWsEdTBh1APULO+;15VU_n#Td+(#ezO* z2}gj?z`;lNyyAlDR}f1yNPR6wZq%s|Y_q+h*VonoIvL_`}|ewXUB#J)aK0B%8jr!Z&7{@ZDV^%0A-(I%>`B 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 YV}=SpG$W-g00000NkvWtM6N<$f^jB{I{*Lx delta 405 zcmV;G0c!q*1k?nOBmsw!B`9ZjczCC$r!_S-X=!O#8PI-BGdU|?jXlMj#R2Pwcgnt1BNkl5Jc02wub})B&-fg421pv zzi%3t)5vWj!U3c%A753)YFmn<=)(j6&3G$r`5aI1w$BmbsFVh+6u!tKK&9JSA@_+8 zk0Achv|_d(z-h!tTSRuyAx@4?f=TM(De;c?7*h1)!@T)LB1c0m5{X2jw|}bJ^U+>6 zl+XHuVa~yPIOu2Icrk+UWICI>>3lYwjA2ypd1JDqEEmg_8?Tm&vP?2#_<~!0U0Lh= z|A4jC`rg17Y__|a^44iF1gd(s-FONt?(4(R7VaGs_IRlG=&t|s!0DV{_<~D*J_R3o zS0;aNxO!iC4;PJ)D*$G^{~m3xF_B0l`hNWa_pc8>);CVM00000NkvXXu0mjfl=rp@ diff --git a/icons/mob/human_races/cyberlimbs/xion/xion_alt1.dmi b/icons/mob/human_races/cyberlimbs/xion/xion_alt1.dmi index da0b50c8a6008dae7c6ac07cfd0ce6ebb0a2bb6c..9f5b8f3cd1516dea6a54e9142412e84e6775c263 100644 GIT binary patch delta 249 zcmV4#O}A1P!J*XpQYG>?RZ_j-edWfw;QjRkCET~i!FERhvOEtKL0)@ry({vChWI7Q zK&Q0YjjUHg0forK2;Y+H<^$0C#Lj!@o3;2m)<+FJZSj7RByvgeSJ0d@{PAB5kiCY& zr|}qY{R-YT>+>x#aKI3G&ki5gUq4vUz!^1V~59P7|WIsrfB#HO}(V_=bWirVS00000NkvXXu0mjf%g%bO delta 221 zcmV<303!e81IYuB^nbufL_t(oh3%Hh4g(WIP8AMaaJ7XQ9!NLJS-zG@51V7 z9Qz=-eu&Dn|L22k(uZ*8gV%S~w;i#i7*r4V$oC3v83Ct#4+v}}jG-R~01pU`<2VLC X(j^B}zfUbY00000NkvXXu0mjfn7w3y From 5b39f2fcc58bef79f1a3809b8696d91a1ff25e17 Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Tue, 26 Apr 2016 17:13:23 -0400 Subject: [PATCH 9/9] Adjusts the Zeng-hu Head Sprite --- .../cyberlimbs/zenghu/zenghu_main.dmi | Bin 1406 -> 1431 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi b/icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi index 85f49f50873bd000185a4a8565a72de35c226d3d..0d74250a3eab91faf6cbca8f31377ca6f87fa4dd 100644 GIT binary patch delta 1154 zcmV-|1bzGd3YQD8B>{h3Nkl?Rumj426Y&{dPLL_kXVo+Gl^PkU+sDOwZe= z{b3x-0Ypp)vn&7r0001BCQQZADY29|NVe0(tsP!f)}0lS>m<-QpQ^wA3b}I~n}q0Z zUVMBDn)RfnU$KlG--1ETSzxbHk%BH7YWXCvTfZ_22ASpQ`QLvsnCGWX*M50@>2#$Q zUf=#X@b)^S8~^|S0C*^vnOwmn&uDntPct%;%-+{_@n1^@s6005?>{54DW3t5he{K8~@ z;_))tt2F(oaoJ@&e{n5jxAJtSCciM1pBOK}xIBkLZmoZ~2h&P8f6{R3@(a^vbN-~^ z)a4hR^AnGwid(QQzwn%&xT7PrFimBC;VC~6fD+RK^d}M-?wp zsLL-r=O=$2$9bpbP=7^Leqka%@wkY0Z0cccp?Xr6Uzj;r$SoY}ajJ57HU4DPhr69d54HQ~Xb^2kKE~+{GuuB)6H~kO*0KoLDX65ZG zZ`TfO>&C7a-3)8jj@=^pcRIFK^cXzxkiN z-Q9ovmhXaO@8+J_II#?}=^fGj+C9H)+#18qwFQ^MLSYnT|G!`tAUX<=U+86m-7rpt z_&UY;K+5x*SK`n?WE z3Oq{iO@Y4-f%z6vATZ(ufjN6@!FZ2l1z3L{#;}p!C%=y&aTLkfy%TQ1y^6A#J3)ieu~9^}$Q zpdBH_a@hqm*rlnMG?i{g#Nkl-FBrQ428vj{r9vp@Bgj?+BFvi5-3>0>HfOf z3*)hDQH%-UEDHbt0001(2~)9kN>)m2q_xw**LC=*T5YV5Y$t)%y43mmQOL&U*d#=M z^Wfuq&}@;Ke$6uL_#X6fVu8I{MG7uaf0iSG-L5O6V31iJ9>0IK!8|^6I`-4^Q>P=f z@ci;+!^`uKb^rhX0N}1*Jh=iV&uDntUR zy+s1!P0Z&xn^S)va7hHNy2Y}@1Lbeg#LzGysaZ;&bepU+65}|5ZukJ)4DkXL+`o-* zk4X)W&}PWxMchRXHeRCo^J|Tl=mhz-CW>-!GlTRR000000GN{U*DT#HWH~D83zPMU z=gVlX*7T<)WS5Ejg}IR3+S8qy`odIwVmJg7@*ED?t>S+kOe^8yNyDkDFHG;v#gm3p zS6>*{C!Sjs_h4OpVO*bhprf=fO=W#yRG$by3Bi?MZ**}7?F3(f9jR&Z!0_D*6mu{7 zlQROMx1?gBh6Y4$Y4#kW=q+h>r!=>%2PO4|GlSeF00000000000P3mCAEvh|o}^G$ zUl`XXp4)%a&&B(P0GO`M+X1^0000000000v=M@GT+}Ya z>}*3Rdg1b%7e;o8k4m~jAe+c#&Kq5Yf!$*vvWe%dLoAn4m>R!BGdzQ5aBR^ZLht!|N0qvvDIQ^Lcq^ z*e=tAAm8|(d=rC>6A<(b{IYK2KI4*^&{VLy^H1gg{xQr>M_k=;4o3<+TkuVRe@=n< z9#SAM-~@p=d+5P%k7Wg{&W~Xuzfb-cL&AS3lCwK2+=9m`%8oK?u#a3tmE7u2aXv04 z36um#C*X1<0kS~;5|l3C%LxKjK_F+B1`%-(x|*v6ijR@2X%;9w$R$Uh9ihZ>IRrG= zC09&x<(i@JBB&XR}B9^8ycrcKgXTb!9udD0h*b2~^tcppC<0XW!vO?aGO|P v$ndclMA{6O{sRC20000000000;8*YuWY`xkkg+8$00000NkvXXu0mjf^llpO