/mob var/nextemote = 1 /mob/living/carbon/human/proc/handle_emote_vr(var/act,var/m_type=1,var/message = null) //Reduces emote spamming if(nextemote >= world.time)// || user.stat != CONSCIOUS return 1 nextemote = world.time + 12 switch(act) if("vwag") if(toggle_tail_vr(message = 1)) m_type = 1 message = "[wagging ? "starts" : "stops"] wagging their tail." else return 1 if("vflap") if(toggle_wing_vr(message = 1)) m_type = 1 message = "[flapping ? "starts" : "stops"] flapping their wings." else return 1 if("mlem") message = "mlems [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] tongue up over [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] nose. Mlem." m_type = 1 if("blep") message = "bleps [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] tongue out. Blep." m_type = 1 if("awoo") m_type = 2 message = "lets out an awoo." playsound(src, 'sound/voice/awoo.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("awoo2") m_type = 2 message = "lets out an awoo." playsound(src, 'sound/voice/long_awoo.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("growl") m_type = 2 message = "lets out a growl." playsound(src, 'sound/voice/growl.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("woof") m_type = 2 message = "lets out a woof." playsound(src, 'sound/voice/woof.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("woof2") m_type = 2 message = "lets out a woof." playsound(src, 'sound/voice/woof2.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("nya") message = "lets out a nya." m_type = 2 playsound(src, 'sound/voice/nya.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("mrowl") message = "mrowls." m_type = 2 playsound(src, 'sound/voice/mrow.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("peep") message = "peeps like a bird." m_type = 2 playsound(src, 'sound/voice/peep.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("chirp") message = "chirps!" playsound(src, 'sound/misc/nymphchirp.ogg', 50, 0, preference = /datum/client_preference/emote_noises) m_type = 2 if("hoot") message = "hoots!" playsound(src, 'sound/voice/hoot.ogg', 50, 1, ,-1, preference = /datum/client_preference/emote_noises) m_type = 2 if("weh") message = "lets out a weh." m_type = 2 playsound(src, 'sound/voice/weh.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("merp") message = "lets out a merp." m_type = 2 playsound(src, 'sound/voice/merp.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("myarp") message = "lets out a myarp." m_type = 2 playsound(src, 'sound/voice/myarp.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("bark") message = "lets out a bark." m_type = 2 playsound(src, 'sound/voice/bark2.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("bork") m_type = 2 message = "lets out a bork." playsound(src, 'sound/voice/bork.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if ("mrow") m_type = 2 message = "lets out a mrow." playsound(src, 'sound/voice/mrow.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if ("hypno") m_type = 2 message = "lets out a mystifying tone." playsound(src, 'sound/voice/hypno.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("hiss") message = "lets out a hiss." m_type = 2 playsound(src, 'sound/voice/hiss.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("rattle") message = "rattles!" m_type = 2 playsound(src, 'sound/voice/rattle.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("squeak") message = "lets out a squeak." m_type = 2 playsound(src, 'sound/effects/mouse_squeak.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("geck") message = "geckers!" m_type = 2 playsound(src, 'sound/voice/geck.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("baa") message = "lets out a baa." m_type = 2 playsound(src, 'sound/voice/baa.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("baa2") message = "bleats." m_type = 2 playsound(src, 'sound/voice/baa2.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("deathgasp2") message = "[species.get_death_message()]" m_type = 1 playsound(src, 'sound/voice/deathgasp2.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("mar") message = "lets out a mar." m_type = 2 playsound(src, 'sound/voice/mar.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("wurble") message = "lets out a wurble." m_type = 2 playsound(src, 'sound/voice/wurble.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) if("snort") message = "snorts!" m_type = 2 playsound(src, 'sound/voice/Snort.ogg', 50, 0, preference = /datum/client_preference/emote_noises) if("meow") message = "gently meows!" m_type = 2 playsound(src, 'sound/voice/Meow.ogg', 50, 0, preference = /datum/client_preference/emote_noises) if("moo") message = "takes a breath and lets out a moo." m_type = 2 playsound(src, 'sound/voice/Moo.ogg', 50, 0, preference = /datum/client_preference/emote_noises) if("croak") message = "rumbles their throat, puffs their cheeks and croaks." m_type = 2 playsound(src, 'sound/voice/Croak.ogg', 50, 0, preference = /datum/client_preference/emote_noises) if("gao") message = "lets out a gao." m_type = 2 playsound(src, 'sound/voice/gao.ogg', 50, 0, preference = /datum/client_preference/emote_noises) if("cackle") message = "cackles hysterically!" m_type = 2 playsound(src, 'sound/voice/YeenCackle.ogg', 50, 0, preference = /datum/client_preference/emote_noises) if("nsay") nsay() return TRUE if("nme") nme() return TRUE if("chirp") //Yawn Addtion message = "chirps!" playsound(src.loc, 'sound/misc/nymphchirp.ogg', 50, 0, preference = /datum/client_preference/emote_noises) m_type = 2 // CHOMP Removal: Begone demons /*if ("hooh") message = "lets out a hooh!" playsound(src.loc, 'sound/items/hooh.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) m_type = 2 if ("ack") message = "Acks!" playsound(src.loc, 'sound/misc/ack.ogg', 50, 1 ,-1, preference = /datum/client_preference/emote_noises) m_type = 2 if ("ough") message = "makes a weird noise!" playsound(src.loc, 'sound/misc/ough.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) m_type = 2 //End of Yawn Addtion */ if ("howl") // YW add begins m_type = 2 message = "lets out a howl." playsound(loc, 'sound/voice/howl.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises) // YW add ends if("flip") var/list/involved_parts = list(BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT) //Check if they are physically capable if(sleeping || resting || buckled || weakened || restrained() || involved_parts.len < 2) to_chat(src, "You can't *flip in your current state!") return 1 else nextemote += 12 //Double delay handle_flip_vr() message = "does a flip!" m_type = 1 if("roarbark") //Roarbark is CHOMP Addition message = "lets out a roar-bark!" m_type = 2 //Also full disclosure this sounds AWFUL with the normal pitch shifting playsound(loc, 'sound/voice/roarbark.ogg', 50, 0, preference = /datum/client_preference/emote_noises) if("vhelp") //Help for Virgo-specific emotes. to_chat(src, "vwag, vflap, mlem, blep, awoo, awoo2, growl, nya, peep, chirp, hoot, weh, merp, myarp, bark, bork, mrow, mrowl, hypno, howl, hiss, rattle, squeak, geck, baa, baa2, mar, wurble, snort, meow, moo, croak, gao, cackle, nsay, nme, flip, roarbark") //CHOMP Addition: adds howl to list since YW didn't return TRUE if(message) custom_emote(m_type,message) return TRUE return FALSE /mob/living/carbon/human/proc/handle_flip_vr() var/original_density = density var/original_passflags = pass_flags //Briefly un-dense to dodge projectiles density = FALSE //Parkour! var/parkour_chance = 20 //Default if(species) parkour_chance = species.agility if(prob(parkour_chance)) pass_flags |= PASSTABLE else Confuse(1) //Thud if(dir & WEST) SpinAnimation(7,1,0) else SpinAnimation(7,1,1) spawn(7) density = original_density pass_flags = original_passflags /mob/living/carbon/human/proc/toggle_tail_vr(var/setting,var/message = 0) if(!tail_style || !tail_style.ani_state) if(message) to_chat(src, "You don't have a tail that supports this.") return 0 var/new_wagging = isnull(setting) ? !wagging : setting if(new_wagging != wagging) wagging = new_wagging update_tail_showing() return 1 /mob/living/carbon/human/proc/toggle_wing_vr(var/setting,var/message = 0) if(!wing_style || !wing_style.ani_state) if(message) to_chat(src, "You don't have a tail that supports this.") return 0 var/new_flapping = isnull(setting) ? !flapping : setting if(new_flapping != flapping) flapping = setting update_wing_showing() return 1 /mob/living/carbon/human/verb/toggle_gender_identity_vr() set name = "Set Gender Identity" set desc = "Sets the pronouns when examined and performing an emote." set category = "IC" var/new_gender_identity = input("Please select a gender Identity.") as null|anything in list(FEMALE, MALE, NEUTER, PLURAL, HERM) if(!new_gender_identity) return 0 change_gender_identity(new_gender_identity) return 1 /mob/living/carbon/human/verb/switch_tail_layer() set name = "Switch tail layer" set category = "IC" set desc = "Switch tail layer on top." tail_alt = !tail_alt update_tail_showing() /mob/living/carbon/human/verb/hide_wings_vr() set name = "Show/Hide wings" set category = "IC" set desc = "Hide your wings, or show them if you already hid them." wings_hidden = !wings_hidden update_wing_showing() var/message = "" if(!wings_hidden) message = "reveals their wings!" else message = "hides their wings." visible_message("[src] [message]") // Chomp Edit Start /mob/living/carbon/human/verb/hide_nutrition_vr() set name = "Show/Hide Nutrition Levels" set category = "IC" set desc = "Allow other player to see your current nutrition level or not." nutrition_hidden = !nutrition_hidden to_chat(src, "Players will [nutrition_hidden ? "no longer" : "now"] see your nutrition levels.") // Chomp Edit End