diff --git a/code/modules/mob/living/carbon/alien/humanoid/emote.dm b/code/modules/mob/living/carbon/alien/humanoid/emote.dm
index 83a8576f397..b5a34511527 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/emote.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/emote.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/alien/humanoid/emote(var/act)
+/mob/living/carbon/alien/humanoid/emote(var/act,var/m_type=1,var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
@@ -6,8 +6,6 @@
param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
- var/m_type = 1
- var/message
switch(act)
if("sign")
@@ -92,6 +90,25 @@
if (!src.paralysis) src.paralysis += 2
message = text("[] collapses!", src)
m_type = 2
+ if ("me")
+ if(silent)
+ return
+ if (src.client && (client.muted || client.muted_complete))
+ src << "You are muted."
+ return
+ if (stat)
+ return
+ if(!(message))
+ return
+ else
+ if(cmptext(copytext(message, 1, 3), "v "))
+ message = "[src] [copytext(message, 3)]"
+ m_type = 1
+ else if(cmptext(copytext(message, 1, 3), "h "))
+ message = "[src] [copytext(message, 3)]"
+ m_type = 2
+ else
+ message = "[src] [message]"
if("help")
src << "burp, deathgasp, choke, collapse, dance, drool, gasp, shiver, gnarl, jump, moan, nod, roar, roll, scratch,\nscretch, shake, sign-#, sit, sulk, sway, tail, twitch, whimper"
else
diff --git a/code/modules/mob/living/carbon/alien/larva/emote.dm b/code/modules/mob/living/carbon/alien/larva/emote.dm
index a01cadc361d..34a0911f77e 100644
--- a/code/modules/mob/living/carbon/alien/larva/emote.dm
+++ b/code/modules/mob/living/carbon/alien/larva/emote.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/alien/larva/emote(var/act)
+/mob/living/carbon/alien/larva/emote(var/act,var/m_type=1,var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
@@ -6,8 +6,6 @@
param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
- var/m_type = 1
- var/message
switch(act)
if("sign")
@@ -89,6 +87,25 @@
if (!src.paralysis) src.paralysis += 2
message = text("[] collapses!", src)
m_type = 2
+ if ("me")
+ if(silent)
+ return
+ if (src.client && (client.muted || client.muted_complete))
+ src << "You are muted."
+ return
+ if (stat)
+ return
+ if(!(message))
+ return
+ else
+ if(cmptext(copytext(message, 1, 3), "v "))
+ message = "[src] [copytext(message, 3)]"
+ m_type = 1
+ else if(cmptext(copytext(message, 1, 3), "h "))
+ message = "[src] [copytext(message, 3)]"
+ m_type = 2
+ else
+ message = "[src] [message]"
if("help")
src << "burp, choke, collapse, dance, drool, gasp, shiver, gnarl, jump, moan, nod, roll, scratch,\nscretch, shake, sign-#, sulk, sway, tail, twitch, whimper"
else
diff --git a/code/modules/mob/living/carbon/metroid/emote.dm b/code/modules/mob/living/carbon/metroid/emote.dm
index 8fb37d48a62..65ce5189597 100644
--- a/code/modules/mob/living/carbon/metroid/emote.dm
+++ b/code/modules/mob/living/carbon/metroid/emote.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/metroid/emote(var/act)
+/mob/living/carbon/metroid/emote(var/act,var/m_type=1,var/message = null)
if (findtext(act, "-", 1, null))
@@ -6,9 +6,6 @@
//param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
- var/m_type = 1
- var/message
-
switch(act)
if("moan")
message = "The [src.name] moans."
@@ -45,6 +42,25 @@
if("shriek")
message = "The [src.name] makes a high-pitched shriek!"
m_type = 1
+ if ("me")
+ if(silent)
+ return
+ if (src.client && (client.muted || client.muted_complete))
+ src << "You are muted."
+ return
+ if (stat)
+ return
+ if(!(message))
+ return
+ else
+ if(cmptext(copytext(message, 1, 3), "v "))
+ message = "[src] [copytext(message, 3)]"
+ m_type = 1
+ else if(cmptext(copytext(message, 1, 3), "h "))
+ message = "[src] [copytext(message, 3)]"
+ m_type = 2
+ else
+ message = "[src] [message]"
else
src << text("Invalid Emote: []", act)
if ((message && src.stat == 0))
diff --git a/code/modules/mob/living/carbon/monkey/emote.dm b/code/modules/mob/living/carbon/monkey/emote.dm
index 37d64603352..b555982764b 100644
--- a/code/modules/mob/living/carbon/monkey/emote.dm
+++ b/code/modules/mob/living/carbon/monkey/emote.dm
@@ -1,4 +1,4 @@
-/mob/living/carbon/monkey/emote(var/act)
+/mob/living/carbon/monkey/emote(var/act,var/m_type=1,var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
@@ -6,8 +6,6 @@
param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
- var/m_type = 1
- var/message
switch(act)
if("sign")
@@ -92,6 +90,25 @@
if("deathgasp")
message = "The [src.name] lets out a faint chimper as it collapses and stops moving..."
m_type = 1
+ if ("me")
+ if(silent)
+ return
+ if (src.client && (client.muted || client.muted_complete))
+ src << "You are muted."
+ return
+ if (stat)
+ return
+ if(!(message))
+ return
+ else
+ if(cmptext(copytext(message, 1, 3), "v "))
+ message = "[src] [copytext(message, 3)]"
+ m_type = 1
+ else if(cmptext(copytext(message, 1, 3), "h "))
+ message = "[src] [copytext(message, 3)]"
+ m_type = 2
+ else
+ message = "[src] [message]"
if("help")
src << "choke, collapse, dance, deathgasp, drool, gasp, shiver, gnarl, jump, paw, moan, nod, roar, roll, scratch,\nscretch, shake, sign-#, sit, sulk, sway, tail, twitch, whimper"
else
diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm
index 7d6740e9136..d5e7b4514e8 100644
--- a/code/modules/mob/living/silicon/robot/emote.dm
+++ b/code/modules/mob/living/silicon/robot/emote.dm
@@ -1,11 +1,9 @@
-/mob/living/silicon/robot/emote(var/act)
+/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)
- var/m_type = 1
- var/message
switch(act)
if ("salute")
@@ -186,8 +184,34 @@
playsound(src.loc, 'buzz-sigh.ogg', 50, 0)
m_type = 2
+ if("law")
+ message = "[src] shows its legal authorization barcode."
+
+ playsound(src.loc, 'biamthelaw.ogg', 50, 0)
+ m_type = 2
+
+ if ("me")
+ if(silent)
+ return
+ if (src.client && (client.muted || client.muted_complete))
+ src << "You are muted."
+ return
+ if (stat)
+ return
+ if(!(message))
+ return
+ else
+ if(cmptext(copytext(message, 1, 3), "v "))
+ message = "[src] [copytext(message, 3)]"
+ m_type = 1
+ else if(cmptext(copytext(message, 1, 3), "h "))
+ message = "[src] [copytext(message, 3)]"
+ m_type = 2
+ else
+ message = "[src] [message]"
+
if("help")
- src << "beep-(none)/mob, ping-(none)/mob, buzz-(none)/mob, look-(none)/mob, stare-(none)/mob, glare-(none)/mob, twitch, twitch_s"
+ src << "beep-(none)/mob, ping-(none)/mob, buzz-(none)/mob, look-(none)/mob, stare-(none)/mob, glare-(none)/mob, twitch, twitch_s, law"
else
src << text("Invalid Emote: []", act)
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index 6c741402696..f584b312272 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -17,10 +17,7 @@
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
- if(ishuman(src))
- usr.emote("me",1,message)
- else
- usr.emote(message)
+ usr.emote("me",1,message)
/mob/proc/say_dead(var/message)
var/name = src.real_name