From 213a430084392d20e12b0e79e21fd8ad21e54780 Mon Sep 17 00:00:00 2001 From: lectronyx <78713019+lectronyx@users.noreply.github.com> Date: Sat, 22 Jun 2024 09:38:45 -0400 Subject: [PATCH 01/10] Removes Yeosa from Sinta language pool and Sinta from Yeosa language pool, asks facial markings for lizards to call on a third mutant color that will be added in this PR --- code/modules/language/language_holder.dm | 3 +-- code/modules/mob/dead/new_player/sprite_accessories/lizard.dm | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index 696dd28c89..b16ed9c1fb 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -270,8 +270,7 @@ Key procs understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), /datum/language/draconic = list(LANGUAGE_ATOM)) spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), - /datum/language/draconic = list(LANGUAGE_ATOM), - /datum/language/yeosa = list(LANGUAGE_ATOM)) + /datum/language/draconic = list(LANGUAGE_ATOM) /datum/language_holder/lizard/ash selected_language = /datum/language/draconic diff --git a/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm b/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm index 5b3c5d99f2..e9387fa8b8 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm @@ -82,7 +82,7 @@ /datum/sprite_accessory/face_markings icon = 'icons/mob/species/lizard/markings.dmi' body_zone = BODY_ZONE_HEAD - color_src = MUTCOLORS_SECONDARY + color_src = MUTCOLORS_FACIAL synthetic_icon_state = "none" /datum/sprite_accessory/face_markings/none From 2e24f8ea3e58c5d16c0a9910b8542e525810b630 Mon Sep 17 00:00:00 2001 From: lectronyx <78713019+lectronyx@users.noreply.github.com> Date: Sat, 22 Jun 2024 09:55:22 -0400 Subject: [PATCH 02/10] fixed language holders, adjusted yeosa stats --- code/modules/language/language_holder.dm | 2 +- .../living/carbon/human/species_types/lizardpeople.dm | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index b16ed9c1fb..eaa0812998 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -270,7 +270,7 @@ Key procs understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), /datum/language/draconic = list(LANGUAGE_ATOM)) spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), - /datum/language/draconic = list(LANGUAGE_ATOM) + /datum/language/draconic = list(LANGUAGE_ATOM)) /datum/language_holder/lizard/ash selected_language = /datum/language/draconic diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index f61092b7c2..2a228039e8 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -133,16 +133,16 @@ Lizard subspecies: YEOSA'UNATHI examine_limb_id = SPECIES_UNATHI inherent_traits = list(TRAIT_ALCOHOL_TOLERANCE) species_language_holder = /datum/language_holder/yeosa - coldmod = 2 + coldmod = 1.75 heatmod = 0.7 - burnmod = 1.25 + burnmod = 1.1 siemens_coeff = 1.25 - oxymod = 0.75 + oxymod = 0.2 grad_color="#fffec4" // Yeosa are more cold-blooded than Sinta, and thus should be less cozy in bad temps. - bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 10 // This puts lizards 10 above lavaland max heat for ash lizards. - bodytemp_cold_damage_limit = HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT - 5 + bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 15 // This puts lizards 10 above lavaland max heat for ash lizards. + bodytemp_cold_damage_limit = HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT - 7 loreblurb = "The Yeosa'Unathi are a cold-blooded reptilian species originating from the depths of the ocean on the planet Moghes, in the Uuoea-Esa system. Most Yeosa'Unathi will seldom step on the surface except to sunbathe - this can leave the impression of laziness and lethargy on those who interact with them. However, their culture largely mirrors that of the Sinta, and they are equally proud. " From 94ba09661808aacaa7b8392242f332cddbe37f81 Mon Sep 17 00:00:00 2001 From: lectronyx <78713019+lectronyx@users.noreply.github.com> Date: Sat, 22 Jun 2024 10:01:25 -0400 Subject: [PATCH 03/10] changes lizard blood and eyes a little --- .../mob/living/carbon/human/species_types/lizardpeople.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 2a228039e8..7bbba78fa3 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -20,7 +20,6 @@ miss_sound = 'sound/weapons/slashmiss.ogg' meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard skinned_type = /obj/item/stack/sheet/animalhide/lizard - exotic_bloodtype = "L" disliked_food = GRAIN | CLOTH | GROSS liked_food = GORE | MEAT deathsound = 'sound/voice/lizard/deathsound.ogg' @@ -28,8 +27,7 @@ species_language_holder = /datum/language_holder/lizard digitigrade_customization = DIGITIGRADE_OPTIONAL mutanteyes = /obj/item/organ/eyes/lizard - sclera_color = "#fffec4" - blush_color = COLOR_BLUSH_TEAL + sclera_color = "#ffffff" species_chest = /obj/item/bodypart/chest/lizard species_head = /obj/item/bodypart/head/lizard @@ -138,7 +136,10 @@ Lizard subspecies: YEOSA'UNATHI burnmod = 1.1 siemens_coeff = 1.25 oxymod = 0.2 + exotic_bloodtype = "L" + blush_color = COLOR_BLUSH_TEAL grad_color="#fffec4" + sclera_color="#fffec4" // Yeosa are more cold-blooded than Sinta, and thus should be less cozy in bad temps. bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 15 // This puts lizards 10 above lavaland max heat for ash lizards. From a6027cd374989d970cd71aae55b8b7d7715f3b10 Mon Sep 17 00:00:00 2001 From: Patrick Meade Date: Sun, 14 Jul 2024 07:38:30 -0500 Subject: [PATCH 04/10] Flexible coloring for all Unathi --- code/__HELPERS/mobs.dm | 14 + code/game/objects/structures/mirror.dm | 11 + code/modules/client/preferences.dm | 94 +++++- code/modules/client/preferences_savefile.dm | 45 +++ .../new_player/sprite_accessories/lizard.dm | 7 +- .../mob/living/carbon/human/species.dm | 38 +++ .../human/species_types/lizardpeople.dm | 6 +- .../starfly13/__DEFINES/unathi_colors.dm | 59 ++++ .../starfly13/__HELPERS/unathi_colors.dm | 84 ++++++ code/modules/surgery/bodyparts/bodyparts.dm | 5 + shiptest.dme | 279 +----------------- 11 files changed, 351 insertions(+), 291 deletions(-) create mode 100644 code/modules/starfly13/__DEFINES/unathi_colors.dm create mode 100644 code/modules/starfly13/__HELPERS/unathi_colors.dm diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 6a3028443d..b2aa98d0ce 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -128,6 +128,20 @@ "vox_head_quills" = pick(GLOB.vox_head_quills_list), "vox_neck_quills" = pick(GLOB.vox_neck_quills_list), "wings" = "None", + FEATURE_UNATHI_COLOR_BODY1 = random_unathi_color(), + FEATURE_UNATHI_COLOR_BODY2 = random_unathi_color(), + FEATURE_UNATHI_COLOR_BODY_MARKING1 = random_unathi_color(), + FEATURE_UNATHI_COLOR_BODY_MARKING2 = random_unathi_color(), + FEATURE_UNATHI_COLOR_FACE_MARKING1 = random_unathi_color(), + FEATURE_UNATHI_COLOR_FACE_MARKING2 = random_unathi_color(), + FEATURE_UNATHI_COLOR_FRILL1 = random_unathi_color(), + FEATURE_UNATHI_COLOR_FRILL2 = random_unathi_color(), + FEATURE_UNATHI_COLOR_HORN1 = random_unathi_color(), + FEATURE_UNATHI_COLOR_HORN2 = random_unathi_color(), + FEATURE_UNATHI_COLOR_SPINE1 = random_unathi_color(), + FEATURE_UNATHI_COLOR_SPINE2 = random_unathi_color(), + FEATURE_UNATHI_COLOR_TAIL1 = random_unathi_color(), + FEATURE_UNATHI_COLOR_TAIL2 = random_unathi_color(), ) /proc/random_hairstyle(gender) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index c07dbe92f9..2b3e03053d 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -194,6 +194,17 @@ else to_chat(H, "Invalid color. Your secondary color is not bright enough.") + if(UNATHI_COLORS in H.dna.species.species_traits) + choose_unathi_color(H, H.dna.features, FEATURE_UNATHI_COLOR_BODY1, H.dna.species.default_color) + choose_unathi_color(H, H.dna.features, FEATURE_UNATHI_COLOR_BODY_MARKING1, H.dna.species.default_color) + choose_unathi_color(H, H.dna.features, FEATURE_UNATHI_COLOR_FACE_MARKING1, H.dna.species.default_color) + choose_unathi_color(H, H.dna.features, FEATURE_UNATHI_COLOR_FRILL1, H.dna.species.default_color) + choose_unathi_color(H, H.dna.features, FEATURE_UNATHI_COLOR_FRILL2, H.dna.species.default_color) + choose_unathi_color(H, H.dna.features, FEATURE_UNATHI_COLOR_HORN1, H.dna.species.default_color) + choose_unathi_color(H, H.dna.features, FEATURE_UNATHI_COLOR_SPINE1, H.dna.species.default_color) + choose_unathi_color(H, H.dna.features, FEATURE_UNATHI_COLOR_TAIL1, H.dna.species.default_color) + choose_unathi_color(H, H.dna.features, FEATURE_UNATHI_COLOR_TAIL2, H.dna.species.default_color) + H.update_body() H.update_hair() H.update_body_parts(TRUE) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index b9a4fb8f0c..ce7beeef71 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -123,7 +123,21 @@ GLOBAL_LIST_EMPTY(preferences_datums) "elzu_horns" = "None", "elzu_tail" = "None", "flavor_text" = "", - "body_size" = "Normal" + "body_size" = "Normal", + FEATURE_UNATHI_COLOR_BODY1 = "FFF", + FEATURE_UNATHI_COLOR_BODY2 = "FFF", + FEATURE_UNATHI_COLOR_BODY_MARKING1 = "FFF", + FEATURE_UNATHI_COLOR_BODY_MARKING2 = "FFF", + FEATURE_UNATHI_COLOR_FACE_MARKING1 = "FFF", + FEATURE_UNATHI_COLOR_FACE_MARKING2 = "FFF", + FEATURE_UNATHI_COLOR_FRILL1 = "FFF", + FEATURE_UNATHI_COLOR_FRILL2 = "FFF", + FEATURE_UNATHI_COLOR_HORN1 = "FFF", + FEATURE_UNATHI_COLOR_HORN2 = "FFF", + FEATURE_UNATHI_COLOR_SPINE1 = "FFF", + FEATURE_UNATHI_COLOR_SPINE2 = "FFF", + FEATURE_UNATHI_COLOR_TAIL1 = "FFF", + FEATURE_UNATHI_COLOR_TAIL2 = "FFF", ) var/list/randomise = list( RANDOM_UNDERWEAR = TRUE, @@ -421,11 +435,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "[(randomise[RANDOM_SKIN_TONE]) ? "Lock" : "Unlock"]" dat += "
" - // Everyone gets mutant colors now. - dat += "

