From 3cc0eb5f3349adfffbfe34d80c46c8386c292775 Mon Sep 17 00:00:00 2001 From: mirrorcult Date: Mon, 28 Mar 2022 13:53:20 -0700 Subject: [PATCH] Mouse content (#7307) --- .../Nutrition/EntitySystems/FoodSystem.cs | 6 ++-- Resources/Audio/Animals/license.txt | 2 ++ Resources/Audio/Animals/mouse_squeak.ogg | Bin 0 -> 8974 bytes .../Prototypes/Entities/Mobs/NPCs/animals.yml | 26 ++++++++++++++---- 4 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 Resources/Audio/Animals/mouse_squeak.ogg diff --git a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs index d5ef700e6d..8257ed2932 100644 --- a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs @@ -46,7 +46,7 @@ namespace Content.Server.Nutrition.EntitySystems SubscribeLocalEvent(OnUseFoodInHand); SubscribeLocalEvent(OnFeedFood); - SubscribeLocalEvent>(AddEatVerb); + SubscribeLocalEvent>(AddEatVerb); SubscribeLocalEvent(OnFeed); SubscribeLocalEvent(OnFeedCancelled); SubscribeLocalEvent(OnInventoryIngestAttempt); @@ -235,7 +235,7 @@ namespace Content.Server.Nutrition.EntitySystems EntityManager.QueueDeleteEntity(component.Owner); } - private void AddEatVerb(EntityUid uid, FoodComponent component, GetVerbsEvent ev) + private void AddEatVerb(EntityUid uid, FoodComponent component, GetVerbsEvent ev) { if (component.CancelToken != null) return; @@ -250,7 +250,7 @@ namespace Content.Server.Nutrition.EntitySystems if (EntityManager.TryGetComponent(uid, out var mobState) && mobState.IsAlive()) return; - InteractionVerb verb = new() + AlternativeVerb verb = new() { Act = () => { diff --git a/Resources/Audio/Animals/license.txt b/Resources/Audio/Animals/license.txt index e1c05d4c72..8b94f09313 100644 --- a/Resources/Audio/Animals/license.txt +++ b/Resources/Audio/Animals/license.txt @@ -11,3 +11,5 @@ duck_quack_happy.ogg: modified from "Duck Quack - Sound Effect (HD).mp3" by free chicken_cluck_happy.ogg: modified from "Chicken Single Alarm Call" by freesound user "Rudmer_Rotteveel" (https://freesound.org/people/Rudmer_Rotteveel/sounds/316920/) licensed under CC0 1.0 (public domain). The original audio was trimmed and converted from WAV to OGG format. ferret_happy.ogg: modified from "Ferret" by freesound user "J.Zazvurek" (https://freesound.org/people/J.Zazvurek/sounds/155115/) licensed under CC BY 3.0. The original audio was trimmed and converted from WAV to OGG format. + +mouse_squeak.ogg: modified from "Cartoon - Bat / Mouse Squeak" by freesound user "Breviceps" (https://freesound.org/people/Breviceps/sounds/445958/) licensed under CC0 1.0 (public domain). The original audio was converted from WAV to OGG format. \ No newline at end of file diff --git a/Resources/Audio/Animals/mouse_squeak.ogg b/Resources/Audio/Animals/mouse_squeak.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d6833278b8675b3f8c3c1895a164b39e34a8df90 GIT binary patch literal 8974 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 WJBIo+`=#5tKO?O$q#kXa)c+6UJlJdi literal 0 HcmV?d00001 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 43e40b54a2..f0a9ba4d63 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -626,9 +626,9 @@ - type: GhostTakeoverAvailable makeSentient: true name: mouse - description: A mouse in maint. + description: A hungry and mischievous mouse. - type: Sprite - drawdepth: Mobs + drawdepth: FloorObjects layers: - map: ["enum.DamageStateVisualLayers.Base"] state: mouse-0 @@ -647,9 +647,8 @@ radius: 0.2 mass: 10 mask: - - Impassable - - MobImpassable #Bullets?! - SmallImpassable + - MobImpassable layer: - Opaque - type: MobState @@ -667,6 +666,8 @@ crit: dead-0 dead: splat-0 - type: Food + - type: Hunger + baseDecayRate: 0.5 # I'm very hungry! Give me. The cheese. - type: Extractable grindableSolutionName: food - type: SolutionContainerManager @@ -687,7 +688,22 @@ tags: - Trash - type: Recyclable - - type: Actions + - type: Respirator + damage: + types: + Asphyxiation: 0.25 + damageRecovery: + types: + Asphyxiation: -0.25 + - type: Barotrauma + damage: + types: + Blunt: 0.1 + - type: HumanoidAppearance # no this doesnt make sense but its needed for vocal + - type: Vocal + # mice are gender neutral who cares + maleScream: /Audio/Animals/mouse_squeak.ogg + femaleScream: /Audio/Animals/mouse_squeak.ogg # TODO: Remove CombatMode when Prototype Composition is added - type: CombatMode combatToggleAction: