diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 28afe49ab45..76f2e554bc4 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 5745751e219..f5a9b74cb4b 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -999,6 +999,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 6512ee05247..b52db6e8f43 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -321,7 +321,7 @@ 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" diff --git a/code/setup.dm b/code/setup.dm index 4906f0e6bdf..932cd86e1bb 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -735,7 +735,7 @@ var/list/TAGGERLOCATIONS = list("Disposals", #define BE_CULTIST 256 #define BE_NINJA 512 #define BE_RAIDER 1024 -#define BE_VAMPIRE 2048 +#define BE_VAMPIRE 2048 #define BE_MUTINEER 4096 #define BE_BLOB 8192 @@ -807,7 +807,7 @@ var/list/restricted_camera_networks = list( //Those networks can only be accesse "NukeOps", "Thunderdome", "UO45", - "UO45R", + "UO45R", "Xeno" ) @@ -840,6 +840,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. 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