Mutant Colors

" + // Everyone except Unathi gets mutant colors now. + if(!UNATHI_COLORS in pref_species.species_traits) + dat += "

Mutant Colors

" - dat += "    Change
" - dat += "    Change
" + dat += "    Change
" + dat += "    Change
" if(istype(pref_species, /datum/species/elzuose)) //not the best thing to do tbf but I dont know whats better. @@ -433,6 +448,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "    Change
" + if(UNATHI_COLORS in pref_species.species_traits) + dat += "

Body Color

" + dat += "    Change
" + // the secondary body color is not used for now, but maybe some day... + // dat += "    Change
" if((EYECOLOR in pref_species.species_traits) && !(NOEYESPRITES in pref_species.species_traits)) @@ -485,6 +505,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

Tail

" dat += "[features["tail_lizard"]]
" + if(UNATHI_COLORS in pref_species.species_traits) + dat += "    Change
" + dat += "    Change
" mutant_category++ if(mutant_category >= MAX_MUTANT_ROWS) @@ -498,6 +521,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

Face Marking

" dat += "[features["face_markings"]]
" + if(UNATHI_COLORS in pref_species.species_traits) + dat += "    Change
" + // dat += "    Change
" mutant_category++ if(mutant_category >= MAX_MUTANT_ROWS) @@ -511,8 +537,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

Horns

" dat += "[features["horns"]]
" - dat += "    Change
" - dat += "[(randomise[RANDOM_HAIR_COLOR]) ? "Lock" : "Unlock"]
" + if(UNATHI_COLORS in pref_species.species_traits) + dat += "    Change
" + // dat += "    Change
" + else + dat += "    Change
" + dat += "[(randomise[RANDOM_HAIR_COLOR]) ? "Lock" : "Unlock"]
" mutant_category++ if(mutant_category >= MAX_MUTANT_ROWS) @@ -526,6 +556,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

Frills

" dat += "[features["frills"]]
" + if(UNATHI_COLORS in pref_species.species_traits) + dat += "    Change
" + dat += "    Change
" mutant_category++ if(mutant_category >= MAX_MUTANT_ROWS) @@ -539,6 +572,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

Spines

" dat += "[features["spines"]]
" + if(UNATHI_COLORS in pref_species.species_traits) + dat += "    Change
" + // dat += "    Change
" mutant_category++ if(mutant_category >= MAX_MUTANT_ROWS) @@ -552,6 +588,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

Body Markings

