]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add supercritical sounds for ALL anomalies (#36425)
authorQuantum-cross <7065792+Quantum-cross@users.noreply.github.com>
Thu, 17 Jul 2025 17:01:37 +0000 (13:01 -0400)
committerGitHub <noreply@github.com>
Thu, 17 Jul 2025 17:01:37 +0000 (10:01 -0700)
* add supercritical sounds for flesh anomaly and shadow anomaly

* fix attribution yml

* use sound collections, add TWO -- count em TWO tech anomaly supercrit sounds.

* add sound for present anomaly

* wrong soundcollection for flesh

* actually add the present anomaly sound...

* add fire anom sound

* add gravity anomaly supercritical sound

* add electric anomaly supercritical sound

* add bluespace anomaly supercritical and explosion sound

* add ice anomaly supercritical sound

* add fluid anomaly supercritical sound

* fix busted link

* typo

* add floral supercritical sound, fix typos

* Add supercritical sounds to injected anomalies

* add rock anomaly supercritical sound

* supercritical sound follows the entity, important for injected anomalies

* make the rock crit rumble a little less subtle at the start

* use CC0 freesound alternatives where available

* New pyro anomaly sound by GonTar

* New sounds by GonTar. Change AnomalyComponent so that you can change the length of supercritical properly in the prototype.

* oopsie, forgot the traps

* use TimeSpan for duration

20 files changed:
Content.Client/Anomaly/AnomalySystem.cs
Content.Shared/Anomaly/Components/AnomalyComponent.cs
Content.Shared/Anomaly/Components/AnomalySupercriticalComponent.cs
Content.Shared/Anomaly/SharedAnomalySystem.cs
Resources/Audio/Items/Anomaly/attributions.yml [new file with mode: 0644]
Resources/Audio/Items/Anomaly/bluespace_crit.ogg [new file with mode: 0644]
Resources/Audio/Items/Anomaly/electricity_crit.ogg [new file with mode: 0644]
Resources/Audio/Items/Anomaly/flesh_crit.ogg [new file with mode: 0644]
Resources/Audio/Items/Anomaly/flora_crit.ogg [new file with mode: 0644]
Resources/Audio/Items/Anomaly/fluid_crit.ogg [new file with mode: 0644]
Resources/Audio/Items/Anomaly/grav_crit.ogg [new file with mode: 0644]
Resources/Audio/Items/Anomaly/ice_crit.ogg [new file with mode: 0644]
Resources/Audio/Items/Anomaly/present_crit.ogg [new file with mode: 0644]
Resources/Audio/Items/Anomaly/pyro_crit.ogg [new file with mode: 0644]
Resources/Audio/Items/Anomaly/rock_crit.ogg [new file with mode: 0644]
Resources/Audio/Items/Anomaly/shadow_crit.ogg [new file with mode: 0644]
Resources/Audio/Items/Anomaly/tech_crit.ogg [new file with mode: 0644]
Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml
Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomaly_injectors.yml
Resources/Prototypes/SoundCollections/anomaly.yml [new file with mode: 0644]

index 83f15a90867c787945eaf549e6f3c56695d944de..4eee43fac655357ee4787afc75e791d8661f8dde 100644 (file)
@@ -62,11 +62,11 @@ public sealed class AnomalySystem : SharedAnomalySystem
     {
         base.Update(frameTime);
 
-        var query = EntityQueryEnumerator<AnomalySupercriticalComponent, SpriteComponent>();
+        var query = EntityQueryEnumerator<AnomalyComponent, AnomalySupercriticalComponent, SpriteComponent>();
 
-        while (query.MoveNext(out var uid, out var super, out var sprite))
+        while (query.MoveNext(out var uid, out var anomaly, out var super, out var sprite))
         {
-            var completion = 1f - (float)((super.EndTime - _timing.CurTime) / super.SupercriticalDuration);
+            var completion = 1f - (float) ((super.EndTime - _timing.CurTime) / anomaly.SupercriticalDuration);
             var scale = completion * (super.MaxScaleAmount - 1f) + 1f;
             _sprite.SetScale((uid, sprite), new Vector2(scale, scale));
 
index f58f9f1d07da4fb2f217a14cf19d5d2b2c1f3eca..fb281ca9a33614fa13b150a61b3b14846e92f27f 100644 (file)
@@ -135,6 +135,14 @@ public sealed partial class AnomalyComponent : Component
     /// </summary>
     [DataField]
     public SoundSpecifier? SupercriticalSoundAtAnimationStart;
+
+    /// <summary>
+    /// The length of the animation before it goes supercritical in seconds.
+    /// </summary>
+    ///
+    [DataField, AutoNetworkedField]
+    [ViewVariables(VVAccess.ReadWrite)]
+    public TimeSpan SupercriticalDuration = TimeSpan.FromSeconds(10f);
     #endregion
 
     /// <summary>
index 00ea882ad2615fecc078a0cc522ad7a4c35eae4d..d72bc174bef6785f6b239a86df49df1ac44a579f 100644 (file)
@@ -19,13 +19,6 @@ public sealed partial class AnomalySupercriticalComponent : Component
     [AutoPausedField]
     public TimeSpan EndTime;
 
-    /// <summary>
-    /// The length of the animation before it goes supercritical.
-    /// </summary>
-    [AutoNetworkedField]
-    [ViewVariables(VVAccess.ReadWrite)]
-    public TimeSpan SupercriticalDuration = TimeSpan.FromSeconds(10);
-
     /// <summary>
     /// The maximum size the anomaly scales to while going supercritical
     /// </summary>
index 3d00d43f413f214ef4b916ce01f65fee0ae23912..ee3903a1d9aa2b5df427f8cb1cda869a583a069b 100644 (file)
@@ -135,10 +135,10 @@ public abstract class SharedAnomalySystem : EntitySystem
         if (_net.IsServer)
             Log.Info($"Anomaly is going supercritical. Entity: {ToPrettyString(ent.Owner)}");
 
-        Audio.PlayPvs(ent.Comp.SupercriticalSoundAtAnimationStart, Transform(ent).Coordinates);
+        Audio.PlayPvs(ent.Comp.SupercriticalSoundAtAnimationStart, ent);
 
         var super = AddComp<AnomalySupercriticalComponent>(ent);
-        super.EndTime = Timing.CurTime + super.SupercriticalDuration;
+        super.EndTime = Timing.CurTime + ent.Comp.SupercriticalDuration;
         Appearance.SetData(ent, AnomalyVisuals.Supercritical, true);
         Dirty(ent, super);
     }
diff --git a/Resources/Audio/Items/Anomaly/attributions.yml b/Resources/Audio/Items/Anomaly/attributions.yml
new file mode 100644 (file)
index 0000000..27bf35d
--- /dev/null
@@ -0,0 +1,114 @@
+- files: ["flesh_crit.ogg"]
+  license: "CC-BY-SA-3.0"
+  copyright: "Mashup by GonTar Quantumcross of malescream_1.ogg, malescream_2.ogg, femalescream_4.ogg, femalescream_5.ogg, alien_claw_flesh_2.ogg, alien_claw_flesh_3.ogg"
+  source: "https://github.com/tgstation/tgstation/commit/3d049e69fe71a0be2133005e65ea469135d648c8"
+  # additional source for alien claw sounds:
+  # source: "https://gitlab.com/cmdevs/colonial-warfare/-/tree/dev/sound/weapons"
+
+- files: ["shadow_crit.ogg"]
+  license: Custom
+  copyright: "Mashup by GonTar and Quantumcross of sourced sound effect and anomaly_scary.ogg"
+  source: https://pixabay.com/sound-effects/psychedelic-144822/
+  # Additional sources:
+  # source: https://pixabay.com/sound-effects/boom-geomorphism-cinematic-trailer-sound-effects-123876/
+
+- files: ["tech_crit.ogg"]
+  license: Custom
+  copyright: "Mashup by Gontar"
+  source: https://freesound.org/people/wtermini/sounds/546450/
+  # Additional sources:
+  # source: https://freesound.org/people/unfa/sounds/124547/
+  # source: https://pixabay.com/sound-effects/elemental-magic-spell-cast-d-228349/
+
+- files: ["present_crit.ogg"]
+  license: "CC0-1.0"
+  copyright: "richwise (Freesound), edited by Quantum-cross@github"
+  source: https://freesound.org/people/richwise/sounds/414374/
+
+- files: ["pyro_crit.ogg"]
+  license: "Custom"
+  copyright: "Multiple sounds, edited and layered by GonTar"
+  source: https://freesound.org/people/Robinhood76/sounds/612277/
+  # additional sources:
+  # source: https://freesound.org/people/Fission9/sounds/474850/
+  # source: https://pixabay.com/sound-effects/rubber-stretch-sound-effect-201310/ (Pixabay license)
+  # source: https://pixabay.com/sound-effects/fx-collection-of-flame-sword-swoosh-sound-design-elements-275902/ (Pixabay license)
+
+- files: ["grav_crit.ogg"]
+  license: Custom
+  copyright: "Mashup by GonTar"
+  source: "https://freesound.org/people/Joao_Janz/sounds/478472/"
+  # additional sources:
+  # source: https://pixabay.com/sound-effects/horror-metallic-screeches-183236/
+  # source: https://pixabay.com/sound-effects/dark-textures-sfx-001-322559/
+  # source: https://pixabay.com/sound-effects/dark-textures-sfx-014-322578/
+  # source: https://freesound.org/people/BlenderDiplom/sounds/201094/
+  # source: https://pixabay.com/sound-effects/metal-creaking-36742/
+  # source: https://pixabay.com/sound-effects/metal-container-rumble-325675/
+  # source: https://pixabay.com/sound-effects/metal-hit-10-193281/
+  # source: https://pixabay.com/sound-effects/closing-metal-container-for-garbage-303735/
+
+
+- files: ["electricity_crit.ogg"]
+  license: Custom
+  copyright: "Mashup by GonTar"
+  source: https://pixabay.com/sound-effects/sliding-discharge-160kv-71800/
+  # additional sources:
+  # source: https://pixabay.com/sound-effects/elemental-magic-spell-impact-outgoing-228342/
+  # source: https://pixabay.com/sound-effects/elemental-magic-spell-cast-d-228349/
+  # source: https://pixabay.com/sound-effects/electric-shock-short-circuit-1-204989/
+  # source: https://pixabay.com/sound-effects/electric-impact-37128/
+
+- files: ["bluespace_crit.ogg"]
+  license: Custom
+  copyright: "Mashup by GonTar"
+  source: https://pixabay.com/sound-effects/boom-geomorphism-cinematic-trailer-sound-effects-123876/
+  # additional sources:
+  # source: https://pixabay.com/sound-effects/riser-hit-sfx-001-289802/
+  # source: https://pixabay.com/sound-effects/pulse3d-106110/
+  # source: https://freesound.org/people/Soapuel/sounds/489442/
+
+- files: ["ice_crit.ogg"]
+  license: Custom
+  copyright: "Mashup by GonTar"
+  source: https://pixabay.com/sound-effects/ice-1-104148/
+  # additional sources:
+  # source: https://pixabay.com/sound-effects/ice-3-85025/
+  # source: https://pixabay.com/sound-effects/ice-4-104135/
+  # source: https://pixabay.com/sound-effects/ice-6-104141/
+  # source: https://pixabay.com/sound-effects/deep-bass-drone-31424/
+  # source: https://pixabay.com/sound-effects/cinematic-deep-tremor-6740/
+  # source: https://pixabay.com/sound-effects/cinematic-impact-boom-3-326123/
+  # source: https://pixabay.com/sound-effects/dark-textures-sfx-007-322567/
+  # source: https://pixabay.com/sound-effects/atmosphere-deep-amp-booming-256197/
+
+- files: ["fluid_crit.ogg"]
+  license: Custom
+  copyright: "Mashup by GonTar"
+  source: https://freesound.org/people/unfa/sounds/504930/
+  # additional sources:
+  # source: https://freesound.org/people/DJT4NN3R/sounds/484158/
+  # source: https://freesound.org/people/klankbeeld/sounds/325537/
+  # source: https://github.com/ParadiseSS13/Paradise
+  # source: https://pixabay.com/sound-effects/water-flowing-2-327662/
+
+- files: ["flora_crit.ogg"]
+  license: "CC-BY-4.0"
+  copyright: "Clusman, hereforthebass, eyesplice, Clearwavsound (all Freesound), layered and edited by Quantum-cross@github"
+  source: https://freesound.org/people/Clusman/sounds/543508/
+  # additional sources:
+  # source: https://freesound.org/people/hereforthebass/sounds/733255/
+  # source: https://freesound.org/people/eyesplice/sounds/717773/
+  # source: https://freesound.org/people/Clearwavsound/sounds/541032/
+  # source: https://freesound.org/people/Stickinthemud/sounds/44162/
+
+- files: ["rock_crit.ogg"]
+  license: Custom
+  copyright: "Mashup by GonTar"
+  source: https://pixabay.com/sound-effects/cinematic-deep-rumble-6418/
+  # additional sources:
+  # source: https://pixabay.com/sound-effects/lowrumblesnd-77876/
+  # source: https://pixabay.com/sound-effects/077381-scraping-stone-83768/
+  # source: https://pixabay.com/sound-effects/stone-slide-sound-effects-322794/
+  # source: https://pixabay.com/sound-effects/falling-pebbles-rocks-and-boulders-168593/
+  # source: https://pixabay.com/sound-effects/small-rock-break-194553/
diff --git a/Resources/Audio/Items/Anomaly/bluespace_crit.ogg b/Resources/Audio/Items/Anomaly/bluespace_crit.ogg
new file mode 100644 (file)
index 0000000..4e84ac2
Binary files /dev/null and b/Resources/Audio/Items/Anomaly/bluespace_crit.ogg differ
diff --git a/Resources/Audio/Items/Anomaly/electricity_crit.ogg b/Resources/Audio/Items/Anomaly/electricity_crit.ogg
new file mode 100644 (file)
index 0000000..8649a92
Binary files /dev/null and b/Resources/Audio/Items/Anomaly/electricity_crit.ogg differ
diff --git a/Resources/Audio/Items/Anomaly/flesh_crit.ogg b/Resources/Audio/Items/Anomaly/flesh_crit.ogg
new file mode 100644 (file)
index 0000000..1a429d8
Binary files /dev/null and b/Resources/Audio/Items/Anomaly/flesh_crit.ogg differ
diff --git a/Resources/Audio/Items/Anomaly/flora_crit.ogg b/Resources/Audio/Items/Anomaly/flora_crit.ogg
new file mode 100644 (file)
index 0000000..f098b6c
Binary files /dev/null and b/Resources/Audio/Items/Anomaly/flora_crit.ogg differ
diff --git a/Resources/Audio/Items/Anomaly/fluid_crit.ogg b/Resources/Audio/Items/Anomaly/fluid_crit.ogg
new file mode 100644 (file)
index 0000000..c672e09
Binary files /dev/null and b/Resources/Audio/Items/Anomaly/fluid_crit.ogg differ
diff --git a/Resources/Audio/Items/Anomaly/grav_crit.ogg b/Resources/Audio/Items/Anomaly/grav_crit.ogg
new file mode 100644 (file)
index 0000000..f4fd579
Binary files /dev/null and b/Resources/Audio/Items/Anomaly/grav_crit.ogg differ
diff --git a/Resources/Audio/Items/Anomaly/ice_crit.ogg b/Resources/Audio/Items/Anomaly/ice_crit.ogg
new file mode 100644 (file)
index 0000000..010cb38
Binary files /dev/null and b/Resources/Audio/Items/Anomaly/ice_crit.ogg differ
diff --git a/Resources/Audio/Items/Anomaly/present_crit.ogg b/Resources/Audio/Items/Anomaly/present_crit.ogg
new file mode 100644 (file)
index 0000000..1e2ddeb
Binary files /dev/null and b/Resources/Audio/Items/Anomaly/present_crit.ogg differ
diff --git a/Resources/Audio/Items/Anomaly/pyro_crit.ogg b/Resources/Audio/Items/Anomaly/pyro_crit.ogg
new file mode 100644 (file)
index 0000000..3e07ecd
Binary files /dev/null and b/Resources/Audio/Items/Anomaly/pyro_crit.ogg differ
diff --git a/Resources/Audio/Items/Anomaly/rock_crit.ogg b/Resources/Audio/Items/Anomaly/rock_crit.ogg
new file mode 100644 (file)
index 0000000..e32be2f
Binary files /dev/null and b/Resources/Audio/Items/Anomaly/rock_crit.ogg differ
diff --git a/Resources/Audio/Items/Anomaly/shadow_crit.ogg b/Resources/Audio/Items/Anomaly/shadow_crit.ogg
new file mode 100644 (file)
index 0000000..d5b7cf7
Binary files /dev/null and b/Resources/Audio/Items/Anomaly/shadow_crit.ogg differ
diff --git a/Resources/Audio/Items/Anomaly/tech_crit.ogg b/Resources/Audio/Items/Anomaly/tech_crit.ogg
new file mode 100644 (file)
index 0000000..50c11ed
Binary files /dev/null and b/Resources/Audio/Items/Anomaly/tech_crit.ogg differ
index 2b046b0182d66c1474d301c9d552d2f3638520d0..638947af7500bd8a0b7e74584754c4688c0aee96 100644 (file)
@@ -72,6 +72,8 @@
   - type: Anomaly
     corePrototype: AnomalyCorePyroclastic
     coreInertPrototype: AnomalyCorePyroclasticInert
+    supercriticalSoundAtAnimationStart:
+      collection: AnomalyPyroSupercritical
   - type: Sprite
     sprite: Structures/Specific/Anomalies/pyro_anom.rsi
     layers:
   - type: Anomaly
     corePrototype: AnomalyCoreGravity
     coreInertPrototype: AnomalyCoreGravityInert
+    supercriticalSoundAtAnimationStart:
+      collection: AnomalyGravitySupercritical
+    supercriticalDuration: 15s
   - type: Sprite
     layers:
     - state: anom2
   - type: Anomaly
     corePrototype: AnomalyCoreElectricity
     coreInertPrototype: AnomalyCoreElectricityInert
+    supercriticalSoundAtAnimationStart:
+      collection: AnomalyElectricitySupercritical
   - type: Sprite
     layers:
     - state: anom3
     coreInertPrototype: AnomalyCoreFleshInert
     minPulseLength: 180
     maxPulseLength: 300
+    supercriticalSoundAtAnimationStart:
+      collection: AnomalyFleshSupercritical
   - type: Sprite
     layers:
     - state: anom5
   - type: Anomaly
     corePrototype: AnomalyCoreBluespace
     coreInertPrototype: AnomalyCoreBluespaceInert
+    supercriticalSoundAtAnimationStart:
+      collection: AnomalyBluespaceSupercritical
     pulseSound:
       collection: RadiationPulse
       params:
   - type: Anomaly
     corePrototype: AnomalyCoreIce
     coreInertPrototype: AnomalyCoreIceInert
+    supercriticalSoundAtAnimationStart:
+      collection: AnomalyIceSupercritical
   - type: ExplosionAnomaly
     supercriticalExplosion: Cryo
     explosionTotalIntensity: 300
     coreInertPrototype: AnomalyCoreRockInert
     minPulseLength: 180
     maxPulseLength: 300
+    supercriticalSoundAtAnimationStart:
+      collection: AnomalyRockSupercritical
   - type: Sprite
     layers:
     - state: anom6
     coreInertPrototype: AnomalyCoreFloraInert
     minPulseLength: 60
     maxPulseLength: 120
+    supercriticalSoundAtAnimationStart:
+      collection: AnomalyFloraSupercritical
   - type: TileSpawnAnomaly
     entries:
     - settings:
     coreInertPrototype: AnomalyCoreLiquidInert
     minPulseLength: 60
     maxPulseLength: 120
+    supercriticalSoundAtAnimationStart:
+      collection: AnomalyFluidSupercritical
   - type: EntitySpawnAnomaly
     entries:
     - settings:
     maxPulseLength: 120
     animationTime: 4
     offset: "-0.1,0.1"
+    supercriticalSoundAtAnimationStart:
+      collection: AnomalyShadowSupercritical
   - type: EntitySpawnAnomaly
     entries:
     - settings:
     coreInertPrototype: AnomalyCoreTechInert
     minPulseLength: 60
     maxPulseLength: 120
+    supercriticalSoundAtAnimationStart:
+      collection: AnomalyTechSupercritical
   - type: TechAnomaly
   - type: DeviceLinkSource
     ports:
     coreInertPrototype: AnomalyCoreSantaInert
     minPulseLength: 60
     maxPulseLength: 120
+    supercriticalSoundAtAnimationStart:
+      collection: AnomalyPresentSupercritical
   - type: EntitySpawnAnomaly
     entries:
     - settings:
index a5f6f3212890da09a4aafd1f004dd3df804bb78d..0ad1aa17f40c06035ebeb896ccb71f735fa2e064 100644 (file)
@@ -47,6 +47,8 @@
         maxPointsPerSecond: 100
         corePrototype: AnomalyCorePyroclastic
         coreInertPrototype: AnomalyCorePyroclasticInert
+        supercriticalSoundAtAnimationStart:
+          collection: AnomalyPyroSupercritical
       - type: InnerBodyAnomaly
         injectionProto: AnomalyInjectionPyroclastic
         startMessage: inner-anomaly-start-message-pyro
@@ -77,6 +79,8 @@
         maxPointsPerSecond: 100
         corePrototype: AnomalyCoreElectricity
         coreInertPrototype: AnomalyCoreElectricityInert
+        supercriticalSoundAtAnimationStart:
+          collection: AnomalyElectricitySupercritical
       - type: InnerBodyAnomaly
         injectionProto: AnomalyInjectionElectric
         startMessage: inner-anomaly-start-message-shock
         maxPointsPerSecond: 100
         corePrototype: AnomalyCoreShadow
         coreInertPrototype: AnomalyCoreShadowInert
+        supercriticalSoundAtAnimationStart:
+          collection: AnomalyShadowSupercritical
       - type: InnerBodyAnomaly
         injectionProto: AnomalyInjectionShadow
         startMessage: inner-anomaly-start-message-shadow
         maxPointsPerSecond: 100
         corePrototype: AnomalyCoreIce
         coreInertPrototype: AnomalyCoreIceInert
+        supercriticalSoundAtAnimationStart:
+          collection: AnomalyIceSupercritical
       - type: InnerBodyAnomaly
         injectionProto: AnomalyInjectionIce
         startMessage: inner-anomaly-start-message-frost
         maxPointsPerSecond: 100
         corePrototype: AnomalyCoreFlora
         coreInertPrototype: AnomalyCoreFloraInert
+        supercriticalSoundAtAnimationStart:
+          collection: AnomalyFloraSupercritical
       - type: InnerBodyAnomaly
         injectionProto: AnomalyInjectionFlora
         startMessage: inner-anomaly-start-message-flora
         maxPointsPerSecond: 100
         corePrototype: AnomalyCoreBluespace
         coreInertPrototype: AnomalyCoreBluespaceInert
+        supercriticalSoundAtAnimationStart:
+          collection: AnomalyBluespaceSupercritical
       - type: InnerBodyAnomaly
         injectionProto: AnomalyInjectionBluespace
         startMessage: inner-anomaly-start-message-bluespace
         maxPointsPerSecond: 100
         corePrototype: AnomalyCoreFlesh
         coreInertPrototype: AnomalyCoreFleshInert
+        supercriticalSoundAtAnimationStart:
+          collection: AnomalyFleshSupercritical
       - type: InnerBodyAnomaly
         injectionProto: AnomalyInjectionFlesh
         startMessage: inner-anomaly-start-message-flesh
         maxPointsPerSecond: 100
         corePrototype: AnomalyCoreGravity
         coreInertPrototype: AnomalyCoreGravityInert
+        supercriticalSoundAtAnimationStart:
+          collection: AnomalyGravitySupercritical
+        supercriticalDuration: 15
       - type: InnerBodyAnomaly
         injectionProto: AnomalyInjectionGravity
         startMessage: inner-anomaly-start-message-grav
         maxPointsPerSecond: 100
         corePrototype: AnomalyCoreTech
         coreInertPrototype: AnomalyCoreTechInert
+        supercriticalSoundAtAnimationStart:
+          collection: AnomalyTechSupercritical
       - type: InnerBodyAnomaly
         injectionProto: AnomalyInjectionTech
         startMessage: inner-anomaly-start-message-tech
         maxPointsPerSecond: 100
         corePrototype: AnomalyCoreRock
         coreInertPrototype: AnomalyCoreRockInert
+        supercriticalSoundAtAnimationStart:
+          collection: AnomalyRockSupercritical
       - type: InnerBodyAnomaly
         injectionProto: AnomalyInjectionRock
         startMessage: inner-anomaly-start-message-rock
         maxPointsPerSecond: 100
         corePrototype: AnomalyCoreSanta
         coreInertPrototype: AnomalyCoreSantaInert
+        supercriticalSoundAtAnimationStart:
+          collection: AnomalyPresentSupercritical
       - type: InnerBodyAnomaly
         injectionProto: AnomalyInjectionSanta
         startMessage: inner-anomaly-start-message-santa
diff --git a/Resources/Prototypes/SoundCollections/anomaly.yml b/Resources/Prototypes/SoundCollections/anomaly.yml
new file mode 100644 (file)
index 0000000..291b5d4
--- /dev/null
@@ -0,0 +1,59 @@
+- type: soundCollection
+  id: AnomalyFleshSupercritical
+  files:
+  - /Audio/Items/Anomaly/flesh_crit.ogg
+
+- type: soundCollection
+  id: AnomalyShadowSupercritical
+  files:
+  - /Audio/Items/Anomaly/shadow_crit.ogg
+
+- type: soundCollection
+  id: AnomalyTechSupercritical
+  files:
+  - /Audio/Items/Anomaly/tech_crit.ogg
+
+- type: soundCollection
+  id: AnomalyPresentSupercritical
+  files:
+  - /Audio/Items/Anomaly/present_crit.ogg
+
+- type: soundCollection
+  id: AnomalyPyroSupercritical
+  files:
+  - /Audio/Items/Anomaly/pyro_crit.ogg
+
+- type: soundCollection
+  id: AnomalyGravitySupercritical
+  files:
+  - /Audio/Items/Anomaly/grav_crit.ogg
+
+- type: soundCollection
+  id: AnomalyElectricitySupercritical
+  files:
+  - /Audio/Items/Anomaly/electricity_crit.ogg
+
+- type: soundCollection
+  id: AnomalyBluespaceSupercritical
+  files:
+  - /Audio/Items/Anomaly/bluespace_crit.ogg
+
+- type: soundCollection
+  id: AnomalyIceSupercritical
+  files:
+  - /Audio/Items/Anomaly/ice_crit.ogg
+
+- type: soundCollection
+  id: AnomalyFluidSupercritical
+  files:
+  - /Audio/Items/Anomaly/fluid_crit.ogg
+
+- type: soundCollection
+  id: AnomalyFloraSupercritical
+  files:
+  - /Audio/Items/Anomaly/flora_crit.ogg
+
+- type: soundCollection
+  id: AnomalyRockSupercritical
+  files:
+  - /Audio/Items/Anomaly/rock_crit.ogg