diff --git a/code/__DEFINES/voreconstants.dm b/code/__DEFINES/voreconstants.dm index 01f866e5b3..cd4204514c 100644 --- a/code/__DEFINES/voreconstants.dm +++ b/code/__DEFINES/voreconstants.dm @@ -56,17 +56,7 @@ var/global/list/struggle_sounds = list( "Squish2" = 'sound/vore/squish2.ogg', "Squish3" = 'sound/vore/squish3.ogg', "Squish4" = 'sound/vore/squish4.ogg') -*/ - //Species listing -#define iscanine(A) (is_species(A, /datum/species/canine)) -#define isfeline(A) (is_species(A, /datum/species/feline)) -#define isavian(A) (is_species(A, /datum/species/avian)) -#define isrodent(A) (is_species(A, /datum/species/rodent)) -#define isherbivorous(A) (is_species(A, /datum/species/herbivorous)) -#define isexotic(A) (is_species(A, /datum/species/exotic)) - -/* /proc/log_debug(text) if (config.log_debug) diary << "\[[time_stamp()]]DEBUG: [text][log_end]" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 6008a094e4..dc4206122f 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1062,7 +1062,11 @@ var/list/preferences_datums = list() eye_color = sanitize_hexcolor(new_eyes) if("species") - +/* for(var/spath in subtypesof(/datum/species)) + var/datum/species/S = new spath() + var/list/wlist = S.whitelist + if(S.whitelisted && (wlist.Find(user.ckey) || wlist.Find(user.key) || user.client.holder)) //If your ckey is on the species whitelist or you're an admin:) + roundstart_species[S.id] = S */ var/result = input(user, "Select a species", "Species Selection") as null|anything in roundstart_species if(result) 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 f8d4f41414..6a04b4167c 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -1,9 +1,8 @@ -datum/species/canid - name = "Canid" - id = "canid" +datum/species/mammal + name = "Mammal" + id = "mammal" 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", "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" @@ -15,52 +14,6 @@ datum/species/canid if(H) H.endTailWag() -//FELID// - -/datum/species/felid - name = "Felid" - id = "felid" - default_color = "BCAC9B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) - 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" = "Tajaran", "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' - roundstart = 1 //no sprites yet - -/datum/species/tajaran/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - H.endTailWag() - -//Mammal// -/* // Not needed, as markings and tails work fine -/datum/species/ailurus - name = "Ailurus" - id = "ailurus" - default_color = "4B4B4B" - species_traits = list(EYECOLOR,LIPS,HAIR) - mutant_bodyparts = list("mam_tail") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF","mam_tail" = "ailurus") - attack_verb = "claw" - attack_sound = 'sound/weapons/slash.ogg' - miss_sound = 'sound/weapons/slashmiss.ogg' - roundstart = 1 -*/ -/datum/species/capra - name = "Capra" - id = "capra" - default_color = "4B4B4B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) - mutant_bodyparts = list("mam_tail") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF","mam_tail" = "capra") - attack_verb = "claw" - attack_sound = 'sound/weapons/slash.ogg' - miss_sound = 'sound/weapons/slashmiss.ogg' - roundstart = 1 - - - //AVIAN// /datum/species/avian @@ -68,52 +21,49 @@ datum/species/canid id = "avian" default_color = "BCAC9B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) - 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' - roundstart = 0 //no sprites yet - blacklisted = 1 - -/datum/species/avian - name = "Hawk" - id = "hawk" - default_color = "BCAC9B" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) - mutant_bodyparts = list("mam_tail", "mam_body_markings") - default_features = list("wings" = "hawk", "mam_body_markings" = "hawk") + mutant_bodyparts = list("snout", "wings", "taur", "mam_tail", "mam_body_markings") + default_features = list("snout" = "Sharp", "wings" = "None", "taur" = "None", "mam_body_markings" = "Hawk") attack_verb = "peck" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' roundstart = 1 +/datum/species/avian/spec_death(gibbed, mob/living/carbon/human/H) + if(H) + H.endTailWag() + //AQUATIC// -/datum/species/shark - name = "Shark" - id = "shark" +/datum/species/aquatic + name = "Aquatic" + id = "aquatic" default_color = "BCAC9B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) - mutant_bodyparts = list("mam_tail", "mam_body_markings") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF","mam_tail" = "shark", "mam_body_markings" = "None") + mutant_bodyparts = list("mam_tail", "mam_body_markings", "mam_ears") + default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF","mam_tail" = "shark", "mam_body_markings" = "None", "mam_ears" = "None") attack_verb = "bite" attack_sound = 'sound/weapons/bite.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' - roundstart = 1 //no sprites yet + roundstart = 1 +/datum/species/aquatic/spec_death(gibbed, mob/living/carbon/human/H) + if(H) + H.endTailWag() //INSECT// -/datum/species/moth - name = "Moth" - id = "moth" +/datum/species/insect + name = "Insect" + id = "insect" default_color = "BCAC9B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) - mutant_bodyparts = list("mam_body_markings") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_body_markings" = "moth") + mutant_bodyparts = list("mam_body_markings", "mam_ears", "mam_tail") + default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_body_markings" = "moth", "mam_tail" = "None", "mam_ears" = "None") attack_verb = "flutter" //wat? attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' - roundstart = 1 //no sprites yet + roundstart = 1 +/datum/species/insect/spec_death(gibbed, mob/living/carbon/human/H) + if(H) + H.endTailWag() //HERBIVOROUS// @@ -203,14 +153,14 @@ datum/species/canid /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*/ + return 0 /datum/species/octopus blacklisted = 1 /datum/species/carp blacklisted = 1 /datum/species/horse - blacklisted = 1 + blacklisted = 1*/ /////////////////// //DONATOR SPECIES// @@ -228,18 +178,19 @@ datum/species/canid 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(EYECOLOR,LIPS,HAIR) - mutant_bodyparts = list("mam_tail") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF","mam_tail" = "datashark") + species_traits = list(MUTCOLORS_PARTSONLY,EYECOLOR,LIPS,HAIR) + 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' - roundstart = 1 //no sprites yet +// roundstart = 1 whitelisted = 1 whitelist = list("rubyflamewing") blacklisted = 0 \ No newline at end of file diff --git a/code/modules/mob/new_player/sprite_accessories_Citadel.dm b/code/modules/mob/new_player/sprite_accessories_Citadel.dm index d4737f9979..97cc008f56 100644 --- a/code/modules/mob/new_player/sprite_accessories_Citadel.dm +++ b/code/modules/mob/new_player/sprite_accessories_Citadel.dm @@ -337,10 +337,52 @@ /datum/sprite_accessory/mam_tails/ailurus name = "Ailurus" icon_state = "ailurus" + extra = 1 + extra_color_src = MUTCOLORS2 /datum/sprite_accessory/mam_tails_animated/ailurus name = "Ailurus" icon_state = "ailurus" + extra = 1 + extra_color_src = MUTCOLORS2 + +// Hawk + +/datum/sprite_accessory/mam_tails/hawk + name = "Hawk" + icon_state = "hawk" + +/datum/sprite_accessory/mam_tails_animated/hawk + name = "Hawk" + icon_state = "hawk" + +//Otusian +/datum/sprite_accessory/mam_ears/otie + name = "Otusian" + icon_state = "otie" + hasinner= 1 + +/datum/sprite_accessory/mam_tails/otie + name = "Otusian" + icon_state = "otie" + +/datum/sprite_accessory/mam_tails_animated/otie + name = "Otusian" + icon_state = "otie" + +// G Shepherd +/datum/sprite_accessory/mam_tails/shepherd + name = "Shepherd" + icon_state = "shepherd" + extra = 1 + extra2 = 1 + +/datum/sprite_accessory/mam_tails_animated/shepherd + name = "Shepherd" + icon_state = "shepherd" + extra = 1 + extra2 = 1 + /****************************************** ************ Body Markings **************** @@ -350,7 +392,6 @@ extra = 1 extra2 = 1 icon = 'icons/mob/special/mam_body_markings.dmi' - gender_specific = 1 /datum/sprite_accessory/mam_body_markings/none name = "None" @@ -364,14 +405,13 @@ /datum/sprite_accessory/mam_body_markings/ailurus name = "Red Panda" icon_state = "ailurus" - color_src = MUTCOLORS2 - extra_color_src = MUTCOLORS3 + extra_color_src = MUTCOLORS2 + extra2_color_src = MUTCOLORS3 gender_specific = 1 /datum/sprite_accessory/mam_body_markings/fox name = "Fox" icon_state = "fox" - color_src = MUTCOLORS2 extra_color_src = MUTCOLORS3 gender_specific = 1 @@ -390,12 +430,12 @@ name = "Cow" icon_state = "cow" color_src = MUTCOLORS2 + extra_color_src = MUTCOLORS3 gender_specific = 1 /datum/sprite_accessory/mam_body_markings/fennec name = "Fennec" icon_state = "Fennec" - color_src = MUTCOLORS2 extra_color_src = MUTCOLORS3 gender_specific = 1 @@ -404,6 +444,11 @@ icon_state = "corvid" gender_specific = 1 +/datum/sprite_accessory/mam_body_markings/hawk + name = "Hawk" + icon_state = "hawk" + gender_specific = 1 + /datum/sprite_accessory/mam_body_markings/tiger name = "Tiger Stripes" color_src = MUTCOLORS3 diff --git a/icons/mob/human_parts.dmi b/icons/mob/human_parts.dmi index 8ebc050f6c..fcb79cd3f8 100644 Binary files a/icons/mob/human_parts.dmi and b/icons/mob/human_parts.dmi differ diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi index f0352cbcac..105def8775 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_bodyparts.dmi b/icons/mob/mam_bodyparts.dmi index 9bef6bb272..e390b5cc41 100644 Binary files a/icons/mob/mam_bodyparts.dmi and b/icons/mob/mam_bodyparts.dmi differ diff --git a/icons/mob/special/furry_parts_greyscale.dmi b/icons/mob/special/furry_parts_greyscale.dmi index de69a8335d..c8d5ceb0a6 100644 Binary files a/icons/mob/special/furry_parts_greyscale.dmi and b/icons/mob/special/furry_parts_greyscale.dmi differ diff --git a/icons/mob/special/mam_body_markings.dmi b/icons/mob/special/mam_body_markings.dmi index 992d6105c7..b3a26ec991 100644 Binary files a/icons/mob/special/mam_body_markings.dmi and b/icons/mob/special/mam_body_markings.dmi differ diff --git a/icons/mob/special/mam_taur.dmi b/icons/mob/special/mam_taur.dmi index 496fa55ff7..fae756e188 100644 Binary files a/icons/mob/special/mam_taur.dmi and b/icons/mob/special/mam_taur.dmi differ