diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 3bad31a919..0401d6c558 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 38 +#define SAVEFILE_VERSION_MAX 39 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -669,6 +669,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car var/list/json_from_file = json_decode(file2text(char_vr_path)) if(json_from_file) belly_prefs = json_from_file["belly_prefs"] + //gear loadout var/text_to_load S["loadout"] >> text_to_load diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm index 6f7b955d8f..cf97e1670d 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm @@ -23,12 +23,13 @@ icon = 'modular_citadel/icons/mob/mam_taur.dmi' center = TRUE dimension_x = 64 - color_src = MATRIXED + color_src = "dual_color" //we apply some snowflake colouring because it's (sometimes) two parts, don't worry about it recommended_species = list("human", "lizard", "insect", "mammal", "xeno", "jelly", "slimeperson", "podweak") relevant_layers = list(BODY_ADJ_UPPER_LAYER, BODY_FRONT_LAYER) var/taur_mode = NONE //Must be a single specific tauric suit variation bitflag. Don't do FLAG_1|FLAG_2 var/alt_taur_mode = NONE //Same as above. var/hide_legs = USE_QUADRUPED_CLIP_MASK + var/taur_marking_state = NONE //does your taur have separately colorable markings, if so what's the state, leave as NONE if it doesnt have any /datum/sprite_accessory/taur/is_not_visible(var/mob/living/carbon/human/H, var/tauric) return (!tauric || (H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR))) @@ -49,65 +50,73 @@ relevant_layers = null hide_legs = FALSE -/datum/sprite_accessory/taur/canine - name = "Canine" - icon_state = "canine" +/datum/sprite_accessory/taur/wolf + name = "Wolf" + icon_state = "wolf" + taur_marking_state = "wolf_markings" taur_mode = STYLE_PAW_TAURIC - color_src = MUTCOLORS - extra = TRUE + +/datum/sprite_accessory/taur/wolf/synth + name = "Wolf (synth)" + icon_state = "synthwolf" + taur_marking_state = "synthwolf_markings" + +/datum/sprite_accessory/taur/wolf/fat + name = "Wolf (fat)" + icon_state = "fatwolf" + taur_marking_state = "fatwolf_markings" /datum/sprite_accessory/taur/cow name = "Cow" icon_state = "cow" taur_mode = STYLE_HOOF_TAURIC alt_taur_mode = STYLE_PAW_TAURIC - color_src = MUTCOLORS - -/datum/sprite_accessory/taur/cow/spotted - name = "Cow (Spotted)" - icon_state = "cow_spotted" - color_src = MATRIXED /datum/sprite_accessory/taur/deer name = "Deer" icon_state = "deer" + taur_marking_state = "deer_markings" taur_mode = STYLE_HOOF_TAURIC alt_taur_mode = STYLE_PAW_TAURIC - color_src = MUTCOLORS - extra = TRUE + +/datum/sprite_accessory/taur/lizard + name = "Lizard" + icon_state = "lizard" + taur_marking_state = "lizard_markings" + taur_mode = STYLE_PAW_TAURIC + +/datum/sprite_accessory/taur/lizard/synth + name = "Lizard (synth)" + icon_state = "synthlizard" + taur_marking_state = "synthlizard_markings" + taur_mode = STYLE_PAW_TAURIC /datum/sprite_accessory/taur/drake name = "Drake" icon_state = "drake" + taur_marking_state = "drake_markings" taur_mode = STYLE_PAW_TAURIC - color_src = MUTCOLORS - extra = TRUE -/datum/sprite_accessory/taur/drake/old - name = "Drake (Old)" - icon_state = "drake_old" - color_src = MATRIXED - extra = FALSE - -/datum/sprite_accessory/taur/drider - name = "Drider" - icon_state = "drider" - color_src = MUTCOLORS - extra = TRUE - -/datum/sprite_accessory/taur/eevee - name = "Eevee" - icon_state = "eevee" - taur_mode = STYLE_PAW_TAURIC - color_src = MUTCOLORS - extra = TRUE +/datum/sprite_accessory/taur/spider + name = "Spider" + icon_state = "spider_s" /datum/sprite_accessory/taur/feline name = "Feline" icon_state = "feline" + taur_marking_state = "feline_markings" taur_mode = STYLE_PAW_TAURIC - color_src = MUTCOLORS - extra = TRUE + +/datum/sprite_accessory/taur/feline/synth + name = "Feline (synth)" + icon_state = "synthfeline" + taur_marking_state = "synthfeline_markings" + taur_mode = STYLE_PAW_TAURIC + +/datum/sprite_accessory/taur/feline/fat + name = "Feline (fat)" + icon_state = "fatfeline" + taur_marking_state = "fatfeline_markings" /datum/sprite_accessory/taur/horse name = "Horse" @@ -115,28 +124,57 @@ taur_mode = STYLE_HOOF_TAURIC alt_taur_mode = STYLE_PAW_TAURIC +/datum/sprite_accessory/taur/horse/synth + name = "Horse (synth)" + icon_state = "synthhorse" + taur_marking_state = "synthhorse_markings" + taur_mode = STYLE_HOOF_TAURIC + alt_taur_mode = STYLE_PAW_TAURIC + /datum/sprite_accessory/taur/naga name = "Naga" icon_state = "naga" + icon_state = "naga_markings" taur_mode = STYLE_SNEK_TAURIC hide_legs = USE_SNEK_CLIP_MASK /datum/sprite_accessory/taur/otie name = "Otie" icon_state = "otie" + icon_state = "otie_markings" taur_mode = STYLE_PAW_TAURIC -/datum/sprite_accessory/taur/pede - name = "Scolipede" - icon_state = "pede" +/datum/sprite_accessory/taur/tempest + name = "Tempest" + icon_state = "tempest" taur_mode = STYLE_PAW_TAURIC - color_src = MUTCOLORS - extra = TRUE - extra2 = TRUE + +/datum/sprite_accessory/taur/skunk + name = "Skunk" + icon_state = "skunk" + icon_state = "skunk_markings" + taur_mode = STYLE_PAW_TAURIC + +/datum/sprite_accessory/taur/mermaid + name = "Mermaid" + icon_state = "mermaid" + taur_mode = STYLE_SNEK_TAURIC + hide_legs = USE_SNEK_CLIP_MASK /datum/sprite_accessory/taur/tentacle name = "Tentacle" icon_state = "tentacle" taur_mode = STYLE_SNEK_TAURIC - color_src = MUTCOLORS + hide_legs = USE_SNEK_CLIP_MASK + +/datum/sprite_accessory/taur/slug + name = "Slug" + icon_state = "slug" + taur_mode = STYLE_SNEK_TAURIC + hide_legs = USE_SNEK_CLIP_MASK + +/datum/sprite_accessory/taur/frog //frogs are closer to snakes than wolves, probably, listen i'm no biology major + name = "Frog" + icon_state = "frog" + taur_mode = STYLE_SNEK_TAURIC hide_legs = USE_SNEK_CLIP_MASK diff --git a/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm b/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm index 9addd15dca..39f32eea27 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm @@ -111,40 +111,3 @@ color_src = MATRIXED name = "Synthetic Lizard - Thick Light" icon_state = "synth_thicklight" - -//Synth Taurs (Ported from Virgo) -/datum/sprite_accessory/taur/synthliz - name = "Virgo - Synthetic Lizard" - icon_state = "synthlizard" - taur_mode = STYLE_PAW_TAURIC - recommended_species = list("synthliz") - -/datum/sprite_accessory/taur/synthliz/inv - name = "Virgo - Synthetic Lizard (Inverted)" - icon_state = "synthlizardinv" - -/datum/sprite_accessory/taur/synthliz/feline - name = "Virgo - Synthetic Feline" - icon_state = "synthfeline" - -/datum/sprite_accessory/taur/synthliz/feline/inv - name = "Virgo - Synthetic Feline (Inverted)" - icon_state = "synthfelineinv" - -/datum/sprite_accessory/taur/synthliz/horse - name = "Virgo - Synthetic Horse" - icon_state = "synthhorse" - taur_mode = STYLE_HOOF_TAURIC - alt_taur_mode = STYLE_PAW_TAURIC - -/datum/sprite_accessory/taur/synthliz/horse/inv - name = "Virgo - Synthetic Horse (Inverted)" - icon_state = "synthhorseinv" - -/datum/sprite_accessory/taur/synthliz/wolf - name = "Virgo - Synthetic Wolf" - icon_state = "synthwolf" - -/datum/sprite_accessory/taur/synthliz/wolf/inv - name = "Virgo - Synthetic Wolf (Inverted)" - icon_state = "synthwolfinv" diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 126d4401e0..8672ae6128 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -765,6 +765,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) for(var/bodypart in relevant_layers[layer]) var/datum/sprite_accessory/S = bodypart var/mutable_appearance/accessory_overlay = mutable_appearance(S.icon, layer = -layernum) + var/mutable_appearance/marking_overlay //incase a marking overlay is used bodypart = S.mutant_part_string || dna_feature_as_text_string[S] if(S.gender_specific) @@ -812,6 +813,17 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) accessory_overlay.color = "#[H.dna.features["horns_color"]]" if(WINGCOLOR) accessory_overlay.color = "#[H.dna.features["wings_color"]]" + if("dual_color") //if you see this its a mistake, replace it with a define + //if you get here it means you are colouring a main part, and a marking + //the main part + var/accessory_feature = "[bodypart]_color" + accessory_overlay.color = "#[H.dna.features[accessory_feature]]" + + //the marking + marking_overlay = mutable_appearance(S.icon, layer = -layernum) + marking_overlay.icon_state = "[S.name]_markings" + var/marking_feature = "[bodypart]_marking_color" + marking_overlay.color = "#[H.dna.features[marking_feature]]" else accessory_overlay.color = forced_colour else @@ -825,8 +837,13 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(OFFSET_MUTPARTS in H.dna.species.offset_features) accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1] accessory_overlay.pixel_y += H.dna.species.offset_features[OFFSET_MUTPARTS][2] + if(marking_overlay) + marking_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1] + marking_overlay.pixel_y += H.dna.species.offset_features[OFFSET_MUTPARTS][2] standing += accessory_overlay + if(marking_overlay) + standing += marking_overlay if(S.extra) //apply the extra overlay, if there is one var/mutable_appearance/extra_accessory_overlay = mutable_appearance(S.icon, layer = -layernum) diff --git a/modular_citadel/icons/mob/mam_taur.dmi b/modular_citadel/icons/mob/mam_taur.dmi index cf332019af..7d8f6769fe 100644 Binary files a/modular_citadel/icons/mob/mam_taur.dmi and b/modular_citadel/icons/mob/mam_taur.dmi differ