diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm
index ac54d4d0121..d017b28664e 100644
--- a/code/modules/client/preference_setup/general/03_body.dm
+++ b/code/modules/client/preference_setup/general/03_body.dm
@@ -333,15 +333,13 @@ var/global/list/valid_bloodtypes = list(
out += "
Eyes
"
out += "Change Color [HTML_RECT(rgb(pref.r_eyes, pref.g_eyes, pref.b_eyes))]
"
- if(has_flag(mob_species, HAS_SKIN_COLOR) || has_flag(mob_species, HAS_SKIN_PRESET))
- if(has_flag(mob_species, HAS_SKIN_PRESET))
- out += "
Body Color Presets
"
- out += "Choose Preset
"
- else
- out += "
Body Color
"
- out += "Change Color [HTML_RECT(rgb(pref.r_skin, pref.g_skin, pref.b_skin))]
"
-
+ if(has_flag(mob_species, HAS_SKIN_COLOR))
+ out += "
Body Color
"
+ out += "Change Color [HTML_RECT(rgb(pref.r_skin, pref.g_skin, pref.b_skin))]
"
+ if(has_flag(mob_species, HAS_SKIN_PRESET))
+ out += "
Body Color Presets
"
+ out += "Choose Preset
"
out += "
Body Markings +
"
for(var/M in pref.body_markings)
@@ -618,9 +616,7 @@ var/global/list/valid_bloodtypes = list(
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["skin_color"])
- if(!has_flag(mob_species, HAS_SKIN_COLOR) && !has_flag(mob_species, HAS_SKIN_PRESET))
- return TOPIC_NOACTION
- if(has_flag(mob_species, HAS_SKIN_COLOR) && !has_flag(mob_species, HAS_SKIN_PRESET))
+ if(has_flag(mob_species, HAS_SKIN_COLOR))
var/new_skin = input(user, "Choose your character's skin colour.", "Character Preference", rgb(pref.r_skin, pref.g_skin, pref.b_skin)) as color|null
if(new_skin && has_flag(mob_species, HAS_SKIN_COLOR) && CanUseTopic(user))
pref.r_skin = GetRedPart(new_skin)
@@ -628,7 +624,8 @@ var/global/list/valid_bloodtypes = list(
pref.b_skin = GetBluePart(new_skin)
return TOPIC_REFRESH_UPDATE_PREVIEW
- else if(has_flag(mob_species, HAS_SKIN_PRESET))
+ else if(href_list["skin_preset"])
+ if(has_flag(mob_species, HAS_SKIN_PRESET))
var/new_preset = tgui_input_list(user, "Choose your character's body color preset.", "Character Preference", mob_species.character_color_presets, rgb(pref.r_skin, pref.g_skin, pref.b_skin))
new_preset = mob_species.character_color_presets[new_preset]
pref.r_skin = GetRedPart(new_preset)
diff --git a/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm b/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm
index 77396dd8d23..5993c8c0f03 100644
--- a/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm
+++ b/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm
@@ -76,7 +76,7 @@
heat_level_3 = 600 //Default 1000
flags = NO_SLIP | NO_CHUBBY | NO_ARTERIES | PHORON_IMMUNE | NO_COLD_SLOWDOWN
spawn_flags = CAN_JOIN | IS_WHITELISTED | NO_AGE_MINIMUM
- appearance_flags = HAS_SKIN_COLOR | HAS_HAIR_COLOR
+ appearance_flags = HAS_SKIN_COLOR | HAS_HAIR_COLOR | HAS_SKIN_PRESET
blood_color = COLOR_VAURCA_BLOOD // dark yellow
flesh_color = "#E6E600"
base_color = "#575757"
@@ -154,6 +154,25 @@
snore_key = "chitter"
indefinite_sleep = TRUE
+ character_color_presets = list(
+ "Zo'ra: Unbound Vaur" = "#3D0000", "Zo'ra: Bound Vaur" = "#290000",
+ "Zo'ra: Unbound Zoleth" = "#650015", "Zo'ra: Bound Zoleth" = "#6F1515",
+ "Zo'ra: Unbound Athvur" = "#83290B", "Zo'ra: Bound Athvur" = "#6F1500",
+ "Zo'ra: Unbound Scay" = "#47001F", "Zo'ra: Bound Scay" = "#470B33",
+ "Zo'ra: Unbound Xakt" = "#5B1F00", "Zo'ra: Bound Xakt" = "#511500",
+
+ "K'lax: Unbound Zkaii" = "#0B2B1B", "K'lax: Bound Zkaii" = "#335115",
+ "K'lax: Unbound Tupii" = "#299617", "K'lax: Bound Tupii" = "#74B72E",
+ "K'lax: Unbound Vedhra" = "#829614", "K'lax: Bound Vedhra" = "#14AA14",
+ "K'lax: Unbound Leto" = "#00503C", "K'lax: Bound Leto" = "#293B1A",
+ "K'lax: Unbound Vetju" = "#0B541F", "K'lax: Bound Vetju" = "#213F21",
+
+ "C'thur: Unbound C'thur" = "#002373", "C'thur: Bound C'thur" = "#00285A",
+ "C'thur: Unbound Vytel" = "#141437", "C'thur: Bound Vytel" = "#0A2337",
+ "C'thur: Unbound Mouv" = "#96B4FF", "C'thur: Bound Mouv" = "#5A96FF",
+ "C'thur: Unbound Xetl" = "#370078", "C'thur: Bound Xetl" = "#3C0F5F"
+ )
+
/datum/species/bug/before_equip(var/mob/living/carbon/human/H)
. = ..()
H.gender = NEUTER
diff --git a/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca_subspecies.dm b/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca_subspecies.dm
index ca4f075336a..3060c329806 100644
--- a/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca_subspecies.dm
+++ b/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca_subspecies.dm
@@ -47,7 +47,24 @@
valid_prosthetics = list(PROSTHETIC_VAURCA, PROSTHETIC_VAURCA_WARRIOR)
+ character_color_presets = list(
+ "Zo'ra: Unbound Vaur" = "#3D0000",
+ "Zo'ra: Unbound Zoleth" = "#650015",
+ "Zo'ra: Unbound Athvur" = "#83290B",
+ "Zo'ra: Unbound Scay" = "#47001F",
+ "Zo'ra: Unbound Xakt" = "#5B1F00",
+ "K'lax: Unbound Zkaii" = "#0B2B1B",
+ "K'lax: Unbound Tupii" = "#299617",
+ "K'lax: Unbound Vedhra" = "#829614",
+ "K'lax: Unbound Leto" = "#00503C",
+ "K'lax: Unbound Vetju" = "#0B541F",
+
+ "C'thur: Unbound C'thur" = "#002373",
+ "C'thur: Unbound Vytel" = "#141437",
+ "C'thur: Unbound Mouv" = "#96B4FF",
+ "C'thur: Unbound Xetl" = "#370078"
+ )
/datum/species/bug/type_c
name = SPECIES_VAURCA_BREEDER
@@ -144,6 +161,23 @@
possible_external_organs_modifications = list("Normal", "Amputated") //We don't have any limb modfications for this species
valid_prosthetics = null
+ character_color_presets = list(
+ "Zo'ra: Vaur" = "#3D000F",
+ "Zo'ra: Zoleth" = "#730015",
+ "Zo'ra: Athvur" = "#7A1F00",
+ "Zo'ra: Scay" = "#470029",
+ "Zo'ra: Xakt" = "#51230A",
+
+ "K'lax: Zkaii" = "#2B483A",
+ "K'lax: Tupii" = "#067C12",
+ "K'lax: Vedhra" = "#627308",
+ "K'lax: Leto" = "#1C6654",
+
+ "C'thur" = "#0F2962",
+ "C'thur: Vytel" = "#191937",
+ "C'thur: Mouv" = "#7D75FF"
+ )
+
/datum/species/bug/type_c/New()
..()
equip_adjust = list(
@@ -305,6 +339,25 @@ Bulwarks are much larger and have significantly thicker carapaces than most Vaur
possible_external_organs_modifications = list("Normal", "Amputated") //We don't have any limb modfications for this species, yet
valid_prosthetics = null
+ character_color_presets = list(
+ "Zo'ra: Unbound Vaur" = "#3D000F", "Zo'ra: Bound Vaur" = "#37000F",
+ "Zo'ra: Unbound Zoleth" = "#730015", "Zo'ra: Bound Zoleth" = "#610015",
+ "Zo'ra: Unbound Athvur" = "#7A1F00", "Zo'ra: Bound Athvur" = "#691B00",
+ "Zo'ra: Unbound Scay" = "#470029", "Zo'ra: Bound Scay" = "#470519",
+ "Zo'ra: Unbound Xakt" = "#51230A", "Zo'ra: Bound Xakt" = "#491D05",
+
+ "K'lax: Unbound Zkaii" = "#2B483A", "K'lax: Bound Zkaii" = "#263B10",
+ "K'lax: Unbound Tupii" = "#067C12", "K'lax: Bound Tupii" = "#7D881D",
+ "K'lax: Unbound Vedhra" = "#627308", "K'lax: Bound Vedhra" = "#006400",
+ "K'lax: Unbound Leto" = "#1C6654", "K'lax: Bound Leto" = "#1A280F",
+ "K'lax: Unbound Vetju" = "#0D421B", "K'lax: Bound Vetju" = "#314831",
+
+ "C'thur: Unbound C'thur" = "#0F2962", "C'thur: Bound C'thur" = "#0A213F",
+ "C'thur: Unbound Vytel" = "#191937", "C'thur: Bound Vytel" = "#0E0E2B",
+ "C'thur: Unbound Mouv" = "#7D75FF", "C'thur: Bound Mouv" = "#4A8AFC",
+ "C'thur: Unbound Xetl" = "#3F0876", "C'thur: Bound Xetl" = "#330563"
+ )
+
/datum/species/bug/type_e/New()
..()
equip_adjust = list(
diff --git a/html/changelogs/SimpleMaroon-vaurcaskinpresets.yml b/html/changelogs/SimpleMaroon-vaurcaskinpresets.yml
new file mode 100644
index 00000000000..0cdddb84e36
--- /dev/null
+++ b/html/changelogs/SimpleMaroon-vaurcaskinpresets.yml
@@ -0,0 +1,59 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: SimpleMaroon
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Added a list of skin color presets to every playable Vaurca subspecies, based on the bound and unbound colors of each brood."
+ - qol: "Made it so you can select a skin color and skin color presets at the same time on character setup."