Files
Delta-v/Content.Server/StationEvents/Components/MeteorSwarmComponent.cs
T
Cepelinas1andpre-commit-ci[bot] 0ce67af6c8 De-metashield Epsilon part 1 + DV sound files moving (#3867)
* epsilon rewrite, first batch

* As requested, moved the announcement folder to _DV folder, which only now includes deltaV or nyanotrasen specific audio files. Please double check the license.txt in Announcements/RoundEnd to see if I got it right.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix announcements again, oopsies

* potentially fixed epsilon rule, i dunno

* probably fix???? i dunno i only write goidacode

* temporary attribution.yml file for epsilon.ogg

* typo fix. not epsilon.ogg but code_epsilon.ogg

* another accidental error oops

* small test as removing my own attributions.yml file, i am going insane with these checks.

* reverted the attributions.yml deletion

* optional APC sound thing i wrote it incredibly stupid, going to do a stupider idea

* Update attributions.yml

* code saved by the angel named Toby

* added and fixed several attributions.yml files

* formatting fix oops

* fix second time hopefully

* i think i merged it correctly?

* weird way of fixing attributions

* With massive Quanteey's help and guidance, code cleanup once again.

* sound file path errors fixed

* another sound error fix

* added spacing to comments, removed CancellationTokenSource like asked and made the poweroff sound louder

* wiki page should be updated and removed epsilon mention in metashield rules

* from elevated to emergency status

* removed the funny event for 2 part

* forgot to remove a thing

* another fix

* conflict fix

* fix second time

* untouching and commenting

* untouching number 2

* untouched correctly?

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-10-23 07:26:55 +11:00

59 lines
1.6 KiB
C#

using Content.Server.StationEvents.Events;
using Content.Shared.Destructible.Thresholds;
using Robust.Shared.Audio;
using Robust.Shared.Prototypes;
namespace Content.Server.StationEvents.Components;
[RegisterComponent, Access(typeof(MeteorSwarmSystem)), AutoGenerateComponentPause]
public sealed partial class MeteorSwarmComponent : Component
{
[DataField, AutoPausedField]
public TimeSpan NextWaveTime;
/// <summary>
/// We'll send a specific amount of waves of meteors towards the station per ending rather than using a timer.
/// </summary>
[DataField]
public int WaveCounter;
[DataField]
public float MeteorVelocity = 10f;
/// <summary>
/// If true, meteors will be thrown from all angles instead of from a singular source
/// </summary>
[DataField]
public bool NonDirectional;
/// <summary>
/// The announcement played when a meteor swarm begins.
/// </summary>
[DataField]
public LocId? Announcement = "station-event-meteor-swarm-start-announcement";
[DataField]
public SoundSpecifier? AnnouncementSound = new SoundPathSpecifier("/Audio/_DV/Announcements/meteors.ogg") // DeltaV: custom announcer
{
Params = new()
{
Volume = -4
}
};
/// <summary>
/// Each meteor entity prototype and their corresponding weight in being picked.
/// </summary>
[DataField]
public Dictionary<EntProtoId, float> Meteors = new();
[DataField]
public MinMax Waves = new(3, 3);
[DataField]
public MinMax MeteorsPerWave = new(3, 4);
[DataField]
public MinMax WaveCooldown = new (10, 60);
}