diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 40dd8959564..5dd8178c3b5 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -82,6 +82,23 @@ if (!species.name == "Machine") return + if("wag") + if(species.bodyflags & TAIL_WAGGING) + if(!wear_suit || !(wear_suit.flags_inv & HIDETAIL) && !istype(wear_suit, /obj/item/clothing/suit/space)) + message = "[src] starts wagging \his tail." + src.start_tail_wagging(1) + else + return + else + return + + if("swag") + if(species.bodyflags & TAIL_WAGGING) + message = "[src] stops wagging \his tail." + src.stop_tail_wagging(1) + else + return + if ("airguitar") if (!src.restrained()) message = "[src] is strumming the air and headbanging like a safari chimp." diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 937c85bce8e..c565c3d7be5 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -1000,6 +1000,30 @@ proc/get_damage_icon_part(damage_state, body_part) update_icons() +/mob/living/carbon/human/proc/start_tail_wagging(var/update_icons=1) + overlays_standing[TAIL_LAYER] = null + + if(species.tail && species.bodyflags & HAS_TAIL) + var/icon/tailw_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]w_s") + tailw_s.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD) + + overlays_standing[TAIL_LAYER] = image(tailw_s) + + if(update_icons) + update_icons() + +/mob/living/carbon/human/proc/stop_tail_wagging(var/update_icons=1) + overlays_standing[TAIL_LAYER] = null + + if(species.tail && species.bodyflags & HAS_TAIL) + var/icon/tail_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[species.tail]_s") + tail_s.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD) + + overlays_standing[TAIL_LAYER] = image(tail_s) + + if(update_icons) + update_icons() + //Adds a collar overlay above the helmet layer if the suit has one // Suit needs an identically named sprite in icons/mob/collar.dmi /mob/living/carbon/human/proc/update_collar(var/update_icons=1) diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index 02587d04994..d19baa5caad 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -354,11 +354,15 @@ primitive = /mob/living/carbon/monkey/tajara flags = HAS_LIPS | HAS_UNDERWEAR | CAN_BE_FAT - bodyflags = FEET_PADDED | HAS_TAIL | HAS_SKIN_COLOR + bodyflags = FEET_PADDED | HAS_TAIL | HAS_SKIN_COLOR | TAIL_WAGGING flesh_color = "#AFA59E" base_color = "#333333" +/datum/species/tajaran/handle_death(var/mob/living/carbon/human/H) + + H.stop_tail_wagging(1) + /datum/species/skrell name = "Skrell" icobase = 'icons/mob/human_races/r_skrell.dmi' diff --git a/code/setup.dm b/code/setup.dm index 2d05f300323..9781a8db326 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -843,6 +843,7 @@ var/list/restricted_camera_networks = list( //Those networks can only be accesse #define HAS_TAIL 8 #define HAS_SKIN_TONE 16 #define HAS_SKIN_COLOR 32 +#define TAIL_WAGGING 64 //Language flags. #define WHITELISTED 1 // Language is available if the speaker is whitelisted. diff --git a/icons/effects/species.dmi b/icons/effects/species.dmi index d5405066ab9..a4562fd8d75 100644 Binary files a/icons/effects/species.dmi and b/icons/effects/species.dmi differ