diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 7f8be90c62..cde26bd199 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -41,6 +41,7 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, mam_tails_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_ears, mam_ears_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails_animated, mam_tails_animated_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/taur, taur_list) //avian bodyparts (i swear this isn't starbound) // init_sprite_accessory_subtypes(/datum/sprite_accessory/beaks/avian, avian_beaks_list) // init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/avian, avian_tails_list) diff --git a/code/citadel/_helpers.dm b/code/citadel/_helpers.dm index 6b911c1aa6..3879c0ec50 100644 --- a/code/citadel/_helpers.dm +++ b/code/citadel/_helpers.dm @@ -36,6 +36,7 @@ var/global/list/mam_body_markings_list = list() var/global/list/mam_ears_list = list() var/global/list/mam_tails_list = list() var/global/list/mam_tails_animated_list = list() +var/global/list/taur_list = list() //Exotic Species var/global/list/exotic_tails_list = list() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index c10c0a617e..ae67f69c59 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -62,7 +62,7 @@ var/list/preferences_datums = list() var/eye_color = "000" //Eye color var/datum/species/pref_species = new /datum/species/human() //Mutant race var/list/features = list("mcolor" = "FFF", "mcolor2" = "FFF","mcolor3" = "FFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "mam_body_markings" = "None", "mam_ears" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", - "xenodorsal" = "None", "xenohead" = "None", "xenotail" = "None", "legs" = "Normal Legs") + "xenodorsal" = "None", "xenohead" = "None", "xenotail" = "None", "legs" = "Normal Legs", "taur" = "None") var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity") var/prefered_security_department = SEC_DEPT_RANDOM @@ -369,6 +369,15 @@ var/list/preferences_datums = list() dat += "" + if("taur" in pref_species.mutant_bodyparts) + dat += "" + + dat += "

Taur Body

