diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 57ea8e9163..a26e345e95 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -156,9 +156,59 @@ /datum/emote/sound var/vary = FALSE //used for the honk borg emote var/volume = 50 + // Default time before using another audio emote + var/emote_cooldown = 1 SECONDS + + // Default volume of the emote + var/emote_volume = 50 + + // Default range modifier + var/emote_range = -1 + var/emote_distance_multiplier = SOUND_DEFAULT_DISTANCE_MULTIPLIER + var/emote_distance_multiplier_min_range = SOUND_DEFAULT_MULTIPLIER_EFFECT_RANGE + + // Default pitch variance + var/emote_pitch_variance = 1 + + // Default audio falloff settings + var/emote_falloff_exponent = SOUND_FALLOFF_EXPONENT + var/emote_falloff_distance = SOUND_DEFAULT_FALLOFF_DISTANCE + + // Default frequency + var/emote_frequency = null + + // Default channel + var/emote_channel = 0 + + // Should the emote consider atmospheric pressure? + var/emote_check_pressure = TRUE + + // Should the emote ignore walls? + var/emote_ignore_walls = FALSE + + // Default wet and dry settings (???) + var/emote_wetness = -10000 + var/emote_dryness = 0 mob_type_allowed_typecache = list(/mob/living/brain, /mob/living/silicon, /mob/camera/aiEye) +/datum/emote/sound/can_run_emote(mob/living/user, status_check, intentional = FALSE) + . = ..() + + // Check parent return + if(!.) + return FALSE + + // Check cooldown + if(user?.nextsoundemote >= world.time) + return FALSE + + // Allow use + return TRUE + /datum/emote/sound/run_emote(mob/user, params) . = ..() if(.) - playsound(user.loc, sound, volume, vary) + playsound(user.loc, sound, emote_volume, emote_pitch_variance, emote_range, emote_falloff_exponent, emote_frequency, emote_channel, emote_check_pressure, emote_ignore_walls, emote_falloff_distance, emote_wetness, emote_dryness, emote_distance_multiplier, emote_distance_multiplier_min_range) + + //Cooldown. + user.nextsoundemote = world.time + emote_cooldown diff --git a/code/modules/emote_panel/emote_panel.dm b/code/modules/emote_panel/emote_panel.dm index 040244d4b7..029f69ebb9 100644 --- a/code/modules/emote_panel/emote_panel.dm +++ b/code/modules/emote_panel/emote_panel.dm @@ -19,8 +19,8 @@ "key" = emote.key, "name" = emote.name, "hands" = emote.restraint_check, - "visible" = emote.emote_type & EMOTE_VISIBLE, - "audible" = emote.emote_type & EMOTE_AUDIBLE, + "visible" = emote.emote_type & (EMOTE_VISIBLE || EMOTE_BOTH || EMOTE_OMNI), + "audible" = emote.emote_type & (EMOTE_AUDIBLE || EMOTE_BOTH || EMOTE_OMNI), "sound" = !isnull(emote.get_sound(user)), "use_params" = emote.message_param, )) diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index 49501e0315..21993c77fa 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -10,6 +10,7 @@ /datum/emote/living/carbon/blink_r key = "blink_r" + name = "blink rapidly" message = "blinks rapidly." /datum/emote/living/carbon/clap diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 2f5a4e01e9..d049ca0f27 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -99,7 +99,7 @@ else H.dna.species.stop_wagging_tail(H) -/datum/emote/living/carbon/human/wag/can_run_emote(mob/user, status_check = TRUE) +/datum/emote/living/carbon/human/wag/can_run_emote(mob/user, status_check = TRUE, intentional = FALSE) if(!..() || !ishuman(user)) return FALSE var/mob/living/carbon/human/H = user @@ -135,7 +135,7 @@ else . = "closes " + message -/datum/emote/living/carbon/human/wing/can_run_emote(mob/user, status_check = TRUE) +/datum/emote/living/carbon/human/wing/can_run_emote(mob/user, status_check = TRUE, intentional = FALSE) if(!..() || !ishuman(user)) return FALSE var/mob/living/carbon/human/H = user diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 6952e2463a..45adeaee7d 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -216,7 +216,7 @@ /datum/emote/living/audio_emote emote_type = EMOTE_AUDIBLE -/datum/emote/living/audio_emote/can_run_emote(mob/living/user, status_check = TRUE) +/datum/emote/living/audio_emote/can_run_emote(mob/living/user, status_check = TRUE, intentional = FALSE) . = ..() if(. && iscarbon(user)) var/mob/living/carbon/C = user diff --git a/modular_splurt/code/modules/mob/living/carbon/human/species_types/teshari.dm b/modular_splurt/code/modules/mob/living/carbon/human/species_types/teshari.dm index 1cb171d13c..70ddf0212c 100644 --- a/modular_splurt/code/modules/mob/living/carbon/human/species_types/teshari.dm +++ b/modular_splurt/code/modules/mob/living/carbon/human/species_types/teshari.dm @@ -61,60 +61,60 @@ /datum/language/schechi -/datum/emote/living/audio/teshari/teshsqueak +/datum/emote/sound/teshari/teshsqueak key = "surprised" key_third_person = "surprised" message = "chirps in surprise!" message_mime = "lets out an inaudible chirp!" - emote_sound = 'modular_splurt/sound/voice/teshsqueak.ogg' // Copyright CC BY 3.0 InspectorJ (freesound.org) for the source audio. + sound = 'modular_splurt/sound/voice/teshsqueak.ogg' // Copyright CC BY 3.0 InspectorJ (freesound.org) for the source audio. emote_cooldown = 2.1 SECONDS -/datum/emote/living/audio/teshari/teshsqueak/run_emote(mob/user, params) +/datum/emote/sound/teshari/teshsqueak/run_emote(mob/user, params) var/datum/dna/D = user.has_dna() if(D.species.name != "Teshari") return // Return normally . = ..() -/datum/emote/living/audio/teshari/teshchirp +/datum/emote/sound/teshari/teshchirp key = "tchirp" key_third_person = "tchirp" message = "chirps!" message_mime = "lets out an inaudible chirp!" - emote_sound = 'modular_splurt/sound/voice/teshchirp.ogg' // Copyright CC BY 3.0 InspectorJ (freesound.org) for the source audio. + sound = 'modular_splurt/sound/voice/teshchirp.ogg' // Copyright CC BY 3.0 InspectorJ (freesound.org) for the source audio. emote_cooldown = 2.1 SECONDS -/datum/emote/living/audio/teshari/teshchirp/run_emote(mob/user, params) +/datum/emote/sound/teshari/teshchirp/run_emote(mob/user, params) var/datum/dna/D = user.has_dna() if(D.species.name != "Teshari") return // Return normally . = ..() -/datum/emote/living/audio/teshari/trill +/datum/emote/sound/teshari/trill key = "trill" key_third_person = "trill" message = "trills!" message_mime = "lets out an inaudible chirp!" - emote_sound = 'modular_splurt/sound/voice/teshtrill.ogg' // Copyright CC BY 3.0 InspectorJ (freesound.org) for the source audio. + sound = 'modular_splurt/sound/voice/teshtrill.ogg' // Copyright CC BY 3.0 InspectorJ (freesound.org) for the source audio. emote_cooldown = 2.1 SECONDS -/datum/emote/living/audio/teshari/trill/run_emote(mob/user, params) +/datum/emote/sound/teshari/trill/run_emote(mob/user, params) var/datum/dna/D = user.has_dna() if(D.species.name != "Teshari") return // Return normally . = ..() -/datum/emote/living/audio/teshari/teshscream +/datum/emote/sound/teshari/teshscream key = "teshscream" key_third_person = "teshscream" message = "screams!" message_mime = "lets out an inaudible screams!" - emote_sound = 'modular_splurt/sound/voice/teshscream.ogg' // Copyright CC BY 3.0 InspectorJ (freesound.org) for the source audio. + sound = 'modular_splurt/sound/voice/teshscream.ogg' // Copyright CC BY 3.0 InspectorJ (freesound.org) for the source audio. emote_cooldown = 2.1 SECONDS -/datum/emote/living/audio/teshari/teshscream/run_emote(mob/user, params) +/datum/emote/sound/teshari/teshscream/run_emote(mob/user, params) var/datum/dna/D = user.has_dna() if(D.species.name != "Teshari") return diff --git a/modular_splurt/code/modules/mob/living/carbon/human/species_types/vox.dm b/modular_splurt/code/modules/mob/living/carbon/human/species_types/vox.dm index a6da9f28c3..78883aea56 100644 --- a/modular_splurt/code/modules/mob/living/carbon/human/species_types/vox.dm +++ b/modular_splurt/code/modules/mob/living/carbon/human/species_types/vox.dm @@ -60,15 +60,15 @@ emote_type = EMOTE_AUDIBLE -/datum/emote/living/audio/vox/shriek +/datum/emote/sound/vox/shriek key = "shriek" key_third_person = "shrieks" message = "shrieks!" message_mime = "lets out an inaudible shriek!" - emote_sound = 'modular_splurt/sound/voice/shriek1.ogg' // Copyright CC BY 3.0 InspectorJ (freesound.org) for the source audio. + sound = 'modular_splurt/sound/voice/shriek1.ogg' // Copyright CC BY 3.0 InspectorJ (freesound.org) for the source audio. emote_cooldown = 2.1 SECONDS -/datum/emote/living/audio/vox/shriek/run_emote(mob/user, params) +/datum/emote/sound/vox/shriek/run_emote(mob/user, params) var/datum/dna/D = user.has_dna() if(D.species.name != "Vox") return diff --git a/modular_splurt/code/modules/mob/living/emotes.dm b/modular_splurt/code/modules/mob/living/emotes.dm index 0195d88be7..ab975a781c 100644 --- a/modular_splurt/code/modules/mob/living/emotes.dm +++ b/modular_splurt/code/modules/mob/living/emotes.dm @@ -38,88 +38,6 @@ // Play laugh sound playsound(carbon_user, laugh_sound, 50, 1) -// Living variant -/datum/emote/living/audio - // List of mob types that can run emote - mob_type_allowed_typecache = list(/mob/living) - - // Default type - // Can be EMOTE_AUDIBLE, EMOTE_VISIBLE, EMOTE_BOTH, or EMOTE_OMNI - emote_type = EMOTE_AUDIBLE - - // Placeholder variables - // These should NOT appear in-game - message = "makes an indescribable noise" - var/emote_sound = 'sound/arcade/Boom.ogg' - - // Default time before using another audio emote - var/emote_cooldown = 1 SECONDS - - // Default volume of the emote - var/emote_volume = 50 - - // Default range modifier - var/emote_range = -1 - var/emote_distance_multiplier = SOUND_DEFAULT_DISTANCE_MULTIPLIER - var/emote_distance_multiplier_min_range = SOUND_DEFAULT_MULTIPLIER_EFFECT_RANGE - - // Default pitch variance - var/emote_pitch_variance = 1 - - // Default audio falloff settings - var/emote_falloff_exponent = SOUND_FALLOFF_EXPONENT - var/emote_falloff_distance = SOUND_DEFAULT_FALLOFF_DISTANCE - - // Default frequency - var/emote_frequency = null - - // Default channel - var/emote_channel = 0 - - // Should the emote consider atmospheric pressure? - var/emote_check_pressure = TRUE - - // Should the emote ignore walls? - var/emote_ignore_walls = FALSE - - // Default wet and dry settings (???) - var/emote_wetness = -10000 - var/emote_dryness = 0 - -// Check if audio emote can run -/datum/emote/living/audio/can_run_emote(mob/living/user, status_check) - . = ..() - - // Check parent return - if(!.) - return FALSE - - // Check cooldown - if(user?.nextsoundemote >= world.time) - return FALSE - - // Allow use - return TRUE - -// Run audio emote -/datum/emote/living/audio/run_emote(mob/user, params) - . = ..() - - // Check parent return - if(!.) - return - - // Check if user is miming - if(user?.mind?.miming) - // Do nothing - return - - // Play sound - // Accepts all possible parameters - playsound(user.loc, emote_sound, emote_volume, emote_pitch_variance, emote_range, emote_falloff_exponent, emote_frequency, emote_channel, emote_check_pressure, emote_ignore_walls, emote_falloff_distance, emote_wetness, emote_dryness, emote_distance_multiplier, emote_distance_multiplier_min_range) - - // Set cooldown - user.nextsoundemote = world.time + emote_cooldown /datum/emote/living/surrender/run_emote(mob/user, params, type_override, intentional) // Set message with pronouns @@ -145,26 +63,29 @@ key = "ruffle" key_third_person = "ruffles" message = "ruffles their wings for a moment." + restraint_check = TRUE + emote_type = EMOTE_VISIBLE -/datum/emote/living/audio/fart +/datum/emote/sound/human/fart key = "fart" key_third_person = "farts" message = "farts." emote_type = EMOTE_AUDIBLE // lets mimes fart - emote_sound = 'modular_splurt/sound/voice/fart.ogg' + sound = 'modular_splurt/sound/voice/fart.ogg' emote_cooldown = 0.6 SECONDS // Rest in Piss the SPLURT fart library. -/datum/emote/living/audio/cackle +/datum/emote/sound/human/cackle key = "cackle" key_third_person = "cackles" message = "cackles hysterically!" message_mime = "cackles silently!" - emote_sound = 'modular_splurt/sound/voice/cackle_yeen.ogg' + sound = 'modular_splurt/sound/voice/cackle_yeen.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 1.6 SECONDS -/datum/emote/living/audio/speen +/datum/emote/sound/human/speen key = "speen" key_third_person = "speens" message = "speeeeens!" @@ -172,10 +93,10 @@ restraint_check = TRUE mob_type_allowed_typecache = list(/mob/living) mob_type_ignore_stat_typecache = list(/mob/dead/observer) - emote_sound = 'modular_splurt/sound/voice/speen.ogg' + sound = 'modular_splurt/sound/voice/speen.ogg' // No cooldown var required -/datum/emote/living/audio/speen/run_emote(mob/user, params) +/datum/emote/sound/human/speen/run_emote(mob/user, params) . = ..() // Check parent return @@ -206,529 +127,611 @@ // Unbuckle all mobs user_cyborg.unbuckle_all_mobs() -/datum/emote/living/audio/chirp +/datum/emote/sound/human/chirp key = "chirp" key_third_person = "chirps" message = "chirps!" message_mime = "chirps silently!" - emote_sound = 'modular_splurt/sound/voice/chirp.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/chirp.ogg' emote_cooldown = 0.2 SECONDS -/datum/emote/living/audio/caw +/datum/emote/sound/human/caw key = "caw" key_third_person = "caws" message = "caws!" message_mime = "caws silently!" - emote_sound = 'modular_splurt/sound/voice/caw.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/caw.ogg' emote_cooldown = 0.35 SECONDS -/datum/emote/living/audio/mew +/datum/emote/sound/human/mew key = "mew" key_third_person = "mews" message = "mews hysterically!" message_mime = "makes a cat face!" - emote_sound = 'modular_splurt/sound/voice/meow_meme.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/meow_meme.ogg' emote_cooldown = 1 SECONDS -// Moved *burp to modular_splurt to use the emote_sound variables written here. Also removed the 14 other types of burp sounds. -/datum/emote/living/audio/burp +// Moved *burp to modular_splurt to use the sound variables written here. Also removed the 14 other types of burp sounds. +/datum/emote/sound/human/burp key = "burp" key_third_person = "burps" message = "burps." emote_type = EMOTE_AUDIBLE - emote_sound = 'modular_splurt/sound/voice/burp.ogg' + sound = 'modular_splurt/sound/voice/burp.ogg' emote_cooldown = 0.6 SECONDS -/datum/emote/living/audio/bleat +/datum/emote/sound/human/bleat key = "bleat" key_third_person = "bleats" message = "bleats loudly!" message_mime = "bleats silently!" - emote_sound = 'modular_splurt/sound/voice/bleat.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/bleat.ogg' emote_cooldown = 0.7 SECONDS -/datum/emote/living/audio/chitter2 +/datum/emote/sound/human/chitter2 key = "chitter2" key_third_person = "chitters2" + name = "chitter silently" message = "chitters." message_mime = "chitters silently!" - emote_sound = 'modular_splurt/sound/voice/moth/mothchitter2.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/moth/mothchitter2.ogg' emote_cooldown = 0.3 SECONDS -/datum/emote/living/audio/monkeytwerk +/datum/emote/sound/human/monkeytwerk key = "twerk" key_third_person = "twerks" message = "shakes it harder than James Russle himself!" - emote_sound = 'modular_splurt/sound/misc/monkey_twerk.ogg' + emote_type = EMOTE_BOTH + sound = 'modular_splurt/sound/misc/monkey_twerk.ogg' emote_cooldown = 3.2 SECONDS -/datum/emote/living/audio/bruh +/datum/emote/sound/human/bruh key = "bruh" key_third_person = "bruhs" message = "thinks this is a bruh moment." message_mime = "silently acknowledges the bruh moment." - emote_sound = 'modular_splurt/sound/voice/bruh.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/bruh.ogg' emote_cooldown = 0.6 SECONDS -/datum/emote/living/audio/bababooey +/datum/emote/sound/human/bababooey key = "bababooey" key_third_person = "bababooeys" message = "spews bababooey." message_mime = "spews something silently." - emote_sound = 'modular_splurt/sound/voice/bababooey/bababooey.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/bababooey/bababooey.ogg' emote_cooldown = 0.9 SECONDS -/datum/emote/living/audio/bababooey/run_emote(mob/user, params) +/datum/emote/sound/human/bababooey/run_emote(mob/user, params) // Check if user is muzzled if(user.is_muzzled()) // Set muzzled sound - emote_sound = 'modular_splurt/sound/voice/bababooey/ffff.ogg' + sound = 'modular_splurt/sound/voice/bababooey/ffff.ogg' // User is not muzzled else // Set random emote sound - emote_sound = pick('modular_splurt/sound/voice/bababooey/bababooey.ogg', 'modular_splurt/sound/voice/bababooey/bababooey2.ogg') + sound = pick('modular_splurt/sound/voice/bababooey/bababooey.ogg', 'modular_splurt/sound/voice/bababooey/bababooey2.ogg') // Return normally . = ..() -/datum/emote/living/audio/babafooey +/datum/emote/sound/human/babafooey key = "babafooey" key_third_person = "babafooeys" message = "spews babafooey." message_mime = "spews something silently." - emote_sound = 'modular_splurt/sound/voice/bababooey/babafooey.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/bababooey/babafooey.ogg' emote_cooldown = 0.85 SECONDS -/datum/emote/living/audio/fafafooey +/datum/emote/sound/human/fafafooey key = "fafafooey" key_third_person = "fafafooeys" message = "spews fafafooey." message_mime = "spews something silently." - emote_sound = 'modular_splurt/sound/voice/bababooey/fafafooey.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/bababooey/fafafooey.ogg' emote_cooldown = 0.7 SECONDS -/datum/emote/living/audio/fafafooey/run_emote(mob/user, params) +/datum/emote/sound/human/fafafooey/run_emote(mob/user, params) // Check if user is muzzled if(user.is_muzzled()) // Set muzzled sound - emote_sound = 'modular_splurt/sound/voice/bababooey/ffff.ogg' + sound = 'modular_splurt/sound/voice/bababooey/ffff.ogg' // User is not muzzled else // Set random emote sound - emote_sound = pick('modular_splurt/sound/voice/bababooey/fafafooey.ogg', 'modular_splurt/sound/voice/bababooey/fafafooey2.ogg', 'modular_splurt/sound/voice/bababooey/fafafooey3.ogg') + sound = pick('modular_splurt/sound/voice/bababooey/fafafooey.ogg', 'modular_splurt/sound/voice/bababooey/fafafooey2.ogg', 'modular_splurt/sound/voice/bababooey/fafafooey3.ogg') // Return normally . = ..() -/datum/emote/living/audio/fafafoggy +/datum/emote/sound/human/fafafoggy key = "fafafoggy" key_third_person = "fafafoggys" message = "spews fafafoggy." message_mime = "spews something silently." - emote_sound = 'modular_splurt/sound/voice/bababooey/fafafoggy.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/bababooey/fafafoggy.ogg' emote_cooldown = 0.9 SECONDS -/datum/emote/living/audio/fafafoggy/run_emote(mob/user, params) +/datum/emote/sound/human/fafafoggy/run_emote(mob/user, params) // Check if user is muzzled if(user.is_muzzled()) // Set muzzled sound - emote_sound = 'modular_splurt/sound/voice/bababooey/ffff.ogg' + sound = 'modular_splurt/sound/voice/bababooey/ffff.ogg' // User is not muzzled else // Set random emote sound - emote_sound = pick('modular_splurt/sound/voice/bababooey/fafafoggy.ogg', 'modular_splurt/sound/voice/bababooey/fafafoggy2.ogg') + sound = pick('modular_splurt/sound/voice/bababooey/fafafoggy.ogg', 'modular_splurt/sound/voice/bababooey/fafafoggy2.ogg') // Return normally . = ..() -/datum/emote/living/audio/hohohoy +/datum/emote/sound/human/hohohoy key = "hohohoy" key_third_person = "hohohoys" message = "spews hohohoy." message_mime = "spews something silently." - emote_sound = 'modular_splurt/sound/voice/bababooey/hohohoy.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/bababooey/hohohoy.ogg' emote_cooldown = 0.7 SECONDS -/datum/emote/living/audio/ffff +/datum/emote/sound/human/ffff key = "ffff" key_third_person = "ffffs" message = "spews something softly." message_mime = "spews something silently." muzzle_ignore = TRUE - emote_sound = 'modular_splurt/sound/voice/bababooey/ffff.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/bababooey/ffff.ogg' emote_cooldown = 0.85 SECONDS -/datum/emote/living/audio/fafafail +/datum/emote/sound/human/fafafail key = "fafafail" key_third_person = "fafafails" message = "spews something unintelligible." message_mime = "spews something silent." - emote_sound = 'modular_splurt/sound/voice/bababooey/ffffhvh.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/bababooey/ffffhvh.ogg' emote_cooldown = 1.15 SECONDS -/datum/emote/living/audio/boowomp +/datum/emote/sound/human/boowomp key = "boowomp" key_third_person = "boowomps" message = "produces a sad boowomp." message_mime = "produces a silent boowomp." - emote_sound = 'modular_splurt/sound/voice/boowomp.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/boowomp.ogg' emote_cooldown = 0.4 SECONDS -/datum/emote/living/audio/swaos +/datum/emote/sound/human/swaos key = "swaos" key_third_person = "swaos" message = "mutters swaos." message_mime = "imitates swaos." - emote_sound = 'modular_splurt/sound/voice/swaos.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/swaos.ogg' emote_cooldown = 0.7 SECONDS -/datum/emote/living/audio/eyebrow2 +/datum/emote/sound/human/eyebrow2 key = "eyebrow2" key_third_person = "eyebrows2" + name = "raise eyebrow" message = "raises an eyebrow." message_mime = "raises an eyebrow with quaking force!" - emote_sound = 'modular_splurt/sound/voice/vineboom.ogg' + emote_type = EMOTE_VISIBLE + sound = 'modular_splurt/sound/voice/vineboom.ogg' emote_cooldown = 2.9 SECONDS -/datum/emote/living/audio/eyebrow3 +/datum/emote/sound/human/eyebrow3 key = "eyebrow3" key_third_person = "eyebrows3" + name = "eyebrow quizzaciously" message = "raises an eyebrow quizzaciously." - emote_sound = 'modular_splurt/sound/voice/moonmen.ogg' + emote_type = EMOTE_BOTH + sound = 'modular_splurt/sound/voice/moonmen.ogg' emote_cooldown = 7 SECONDS -/datum/emote/living/audio/blink2 +/datum/emote/sound/human/blink2 key = "blink2" key_third_person = "blinks2" + name = "blink expressively" message = "blinks." message_mime = "blinks expressively." - emote_sound = 'modular_splurt/sound/voice/blink.ogg' + emote_type = EMOTE_VISIBLE + sound = 'modular_splurt/sound/voice/blink.ogg' emote_cooldown = 0.25 SECONDS -/datum/emote/living/audio/laugh2 +/datum/emote/sound/human/laugh2 key = "laugh2" key_third_person = "laughs2" + name = "king laugh" message = "laughs like a king." message_mime = "acts out laughing like a king." - emote_sound = 'modular_splurt/sound/voice/laugh_king.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/laugh_king.ogg' // No cooldown var required -/datum/emote/living/audio/laugh3 +/datum/emote/sound/human/laugh3 key = "laugh3" key_third_person = "laughs3" + name = "silly laugh" message = "laughs silly." message_mime = "acts out laughing silly." - emote_sound = 'modular_splurt/sound/voice/lol.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/lol.ogg' emote_cooldown = 6.1 SECONDS -/datum/emote/living/audio/laugh4 +/datum/emote/sound/human/laugh4 key = "laugh4" key_third_person = "laughs4" + name = "burst laughter" message = "burst into laughter!" message_mime = "acts out bursting into laughter." - emote_sound = 'modular_splurt/sound/voice/laugh_muta.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/laugh_muta.ogg' emote_cooldown = 3 SECONDS -/datum/emote/living/audio/laugh5 +/datum/emote/sound/human/laugh5 key = "laugh5" key_third_person = "laughs5" + name = "scottish laugh" message = "laughs in Scottish." message_mime = "acts out laughing in Scottish." - emote_sound = 'modular_splurt/sound/voice/laugh_deman.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/laugh_deman.ogg' emote_cooldown = 2.75 SECONDS -/datum/emote/living/audio/laugh6 +/datum/emote/sound/human/laugh6 key = "laugh6" key_third_person = "laughs6" + name = "kettle laugh" message = "laughs like a kettle!" message_mime = "acts out laughing like a kettle." - emote_sound = 'modular_splurt/sound/voice/laugh6.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/laugh6.ogg' emote_cooldown = 4.45 SECONDS -/datum/emote/living/audio/breakbad +/datum/emote/sound/human/breakbad key = "breakbad" key_third_person = "breakbads" message = "stares intensively with determination." - emote_sound = 'modular_splurt/sound/voice/breakbad.ogg' + emote_type = EMOTE_BOTH + sound = 'modular_splurt/sound/voice/breakbad.ogg' emote_cooldown = 6.4 SECONDS -/datum/emote/living/audio/lawyerup +/datum/emote/sound/human/lawyerup key = "lawyerup" key_third_person = "lawyerups" + name = "aura expertise" message = "emits an aura of expertise." - emote_sound = 'modular_splurt/sound/voice/lawyerup.ogg' + emote_type = EMOTE_BOTH + sound = 'modular_splurt/sound/voice/lawyerup.ogg' emote_cooldown = 7.5 SECONDS -/datum/emote/living/audio/goddamn +/datum/emote/sound/human/goddamn key = "damn" key_third_person = "damns" + name = "gah damn" message = "is in utter stupor." message_mime = "appears to be in utter stupor." - emote_sound = 'modular_splurt/sound/voice/god_damn.ogg' + emote_type = EMOTE_BOTH + sound = 'modular_splurt/sound/voice/god_damn.ogg' emote_cooldown = 1.25 SECONDS -/datum/emote/living/audio/spoonful +/datum/emote/sound/human/spoonful key = "spoonful" key_third_person = "spoonfuls" message = "asks for a spoonful." message_mime = "pretends to ask for a spoonful." - emote_sound = 'modular_splurt/sound/voice/spoonful.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/spoonful.ogg' // No cooldown var required -/datum/emote/living/audio/ohhmygod +/datum/emote/sound/human/ohhmygod key = "mygod" key_third_person = "omgs" + name = "oooh my god" message = "invokes the presence of Jesus Christ." message_mime = "invokes the presence of Jesus Christ through silent prayer." - emote_sound = 'modular_splurt/sound/voice/OMG.ogg' + emote_type = EMOTE_OMNI + sound = 'modular_splurt/sound/voice/OMG.ogg' emote_cooldown = 1.6 SECONDS -/datum/emote/living/audio/whatthehell +/datum/emote/sound/human/whatthehell key = "wth" key_third_person = "wths" + name = "whut the heeell" message = "condemns the abysses of hell!" message_mime = "silently condemns the abysses of hell!" - emote_sound = 'modular_splurt/sound/voice/WTH.ogg' + emote_type = EMOTE_OMNI + sound = 'modular_splurt/sound/voice/WTH.ogg' emote_cooldown = 4.4 SECONDS -/datum/emote/living/audio/fusrodah +/datum/emote/sound/human/fusrodah key = "fusrodah" key_third_person = "furodahs" message = "yells, \"FUS RO DAH!!!\"" message_mime = "acts out a dragon shout." - emote_sound = 'modular_splurt/sound/voice/fusrodah.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/fusrodah.ogg' emote_cooldown = 7 SECONDS -/datum/emote/living/audio/skibidi +/datum/emote/sound/human/skibidi key = "skibidi" key_third_person = "skibidis" + name = "skibidi bop mm dada" message = "yells, \"Skibidi bop mm dada!\"" message_mime = "makes incoherent mouth motions." - emote_sound = 'modular_splurt/sound/voice/skibidi.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/skibidi.ogg' emote_cooldown = 1.1 SECONDS -/datum/emote/living/audio/fbi +/datum/emote/sound/human/fbi key = "fbi" key_third_person = "fbis" message = "yells, \"FBI OPEN UP!\"" message_mime = "acts out being the FBI." - emote_sound = 'modular_splurt/sound/voice/fbi.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/fbi.ogg' emote_cooldown = 2 SECONDS -/datum/emote/living/audio/illuminati +/datum/emote/sound/human/illuminati key = "illuminati" key_third_person = "illuminatis" message = "exudes a mysterious aura!" - emote_sound = 'modular_splurt/sound/voice/illuminati.ogg' + emote_type = EMOTE_OMNI + sound = 'modular_splurt/sound/voice/illuminati.ogg' emote_cooldown = 7.8 SECONDS -/datum/emote/living/audio/bonerif +/datum/emote/sound/human/bonerif key = "bonerif" key_third_person = "bonerifs" message = "riffs!" message_mime = "riffs silently!" - emote_sound = 'modular_splurt/sound/voice/bonerif.ogg' + emote_type = EMOTE_VISIBLE + restraint_check = TRUE + sound = 'modular_splurt/sound/voice/bonerif.ogg' emote_cooldown = 2 SECONDS -/datum/emote/living/audio/cry2 +/datum/emote/sound/human/cry2 key = "cry2" key_third_person = "cries2" + name = "king cry" message = "cries like a king." message_mime = "acts out crying like a king." - emote_sound = 'modular_splurt/sound/voice/cry_king.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/cry_king.ogg' emote_cooldown = 1.6 SECONDS // Uses longest sound's time -/datum/emote/living/audio/cry2/run_emote(mob/user, params) +/datum/emote/sound/human/cry2/run_emote(mob/user, params) // Set random emote sound - emote_sound = pick('modular_splurt/sound/voice/cry_king.ogg', 'modular_splurt/sound/voice/cry_king2.ogg') + sound = pick('modular_splurt/sound/voice/cry_king.ogg', 'modular_splurt/sound/voice/cry_king2.ogg') // Return normally . = ..() -/datum/emote/living/audio/choir +/datum/emote/sound/human/choir key = "choir" key_third_person = "choirs" message = "let out a choir!" message_mime = "acts out a choir." - emote_sound = 'modular_splurt/sound/voice/choir.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/choir.ogg' emote_cooldown = 6 SECONDS -/datum/emote/living/audio/agony +/datum/emote/sound/human/agony key = "agony" key_third_person = "agonys" message = "let out a choir of agony!" message_mime = "is visibly in agony." - emote_sound = 'modular_splurt/sound/voice/agony.ogg' + emote_type = EMOTE_OMNI + sound = 'modular_splurt/sound/voice/agony.ogg' emote_cooldown = 7 SECONDS -/datum/emote/living/audio/wtune +/datum/emote/sound/human/wtune key = "whistletune" key_third_person = "whistletunes" message = "whistles a tune." message_mime = "makes an expression as if whistling." - emote_sound = 'modular_splurt/sound/voice/wtune1.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/wtune1.ogg' emote_cooldown = 4.55 SECONDS // Uses longest sound's time. -/datum/emote/living/audio/wtune/run_emote(mob/user, params) +/datum/emote/sound/human/wtune/run_emote(mob/user, params) // Set random emote sound - emote_sound = pick('modular_splurt/sound/voice/wtune1.ogg', 'modular_splurt/sound/voice/wtune2.ogg') + sound = pick('modular_splurt/sound/voice/wtune1.ogg', 'modular_splurt/sound/voice/wtune2.ogg') // Return normally . = ..() -/datum/emote/living/audio/fiufiu +/datum/emote/sound/human/fiufiu key = "wolfwhistle" key_third_person = "wolfwhistles" message = "wolf-whistles!" // i am not creative message_param = "audibly approves %t's appearance." message_mime = "makes an expression as if inappropriately whistling." - emote_sound = 'modular_splurt/sound/voice/wolfwhistle.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/wolfwhistle.ogg' emote_cooldown = 0.78 SECONDS -/datum/emote/living/audio/terror +/datum/emote/sound/human/terror key = "terror" key_third_person = "terrors" + name = "dreadful tune" message = "whistles some dreadful tune..." message_mime = "stares with aura full of dread..." - emote_sound = 'modular_splurt/sound/voice/terror1.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/terror1.ogg' emote_cooldown = 13.07 SECONDS // Uses longest sound's time. -/datum/emote/living/audio/terror/run_emote(mob/user, params) +/datum/emote/sound/human/terror/run_emote(mob/user, params) // Set random emote sound - emote_sound = pick('modular_splurt/sound/voice/terror1.ogg', 'modular_splurt/sound/voice/terror2.ogg') + sound = pick('modular_splurt/sound/voice/terror1.ogg', 'modular_splurt/sound/voice/terror2.ogg') // Return normally . = ..() -/datum/emote/living/audio/deathglare +/datum/emote/sound/human/deathglare key = "glare2" key_third_person = "glares2" message = "glares." message_param = "glares at %t." - emote_sound = 'modular_splurt/sound/voice/deathglare.ogg' + emote_type = EMOTE_VISIBLE + sound = 'modular_splurt/sound/voice/deathglare.ogg' emote_cooldown = 4.4 SECONDS -/datum/emote/living/audio/chill +/datum/emote/sound/human/chill key = "chill" key_third_person = "chills" message = "feels a chill running down their spine..." message_mime = "acts out a chill running down their spine..." - emote_sound = 'modular_splurt/sound/voice/waterphone.ogg' + emote_type = EMOTE_VISIBLE + sound = 'modular_splurt/sound/voice/waterphone.ogg' emote_cooldown = 3.4 SECONDS -/datum/emote/living/audio/taunt - key = "taunt" +/datum/emote/sound/human/taunt + key = "tt" key_third_person = "taunts" + name = "strike pose" message = "strikes a pose!" message_param = "taunts %t!" - emote_sound = 'modular_splurt/sound/voice/phillyhit.ogg' + emote_type = EMOTE_VISIBLE + restraint_check = TRUE + sound = 'modular_splurt/sound/voice/phillyhit.ogg' -/datum/emote/living/audio/taunt/alt - key = "taunts2" +/datum/emote/sound/human/taunt/alt + key = "tt2" key_third_person = "taunts2" + name = "strike pose 2" emote_volume = 100 - emote_sound = 'modular_splurt/sound/voice/orchestrahit.ogg' + sound = 'modular_splurt/sound/voice/orchestrahit.ogg' -/datum/emote/living/audio/weh2 +/datum/emote/sound/human/weh2 key = "weh2" key_third_person = "wehs2" + name = "weh 2" message = "let out a weh!" message_mime = "acts out a weh!" - emote_sound = 'modular_splurt/sound/voice/weh2.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/weh2.ogg' emote_cooldown = 0.25 SECONDS -/datum/emote/living/audio/weh3 +/datum/emote/sound/human/weh3 key = "weh3" key_third_person = "wehs3" + name = "weh 3" message = "let out a weh!" message_mime = "acts out a weh!" - emote_sound = 'modular_splurt/sound/voice/weh3.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/weh3.ogg' emote_cooldown = 0.25 SECONDS -/datum/emote/living/audio/weh4 +/datum/emote/sound/human/weh4 key = "weh4" key_third_person = "wehs4" + name = "surprised weh" message = "let out a surprised weh!" message_mime = "acts out a surprised weh!" - emote_sound = 'modular_splurt/sound/voice/weh_s.ogg' + emote_type = EMOTE_BOTH + sound = 'modular_splurt/sound/voice/weh_s.ogg' emote_cooldown = 0.35 SECONDS -/datum/emote/living/audio/waa +/datum/emote/sound/human/waa key = "waa" key_third_person = "waas" message = "let out a waa!" message_mime = "acts out a waa!" - emote_sound = 'modular_splurt/sound/voice/waa.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/waa.ogg' emote_cooldown = 3.5 SECONDS -/datum/emote/living/audio/bark2 +/datum/emote/sound/human/bark2 key = "bark2" key_third_person = "barks2" + name = "bark 2" message = "barks!" message_mime = "acts out a bark!" - emote_sound = 'modular_splurt/sound/voice/bark_alt.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/bark_alt.ogg' emote_cooldown = 0.35 SECONDS -/datum/emote/living/audio/yap +/datum/emote/sound/human/yap key = "yap" key_third_person = "yaps" message = "yaps!" message_mime = "acts out a yap!" - emote_sound = 'modular_splurt/sound/voice/yap.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/yap.ogg' emote_cooldown = 0.28 SECONDS -/datum/emote/living/audio/yip +/datum/emote/sound/human/yip key = "yip" key_third_person = "yips" message = "yips!" message_mime = "acts out a yip!" - emote_sound = 'modular_splurt/sound/voice/yip.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/yip.ogg' emote_cooldown = 0.2 SECONDS -/datum/emote/living/audio/bork +/datum/emote/sound/human/bork key = "bork" key_third_person = "borks" message = "borks!" message_mime = "acts out a bork!" - emote_sound = 'modular_splurt/sound/voice/bork.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/bork.ogg' emote_cooldown = 0.4 SECONDS -/datum/emote/living/audio/woof +/datum/emote/sound/human/woof key = "woof" key_third_person = "woofs" message = "woofs!" message_mime = "acts out a woof!" - emote_sound = 'modular_splurt/sound/voice/woof.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/woof.ogg' emote_cooldown = 0.71 SECONDS -/datum/emote/living/audio/woof/alt +/datum/emote/sound/human/woof/alt key = "woof2" key_third_person = "woofs2" - emote_sound = 'modular_splurt/sound/voice/woof2.ogg' + name = "woof 2" + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/woof2.ogg' emote_cooldown = 0.3 SECONDS -/datum/emote/living/audio/howl +/datum/emote/sound/human/howl key = "howl" key_third_person = "howls" message = "howls!" message_mime = "acts out a howl!" - emote_sound = 'modular_splurt/sound/voice/wolfhowl.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/wolfhowl.ogg' emote_cooldown = 2.04 SECONDS -/datum/emote/living/audio/coyhowl +/datum/emote/sound/human/coyhowl key = "coyhowl" key_third_person = "coyhowls" + name = "coyote howl" message = "howls like coyote!" message_mime = "acts out a coyote's howl!" - emote_sound = 'modular_splurt/sound/voice/coyotehowl.ogg' + emote_type = EMOTE_BOTH + sound = 'modular_splurt/sound/voice/coyotehowl.ogg' emote_cooldown = 2.94 SECONDS // Uses longest sound's time -/datum/emote/living/audio/coyhowl/run_emote(mob/user, params) - emote_sound = pick('modular_splurt/sound/voice/coyotehowl.ogg', 'modular_splurt/sound/voice/coyotehowl2.ogg', 'modular_splurt/sound/voice/coyotehowl3.ogg', 'modular_splurt/sound/voice/coyotehowl4.ogg', 'modular_splurt/sound/voice/coyotehowl5.ogg') +/datum/emote/sound/human/coyhowl/run_emote(mob/user, params) + sound = pick('modular_splurt/sound/voice/coyotehowl.ogg', 'modular_splurt/sound/voice/coyotehowl2.ogg', 'modular_splurt/sound/voice/coyotehowl3.ogg', 'modular_splurt/sound/voice/coyotehowl4.ogg', 'modular_splurt/sound/voice/coyotehowl5.ogg') . = ..() /datum/emote/living/mlem @@ -737,15 +740,17 @@ message = "sticks their tongue for a moment. Mlem!" emote_type = EMOTE_VISIBLE -/datum/emote/living/audio/snore/snore2 +/datum/emote/sound/human/snore/snore2 key = "snore2" key_third_person = "snores2" + name = "earthshaking snore" message = "lets out an earthshaking snore" message_mime = "lets out an inaudible snore!" - emote_sound = 'modular_splurt/sound/voice/aauugghh1.ogg' + emote_type = EMOTE_BOTH + sound = 'modular_splurt/sound/voice/aauugghh1.ogg' emote_cooldown = 2.1 SECONDS -/datum/emote/living/audio/snore/snore2/run_emote(mob/user, params) +/datum/emote/sound/human/snore/snore2/run_emote(mob/user, params) var/datum/dna/D = user.has_dna() var/say_mod = (D ? D.species.say_mod : "says") var/list/aaauughh = list( @@ -756,7 +761,7 @@ message = pick(aaauughh) // Set random emote sound - emote_sound = pick('modular_splurt/sound/voice/aauugghh1.ogg', 'modular_splurt/sound/voice/aauugghh2.ogg') + sound = pick('modular_splurt/sound/voice/aauugghh1.ogg', 'modular_splurt/sound/voice/aauugghh2.ogg') // Return normally . = ..() @@ -764,6 +769,7 @@ /datum/emote/living/pant key = "pant" key_third_person = "pants" + emote_type = EMOTE_VISIBLE message = "pants!" /datum/emote/living/pant/run_emote(mob/user, params, type_override, intentional) @@ -776,68 +782,75 @@ message = pick(pants) . = ..() -/datum/emote/living/audio/yippee +/datum/emote/sound/human/yippee key = "yippee" key_third_person = "yippees" message = "lets out a yippee!" message_mime = "acts out a yippee!" - emote_sound = 'modular_splurt/sound/voice/yippee.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/yippee.ogg' emote_cooldown = 1.2 SECONDS -/datum/emote/living/audio/mewo +/datum/emote/sound/human/mewo key = "mewo" key_third_person = "mewos" message = "mewos!" message_mime = "mewos silently!" - emote_sound = 'modular_splurt/sound/voice/mewo.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/mewo.ogg' emote_cooldown = 0.7 SECONDS -/datum/emote/living/audio/ara_ara +/datum/emote/sound/human/ara_ara key = "ara" key_third_person = "aras" + name = "ara ara" message = "coos with sultry surprise~..." message_mime = "exudes a sultry aura~" - emote_sound = 'modular_splurt/sound/voice/ara-ara.ogg' + emote_type = EMOTE_BOTH + sound = 'modular_splurt/sound/voice/ara-ara.ogg' emote_cooldown = 1.25 SECONDS -/datum/emote/living/audio/ara_ara/alt +/datum/emote/sound/human/ara_ara/alt key = "ara2" - emote_sound = 'modular_splurt/sound/voice/ara-ara2.ogg' + name = "ara ara 2" + sound = 'modular_splurt/sound/voice/ara-ara2.ogg' emote_cooldown = 1.3 SECONDS -/datum/emote/living/audio/missouri +/datum/emote/sound/human/missouri key = "missouri" key_third_person = "missouris" message = "has relocated to Missouri." message_mime = "starts thinking about Missouri." - emote_sound = 'modular_splurt/sound/voice/missouri.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/missouri.ogg' emote_cooldown = 3.4 SECONDS -/datum/emote/living/audio/missouri/run_emote(mob/user, params) +/datum/emote/sound/human/missouri/run_emote(mob/user, params) // Set message pronouns message = "appears to believe [user.p_theyre()] in Missouri." // Return normally . = ..() -/datum/emote/living/audio/facemetacarpus +/datum/emote/sound/human/facemetacarpus key = "facehand" key_third_person = "facepalms" message = "facepalms." emote_type = EMOTE_VISIBLE - emote_sound = 'modular_splurt/sound/effects/slap.ogg' + sound = 'modular_splurt/sound/effects/slap.ogg' emote_cooldown = 0.25 SECONDS -/datum/emote/living/audio/poyo +/datum/emote/sound/human/poyo key = "poyo" key_third_person = "poyos" message = "%SAYS, \"Poyo!\"" message_mime = "acts out an excited motion!" - emote_sound = 'modular_splurt/sound/voice/barks/poyo.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/barks/poyo.ogg' emote_cooldown = 1 SECONDS // Absolutely give this emote a cooldown. -/datum/emote/living/audio/poyo/run_emote(mob/user, params) +/datum/emote/sound/human/poyo/run_emote(mob/user, params) var/datum/dna/D = user.has_dna() var/say_mod = (D ? D.species.say_mod : "says") message = replacetextEx(message, "%SAYS", say_mod) @@ -845,527 +858,609 @@ // Return normally . = ..() -/datum/emote/living/audio/rizz +/datum/emote/sound/human/rizz key = "rizz" key_third_person = "rizzes" + name = "THE LOOK" message = "gives \[The Look\]." message_param = "looks at %t with bedroom eyes." message_mime = "makes bedroom eyes." - emote_sound = 'modular_splurt/sound/voice/rizz.ogg' + emote_type = EMOTE_VISIBLE + sound = 'modular_splurt/sound/voice/rizz.ogg' emote_cooldown = 1.43 SECONDS -/datum/emote/living/audio/buff +/datum/emote/sound/human/buff key = "buff" key_third_person = "buffs" + name = "show muscles" message = "shows off their muscles." message_param = "shows off their muscles to %t." - emote_sound = 'modular_splurt/sound/voice/buff.ogg' + emote_type = EMOTE_VISIBLE + sound = 'modular_splurt/sound/voice/buff.ogg' emote_cooldown = 4.77 SECONDS emote_pitch_variance = FALSE -/datum/emote/living/audio/merowr +/datum/emote/sound/human/merowr key = "merowr" key_third_person = "merowrs" message = "merowrs!" message_mime = "acts out a merowr!" - emote_sound = 'modular_splurt/sound/voice/merowr.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/merowr.ogg' emote_cooldown = 1.2 SECONDS -/datum/emote/living/audio/hoot +/datum/emote/sound/human/hoot key = "hoot" key_third_person = "hoots" message = "hoots!" message_mime = "acts out a hoot!" - emote_sound = 'modular_splurt/sound/voice/hoot.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/hoot.ogg' emote_cooldown = 2.4 SECONDS -/datum/emote/living/audio/wurble +/datum/emote/sound/human/wurble key = "wurble" key_third_person = "wurbles" message = "wurbles!" message_mime = "acts out a wurbling!" - emote_sound = 'modular_splurt/sound/voice/wurble.ogg' + emote_type = EMOTE_BOTH + sound = 'modular_splurt/sound/voice/wurble.ogg' emote_cooldown = 2.3 SECONDS -/datum/emote/living/audio/warble +/datum/emote/sound/human/warble key = "warble" key_third_person = "warbles" message = "warbles!" message_mime = "acts out a warbling!" - emote_sound = 'modular_splurt/sound/voice/warble.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/warble.ogg' emote_cooldown = 0.4 SECONDS //Teshari took *trill -/datum/emote/living/audio/trill2 +/datum/emote/sound/human/trill2 key = "trill2" key_third_person = "trills2" + name = "trill" message = "trills!" message_mime = "acts out a trilling!" - emote_sound = 'modular_splurt/sound/voice/trill.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/trill.ogg' emote_cooldown = 1 SECONDS -/datum/emote/living/audio/rattlesnek +/datum/emote/sound/human/rattlesnek key = "rattle" key_third_person = "rattles" message = "rattles!" message_mime = "acts like a rattling snake." - emote_sound = 'modular_splurt/sound/voice/rattle.ogg' + emote_type = EMOTE_BOTH + sound = 'modular_splurt/sound/voice/rattle.ogg' emote_cooldown = 4 SECONDS -/datum/emote/living/audio/rpurr +/datum/emote/sound/human/rpurr key = "rpurr" key_third_person = "rpurrs" + name = "raptor purr" message = "purrs like raptor!" message_mime = "acts like a purring raptor." - emote_sound = 'modular_splurt/sound/voice/raptor_purr.ogg' + emote_type = EMOTE_BOTH + sound = 'modular_splurt/sound/voice/raptor_purr.ogg' emote_cooldown = 1.5 SECONDS -/datum/emote/living/audio/bawk +/datum/emote/sound/human/bawk key = "bawk" key_third_person = "bawks" message = "bawks!" message_mime = "acts like a bawking chicken." - emote_sound = 'modular_splurt/sound/voice/bawk.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/bawk.ogg' emote_cooldown = 0.5 SECONDS -/datum/emote/living/audio/moo +/datum/emote/sound/human/moo key = "moo" key_third_person = "moos" message = "moos!" message_mime = "acts like a mooing cow." - emote_sound = 'modular_splurt/sound/voice/moo.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/moo.ogg' emote_cooldown = 1.7 SECONDS -/datum/emote/living/audio/coo +/datum/emote/sound/human/coo key = "coo" key_third_person = "coos" message = "coos." message_mime = "acts like a cooing pidgeon." emote_volume = 30 - emote_sound = 'modular_splurt/sound/voice/coo.ogg' + sound = 'modular_splurt/sound/voice/coo.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 0.78 SECONDS -/datum/emote/living/audio/untitledgoose +/datum/emote/sound/human/untitledgoose key = "goosehonk" - key_third_person = "honks" + key_third_person = "goosehonks" + name = "goose honk" message = "honks!" message_mime = "looks like a duck from hell!" - emote_sound = 'modular_splurt/sound/voice/goosehonk/sfx_goose_honk_b_01.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/goosehonk/sfx_goose_honk_b_01.ogg' emote_cooldown = 0.8 SECONDS -/datum/emote/living/audio/untitledgoose/run_emote(mob/user, params) - emote_sound = pick('modular_splurt/sound/voice/goosehonk/sfx_goose_honk_b_01.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_goose_honk_b_02.ogg','modular_splurt/sound/voice/goosehonk/sfx_goose_honk_b_03.ogg','modular_splurt/sound/voice/goosehonk/sfx_goose_honk_b_06.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_02.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_03.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_04.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_06.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_07.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_08.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_09.ogg') +/datum/emote/sound/human/untitledgoose/run_emote(mob/user, params) + sound = pick('modular_splurt/sound/voice/goosehonk/sfx_goose_honk_b_01.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_goose_honk_b_02.ogg','modular_splurt/sound/voice/goosehonk/sfx_goose_honk_b_03.ogg','modular_splurt/sound/voice/goosehonk/sfx_goose_honk_b_06.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_02.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_03.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_04.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_06.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_07.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_08.ogg', 'modular_splurt/sound/voice/goosehonk/sfx_gooseB_honk_09.ogg') . = ..() -/datum/emote/living/audio/scream2 +/datum/emote/sound/human/scream2 key = "scream2" key_third_person = "screams2" + name = "silly scream" message = "screams!" message_mime = "acts out a rather silly scream!" - emote_sound = 'modular_splurt/sound/voice/cscream1.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/cscream1.ogg' emote_cooldown = 3.3 SECONDS // Uses longest sound's time. emote_pitch_variance = FALSE -/datum/emote/living/audio/scream2/run_emote(mob/user, params) - emote_sound = pick('modular_splurt/sound/voice/cscream1.ogg', 'modular_splurt/sound/voice/cscream2.ogg', 'modular_splurt/sound/voice/cscream3.ogg', 'modular_splurt/sound/voice/cscream4.ogg', 'modular_splurt/sound/voice/cscream5.ogg', 'modular_splurt/sound/voice/cscream6.ogg', 'modular_splurt/sound/voice/cscream7.ogg', 'modular_splurt/sound/voice/cscream8.ogg', 'modular_splurt/sound/voice/cscream9.ogg', 'modular_splurt/sound/voice/cscream10.ogg', 'modular_splurt/sound/voice/cscream11.ogg', 'modular_splurt/sound/voice/cscream12.ogg') +/datum/emote/sound/human/scream2/run_emote(mob/user, params) + sound = pick('modular_splurt/sound/voice/cscream1.ogg', 'modular_splurt/sound/voice/cscream2.ogg', 'modular_splurt/sound/voice/cscream3.ogg', 'modular_splurt/sound/voice/cscream4.ogg', 'modular_splurt/sound/voice/cscream5.ogg', 'modular_splurt/sound/voice/cscream6.ogg', 'modular_splurt/sound/voice/cscream7.ogg', 'modular_splurt/sound/voice/cscream8.ogg', 'modular_splurt/sound/voice/cscream9.ogg', 'modular_splurt/sound/voice/cscream10.ogg', 'modular_splurt/sound/voice/cscream11.ogg', 'modular_splurt/sound/voice/cscream12.ogg') . = ..() // Here comes gachimuchi -/datum/emote/living/audio/scream3 +/datum/emote/sound/human/scream3 key = "scream3" key_third_person = "screams3" + name = "gachi scream" message = "screams manly!" message_mime = "acts out a rather manly scream!" - emote_sound = 'modular_splurt/sound/voice/gachi/scream1.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/gachi/scream1.ogg' emote_cooldown = 4.64 SECONDS // Uses longest sound's time. -/datum/emote/living/audio/scream3/run_emote(mob/user, params) - emote_sound = pick('modular_splurt/sound/voice/gachi/scream1.ogg', 'modular_splurt/sound/voice/gachi/scream2.ogg', 'modular_splurt/sound/voice/gachi/scream3.ogg', 'modular_splurt/sound/voice/gachi/scream4.ogg') +/datum/emote/sound/human/scream3/run_emote(mob/user, params) + sound = pick('modular_splurt/sound/voice/gachi/scream1.ogg', 'modular_splurt/sound/voice/gachi/scream2.ogg', 'modular_splurt/sound/voice/gachi/scream3.ogg', 'modular_splurt/sound/voice/gachi/scream4.ogg') . = ..() -/datum/emote/living/audio/moan2 +/datum/emote/sound/human/moan2 key = "moan2" key_third_person = "moans2" + name = "gachi moan" message = "moans somewhat manly!" message_mime = "acts out a rather manly moan!" - emote_sound = 'modular_splurt/sound/voice/gachi/moan1.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/gachi/moan1.ogg' emote_cooldown = 2.7 SECONDS // Uses longest sound's time. -/datum/emote/living/audio/moan2/run_emote(mob/user, params) - emote_sound = pick('modular_splurt/sound/voice/gachi/moan1.ogg', 'modular_splurt/sound/voice/gachi/moan2.ogg', 'modular_splurt/sound/voice/gachi/moan3.ogg', 'modular_splurt/sound/voice/gachi/moan4.ogg') +/datum/emote/sound/human/moan2/run_emote(mob/user, params) + sound = pick('modular_splurt/sound/voice/gachi/moan1.ogg', 'modular_splurt/sound/voice/gachi/moan2.ogg', 'modular_splurt/sound/voice/gachi/moan3.ogg', 'modular_splurt/sound/voice/gachi/moan4.ogg') . = ..() -/datum/emote/living/audio/woop +/datum/emote/sound/human/woop key = "woop" key_third_person = "woops" + name = "gachi woop" message = "woops!" message_mime = "silently woops!" - emote_sound = 'modular_splurt/sound/voice/gachi/woop.ogg' + sound = 'modular_splurt/sound/voice/gachi/woop.ogg' + emote_type = EMOTE_AUDIBLE emote_volume = 35 emote_cooldown = 0.4 SECONDS -/datum/emote/living/audio/whatthehell/right +/datum/emote/sound/human/whatthehell/right key = "wth2" key_third_person = "wths2" - emote_sound = 'modular_splurt/sound/voice/gachi/wth2.ogg' + name = "gachi what the hell" + sound = 'modular_splurt/sound/voice/gachi/wth2.ogg' + emote_type = EMOTE_AUDIBLE emote_volume = 100 emote_cooldown = 1.0 SECONDS -/datum/emote/living/audio/pardon +/datum/emote/sound/human/pardon key = "sorry" key_third_person = "sorrys" + name = "gachi sorry" message = "exclaims, \"Oh shit, I am sorry!\"" - emote_sound = 'modular_splurt/sound/voice/gachi/sorry.ogg' + emote_type = EMOTE_AUDIBLE + sound = 'modular_splurt/sound/voice/gachi/sorry.ogg' emote_cooldown = 1.3 SECONDS -/datum/emote/living/audio/pardonfor +/datum/emote/sound/human/pardonfor key = "sorryfor" key_third_person = "sorrysfor" + name = "gachi for what?" message = "asks, \"Sorry for what?\"" - emote_sound = 'modular_splurt/sound/voice/gachi/sorryfor.ogg' + sound = 'modular_splurt/sound/voice/gachi/sorryfor.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 0.9 SECONDS -/datum/emote/living/audio/fock +/datum/emote/sound/human/fock key = "fuckyou" key_third_person = "fuckyous" + name = "gachi fuck you" message = "curses someone!" message_param = "curses %t!" message_mime = "silently curses someone!" - emote_sound = 'modular_splurt/sound/voice/gachi/fockyou1.ogg' + sound = 'modular_splurt/sound/voice/gachi/fockyou1.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 1.18 SECONDS // Uses longest sound's time. -/datum/emote/living/audio/fock/run_emote(mob/user, params) - emote_sound = pick('modular_splurt/sound/voice/gachi/fockyou1.ogg', 'modular_splurt/sound/voice/gachi/fockyou2.ogg') +/datum/emote/sound/human/fock/run_emote(mob/user, params) + sound = pick('modular_splurt/sound/voice/gachi/fockyou1.ogg', 'modular_splurt/sound/voice/gachi/fockyou2.ogg') . = ..() -/datum/emote/living/audio/letsgo +/datum/emote/sound/human/letsgo key = "go" key_third_person = "goes" + name = "gachi come on" message = "yells, \"Come on, lets go!\"" message_mime = "motions moving forward!" - emote_sound = 'modular_splurt/sound/voice/gachi/go.ogg' + sound = 'modular_splurt/sound/voice/gachi/go.ogg' + emote_type = EMOTE_BOTH emote_cooldown = 1.6 SECONDS -/datum/emote/living/audio/chuckle2 +/datum/emote/sound/human/chuckle2 key = "chuckle2" key_third_person = "chuckles2" + name = "gachi chuckle" message = "chuckles." message_mime = "chuckles silently." - emote_sound = 'modular_splurt/sound/voice/gachi/chuckle.ogg' + sound = 'modular_splurt/sound/voice/gachi/chuckle.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 1.01 SECONDS -/datum/emote/living/audio/fockslaves +/datum/emote/sound/human/fockslaves key = "slaves" key_third_person = "slaves" + name = "gachi slaves" message = "curses slaves!" message_mime = "silently curses slaves!" - emote_sound = 'modular_splurt/sound/voice/gachi/fokensleves.ogg' + sound = 'modular_splurt/sound/voice/gachi/fokensleves.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 1.2 SECONDS -/datum/emote/living/audio/getbuttback +/datum/emote/sound/human/getbuttback key = "assback" key_third_person = "assbacks" + name = "gachi ass back" message = "demands someone's ass to get back here!" message_param = "demands %t's ass to get back here!" message_mime = "motions for someone's ass to get back here!" - emote_sound = 'modular_splurt/sound/voice/gachi/assback.ogg' + sound = 'modular_splurt/sound/voice/gachi/assback.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 1.9 SECONDS -/datum/emote/living/audio/boss +/datum/emote/sound/human/boss key = "boss" key_third_person = "boss" + name = "gachi boss of this gym" message = "seeks the boss of this place!" message_mime = "stares at the potential boss of this place!" - emote_sound = 'modular_splurt/sound/voice/gachi/boss.ogg' + sound = 'modular_splurt/sound/voice/gachi/boss.ogg' + emote_type = EMOTE_VISIBLE emote_cooldown = 1.68 SECONDS -/datum/emote/living/audio/attention +/datum/emote/sound/human/attention key = "attention" key_third_person = "attentions" + name = "atteeention" message = "demands an attention!" message_mime = "seems to be looking for an attention." emote_volume = 100 - emote_sound = 'modular_splurt/sound/voice/gachi/attention.ogg' + sound = 'modular_splurt/sound/voice/gachi/attention.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 1.36 SECONDS -/datum/emote/living/audio/ah +/datum/emote/sound/human/ah key = "ah" key_third_person = "ahs" + name = "gachi ah" message = "ahs!" message_mime = "ahs silently!" - emote_sound = 'modular_splurt/sound/voice/gachi/ah.ogg' + sound = 'modular_splurt/sound/voice/gachi/ah.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 0.67 SECONDS emote_volume = 25 -/datum/emote/living/audio/boolets +/datum/emote/sound/human/boolets key = "ammo" key_third_person = "ammos" + name = "more boolets" message = "is requesting ammo!" message_mime = "seem to ask for ammo!" - emote_sound = 'modular_splurt/sound/voice/gachi/boolets.ogg' + sound = 'modular_splurt/sound/voice/gachi/boolets.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 1.1 SECONDS // Uses longest sound's time. emote_volume = 10 -/datum/emote/living/audio/boolets/run_emote(mob/user, params) - emote_sound = pick('modular_splurt/sound/voice/gachi/boolets.ogg', 'modular_splurt/sound/voice/gachi/boolets2.ogg') +/datum/emote/sound/human/boolets/run_emote(mob/user, params) + sound = pick('modular_splurt/sound/voice/gachi/boolets.ogg', 'modular_splurt/sound/voice/gachi/boolets2.ogg') . = ..() -/datum/emote/living/audio/wepon +/datum/emote/sound/human/wepon key = "wepon" key_third_person = "wepons" + name = "bigger wepons" message = "is requesting bigger weapons!" message_mime = "seem to ask for weapons!" - emote_sound = 'modular_splurt/sound/voice/gachi/wepons.ogg' + sound = 'modular_splurt/sound/voice/gachi/wepons.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 1.07 SECONDS emote_volume = 10 -/datum/emote/living/audio/sciteam +/datum/emote/sound/human/sciteam key = "sciteam" key_third_person = "sciteams" + name = "Science Team" message = "exclaims, \"I am with the Science team!\"" message_mime = "gestures being with the Science team!" - emote_sound = 'modular_splurt/sound/voice/sciteam.ogg' + sound = 'modular_splurt/sound/voice/sciteam.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 1.32 SECONDS emote_volume = 90 -/datum/emote/living/audio/ambatukam +/datum/emote/sound/human/ambatukam key = "ambatukam" key_third_person = "ambatukams" message = "is about to come!" message_mime = "seems like about to come!" - emote_sound = 'modular_splurt/sound/voice/ambatukam.ogg' + sound = 'modular_splurt/sound/voice/ambatukam.ogg' + emote_type = EMOTE_BOTH emote_cooldown = 2.75 SECONDS //emote_volume = 30 -/datum/emote/living/audio/ambatukam2 +/datum/emote/sound/human/ambatukam2 key = "ambatukam2" key_third_person = "ambatukams2" + name = "ambatukam 2" message = "is about to come in harmony!" message_mime = "seems like about to come in harmony!" - emote_sound = 'modular_splurt/sound/voice/ambatukam_harmony.ogg' + sound = 'modular_splurt/sound/voice/ambatukam_harmony.ogg' + emote_type = EMOTE_BOTH emote_cooldown = 3.42 SECONDS //emote_volume = 60 -/datum/emote/living/audio/eekum +/datum/emote/sound/human/eekum key = "eekumbokum" key_third_person = "eekumbokums" message = "eekum-bokums!" message_mime = "seem to eekum-bokum!" - emote_sound = 'modular_splurt/sound/voice/eekum-bokum.ogg' + sound = 'modular_splurt/sound/voice/eekum-bokum.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 0.9 SECONDS // Uses longest sound's time. -/datum/emote/living/audio/eekum/run_emote(mob/user, params) +/datum/emote/sound/human/eekum/run_emote(mob/user, params) switch(user.gender) if(MALE) // Game's SFX - emote_sound = 'modular_splurt/sound/voice/eekum-bokum.ogg' + sound = 'modular_splurt/sound/voice/eekum-bokum.ogg' if(FEMALE) // Korone's - emote_sound = pick('modular_splurt/sound/voice/eekum-bokum_f1.ogg', 'modular_splurt/sound/voice/eekum-bokum_f2.ogg') + sound = pick('modular_splurt/sound/voice/eekum-bokum_f1.ogg', 'modular_splurt/sound/voice/eekum-bokum_f2.ogg') else // Both - emote_sound = pick('modular_splurt/sound/voice/eekum-bokum.ogg', 'modular_splurt/sound/voice/eekum-bokum_f1.ogg', 'modular_splurt/sound/voice/eekum-bokum_f2.ogg') + sound = pick('modular_splurt/sound/voice/eekum-bokum.ogg', 'modular_splurt/sound/voice/eekum-bokum_f1.ogg', 'modular_splurt/sound/voice/eekum-bokum_f2.ogg') . = ..() -/datum/emote/living/audio/bazinga +/datum/emote/sound/human/bazinga key = "bazinga" key_third_person = "bazingas" message = "exclaims, \"Bazinga!\"" message_mime = "fools someone, silently." - emote_sound = 'modular_splurt/sound/voice/bazinga.ogg' + sound = 'modular_splurt/sound/voice/bazinga.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 0.65 SECONDS -/datum/emote/living/audio/bazinga/run_emote(mob/user, params) +/datum/emote/sound/human/bazinga/run_emote(mob/user, params) if(prob(1)) // If Empah had TTS #25 - emote_sound = 'modular_splurt/sound/voice/bazinga_ebil.ogg' + sound = 'modular_splurt/sound/voice/bazinga_ebil.ogg' emote_pitch_variance = FALSE emote_cooldown = 1.92 SECONDS emote_volume = 110 else - emote_sound = 'modular_splurt/sound/voice/bazinga.ogg' + sound = 'modular_splurt/sound/voice/bazinga.ogg' emote_pitch_variance = TRUE emote_cooldown = 0.65 SECONDS emote_volume = 50 . = ..() -/datum/emote/living/audio/yooo +/datum/emote/sound/human/yooo key = "yooo" key_third_person = "yooos" message = "thinks they are part of Kabuki play." - emote_sound = 'modular_splurt/sound/voice/yooo.ogg' + sound = 'modular_splurt/sound/voice/yooo.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 2.54 SECONDS -/datum/emote/living/audio/buzzer_correct +/datum/emote/sound/human/buzzer_correct key = "correct" key_third_person = "corrects" message = "thinks someone is correct." message_param = "thinks %t is correct." - emote_sound = 'modular_splurt/sound/voice/buzzer_correct.ogg' + sound = 'modular_splurt/sound/voice/buzzer_correct.ogg' + emote_type = EMOTE_OMNI emote_cooldown = 0.84 SECONDS -/datum/emote/living/audio/buzzer_incorrect +/datum/emote/sound/human/buzzer_incorrect key = "incorrect" key_third_person = "incorrects" message = "thinks someone is incorrect." message_param = "thinks %t is incorrect." - emote_sound = 'modular_splurt/sound/voice/buzzer_incorrect.ogg' + sound = 'modular_splurt/sound/voice/buzzer_incorrect.ogg' + emote_type = EMOTE_OMNI emote_cooldown = 1.21 SECONDS -/datum/emote/living/audio/ace/ +/datum/emote/sound/human/ace/ key = "objection0" key_third_person = "objects0" + name = "OBJECTION!!" message = "\<\< OBJECTION!! \>\>" message_param = "\<\< %t \>\>" // Allows for custom objections, but alas only in lowercase. message_mime = "points their finger with determination!" - emote_sound = 'modular_splurt/sound/voice/ace/ace_objection_generic.ogg' + sound = 'modular_splurt/sound/voice/ace/ace_objection_generic.ogg' + emote_type = EMOTE_OMNI emote_cooldown = 6.0 SECONDS // This is regardless of sound's length. emote_volume = 30 -/datum/emote/living/audio/ace/objection +/datum/emote/sound/human/ace/objection key = "objection" key_third_person = "objects" - emote_sound = 'modular_splurt/sound/voice/ace/ace_objection_m1.ogg' + name = "Objection!" + sound = 'modular_splurt/sound/voice/ace/ace_objection_m1.ogg' + emote_type = EMOTE_AUDIBLE emote_pitch_variance = FALSE // IT BREAKS THESE SOMEHOW -/datum/emote/living/audio/ace/objection/run_emote(mob/user, params) +/datum/emote/sound/human/ace/objection/run_emote(mob/user, params) switch(user.gender) if(MALE) - emote_sound = pick('modular_splurt/sound/voice/ace/ace_objection_m1.ogg', 'modular_splurt/sound/voice/ace/ace_objection_m2.ogg', 'modular_splurt/sound/voice/ace/ace_objection_m3.ogg') + sound = pick('modular_splurt/sound/voice/ace/ace_objection_m1.ogg', 'modular_splurt/sound/voice/ace/ace_objection_m2.ogg', 'modular_splurt/sound/voice/ace/ace_objection_m3.ogg') if(FEMALE) - emote_sound = pick('modular_splurt/sound/voice/ace/ace_objection_f1.ogg', 'modular_splurt/sound/voice/ace/ace_objection_f2.ogg') + sound = pick('modular_splurt/sound/voice/ace/ace_objection_f1.ogg', 'modular_splurt/sound/voice/ace/ace_objection_f2.ogg') else // Both because I am lazy. - emote_sound = pick('modular_splurt/sound/voice/ace/ace_objection_m1.ogg', 'modular_splurt/sound/voice/ace/ace_objection_m2.ogg', 'modular_splurt/sound/voice/ace/ace_objection_m3.ogg', 'modular_splurt/sound/voice/ace/ace_objection_f1.ogg', 'modular_splurt/sound/voice/ace/ace_objection_f2.ogg') + sound = pick('modular_splurt/sound/voice/ace/ace_objection_m1.ogg', 'modular_splurt/sound/voice/ace/ace_objection_m2.ogg', 'modular_splurt/sound/voice/ace/ace_objection_m3.ogg', 'modular_splurt/sound/voice/ace/ace_objection_f1.ogg', 'modular_splurt/sound/voice/ace/ace_objection_f2.ogg') . = ..() -/datum/emote/living/audio/ace/hold_it +/datum/emote/sound/human/ace/hold_it key = "holdit" key_third_person = "holdsit" + name = "HOLD IT!!" message = "\<\< HOLD IT!! \>\>" - emote_sound = 'modular_splurt/sound/voice/ace/ace_holdit_m1.ogg' + sound = 'modular_splurt/sound/voice/ace/ace_holdit_m1.ogg' + emote_type = EMOTE_OMNI emote_pitch_variance = FALSE // IT BREAKS THESE SOMEHOW -/datum/emote/living/audio/ace/hold_it/run_emote(mob/user, params) +/datum/emote/sound/human/ace/hold_it/run_emote(mob/user, params) switch(user.gender) if(MALE) - emote_sound = pick('modular_splurt/sound/voice/ace/ace_holdit_m1.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_m2.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_m3.ogg') + sound = pick('modular_splurt/sound/voice/ace/ace_holdit_m1.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_m2.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_m3.ogg') if(FEMALE) - emote_sound = pick('modular_splurt/sound/voice/ace/ace_holdit_f1.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_f2.ogg') + sound = pick('modular_splurt/sound/voice/ace/ace_holdit_f1.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_f2.ogg') else // Both because I am lazy. - emote_sound = pick('modular_splurt/sound/voice/ace/ace_holdit_m1.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_m2.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_m3.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_f1.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_f2.ogg') + sound = pick('modular_splurt/sound/voice/ace/ace_holdit_m1.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_m2.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_m3.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_f1.ogg', 'modular_splurt/sound/voice/ace/ace_holdit_f2.ogg') . = ..() -/datum/emote/living/audio/ace/take_that +/datum/emote/sound/human/ace/take_that key = "takethat" key_third_person = "takesthat" + name = "TAKE THAT!!" message = "\<\< TAKE THAT!! \>\>" - emote_sound = 'modular_splurt/sound/voice/ace/ace_takethat_m1.ogg' + sound = 'modular_splurt/sound/voice/ace/ace_takethat_m1.ogg' + emote_type = EMOTE_OMNI emote_pitch_variance = FALSE // IT BREAKS THESE SOMEHOW -/datum/emote/living/audio/ace/take_that/run_emote(mob/user, params) +/datum/emote/sound/human/ace/take_that/run_emote(mob/user, params) switch(user.gender) if(MALE) - emote_sound = pick('modular_splurt/sound/voice/ace/ace_takethat_m1.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_m2.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_m3.ogg') + sound = pick('modular_splurt/sound/voice/ace/ace_takethat_m1.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_m2.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_m3.ogg') if(FEMALE) - emote_sound = pick('modular_splurt/sound/voice/ace/ace_takethat_f1.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_f2.ogg') + sound = pick('modular_splurt/sound/voice/ace/ace_takethat_f1.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_f2.ogg') else // Both because I am lazy. - emote_sound = pick('modular_splurt/sound/voice/ace/ace_takethat_m1.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_m2.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_m3.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_f1.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_f2.ogg') + sound = pick('modular_splurt/sound/voice/ace/ace_takethat_m1.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_m2.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_m3.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_f1.ogg', 'modular_splurt/sound/voice/ace/ace_takethat_f2.ogg') . = ..() -/datum/emote/living/audio/realize +/datum/emote/sound/human/realize key = "realize" key_third_person = "realizes" message = "realizes something." - emote_sound = 'modular_splurt/sound/voice/ace/ace_realize.ogg' + sound = 'modular_splurt/sound/voice/ace/ace_realize.ogg' + emote_type = EMOTE_VISIBLE emote_cooldown = 1.19 SECONDS -/datum/emote/living/audio/smirk2 +/datum/emote/sound/human/smirk2 key = "smirk2" key_third_person = "smirks2" + name = "smirk 2" message = "smirks." - emote_sound = 'modular_splurt/sound/voice/ace/ace_wubs.ogg' + sound = 'modular_splurt/sound/voice/ace/ace_wubs.ogg' + emote_type = EMOTE_VISIBLE emote_cooldown = 0.84 SECONDS -/datum/emote/living/audio/nani +/datum/emote/sound/human/nani key = "nani" key_third_person = "nanis" message = "seems confused." - emote_sound = 'modular_splurt/sound/voice/nani.ogg' + sound = 'modular_splurt/sound/voice/nani.ogg' + emote_type = EMOTE_VISIBLE emote_cooldown = 0.5 SECONDS -/datum/emote/living/audio/canonevent +/datum/emote/sound/human/canonevent key = "2099" key_third_person = "canons" + name = "canon event" message = "thinks this is a canon event." - emote_sound = 'modular_splurt/sound/voice/canon_event.ogg' + sound = 'modular_splurt/sound/voice/canon_event.ogg' + emote_type = EMOTE_OMNI emote_cooldown = 5.0 SECONDS emote_volume = 27 -/datum/emote/living/audio/meow +/datum/emote/sound/human/meow key = "meow" key_third_person = "meows" message = "meows!" emote_type = EMOTE_AUDIBLE // No reason mimes shouldn't meow. - emote_sound = 'modular_splurt/sound/voice/catpeople/cat_meow1.ogg' + restraint_check = FALSE + sound = 'modular_splurt/sound/voice/catpeople/cat_meow1.ogg' emote_cooldown = 0.8 SECONDS // the longest audio is 1 second but who gives a fuck mrrp mrrp meow emote_pitch_variance = FALSE // why would you -/datum/emote/living/audio/meow/run_emote(mob/user, params) - emote_sound = pick('modular_splurt/sound/voice/catpeople/cat_meow1.ogg', 'modular_splurt/sound/voice/catpeople/cat_meow2.ogg', 'modular_splurt/sound/voice/catpeople/cat_meow3.ogg') // Credit to Nyanotrasen (https://github.com/Nyanotrasen/Nyanotrasen) +/datum/emote/sound/human/meow/run_emote(mob/user, params) + sound = pick('modular_splurt/sound/voice/catpeople/cat_meow1.ogg', 'modular_splurt/sound/voice/catpeople/cat_meow2.ogg', 'modular_splurt/sound/voice/catpeople/cat_meow3.ogg') // Credit to Nyanotrasen (https://github.com/Nyanotrasen/Nyanotrasen) . = ..() -/datum/emote/living/audio/meow2 +/datum/emote/sound/human/meow2 key = "meow2" key_third_person = "meows2" + name = "meow 2" message = "mews!" message_mime = "mews silently!" - emote_sound = 'modular_splurt/sound/voice/catpeople/cat_mew1.ogg' + sound = 'modular_splurt/sound/voice/catpeople/cat_mew1.ogg' emote_type = EMOTE_AUDIBLE emote_cooldown = 0.8 SECONDS // mrrp mrrp meow emote_pitch_variance = FALSE -/datum/emote/living/audio/meow2/run_emote(mob/user, params) - emote_sound = pick('modular_splurt/sound/voice/catpeople/cat_mew1.ogg', 'modular_splurt/sound/voice/catpeople/cat_mew2.ogg') // Credit to Nyanotrasen (https://github.com/Nyanotrasen/Nyanotrasen) +/datum/emote/sound/human/meow2/run_emote(mob/user, params) + sound = pick('modular_splurt/sound/voice/catpeople/cat_mew1.ogg', 'modular_splurt/sound/voice/catpeople/cat_mew2.ogg') // Credit to Nyanotrasen (https://github.com/Nyanotrasen/Nyanotrasen) . = ..() -/datum/emote/living/audio/mrrp +/datum/emote/sound/human/mrrp key = "mrrp" key_third_person = "mrrps" message = "trills like a cat!" message_mime = "trills silently!" - emote_sound = 'modular_splurt/sound/voice/catpeople/cat_mrrp1.ogg' + sound = 'modular_splurt/sound/voice/catpeople/cat_mrrp1.ogg' emote_type = EMOTE_AUDIBLE emote_cooldown = 0.8 SECONDS // mrrp mrrp meow emote_pitch_variance = FALSE -/datum/emote/living/audio/mrrp/run_emote(mob/user, params) - emote_sound = pick('modular_splurt/sound/voice/catpeople/cat_mrrp1.ogg', 'modular_splurt/sound/voice/catpeople/cat_mrrp2.ogg') +/datum/emote/sound/human/mrrp/run_emote(mob/user, params) + sound = pick('modular_splurt/sound/voice/catpeople/cat_mrrp1.ogg', 'modular_splurt/sound/voice/catpeople/cat_mrrp2.ogg') . = ..() -/datum/emote/living/audio/mrowl +/datum/emote/sound/human/mrowl key = "mrowl" key_third_person = "mrowls" message = "mrowls." - emote_sound = 'modular_splurt/sound/voice/mrowl.ogg' + sound = 'modular_splurt/sound/voice/mrowl.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 0.95 SECONDS emote_pitch_variance = FALSE -/datum/emote/living/audio/gay +/datum/emote/sound/human/gay key = "gay" key_third_person = "gays" // *point [ref] is already an emote. Also "*points at a user" is a key nobody would ever use. message = "saw something gay." - emote_sound = 'modular_splurt/sound/voice/gay-echo.ogg' + sound = 'modular_splurt/sound/voice/gay-echo.ogg' + emote_type = EMOTE_BOTH emote_cooldown = 0.95 SECONDS emote_pitch_variance = FALSE -/datum/emote/living/audio/flabbergast +/datum/emote/sound/human/flabbergast key = "flabbergast" key_third_person = "flabbergasted" message = "looks flabbergasted!" - emote_sound = 'modular_splurt/sound/voice/flabbergasted.ogg' + sound = 'modular_splurt/sound/voice/flabbergasted.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 3.0 SECONDS emote_pitch_variance = FALSE emote_volume = 70 -/datum/emote/living/audio/rawr +/datum/emote/sound/human/rawr key = "rawr" key_third_person = "rawrs" message = "lets out a rawr!" - emote_sound = 'modular_sand/sound/voice/rawr.ogg' + sound = 'modular_sand/sound/voice/rawr.ogg' + emote_type = EMOTE_AUDIBLE emote_cooldown = 0.8 SECONDS diff --git a/tgui/packages/tgui/interfaces/EmotePanel.tsx b/tgui/packages/tgui/interfaces/EmotePanel.tsx index 9610e71739..75f5402be8 100644 --- a/tgui/packages/tgui/interfaces/EmotePanel.tsx +++ b/tgui/packages/tgui/interfaces/EmotePanel.tsx @@ -102,27 +102,28 @@ export const EmotePanelContent = (props, context) => { : `All Emotes` } buttons={ - - - - - - - - + + + + } > @@ -149,7 +150,7 @@ export const EmotePanelContent = (props, context) => { .sort((a, b) => (a.name > b.name ? 1 : -1)) .map((emote) => (