From d199d4caf7939dfcf7c78331cd0b8f200919ee10 Mon Sep 17 00:00:00 2001 From: shazbot194 Date: Sun, 15 Oct 2017 14:56:14 -0800 Subject: [PATCH] Adds in the option to color all synth parts and two sets of parts As the titles says --- .../preference_setup/general/03_body.dm | 29 ++++++++++++++++++ code/modules/client/preferences.dm | 4 +++ .../mob/living/carbon/human/human_defines.dm | 6 ++++ code/modules/organs/organ_icon.dm | 2 ++ code/modules/organs/robolimbs.dm | 14 +++++++++ .../human_races/cyberlimbs/xion/xion_alt3.dmi | Bin 0 -> 3956 bytes .../human_races/cyberlimbs/xion/xion_alt4.dmi | Bin 0 -> 593 bytes 7 files changed, 55 insertions(+) create mode 100644 icons/mob/human_races/cyberlimbs/xion/xion_alt3.dmi create mode 100644 icons/mob/human_races/cyberlimbs/xion/xion_alt4.dmi diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index 089acf56f9..d03348665a 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -29,6 +29,10 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O S["organ_data"] >> pref.organ_data S["rlimb_data"] >> pref.rlimb_data S["body_markings"] >> pref.body_markings + S["synth_color"] >> pref.synth_color + S["synth_red"] >> pref.r_synth + S["synth_green"] >> pref.g_synth + S["synth_blue"] >> pref.b_synth pref.preview_icon = null /datum/category_item/player_setup_item/general/body/save_character(var/savefile/S) @@ -53,6 +57,10 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O S["organ_data"] << pref.organ_data S["rlimb_data"] << pref.rlimb_data S["body_markings"] << pref.body_markings + S["synth_color"] << pref.synth_color + S["synth_red"] << pref.r_synth + S["synth_green"] << pref.g_synth + S["synth_blue"] << pref.b_synth /datum/category_item/player_setup_item/general/body/sanitize_character(var/savefile/S) if(!pref.species || !(pref.species in playable_species)) @@ -101,6 +109,10 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O character.h_style = pref.h_style character.f_style = pref.f_style character.b_type = pref.b_type + character.synth_color = pref.synth_color + character.r_synth = pref.r_synth + character.g_synth = pref.g_synth + character.b_synth = pref.b_synth // Destroy/cyborgize organs and limbs. for(var/name in list(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM, BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_GROIN, BP_TORSO)) @@ -284,6 +296,11 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O . += "
__
" . += "
" + . += "
" + . += "Allow Synth color: [pref.synth_color ? "Yes" : "No"]
" + if(pref.synth_color) + . += "Change Color
__
" + . = jointext(.,null) /datum/category_item/player_setup_item/general/body/proc/has_flag(var/datum/species/mob_species, var/flag) @@ -665,6 +682,18 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O pref.equip_preview_mob ^= text2num(href_list["toggle_preview_value"]) return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["synth_color"]) + pref.synth_color = !pref.synth_color + return TOPIC_REFRESH_UPDATE_PREVIEW + + else if(href_list["synth2_color"]) + var/new_color = input(user, "Choose your character's synth colour: ", "Character Preference", rgb(pref.r_synth, pref.g_synth, pref.b_synth)) as color|null + if(new_color && CanUseTopic(user)) + pref.r_synth = hex2num(copytext(new_color, 2, 4)) + pref.g_synth = hex2num(copytext(new_color, 4, 6)) + pref.b_synth = hex2num(copytext(new_color, 6, 8)) + return TOPIC_REFRESH_UPDATE_PREVIEW + return ..() /datum/category_item/player_setup_item/general/body/proc/reset_limbs() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index d364332018..4709fb3e81 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -51,6 +51,10 @@ datum/preferences var/list/language_prefixes = list() //Kanguage prefix keys var/list/gear //Custom/fluff item loadout. var/list/traits //Traits which modifier characters for better or worse (mostly worse). + var/synth_color = 0 //Lets normally uncolorable synth parts be colorable. + var/r_synth //Used with synth_color to color synth parts that normaly can't be colored. + var/g_synth //Same as above + var/b_synth //Same as above //Some faction information. var/home_system = "Unset" //System of birth. diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index a4c5efb1fe..a09dad7dba 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -23,6 +23,12 @@ var/g_skin = 0 var/b_skin = 0 + //Synth colors + var/synth_color = 0 //Lets normally uncolorable synth parts be colorable. + var/r_synth //Used with synth_color to color synth parts that normaly can't be colored. + var/g_synth //Same as above + var/b_synth //Same as above + var/size_multiplier = 1 //multiplier for the mob's icon size var/damage_multiplier = 1 //multiplies melee combat damage var/icon_update = 1 //whether icon updating shall take place diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index 4e381d47ad..48759ae1cf 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -19,6 +19,8 @@ var/global/list/limb_icon_cache = list() if(robotic >= ORGAN_ROBOT) var/datum/robolimb/franchise = all_robolimbs[model] if(!(franchise && franchise.lifelike)) + if(human.synth_color) + s_col = list(human.r_synth, human.g_synth, human.b_synth) return if(species && human.species && species.name != human.species.name) return diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm index 55fe50db39..d06ea3332f 100644 --- a/code/modules/organs/robolimbs.dm +++ b/code/modules/organs/robolimbs.dm @@ -245,6 +245,20 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ green=xion_green;\ rgb=xion_rgb" +/datum/robolimb/xion_alt3 + company = "Xion - Whiteout" + desc = "This limb has a minimalist black and white casing." + icon = 'icons/mob/human_races/cyberlimbs/xion/xion_alt3.dmi' + unavailable_to_build = 1 + +/datum/robolimb/xion_alt4 + company = "Xion - Breach - Whiteout" + desc = "This limb has a minimalist black and white casing. Looks a bit menacing." + icon = 'icons/mob/human_races/cyberlimbs/xion/xion_alt4.dmi' + unavailable_to_build = 1 + parts = list(BP_HEAD) + + /datum/robolimb/xion_monitor company = "Xion Monitor" desc = "Xion Mfg.'s unique spin on a popular prosthetic head model. It looks and minimalist and utilitarian." diff --git a/icons/mob/human_races/cyberlimbs/xion/xion_alt3.dmi b/icons/mob/human_races/cyberlimbs/xion/xion_alt3.dmi new file mode 100644 index 0000000000000000000000000000000000000000..a5aef281619b23b8e8f5f24d0d336b3a324ce925 GIT binary patch literal 3956 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 VNm0qt74RDkm?Nx=Nf)j^{2TwKGq3;v literal 0 HcmV?d00001 diff --git a/icons/mob/human_races/cyberlimbs/xion/xion_alt4.dmi b/icons/mob/human_races/cyberlimbs/xion/xion_alt4.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e5fa42135beed1d0a186b813ccd3a98968d4c603 GIT binary patch literal 593 zcmV-X0PEJEZ zLnjOIiokWSQUCw|0d!JMQvg8b*k%9#0B?F!Sad{Xb7OL8aCB*JZU6vy zoKseCa&`CgQ*iP1GC)ttc@!6~s0~Q?C*i5es!zLsra9?i#!H)CBGs(2;+vi|=2j^F-fh^yHMXb2C zHn*l$oX+##pB3jS{gTCei6ytfrR8E4D5<~2RLomoE>hUOq#mBdK7J%