Ports emote decls from Bay + automatic pain emotes. (#9215)

This commit is contained in:
Matt Atlas
2020-07-03 20:14:23 +02:00
committed by GitHub
parent 431949383f
commit 107bbc58d8
30 changed files with 1369 additions and 908 deletions
-17
View File
@@ -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)
-24
View File
@@ -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)
+4
View File
@@ -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 -727
View File
@@ -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
+2 -2
View File
@@ -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]
-5
View File
@@ -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