diff --git a/code/modules/mob/living/carbon/human/emote_vr.dm b/code/modules/mob/living/carbon/human/emote_vr.dm index 9ba2ca4ad5..b98d28285b 100644 --- a/code/modules/mob/living/carbon/human/emote_vr.dm +++ b/code/modules/mob/living/carbon/human/emote_vr.dm @@ -70,3 +70,26 @@ nutrition_hidden = !nutrition_hidden to_chat(src, "Players will [nutrition_hidden ? "no longer" : "now"] see your nutrition levels.") // Chomp Edit End + +/mob/living/carbon/human/verb/hide_tail_vr() + set name = "Show/Hide tail" + set category = "IC" + set desc = "Hide your tail, or show it if you already hid it." + if(!tail_style) //Just some checks. + to_chat(src,"You have no tail to hide!") + return + else //They got a tail. Let's make sure it ain't hiding stuff! + var/datum/sprite_accessory/tail/current_tail = tail_style + if((current_tail.hide_body_parts && current_tail.hide_body_parts.len) || current_tail.clip_mask_state || current_tail.clip_mask) + to_chat(src,"Your current tail is too considerable to hide!") + return + if(species.tail) //If they're using this verb, they already have a custom tail. This prevents their species tail from showing. + species.tail = null //Honestly, this should probably be done when a custom tail is chosen, but this is the only time it'd ever matter. + tail_hidden = !tail_hidden + update_tail_showing() + var/message = "" + if(!tail_hidden) + message = "reveals their tail!" + else + message = "hides their tail." + visible_message("[src] [message]") diff --git a/code/modules/mob/living/carbon/human/human_defines_vr.dm b/code/modules/mob/living/carbon/human/human_defines_vr.dm index de940a81df..16b5097e46 100644 --- a/code/modules/mob/living/carbon/human/human_defines_vr.dm +++ b/code/modules/mob/living/carbon/human/human_defines_vr.dm @@ -9,6 +9,7 @@ var/sensorpref = 5 //Suit sensor loadout pref var/wings_hidden = FALSE var/nutrition_hidden = FALSE // Chomp Edit + var/tail_hidden = FALSE /mob/living/carbon/human/proc/shadekin_get_energy() var/datum/species/shadekin/SK = species diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index aede472f22..ca1c699aea 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -1249,13 +1249,13 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() /mob/living/carbon/human/proc/get_tail_image() //If you are FBP with tail style and didn't set a custom one var/datum/robolimb/model = isSynthetic() - if(istype(model) && model.includes_tail && !tail_style) + if(istype(model) && model.includes_tail && !tail_style && !tail_hidden) var/icon/tail_s = new/icon("icon" = synthetic.icon, "icon_state" = "tail") tail_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD) return image(tail_s) //If you have a custom tail selected - if(tail_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL && !istaurtail(tail_style))) + if(tail_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL && !istaurtail(tail_style)) && !tail_hidden) var/icon/tail_s = new/icon("icon" = tail_style.icon, "icon_state" = (tail_style.can_loaf && resting) ? "[tail_style.icon_state]_loaf" : (wagging && tail_style.ani_state ? tail_style.ani_state : tail_style.icon_state)) // VOREStation Edit: Taur Loafing if(tail_style.can_loaf && !is_shifted) pixel_y = (resting) ? -tail_style.loaf_offset : 0 //move player down, then taur up, to fit the overlays correctly // VOREStation Edit: Taur