diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 17c6de65b8b..a80a9bb9ebd 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -16,10 +16,12 @@ //lizard bodyparts (blizzard intensifies) init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails, tails_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated, animated_tails_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, snouts_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, horns_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, frills_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, spines_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/spines_animated, animated_spines_list) //Species diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index ddf1e7f3809..c3bc1e7c1f8 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -21,10 +21,12 @@ var/global/list/socks_f = list() //stores only socks name //Lizard Bits (all datum lists indexed by name) var/global/list/body_markings_list = list() var/global/list/tails_list = list() +var/global/list/animated_tails_list = list() var/global/list/snouts_list = list() var/global/list/horns_list = list() var/global/list/frills_list = list() var/global/list/spines_list = list() +var/global/list/animated_spines_list = list() //Backpacks var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel") //Female Uniforms diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 1fda3b351f4..9a718fb01bc 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -355,7 +355,9 @@ return if("tail" in dna.species.mutant_bodyparts) dna.species.mutant_bodyparts -= "tail" + dna.species.mutant_bodyparts -= "spines" dna.species.mutant_bodyparts |= "waggingtail" + dna.species.mutant_bodyparts |= "waggingspines" update_body() @@ -364,5 +366,8 @@ return if("waggingtail" in dna.species.mutant_bodyparts) dna.species.mutant_bodyparts -= "waggingtail" + dna.species.mutant_bodyparts -= "waggingspines" dna.species.mutant_bodyparts |= "tail" + dna.species.mutant_bodyparts |= "spines" + update_body() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index e6722b607f2..76e7590ecb1 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -240,10 +240,23 @@ if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "tail" + + if("waggingtail" in mutant_bodyparts) + if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + bodyparts_to_add -= "waggingtail" + else if ("tail" in mutant_bodyparts) + bodyparts_to_add -= "waggingtail" + if("spines" in mutant_bodyparts) if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "spines" + if("waggingspines" in mutant_bodyparts) + if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) + bodyparts_to_add -= "waggingspines" + else if ("tail" in mutant_bodyparts) + bodyparts_to_add -= "waggingspines" + if("snout" in mutant_bodyparts) //Take a closer look at that snout! if(H.wear_mask && (H.wear_mask.flags_inv & HIDEFACE)) bodyparts_to_add -= "snout" @@ -269,8 +282,12 @@ switch(bodypart) if("tail") S = tails_list[H.dna.features["tail"]] + if("waggingtail") + S.= animated_tails_list[H.dna.features["tail"]] if("spines") S = spines_list[H.dna.features["spines"]] + if("waggingspines") + S.= animated_spines_list[H.dna.features["spines"]] if("snout") S = snouts_list[H.dna.features["snout"]] if("frills") diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 68d6f57c709..e28dcc3adab 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -91,7 +91,7 @@ if("body_markings") S = body_markings_list[features["body_markings"]] - if(S.icon_state == "none") + if(!S || S.icon_state == "none") continue var/icon_string if(S.gender_specific) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 84720b1e184..c28d4fd705c 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -1091,38 +1091,73 @@ /datum/sprite_accessory/tails icon = 'icons/mob/mutant_bodyparts.dmi' +/datum/sprite_accessory/tails_animated + icon = 'icons/mob/mutant_bodyparts.dmi' + /datum/sprite_accessory/tails/smooth name = "Smooth" icon_state = "smooth" +/datum/sprite_accessory/tails_animated/smooth + name = "Smooth" + icon_state = "smooth" + /datum/sprite_accessory/tails/light name = "Light" icon_state = "light" +/datum/sprite_accessory/tails_animated/light + name = "Light" + icon_state = "light" + /datum/sprite_accessory/tails/dstripe name = "Dark Stripe" icon_state = "dstripe" +/datum/sprite_accessory/tails_animated/dstripe + name = "Dark Stripe" + icon_state = "dstripe" + /datum/sprite_accessory/tails/lstripe name = "Light Stripe" icon_state = "lstripe" +/datum/sprite_accessory/tails_animated/lstripe + name = "Light Stripe" + icon_state = "lstripe" + /datum/sprite_accessory/tails/dtiger name = "Dark Tiger" icon_state = "dtiger" +/datum/sprite_accessory/tails_animated/dtiger + name = "Dark Tiger" + icon_state = "dtiger" + /datum/sprite_accessory/tails/ltiger name = "Light Tiger" icon_state = "ltiger" +/datum/sprite_accessory/tails_animated/ltiger + name = "Light Tiger" + icon_state = "ltiger" + /datum/sprite_accessory/tails/club name = "Club" icon_state = "club" +/datum/sprite_accessory/tails_animated/club + name = "Club" + icon_state = "club" + /datum/sprite_accessory/tails/aqua name = "Aquatic" icon_state = "aqua" +/datum/sprite_accessory/tails_animated/aqua + name = "Aquatic" + icon_state = "aqua" + /datum/sprite_accessory/snouts icon = 'icons/mob/mutant_bodyparts.dmi' @@ -1191,27 +1226,53 @@ /datum/sprite_accessory/spines icon = 'icons/mob/mutant_bodyparts.dmi' +/datum/sprite_accessory/spines_animated + icon = 'icons/mob/mutant_bodyparts.dmi' + /datum/sprite_accessory/spines/none name = "None" icon_state = "none" +/datum/sprite_accessory/spines_animated/none + name = "None" + icon_state = "none" + /datum/sprite_accessory/spines/short name = "Short" icon_state = "short" +/datum/sprite_accessory/spines_animated/short + name = "Short" + icon_state = "short" + /datum/sprite_accessory/spines/shortmeme name = "Short + Membrane" icon_state = "shortmeme" +/datum/sprite_accessory/spines_animated/shortmeme + name = "Short + Membrane" + icon_state = "shortmeme" + /datum/sprite_accessory/spines/long name = "Long" icon_state = "long" +/datum/sprite_accessory/spines_animated/long + name = "Long" + icon_state = "long" + /datum/sprite_accessory/spines/longmeme name = "Long + Membrane" icon_state = "longmeme" +/datum/sprite_accessory/spines_animated/longmeme + name = "Long + Membrane" + icon_state = "longmeme" + /datum/sprite_accessory/spines/aqautic name = "Aquatic" icon_state = "aqua" +/datum/sprite_accessory/spines_animated/aqautic + name = "Aquatic" + icon_state = "aqua" diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi index 16cd8e0dd2d..94acba1cbc5 100644 Binary files a/icons/mob/mutant_bodyparts.dmi and b/icons/mob/mutant_bodyparts.dmi differ