mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 04:22:39 +01:00
Ports emote decls from Bay + automatic pain emotes. (#9215)
This commit is contained in:
@@ -12,20 +12,3 @@
|
||||
return
|
||||
|
||||
. = src.say_dead(message)
|
||||
|
||||
|
||||
/mob/abstract/observer/emote(var/act, var/type, var/message)
|
||||
if(!message)
|
||||
return
|
||||
|
||||
if(act != "me")
|
||||
return
|
||||
|
||||
log_emote("Ghost/[src.key] : [message]",ckey=key_name(src))
|
||||
|
||||
if(src.client)
|
||||
if(src.client.prefs.muted & (MUTE_DEADCHAT|MUTE_IC))
|
||||
to_chat(src, "<span class='warning'>You cannot emote in deadchat (muted).</span>")
|
||||
return
|
||||
|
||||
. = src.emote_dead(message)
|
||||
|
||||
@@ -1,30 +1,6 @@
|
||||
// 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/log_emote = 1)
|
||||
if(usr && stat || !use_me && usr == src)
|
||||
to_chat(src, "You are unable to emote.")
|
||||
return
|
||||
|
||||
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
|
||||
if(m_type == 2 && muzzled) return
|
||||
|
||||
var/input
|
||||
if(!message)
|
||||
input = sanitize(input(src,"Choose an emote to display.") as text|null)
|
||||
else
|
||||
input = message
|
||||
if(input)
|
||||
message = "<B>[src]</B> [input]"
|
||||
else
|
||||
return
|
||||
|
||||
|
||||
if (message)
|
||||
send_emote(message, m_type)
|
||||
if (log_emote)
|
||||
log_emote("[name]/[key] : [message]",ckey=key_name(key))
|
||||
|
||||
/mob/proc/emote_dead(var/message)
|
||||
|
||||
if(client.prefs.muted & MUTE_DEADCHAT)
|
||||
|
||||
@@ -18,6 +18,7 @@ var/list/datum/gender/gender_datums = list()
|
||||
var/has = "have"
|
||||
var/is = "are"
|
||||
var/does = "do"
|
||||
var/self = "themselves"
|
||||
|
||||
/datum/gender/male
|
||||
key = "male"
|
||||
@@ -30,6 +31,7 @@ var/list/datum/gender/gender_datums = list()
|
||||
has = "has"
|
||||
is = "is"
|
||||
does = "does"
|
||||
self = "himself"
|
||||
|
||||
/datum/gender/female
|
||||
key = "female"
|
||||
@@ -42,6 +44,7 @@ var/list/datum/gender/gender_datums = list()
|
||||
has = "has"
|
||||
is = "is"
|
||||
does = "does"
|
||||
self = "herself"
|
||||
|
||||
/datum/gender/neuter
|
||||
key = "neuter"
|
||||
@@ -54,3 +57,4 @@ var/list/datum/gender/gender_datums = list()
|
||||
has = "has"
|
||||
is = "is"
|
||||
does = "does"
|
||||
self = "itself"
|
||||
|
||||
@@ -1,121 +0,0 @@
|
||||
/mob/living/carbon/alien/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))
|
||||
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
|
||||
|
||||
switch(act)
|
||||
if ("me")
|
||||
if(silent)
|
||||
return
|
||||
if (src.client)
|
||||
if (client.prefs.muted & MUTE_IC)
|
||||
to_chat(src, "<span class='warning'>You cannot send IC messages (muted).</span>")
|
||||
return
|
||||
if (stat)
|
||||
return
|
||||
if(!(message))
|
||||
return
|
||||
return custom_emote(m_type, message)
|
||||
|
||||
if ("custom")
|
||||
return custom_emote(m_type, message)
|
||||
if("sign")
|
||||
if (!src.restrained())
|
||||
message = text("<B>The alien</B> signs[].", (text2num(param) ? text(" the number []", text2num(param)) : null))
|
||||
m_type = 1
|
||||
if ("burp")
|
||||
if (!muzzled)
|
||||
message = "<B>[src]</B> burps."
|
||||
m_type = 2
|
||||
if("deathgasp")
|
||||
message = "<B>The [src.name]</B> lets out a waning guttural screech, green blood bubbling from its maw."
|
||||
m_type = 2
|
||||
if("scratch")
|
||||
if (!src.restrained())
|
||||
message = "<B>The [src.name]</B> scratches."
|
||||
m_type = 1
|
||||
if("whimper")
|
||||
if (!muzzled)
|
||||
message = "<B>The [src.name]</B> whimpers."
|
||||
m_type = 2
|
||||
if("tail")
|
||||
message = "<B>The [src.name]</B> waves its tail."
|
||||
m_type = 1
|
||||
if("gasp")
|
||||
message = "<B>The [src.name]</B> gasps."
|
||||
m_type = 2
|
||||
if("shiver")
|
||||
message = "<B>The [src.name]</B> shivers."
|
||||
m_type = 2
|
||||
if("drool")
|
||||
message = "<B>The [src.name]</B> drools."
|
||||
m_type = 1
|
||||
if("scretch")
|
||||
if (!muzzled)
|
||||
message = "<B>The [src.name]</B> scretches."
|
||||
m_type = 2
|
||||
if("choke")
|
||||
message = "<B>The [src.name]</B> chokes."
|
||||
m_type = 2
|
||||
if("moan")
|
||||
message = "<B>The [src.name]</B> moans!"
|
||||
m_type = 2
|
||||
if("nod")
|
||||
message = "<B>The [src.name]</B> nods its head."
|
||||
m_type = 1
|
||||
// if("sit")
|
||||
// message = "<B>The [src.name]</B> sits down." //Larvan can't sit down, /N
|
||||
// m_type = 1
|
||||
if("sway")
|
||||
message = "<B>The [src.name]</B> sways around dizzily."
|
||||
m_type = 1
|
||||
if("sulk")
|
||||
message = "<B>The [src.name]</B> sulks down sadly."
|
||||
m_type = 1
|
||||
if("twitch")
|
||||
message = "<B>The [src.name]</B> twitches violently."
|
||||
m_type = 1
|
||||
if("dance")
|
||||
if (!src.restrained())
|
||||
message = "<B>The [src.name]</B> dances around happily."
|
||||
m_type = 1
|
||||
if("roll")
|
||||
if (!src.restrained())
|
||||
message = "<B>The [src.name]</B> rolls."
|
||||
m_type = 1
|
||||
if("shake")
|
||||
message = "<B>The [src.name]</B> shakes its head."
|
||||
m_type = 1
|
||||
if("gnarl")
|
||||
if (!muzzled)
|
||||
message = "<B>The [src.name]</B> gnarls and shows its teeth.."
|
||||
m_type = 2
|
||||
if("jump")
|
||||
message = "<B>The [src.name]</B> jumps!"
|
||||
m_type = 1
|
||||
if("hiss_")
|
||||
message = "<B>The [src.name]</B> hisses softly."
|
||||
m_type = 1
|
||||
if("collapse")
|
||||
Paralyse(2)
|
||||
message = text("<B>[]</B> collapses!", src)
|
||||
m_type = 2
|
||||
if("chirp")
|
||||
message = "<B>The [src.name]</B> chirps!"
|
||||
playsound(src.loc, 'sound/misc/nymphchirp.ogg', 50, 0)
|
||||
m_type = 2
|
||||
if("help")
|
||||
to_chat(src, "burp, chirp, choke, collapse, dance, drool, gasp, shiver, gnarl, jump, moan, nod, roll, scratch,\nscretch, shake, sign-#, sulk, sway, tail, twitch, whimper")
|
||||
else
|
||||
to_chat(src, text("Invalid Emote: []", act))
|
||||
if ((message && src.stat == 0))
|
||||
log_emote("[name]/[key] : [message]",ckey=key_name(key))
|
||||
send_emote(message, m_type)
|
||||
return
|
||||
@@ -1,735 +1,9 @@
|
||||
/mob/living/carbon/human/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))
|
||||
|
||||
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
|
||||
//var/m_type = 1
|
||||
|
||||
for (var/obj/item/implant/I in src)
|
||||
if (I.implanted)
|
||||
I.trigger(act, src)
|
||||
|
||||
if(stat == DEAD && (act != "deathgasp"))
|
||||
return
|
||||
switch(act)
|
||||
if ("airguitar")
|
||||
if (!src.restrained())
|
||||
message = "is strumming the air and headbanging like a safari chimp."
|
||||
m_type = 1
|
||||
|
||||
if ("blink")
|
||||
message = "blinks."
|
||||
m_type = 1
|
||||
|
||||
if ("blink_r")
|
||||
message = "blinks rapidly."
|
||||
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 = "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 (src.miming)
|
||||
return
|
||||
m_type = 2
|
||||
else
|
||||
alert("Unable to use this emote, must be either hearable or visible.")
|
||||
return
|
||||
return custom_emote(m_type, message)
|
||||
|
||||
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 (src.client)
|
||||
if (client.prefs.muted & MUTE_IC)
|
||||
to_chat(src, "<span class='danger'>You cannot send IC messages (muted).</span>")
|
||||
return
|
||||
if (stat)
|
||||
return
|
||||
if(!(message))
|
||||
return
|
||||
return custom_emote(m_type, message)
|
||||
|
||||
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 = "salutes to [param]."
|
||||
else
|
||||
message = "salutes."
|
||||
m_type = 1
|
||||
|
||||
if ("choke")
|
||||
if(miming)
|
||||
message = "clutches [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] 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 (!src.restrained())
|
||||
message = "claps."
|
||||
playsound(loc, 'sound/effects/clap.ogg', 50, 1)
|
||||
m_type = 2
|
||||
if(miming)
|
||||
m_type = 1
|
||||
|
||||
if ("golfclap")
|
||||
if (!src.restrained())
|
||||
message = "claps, clearly unimpressed."
|
||||
playsound(loc, 'sound/effects/golfclap.ogg', 50, 1)
|
||||
m_type = 2
|
||||
if(miming)
|
||||
m_type = 1
|
||||
|
||||
if ("flap")
|
||||
if (!src.restrained())
|
||||
message = "flaps [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] wings."
|
||||
m_type = 2
|
||||
if(miming)
|
||||
m_type = 1
|
||||
|
||||
if ("aflap")
|
||||
if (!src.restrained())
|
||||
message = "flaps [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] 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 violently."
|
||||
m_type = 1
|
||||
|
||||
if ("twitch_s")
|
||||
message = "twitches."
|
||||
m_type = 1
|
||||
|
||||
if ("faint")
|
||||
message = "faints."
|
||||
if(src.sleeping)
|
||||
return //Can't faint while asleep
|
||||
src.sleeping += 10 //Short-short nap
|
||||
m_type = 1
|
||||
|
||||
if ("cough")
|
||||
if(miming)
|
||||
message = "appears to cough!"
|
||||
m_type = 1
|
||||
else
|
||||
if (!muzzled)
|
||||
message = "coughs!"
|
||||
m_type = 2
|
||||
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.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. [get_visible_gender() == MALE ? "He" : get_visible_gender() == FEMALE ? "She" : "They"] [get_visible_gender() == NEUTER ? "frown" : "frowns"]."
|
||||
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("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)
|
||||
|
||||
playsound(loc, 'sound/effects/snap.ogg', 50, 1)
|
||||
var/show_ssd
|
||||
var/mob/living/carbon/human/H
|
||||
if(ishuman(src))
|
||||
H = src
|
||||
show_ssd = H.species.show_ssd
|
||||
if(H && show_ssd && !H.client && !H.teleop)
|
||||
if(H.bg)
|
||||
to_chat(H, span("danger", "You sense some disturbance to your physical body!"))
|
||||
else if(!vr_mob)
|
||||
message = "<span class='danger'>slaps [M] across the face, but they do not respond... Maybe they have S.S.D?</span>"
|
||||
else if(H.client && H.willfully_sleeping)
|
||||
message = "<span class='danger'>slaps [M] across the face, waking them up. Ouch!</span>"
|
||||
H.sleeping = 0
|
||||
H.willfully_sleeping = FALSE
|
||||
else
|
||||
message = "<span class='danger'>slaps [M] across the face. Ouch!</span>"
|
||||
else
|
||||
message = "<span class='danger'>slaps [get_visible_gender() == MALE ? "himself" : get_visible_gender() == FEMALE ? "herself" : "themselves"]!</span>"
|
||||
playsound(loc, 'sound/effects/snap.ogg', 50, 1)
|
||||
SSfeedback.IncrementSimpleStat("selfslap")
|
||||
|
||||
if("snap", "snaps")
|
||||
m_type = 2
|
||||
var/mob/living/carbon/human/H = src
|
||||
var/obj/item/organ/external/L = H.get_organ(BP_L_HAND)
|
||||
var/obj/item/organ/external/R = H.get_organ(BP_R_HAND)
|
||||
var/left_hand_good = 0
|
||||
var/right_hand_good = 0
|
||||
if(L && (!(L.status & ORGAN_DESTROYED)) && (!(L.status & ORGAN_BROKEN)))
|
||||
left_hand_good = 1
|
||||
if(R && (!(R.status & ORGAN_DESTROYED)) && (!(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 [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] fingers."
|
||||
playsound(loc, 'sound/effects/fingersnap.ogg', 50, 1, -3)
|
||||
|
||||
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.\" [src.name] takes a drag from a cigarette and blows his name out in smoke."
|
||||
m_type = 2
|
||||
|
||||
if ("point")
|
||||
if (!src.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 ("raise")
|
||||
if (!src.restrained())
|
||||
message = "raises a hand."
|
||||
m_type = 1
|
||||
|
||||
if("shake")
|
||||
message = "shakes [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] head."
|
||||
m_type = 1
|
||||
|
||||
if ("shrug")
|
||||
message = "shrugs."
|
||||
m_type = 1
|
||||
|
||||
if ("signal")
|
||||
if (!src.restrained())
|
||||
var/t1 = round(text2num(param))
|
||||
if (isnum(t1))
|
||||
if (t1 <= 5 && (!src.r_hand || !src.l_hand))
|
||||
message = "raises [t1] finger\s."
|
||||
else if (t1 <= 10 && (!src.r_hand && !src.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")
|
||||
if (miming)
|
||||
message = "sneezes."
|
||||
m_type = 1
|
||||
else
|
||||
if (!muzzled)
|
||||
message = "sneezes."
|
||||
m_type = 2
|
||||
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 (!src.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 [get_visible_gender() == MALE ? "himself" : get_visible_gender() == FEMALE ? "herself" : "themselves"]."
|
||||
|
||||
if ("handshake")
|
||||
m_type = 1
|
||||
if (!src.restrained() && !src.r_hand)
|
||||
var/mob/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)
|
||||
if (M.canmove && !M.r_hand && !M.restrained())
|
||||
message = "shakes hands with [M]."
|
||||
else
|
||||
message = "holds out [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] hand to [M]."
|
||||
|
||||
if("dap")
|
||||
m_type = 1
|
||||
if (!src.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 [get_visible_gender() == MALE ? "himself" : get_visible_gender() == FEMALE ? "herself" : "themselves"]. Shameful."
|
||||
|
||||
if ("scream")
|
||||
if(stat >= UNCONSCIOUS)
|
||||
return
|
||||
if (miming)
|
||||
message = "acts out a scream!"
|
||||
m_type = 1
|
||||
else
|
||||
if (!muzzled)
|
||||
message = pick(species.scream_emote)
|
||||
else
|
||||
message = "makes a very loud noise."
|
||||
m_type = 2
|
||||
if("swish")
|
||||
src.animate_tail_once()
|
||||
|
||||
if("idle")
|
||||
src.animate_tail_reset()
|
||||
|
||||
if("wag", "sway")
|
||||
src.animate_tail_start()
|
||||
|
||||
if("qwag", "fastsway")
|
||||
src.animate_tail_fast()
|
||||
|
||||
if("swag", "stopsway")
|
||||
src.animate_tail_stop()
|
||||
|
||||
if("beep")
|
||||
if (!isipc(src))
|
||||
to_chat(src, span("notice", "You're not a Machine!"))
|
||||
else
|
||||
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 = "beeps at [param]."
|
||||
else
|
||||
message = "beeps."
|
||||
playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 0)
|
||||
m_type = 1
|
||||
|
||||
if("ping")
|
||||
if (!isipc(src))
|
||||
to_chat(src, span("notice", "You're not a machine!"))
|
||||
else
|
||||
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 = "pings at [param]."
|
||||
else
|
||||
message = "pings."
|
||||
playsound(src.loc, 'sound/machines/ping.ogg', 50, 0)
|
||||
m_type = 1
|
||||
|
||||
if("buzz")
|
||||
if (!isipc(src))
|
||||
to_chat(src, span("notice", "You're not a machine!"))
|
||||
else
|
||||
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 = "buzzes at [param]."
|
||||
else
|
||||
message = "buzzes."
|
||||
playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0)
|
||||
m_type = 1
|
||||
|
||||
if("chirp")
|
||||
if(!is_diona(src))
|
||||
to_chat(src, "<span class='warning'>You are not a Diona!</span>")
|
||||
return
|
||||
message = "chirps!"
|
||||
playsound(src.loc, 'sound/misc/nymphchirp.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("chirp_song")
|
||||
if(!is_diona(src))
|
||||
to_chat(src, "<span class='warning'>You are not a Diona!</span>")
|
||||
return
|
||||
message = "chirps a song!"
|
||||
for(var/mob/living/carbon/alien/diona/D in src)
|
||||
playsound(src.loc, 'sound/misc/nymphchirp.ogg', pick(list(5, 10, 20, 40)), 0)
|
||||
sleep(pick(list(5, 10, 15, 20)))
|
||||
m_type = 2
|
||||
|
||||
if("chitter")
|
||||
if(!isvaurca(src))
|
||||
to_chat(src, "<span class='warning'>You don't have the means to do this!</span>")
|
||||
return
|
||||
message = "chitters."
|
||||
playsound(src.loc, pick('sound/misc/zapsplat/chitter1.ogg', 'sound/misc/zapsplat/chitter2.ogg', 'sound/misc/zapsplat/chitter3.ogg'), 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("vomit")
|
||||
if (!check_has_mouth(src))
|
||||
to_chat(src, "<span class='warning'>You are unable to vomit.</span>")
|
||||
return
|
||||
delayed_vomit()
|
||||
return
|
||||
|
||||
|
||||
if ("help")
|
||||
to_chat(src, "blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, golfclap, collapse, cough, cry, custom, deathgasp, drool, eyebrow, frown, gasp, giggle, groan, grumble, handshake, hug-(none)/mob, glare-(none)/mob, grin, laugh, look-(none)/mob, moan, mumble, nod, pale, point-atom, raise, salute, shake, shiver, shrug, sigh, signal-#1-10, smile, sneeze, sniff, snore, stare-(none)/mob, tremble, twitch, twitch_s, whimper, wink, yawn, swish, sway/wag, fastsway/qwag, stopsway/swag, beep, ping, buzz, slap, snap, chitter, vomit")
|
||||
|
||||
else
|
||||
to_chat(src, span("notice", "Unusable emote '[act]'. Say *help for a list."))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (message)
|
||||
log_emote("[name]/[key] : [message]",ckey=key_name(src))
|
||||
custom_emote(m_type,message)
|
||||
|
||||
|
||||
/mob/living/carbon/human/verb/pose()
|
||||
set name = "Set Pose"
|
||||
set desc = "Sets a description which will be shown when someone examines you."
|
||||
set category = "IC"
|
||||
|
||||
pose = sanitize(input(usr, "This is [src]. [get_visible_gender() == MALE ? "He" : get_visible_gender() == FEMALE ? "She" : "They"]...", "Pose", html_decode(pose)) as message)
|
||||
pose = sanitize(input(usr, "This is [src]. [get_visible_gender() == MALE ? "He" : get_visible_gender() == FEMALE ? "She" : "They"]...", "Pose", html_decode(pose)) as message)
|
||||
|
||||
/mob/living/carbon/human/verb/set_flavor()
|
||||
set name = "Set Flavour Text"
|
||||
|
||||
@@ -105,8 +105,7 @@
|
||||
if(!(lying || resting))
|
||||
if(can_feel_pain())
|
||||
emote("scream")
|
||||
custom_emote(1, "collapses!")
|
||||
Weaken(5) //can't emote while weakened, apparently.
|
||||
emote("collapse")
|
||||
|
||||
/mob/living/carbon/human/proc/handle_grasp()
|
||||
if(!l_hand && !r_hand)
|
||||
|
||||
@@ -97,7 +97,6 @@
|
||||
var/death_sound
|
||||
var/death_message = "falls limp and stops moving..."
|
||||
var/death_message_range = 2
|
||||
var/list/scream_emote = list("screams!")
|
||||
var/knockout_message = "has been knocked unconscious!"
|
||||
var/halloss_message = "slumps to the ground, too weak to continue fighting."
|
||||
var/halloss_message_self = "You're in too much pain to keep going..."
|
||||
@@ -150,6 +149,13 @@
|
||||
"Your chilly flesh stands out in goosebumps."
|
||||
)
|
||||
|
||||
// Order matters, higher pain level should be higher up
|
||||
var/list/pain_emotes_with_pain_level = list(
|
||||
list(/decl/emote/audible/scream, /decl/emote/audible/whimper, /decl/emote/audible/moan, /decl/emote/audible/cry) = 70,
|
||||
list(/decl/emote/audible/grunt, /decl/emote/audible/groan, /decl/emote/audible/moan) = 40,
|
||||
list(/decl/emote/audible/grunt, /decl/emote/audible/groan) = 10,
|
||||
)
|
||||
|
||||
// HUD data vars.
|
||||
var/datum/hud_data/hud
|
||||
var/hud_type
|
||||
@@ -615,3 +621,13 @@
|
||||
|
||||
/datum/species/proc/handle_despawn()
|
||||
return
|
||||
|
||||
/datum/species/proc/get_pain_emote(var/mob/living/carbon/human/H, var/pain_power)
|
||||
if(flags & NO_PAIN)
|
||||
return
|
||||
for(var/pain_emotes in pain_emotes_with_pain_level)
|
||||
var/pain_level = pain_emotes_with_pain_level[pain_emotes]
|
||||
if(pain_level >= pain_power)
|
||||
// This assumes that if a pain-level has been defined it also has a list of emotes to go with it
|
||||
var/decl/emote/E = decls_repository.get_decl(pick(pain_emotes))
|
||||
return E.key
|
||||
|
||||
@@ -52,8 +52,6 @@
|
||||
organ_med_burn_message = "<span class='danger'><font size=3>The nymph making up our %PARTNAME% burns terribly!</font></span>"
|
||||
organ_high_burn_message = "<span class='danger'><font size=3>The nymph making up our %PARTNAME% screams in agony at the burning!</font></span>"
|
||||
|
||||
scream_emote = list("creaks in pain!", "rustles in agony!")
|
||||
scream_emote = "screams!"
|
||||
halloss_message = "creaks and crumbles to the floor."
|
||||
halloss_message_self = "We can't take this much pain..."
|
||||
pain_messages = list("We're in pain", "We hurt so much", "We can't stand the pain")
|
||||
|
||||
@@ -88,6 +88,12 @@
|
||||
"Your scales bristle against the cold."
|
||||
)
|
||||
|
||||
pain_emotes_with_pain_level = list(
|
||||
list(/decl/emote/audible/wheeze, /decl/emote/audible/roar, /decl/emote/audible/bellow) = 80,
|
||||
list(/decl/emote/audible/grunt, /decl/emote/audible/groan, /decl/emote/audible/wheeze, /decl/emote/audible/hiss) = 50,
|
||||
list(/decl/emote/audible/grunt, /decl/emote/audible/groan, /decl/emote/audible/hiss) = 20,
|
||||
)
|
||||
|
||||
pain_messages = list("It hurts so much", "You really need some painkillers", "Ancestors, it hurts")
|
||||
|
||||
move_trail = /obj/effect/decal/cleanable/blood/tracks/claw
|
||||
|
||||
@@ -95,8 +95,8 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
/mob/living/proc/get_default_language()
|
||||
return default_language
|
||||
|
||||
/mob/living/proc/is_muzzled()
|
||||
return 0
|
||||
/mob/proc/is_muzzled()
|
||||
return istype(wear_mask, /obj/item/clothing/mask/muzzle)
|
||||
|
||||
/mob/living/proc/handle_speech_problems(var/message, var/verb, var/message_mode)
|
||||
var/list/returns[4]
|
||||
|
||||
@@ -120,11 +120,6 @@
|
||||
|
||||
return verb
|
||||
|
||||
|
||||
/mob/proc/emote(var/act, var/type, var/message)
|
||||
if(act == "me")
|
||||
return custom_emote(type, message)
|
||||
|
||||
/mob/proc/get_ear()
|
||||
// returns an atom representing a location on the map from which this
|
||||
// mob can hear things
|
||||
|
||||
Reference in New Issue
Block a user