diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 4235f3e37e..e739e7ea86 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1274,24 +1274,45 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["taur"] = "None" if("tail_human") + var/list/snowflake_tails_list = list("Normal" = null) + for(var/path in GLOB.tails_list_human) + var/datum/sprite_accessory/tails/human/instance = GLOB.tails_list_human[path] + if(istype(instance, /datum/sprite_accessory)) + var/datum/sprite_accessory/S = instance + if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) + snowflake_tails_list[S.name] = path var/new_tail - new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.tails_list_human + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in snowflake_tails_list if(new_tail) features["tail_human"] = new_tail if(new_tail != "None") features["taur"] = "None" if("mam_tail") + var/list/snowflake_tails_list = list("Normal" = null) + for(var/path in GLOB.mam_tails_list) + var/datum/sprite_accessory/mam_tails/instance = GLOB.mam_tails_list[path] + if(istype(instance, /datum/sprite_accessory)) + var/datum/sprite_accessory/S = instance + if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) + snowflake_tails_list[S.name] = path var/new_tail - new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.mam_tails_list + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in snowflake_tails_list if(new_tail) features["mam_tail"] = new_tail if(new_tail != "None") features["taur"] = "None" if("taur") + var/list/snowflake_taur_list = list("Normal" = null) + for(var/path in GLOB.taur_list) + var/datum/sprite_accessory/taur/instance = GLOB.taur_list[path] + if(istype(instance, /datum/sprite_accessory)) + var/datum/sprite_accessory/S = instance + if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) + snowflake_taur_list[S.name] = path var/new_taur - new_taur = input(user, "Choose your character's tauric body:", "Character Preference") as null|anything in GLOB.taur_list + new_taur = input(user, "Choose your character's tauric body:", "Character Preference") as null|anything in snowflake_taur_list if(new_taur) features["taur"] = new_taur if(new_taur != "None") @@ -1305,8 +1326,15 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["snout"] = new_snout if("mam_ears") + var/list/snowflake_ears_list = list("Normal" = null) + for(var/path in GLOB.mam_ears_list) + var/datum/sprite_accessory/mam_ears/instance = GLOB.mam_ears_list[path] + if(istype(instance, /datum/sprite_accessory)) + var/datum/sprite_accessory/S = instance + if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) + snowflake_ears_list[S.name] = path var/new_ears - new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in GLOB.mam_ears_list + new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in snowflake_ears_list if(new_ears) features["mam_ears"] = new_ears @@ -1317,8 +1345,15 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["horns"] = new_horns if("ears") + var/list/snowflake_ears_list = list("Normal" = null) + for(var/path in GLOB.ears_list) + var/datum/sprite_accessory/ears/instance = GLOB.ears_list[path] + if(istype(instance, /datum/sprite_accessory)) + var/datum/sprite_accessory/S = instance + if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) + snowflake_ears_list[S.name] = path var/new_ears - new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in GLOB.ears_list + new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in snowflake_ears_list if(new_ears) features["ears"] = new_ears @@ -1353,8 +1388,15 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["body_markings"] = new_body_markings if("mam_body_markings") + var/list/snowflake_markings_list = list("Normal" = null) + for(var/path in GLOB.mam_body_markings_list) + var/datum/sprite_accessory/mam_body_markings/instance = GLOB.mam_body_markings_list[path] + if(istype(instance, /datum/sprite_accessory)) + var/datum/sprite_accessory/S = instance + if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) + snowflake_markings_list[S.name] = path var/new_mam_body_markings - new_mam_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in GLOB.mam_body_markings_list + new_mam_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in snowflake_markings_list if(new_mam_body_markings) features["mam_body_markings"] = new_mam_body_markings diff --git a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm index 9d1bc80094..d70116cc82 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm @@ -5,7 +5,7 @@ var/extra2 = FALSE var/extra2_icon = 'icons/mob/mam_bodyparts.dmi' var/extra2_color_src = MUTCOLORS3 -// var/list/ckeys_allowed = null + var/list/ckeys_allowed /* tbi eventually idk /datum/sprite_accessory/legs/digitigrade_mam @@ -97,6 +97,12 @@ extra = TRUE icon = 'icons/mob/mam_bodyparts.dmi' +//datum/sprite_accessory/ears/elf +// name = "Elf" +// icon_state = "elf" +// icon = 'icons/mob/mam_bodyparts.dmi' +// ckeys_allowed = list("atiefling") + /datum/sprite_accessory/ears/fennec name = "Fennec" icon_state = "fennec" @@ -950,34 +956,44 @@ /datum/sprite_accessory/mam_ears/guilmon name = "Guilmon" icon_state = "guilmon" - icon = 'icons/mob/mam_bodyparts.dmi' + +/datum/sprite_accessory/snout/guilmon + name = "Guilmon" + icon_state = "guilmon" /datum/sprite_accessory/mam_tails/shark/datashark name = "DataShark" icon_state = "datashark" color_src = 0 -// ckeys_allowed = list("rubyflamewing") + ckeys_allowed = list("rubyflamewing") /datum/sprite_accessory/mam_tails_animated/shark/datashark name = "DataShark" icon_state = "datashark" color_src = 0 -/* -//Till I get my snowflake only ckey lock, these are locked-locked :D +/datum/sprite_accessory/mam_body_markings/shark/datashark + name = "DataShark" + icon_state = "datashark" + color_src = MUTCOLORS2 + ckeys_allowed = list("rubyflamewing") + +//Sabresune /datum/sprite_accessory/mam_ears/sabresune name = "sabresune" icon_state = "sabresune" + hasinner = 1 extra = TRUE extra_color_src = MUTCOLORS3 - locked = TRUE + ckeys_allowed = list("poojawa") /datum/sprite_accessory/mam_tails/sabresune name = "sabresune" icon_state = "sabresune" extra = TRUE - locked = TRUE + ckeys_allowed = list("poojawa") + /datum/sprite_accessory/mam_tails_animated/sabresune name = "sabresune" @@ -990,5 +1006,5 @@ color_src = MUTCOLORS2 extra = FALSE extra2 = FALSE - locked = TRUE -*/ + ckeys_allowed = list("poojawa") + diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 9b23204d98..31be31160c 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -272,7 +272,7 @@ else if(check_zone(M.zone_selected) == "head") M.visible_message("[M] gives [src] a pat on the head to make [p_them()] feel better!", \ "You give [src] a pat on the head to make [p_them()] feel better!") - if(dna && dna.species && (("tail_lizard" in dna.species.mutant_bodyparts) || (dna.features["tail_human"] != "None") || ("mam_tail" in dna.species.mutant_bodyparts))) + if(dna && dna.species && ((("tail_lizard" || "tail_human" || "mam_tail") in dna.species.mutant_bodyparts && (dna.features["tail_lizard"] || dna.features["tail_human"] || dna.features["mam_tail"])!= "None"))) emote("wag") //lewd else M.visible_message("[M] hugs [src] to make [p_them()] feel better!", \ 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 2208c5a597..da56a69040 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -54,7 +54,7 @@ liked_food = MEAT disliked_food = TOXIC meat = /obj/item/reagent_containers/food/snacks/carpmeat/aquatic - + /datum/species/aquatic/spec_death(gibbed, mob/living/carbon/human/H) if(H) H.endTailWag() @@ -82,7 +82,6 @@ /datum/species/insect/qualifies_for_rank(rank, list/features) return TRUE -//HERBIVOROUS// //Alien// /datum/species/xeno @@ -159,89 +158,9 @@ description = "A highly corrosive substance, it is capable of burning through most natural or man-made materials in short order." color = "#66CC00" toxpwr = 0 - acidpwr = 12 + acidpwr = 12 */ -/datum/species/yautja - name = "Yautja" - id = "pred" - say_mod = "clicks" - eyes = "predeyes" - mutant_organs = list(/obj/item/organ/tongue/yautja) - specflags = list(EYECOLOR) - lang_spoken = YAUTJA - lang_understood = HUMAN|YAUTJA|ALIEN - no_equip = list(slot_head) - punchdamagelow = 4 - punchdamagehigh = 14 - punchstunthreshold = 13 - blacklisted = 1 - whitelist = 1 - whitelist = list("talkingcactus") - -/datum/outfit/yautja_basic - name = "Yautja, Basic" - uniform = /obj/item/clothing/under/mesh - suit = /obj/item/clothing/suit/armor/yautja_fake - shoes = /obj/item/clothing/shoes/yautja_fake - mask = /obj/item/clothing/mask/gas/yautja_fake - -/datum/species/yautja/before_equip_job(datum/job/J, mob/living/carbon/human/H, visualsOnly = FALSE) - var/datum/outfit/yautja_basic/O = new /datum/outfit/yautja_basic//Just basic gear. Doesn't include anything that gives any meaningful advantage. - H.equipOutfit(O, visualsOnly) - return 0 - -/datum/species/octopus - blacklisted = 1 -/datum/species/carp - blacklisted = 1 -/datum/species/horse - blacklisted = 1*/ - -/////////////////// -//DONATOR SPECIES// -/////////////////// - -//ChronoFlux: Slimecoon -/* -/datum/species/jelly/slime/slimecoon - name = "Slime Raccoon" - id = "slimecoon" - limbs_id = "slime" - whitelisted = 1 - whitelist = list("chronoflux") - blacklisted = 1 - mutant_bodyparts = list("slimecoontail", "slimecoonears", "slimecoonsnout") - default_features = list("slimecoontail" = "Slimecoon Tail", "slimecoonears" = "Slimecoon Ears", "slimecoonsnout" = "Slimecoon Snout")*/ - -// Fat Shark <3 -/* -/datum/species/shark/datashark - name = "DataShark" - id = "datashark" - default_color = "BCAC9B" - species_traits = list(MUTCOLORS_PARTSONLY,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC) - mutant_bodyparts = list("mam_tail", "mam_body_markings") - default_features = list("mam_tail" = "datashark", "mam_body_markings" = "None") - attack_verb = "bite" - attack_sound = 'sound/weapons/bite.ogg' - miss_sound = 'sound/weapons/slashmiss.ogg' - whitelisted = 1 - whitelist = list("rubyflamewing") - blacklisted = 0 - */ - -/datum/species/guilmon - name = "Guilmon" - id = "guilmon" - default_color = "4B4B4B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC) - mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings") - default_features = list("mcolor" = "FFF", "mcolor2" = "FFF", "mcolor3" = "FFF", "mam_tail" = "guilmon", "mam_ears" = "guilmon", "mam_body_markings" = "guilmon") - attack_verb = "claw" - attack_sound = 'sound/weapons/slash.ogg' - miss_sound = 'sound/weapons/slashmiss.ogg' - //##########SLIMEPEOPLE########## /datum/species/jelly/roundstartslime diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi index df7b5eda9e..529968d7f8 100644 Binary files a/icons/mob/human_parts_greyscale.dmi and b/icons/mob/human_parts_greyscale.dmi differ diff --git a/icons/mob/mam_body_markings.dmi b/icons/mob/mam_body_markings.dmi index be515b3459..d53fa87915 100644 Binary files a/icons/mob/mam_body_markings.dmi and b/icons/mob/mam_body_markings.dmi differ diff --git a/icons/mob/mam_bodyparts.dmi b/icons/mob/mam_bodyparts.dmi index 0511211b8d..66b3b18caf 100644 Binary files a/icons/mob/mam_bodyparts.dmi and b/icons/mob/mam_bodyparts.dmi differ diff --git a/icons/mob/mam_taur.dmi b/icons/mob/mam_taur.dmi index 8cce485c7a..8cd02f862e 100644 Binary files a/icons/mob/mam_taur.dmi and b/icons/mob/mam_taur.dmi differ