" + + dat += "[features["taur"]]
" + + dat += "" + //Xeno Bodyparts if("xenohead" in pref_species.mutant_bodyparts) dat += "" @@ -1099,6 +1108,12 @@ var/list/preferences_datums = list() if(new_tail) features["mam_tail"] = new_tail + if("taur") + var/new_taur + new_taur = input(user, "Choose your character's tauric body:", "Character Preference") as null|anything in taur_list + if(new_taur) + features["taur"] = new_taur + /* Doesn't exist yet. will include facial overlays to mimic 5th port species heads. if("mam_snout") var/new_snout diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 5b389d6f64..bbb4358246 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -318,6 +318,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_mam_tail"] >> features["mam_tail"] S["feature_mam_ears"] >> features["mam_ears"] S["feature_mam_tail_animated"] >> features["mam_tail_animated"] + S["feature_taur"] >> features["taur"] //Xeno features S["feature_xeno_tail"] >> features["xenotail"] S["feature_xeno_dors"] >> features["xenodorsal"] @@ -400,6 +401,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["mam_body_markings"] = sanitize_inlist(features["mam_body_markings"], mam_body_markings_list) features["mam_ears"] = sanitize_inlist(features["mam_ears"], mam_ears_list) features["mam_tail"] = sanitize_inlist(features["mam_tail"], mam_tails_list) + features["taur"] = sanitize_inlist(features["taur"], taur_list) //Xeno features features["xenotail"] = sanitize_inlist(features["xenotail"], xeno_tail_list) features["xenohead"] = sanitize_inlist(features["xenohead"], xeno_head_list) @@ -465,6 +467,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_mam_tail"] << features["mam_tail"] S["feature_mam_ears"] << features["mam_ears"] S["feature_mam_tail_animated"] << features["mam_tail_animated"] + S["feature_taur"] << features["taur"] //Xeno features S["feature_xeno_tail"] << features["xenotail"] S["feature_xeno_dors"] << features["xenodorsal"] @@ -507,9 +510,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["default_slot"] << slot S.cd = "/character[slot]" - S["belly_prefs"] >> belly_prefs - S["devourable"] >> devourable - S["digestable"] >> digestable + S["belly_prefs"] >> belly_prefs + S["devourable"] >> devourable + S["digestable"] >> digestable digestable = sanitize_integer(digestable, 0, 1, initial(digestable)) devourable = sanitize_integer(devourable, 0, 1, initial(devourable)) @@ -525,9 +528,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(!S) return 0 S.cd = "/character[default_slot]" - S["belly_prefs"] << belly_prefs - S["devourable"] << devourable - S["digestable"] << digestable + S["belly_prefs"] << belly_prefs + S["devourable"] << devourable + S["digestable"] << digestable return 1 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ab58539a67..3d620a37dc 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -595,11 +595,11 @@ threatcount += 2 //Check for dresscode violations - if(istype(head, /obj/item/clothing/head/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/wizard)) - threatcount += 2 + if(istype(head, /obj/item/clothing/head/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/syndi) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi)) + threatcount += 5 //Check for nonhuman scum - if(dna && dna.species.id && dna.species.id != "human") + if(dna && dna.species.id && dna.species.id != "human" || "lizard" || "canine" || "felid" || "avian" || "shark" || "moth") threatcount += 1 //mindshield implants imply trustworthyness @@ -608,7 +608,7 @@ //Agent cards lower threatlevel. if(istype(idcard, /obj/item/weapon/card/id/syndicate)) - threatcount -= 5 + threatcount -= 2 return threatcount diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 1f869c02e5..6e18691730 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -303,22 +303,22 @@ var/obj/item/bodypart/head/HD = H.get_bodypart("head") if("tail_lizard" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) || !H.dna.features["taur"] == "None") bodyparts_to_add -= "tail_lizard" if("waggingtail_lizard" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) || !H.dna.features["taur"] == "None") bodyparts_to_add -= "waggingtail_lizard" else if ("tail_lizard" in mutant_bodyparts) bodyparts_to_add -= "waggingtail_lizard" if("tail_human" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) || !H.dna.features["taur"] == "None") bodyparts_to_add -= "tail_human" if("waggingtail_human" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) || !H.dna.features["taur"] == "None") bodyparts_to_add -= "waggingtail_human" else if ("tail_human" in mutant_bodyparts) bodyparts_to_add -= "waggingtail_human" @@ -373,11 +373,11 @@ //Other Races if("mam_tail" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) || !H.dna.features["taur"] == "None") bodyparts_to_add -= "mam_tail" if("mam_waggingtail" in mutant_bodyparts) - if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT || !H.dna.features["taur"] == "None")) bodyparts_to_add -= "mam_waggingtail" else if ("mam_tail" in mutant_bodyparts) bodyparts_to_add -= "mam_waggingtail" @@ -386,6 +386,10 @@ if(!H.dna.features["mam_ears"] || H.dna.features["mam_ears"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "mam_ears" + if("taur" in mutant_bodyparts) + if(!H.dna.features["taur"] || H.dna.features["taur"] == "None" || !H.dna.features["mam_tail"] == "None" || !H.dna.features["mam_waggingtail"] == "None") + bodyparts_to_add -= "taur" + //Digitigrade legs are stuck in the phantom zone between true limbs and mutant bodyparts. Mainly it just needs more agressive updating than most limbs. var/update_needed = FALSE @@ -462,6 +466,8 @@ S = mam_body_markings_list[H.dna.features["mam_body_markings"]] if("mam_ears") S = mam_ears_list[H.dna.features["mam_ears"]] + if("taur") + S = taur_list[H.dna.features["taur"]] //Xeno Bodyparts if("xenodorsal") diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index 7170f3127b..29d531f926 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -4,8 +4,8 @@ datum/species/canid default_color = "4B4B4B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) // subspecies = list("fox") - mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "snout", "legs") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "body_markings" = "None", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "None") + mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "snout", "legs", "taur") + default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "body_markings" = "None", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "None", "taur" = "None") attack_verb = "claw" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' @@ -22,8 +22,8 @@ datum/species/canid id = "felid" default_color = "BCAC9B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) - mutant_bodyparts = list("mam_body_markings", "mam_ears", "mam_tail", "snout", "legs") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_body_markings" = "Belly", "mam_ears" = "Big Cat", "mam_tail" = "Big Cat") + mutant_bodyparts = list("mam_body_markings", "mam_ears", "mam_tail", "snout", "legs", "taur") + default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_body_markings" = "Belly", "mam_ears" = "Big Cat", "mam_tail" = "Big Cat", "taur" = "None") attack_verb = "claw" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' @@ -52,8 +52,8 @@ datum/species/canid id = "avian" default_color = "BCAC9B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) - mutant_bodyparts = list("beak", "wings", "avian_tail") - default_features = list("beak" = "None", "wings" = "None") + mutant_bodyparts = list("beak", "wings", "avian_tail", "taur") + default_features = list("beak" = "None", "wings" = "None", "taur" = "None") attack_verb = "peck" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index dad291b51a..94778d2716 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -3,8 +3,8 @@ id = "human" default_color = "FFFFFF" species_traits = list(MUTCOLORS_PARTSONLY,EYECOLOR,HAIR,FACEHAIR,LIPS) - mutant_bodyparts = list("tail_human", "ears") - default_features = list("tail_human" = "None", "ears" = "None") + mutant_bodyparts = list("tail_human", "ears", "taur") + default_features = list("tail_human" = "None", "ears" = "None", "taur" = "none") use_skintones = 1 skinned_type = /obj/item/stack/sheet/animalhide/human 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 f55f5cade2..306a4136bb 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -5,9 +5,9 @@ say_mod = "hisses" default_color = "00FF00" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,FACEHAIR) - mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs") + mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs", "taur") mutant_organs = list(/obj/item/organ/tongue/lizard) - default_features = list("mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs") + default_features = list("mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "taur" = "None") attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' diff --git a/code/modules/mob/new_player/sprite_accessories_Citadel.dm b/code/modules/mob/new_player/sprite_accessories_Citadel.dm index f8998378af..a0614fd504 100644 --- a/code/modules/mob/new_player/sprite_accessories_Citadel.dm +++ b/code/modules/mob/new_player/sprite_accessories_Citadel.dm @@ -1,4 +1,4 @@ -/datum/sprite_accessories +/datum/sprite_accessory var/extra = 0 var/extra_icon = 'icons/mob/mam_bodyparts.dmi' var/extra_color_src = MUTCOLORS2 //The color source for the extra overlay. @@ -329,10 +329,16 @@ name = "Squirrel" icon_state = "squirrel" +// Wah + /datum/sprite_accessory/mam_tails/ailurus name = "Ailurus" icon_state = "ailurus" +/datum/sprite_accessory/mam_tails_animated/ailurus + name = "Ailurus" + icon_state = "ailurus" + /****************************************** ************ Body Markings **************** *******************************************/ @@ -349,18 +355,88 @@ name = "Belly" icon_state = "belly" gender_specific = 1 -/* + /datum/sprite_accessory/mam_body_markings/bellyhandsfeet name = "Belly, Hands, & Feet" icon_state = "bellyhandsfeet" gender_specific = 1 extra = 1 extra_color_src = MUTCOLORS3 -*/ + /****************************************** ************ Taur Bodies ****************** *******************************************/ +/datum/sprite_accessory/taur + icon = 'icons/mob/special/mam_taur.dmi' + extra_icon = 'icons/mob/special/mam_taur.dmi' + extra = 1 + extra_color_src = MUTCOLORS2 + center = TRUE + dimension_x = 64 + +/datum/sprite_accessory/taur/none + name = "None" + +/datum/sprite_accessory/taur/panther + name = "Panther" + icon_state = "panther" + hasinner = 1 + +/datum/sprite_accessory/taur/tajaran + name = "Tajaran" + icon_state = "tajaran" + +/datum/sprite_accessory/taur/horse + name = "Horse" + icon_state = "horse" + +/datum/sprite_accessory/taur/lab + name = "Lab" + icon_state = "lab" + +/datum/sprite_accessory/taur/shepard + name = "Shepard" + icon_state = "shepard" + hasinner = 1 + +/datum/sprite_accessory/taur/husky + name = "Husky" + icon_state = "husky" + +/datum/sprite_accessory/taur/cow + name = "Cow" + icon_state = "cow" + +/datum/sprite_accessory/taur/fox + name = "Fox" + icon_state = "fox" + +/datum/sprite_accessory/taur/wolf + name = "Wolf" + icon_state = "wolf" + +/datum/sprite_accessory/taur/naga + name = "Naga" + hasinner = 1 + icon_state = "naga" + +/datum/sprite_accessory/taur/otie + name = "Otie" + hasinner = 1 + icon_state = "otie" + +/datum/sprite_accessory/taur/drake + name = "Drake" + icon_state = "drake" + +/datum/sprite_accessory/taur/drider + name = "Drider" + icon_state = "drider" + +/****************************************** +*************** Ayyliums ****************** +*******************************************/ //Xeno Dorsal Tubes /datum/sprite_accessory/xeno_dorsal diff --git a/icons/mob/special/mam_taur.dmi b/icons/mob/special/mam_taur.dmi new file mode 100644 index 0000000000..95a7f85461 Binary files /dev/null and b/icons/mob/special/mam_taur.dmi differ diff --git a/tgstation.dme b/tgstation.dme index dadeb4be27..743dccf542 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1674,6 +1674,7 @@ #include "code\modules\mob\new_player\poll.dm" #include "code\modules\mob\new_player\preferences_setup.dm" #include "code\modules\mob\new_player\sprite_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories_Citadel.dm" #include "code\modules\modular_computers\laptop_vendor.dm" #include "code\modules\modular_computers\computers\item\computer.dm" #include "code\modules\modular_computers\computers\item\computer_components.dm"