" dat += "[features["body_markings"]]
" + if(UNATHI_COLORS in pref_species.species_traits) + dat += "    Change
" + // dat += "    Change
" mutant_category++ if(mutant_category >= MAX_MUTANT_ROWS) @@ -1864,6 +1903,47 @@ GLOBAL_LIST_EMPTY(preferences_datums) else to_chat(user, "Invalid color. Your color is not bright enough.") + if(FEATURE_UNATHI_COLOR_BODY1) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_BODY1, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_BODY2) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_BODY2, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_BODY_MARKING1) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_BODY_MARKING1, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_BODY_MARKING2) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_BODY_MARKING2, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_FACE_MARKING1) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_FACE_MARKING1, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_FACE_MARKING2) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_FACE_MARKING2, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_FRILL1) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_FRILL1, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_FRILL2) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_FRILL2, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_HORN1) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_HORN1, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_HORN2) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_HORN2, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_SPINE1) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_SPINE1, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_SPINE2) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_SPINE2, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_TAIL1) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_TAIL1, pref_species.default_color) + + if(FEATURE_UNATHI_COLOR_TAIL2) + choose_unathi_color(user, features, FEATURE_UNATHI_COLOR_TAIL2, pref_species.default_color) if("tail_lizard") var/new_tail diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 3c3040f039..17a64288ec 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -445,6 +445,21 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car READ_FILE(S["feature_elzu_horns"], features["elzu_horns"]) READ_FILE(S["feature_tail_elzu"], features["tail_elzu"]) + READ_FILE(S[FEATURE_UNATHI_COLOR_BODY1], features[FEATURE_UNATHI_COLOR_BODY1]) + READ_FILE(S[FEATURE_UNATHI_COLOR_BODY2], features[FEATURE_UNATHI_COLOR_BODY2]) + READ_FILE(S[FEATURE_UNATHI_COLOR_BODY_MARKING1], features[FEATURE_UNATHI_COLOR_BODY_MARKING1]) + READ_FILE(S[FEATURE_UNATHI_COLOR_BODY_MARKING2], features[FEATURE_UNATHI_COLOR_BODY_MARKING2]) + READ_FILE(S[FEATURE_UNATHI_COLOR_FACE_MARKING1], features[FEATURE_UNATHI_COLOR_FACE_MARKING1]) + READ_FILE(S[FEATURE_UNATHI_COLOR_FACE_MARKING2], features[FEATURE_UNATHI_COLOR_FACE_MARKING2]) + READ_FILE(S[FEATURE_UNATHI_COLOR_FRILL1], features[FEATURE_UNATHI_COLOR_FRILL1]) + READ_FILE(S[FEATURE_UNATHI_COLOR_FRILL2], features[FEATURE_UNATHI_COLOR_FRILL2]) + READ_FILE(S[FEATURE_UNATHI_COLOR_HORN1], features[FEATURE_UNATHI_COLOR_HORN1]) + READ_FILE(S[FEATURE_UNATHI_COLOR_HORN2], features[FEATURE_UNATHI_COLOR_HORN2]) + READ_FILE(S[FEATURE_UNATHI_COLOR_SPINE1], features[FEATURE_UNATHI_COLOR_SPINE1]) + READ_FILE(S[FEATURE_UNATHI_COLOR_SPINE2], features[FEATURE_UNATHI_COLOR_SPINE2]) + READ_FILE(S[FEATURE_UNATHI_COLOR_TAIL1], features[FEATURE_UNATHI_COLOR_TAIL1]) + READ_FILE(S[FEATURE_UNATHI_COLOR_TAIL2], features[FEATURE_UNATHI_COLOR_TAIL2]) + READ_FILE(S["equipped_gear"], equipped_gear) if(config) //This should *probably* always be there, but just in case. if(length(equipped_gear) > CONFIG_GET(number/max_loadout_items)) @@ -558,6 +573,21 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["tail_elzu"] = sanitize_inlist(features["tail_elzu"], GLOB.tails_list_elzu) features["flavor_text"] = sanitize_text(features["flavor_text"], initial(features["flavor_text"])) + features[FEATURE_UNATHI_COLOR_BODY1] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_BODY1]) + features[FEATURE_UNATHI_COLOR_BODY2] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_BODY2]) + features[FEATURE_UNATHI_COLOR_BODY_MARKING1] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_BODY_MARKING1]) + features[FEATURE_UNATHI_COLOR_BODY_MARKING2] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_BODY_MARKING2]) + features[FEATURE_UNATHI_COLOR_FACE_MARKING1] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_FACE_MARKING1]) + features[FEATURE_UNATHI_COLOR_FACE_MARKING2] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_FACE_MARKING2]) + features[FEATURE_UNATHI_COLOR_FRILL1] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_FRILL1]) + features[FEATURE_UNATHI_COLOR_FRILL2] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_FRILL2]) + features[FEATURE_UNATHI_COLOR_HORN1] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_HORN1]) + features[FEATURE_UNATHI_COLOR_HORN2] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_HORN1]) + features[FEATURE_UNATHI_COLOR_SPINE1] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_SPINE1]) + features[FEATURE_UNATHI_COLOR_SPINE2] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_SPINE2]) + features[FEATURE_UNATHI_COLOR_TAIL1] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_TAIL1]) + features[FEATURE_UNATHI_COLOR_TAIL2] = sanitize_hexcolor(features[FEATURE_UNATHI_COLOR_TAIL2]) + all_quirks = SANITIZE_LIST(all_quirks) //Make sure all quirks are compatible @@ -639,6 +669,21 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["feature_tail_elzu"] , features["tail_elzu"]) WRITE_FILE(S["fbp"] , fbp) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_BODY1], features[FEATURE_UNATHI_COLOR_BODY1]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_BODY2], features[FEATURE_UNATHI_COLOR_BODY2]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_BODY_MARKING1], features[FEATURE_UNATHI_COLOR_BODY_MARKING1]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_BODY_MARKING2], features[FEATURE_UNATHI_COLOR_BODY_MARKING2]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_FACE_MARKING1], features[FEATURE_UNATHI_COLOR_FACE_MARKING1]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_FACE_MARKING2], features[FEATURE_UNATHI_COLOR_FACE_MARKING2]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_FRILL1], features[FEATURE_UNATHI_COLOR_FRILL1]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_FRILL2], features[FEATURE_UNATHI_COLOR_FRILL2]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_HORN1], features[FEATURE_UNATHI_COLOR_HORN1]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_HORN2], features[FEATURE_UNATHI_COLOR_HORN2]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_SPINE1], features[FEATURE_UNATHI_COLOR_SPINE1]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_SPINE2], features[FEATURE_UNATHI_COLOR_SPINE2]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_TAIL1], features[FEATURE_UNATHI_COLOR_TAIL1]) + WRITE_FILE(S[FEATURE_UNATHI_COLOR_TAIL2], features[FEATURE_UNATHI_COLOR_TAIL2]) + //Flavor text WRITE_FILE(S["feature_flavor_text"] , features["flavor_text"]) //Custom names diff --git a/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm b/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm index e9387fa8b8..dc7c7a847e 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/lizard.dm @@ -4,7 +4,7 @@ /datum/sprite_accessory/body_markings icon = 'icons/mob/species/lizard/markings.dmi' - color_src = MUTCOLORS_SECONDARY + color_src = UNATHI_COLORS body_zone = BODY_ZONE_CHEST synthetic_icon_state = "none" @@ -82,7 +82,7 @@ /datum/sprite_accessory/face_markings icon = 'icons/mob/species/lizard/markings.dmi' body_zone = BODY_ZONE_HEAD - color_src = MUTCOLORS_FACIAL + color_src = UNATHI_COLORS synthetic_icon_state = "none" /datum/sprite_accessory/face_markings/none @@ -113,9 +113,8 @@ /datum/sprite_accessory/horns icon = 'icons/mob/species/lizard/horns.dmi' - color_src = HAIR + color_src = UNATHI_COLORS body_zone = BODY_ZONE_HEAD - synthetic_color_src = MUTCOLORS_SECONDARY /datum/sprite_accessory/horns/none name = "None" diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index ecef37db7a..d1cd09b694 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1024,6 +1024,25 @@ GLOBAL_LIST_EMPTY(roundstart_races) accessory_overlay.color = "#[H.eye_color]" else accessory_overlay.color = forced_colour + + // unathi use special colors + if(UNATHI_COLORS in species_traits) + switch(bodypart) + if("body_markings") + accessory_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_BODY_MARKING1]]" + if("face_markings") + accessory_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_FACE_MARKING1]]" + if("frills") + accessory_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_FRILL1]]" + if("horns") + accessory_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_HORN1]]" + if("spines" || "waggingspines") + accessory_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_SPINE1]]" + if("tail" || "waggingtail") + accessory_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_TAIL1]]" + else + accessory_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_BODY1]]" + standing += accessory_overlay if(S.secondary_color) @@ -1036,6 +1055,25 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(S.center) secondary_color_overlay = center_image(secondary_color_overlay, S.dimension_x, S.dimension_y) secondary_color_overlay.color = "#[H.dna.features["mcolor2"]]" + + // unathi use special colors + if(UNATHI_COLORS in species_traits) + switch(bodypart) + if("body_markings") + secondary_color_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_BODY_MARKING2]]" + if("face_markings") + secondary_color_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_FACE_MARKING2]]" + if("frills") + secondary_color_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_FRILL2]]" + if("horns") + secondary_color_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_HORN2]]" + if("spines" || "waggingspines") + secondary_color_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_SPINE2]]" + if("tail" || "waggingtail") + secondary_color_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_TAIL2]]" + else + secondary_color_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_BODY2]]" + standing += secondary_color_overlay H.overlays_standing[layer] = standing.Copy() diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 7bbba78fa3..f11948c5f5 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -4,7 +4,7 @@ id = SPECIES_UNATHI default_color = "00FF00" species_age_max = 175 - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,SCLERA,EMOTE_OVERLAY,MUTCOLORS_SECONDARY) + species_traits = list(EYECOLOR,LIPS,SCLERA,EMOTE_OVERLAY,UNATHI_COLORS) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_REPTILE mutant_bodyparts = list("tail_lizard", "face_markings", "frills", "horns", "spines", "body_markings", "legs") mutanttongue = /obj/item/organ/tongue/lizard @@ -46,7 +46,7 @@ robotic_eyes = /obj/item/organ/eyes/robotic/lizard // Lizards are coldblooded and can stand a greater temperature range than humans - bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 20 // This puts lizards 10 above lavaland max heat for ash lizards. + bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 20 bodytemp_cold_damage_limit = HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT - 10 loreblurb = "The Sinta'Unathi are a cold-blooded reptilian species originating from the harsh mainland of the planet Moghes, in the Uuoea-Esa system. A warrior culture with emphasis on honor, family, and loyalty to one's clan, the divided Sinta'Unathi find themselves as powerful a force as any other species despite their less than hospitable homeworld." @@ -142,7 +142,7 @@ Lizard subspecies: YEOSA'UNATHI sclera_color="#fffec4" // Yeosa are more cold-blooded than Sinta, and thus should be less cozy in bad temps. - bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 15 // This puts lizards 10 above lavaland max heat for ash lizards. + bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 15 bodytemp_cold_damage_limit = HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT - 7 loreblurb = "The Yeosa'Unathi are a cold-blooded reptilian species originating from the depths of the ocean on the planet Moghes, in the Uuoea-Esa system. Most Yeosa'Unathi will seldom step on the surface except to sunbathe - this can leave the impression of laziness and lethargy on those who interact with them. However, their culture largely mirrors that of the Sinta, and they are equally proud. " diff --git a/code/modules/starfly13/__DEFINES/unathi_colors.dm b/code/modules/starfly13/__DEFINES/unathi_colors.dm new file mode 100644 index 0000000000..2ddbe7de26 --- /dev/null +++ b/code/modules/starfly13/__DEFINES/unathi_colors.dm @@ -0,0 +1,59 @@ +// unathi_colors.dm +// Copyright 2024 Patrick Meade. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . +//--------------------------------------------------------------------------- + +/// this species has the trait of having many beautiful exotic colors +/// see: https://www.google.com/search?q=exotic+colorful+lizards&sclient=img&udm=2 +/// see: `code/modules/mob/living/carbon/human/species.dm` +/// see: `code/modules/mob/living/carbon/human/species_types/lizardpeople.dm` +/// typically this is added to `species_traits` if you want exotic unathi coloring +#define UNATHI_COLORS 8000000 + +// features store per-character preferences for things like body shape, +// clothing, eye/hair/skin coloration, etc. +// see: `code/__HELPERS/mobs.dm` +// see: `code/modules/client/preferences.dm` +// see: `code/modules/client/preferences_savefile.dm` +// these are the names of the unathi color features + +/// feature name for unathi primary body color +#define FEATURE_UNATHI_COLOR_BODY1 "unathi_color_body1" +/// feature name for unathi secondary body color (unused) +#define FEATURE_UNATHI_COLOR_BODY2 "unathi_color_body2" +/// feature name for unathi primary body marking color +#define FEATURE_UNATHI_COLOR_BODY_MARKING1 "unathi_color_body_marking1" +/// feature name for unathi secondary body marking color (unused) +#define FEATURE_UNATHI_COLOR_BODY_MARKING2 "unathi_color_body_marking2" +/// feature name for unathi primary face marking color +#define FEATURE_UNATHI_COLOR_FACE_MARKING1 "unathi_color_face_marking1" +/// feature name for unathi secondary face marking color (unused) +#define FEATURE_UNATHI_COLOR_FACE_MARKING2 "unathi_color_face_marking2" +/// feature name for unathi primary frill color +#define FEATURE_UNATHI_COLOR_FRILL1 "unathi_color_frill1" +/// feature name for unathi secondary frill color +#define FEATURE_UNATHI_COLOR_FRILL2 "unathi_color_frill2" +/// feature name for unathi primary horn color +#define FEATURE_UNATHI_COLOR_HORN1 "unathi_color_horn1" +/// feature name for unathi secondary horn color (unused) +#define FEATURE_UNATHI_COLOR_HORN2 "unathi_color_horn2" +/// feature name for unathi primary spine color +#define FEATURE_UNATHI_COLOR_SPINE1 "unathi_color_spine1" +/// feature name for unathi secondary spine color (unused) +#define FEATURE_UNATHI_COLOR_SPINE2 "unathi_color_spine2" +/// feature name for unathi primary tail color +#define FEATURE_UNATHI_COLOR_TAIL1 "unathi_color_tail1" +/// feature name for unathi secondary tail color +#define FEATURE_UNATHI_COLOR_TAIL2 "unathi_color_tail2" diff --git a/code/modules/starfly13/__HELPERS/unathi_colors.dm b/code/modules/starfly13/__HELPERS/unathi_colors.dm new file mode 100644 index 0000000000..0bb48a28c1 --- /dev/null +++ b/code/modules/starfly13/__HELPERS/unathi_colors.dm @@ -0,0 +1,84 @@ +// unathi_colors.dm +// Copyright 2024 Patrick Meade. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . +//--------------------------------------------------------------------------- + +/proc/choose_unathi_color(mob/user, list/features, var/unathi_color, var/default_color) + // create an associative list to map color define to body part description + var/list/bodypart_list = list( + FEATURE_UNATHI_COLOR_BODY1 = "body", + FEATURE_UNATHI_COLOR_BODY2 = "body", + FEATURE_UNATHI_COLOR_BODY_MARKING1 = "body marking", + FEATURE_UNATHI_COLOR_BODY_MARKING2 = "body marking", + FEATURE_UNATHI_COLOR_FACE_MARKING1 = "face marking", + FEATURE_UNATHI_COLOR_FACE_MARKING2 = "face marking", + FEATURE_UNATHI_COLOR_FRILL1 = "frill", + FEATURE_UNATHI_COLOR_FRILL2 = "frill", + FEATURE_UNATHI_COLOR_HORN1 = "horn", + FEATURE_UNATHI_COLOR_HORN2 = "horn", + FEATURE_UNATHI_COLOR_SPINE1 = "spine", + FEATURE_UNATHI_COLOR_SPINE2 = "spine", + FEATURE_UNATHI_COLOR_TAIL1 = "tail", + FEATURE_UNATHI_COLOR_TAIL2 = "tail", + ) + // create an associative list to map color define to ordinal word + var/list/ordinal_list = list( + FEATURE_UNATHI_COLOR_BODY1 = "primary", + FEATURE_UNATHI_COLOR_BODY2 = "secondary", + FEATURE_UNATHI_COLOR_BODY_MARKING1 = "primary", + FEATURE_UNATHI_COLOR_BODY_MARKING2 = "secondary", + FEATURE_UNATHI_COLOR_FACE_MARKING1 = "primary", + FEATURE_UNATHI_COLOR_FACE_MARKING2 = "secondary", + FEATURE_UNATHI_COLOR_FRILL1 = "primary", + FEATURE_UNATHI_COLOR_FRILL2 = "secondary", + FEATURE_UNATHI_COLOR_HORN1 = "primary", + FEATURE_UNATHI_COLOR_HORN2 = "secondary", + FEATURE_UNATHI_COLOR_SPINE1 = "primary", + FEATURE_UNATHI_COLOR_SPINE2 = "secondary", + FEATURE_UNATHI_COLOR_TAIL1 = "primary", + FEATURE_UNATHI_COLOR_TAIL2 = "secondary", + ) + // choose the correct words to display to the user + var/bodypart = bodypart_list[unathi_color] + var/ordinal = ordinal_list[unathi_color] + // ask the user to choose a color + var/new_color = input(user, "Choose your Unathi's [ordinal] [bodypart] color:", "Character Preference","#" + features[unathi_color]) as color|null + if(new_color) + var/temp_hsv = RGBtoHSV(new_color) + if(new_color == "#000000") + features[unathi_color] = default_color + else if(ReadHSV(temp_hsv)[3] >= ReadHSV("#191919")[3]) + features[unathi_color] = sanitize_hexcolor(new_color) + else + to_chat(user, "Invalid color. Your color is not bright enough.") + return FALSE + // signal that everything went OK + return TRUE + + +/proc/random_unathi_color() + var/color_ok = FALSE + var/new_color = "000000" + + // until we've found an acceptably bright color + while(color_ok == FALSE) + // check a new color to see if it's bright enough + new_color = random_color() + var/temp_hsv = RGBtoHSV(new_color) + if(ReadHSV(temp_hsv)[3] >= ReadHSV("#191919")[3]) + color_ok = TRUE + + // return the unathi color to the caller + return new_color diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 92cb95a9c6..94da7fb26c 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -617,6 +617,11 @@ if(overlay_icon_state) species_secondary_color = H.dna.features["mcolor2"] + // unathi use special colors + if(UNATHI_COLORS in S.species_traits) + species_color = H.dna.features[FEATURE_UNATHI_COLOR_BODY1] + species_secondary_color = H.dna.features[FEATURE_UNATHI_COLOR_BODY2] + UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) if(NO_BONES in S.species_traits) bone_status = BONE_FLAG_NO_BONES diff --git a/shiptest.dme b/shiptest.dme index 490d7891cc..51eaa04818 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -6,283 +6,6 @@ // BEGIN_FILE_DIR #define FILE_DIR . -#define FILE_DIR "code" -#define FILE_DIR "code/modules" -#define FILE_DIR "code/modules/donator" -#define FILE_DIR "config" -#define FILE_DIR "config/title_music" -#define FILE_DIR "config/title_music/sounds" -#define FILE_DIR "html" -#define FILE_DIR "icons" -#define FILE_DIR "icons/ass" -#define FILE_DIR "icons/blanks" -#define FILE_DIR "icons/effects" -#define FILE_DIR "icons/effects/light_overlays" -#define FILE_DIR "icons/effects/mouse_pointers" -#define FILE_DIR "icons/hud" -#define FILE_DIR "icons/materials" -#define FILE_DIR "icons/mecha" -#define FILE_DIR "icons/misc" -#define FILE_DIR "icons/mob" -#define FILE_DIR "icons/mob/actions" -#define FILE_DIR "icons/mob/augmentation" -#define FILE_DIR "icons/mob/clothing" -#define FILE_DIR "icons/mob/clothing/faction" -#define FILE_DIR "icons/mob/clothing/faction/clip" -#define FILE_DIR "icons/mob/clothing/faction/frontiersmen" -#define FILE_DIR "icons/mob/clothing/faction/gezena" -#define FILE_DIR "icons/mob/clothing/faction/hardliners" -#define FILE_DIR "icons/mob/clothing/faction/nanotrasen" -#define FILE_DIR "icons/mob/clothing/faction/ngr" -#define FILE_DIR "icons/mob/clothing/faction/suns" -#define FILE_DIR "icons/mob/clothing/head" -#define FILE_DIR "icons/mob/clothing/species" -#define FILE_DIR "icons/mob/clothing/suits" -#define FILE_DIR "icons/mob/clothing/under" -#define FILE_DIR "icons/mob/clothing/underwear" -#define FILE_DIR "icons/mob/clothing/underwear/species" -#define FILE_DIR "icons/mob/clothing/underwear/species/kepori" -#define FILE_DIR "icons/mob/icemoon" -#define FILE_DIR "icons/mob/inhands" -#define FILE_DIR "icons/mob/inhands/antag" -#define FILE_DIR "icons/mob/inhands/clothing" -#define FILE_DIR "icons/mob/inhands/equipment" -#define FILE_DIR "icons/mob/inhands/faction" -#define FILE_DIR "icons/mob/inhands/faction/gezena" -#define FILE_DIR "icons/mob/inhands/faction/nanotrasen" -#define FILE_DIR "icons/mob/inhands/faction/suns" -#define FILE_DIR "icons/mob/inhands/misc" -#define FILE_DIR "icons/mob/inhands/weapons" -#define FILE_DIR "icons/mob/jungle" -#define FILE_DIR "icons/mob/large-worn-icons" -#define FILE_DIR "icons/mob/large-worn-icons/64x64" -#define FILE_DIR "icons/mob/lavaland" -#define FILE_DIR "icons/mob/species" -#define FILE_DIR "icons/mob/species/ethereal" -#define FILE_DIR "icons/mob/species/human" -#define FILE_DIR "icons/mob/species/humanoid_husk" -#define FILE_DIR "icons/mob/species/ipc" -#define FILE_DIR "icons/mob/species/kepori" -#define FILE_DIR "icons/mob/species/lizard" -#define FILE_DIR "icons/mob/species/misc" -#define FILE_DIR "icons/mob/species/moth" -#define FILE_DIR "icons/mob/species/plasmaman" -#define FILE_DIR "icons/mob/species/rachnid" -#define FILE_DIR "icons/mob/species/vox" -#define FILE_DIR "icons/obj" -#define FILE_DIR "icons/obj/assemblies" -#define FILE_DIR "icons/obj/atmospherics" -#define FILE_DIR "icons/obj/atmospherics/components" -#define FILE_DIR "icons/obj/atmospherics/pipes" -#define FILE_DIR "icons/obj/chemical" -#define FILE_DIR "icons/obj/clothing" -#define FILE_DIR "icons/obj/clothing/faction" -#define FILE_DIR "icons/obj/clothing/faction/clip" -#define FILE_DIR "icons/obj/clothing/faction/frontiersmen" -#define FILE_DIR "icons/obj/clothing/faction/gezena" -#define FILE_DIR "icons/obj/clothing/faction/hardliners" -#define FILE_DIR "icons/obj/clothing/faction/nanotrasen" -#define FILE_DIR "icons/obj/clothing/faction/ngr" -#define FILE_DIR "icons/obj/clothing/faction/suns" -#define FILE_DIR "icons/obj/clothing/head" -#define FILE_DIR "icons/obj/clothing/suits" -#define FILE_DIR "icons/obj/clothing/under" -#define FILE_DIR "icons/obj/doors" -#define FILE_DIR "icons/obj/doors/airlocks" -#define FILE_DIR "icons/obj/doors/airlocks/abductor" -#define FILE_DIR "icons/obj/doors/airlocks/centcom" -#define FILE_DIR "icons/obj/doors/airlocks/clockwork" -#define FILE_DIR "icons/obj/doors/airlocks/cult" -#define FILE_DIR "icons/obj/doors/airlocks/cult/runed" -#define FILE_DIR "icons/obj/doors/airlocks/cult/unruned" -#define FILE_DIR "icons/obj/doors/airlocks/external" -#define FILE_DIR "icons/obj/doors/airlocks/glass_large" -#define FILE_DIR "icons/obj/doors/airlocks/hatch" -#define FILE_DIR "icons/obj/doors/airlocks/highsec" -#define FILE_DIR "icons/obj/doors/airlocks/shuttle" -#define FILE_DIR "icons/obj/doors/airlocks/station" -#define FILE_DIR "icons/obj/doors/airlocks/station2" -#define FILE_DIR "icons/obj/doors/airlocks/survival" -#define FILE_DIR "icons/obj/doors/airlocks/vault" -#define FILE_DIR "icons/obj/doors/puzzledoor" -#define FILE_DIR "icons/obj/drinks" -#define FILE_DIR "icons/obj/flora" -#define FILE_DIR "icons/obj/food" -#define FILE_DIR "icons/obj/gang" -#define FILE_DIR "icons/obj/guns" -#define FILE_DIR "icons/obj/guns/faction" -#define FILE_DIR "icons/obj/guns/faction/gezena" -#define FILE_DIR "icons/obj/hydroponics" -#define FILE_DIR "icons/obj/ice_moon" -#define FILE_DIR "icons/obj/implants" -#define FILE_DIR "icons/obj/item" -#define FILE_DIR "icons/obj/lavaland" -#define FILE_DIR "icons/obj/machines" -#define FILE_DIR "icons/obj/plumbing" -#define FILE_DIR "icons/obj/power_cond" -#define FILE_DIR "icons/obj/smooth_structures" -#define FILE_DIR "icons/obj/smooth_structures/alien" -#define FILE_DIR "icons/obj/spacepods" -#define FILE_DIR "icons/obj/structures" -#define FILE_DIR "icons/obj/structures/chairs" -#define FILE_DIR "icons/obj/structures/signs" -#define FILE_DIR "icons/obj/tesla_engine" -#define FILE_DIR "icons/obj/world" -#define FILE_DIR "icons/pda_icons" -#define FILE_DIR "icons/program_icons" -#define FILE_DIR "icons/runtime" -#define FILE_DIR "icons/stamp_icons" -#define FILE_DIR "icons/Testing" -#define FILE_DIR "icons/turf" -#define FILE_DIR "icons/turf/connectors" -#define FILE_DIR "icons/turf/decals" -#define FILE_DIR "icons/turf/floors" -#define FILE_DIR "icons/turf/walls" -#define FILE_DIR "icons/turf/walls/rwalls" -#define FILE_DIR "icons/UI_Icons" -#define FILE_DIR "icons/UI_Icons/Achievements" -#define FILE_DIR "icons/UI_Icons/Achievements/Boss" -#define FILE_DIR "icons/UI_Icons/Achievements/Misc" -#define FILE_DIR "icons/UI_Icons/Achievements/Skills" -#define FILE_DIR "icons/UI_Icons/Arcade" -#define FILE_DIR "icons/UI_Icons/chat" -#define FILE_DIR "icons/UI_Icons/fishing" -#define FILE_DIR "icons/UI_Icons/Pills" -#define FILE_DIR "icons/UI_Icons/tgui" -#define FILE_DIR "icons/vending_icons" -#define FILE_DIR "sound" -#define FILE_DIR "sound/ai" -#define FILE_DIR "sound/ambience" -#define FILE_DIR "sound/ambience/antag" -#define FILE_DIR "sound/arcade" -#define FILE_DIR "sound/creatures" -#define FILE_DIR "sound/effects" -#define FILE_DIR "sound/effects/footstep" -#define FILE_DIR "sound/effects/thunder" -#define FILE_DIR "sound/effects/turbolift" -#define FILE_DIR "sound/hallucinations" -#define FILE_DIR "sound/health" -#define FILE_DIR "sound/hornetnoises" -#define FILE_DIR "sound/items" -#define FILE_DIR "sound/items/equip" -#define FILE_DIR "sound/items/geiger" -#define FILE_DIR "sound/items/handling" -#define FILE_DIR "sound/items/storage" -#define FILE_DIR "sound/lavaland" -#define FILE_DIR "sound/machines" -#define FILE_DIR "sound/machines/airlocks" -#define FILE_DIR "sound/machines/airlocks/external" -#define FILE_DIR "sound/machines/airlocks/hatch" -#define FILE_DIR "sound/machines/airlocks/shutters" -#define FILE_DIR "sound/machines/airlocks/standard" -#define FILE_DIR "sound/machines/apc" -#define FILE_DIR "sound/machines/clockcult" -#define FILE_DIR "sound/machines/computer" -#define FILE_DIR "sound/machines/fryer" -#define FILE_DIR "sound/machines/generator" -#define FILE_DIR "sound/machines/gravgen" -#define FILE_DIR "sound/machines/keyboard" -#define FILE_DIR "sound/machines/microwave" -#define FILE_DIR "sound/machines/nuke" -#define FILE_DIR "sound/machines/shower" -#define FILE_DIR "sound/machines/sm" -#define FILE_DIR "sound/machines/sm/accent" -#define FILE_DIR "sound/machines/sm/accent/delam" -#define FILE_DIR "sound/machines/sm/accent/normal" -#define FILE_DIR "sound/machines/sm/loops" -#define FILE_DIR "sound/machines/smes" -#define FILE_DIR "sound/machines/tcomms" -#define FILE_DIR "sound/machines/vending" -#define FILE_DIR "sound/magic" -#define FILE_DIR "sound/magic/clockwork" -#define FILE_DIR "sound/mecha" -#define FILE_DIR "sound/misc" -#define FILE_DIR "sound/roundend" -#define FILE_DIR "sound/roundstart" -#define FILE_DIR "sound/runtime" -#define FILE_DIR "sound/runtime/chatter" -#define FILE_DIR "sound/runtime/hyperspace" -#define FILE_DIR "sound/runtime/instruments" -#define FILE_DIR "sound/runtime/instruments/accordion" -#define FILE_DIR "sound/runtime/instruments/banjo" -#define FILE_DIR "sound/runtime/instruments/bikehorn" -#define FILE_DIR "sound/runtime/instruments/eguitar" -#define FILE_DIR "sound/runtime/instruments/glockenspiel" -#define FILE_DIR "sound/runtime/instruments/guitar" -#define FILE_DIR "sound/runtime/instruments/harmonica" -#define FILE_DIR "sound/runtime/instruments/piano" -#define FILE_DIR "sound/runtime/instruments/recorder" -#define FILE_DIR "sound/runtime/instruments/saxophone" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/brass" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/brass/crisis_brass" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/brass/crisis_trombone" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/brass/crisis_trumpet" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/chromatic" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/chromatic/sgmbox" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/guitar" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/guitar/crisis_clean" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/guitar/crisis_muted" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/guitar/crisis_steel" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/organ" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/organ/crisis_accordian" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/organ/crisis_church" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/organ/crisis_hammond" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/organ/crisis_harmonica" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/piano" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/piano/fluid_piano" -#define FILE_DIR "sound/runtime/instruments/synthesis_samples/tones" -#define FILE_DIR "sound/runtime/instruments/trombone" -#define FILE_DIR "sound/runtime/instruments/violin" -#define FILE_DIR "sound/runtime/instruments/xylophone" -#define FILE_DIR "sound/spookoween" -#define FILE_DIR "sound/surgery" -#define FILE_DIR "sound/vehicles" -#define FILE_DIR "sound/voice" -#define FILE_DIR "sound/voice/beepsky" -#define FILE_DIR "sound/voice/firebot" -#define FILE_DIR "sound/voice/human" -#define FILE_DIR "sound/voice/kepori" -#define FILE_DIR "sound/voice/lizard" -#define FILE_DIR "sound/voice/medbot" -#define FILE_DIR "sound/voice/moth" -#define FILE_DIR "sound/voice/squid" -#define FILE_DIR "sound/voice/vox" -#define FILE_DIR "sound/vox_fem" -#define FILE_DIR "sound/weapons" -#define FILE_DIR "sound/weapons/effects" -#define FILE_DIR "sound/weapons/gun" -#define FILE_DIR "sound/weapons/gun/commissar" -#define FILE_DIR "sound/weapons/gun/energy" -#define FILE_DIR "sound/weapons/gun/flamethrower" -#define FILE_DIR "sound/weapons/gun/gauss" -#define FILE_DIR "sound/weapons/gun/general" -#define FILE_DIR "sound/weapons/gun/hit" -#define FILE_DIR "sound/weapons/gun/hmg" -#define FILE_DIR "sound/weapons/gun/l6" -#define FILE_DIR "sound/weapons/gun/laser" -#define FILE_DIR "sound/weapons/gun/pistol" -#define FILE_DIR "sound/weapons/gun/revolver" -#define FILE_DIR "sound/weapons/gun/rifle" -#define FILE_DIR "sound/weapons/gun/shotgun" -#define FILE_DIR "sound/weapons/gun/smg" -#define FILE_DIR "sound/weapons/gun/sniper" -#define FILE_DIR "sound/weather" -#define FILE_DIR "sound/weather/ashstorm" -#define FILE_DIR "sound/weather/ashstorm/inside" -#define FILE_DIR "sound/weather/ashstorm/outside" -#define FILE_DIR "sound/weather/fallout" -#define FILE_DIR "sound/weather/wind" -#define FILE_DIR "tools" -#define FILE_DIR "tools/SS13SmoothingCutter" // END_FILE_DIR // BEGIN_PREFERENCES @@ -433,6 +156,7 @@ #include "code\__DEFINES\dcs\flags.dm" #include "code\__DEFINES\dcs\helpers.dm" #include "code\__DEFINES\dcs\signals.dm" +#include "code\modules\starfly13\__DEFINES\unathi_colors.dm" #include "code\__HELPERS\_auxtools_api.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_logging.dm" @@ -492,6 +216,7 @@ #include "code\__HELPERS\sorts\InsertSort.dm" #include "code\__HELPERS\sorts\MergeSort.dm" #include "code\__HELPERS\sorts\TimSort.dm" +#include "code\modules\starfly13\__HELPERS\unathi_colors.dm" #include "code\_globalvars\bitfields.dm" #include "code\_globalvars\configuration.dm" #include "code\_globalvars\game_modes.dm" From 632f8fde588e02896da558c767a6ca1ed0fd0fb1 Mon Sep 17 00:00:00 2001 From: Patrick Meade Date: Sun, 14 Jul 2024 08:01:45 -0500 Subject: [PATCH 05/10] Pacify CI checks --- _maps/_basemap.dm | 2 +- code/modules/jobs/access.dm | 7 ++++--- code/modules/mob/living/carbon/human/species.dm | 8 ++++---- code/modules/starfly13/__HELPERS/unathi_colors.dm | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/_maps/_basemap.dm b/_maps/_basemap.dm index b27db65d34..eab539d374 100644 --- a/_maps/_basemap.dm +++ b/_maps/_basemap.dm @@ -1,6 +1,6 @@ /// VERY IMPORTANT FOR RUNNING FAST IN PRODUCTION! /// If you define this flag, centcom will load. It's also supposed to preload planetoids, but that is disabled. -#define FULL_INIT +// #define FULL_INIT #ifdef FULL_INIT #include "map_files\generic\CentCom.dmm" diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index cdd44cab9a..45bc9a8a3e 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -114,9 +114,10 @@ if (gen_ship_access(ship)) return TRUE - var/obj/item/card/id/id = item?.GetID() - if (id?.has_ship_access(ship)) - return TRUE + if(istype(item, /obj/item/card/id)) + var/obj/item/card/id/id = item.GetID() + if (id.has_ship_access(ship)) + return TRUE return FALSE diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index d1cd09b694..7ff3961442 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1036,9 +1036,9 @@ GLOBAL_LIST_EMPTY(roundstart_races) accessory_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_FRILL1]]" if("horns") accessory_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_HORN1]]" - if("spines" || "waggingspines") + if("spines", "waggingspines") accessory_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_SPINE1]]" - if("tail" || "waggingtail") + if("tail", "waggingtail") accessory_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_TAIL1]]" else accessory_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_BODY1]]" @@ -1067,9 +1067,9 @@ GLOBAL_LIST_EMPTY(roundstart_races) secondary_color_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_FRILL2]]" if("horns") secondary_color_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_HORN2]]" - if("spines" || "waggingspines") + if("spines", "waggingspines") secondary_color_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_SPINE2]]" - if("tail" || "waggingtail") + if("tail", "waggingtail") secondary_color_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_TAIL2]]" else secondary_color_overlay.color = "#[H.dna.features[FEATURE_UNATHI_COLOR_BODY2]]" diff --git a/code/modules/starfly13/__HELPERS/unathi_colors.dm b/code/modules/starfly13/__HELPERS/unathi_colors.dm index 0bb48a28c1..01af1b7028 100644 --- a/code/modules/starfly13/__HELPERS/unathi_colors.dm +++ b/code/modules/starfly13/__HELPERS/unathi_colors.dm @@ -15,7 +15,7 @@ // along with this program. If not, see . //--------------------------------------------------------------------------- -/proc/choose_unathi_color(mob/user, list/features, var/unathi_color, var/default_color) +/proc/choose_unathi_color(mob/user, list/features, unathi_color, default_color) // create an associative list to map color define to body part description var/list/bodypart_list = list( FEATURE_UNATHI_COLOR_BODY1 = "body", From f479a87568dac683f365cc835912df0a47e7b2f2 Mon Sep 17 00:00:00 2001 From: Patrick Meade Date: Sun, 14 Jul 2024 08:35:23 -0500 Subject: [PATCH 06/10] Debugging CI check --- .github/workflows/ci_suite.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 47f8b1df99..5e153218c4 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -59,15 +59,25 @@ jobs: - name: Run Linters run: | + echo "tools/bootstrap/python -m tools.maplint.source --github" tools/bootstrap/python -m tools.maplint.source --github + echo "tools/build/build --ci lint tgui-test" tools/build/build --ci lint tgui-test + echo "bash tools/ci/check_filedirs.sh shiptest.dme" bash tools/ci/check_filedirs.sh shiptest.dme + echo "bash tools/ci/check_changelogs.sh" bash tools/ci/check_changelogs.sh + echo "bash tools/ci/check_misc.sh" bash tools/ci/check_misc.sh + echo "bash tools/ci/check_grep.sh" bash tools/ci/check_grep.sh + echo "tools/bootstrap/python -m dmi.test" tools/bootstrap/python -m dmi.test + echo "tools/bootstrap/python -m mapmerge2.dmm_test" tools/bootstrap/python -m mapmerge2.dmm_test + echo "~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1" ~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1 + echo "Done!" - name: Annotate Lints uses: yogstation13/DreamAnnotate@v2 From 4c932cc522b00fc239116e150f9d405ac03a7be0 Mon Sep 17 00:00:00 2001 From: Patrick Meade Date: Sun, 14 Jul 2024 08:58:25 -0500 Subject: [PATCH 07/10] New CI action to run Dreamchecker --- .github/workflows/qa_dreamchecker.yml | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/qa_dreamchecker.yml diff --git a/.github/workflows/qa_dreamchecker.yml b/.github/workflows/qa_dreamchecker.yml new file mode 100644 index 0000000000..87d37aa167 --- /dev/null +++ b/.github/workflows/qa_dreamchecker.yml @@ -0,0 +1,31 @@ +name: QA +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + run_dreamchecker: + name: Dreamchecker + runs-on: ubuntu-22.04 + steps: + - name: Checkout Project + uses: actions/checkout@v4 + + - name: Restore Dreamchecker Cache + id: cache-dreamchecker + uses: actions/cache@v3 + with: + path: ~/dreamchecker + key: ${{ runner.os }}-dreamchecker-cache-${{ hashFiles('dependencies.sh') }} + + - name: Build Dreamchecker + if: steps.cache-dreamchecker.outputs.cache-hit != 'true' + run: bash tools/ci/build_spaceman_dmm.sh dreamchecker + + - name: Run Dreamchecker + run: | + ~/dreamchecker From e3942df95b97e37f742d7d6ba6bbbe948f8ccdd7 Mon Sep 17 00:00:00 2001 From: Patrick Meade Date: Sun, 14 Jul 2024 09:03:42 -0500 Subject: [PATCH 08/10] Pacify CI check Run Linters --- .github/workflows/ci_suite.yml | 10 ---------- code/modules/client/preferences.dm | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 5e153218c4..47f8b1df99 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -59,25 +59,15 @@ jobs: - name: Run Linters run: | - echo "tools/bootstrap/python -m tools.maplint.source --github" tools/bootstrap/python -m tools.maplint.source --github - echo "tools/build/build --ci lint tgui-test" tools/build/build --ci lint tgui-test - echo "bash tools/ci/check_filedirs.sh shiptest.dme" bash tools/ci/check_filedirs.sh shiptest.dme - echo "bash tools/ci/check_changelogs.sh" bash tools/ci/check_changelogs.sh - echo "bash tools/ci/check_misc.sh" bash tools/ci/check_misc.sh - echo "bash tools/ci/check_grep.sh" bash tools/ci/check_grep.sh - echo "tools/bootstrap/python -m dmi.test" tools/bootstrap/python -m dmi.test - echo "tools/bootstrap/python -m mapmerge2.dmm_test" tools/bootstrap/python -m mapmerge2.dmm_test - echo "~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1" ~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1 - echo "Done!" - name: Annotate Lints uses: yogstation13/DreamAnnotate@v2 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index ce7beeef71..6e50fdd8d0 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -436,7 +436,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
" // Everyone except Unathi gets mutant colors now. - if(!UNATHI_COLORS in pref_species.species_traits) + if(!(UNATHI_COLORS in pref_species.species_traits)) dat += "

