Merge remote-tracking branch 'VOREStation/master' into upstream-merge-8043

This commit is contained in:
Unknown
2021-05-05 14:13:31 -04:00
257 changed files with 12907 additions and 12481 deletions
+41
View File
@@ -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."
+62
View File
@@ -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()
+32
View File
@@ -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."