diff --git a/code/modules/emotes/definitions/synthetics.dm b/code/modules/emotes/definitions/synthetics.dm
index 2f586cc98f9..007fe4bc32a 100644
--- a/code/modules/emotes/definitions/synthetics.dm
+++ b/code/modules/emotes/definitions/synthetics.dm
@@ -35,7 +35,7 @@
emote_sound = 'sound/voice/biamthelaw.ogg'
/decl/emote/audible/synth/security/check_user(var/mob/living/silicon/robot/user)
- return (istype(user) && istype(user.module, /obj/item/weapon/robot_module/robot/security))
+ return (istype(user) && (istype(user.module, /obj/item/weapon/robot_module/robot/security) || istype(user.module, /obj/item/weapon/robot_module/robot/knine))) //VOREStation Add - knine module
/decl/emote/audible/synth/security/halt
key = "halt"
diff --git a/code/modules/emotes/emote_define.dm b/code/modules/emotes/emote_define.dm
index 21d129c4a37..845a5202d31 100644
--- a/code/modules/emotes/emote_define.dm
+++ b/code/modules/emotes/emote_define.dm
@@ -160,7 +160,7 @@
if(islist(sound_to_play) && length(sound_to_play))
sound_to_play = pick(sound_to_play)
if(sound_to_play)
- playsound(user.loc, sound_to_play, use_sound["vol"], 0)
+ playsound(user.loc, sound_to_play, use_sound["vol"], 0, preference = /datum/client_preference/emote_noises) //VOREStation Add - Preference
/decl/emote/proc/check_user(var/atom/user)
return TRUE
diff --git a/code/modules/emotes/emote_mob.dm b/code/modules/emotes/emote_mob.dm
index bda07cbb119..3ca98e6b00f 100644
--- a/code/modules/emotes/emote_mob.dm
+++ b/code/modules/emotes/emote_mob.dm
@@ -28,7 +28,7 @@
if(act == "custom")
if(!message)
- message = sanitize(input("Enter an emote to display.") as text|null)
+ message = sanitize_or_reflect(input(src,"Choose an emote to display.") as text|null, src) //VOREStation Edit - Reflect too long messages, within reason
if(!message)
return
if (!m_type)
diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm
index 74ce24a07d7..f59ebf612cd 100644
--- a/code/modules/mob/emote.dm
+++ b/code/modules/mob/emote.dm
@@ -1,61 +1,3 @@
-<<<<<<< HEAD
-// All mobs should have custom emote, really..
-//m_type == 1 --> visual.
-//m_type == 2 --> audible
-/mob/proc/custom_emote(var/m_type=1,var/message = null,var/range=world.view)
- if(stat || !use_me && usr == src)
- to_chat(src, "You are unable to emote.")
- return
-
- var/muzzled = is_muzzled()
- if(m_type == 2 && muzzled) return
-
- var/input
- if(!message)
- input = sanitize_or_reflect(input(src,"Choose an emote to display.") as text|null, src) //VOREStation Edit - Reflect too long messages, within reason
- else
- input = message
- if(input)
- log_emote(message,src) //Log before we add junk
- message = "[src] [input]"
- else
- return
-
-
- if (message)
- message = encode_html_emphasis(message)
-
- // Hearing gasp and such every five seconds is not good emotes were not global for a reason.
- // Maybe some people are okay with that.
-
- var/turf/T = get_turf(src)
- if(!T) return
- var/list/in_range = get_mobs_and_objs_in_view_fast(T,range,2,remote_ghosts = client ? TRUE : FALSE)
- var/list/m_viewers = in_range["mobs"]
- var/list/o_viewers = in_range["objs"]
-
- for(var/mob in m_viewers)
- var/mob/M = mob
- spawn(0) // It's possible that it could be deleted in the meantime, or that it runtimes.
- if(M)
- if(isobserver(M))
- //VOREStation Edit Start
- var/mob/observer/dead/D = M
- if(ckey || (src in view(D)))
- M.show_message(message, m_type)
- message = "[src] ([ghost_follow_link(src, M)]) [input]"
- else
- M.show_message(message, m_type)
- //VOREStation Edit End
-
- for(var/obj in o_viewers)
- var/obj/O = obj
- spawn(0)
- if(O)
- O.see_emote(src, message, m_type)
-
-=======
->>>>>>> d40a022... Merge pull request #7987 from MistakeNot4892/chirp
// Shortcuts for above proc
/mob/proc/visible_emote(var/act_desc)
custom_emote(VISIBLE_MESSAGE, act_desc)
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 6347ae9eab0..155f659979c 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -1,845 +1,3 @@
-<<<<<<< HEAD
-/mob/living/carbon/human/emote(var/act,var/m_type=1,var/message = null)
- var/param = null
-
- var/datum/gender/T = gender_datums[get_visible_gender()]
-
- if(findtext(act, "-", 1, null))
- var/t1 = findtext(act, "-", 1, null)
- param = copytext(act, t1 + 1, length(act) + 1)
- act = copytext(act, 1, t1)
-
- var/muzzled = is_muzzled()
- //var/m_type = 1
-
- for(var/obj/item/organ/O in organs)
- for(var/obj/item/weapon/implant/I in O)
- if(I.implanted)
- I.trigger(act, src)
-
- if(stat == DEAD && (act != "deathgasp"))
- return
-
- if(attempt_vr(src, "handle_emote_vr", list(act, m_type, message))) return //VOREStation Add - Custom Emote Handler
-
- switch(act)
- if("airguitar")
- if(!restrained())
- message = "is strumming the air and headbanging like a safari chimp."
- m_type = 1
-
- //Machine-only emotes
- if("ping", "beep", "buzz", "yes", "ye", "dwoop", "no", "rcough", "rsneeze")
-
- if(!isSynthetic())
- to_chat(src, "You are not a synthetic.")
- return
-
- var/M = null
- if(param)
- for(var/mob/A in view(null, null))
- if(param == A.name)
- M = A
- break
- if(!M)
- param = null
-
- var/display_msg = "beeps"
- var/use_sound = 'sound/machines/twobeep.ogg'
- if(act == "buzz")
- display_msg = "buzzes"
- use_sound = 'sound/machines/buzz-sigh.ogg'
- else if(act == "ping")
- display_msg = "pings"
- use_sound = 'sound/machines/ping.ogg'
- else if(act == "yes" || act == "ye")
- display_msg = "emits an affirmative blip"
- use_sound = 'sound/machines/synth_yes.ogg'
- else if(act == "dwoop")
- display_msg = "chirps happily"
- use_sound = 'sound/machines/dwoop.ogg'
- else if(act == "no")
- display_msg = "emits a negative blip"
- use_sound = 'sound/machines/synth_no.ogg'
- else if(act == "rcough")
- display_msg = "emits a robotic cough"
- if(get_gender() == FEMALE)
- use_sound = pick('sound/effects/mob_effects/f_machine_cougha.ogg','sound/effects/mob_effects/f_machine_coughb.ogg')
- else
- use_sound = pick('sound/effects/mob_effects/m_machine_cougha.ogg','sound/effects/mob_effects/m_machine_coughb.ogg', 'sound/effects/mob_effects/m_machine_coughc.ogg')
- else if(act == "rsneeze")
- display_msg = "emits a robotic sneeze"
- if(get_gender() == FEMALE)
- use_sound = 'sound/effects/mob_effects/machine_sneeze.ogg'
- else
- use_sound = 'sound/effects/mob_effects/f_machine_sneeze.ogg'
-
- if(param)
- message = "[display_msg] at [param]."
- else
- message = "[display_msg]."
- playsound(src, use_sound, 50, 0, preference = /datum/client_preference/emote_noises) //VOREStation Add
- m_type = 1
-
- //Promethean-only emotes
- if("squish")
- /* VOREStation Removal Start - Eh. People can squish maybe.
- if(species.bump_flag != SLIME) //This should definitely do it.
- to_chat(src, "You are not a slime thing!")
- return
- */ //VOREStation Removal End
- playsound(src, 'sound/effects/slime_squish.ogg', 50, 0, preference = /datum/client_preference/emote_noises) //VOREStation Add //Credit to DrMinky (freesound.org) for the sound.
- message = "squishes."
- m_type = 1
-
- if("chirp")
- /* VOREStation Removal Start - Eh. People can chirp maybe.
- if ((species.bump_flag != SLIME) && (species.name != SPECIES_DIONA))
- to_chat(src, "You are not a diona or slime!")
- return
- */ //VOREStation Removal End
- playsound(src, 'sound/misc/nymphchirp.ogg', 50, 0)
- message = "chirps."
- m_type = 2
-
- //Skrell-only emotes
- if("warble")
- if(species.name != SPECIES_SKRELL)
- to_chat(src, "You are not a Skrell!")
- return
-
- playsound(src, 'sound/effects/warble.ogg', 50, 0, preference = /datum/client_preference/emote_noises) //VOREStation Add // Copyright CC BY 3.0 alienistcog (freesound.org) for the sound.
- message = "warbles."
- m_type = 2
-
- if("blink")
- message = "blinks."
- m_type = 1
-
- if("blink_r")
- message = "blinks rapidly."
- m_type = 1
-
- if("bow")
- if(!buckled)
- var/M = null
- if(param)
- for(var/mob/A in view(null, null))
- if(param == A.name)
- M = A
- break
- if(!M)
- param = null
-
- if(param)
- message = "bows to [param]."
- else
- message = "bows."
- m_type = 1
-
- if("custom")
- var/input = sanitize(input("Choose an emote to display.") as text|null)
- if(!input)
- return
- var/input2 = input("Is this a visible or hearable emote?") in list("Visible","Hearable")
- if(input2 == "Visible")
- m_type = 1
- else if(input2 == "Hearable")
- if(miming)
- return
- m_type = 2
- else
- alert("Unable to use this emote, must be either hearable or visible.")
- return
- return custom_emote(m_type, input)
-
- if("me")
-
- //if(silent && silent > 0 && findtext(message,"\"",1, null) > 0)
- // return //This check does not work and I have no idea why, I'm leaving it in for reference.
-
- if(client)
- if(client.prefs.muted & MUTE_IC)
- to_chat(src, "You cannot send IC messages (muted).")
- return
- if(stat)
- return
- if(!(message))
- return
- return custom_emote(m_type, message)
-
- if("salute")
- if(!buckled)
- var/M = null
- if(param)
- for(var/mob/A in view(null, null))
- if(param == A.name)
- M = A
- break
- if(!M)
- param = null
-
- if(param)
- message = "salutes to [param]."
- else
- message = "salutes."
- m_type = 1
-
- if("choke")
- if(miming)
- message = "clutches [T.his] throat desperately!"
- m_type = 1
- else
- if(!muzzled)
- message = "chokes!"
- m_type = 2
- else
- message = "makes a strong noise."
- m_type = 2
-
- if("clap")
- if(!restrained())
- message = "claps."
- playsound(src, 'sound/misc/clapping.ogg')
- m_type = 2
- if(miming)
- m_type = 1
-
- if("flap")
- if(!restrained())
- message = "flaps [T.his] wings."
- m_type = 2
- if(miming)
- m_type = 1
-
- if("aflap")
- if(!restrained())
- message = "flaps [T.his] wings ANGRILY!"
- m_type = 2
- if(miming)
- m_type = 1
-
- if("drool")
- message = "drools."
- m_type = 1
-
- if("eyebrow")
- message = "raises an eyebrow."
- m_type = 1
-
- if("chuckle")
- if(miming)
- message = "appears to chuckle."
- m_type = 1
- else
- if(!muzzled)
- message = "chuckles."
- m_type = 2
- else
- message = "makes a noise."
- m_type = 2
-
- if("twitch")
- message = "twitches."
- m_type = 1
-
- if("twitch_v")
- message = "twitches violently."
- m_type = 1
-
- if("faint")
- message = "faints."
- if(sleeping)
- return //Can't faint while asleep
- Sleeping(10)
- m_type = 1
-
- if("cough", "coughs")
- if(miming)
- message = "appears to cough!"
- m_type = 1
- else
- if(!muzzled)
- var/robotic = 0
- m_type = 2
- if(should_have_organ(O_LUNGS))
- var/obj/item/organ/internal/lungs/L = internal_organs_by_name[O_LUNGS]
- if(L && L.robotic == 2) //Hard-coded to 2, incase we add lifelike robotic lungs
- robotic = 1
- if(!robotic && !isSynthetic())
- message = "coughs!"
- if(get_gender() == FEMALE)
- if(species.female_cough_sounds)
- playsound(src, pick(species.female_cough_sounds), 120, preference = /datum/client_preference/emote_noises) //VOREStation Add
- else
- if(species.male_cough_sounds)
- playsound(src, pick(species.male_cough_sounds), 120, preference = /datum/client_preference/emote_noises) //VOREStation Add
- else
- message = "emits a robotic cough"
- var/use_sound
- if(get_gender() == FEMALE)
- use_sound = pick('sound/effects/mob_effects/f_machine_cougha.ogg','sound/effects/mob_effects/f_machine_coughb.ogg')
- else
- use_sound = pick('sound/effects/mob_effects/m_machine_cougha.ogg','sound/effects/mob_effects/m_machine_coughb.ogg', 'sound/effects/mob_effects/m_machine_coughc.ogg')
- playsound(src, use_sound, 50, 0, preference = /datum/client_preference/emote_noises) //VOREStation Add
- else
- message = "makes a strong noise."
- m_type = 2
-
- if("frown")
- message = "frowns."
- m_type = 1
-
- if("nod")
- message = "nods."
- m_type = 1
-
- if("blush")
- message = "blushes."
- m_type = 1
-
- if("wave")
- message = "waves."
- m_type = 1
-
- if("gasp")
- if(miming)
- message = "appears to be gasping!"
- m_type = 1
- else
- if(!muzzled)
- message = "gasps!"
- m_type = 2
- else
- message = "makes a weak noise."
- m_type = 2
-
- if("deathgasp")
- message = "[species.get_death_message()]"
- m_type = 1
-
- if("giggle")
- if(miming)
- message = "giggles silently!"
- m_type = 1
- else
- if(!muzzled)
- message = "giggles."
- m_type = 2
- else
- message = "makes a noise."
- m_type = 2
-
- if("glare")
- var/M = null
- if(param)
- for(var/mob/A in view(null, null))
- if(param == A.name)
- M = A
- break
- if(!M)
- param = null
-
- if(param)
- message = "glares at [param]."
- else
- message = "glares."
-
- if("stare")
- var/M = null
- if(param)
- for(var/mob/A in view(null, null))
- if(param == A.name)
- M = A
- break
- if(!M)
- param = null
-
- if(param)
- message = "stares at [param]."
- else
- message = "stares."
-
- if("look")
- var/M = null
- if(param)
- for(var/mob/A in view(null, null))
- if(param == A.name)
- M = A
- break
-
- if(!M)
- param = null
-
- if(param)
- message = "looks at [param]."
- else
- message = "looks."
- m_type = 1
-
- if("grin")
- message = "grins."
- m_type = 1
-
- if("cry")
- if(miming)
- message = "cries."
- m_type = 1
- else
- if(!muzzled)
- message = "cries."
- m_type = 2
- else
- message = "makes a weak noise. [T.he] [get_visible_gender() == NEUTER ? "frown" : "frowns"]." // no good, non-unwieldy alternative to this ternary at the moment
- m_type = 2
-
- if("sigh")
- if(miming)
- message = "sighs."
- m_type = 1
- else
- if(!muzzled)
- message = "sighs."
- m_type = 2
- else
- message = "makes a weak noise."
- m_type = 2
-
- if("laugh")
- if(miming)
- message = "acts out a laugh."
- m_type = 1
- else
- if(!muzzled)
- message = "laughs."
- m_type = 2
- else
- message = "makes a noise."
- m_type = 2
-
- if("mumble")
- message = "mumbles!"
- m_type = 2
- if(miming)
- m_type = 1
-
- if("grumble")
- if(miming)
- message = "grumbles!"
- m_type = 1
- if(!muzzled)
- message = "grumbles!"
- m_type = 2
- else
- message = "makes a noise."
- m_type = 2
-
- if("groan")
- if(miming)
- message = "appears to groan!"
- m_type = 1
- else
- if(!muzzled)
- message = "groans!"
- m_type = 2
- else
- message = "makes a loud noise."
- m_type = 2
-
- if("moan")
- if(miming)
- message = "appears to moan!"
- m_type = 1
- else
- message = "moans!"
- m_type = 2
-
- if("johnny")
- var/M
- if(param)
- M = param
- if(!M)
- param = null
- else
- if(miming)
- message = "takes a drag from a cigarette and blows \"[M]\" out in smoke."
- m_type = 1
- else
- message = "says, \"[M], please. He had a family.\" [name] takes a drag from a cigarette and blows his name out in smoke."
- m_type = 2
-
- if("point")
- if(!restrained())
- var/mob/M = null
- if(param)
- for(var/atom/A as mob|obj|turf|area in view(null, null))
- if(param == A.name)
- M = A
- break
-
- if(!M)
- message = "points."
- else
- pointed(M)
-
- if(M)
- message = "points to [M]."
- else
- m_type = 1
-
- if("crack")
- if(!restrained())
- message = "cracks [T.his] knuckles."
- playsound(src, 'sound/voice/knuckles.ogg', 50, 1, preference = /datum/client_preference/emote_noises)
- m_type = 1
-
- if("raise")
- if(!restrained())
- message = "raises a hand."
- m_type = 1
-
- if("shake")
- message = "shakes [T.his] head."
- m_type = 1
-
- if("shrug")
- message = "shrugs."
- m_type = 1
-
- if("signal")
- if(!restrained())
- var/t1 = round(text2num(param))
- if(isnum(t1))
- if(t1 <= 5 && (!r_hand || !l_hand))
- message = "raises [t1] finger\s."
- else if(t1 <= 10 && (!r_hand && !l_hand))
- message = "raises [t1] finger\s."
- m_type = 1
-
- if("smile")
- message = "smiles."
- m_type = 1
-
- if("shiver")
- message = "shivers."
- m_type = 2
- if(miming)
- m_type = 1
-
- if("pale")
- message = "goes pale for a second."
- m_type = 1
-
- if("tremble")
- message = "trembles in fear!"
- m_type = 1
-
- if("sneeze", "sneezes")
- if(miming)
- message = "sneezes."
- m_type = 1
- else
- if(!muzzled)
- var/robotic = 0
- m_type = 2
- if(should_have_organ(O_LUNGS))
- var/obj/item/organ/internal/lungs/L = internal_organs_by_name[O_LUNGS]
- if(L && L.robotic == 2) //Hard-coded to 2, incase we add lifelike robotic lungs
- robotic = 1
- if(!robotic && !isSynthetic())
- message = "sneezes."
- if(get_gender() == FEMALE)
- playsound(src, species.female_sneeze_sound, 70, preference = /datum/client_preference/emote_noises) //VOREStation Add
- else
- playsound(src, species.male_sneeze_sound, 70, preference = /datum/client_preference/emote_noises) //VOREStation Add
- m_type = 2
- else
- message = "emits a robotic sneeze"
- var/use_sound
- if(get_gender() == FEMALE)
- use_sound = 'sound/effects/mob_effects/machine_sneeze.ogg'
- else
- use_sound = 'sound/effects/mob_effects/f_machine_sneeze.ogg'
- playsound(src, use_sound, 50, 0, preference = /datum/client_preference/emote_noises) //VOREStation Add
- else
- message = "makes a strange noise."
- m_type = 2
-
- if("sniff")
- message = "sniffs."
- m_type = 2
- if(miming)
- m_type = 1
-
- if("snore")
- if(miming)
- message = "sleeps soundly."
- m_type = 1
- else
- if(!muzzled)
- message = "snores."
- m_type = 2
- else
- message = "makes a noise."
- m_type = 2
-
- if("whimper")
- if(miming)
- message = "appears hurt."
- m_type = 1
- else
- if(!muzzled)
- message = "whimpers."
- m_type = 2
- else
- message = "makes a weak noise."
- m_type = 2
-
- if("wink")
- message = "winks."
- m_type = 1
-
- if("yawn")
- if(!muzzled)
- message = "yawns."
- m_type = 2
- if(miming)
- m_type = 1
-
- if("collapse")
- Paralyse(2)
- message = "collapses!"
- m_type = 2
- if(miming)
- m_type = 1
-
- if("hug")
- m_type = 1
- if(!restrained())
- var/M = null
- if(param)
- for(var/mob/A in view(1, null))
- if(param == A.name)
- M = A
- break
- if(M == src)
- M = null
-
- if(M)
- message = "hugs [M]."
- else
- message = "hugs [T.himself]."
-
- if("handshake")
- m_type = 1
- if(!restrained() && !r_hand)
- var/mob/living/M = null
- if(param)
- for(var/mob/living/A in view(1, null))
- if(param == A.name)
- M = A
- break
- if(M == src)
- M = null
-
- if(M)
- if(M.canmove && !M.r_hand && !M.restrained())
- message = "shakes hands with [M]."
- else
- message = "holds out [T.his] hand to [M]."
-
- if("dap")
- m_type = 1
- if(!restrained())
- var/M = null
- if(param)
- for(var/mob/A in view(1, null))
- if(param == A.name)
- M = A
- break
- if(M)
- message = "gives daps to [M]."
- else
- message = "sadly can't find anybody to give daps to, and daps [T.himself]. Shameful."
-
- if("slap", "slaps")
- m_type = 1
- if(!restrained())
- var/M = null
- if(param)
- for(var/mob/A in view(1, null))
- if(param == A.name)
- M = A
- break
- if(M)
- message = "slaps [M] across the face. Ouch!"
- playsound(src, 'sound/effects/snap.ogg', 50, 1, preference = /datum/client_preference/emote_noises) //VOREStation Add
- if(ishuman(M)) //Snowflakey!
- var/mob/living/carbon/human/H = M
- if(istype(H.wear_mask,/obj/item/clothing/mask/smokable))
- H.drop_from_inventory(H.wear_mask)
- else
- message = "slaps [T.himself]!"
- playsound(src, 'sound/effects/snap.ogg', 50, 1, preference = /datum/client_preference/emote_noises) //VOREStation Add
-
- if("scream", "screams")
- if(miming)
- message = "acts out a scream!"
- m_type = 1
- else
- if(!muzzled)
- message = "[species.scream_verb]!"
- m_type = 2
- /* Removed, pending the location of some actually good, properly licensed sounds.
- if(get_gender() == FEMALE)
- playsound(src, "[species.female_scream_sound]", 80, 1)
- else
- playsound(src, "[species.male_scream_sound]", 80, 1) //default to male screams if no gender is present.
- */
- else
- message = "makes a very loud noise."
- m_type = 2
-
- if("snap", "snaps")
- m_type = 2
- var/mob/living/carbon/human/H = src
- var/obj/item/organ/external/L = H.get_organ("l_hand")
- var/obj/item/organ/external/R = H.get_organ("r_hand")
- var/left_hand_good = 0
- var/right_hand_good = 0
- if(L && (!(L.status & ORGAN_DESTROYED)) && (!(L.splinted)) && (!(L.status & ORGAN_BROKEN)))
- left_hand_good = 1
- if(R && (!(R.status & ORGAN_DESTROYED)) && (!(R.splinted)) && (!(R.status & ORGAN_BROKEN)))
- right_hand_good = 1
-
- if(!left_hand_good && !right_hand_good)
- to_chat(usr, "You need at least one hand in good working order to snap your fingers.")
- return
-
- message = "snaps [T.his] fingers."
- playsound(src, 'sound/effects/fingersnap.ogg', 50, 1, -3, preference = /datum/client_preference/emote_noises) //VOREStation Add
-
- if("swish")
- animate_tail_once()
-
- if("wag", "sway")
- animate_tail_start()
-
- if("qwag", "fastsway")
- animate_tail_fast()
-
- if("swag", "stopsway")
- animate_tail_stop()
-
- if("vomit")
- if(isSynthetic())
- to_chat(src, "You are unable to vomit.")
- return
- vomit()
- return
-
- if("whistle" || "whistles")
- if(!muzzled)
- if(!isSynthetic())
- message = "whistles a tune."
- playsound(src, 'sound/voice/longwhistle.ogg', 50, 1, preference = /datum/client_preference/emote_noises) //praying this doesn't get abused
- else
- message = "whistles a robotic tune."
- playsound(src, 'sound/voice/longwhistle_robot.ogg', 50, 1, preference = /datum/client_preference/emote_noises)
- else
- message = "makes a light spitting noise, a poor attempt at a whistle."
-
- if("qwhistle")
- if(!muzzled)
- if(!isSynthetic())
- message = "whistles quietly."
- playsound(src, 'sound/voice/shortwhistle.ogg', 50, 1, preference = /datum/client_preference/emote_noises)
- else
- message = "whistles robotically."
- playsound(src, 'sound/voice/shortwhistle_robot.ogg', 50, 1, preference = /datum/client_preference/emote_noises)
- else
- message = "makes a light spitting noise, a poor attempt at a whistle."
-
- if("wwhistle")
- if(!muzzled)
- if(!isSynthetic())
- message = "whistles inappropriately."
- playsound(src, 'sound/voice/wolfwhistle.ogg', 50, 1, preference = /datum/client_preference/emote_noises)
- else
- message = "beeps inappropriately."
- playsound(src, 'sound/voice/wolfwhistle_robot.ogg', 50, 1, preference = /datum/client_preference/emote_noises)
- else
- message = "makes a light spitting noise, a poor attempt at a whistle."
-
- if("swhistle")
- if(!muzzled)
- if(!isSynthetic())
- message = "summon whistles."
- playsound(src, 'sound/voice/summon_whistle.ogg', 50, 1, preference = /datum/client_preference/emote_noises)
- else
- message = "summon whistles robotically."
- playsound(src, 'sound/voice/summon_whistle_robot.ogg', 50, 1, preference = /datum/client_preference/emote_noises)
- else
- message = "makes a light spitting noise, a poor attempt at a whistle."
-
- if("flip")
- m_type = 1
- if (!src.restrained())
- //message = "performs an amazing, gravity-defying backflip before landing skillfully back to the ground."
- playsound(src.loc, 'sound/effects/bodyfall4.ogg', 50, 1)
- src.SpinAnimation(7,1)
- else
- to_chat(usr, "You can't quite do something as difficult as a backflip while so... restricted.")
-
- if("spin")
- m_type = 1
- if (!src.restrained())
- //message = "spins in a dance smoothly on their feet. Wow!"
- src.spin(20, 1)
- else
- to_chat(usr, "You can't quite do something as difficult as a spin while so... restricted.")
-
- if("floorspin")
- m_type = 1
- if (!src.restrained())
- //message = "gets down on the floor and spins their entire body around!"
- spawn(0)
- for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2))
- set_dir(i)
- sleep(1)
- src.SpinAnimation(20,1)
- else
- to_chat(usr, "You can't quite do something as difficult as a spin while so... restricted.")
-
- if("sidestep")
- m_type = 1
- if (!src.restrained())
- //message = "steps rhymatically and conservatively as they move side to side."
- playsound(src.loc, 'sound/effects/bodyfall4.ogg', 50, 1)
- var/default_pixel_x = initial(pixel_x)
- var/default_pixel_y = initial(pixel_y)
- default_pixel_x = src.default_pixel_x
- default_pixel_y = src.default_pixel_y
-
- animate(src, pixel_x = 5, time = 20)
- sleep(3)
- animate(src, pixel_x = -5, time = 20)
- animate(pixel_x = default_pixel_x, pixel_y = default_pixel_y, time = 2)
- else
- to_chat(usr, "Sidestepping sure seems unachieveable when you're this restricted.")
-
- if("help")
- to_chat(src, "blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough, cry, custom, deathgasp, drool, eyebrow, fastsway/qwag, \
- frown, gasp, giggle, glare-(none)/mob, grin, groan, grumble, handshake, hug-(none)/mob, laugh, look-(none)/mob, moan, mumble, nod, pale, point-atom, \
- qwhistle, raise, salute, scream, sneeze, shake, shiver, shrug, sigh, signal-#1-10, slap-(none)/mob, smile, sneeze, sniff, snore, stare-(none)/mob, stopsway/swag, sway/wag, swish, swhistle, \
- tremble, twitch, twitch_v, vomit, whimper, wink, whistle, wwhistle, yawn. Prometheans: squish Synthetics: beep, buzz, dwoop, yes, no, rcough, rsneeze, ping. Skrell: warble")
-
- else
- to_chat(src, "Unusable emote '[act]'. Say *help or *vhelp for a list.") //VOREStation Edit, mention *vhelp for Virgo-specific emotes located in emote_vr.dm.
-
- if(message)
- custom_emote(m_type,message)
-=======
var/list/_human_default_emotes = list(
/decl/emote/visible/blink,
/decl/emote/audible/synth,
@@ -933,12 +91,44 @@ var/list/_human_default_emotes = list(
/decl/emote/audible/snap,
/decl/emote/visible/vomit,
/decl/emote/visible/floorspin,
- /decl/emote/visible/flip
+ /decl/emote/visible/flip,
+ //VOREStation Add
+ /decl/emote/audible/awoo,
+ /decl/emote/audible/awoo2,
+ /decl/emote/audible/growl,
+ /decl/emote/audible/woof,
+ /decl/emote/audible/woof2,
+ /decl/emote/audible/nya,
+ /decl/emote/audible/mrowl,
+ /decl/emote/audible/peep,
+ /decl/emote/audible/chirp,
+ /decl/emote/audible/hoot,
+ /decl/emote/audible/weh,
+ /decl/emote/audible/merp,
+ /decl/emote/audible/myarp,
+ /decl/emote/audible/bark,
+ /decl/emote/audible/bork,
+ /decl/emote/audible/mrow,
+ /decl/emote/audible/hypno,
+ /decl/emote/audible/hiss,
+ /decl/emote/audible/rattle,
+ /decl/emote/audible/squeak,
+ /decl/emote/audible/geck,
+ /decl/emote/audible/baa,
+ /decl/emote/audible/baa2,
+ /decl/emote/audible/mar,
+ /decl/emote/audible/wurble,
+ /decl/emote/audible/snort,
+ /decl/emote/audible/meow,
+ /decl/emote/audible/moo,
+ /decl/emote/audible/croak,
+ /decl/emote/audible/gao,
+ /decl/emote/audible/cackle
+ //VOREStation Add End
)
/mob/living/carbon/human/get_default_emotes()
return global._human_default_emotes
->>>>>>> d40a022... Merge pull request #7987 from MistakeNot4892/chirp
/mob/living/carbon/human/verb/pose()
set name = "Set Pose"
diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm
index 3818912dd98..e54b036a295 100644
--- a/code/modules/mob/living/silicon/robot/emote.dm
+++ b/code/modules/mob/living/silicon/robot/emote.dm
@@ -1,160 +1,3 @@
-<<<<<<< HEAD
-/mob/living/silicon/robot/emote(var/act,var/m_type=1,var/message = null)
- var/param = null
- if(findtext(act, "-", 1, null))
- var/t1 = findtext(act, "-", 1, null)
- param = copytext(act, t1 + 1, length(act) + 1)
- act = copytext(act, 1, t1)
-
- if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_'
- act = copytext(act,1,length(act))
-
- switch(act)
- if("salute")
- if(!src.buckled)
- var/M = null
- if(param)
- for (var/mob/A in view(null, null))
- if(param == A.name)
- M = A
- break
- if(!M)
- param = null
-
- if(param)
- message = "[src] salutes to [param]."
- else
- message = "[src] salutes."
- m_type = 1
- if("bow")
- if(!src.buckled)
- var/M = null
- if(param)
- for (var/mob/A in view(null, null))
- if(param == A.name)
- M = A
- break
- if(!M)
- param = null
-
- if(param)
- message = "[src] bows to [param]."
- else
- message = "[src] bows."
- m_type = 1
-
- if("clap")
- if(!src.restrained())
- message = "[src] claps."
- m_type = 2
- if("flap")
- if(!src.restrained())
- message = "[src] flaps its wings."
- m_type = 2
-
- if("aflap")
- if(!src.restrained())
- message = "[src] flaps its wings ANGRILY!"
- m_type = 2
-
- if("twitch")
- message = "[src] twitches."
- m_type = 1
-
- if("twitch_v")
- message = "[src] twitches violently."
- m_type = 1
-
- if("nod")
- message = "[src] nods."
- m_type = 1
-
- if("deathgasp")
- message = "[src] shudders violently for a moment, then becomes motionless, its eyes slowly darkening."
- m_type = 1
-
- if("glare")
- var/M = null
- if(param)
- for (var/mob/A in view(null, null))
- if(param == A.name)
- M = A
- break
- if(!M)
- param = null
-
- if(param)
- message = "[src] glares at [param]."
- else
- message = "[src] glares."
-
- if("stare")
- var/M = null
- if(param)
- for (var/mob/A in view(null, null))
- if(param == A.name)
- M = A
- break
- if(!M)
- param = null
-
- if(param)
- message = "[src] stares at [param]."
- else
- message = "[src] stares."
-
- if("look")
- var/M = null
- if(param)
- for (var/mob/A in view(null, null))
- if(param == A.name)
- M = A
- break
-
- if(!M)
- param = null
-
- if(param)
- message = "[src] looks at [param]."
- else
- message = "[src] looks."
- m_type = 1
-
- if("law")
- if(istype(module,/obj/item/weapon/robot_module/robot/security) || istype(module,/obj/item/weapon/robot_module/robot/knine)) //VOREStation Add - K9
- message = "[src] shows its legal authorization barcode."
-
- playsound(src, 'sound/voice/biamthelaw.ogg', 50, 0)
- m_type = 2
- else
- to_chat(src, "You are not THE LAW, pal.")
-
- if("halt")
- if(istype(module,/obj/item/weapon/robot_module/robot/security) || istype(module,/obj/item/weapon/robot_module/robot/knine)) //VOREStation Add - K9
- message = "[src] 's speakers skreech, \"Halt! Security!\"."
-
- playsound(src, 'sound/voice/halt.ogg', 50, 0)
- m_type = 2
- else
- to_chat(src, "You are not security.")
- //Vorestation addition start
- if("bark")
- if (istype(module,/obj/item/weapon/robot_module/robot/knine) || istype(module,/obj/item/weapon/robot_module/robot/medihound) || istype(module,/obj/item/weapon/robot_module/robot/scrubpup) || istype(module,/obj/item/weapon/robot_module/robot/ert) || istype(module,/obj/item/weapon/robot_module/robot/science) || istype(module,/obj/item/weapon/robot_module/robot/engiedog) || istype(module,/obj/item/weapon/robot_module/robot/clerical/brodog) || istype(module,/obj/item/weapon/robot_module/robot/kmine) )
- message = "[src] lets out a bark."
-
- playsound(src, 'sound/voice/bark2.ogg', 50, 1, -1, preference = /datum/client_preference/emote_noises)
- m_type = 2
- else
- to_chat(src, "You're not a dog!")
- //Vorestation addition end
-
-
-
- if("help")
- to_chat(src, "salute, bow-(none)/mob, clap, flap, aflap, twitch, twitch_s, nod, deathgasp, glare-(none)/mob, stare-(none)/mob, look, beep, ping, \nbuzz, law, halt, yes, dwoop, no")
-
- ..(act, m_type, message)
-=======
var/list/_robot_default_emotes = list(
/decl/emote/audible/clap,
/decl/emote/visible/bow,
@@ -184,4 +27,3 @@ var/list/_robot_default_emotes = list(
/mob/living/silicon/robot/get_default_emotes()
return global._robot_default_emotes
->>>>>>> d40a022... Merge pull request #7987 from MistakeNot4892/chirp