Mutant Colors

" dat += "    Change
" From d14d28b04a06d9a1612bddd1cc8f3d6ffffc91df Mon Sep 17 00:00:00 2001 From: Patrick Meade Date: Sun, 14 Jul 2024 09:11:19 -0500 Subject: [PATCH 09/10] Pacify CI check Run Linters --- .../starfly13/__DEFINES/unathi_colors.dm | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/code/modules/starfly13/__DEFINES/unathi_colors.dm b/code/modules/starfly13/__DEFINES/unathi_colors.dm index 2ddbe7de26..4b142ec277 100644 --- a/code/modules/starfly13/__DEFINES/unathi_colors.dm +++ b/code/modules/starfly13/__DEFINES/unathi_colors.dm @@ -30,30 +30,30 @@ // these are the names of the unathi color features /// feature name for unathi primary body color -#define FEATURE_UNATHI_COLOR_BODY1 "unathi_color_body1" +#define FEATURE_UNATHI_COLOR_BODY1 "unathi_color_body1" /// feature name for unathi secondary body color (unused) -#define FEATURE_UNATHI_COLOR_BODY2 "unathi_color_body2" +#define FEATURE_UNATHI_COLOR_BODY2 "unathi_color_body2" /// feature name for unathi primary body marking color -#define FEATURE_UNATHI_COLOR_BODY_MARKING1 "unathi_color_body_marking1" +#define FEATURE_UNATHI_COLOR_BODY_MARKING1 "unathi_color_body_marking1" /// feature name for unathi secondary body marking color (unused) -#define FEATURE_UNATHI_COLOR_BODY_MARKING2 "unathi_color_body_marking2" +#define FEATURE_UNATHI_COLOR_BODY_MARKING2 "unathi_color_body_marking2" /// feature name for unathi primary face marking color -#define FEATURE_UNATHI_COLOR_FACE_MARKING1 "unathi_color_face_marking1" +#define FEATURE_UNATHI_COLOR_FACE_MARKING1 "unathi_color_face_marking1" /// feature name for unathi secondary face marking color (unused) -#define FEATURE_UNATHI_COLOR_FACE_MARKING2 "unathi_color_face_marking2" +#define FEATURE_UNATHI_COLOR_FACE_MARKING2 "unathi_color_face_marking2" /// feature name for unathi primary frill color -#define FEATURE_UNATHI_COLOR_FRILL1 "unathi_color_frill1" +#define FEATURE_UNATHI_COLOR_FRILL1 "unathi_color_frill1" /// feature name for unathi secondary frill color -#define FEATURE_UNATHI_COLOR_FRILL2 "unathi_color_frill2" +#define FEATURE_UNATHI_COLOR_FRILL2 "unathi_color_frill2" /// feature name for unathi primary horn color -#define FEATURE_UNATHI_COLOR_HORN1 "unathi_color_horn1" +#define FEATURE_UNATHI_COLOR_HORN1 "unathi_color_horn1" /// feature name for unathi secondary horn color (unused) -#define FEATURE_UNATHI_COLOR_HORN2 "unathi_color_horn2" +#define FEATURE_UNATHI_COLOR_HORN2 "unathi_color_horn2" /// feature name for unathi primary spine color -#define FEATURE_UNATHI_COLOR_SPINE1 "unathi_color_spine1" +#define FEATURE_UNATHI_COLOR_SPINE1 "unathi_color_spine1" /// feature name for unathi secondary spine color (unused) -#define FEATURE_UNATHI_COLOR_SPINE2 "unathi_color_spine2" +#define FEATURE_UNATHI_COLOR_SPINE2 "unathi_color_spine2" /// feature name for unathi primary tail color -#define FEATURE_UNATHI_COLOR_TAIL1 "unathi_color_tail1" +#define FEATURE_UNATHI_COLOR_TAIL1 "unathi_color_tail1" /// feature name for unathi secondary tail color -#define FEATURE_UNATHI_COLOR_TAIL2 "unathi_color_tail2" +#define FEATURE_UNATHI_COLOR_TAIL2 "unathi_color_tail2" From 3c902f55ffe35e1edbcca1122a15f212c343e0e4 Mon Sep 17 00:00:00 2001 From: Patrick Meade Date: Sun, 14 Jul 2024 09:15:35 -0500 Subject: [PATCH 10/10] Pacify CI check Run Linters --- .../starfly13/__DEFINES/unathi_colors.dm | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/code/modules/starfly13/__DEFINES/unathi_colors.dm b/code/modules/starfly13/__DEFINES/unathi_colors.dm index 4b142ec277..9382655cf3 100644 --- a/code/modules/starfly13/__DEFINES/unathi_colors.dm +++ b/code/modules/starfly13/__DEFINES/unathi_colors.dm @@ -30,30 +30,30 @@ // these are the names of the unathi color features /// feature name for unathi primary body color -#define FEATURE_UNATHI_COLOR_BODY1 "unathi_color_body1" +#define FEATURE_UNATHI_COLOR_BODY1 "unathi_color_body1" /// feature name for unathi secondary body color (unused) -#define FEATURE_UNATHI_COLOR_BODY2 "unathi_color_body2" +#define FEATURE_UNATHI_COLOR_BODY2 "unathi_color_body2" /// feature name for unathi primary body marking color -#define FEATURE_UNATHI_COLOR_BODY_MARKING1 "unathi_color_body_marking1" +#define FEATURE_UNATHI_COLOR_BODY_MARKING1 "unathi_color_body_marking1" /// feature name for unathi secondary body marking color (unused) -#define FEATURE_UNATHI_COLOR_BODY_MARKING2 "unathi_color_body_marking2" +#define FEATURE_UNATHI_COLOR_BODY_MARKING2 "unathi_color_body_marking2" /// feature name for unathi primary face marking color -#define FEATURE_UNATHI_COLOR_FACE_MARKING1 "unathi_color_face_marking1" +#define FEATURE_UNATHI_COLOR_FACE_MARKING1 "unathi_color_face_marking1" /// feature name for unathi secondary face marking color (unused) -#define FEATURE_UNATHI_COLOR_FACE_MARKING2 "unathi_color_face_marking2" +#define FEATURE_UNATHI_COLOR_FACE_MARKING2 "unathi_color_face_marking2" /// feature name for unathi primary frill color -#define FEATURE_UNATHI_COLOR_FRILL1 "unathi_color_frill1" +#define FEATURE_UNATHI_COLOR_FRILL1 "unathi_color_frill1" /// feature name for unathi secondary frill color -#define FEATURE_UNATHI_COLOR_FRILL2 "unathi_color_frill2" +#define FEATURE_UNATHI_COLOR_FRILL2 "unathi_color_frill2" /// feature name for unathi primary horn color -#define FEATURE_UNATHI_COLOR_HORN1 "unathi_color_horn1" +#define FEATURE_UNATHI_COLOR_HORN1 "unathi_color_horn1" /// feature name for unathi secondary horn color (unused) -#define FEATURE_UNATHI_COLOR_HORN2 "unathi_color_horn2" +#define FEATURE_UNATHI_COLOR_HORN2 "unathi_color_horn2" /// feature name for unathi primary spine color -#define FEATURE_UNATHI_COLOR_SPINE1 "unathi_color_spine1" +#define FEATURE_UNATHI_COLOR_SPINE1 "unathi_color_spine1" /// feature name for unathi secondary spine color (unused) -#define FEATURE_UNATHI_COLOR_SPINE2 "unathi_color_spine2" +#define FEATURE_UNATHI_COLOR_SPINE2 "unathi_color_spine2" /// feature name for unathi primary tail color -#define FEATURE_UNATHI_COLOR_TAIL1 "unathi_color_tail1" +#define FEATURE_UNATHI_COLOR_TAIL1 "unathi_color_tail1" /// feature name for unathi secondary tail color -#define FEATURE_UNATHI_COLOR_TAIL2 "unathi_color_tail2" +#define FEATURE_UNATHI_COLOR_TAIL2 "unathi_color_tail2"