/datum/emote/living/carbon/human mob_type_allowed_typecache = list(/mob/living/carbon/human) /datum/emote/living/carbon/human/cry key = "cry" key_third_person = "cries" message = "cries." emote_type = EMOTE_AUDIBLE /datum/emote/living/carbon/human/dap key = "dap" key_third_person = "daps" message = "sadly can't find anybody to give daps to, and daps themself. Shameful." message_param = "give daps to %t." restraint_check = TRUE /datum/emote/living/carbon/human/eyebrow key = "eyebrow" message = "raises an eyebrow." /datum/emote/living/carbon/human/grumble key = "grumble" key_third_person = "grumbles" message = "grumbles!" emote_type = EMOTE_AUDIBLE /datum/emote/living/carbon/human/handshake key = "handshake" message = "shakes their own hands." message_param = "shakes hands with %t." restraint_check = TRUE emote_type = EMOTE_AUDIBLE /datum/emote/living/carbon/human/hug key = "hug" key_third_person = "hugs" message = "hugs themself." message_param = "hugs %t." restraint_check = TRUE emote_type = EMOTE_AUDIBLE /datum/emote/living/carbon/human/mumble key = "mumble" key_third_person = "mumbles" message = "mumbles!" emote_type = EMOTE_AUDIBLE /datum/emote/living/carbon/human/pale key = "pale" message = "goes pale for a second." /datum/emote/living/carbon/human/raise key = "raise" key_third_person = "raises" message = "raises a hand." restraint_check = TRUE /datum/emote/living/carbon/human/salute key = "salute" key_third_person = "salutes" message = "salutes." message_param = "salutes to %t." restraint_check = TRUE /datum/emote/living/carbon/human/shrug key = "shrug" key_third_person = "shrugs" message = "shrugs." /datum/emote/living/carbon/human/wag key = "wag" key_third_person = "wags" message = "wags their tail." /datum/emote/living/carbon/human/wag/run_emote(mob/user, params) . = ..() if(!.) return var/mob/living/carbon/human/H = user if(!istype(H) || !H.dna || !H.dna.species || !H.dna.species.can_wag_tail(H)) return if(!H.dna.species.is_wagging_tail()) H.dna.species.start_wagging_tail(H) else H.dna.species.stop_wagging_tail(H) /datum/emote/living/carbon/human/wag/can_run_emote(mob/user, status_check = TRUE) if(!..()) return FALSE var/mob/living/carbon/human/H = user return H.dna && H.dna.species && H.dna.species.can_wag_tail(user) /datum/emote/living/carbon/human/wag/select_message_type(mob/user) . = ..() var/mob/living/carbon/human/H = user if(!H.dna || !H.dna.species) return if(H.dna.species.is_wagging_tail()) . = null /datum/emote/living/carbon/human/wing key = "wing" key_third_person = "wings" message = "their wings." /datum/emote/living/carbon/human/wing/run_emote(mob/user, params) . = ..() if(.) var/mob/living/carbon/human/H = user if(findtext(select_message_type(user), "open")) H.OpenWings() else H.CloseWings() /datum/emote/living/carbon/human/wing/select_message_type(mob/user) . = ..() var/mob/living/carbon/human/H = user if("wings" in H.dna.species.mutant_bodyparts) . = "opens " + message else . = "closes " + message /datum/emote/living/carbon/human/wing/can_run_emote(mob/user, status_check = TRUE) if(!..()) return FALSE var/mob/living/carbon/human/H = user if(H.dna && H.dna.species && (H.dna.features["wings"] != "None")) return TRUE /mob/living/carbon/human/proc/OpenWings() if(!dna || !dna.species) return if("wings" in dna.species.mutant_bodyparts) dna.species.mutant_bodyparts -= "wings" dna.species.mutant_bodyparts |= "wingsopen" update_body() /mob/living/carbon/human/proc/CloseWings() if(!dna || !dna.species) return if("wingsopen" in dna.species.mutant_bodyparts) dna.species.mutant_bodyparts -= "wingsopen" dna.species.mutant_bodyparts |= "wings" update_body() if(isturf(loc)) var/turf/T = loc T.Entered(src) /datum/emote/sound/human mob_type_allowed_typecache = list(/mob/living/carbon/human) emote_type = EMOTE_AUDIBLE /datum/emote/sound/human/buzz key = "buzz" key_third_person = "buzzes" message = "buzzes." message_param = "buzzes at %t." sound = 'sound/machines/buzz-sigh.ogg' /datum/emote/sound/human/buzz2 key = "buzz2" message = "buzzes twice." sound = 'sound/machines/buzz-two.ogg' /datum/emote/sound/human/ping key = "ping" key_third_person = "pings" message = "pings." message_param = "pings at %t." sound = 'sound/machines/ping.ogg' /datum/emote/sound/human/chime key = "chime" key_third_person = "chimes" message = "chimes." sound = 'sound/machines/chime.ogg'