diff --git a/Resources/Audio/_DV/Voice/Kitsune/attributions.yml b/Resources/Audio/_DV/Voice/Kitsune/attributions.yml new file mode 100644 index 00000000000..4c109b27ee2 --- /dev/null +++ b/Resources/Audio/_DV/Voice/Kitsune/attributions.yml @@ -0,0 +1,14 @@ +- files: ["fox_scream1.ogg"] + license: "CC0-1.0" + copyright: "Original sound by https://pixabay.com/users/l3hrja-38345766/" + source: "https://pixabay.com/sound-effects/fox-calling-243999/" + +- files: ["fox_growl1"] + license: "CC0-1.0" + copyright: "Original sound by https://freesound.org/people/wingz/sounds/13789/" + source: "https://freesound.org/people/wingz/sounds/13789/" + +- files: ["fox_squeal1.off"] + license: "CC-BY-4.0" + copyright: "Original sound by https://freesound.org/people/Motion_S/sounds/178412/" + source: "https://freesound.org/people/Motion_S/sounds/178412/" diff --git a/Resources/Audio/_DV/Voice/Kitsune/fox_growl1.ogg b/Resources/Audio/_DV/Voice/Kitsune/fox_growl1.ogg new file mode 100644 index 00000000000..38e90d3b0cb Binary files /dev/null and b/Resources/Audio/_DV/Voice/Kitsune/fox_growl1.ogg differ diff --git a/Resources/Audio/_DV/Voice/Kitsune/fox_scream1.ogg b/Resources/Audio/_DV/Voice/Kitsune/fox_scream1.ogg new file mode 100644 index 00000000000..ab442ef46c1 Binary files /dev/null and b/Resources/Audio/_DV/Voice/Kitsune/fox_scream1.ogg differ diff --git a/Resources/Audio/_DV/Voice/Kitsune/fox_squeal1.ogg b/Resources/Audio/_DV/Voice/Kitsune/fox_squeal1.ogg new file mode 100644 index 00000000000..024987eabb6 Binary files /dev/null and b/Resources/Audio/_DV/Voice/Kitsune/fox_squeal1.ogg differ diff --git a/Resources/Locale/en-US/_DV/chat/managers/chat_manager.ftl b/Resources/Locale/en-US/_DV/chat/managers/chat_manager.ftl new file mode 100644 index 00000000000..652e5016f25 --- /dev/null +++ b/Resources/Locale/en-US/_DV/chat/managers/chat_manager.ftl @@ -0,0 +1,23 @@ +chat-speech-verb-name-rodentia = Rodentia +chat-speech-verb-rodentia-1 = squeaks +chat-speech-verb-rodentia-2 = pieps +chat-speech-verb-rodentia-3 = chatters +chat-speech-verb-rodentia-4 = squeals + +chat-speech-verb-name-chitinid = Chitinid +chat-speech-verb-chitinid-1 = clicks +chat-speech-verb-chitinid-2 = chitters +chat-speech-verb-chitinid-3 = hisses +chat-speech-verb-chitinid-4 = buzzes + +chat-speech-verb-name-kitsune = Kitsune +chat-speech-verb-kitsune-1 = yelps +chat-speech-verb-kitsune-2 = barks +chat-speech-verb-kitsune-3 = whines +chat-speech-verb-kitsune-4 = yips + +chat-speech-verb-name-feroxi = Feroxi +chat-speech-verb-feroxi-1 = blubs +chat-speech-verb-feroxi-2 = swishes +chat-speech-verb-feroxi-3 = gnashes +chat-speech-verb-feroxi-4 = growls \ No newline at end of file diff --git a/Resources/Locale/en-US/_NF/chat/managers/chat_manager.ftl b/Resources/Locale/en-US/_NF/chat/managers/chat_manager.ftl index a1da8555704..897a4cb0375 100644 --- a/Resources/Locale/en-US/_NF/chat/managers/chat_manager.ftl +++ b/Resources/Locale/en-US/_NF/chat/managers/chat_manager.ftl @@ -23,21 +23,3 @@ chat-speech-verb-goblin-2 = vokers chat-speech-verb-goblin-3 = blurts out chat-speech-verb-goblin-4 = patters chat-speech-verb-goblin-5 = cuts - -chat-speech-verb-name-rodentia = Rodentia -chat-speech-verb-rodentia-1 = squeaks -chat-speech-verb-rodentia-2 = pieps -chat-speech-verb-rodentia-3 = chatters -chat-speech-verb-rodentia-4 = squeals - -chat-speech-verb-name-chitinid = Chitinid -chat-speech-verb-chitinid-1 = clicks -chat-speech-verb-chitinid-2 = chitters -chat-speech-verb-chitinid-3 = hisses -chat-speech-verb-chitinid-4 = buzzes - -chat-speech-verb-name-feroxi = Feroxi -chat-speech-verb-feroxi-1 = blubs -chat-speech-verb-feroxi-2 = swishes -chat-speech-verb-feroxi-3 = gnashes -chat-speech-verb-feroxi-4 = growls diff --git a/Resources/Locale/en-US/_Starlight/chat/emotes.ftl b/Resources/Locale/en-US/_Starlight/chat/emotes.ftl index 5f4edd3301f..6786d0acfc3 100644 --- a/Resources/Locale/en-US/_Starlight/chat/emotes.ftl +++ b/Resources/Locale/en-US/_Starlight/chat/emotes.ftl @@ -1,3 +1,4 @@ +# Emote Names chat-emote-name-scree = Scree chat-emote-name-call = Call chat-emote-name-squawk = Squawk @@ -5,10 +6,22 @@ chat-emote-name-squawk = Squawk # chat-emote-name-hiss = Hiss chat-emote-name-purr = Purr chat-emote-name-growl = Growl +chat-emote-name-bark = Bark +chat-emote-name-yip = Yip +# Emote Messages chat-emote-msg-scree = screes. chat-emote-msg-call = calls. chat-emote-msg-squawk = squawks. # Triad: orphaned Starlight keys (typo'd, no prototype references them); commented out, not deleted, so upstream merges surface them # chat-emote-msg-lurr = purrs. # chat-emote-msg-liss = hisses. +chat-emote-msg-mew = mews +chat-emote-msg-hiss = hisses +chat-emote-msg-purr = purrs +chat-emote-msg-meow = meows +chat-emote-msg-trill = trills +chat-emote-msg-howl = howls +chat-emote-msg-growl = growls +chat-emote-msg-bark = barks +chat-emote-msg-yip = yips diff --git a/Resources/Locale/en-US/chat/managers/chat-manager.ftl b/Resources/Locale/en-US/chat/managers/chat-manager.ftl index 9733f7fd0d8..58a19b7e87f 100644 --- a/Resources/Locale/en-US/chat/managers/chat-manager.ftl +++ b/Resources/Locale/en-US/chat/managers/chat-manager.ftl @@ -129,6 +129,7 @@ chat-speech-verb-name-canine = Canine chat-speech-verb-canine-1 = barks chat-speech-verb-canine-2 = woofs chat-speech-verb-canine-3 = howls +chat-speech-verb-canine-4 = yips #starlight chat-speech-verb-name-goat = Goat chat-speech-verb-goat-1 = bleats diff --git a/Resources/Prototypes/Voice/speech_verbs.yml b/Resources/Prototypes/Voice/speech_verbs.yml index f8202847fd6..f96baa4ad25 100644 --- a/Resources/Prototypes/Voice/speech_verbs.yml +++ b/Resources/Prototypes/Voice/speech_verbs.yml @@ -109,6 +109,7 @@ - chat-speech-verb-canine-1 - chat-speech-verb-canine-2 - chat-speech-verb-canine-3 + - chat-speech-verb-canine-4 #starlight - type: speechVerb id: Goat diff --git a/Resources/Prototypes/_DV/SoundCollections/kitsune.yml b/Resources/Prototypes/_DV/SoundCollections/kitsune.yml new file mode 100644 index 00000000000..8d6b88040d9 --- /dev/null +++ b/Resources/Prototypes/_DV/SoundCollections/kitsune.yml @@ -0,0 +1,14 @@ +- type: soundCollection + id: KitsuneScream + files: + - /Audio/_DV/Voice/Kitsune/fox_scream1.ogg + +- type: soundCollection + id: KitsuneSqueal + files: + - /Audio/_DV/Voice/Kitsune/fox_squeal1.ogg + +- type: soundCollection + id: KitsuneGrowl + files: + - /Audio/_DV/Voice/Kitsune/fox_growl1.ogg diff --git a/Resources/Prototypes/_DV/Traits/trait_categories.yml b/Resources/Prototypes/_DV/Traits/trait_categories.yml index ee514947ea9..6cc55325b02 100644 --- a/Resources/Prototypes/_DV/Traits/trait_categories.yml +++ b/Resources/Prototypes/_DV/Traits/trait_categories.yml @@ -35,3 +35,11 @@ priority: 50 maxPoints: 6 accentColor: "#e0e0e0" # Light gray + +# Triad +- type: traitCategory + id: Emotes + name: trait-category-emotes + priority: 31 + maxTraits: 1 + accentColor: "#edc8ff" # Light gray # Triad TODO Pick actual color diff --git a/Resources/Prototypes/_DV/Voice/speech_emote_sounds.yml b/Resources/Prototypes/_DV/Voice/speech_emote_sounds.yml index 3d626fc01c0..b46a64e4952 100644 --- a/Resources/Prototypes/_DV/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/_DV/Voice/speech_emote_sounds.yml @@ -388,3 +388,107 @@ collection: FemaleGasp DefaultDeathgasp: collection: FemaleDeathGasp + +- type: emoteSounds + id: MaleKitsune + params: + variation: 0.125 + sounds: + Scream: + collection: KitsuneScream + Laugh: + collection: MaleLaugh + Sneeze: + collection: MaleSneezes + Cough: + collection: MaleCoughs + Yawn: + collection: MaleYawn + Snore: + collection: Snores + Honk: + collection: BikeHorn + Sigh: + collection: MaleSigh + Crying: + collection: MaleCry + Whistle: + collection: Whistles + Weh: + collection: Weh + Squeak: + collection: KitsuneSqueal + Growl: + collection: KitsuneGrowl + Gasp: + collection: MaleGasp + DefaultDeathgasp: + collection: MaleDeathGasp + # Begin HardLight + Snarl: + collection: VulpkaninSnarls + Bark: + collection: VulpkaninBarks + Whine: + collection: VulpkaninWhimpers + Purr: + collection: FelinidPurrs + Howl: + collection: VulpkaninHowls + Yip: + path: /Audio/Animals/fox_squeak.ogg + Pout: + collection: Whine + # End Hardlight + +- type: emoteSounds + id: FemaleKitsune + params: + variation: 0.125 + sounds: + Scream: + collection: KitsuneScream + Laugh: + collection: FemaleLaugh + Sneeze: + collection: FemaleSneezes + Cough: + collection: FemaleCoughs + Yawn: + collection: FemaleYawn + Snore: + collection: Snores + Honk: + collection: BikeHorn + Sigh: + collection: FemaleSigh + Crying: + collection: FemaleCry + Whistle: + collection: Whistles + Weh: + collection: Weh + Squeak: + collection: KitsuneSqueal + Growl: + collection: KitsuneGrowl + Gasp: + collection: FemaleGasp + DefaultDeathgasp: + collection: FemaleDeathGasp + # Begin Hardlight + Snarl: + collection: VulpkaninSnarls + Bark: + collection: VulpkaninBarks + Whine: + collection: VulpkaninWhimpers + Howl: + collection: VulpkaninHowls + Purr: + collection: FelinidPurrs + Yip: + path: /Audio/Animals/fox_squeak.ogg + Pout: + collection: VulpkaninWhines + # End Hardlight diff --git a/Resources/Prototypes/_DV/Voice/speech_verbs.yml b/Resources/Prototypes/_DV/Voice/speech_verbs.yml index 28511a1a6a6..9efcb6c1b32 100644 --- a/Resources/Prototypes/_DV/Voice/speech_verbs.yml +++ b/Resources/Prototypes/_DV/Voice/speech_verbs.yml @@ -52,3 +52,12 @@ - chat-speech-verb-feroxi-2 - chat-speech-verb-feroxi-3 - chat-speech-verb-feroxi-4 + +- type: speechVerb + id: Kitsune + name: chat-speech-verb-name-kitsune + speechVerbStrings: + - chat-speech-verb-kitsune-1 + - chat-speech-verb-kitsune-2 + - chat-speech-verb-kitsune-3 + - chat-speech-verb-kitsune-4 diff --git a/Resources/Prototypes/_DV/typing_indicator.yml b/Resources/Prototypes/_DV/typing_indicator.yml index b172a2764e5..43f0a34f88d 100644 --- a/Resources/Prototypes/_DV/typing_indicator.yml +++ b/Resources/Prototypes/_DV/typing_indicator.yml @@ -24,3 +24,10 @@ spritePath: /Textures/_DV/Effects/speech.rsi typingState: feroxi0 idleState: feroxi3 #Triad + +- type: typingIndicator + id: kitsune + spritePath: /Textures/_DV/Effects/speech.rsi + typingState: kitsune0 + idleState: kitsune0 + offset: 0, 0.25 diff --git a/Resources/Prototypes/_HL/Voice/speech_emotes.yml b/Resources/Prototypes/_HL/Voice/speech_emotes.yml new file mode 100644 index 00000000000..dd4509f299e --- /dev/null +++ b/Resources/Prototypes/_HL/Voice/speech_emotes.yml @@ -0,0 +1,17 @@ +- type: emote + id: Pout + name: chat-emote-name-pout + category: Vocal + available: false + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassis + chatMessages: ["chat-emote-msg-pout"] + chatTriggers: + - pout + - pouts + - pouted + - pouting \ No newline at end of file diff --git a/Resources/Prototypes/_StarLight/Voice/speech_emotes.yml b/Resources/Prototypes/_StarLight/Voice/speech_emotes.yml index 177fa5cca3f..97b2e141410 100644 --- a/Resources/Prototypes/_StarLight/Voice/speech_emotes.yml +++ b/Resources/Prototypes/_StarLight/Voice/speech_emotes.yml @@ -19,16 +19,23 @@ name: chat-emote-name-yip category: Vocal available: false - chatMessages: ["chat-emote-msg-yip"] # Triad: was literal `yips.` + icon: Interface/Actions/scream.png whitelist: components: - Vocal blacklist: components: - BorgChassis + chatMessages: ["chat-emote-msg-yip"] chatTriggers: - yip + - yip. + - yip? + - yip! - yips + - yips. + - yips? + - yips! - type: emote id: Scree diff --git a/Resources/Prototypes/_Triad/SoundCollections/pout.yml b/Resources/Prototypes/_Triad/SoundCollections/pout.yml new file mode 100644 index 00000000000..602fbf0e44b --- /dev/null +++ b/Resources/Prototypes/_Triad/SoundCollections/pout.yml @@ -0,0 +1,17 @@ +- type: soundCollection + id: Pout + files: + - /Audio/Animals/fox1.ogg + - /Audio/Animals/fox2.ogg + - /Audio/Animals/fox3.ogg + - /Audio/Animals/fox4.ogg + - /Audio/Animals/fox5.ogg + - /Audio/Animals/fox6.ogg + - /Audio/Animals/fox7.ogg + - /Audio/Animals/fox8.ogg + - /Audio/Animals/fox9.ogg + - /Audio/Animals/fox10.ogg + - /Audio/Animals/fox11.ogg + - /Audio/Animals/fox12.ogg + - /Audio/Animals/fox13.ogg + - /Audio/Animals/fox14.ogg \ No newline at end of file diff --git a/Resources/Prototypes/_Triad/Traits/emotes.yml b/Resources/Prototypes/_Triad/Traits/emotes.yml new file mode 100644 index 00000000000..ebd211f488a --- /dev/null +++ b/Resources/Prototypes/_Triad/Traits/emotes.yml @@ -0,0 +1,143 @@ +# Triad - New Category [Total is replacement of emotes and noise when speaking.] +# Emote and speech sound replacement. +# Overriding the speech component with just allowedEmotes, breaks the normal speechSounds and speechVerb. +# So no partial replacement trait. +# +# +# OverrideCompsEffect wipes the component field and replaces with exactly what is specified, +# rather than replacing sub-component values when specified. +# Ideally, we would use RemCompsEffect to remove the componenet and then follow with AddCompsEffect for the items to achieve that behavior. +# And OverrideCompsEffect would ideally just replace the sub-component fields when/where values are provided. +# But thats not what was coded, so no partial replacements for now :< + + +# To add a new partial or total replacement trait, use the examples here. +# +# Replace with a capitalized name of the species, and with the lowercase version. +# Pull the allowedEmotes from the species yml file. This will replace what emotes someone has available. +# The components of speechSounds, speechVerb, and vocal sounds also should come from the species yml file. + + +# - type: trait +# id: RaisedBy +# name: trait-vocal--total-replacement-name +# description: trait-vocal--total-replacement-desc +# category: Emotes +# cost: 0 +# conditions: +# - !type:IsSpeciesCondition +# species: +# invert: true +# effects: +# - !type:OverrideCompsEffect +# components: +# - type: Speech +# speechSounds: +# speechVerb: +# allowedEmotes: +# - type: Vocal +# sounds: +# Male: +# Female: +# Unsexed: + +- type: trait + id: RaisedByHarpies + name: trait-vocal-harpies-total-replacement-name + description: trait-vocal-harpies-total-replacement-desc + category: Emotes + cost: 0 + conditions: + - !type:IsSpeciesCondition + species: Harpy + invert: true + - !type:AnyOfCondition + conditions: + - !type:IsSpeciesCondition + species: Avali + - !type:IsSpeciesCondition + species: Resomi + effects: + - !type:OverrideCompsEffect + components: + - type: Speech + speechSounds: Harpy + speechVerb: Harpy + allowedEmotes: ['Meow', 'Hiss', 'Mew', 'Purr', 'Growl', 'Bark', 'Snarl', 'Whine', 'Howl', 'Awoo', 'Honk', 'HarpyRing', 'HarpyPew', 'HarpyBang', 'Beep', 'HarpyRev', 'HarpyCaw', 'Squish', 'Chitter', 'Squeak', 'Click', 'Belch', 'Squish', Bagawk] # Frontier: add Belch, Squish + - type: Vocal + sounds: + Male: SoundsHarpy + Female: SoundsHarpy + Unsexed: SoundsHarpy + +- type: trait + id: RaisedByVulpkanin + name: trait-vocal-vulpkanin-total-replacement-name + description: trait-vocal-vulpkanin-total-replacement-desc + category: Emotes + cost: 0 + conditions: + - !type:IsSpeciesCondition + species: Vulpkanin + invert: true + - !type:AnyOfCondition + conditions: + - !type:IsSpeciesCondition + species: Human + - !type:IsSpeciesCondition + species: Felinid + effects: + - !type:OverrideCompsEffect + components: + - type: Speech + speechSounds: Vulpkanin + speechVerb: Vulpkanin + allowedEmotes: ['Bark', 'Snarl', 'Whine', 'Howl', 'Awoo', 'Growl', 'Yip', 'Whimper'] # Starlight / Monolith: Add yip, whine; rename old whine to whimper + - type: Vocal + sounds: + Male: MaleVulpkanin + Female: FemaleVulpkanin + Unsexed: MaleVulpkanin + +- type: trait + id: RaisedByKitsune + name: trait-vocal-kitsune-total-replacement-name + description: trait-vocal-kitsune-total-replacement-desc + category: Emotes + cost: 0 + conditions: + - !type:AnyOfCondition + conditions: + - !type:IsSpeciesCondition + species: Vulpkanin + - !type:IsSpeciesCondition + species: Human + - !type:IsSpeciesCondition + species: Felinid + effects: + - !type:OverrideCompsEffect + components: + - type: Speech + speechSounds: Alto + speechVerb: Kitsune + allowedEmotes: [ 'Squeak', 'Growl', 'Snarl', 'Bark', 'Whine', 'Howl', 'Purr', 'Yip', 'Pout' ] + - type: Vocal + sounds: + Male: MaleKitsune + Female: FemaleKitsune + Unsexed: MaleKitsune + # - type: TypingIndicator # Triad - No idea why typing indicator isnt overriding. Remove and override doesn't fix either. Deosn't work with trying to give felinid either. + # proto: kitsune + # - type: InteractionPopup # Triad - Was giving both hug and hearts. Need to fix before implemented. + # successChance: 0.5 + # interactSuccessString: petting-success-soft-floofy-kitsune + # interactFailureString: petting-failure-generic + # interactSuccessSpawn: EffectHearts + # interactSuccessSound: + # path: /Audio/Animals/fox_squeak.ogg + - type: PseudoItem + storedOffset: "0,17" + shape: + - 0,0,1,4 + - 0,2,3,4 + - 4,0,5,4 \ No newline at end of file diff --git a/Resources/Textures/_DV/Effects/speech.rsi/kitsune0.png b/Resources/Textures/_DV/Effects/speech.rsi/kitsune0.png new file mode 100644 index 00000000000..af42ecb8bcf Binary files /dev/null and b/Resources/Textures/_DV/Effects/speech.rsi/kitsune0.png differ diff --git a/Resources/Textures/_DV/Effects/speech.rsi/kitsune1.png b/Resources/Textures/_DV/Effects/speech.rsi/kitsune1.png new file mode 100644 index 00000000000..ea47cb93a99 Binary files /dev/null and b/Resources/Textures/_DV/Effects/speech.rsi/kitsune1.png differ diff --git a/Resources/Textures/_DV/Effects/speech.rsi/kitsune2.png b/Resources/Textures/_DV/Effects/speech.rsi/kitsune2.png new file mode 100644 index 00000000000..ae3e9d0f7ac Binary files /dev/null and b/Resources/Textures/_DV/Effects/speech.rsi/kitsune2.png differ diff --git a/Resources/Textures/_DV/Effects/speech.rsi/meta.json b/Resources/Textures/_DV/Effects/speech.rsi/meta.json index 0654c7cc8fb..2cb0538b358 100644 --- a/Resources/Textures/_DV/Effects/speech.rsi/meta.json +++ b/Resources/Textures/_DV/Effects/speech.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "Felinid sprites made by Adrian16199 (Github), Rodentia sprites made by portfiend, Feroxi sprites made by BlitzTheSquishy", + "copyright": "Felinid sprites made by Adrian16199 (Github), Rodentia sprites made by portfiend, Feroxi sprites made by BlitzTheSquishy, Kitsune added in https://github.com/DeltaV-Station/Delta-v/pull/3175 no attribution provided", "states": [ { "name": "felinid0", @@ -113,6 +113,23 @@ }, { "name": "feroxi3" + }, + { + "name": "kitsune0", + "delays": [ + [ + 0.2, + 0.3, + 0.3, + 0.5 + ] + ] + }, + { + "name": "kitsune1" + }, + { + "name": "kitsune2" } ] }