mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-26 13:39:16 +01:00
Merge remote-tracking branch 'VOREStation/master' into upstream-merge-8043
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
var/list/_default_mob_emotes = list(
|
||||
/decl/emote/visible,
|
||||
/decl/emote/visible/scratch,
|
||||
/decl/emote/visible/drool,
|
||||
/decl/emote/visible/nod,
|
||||
/decl/emote/visible/sway,
|
||||
/decl/emote/visible/sulk,
|
||||
/decl/emote/visible/twitch,
|
||||
/decl/emote/visible/twitch_v,
|
||||
/decl/emote/visible/dance,
|
||||
/decl/emote/visible/roll,
|
||||
/decl/emote/visible/shake,
|
||||
/decl/emote/visible/jump,
|
||||
/decl/emote/visible/shiver,
|
||||
/decl/emote/visible/collapse,
|
||||
/decl/emote/visible/spin,
|
||||
/decl/emote/visible/sidestep,
|
||||
/decl/emote/audible,
|
||||
/decl/emote/audible/hiss,
|
||||
/decl/emote/audible/whimper,
|
||||
/decl/emote/audible/gasp,
|
||||
/decl/emote/audible/scretch,
|
||||
/decl/emote/audible/choke,
|
||||
/decl/emote/audible/moan,
|
||||
/decl/emote/audible/gnarl,
|
||||
)
|
||||
|
||||
/mob
|
||||
var/list/usable_emotes
|
||||
|
||||
/mob/proc/update_emotes(var/skip_sort)
|
||||
usable_emotes = list()
|
||||
for(var/emote in get_default_emotes())
|
||||
var/decl/emote/emote_datum = decls_repository.get_decl(emote)
|
||||
if(emote_datum.check_user(src))
|
||||
usable_emotes[emote_datum.key] = emote_datum
|
||||
if(!skip_sort)
|
||||
usable_emotes = sortAssoc(usable_emotes)
|
||||
|
||||
/mob/proc/get_default_emotes()
|
||||
return global._default_mob_emotes
|
||||
@@ -0,0 +1,11 @@
|
||||
/datum/species
|
||||
var/list/default_emotes = list()
|
||||
|
||||
/mob/living/carbon/update_emotes(var/skip_sort)
|
||||
. = ..(skip_sort = TRUE)
|
||||
if(species)
|
||||
for(var/emote in species.default_emotes)
|
||||
var/decl/emote/emote_datum = decls_repository.get_decl(emote)
|
||||
if(emote_datum.check_user(src))
|
||||
usable_emotes[emote_datum.key] = emote_datum
|
||||
usable_emotes = sortAssoc(usable_emotes)
|
||||
@@ -0,0 +1,52 @@
|
||||
/decl/emote/audible/cough
|
||||
key = "cough"
|
||||
emote_message_1p = "You cough!"
|
||||
emote_message_1p_target = "You cough on TARGET!"
|
||||
emote_message_3p = "coughs!"
|
||||
emote_message_3p_target = "coughs on TARGET!"
|
||||
emote_message_synthetic_1p_target = "You emit a robotic cough towards TARGET."
|
||||
emote_message_synthetic_1p = "You emit a robotic cough."
|
||||
emote_message_synthetic_3p_target = "emits a robotic cough towards TARGET."
|
||||
emote_message_synthetic_3p = "emits a robotic cough."
|
||||
emote_volume = 120
|
||||
emote_volume_synthetic = 50
|
||||
|
||||
conscious = FALSE
|
||||
emote_sound_synthetic = list(
|
||||
FEMALE = list(
|
||||
'sound/effects/mob_effects/f_machine_cougha.ogg',
|
||||
'sound/effects/mob_effects/f_machine_coughb.ogg'
|
||||
),
|
||||
MALE = list(
|
||||
'sound/effects/mob_effects/m_machine_cougha.ogg',
|
||||
'sound/effects/mob_effects/m_machine_coughb.ogg',
|
||||
'sound/effects/mob_effects/m_machine_coughc.ogg'
|
||||
),
|
||||
NEUTER = list(
|
||||
'sound/effects/mob_effects/m_machine_cougha.ogg',
|
||||
'sound/effects/mob_effects/m_machine_coughb.ogg',
|
||||
'sound/effects/mob_effects/m_machine_coughc.ogg'
|
||||
),
|
||||
PLURAL = list(
|
||||
'sound/effects/mob_effects/m_machine_cougha.ogg',
|
||||
'sound/effects/mob_effects/m_machine_coughb.ogg',
|
||||
'sound/effects/mob_effects/m_machine_coughc.ogg'
|
||||
)
|
||||
)
|
||||
|
||||
/decl/emote/audible/cough/get_emote_sound(var/atom/user)
|
||||
if(ishuman(user) && !check_synthetic(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.get_gender() == FEMALE)
|
||||
if(length(H.species.female_cough_sounds))
|
||||
return list(
|
||||
"sound" = H.species.female_cough_sounds,
|
||||
"vol" = emote_volume
|
||||
)
|
||||
else
|
||||
if(length(H.species.male_cough_sounds))
|
||||
return list(
|
||||
"sound" = H.species.male_cough_sounds,
|
||||
"vol" = emote_volume
|
||||
)
|
||||
return ..()
|
||||
@@ -0,0 +1,129 @@
|
||||
/decl/emote/audible/awoo
|
||||
key = "awoo"
|
||||
emote_message_3p = "lets out an awoo."
|
||||
emote_sound = 'sound/voice/awoo.ogg'
|
||||
/decl/emote/audible/awoo2
|
||||
key = "awoo2"
|
||||
emote_message_3p = "lets out an awoo."
|
||||
emote_sound = 'sound/voice/long_awoo.ogg'
|
||||
/decl/emote/audible/growl
|
||||
key = "growl"
|
||||
emote_message_3p = "lets out a growl."
|
||||
emote_sound = 'sound/voice/growl.ogg'
|
||||
/decl/emote/audible/woof
|
||||
key = "woof"
|
||||
emote_message_3p = "lets out a woof."
|
||||
emote_sound = 'sound/voice/woof.ogg'
|
||||
/decl/emote/audible/woof2
|
||||
key = "woof2"
|
||||
emote_message_3p = "lets out a woof."
|
||||
emote_sound = 'sound/voice/woof2.ogg'
|
||||
/decl/emote/audible/nya
|
||||
key = "nya"
|
||||
emote_message_3p = "lets out a nya."
|
||||
emote_sound = 'sound/voice/nya.ogg'
|
||||
/decl/emote/audible/mrowl
|
||||
key = "mrowl"
|
||||
emote_message_3p = "mrowls."
|
||||
emote_sound = 'sound/voice/mrow.ogg'
|
||||
/decl/emote/audible/peep
|
||||
key = "peep"
|
||||
emote_message_3p = "peeps like a bird."
|
||||
emote_sound = 'sound/voice/peep.ogg'
|
||||
/decl/emote/audible/chirp
|
||||
key = "chirp"
|
||||
emote_message_3p = "chirps!"
|
||||
emote_sound = 'sound/misc/nymphchirp.ogg'
|
||||
/decl/emote/audible/hoot
|
||||
key = "hoot"
|
||||
emote_message_3p = "hoots!"
|
||||
emote_sound = 'sound/voice/hoot.ogg'
|
||||
/decl/emote/audible/weh
|
||||
key = "weh"
|
||||
emote_message_3p = "lets out a weh."
|
||||
emote_sound = 'sound/voice/weh.ogg'
|
||||
/decl/emote/audible/merp
|
||||
key = "merp"
|
||||
emote_message_3p = "lets out a merp."
|
||||
emote_sound = 'sound/voice/merp.ogg'
|
||||
/decl/emote/audible/myarp
|
||||
key = "myarp"
|
||||
emote_message_3p = "lets out a myarp."
|
||||
emote_sound = 'sound/voice/myarp.ogg'
|
||||
/decl/emote/audible/bark
|
||||
key = "bark"
|
||||
emote_message_3p = "lets out a bark."
|
||||
emote_sound = 'sound/voice/bark2.ogg'
|
||||
/decl/emote/audible/bork
|
||||
key = "bork"
|
||||
emote_message_3p = "lets out a bork."
|
||||
emote_sound = 'sound/voice/bork.ogg'
|
||||
/decl/emote/audible/mrow
|
||||
emote_message_3p = "lets out a mrow."
|
||||
emote_sound = 'sound/voice/mrow.ogg'
|
||||
/decl/emote/audible/hypno
|
||||
emote_message_3p = "lets out a mystifying tone."
|
||||
emote_sound = 'sound/voice/hypno.ogg'
|
||||
/decl/emote/audible/hiss
|
||||
key = "hiss"
|
||||
emote_message_3p = "lets out a hiss."
|
||||
emote_sound = 'sound/voice/hiss.ogg'
|
||||
/decl/emote/audible/rattle
|
||||
key = "rattle"
|
||||
emote_message_3p = "rattles!"
|
||||
emote_sound = 'sound/voice/rattle.ogg'
|
||||
/decl/emote/audible/squeak
|
||||
key = "squeak"
|
||||
emote_message_3p = "lets out a squeak."
|
||||
emote_sound = 'sound/effects/mouse_squeak.ogg'
|
||||
/decl/emote/audible/geck
|
||||
key = "geck"
|
||||
emote_message_3p = "geckers!"
|
||||
emote_sound = 'sound/voice/geck.ogg'
|
||||
/decl/emote/audible/baa
|
||||
key = "baa"
|
||||
emote_message_3p = "lets out a baa."
|
||||
emote_sound = 'sound/voice/baa.ogg'
|
||||
/decl/emote/audible/baa2
|
||||
key = "baa2"
|
||||
emote_message_3p = "bleats."
|
||||
emote_sound = 'sound/voice/baa2.ogg'
|
||||
/*
|
||||
/decl/emote/audible/deathgasp2
|
||||
key = "deathgasp2"
|
||||
emote_message_3p = "[species.get_death_message()]"
|
||||
m_type = 1
|
||||
emote_sound = 'sound/voice/deathgasp2.ogg'
|
||||
*/
|
||||
/decl/emote/audible/mar
|
||||
key = "mar"
|
||||
emote_message_3p = "lets out a mar."
|
||||
emote_sound = 'sound/voice/mar.ogg'
|
||||
/decl/emote/audible/wurble
|
||||
key = "wurble"
|
||||
emote_message_3p = "lets out a wurble."
|
||||
emote_sound = 'sound/voice/wurble.ogg'
|
||||
/decl/emote/audible/snort
|
||||
key = "snort"
|
||||
emote_message_3p = "snorts!"
|
||||
emote_sound = 'sound/voice/Snort.ogg'
|
||||
/decl/emote/audible/meow
|
||||
key = "meow"
|
||||
emote_message_3p = "gently meows!"
|
||||
emote_sound = 'sound/voice/Meow.ogg'
|
||||
/decl/emote/audible/moo
|
||||
key = "moo"
|
||||
emote_message_3p = "takes a breath and lets out a moo."
|
||||
emote_sound = 'sound/voice/Moo.ogg'
|
||||
/decl/emote/audible/croak
|
||||
key = "croak"
|
||||
emote_message_3p = "rumbles their throat, puffs their cheeks and croaks."
|
||||
emote_sound = 'sound/voice/Croak.ogg'
|
||||
/decl/emote/audible/gao
|
||||
key = "gao"
|
||||
emote_message_3p = "lets out a gao."
|
||||
emote_sound = 'sound/voice/gao.ogg'
|
||||
/decl/emote/audible/cackle
|
||||
key = "cackle"
|
||||
emote_message_3p = "cackles hysterically!"
|
||||
emote_sound = 'sound/voice/YeenCackle.ogg'
|
||||
@@ -0,0 +1,16 @@
|
||||
/decl/emote/audible/scream
|
||||
key = "scream"
|
||||
emote_message_1p = "You scream!"
|
||||
emote_message_3p = "screams!"
|
||||
|
||||
/decl/emote/audible/scream/get_emote_message_1p(var/atom/user, var/atom/target, var/extra_params)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
return "You [H.species.scream_verb_1p]!"
|
||||
. = ..()
|
||||
|
||||
/decl/emote/audible/cough/get_emote_message_3p(var/atom/user, var/atom/target, var/extra_params)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
return "[H.species.scream_verb_3p]!"
|
||||
. = ..()
|
||||
@@ -0,0 +1,24 @@
|
||||
/decl/emote/audible/slap
|
||||
key = "slap"
|
||||
emote_message_1p_target = "You slap TARGET across the face. Ouch!"
|
||||
emote_message_1p = "You slap yourself across the face!"
|
||||
emote_message_3p_target = "slaps TARGET across the face. Ouch!"
|
||||
emote_message_3p = "slaps USER_SELF across the face!"
|
||||
emote_sound = 'sound/effects/snap.ogg'
|
||||
check_restraints = TRUE
|
||||
check_range = 1
|
||||
|
||||
/decl/emote/audible/slap/New()
|
||||
..()
|
||||
emote_message_1p_target = SPAN_DANGER(emote_message_1p_target)
|
||||
emote_message_1p = SPAN_DANGER(emote_message_1p)
|
||||
emote_message_3p_target = SPAN_DANGER(emote_message_3p_target)
|
||||
emote_message_3p = SPAN_DANGER(emote_message_3p)
|
||||
|
||||
/decl/emote/audible/slap/do_extra(var/atom/user, var/atom/target)
|
||||
. = ..()
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
var/obj/item/clothing/mask/smokable/mask = H.wear_mask
|
||||
if(istype(mask) && H.unEquip(mask))
|
||||
mask.forceMove(get_turf(H))
|
||||
@@ -0,0 +1,29 @@
|
||||
/decl/emote/audible/sneeze
|
||||
key = "sneeze"
|
||||
emote_message_1p = "You sneeze."
|
||||
emote_message_3p = "sneezes."
|
||||
emote_sound_synthetic = list(
|
||||
FEMALE = 'sound/effects/mob_effects/machine_sneeze.ogg',
|
||||
MALE = 'sound/effects/mob_effects/f_machine_sneeze.ogg',
|
||||
NEUTER = 'sound/effects/mob_effects/f_machine_sneeze.ogg',
|
||||
PLURAL = 'sound/effects/mob_effects/f_machine_sneeze.ogg'
|
||||
)
|
||||
emote_message_synthetic_1p = "You emit a robotic sneeze."
|
||||
emote_message_synthetic_1p_target = "You emit a robotic sneeze towards TARGET."
|
||||
emote_message_synthetic_3p = "emits a robotic sneeze."
|
||||
emote_message_synthetic_3p_target = "emits a robotic sneeze towards TARGET."
|
||||
|
||||
/decl/emote/audible/sneeze/get_emote_sound(var/atom/user)
|
||||
if(ishuman(user) && !check_synthetic(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.get_gender() == FEMALE)
|
||||
return list(
|
||||
"sound" = H.species.female_sneeze_sound,
|
||||
"vol" = emote_volume
|
||||
)
|
||||
else
|
||||
return list(
|
||||
"sound" = H.species.male_sneeze_sound,
|
||||
"vol" = emote_volume
|
||||
)
|
||||
return ..()
|
||||
@@ -0,0 +1,36 @@
|
||||
/decl/emote/audible/whistle
|
||||
key = "whistle"
|
||||
emote_message_1p = "You whistle a tune."
|
||||
emote_message_3p = "whistles a tune."
|
||||
emote_sound = 'sound/voice/longwhistle.ogg'
|
||||
emote_message_muffled = "makes a light spitting noise, a poor attempt at a whistle."
|
||||
emote_sound_synthetic = 'sound/voice/longwhistle_robot.ogg'
|
||||
emote_message_synthetic_1p = "You whistle a robotic tune."
|
||||
emote_message_synthetic_3p = "whistles a robotic tune."
|
||||
|
||||
/decl/emote/audible/whistle/quiet
|
||||
key = "qwhistle"
|
||||
emote_message_1p = "You whistle quietly."
|
||||
emote_message_3p = "whistles quietly."
|
||||
emote_sound = 'sound/voice/shortwhistle.ogg'
|
||||
emote_message_synthetic_1p = "You whistle robotically."
|
||||
emote_message_synthetic_3p = "whistles robotically."
|
||||
emote_sound_synthetic = 'sound/voice/shortwhistle_robot.ogg'
|
||||
|
||||
/decl/emote/audible/whistle/wolf
|
||||
key = "wwhistle"
|
||||
emote_message_1p = "You whistle inappropriately."
|
||||
emote_message_3p = "whistles inappropriately."
|
||||
emote_sound = 'sound/voice/wolfwhistle.ogg'
|
||||
emote_message_synthetic_1p = "You beep inappropriately."
|
||||
emote_message_synthetic_3p = "beeps inappropriately."
|
||||
emote_sound_synthetic = 'sound/voice/wolfwhistle_robot.ogg'
|
||||
|
||||
/decl/emote/audible/whistle/summon
|
||||
key = "swhistle"
|
||||
emote_message_1p = "You whistle a tune."
|
||||
emote_message_3p = "whistles a tune."
|
||||
emote_sound = 'sound/voice/summon_whistle.ogg'
|
||||
emote_message_synthetic_1p = "You whistle a robotic tune."
|
||||
emote_message_synthetic_3p = "whistles a robotic tune."
|
||||
emote_sound_synthetic = 'sound/voice/summon_whistle_robot.ogg'
|
||||
@@ -0,0 +1,40 @@
|
||||
/decl/emote/exertion/biological
|
||||
key = "esweat"
|
||||
emote_range = 4
|
||||
emote_message_1p = "You are sweating heavily."
|
||||
emote_message_3p = "is sweating heavily."
|
||||
|
||||
/decl/emote/exertion/biological/check_user(mob/living/user)
|
||||
if(istype(user) && !user.isSynthetic())
|
||||
return ..()
|
||||
return FALSE
|
||||
|
||||
/decl/emote/exertion/biological/breath
|
||||
key = "ebreath"
|
||||
emote_message_1p = "You feel out of breath."
|
||||
emote_message_3p = "looks out of breath."
|
||||
|
||||
/decl/emote/exertion/biological/pant
|
||||
key = "epant"
|
||||
emote_range = 3
|
||||
message_type = AUDIBLE_MESSAGE
|
||||
emote_message_1p = "You pant to catch your breath."
|
||||
emote_message_3p = "pants for air."
|
||||
emote_message_impaired = "You can see USER breathing heavily."
|
||||
|
||||
/decl/emote/exertion/synthetic
|
||||
key = "ewhine"
|
||||
emote_range = 3
|
||||
message_type = AUDIBLE_MESSAGE
|
||||
emote_message_1p = "You overstress your actuators."
|
||||
emote_message_3p = "USER's actuators whine with strain."
|
||||
|
||||
/decl/emote/exertion/synthetic/check_user(mob/living/user)
|
||||
if(istype(user) && user.isSynthetic())
|
||||
return ..()
|
||||
return FALSE
|
||||
|
||||
/decl/emote/exertion/synthetic/creak
|
||||
key = "ecreak"
|
||||
emote_message_1p = "Your chassis stress indicators spike."
|
||||
emote_message_3p = "USER's joints creak with stress."
|
||||
@@ -0,0 +1,33 @@
|
||||
// Not specifically /human type because those won't allow FBPs to use them
|
||||
/decl/emote/helper/vwag
|
||||
key = "vwag"
|
||||
emote_message_3p = ""
|
||||
|
||||
/decl/emote/helper/vwag/check_user(mob/living/carbon/human/user)
|
||||
if(!istype(user) || (!user.tail_style || !user.tail_style.ani_state))
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/decl/emote/helper/vwag/do_emote(var/mob/living/carbon/human/user, var/extra_params)
|
||||
if(user.toggle_tail(message = 1))
|
||||
return ..()
|
||||
|
||||
/decl/emote/helper/vwag/get_emote_message_3p(var/mob/living/carbon/human/user, var/atom/target, var/extra_params)
|
||||
return "[user.wagging ? "starts" : "stops"] wagging USER_THEIR tail."
|
||||
|
||||
|
||||
/decl/emote/helper/vflap
|
||||
key = "vflap"
|
||||
emote_message_3p = ""
|
||||
|
||||
/decl/emote/helper/vflap/check_user(mob/living/carbon/human/user)
|
||||
if(!istype(user) || (!user.wing_style || !user.wing_style.ani_state))
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/decl/emote/helper/vflap/do_emote(var/mob/living/carbon/human/user, var/extra_params)
|
||||
if(user.toggle_wing(message = 1))
|
||||
return ..()
|
||||
|
||||
/decl/emote/helper/vflap/get_emote_message_3p(var/mob/living/carbon/human/user, var/atom/target, var/extra_params)
|
||||
return "[user.flapping ? "starts" : "stops"] flapping USER_THEIR wings."
|
||||
@@ -0,0 +1,62 @@
|
||||
/decl/emote/human
|
||||
key = "vomit"
|
||||
|
||||
/decl/emote/human/check_user(var/mob/living/carbon/human/user)
|
||||
return (istype(user))//VOREStation Edit - What does a mouth have to do with wagging?? && user.check_has_mouth() && !user.isSynthetic())
|
||||
|
||||
/decl/emote/human/do_emote(var/mob/living/carbon/human/user)
|
||||
user.vomit()
|
||||
|
||||
/decl/emote/human/deathgasp
|
||||
key = "deathgasp"
|
||||
|
||||
/decl/emote/human/deathgasp/do_emote(mob/living/carbon/human/user)
|
||||
if(istype(user) && user.species.get_death_message(user) == DEATHGASP_NO_MESSAGE)
|
||||
to_chat(user, SPAN_WARNING("Your species has no deathgasp."))
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/decl/emote/human/deathgasp/get_emote_message_3p(var/mob/living/carbon/human/user)
|
||||
return "USER [user.species.get_death_message(user)]"
|
||||
|
||||
/decl/emote/human/swish
|
||||
key = "swish"
|
||||
|
||||
/decl/emote/human/swish/do_emote(var/mob/living/carbon/human/user)
|
||||
user.animate_tail_once()
|
||||
|
||||
/decl/emote/human/wag
|
||||
key = "wag"
|
||||
|
||||
/decl/emote/human/wag/do_emote(var/mob/living/carbon/human/user)
|
||||
user.animate_tail_start()
|
||||
|
||||
/decl/emote/human/sway
|
||||
key = "sway"
|
||||
|
||||
/decl/emote/human/sway/do_emote(var/mob/living/carbon/human/user)
|
||||
user.animate_tail_start()
|
||||
|
||||
/decl/emote/human/qwag
|
||||
key = "qwag"
|
||||
|
||||
/decl/emote/human/qwag/do_emote(var/mob/living/carbon/human/user)
|
||||
user.animate_tail_fast()
|
||||
|
||||
/decl/emote/human/fastsway
|
||||
key = "fastsway"
|
||||
|
||||
/decl/emote/human/fastsway/do_emote(var/mob/living/carbon/human/user)
|
||||
user.animate_tail_fast()
|
||||
|
||||
/decl/emote/human/swag
|
||||
key = "swag"
|
||||
|
||||
/decl/emote/human/swag/do_emote(var/mob/living/carbon/human/user)
|
||||
user.animate_tail_stop()
|
||||
|
||||
/decl/emote/human/stopsway
|
||||
key = "stopsway"
|
||||
|
||||
/decl/emote/human/stopsway/do_emote(var/mob/living/carbon/human/user)
|
||||
user.animate_tail_stop()
|
||||
@@ -0,0 +1,32 @@
|
||||
/decl/emote/slime
|
||||
key = "nomood"
|
||||
var/mood
|
||||
|
||||
/decl/emote/slime/do_extra(var/mob/living/simple_mob/slime/user)
|
||||
. = ..()
|
||||
if(istype(user))
|
||||
user.mood = mood
|
||||
user.update_icon()
|
||||
|
||||
/decl/emote/slime/check_user(var/atom/user)
|
||||
return isslime(user)
|
||||
|
||||
/decl/emote/slime/pout
|
||||
key = "pout"
|
||||
mood = "pout"
|
||||
|
||||
/decl/emote/slime/sad
|
||||
key = "sad"
|
||||
mood = "sad"
|
||||
|
||||
/decl/emote/slime/angry
|
||||
key = "angry"
|
||||
mood = "angry"
|
||||
|
||||
/decl/emote/slime/frown
|
||||
key = "frown"
|
||||
mood = "mischevous"
|
||||
|
||||
/decl/emote/slime/smile
|
||||
key = "smile"
|
||||
mood = ":3"
|
||||
@@ -0,0 +1,76 @@
|
||||
/decl/emote/visible/spin
|
||||
key = "spin"
|
||||
check_restraints = TRUE
|
||||
emote_message_3p = "spins!"
|
||||
|
||||
/decl/emote/visible/spin/do_extra(mob/user)
|
||||
if(istype(user))
|
||||
user.spin(20, 1)
|
||||
|
||||
/decl/emote/visible/sidestep
|
||||
key = "sidestep"
|
||||
check_restraints = TRUE
|
||||
emote_message_3p = "steps rhythmically and moves side to side."
|
||||
|
||||
/decl/emote/visible/sidestep/do_extra(mob/user)
|
||||
if(istype(user))
|
||||
animate(user, pixel_x = 5, time = 5)
|
||||
sleep(3)
|
||||
animate(user, pixel_x = -5, time = 5)
|
||||
animate(pixel_x = user.default_pixel_x, pixel_y = user.default_pixel_x, time = 2)
|
||||
|
||||
/decl/emote/visible/flip
|
||||
key = "flip"
|
||||
emote_message_1p = "You do a flip!"
|
||||
emote_message_3p = "does a flip!"
|
||||
emote_sound = 'sound/effects/bodyfall4.ogg'
|
||||
|
||||
/decl/emote/visible/flip/do_extra(mob/user)
|
||||
. = ..()
|
||||
if(istype(user))
|
||||
user.SpinAnimation(7,1)
|
||||
|
||||
/decl/emote/visible/floorspin
|
||||
key = "floorspin"
|
||||
emote_message_1p = "You spin around on the floor!"
|
||||
emote_message_3p = "spins around on the floor!"
|
||||
var/static/list/spin_dirs = list(
|
||||
NORTH,
|
||||
SOUTH,
|
||||
EAST,
|
||||
WEST,
|
||||
EAST,
|
||||
SOUTH,
|
||||
NORTH,
|
||||
SOUTH,
|
||||
EAST,
|
||||
WEST,
|
||||
EAST,
|
||||
SOUTH,
|
||||
NORTH,
|
||||
SOUTH,
|
||||
EAST,
|
||||
WEST,
|
||||
EAST,
|
||||
SOUTH
|
||||
)
|
||||
|
||||
/decl/emote/visible/floorspin/proc/spin_dir(var/mob/user)
|
||||
set waitfor = FALSE
|
||||
for(var/i in spin_dirs)
|
||||
user.set_dir(i)
|
||||
sleep(1)
|
||||
if(QDELETED(user))
|
||||
return
|
||||
|
||||
/decl/emote/visible/floorspin/proc/spin_anim(var/mob/user)
|
||||
set waitfor = FALSE
|
||||
sleep(1)
|
||||
if(!QDELETED(user))
|
||||
user.SpinAnimation(10,1)
|
||||
|
||||
/decl/emote/visible/floorspin/do_extra(mob/user)
|
||||
. = ..()
|
||||
if(istype(user))
|
||||
spin_dir(user)
|
||||
spin_anim(user)
|
||||
@@ -0,0 +1,10 @@
|
||||
/decl/emote/visible/vomit
|
||||
key = "vomit"
|
||||
|
||||
/decl/emote/visible/vomit/do_emote(var/atom/user, var/extra_params)
|
||||
if(isliving(user))
|
||||
var/mob/living/M = user
|
||||
if(!M.isSynthetic())
|
||||
M.vomit()
|
||||
return
|
||||
to_chat(src, SPAN_WARNING("You are unable to vomit."))
|
||||
@@ -0,0 +1,7 @@
|
||||
/decl/emote/visible/mlem
|
||||
key = "mlem"
|
||||
emote_message_3p = "mlems USER_THEIR tongue up over USER_THEIR nose. Mlem."
|
||||
|
||||
/decl/emote/visible/blep
|
||||
key = "blep"
|
||||
emote_message_3p = "bleps USER_THEIR tongue out. Blep."
|
||||
Reference in New Issue
Block a user