diff --git a/Content.Server/Chat/Systems/ChatSystem.cs b/Content.Server/Chat/Systems/ChatSystem.cs index f7d2386714..c6a86655a0 100644 --- a/Content.Server/Chat/Systems/ChatSystem.cs +++ b/Content.Server/Chat/Systems/ChatSystem.cs @@ -841,7 +841,7 @@ public sealed partial class ChatSystem : SharedChatSystem recipients.Add(player, new ICChatRecipientData(-1, true)); } - RaiseLocalEvent(new ExpandICChatRecipientstEvent(source, voiceGetRange, recipients)); + RaiseLocalEvent(new ExpandICChatRecipientsEvent(source, voiceGetRange, recipients)); return recipients; } @@ -886,7 +886,7 @@ public sealed partial class ChatSystem : SharedChatSystem /// This event is raised before chat messages are sent out to clients. This enables some systems to send the chat /// messages to otherwise out-of view entities (e.g. for multiple viewports from cameras). /// -public record ExpandICChatRecipientstEvent(EntityUid Source, float VoiceRange, Dictionary Recipients) +public record ExpandICChatRecipientsEvent(EntityUid Source, float VoiceRange, Dictionary Recipients) { } diff --git a/Content.Server/StationEvents/Components/StationEventComponent.cs b/Content.Server/StationEvents/Components/StationEventComponent.cs index 5cce635a23..a188d5c052 100644 --- a/Content.Server/StationEvents/Components/StationEventComponent.cs +++ b/Content.Server/StationEvents/Components/StationEventComponent.cs @@ -24,6 +24,12 @@ public sealed partial class StationEventComponent : Component [DataField] public string? EndAnnouncement; + [DataField] + public Color StartAnnouncementColor = Color.Gold; + + [DataField] + public Color EndAnnouncementColor = Color.Gold; + [DataField] public SoundSpecifier? StartAudio; @@ -42,12 +48,6 @@ public sealed partial class StationEventComponent : Component [DataField] public int ReoccurrenceDelay = 30; - /// - /// How long after being added does the event start - /// - [DataField] - public TimeSpan StartDelay = TimeSpan.Zero; - /// /// How long the event lasts. /// @@ -75,13 +75,6 @@ public sealed partial class StationEventComponent : Component [DataField] public int? MaxOccurrences; - /// - /// When the station event starts. - /// - [DataField("startTime", customTypeSerializer: typeof(TimeOffsetSerializer))] - [AutoPausedField] - public TimeSpan StartTime; - /// /// When the station event ends. /// diff --git a/Content.Server/StationEvents/Events/AnomalySpawnRule.cs b/Content.Server/StationEvents/Events/AnomalySpawnRule.cs index 5d0a9c9602..06da91e256 100644 --- a/Content.Server/StationEvents/Events/AnomalySpawnRule.cs +++ b/Content.Server/StationEvents/Events/AnomalySpawnRule.cs @@ -11,11 +11,14 @@ public sealed class AnomalySpawnRule : StationEventSystem(uid, out var stationEvent)) + return; var str = Loc.GetString("anomaly-spawn-event-announcement", ("sighting", Loc.GetString($"anomaly-spawn-sighting-{RobustRandom.Next(1, 6)}"))); - ChatSystem.DispatchGlobalAnnouncement(str, colorOverride: Color.FromHex("#18abf5")); + stationEvent.StartAnnouncement = str; + + base.Added(uid, component, gameRule, args); } protected override void Started(EntityUid uid, AnomalySpawnRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) diff --git a/Content.Server/StationEvents/Events/BluespaceArtifactRule.cs b/Content.Server/StationEvents/Events/BluespaceArtifactRule.cs index bcb51c6b2d..46b36057c7 100644 --- a/Content.Server/StationEvents/Events/BluespaceArtifactRule.cs +++ b/Content.Server/StationEvents/Events/BluespaceArtifactRule.cs @@ -1,3 +1,4 @@ +using Content.Server.GameTicking.Components; using Content.Server.StationEvents.Components; using Content.Shared.GameTicking.Components; using Robust.Shared.Random; @@ -8,11 +9,14 @@ public sealed class BluespaceArtifactRule : StationEventSystem(uid, out var stationEvent)) + return; var str = Loc.GetString("bluespace-artifact-event-announcement", ("sighting", Loc.GetString(RobustRandom.Pick(component.PossibleSighting)))); - ChatSystem.DispatchGlobalAnnouncement(str, colorOverride: Color.FromHex("#18abf5")); + stationEvent.StartAnnouncement = str; + + base.Added(uid, component, gameRule, args); } protected override void Started(EntityUid uid, BluespaceArtifactRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) diff --git a/Content.Server/StationEvents/Events/BreakerFlipRule.cs b/Content.Server/StationEvents/Events/BreakerFlipRule.cs index 36790230fc..13f254ee08 100644 --- a/Content.Server/StationEvents/Events/BreakerFlipRule.cs +++ b/Content.Server/StationEvents/Events/BreakerFlipRule.cs @@ -1,3 +1,4 @@ +using Content.Server.GameTicking.Components; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Server.StationEvents.Components; @@ -13,10 +14,14 @@ public sealed class BreakerFlipRule : StationEventSystem(uid, out var stationEvent)) + return; var str = Loc.GetString("station-event-breaker-flip-announcement", ("data", Loc.GetString(Loc.GetString($"random-sentience-event-data-{RobustRandom.Next(1, 6)}")))); - ChatSystem.DispatchGlobalAnnouncement(str, playSound: false, colorOverride: Color.Gold); + stationEvent.StartAnnouncement = str; + + base.Added(uid, component, gameRule, args); + } protected override void Started(EntityUid uid, BreakerFlipRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) diff --git a/Content.Server/StationEvents/Events/CargoGiftsRule.cs b/Content.Server/StationEvents/Events/CargoGiftsRule.cs index 70cd1522b0..ff2d1ca631 100644 --- a/Content.Server/StationEvents/Events/CargoGiftsRule.cs +++ b/Content.Server/StationEvents/Events/CargoGiftsRule.cs @@ -17,11 +17,14 @@ public sealed class CargoGiftsRule : StationEventSystem protected override void Added(EntityUid uid, CargoGiftsRuleComponent component, GameRuleComponent gameRule, GameRuleAddedEvent args) { - base.Added(uid, component, gameRule, args); + if (!TryComp(uid, out var stationEvent)) + return; var str = Loc.GetString(component.Announce, ("sender", Loc.GetString(component.Sender)), ("description", Loc.GetString(component.Description)), ("dest", Loc.GetString(component.Dest))); - ChatSystem.DispatchGlobalAnnouncement(str, colorOverride: Color.FromHex("#18abf5")); + stationEvent.StartAnnouncement = str; + + base.Added(uid, component, gameRule, args); } /// diff --git a/Content.Server/StationEvents/Events/FalseAlarmRule.cs b/Content.Server/StationEvents/Events/FalseAlarmRule.cs index 8a16b687ce..e1c642a85d 100644 --- a/Content.Server/StationEvents/Events/FalseAlarmRule.cs +++ b/Content.Server/StationEvents/Events/FalseAlarmRule.cs @@ -2,7 +2,6 @@ using Content.Server.StationEvents.Components; using Content.Shared.GameTicking.Components; using JetBrains.Annotations; -using Robust.Shared.Player; using Robust.Shared.Random; namespace Content.Server.StationEvents.Events; @@ -14,15 +13,16 @@ public sealed class FalseAlarmRule : StationEventSystem protected override void Started(EntityUid uid, FalseAlarmRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) { - base.Started(uid, component, gameRule, args); + if (!TryComp(uid, out var stationEvent)) + return; var allEv = _event.AllEvents().Select(p => p.Value).ToList(); var picked = RobustRandom.Pick(allEv); - if (picked.StartAnnouncement != null) - { - ChatSystem.DispatchGlobalAnnouncement(Loc.GetString(picked.StartAnnouncement), playSound: false, colorOverride: Color.Gold); - } - Audio.PlayGlobal(picked.StartAudio, Filter.Broadcast(), true); + stationEvent.StartAnnouncement = picked.StartAnnouncement; + stationEvent.StartAudio = picked.StartAudio; + stationEvent.StartAnnouncementColor = picked.StartAnnouncementColor; + + base.Started(uid, component, gameRule, args); } } diff --git a/Content.Server/StationEvents/Events/GasLeakRule.cs b/Content.Server/StationEvents/Events/GasLeakRule.cs index 391c407bac..9e1f70474c 100644 --- a/Content.Server/StationEvents/Events/GasLeakRule.cs +++ b/Content.Server/StationEvents/Events/GasLeakRule.cs @@ -29,10 +29,10 @@ namespace Content.Server.StationEvents.Events component.LeakGas = RobustRandom.Pick(component.LeakableGases); // Was 50-50 on using normal distribution. var totalGas = RobustRandom.Next(component.MinimumGas, component.MaximumGas); - var startAfter = stationEvent.StartDelay; component.MolesPerSecond = RobustRandom.Next(component.MinimumMolesPerSecond, component.MaximumMolesPerSecond); - stationEvent.EndTime = _timing.CurTime + TimeSpan.FromSeconds(totalGas / component.MolesPerSecond + startAfter.TotalSeconds); + if (gameRule.Delay is {} startAfter) + stationEvent.EndTime = _timing.CurTime + TimeSpan.FromSeconds(totalGas / component.MolesPerSecond + startAfter.Next(RobustRandom)); } // Look technically if you wanted to guarantee a leak you'd do this in announcement but having the announcement diff --git a/Content.Server/StationEvents/Events/StationEventSystem.cs b/Content.Server/StationEvents/Events/StationEventSystem.cs index 9ebaec225b..8431025b9a 100644 --- a/Content.Server/StationEvents/Events/StationEventSystem.cs +++ b/Content.Server/StationEvents/Events/StationEventSystem.cs @@ -1,14 +1,11 @@ -using System.Linq; using Content.Server.Administration.Logs; using Content.Server.Chat.Systems; using Content.Server.GameTicking.Rules; -using Content.Server.GameTicking.Rules.Components; using Content.Server.Station.Systems; using Content.Server.StationEvents.Components; using Content.Shared.Database; using Content.Shared.GameTicking.Components; using Robust.Shared.Audio.Systems; -using Robust.Shared.Map; using Robust.Shared.Player; using Robust.Shared.Prototypes; @@ -20,7 +17,6 @@ namespace Content.Server.StationEvents.Events; public abstract class StationEventSystem : GameRuleSystem where T : IComponent { [Dependency] protected readonly IAdminLogManager AdminLogManager = default!; - [Dependency] protected readonly IMapManager MapManager = default!; [Dependency] protected readonly IPrototypeManager PrototypeManager = default!; [Dependency] protected readonly ChatSystem ChatSystem = default!; [Dependency] protected readonly SharedAudioSystem Audio = default!; @@ -43,16 +39,12 @@ public abstract class StationEventSystem : GameRuleSystem where T : ICompo if (!TryComp(uid, out var stationEvent)) return; - AdminLogManager.Add(LogType.EventAnnounced, $"Event added / announced: {ToPrettyString(uid)}"); if (stationEvent.StartAnnouncement != null) - { - ChatSystem.DispatchGlobalAnnouncement(Loc.GetString(stationEvent.StartAnnouncement), playSound: false, colorOverride: Color.Gold); - } + ChatSystem.DispatchGlobalAnnouncement(Loc.GetString(stationEvent.StartAnnouncement), playSound: false, colorOverride: stationEvent.StartAnnouncementColor); Audio.PlayGlobal(stationEvent.StartAudio, Filter.Broadcast(), true); - stationEvent.StartTime = Timing.CurTime + stationEvent.StartDelay; } /// @@ -86,9 +78,7 @@ public abstract class StationEventSystem : GameRuleSystem where T : ICompo AdminLogManager.Add(LogType.EventStopped, $"Event ended: {ToPrettyString(uid)}"); if (stationEvent.EndAnnouncement != null) - { - ChatSystem.DispatchGlobalAnnouncement(Loc.GetString(stationEvent.EndAnnouncement), playSound: false, colorOverride: Color.Gold); - } + ChatSystem.DispatchGlobalAnnouncement(Loc.GetString(stationEvent.EndAnnouncement), playSound: false, colorOverride: stationEvent.EndAnnouncementColor); Audio.PlayGlobal(stationEvent.EndAudio, Filter.Broadcast(), true); } @@ -108,11 +98,7 @@ public abstract class StationEventSystem : GameRuleSystem where T : ICompo if (!GameTicker.IsGameRuleAdded(uid, ruleData)) continue; - if (!GameTicker.IsGameRuleActive(uid, ruleData) && Timing.CurTime >= stationEvent.StartTime) - { - GameTicker.StartGameRule(uid, ruleData); - } - else if (stationEvent.EndTime != null && Timing.CurTime >= stationEvent.EndTime && GameTicker.IsGameRuleActive(uid, ruleData)) + if (stationEvent.EndTime != null && Timing.CurTime >= stationEvent.EndTime && GameTicker.IsGameRuleActive(uid, ruleData)) { GameTicker.EndGameRule(uid, ruleData); } diff --git a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMicrophoneSystem.cs b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMicrophoneSystem.cs index a01f19c909..4deb5238a5 100644 --- a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMicrophoneSystem.cs +++ b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMicrophoneSystem.cs @@ -17,10 +17,10 @@ public sealed class SurveillanceCameraMicrophoneSystem : EntitySystem SubscribeLocalEvent(OnInit); SubscribeLocalEvent(RelayEntityMessage); SubscribeLocalEvent(CanListen); - SubscribeLocalEvent(OnExpandRecipients); + SubscribeLocalEvent(OnExpandRecipients); } - private void OnExpandRecipients(ExpandICChatRecipientstEvent ev) + private void OnExpandRecipients(ExpandICChatRecipientsEvent ev) { var xformQuery = GetEntityQuery(); var sourceXform = Transform(ev.Source); diff --git a/Resources/Locale/en-US/station-events/events/anomaly-spawn.ftl b/Resources/Locale/en-US/station-events/events/anomaly-spawn.ftl index 0e4b5f6e39..907c14ce56 100644 --- a/Resources/Locale/en-US/station-events/events/anomaly-spawn.ftl +++ b/Resources/Locale/en-US/station-events/events/anomaly-spawn.ftl @@ -1,4 +1,4 @@ -anomaly-spawn-event-announcement = Our readings have detected a dangerous interspacial anomaly. Please inform the research team of { $sighting }. +anomaly-spawn-event-announcement = Our readings have detected a dangerous interspacial anomaly. Please inform the research team about { $sighting }. anomaly-spawn-sighting-1 = low pulsating sounds heard throughout the station anomaly-spawn-sighting-2 = strange sources of light diff --git a/Resources/Prototypes/DeltaV/GameRules/events.yml b/Resources/Prototypes/DeltaV/GameRules/events.yml index cc82d19e6b..2e2f9217b1 100644 --- a/Resources/Prototypes/DeltaV/GameRules/events.yml +++ b/Resources/Prototypes/DeltaV/GameRules/events.yml @@ -1,7 +1,6 @@ - type: entity id: XenoVents parent: BaseGameRule - noSpawn: true components: - type: StationEvent startAnnouncement: station-event-xeno-vent-start-announcement @@ -33,7 +32,6 @@ - type: entity id: MothroachSpawn parent: BaseGameRule - noSpawn: true components: - type: StationEvent earliestStart: 15 @@ -48,7 +46,6 @@ - type: entity id: ListeningPost parent: BaseGameRule - noSpawn: true components: - type: StationEvent earliestStart: 15 @@ -101,7 +98,6 @@ - type: MidRoundAntagRule #- type: entity -# noSpawn: true # parent: BaseMidRoundAntag # id: RatKingSpawn # components: diff --git a/Resources/Prototypes/GameRules/cargo_gifts.yml b/Resources/Prototypes/GameRules/cargo_gifts.yml index d0f9a62bb3..ffc2ed404b 100644 --- a/Resources/Prototypes/GameRules/cargo_gifts.yml +++ b/Resources/Prototypes/GameRules/cargo_gifts.yml @@ -1,15 +1,29 @@ +- type: entity + id: CargoGiftsBase + parent: BaseGameRule + abstract: true + components: + - type: GameRule + delay: + min: 10 + max: 10 + - type: StationEvent + startColor: "#18abf5" + startAudio: + path: /Audio/Announcements/announce.ogg + - type: CargoGiftsRule + sender: cargo-gift-default-sender + - type: entity id: GiftsPizzaPartySmall parent: CargoGiftsBase components: - type: StationEvent weight: 5 - startDelay: 10 duration: 120 earliestStart: 20 - type: CargoGiftsRule description: cargo-gift-pizza-small - sender: cargo-gift-default-sender dest: cargo-gift-dest-bar gifts: FoodPizza: 1 # 4 pizzas @@ -21,180 +35,162 @@ id: GiftsPizzaPartyLarge parent: CargoGiftsBase components: - - type: StationEvent - weight: 2 - startDelay: 10 - duration: 240 - earliestStart: 20 - minimumPlayers: 40 - - type: CargoGiftsRule - description: cargo-gift-pizza-large - sender: cargo-gift-default-sender - dest: cargo-gift-dest-bar - gifts: - FoodPizzaLarge: 1 # 16 pizzas - FoodBarSupply: 1 - FoodSoftdrinksLarge: 1 + - type: StationEvent + weight: 2 + duration: 240 + earliestStart: 20 + minimumPlayers: 40 + - type: CargoGiftsRule + description: cargo-gift-pizza-large + dest: cargo-gift-dest-bar + gifts: + FoodPizzaLarge: 1 # 16 pizzas + FoodBarSupply: 1 + FoodSoftdrinksLarge: 1 - type: entity id: GiftsEngineering parent: CargoGiftsBase components: - - type: StationEvent - weight: 5 - startDelay: 10 - duration: 240 - earliestStart: 30 - minimumPlayers: 10 - - type: CargoGiftsRule - description: cargo-gift-eng - sender: cargo-gift-default-sender - dest: cargo-gift-dest-eng - gifts: - EngineeringCableBulk: 1 - AirlockKit: 1 - MaterialSteel: 1 - MaterialPlasteel: 1 - MaterialGlass: 1 - CrateVendingMachineRestockEngineering: 1 + - type: StationEvent + weight: 5 + duration: 240 + earliestStart: 30 + minimumPlayers: 10 + - type: CargoGiftsRule + description: cargo-gift-eng + dest: cargo-gift-dest-eng + gifts: + EngineeringCableBulk: 1 + AirlockKit: 1 + MaterialSteel: 1 + MaterialPlasteel: 1 + MaterialGlass: 1 + CrateVendingMachineRestockEngineering: 1 - type: entity id: GiftsVendingRestock parent: CargoGiftsBase components: - - type: StationEvent - weight: 4 - startDelay: 10 - duration: 120 - minimumPlayers: 40 - earliestStart: 30 - - type: CargoGiftsRule - description: cargo-gift-vending - sender: cargo-gift-default-sender - dest: cargo-gift-dest-supp - gifts: - CrateVendingMachineRestockHotDrinks: 3 - CrateVendingMachineRestockBooze: 1 - CrateVendingMachineRestockNutriMax: 1 - CrateVendingMachineRestockRobustSoftdrinks: 2 - CrateVendingMachineRestockVendomat: 1 - CrateVendingMachineRestockGetmoreChocolateCorp: 1 + - type: StationEvent + weight: 4 + duration: 120 + minimumPlayers: 40 + earliestStart: 30 + - type: CargoGiftsRule + description: cargo-gift-vending + dest: cargo-gift-dest-supp + gifts: + CrateVendingMachineRestockHotDrinks: 3 + CrateVendingMachineRestockBooze: 1 + CrateVendingMachineRestockNutriMax: 1 + CrateVendingMachineRestockRobustSoftdrinks: 2 + CrateVendingMachineRestockVendomat: 1 + CrateVendingMachineRestockGetmoreChocolateCorp: 1 - type: entity id: GiftsJanitor parent: CargoGiftsBase components: - - type: StationEvent - weight: 6 - startDelay: 10 - duration: 120 - minimumPlayers: 30 - earliestStart: 20 - - type: CargoGiftsRule - description: cargo-gift-cleaning - sender: cargo-gift-default-sender - dest: cargo-gift-dest-janitor - gifts: - ServiceJanitorial: 2 - ServiceLightsReplacement: 2 - ServiceJanitorBiosuit: 1 + - type: StationEvent + weight: 6 + duration: 120 + minimumPlayers: 30 + earliestStart: 20 + - type: CargoGiftsRule + description: cargo-gift-cleaning + dest: cargo-gift-dest-janitor + gifts: + ServiceJanitorial: 2 + ServiceLightsReplacement: 2 + ServiceJanitorBiosuit: 1 - type: entity id: GiftsMedical parent: CargoGiftsBase components: - - type: StationEvent - weight: 8 - startDelay: 10 - duration: 120 - earliestStart: 20 - minimumPlayers: 30 - - type: CargoGiftsRule - description: cargo-gift-medical-supply - sender: cargo-gift-default-sender - dest: cargo-gift-dest-med - gifts: - MedicalSupplies: 1 - MedicalChemistrySupplies: 1 - EmergencyBruteKit: 1 - EmergencyAdvancedKit: 1 - MedicalBiosuit: 1 + - type: StationEvent + weight: 8 + duration: 120 + earliestStart: 20 + minimumPlayers: 30 + - type: CargoGiftsRule + description: cargo-gift-medical-supply + dest: cargo-gift-dest-med + gifts: + MedicalSupplies: 1 + MedicalChemistrySupplies: 1 + EmergencyBruteKit: 1 + EmergencyAdvancedKit: 1 + MedicalBiosuit: 1 - type: entity id: GiftsSpacingSupplies parent: CargoGiftsBase components: - - type: StationEvent - weight: 4 - startDelay: 10 - duration: 120 - earliestStart: 10 - minimumPlayers: 40 - - type: CargoGiftsRule - description: cargo-gift-space-protection - sender: cargo-gift-default-sender - dest: cargo-gift-dest-supp - gifts: - EmergencyInternalsLarge: 2 - EmergencyInflatablewall: 1 - EmergencyAdvancedKit: 1 - MedicalBiosuit: 1 - EmergencyO2Kit: 1 + - type: StationEvent + weight: 4 + duration: 120 + earliestStart: 10 + minimumPlayers: 40 + - type: CargoGiftsRule + description: cargo-gift-space-protection + dest: cargo-gift-dest-supp + gifts: + EmergencyInternalsLarge: 2 + EmergencyInflatablewall: 1 + EmergencyAdvancedKit: 1 + MedicalBiosuit: 1 + EmergencyO2Kit: 1 - type: entity id: GiftsFireProtection parent: CargoGiftsBase components: - - type: StationEvent - weight: 4 - startDelay: 10 - duration: 120 - earliestStart: 20 - minimumPlayers: 40 - - type: CargoGiftsRule - description: cargo-gift-fire-protection - sender: cargo-gift-default-sender - dest: cargo-gift-dest-supp - gifts: - EmergencyFire: 2 - EmergencyBurnKit: 1 - EmergencyBruteKit: 1 + - type: StationEvent + weight: 4 + duration: 120 + earliestStart: 20 + minimumPlayers: 40 + - type: CargoGiftsRule + description: cargo-gift-fire-protection + dest: cargo-gift-dest-supp + gifts: + EmergencyFire: 2 + EmergencyBurnKit: 1 + EmergencyBruteKit: 1 - type: entity id: GiftsSecurityGuns parent: CargoGiftsBase components: - - type: StationEvent - weight: 3 - startDelay: 10 - duration: 120 - earliestStart: 20 - minimumPlayers: 50 - - type: CargoGiftsRule - description: cargo-gift-security-guns - sender: cargo-gift-default-sender - dest: cargo-gift-dest-sec - gifts: - SecurityArmor: 3 - ArmorySmg: 1 - ArmoryShotgun: 1 - ArmoryLaser: 1 + - type: StationEvent + weight: 3 + duration: 120 + earliestStart: 20 + minimumPlayers: 50 + - type: CargoGiftsRule + description: cargo-gift-security-guns + dest: cargo-gift-dest-sec + gifts: + SecurityArmor: 3 + ArmorySmg: 1 + ArmoryShotgun: 1 + ArmoryLaser: 1 - type: entity id: GiftsSecurityRiot parent: CargoGiftsBase components: - - type: StationEvent - weight: 4 - startDelay: 10 - duration: 120 - earliestStart: 20 - minimumPlayers: 50 - - type: CargoGiftsRule - description: cargo-gift-security-riot - sender: cargo-gift-default-sender - dest: cargo-gift-dest-sec - gifts: - SecurityRiot: 2 - SecurityRestraints: 2 - SecurityNonLethal: 2 + - type: StationEvent + weight: 4 + duration: 120 + earliestStart: 20 + minimumPlayers: 50 + - type: CargoGiftsRule + description: cargo-gift-security-riot + dest: cargo-gift-dest-sec + gifts: + SecurityRiot: 2 + SecurityRestraints: 2 + SecurityNonLethal: 2 diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 2709f304c7..c284d4aaf0 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -33,8 +33,11 @@ parent: BaseStationEventShortDelay components: - type: StationEvent - weight: 12 # DeltaV - was 10 - startDelay: 30 + startAnnouncementColor: "#18abf5" + startAudio: + path: /Audio/Announcements/announce.ogg + weight: 12 # DeltaV - was 8 + startDelay: 30 # DeltaV duration: 35 - type: AnomalySpawnRule @@ -42,9 +45,15 @@ id: BluespaceArtifact parent: BaseStationEventShortDelay components: + - type: GameRule + delay: + min: 30 + max: 30 - type: StationEvent - weight: 5 - startDelay: 30 + startAnnouncementColor: "#18abf5" + startAudio: + path: /Audio/Announcements/announce.ogg + weight: 8 duration: 35 - type: BluespaceArtifactRule @@ -213,10 +222,7 @@ startAudio: path: /Audio/Announcements/gas_leak.ogg # DeltaV - custom announcer endAnnouncement: station-event-gas-leak-end-announcement - earliestStart: 10 - minimumPlayers: 5 - weight: 10 - startDelay: 20 + weight: 10 # DeltaV - was 8 - type: GasLeakRule - type: entity @@ -226,8 +232,7 @@ - type: StationEvent earliestStart: 15 minimumPlayers: 10 # DeltaV - Was 15 - weight: 5 - startDelay: 50 + weight: 5 # DeltaV - was 7 duration: 240 - type: KudzuGrowthRule @@ -246,7 +251,6 @@ params: volume: -4 duration: null #ending is handled by MeteorSwarmRule - startDelay: 30 - type: MeteorSwarmRule - type: entity @@ -257,10 +261,8 @@ startAnnouncement: station-event-vent-creatures-start-announcement startAudio: path: /Audio/Announcements/attention.ogg - startDelay: 10 - earliestStart: 20 #DeltaV - was 30 - minimumPlayers: 25 #DeltaV - was 30 - weight: 5 + earliestStart: 20 #DeltaV - was 15 + weight: 5 # DeltaV - was 6 duration: 50 - type: VentCrittersRule entries: @@ -309,8 +311,7 @@ startAnnouncement: station-event-vent-creatures-start-announcement startAudio: path: /Audio/Announcements/attention.ogg - startDelay: 10 - weight: 5 + weight: 5 # DeltaV - was 6 duration: 50 - type: VentCrittersRule entries: @@ -331,7 +332,6 @@ path: /Audio/Announcements/power_off.ogg params: volume: -4 - startDelay: 24 duration: 60 maxDuration: 120 - type: PowerGridCheckRule @@ -375,7 +375,6 @@ earliestStart: 20 # DeltaV - was 15 minimumPlayers: 15 weight: 7.5 # DeltaV - was 5 - startDelay: 50 duration: 60 - type: VentClogRule @@ -387,30 +386,6 @@ startAnnouncement: station-event-vent-creatures-start-announcement startAudio: path: /Audio/Announcements/attention.ogg - startDelay: 10 - earliestStart: 15 - minimumPlayers: 15 - weight: 5 - duration: 60 - - type: VentCrittersRule - entries: - - id: MobMouse - prob: 0.02 - - id: MobMouse1 - prob: 0.02 - - id: MobMouse2 - prob: 0.02 - -- type: entity - id: SlimesSpawn - parent: BaseGameRule - noSpawn: true - components: - - type: StationEvent - startAnnouncement: station-event-vent-creatures-start-announcement - startAudio: - path: /Audio/Announcements/attention.ogg - startDelay: 10 earliestStart: 20 minimumPlayers: 15 weight: 5 @@ -432,7 +407,6 @@ startAnnouncement: station-event-vent-creatures-start-announcement startAudio: path: /Audio/Announcements/attention.ogg - startDelay: 10 earliestStart: 20 minimumPlayers: 15 weight: 5 @@ -450,10 +424,9 @@ startAnnouncement: station-event-vent-creatures-start-announcement startAudio: path: /Audio/Announcements/attention.ogg - startDelay: 10 earliestStart: 45 # DeltaV - was 20 - minimumPlayers: 30 # DeltaV - was 15 - weight: 1 + minimumPlayers: 30 # DeltaV - was 20 + weight: 1 # DeltaV - was 1.5 duration: 60 - type: VentCrittersRule entries: diff --git a/Resources/Prototypes/Nyanotrasen/GameRules/events.yml b/Resources/Prototypes/Nyanotrasen/GameRules/events.yml index 2ec2cc08b8..54b8f566ab 100644 --- a/Resources/Prototypes/Nyanotrasen/GameRules/events.yml +++ b/Resources/Prototypes/Nyanotrasen/GameRules/events.yml @@ -2,7 +2,6 @@ - type: entity id: NoosphericStorm parent: BaseGameRule - noSpawn: true components: - type: StationEvent startAnnouncement: station-event-noospheric-storm-announcement @@ -16,7 +15,6 @@ - type: entity id: BaseGlimmerEvent parent: BaseGameRule - noSpawn: true components: - type: StationEvent # Favor glimmer events just a little more than regular events. @@ -27,7 +25,6 @@ - type: entity id: MundaneDischarge parent: BaseGlimmerEvent - noSpawn: true components: - type: GlimmerEvent maximumGlimmer: 300 @@ -38,7 +35,6 @@ - type: entity id: NoosphericZap parent: BaseGlimmerEvent - noSpawn: true components: - type: GlimmerEvent - type: NoosphericZapRule @@ -46,7 +42,6 @@ - type: entity id: NoosphericFry parent: BaseGlimmerEvent - noSpawn: true components: - type: GlimmerEvent minimumGlimmer: 300 @@ -57,7 +52,6 @@ - type: entity id: PsionicCatGotYourTongue parent: BaseGlimmerEvent - noSpawn: true components: - type: GlimmerEvent minimumGlimmer: 500 @@ -69,7 +63,6 @@ - type: entity id: MassMindSwap parent: BaseGlimmerEvent - noSpawn: true components: - type: GlimmerEvent minimumGlimmer: 900