From 1b8c48180b3869329a9fca452a803c6acebfeceb Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Mon, 6 Feb 2023 14:53:59 -0500 Subject: [PATCH] Anomaly Generator Tweaks (#13856) --- .../Anomaly/Ui/AnomalyGeneratorWindow.xaml.cs | 4 +- .../Anomaly/AnomalySystem.Generator.cs | 58 ++++++++++++++++-- Content.Server/Anomaly/AnomalySystem.cs | 6 ++ .../Components/AnomalyGeneratorComponent.cs | 26 ++++++++ .../GeneratingAnomalyGeneratorComponent.cs | 16 +++++ Content.Shared/Anomaly/SharedAnomaly.cs | 12 ++++ Resources/Audio/Machines/anomaly_generate.ogg | Bin 0 -> 43856 bytes Resources/Audio/Machines/attributions.yml | 10 +++ Resources/Audio/Machines/beep.ogg | Bin 0 -> 8415 bytes Resources/Locale/en-US/anomaly/anomaly.ftl | 7 ++- .../Structures/Machines/anomaly_equipment.yml | 17 ++++- .../anomaly_generator.rsi/generating.png | Bin 0 -> 2130 bytes .../Anomaly/anomaly_generator.rsi/meta.json | 15 +++++ 13 files changed, 162 insertions(+), 9 deletions(-) create mode 100644 Content.Server/Anomaly/Components/GeneratingAnomalyGeneratorComponent.cs create mode 100644 Resources/Audio/Machines/anomaly_generate.ogg create mode 100644 Resources/Audio/Machines/beep.ogg create mode 100644 Resources/Textures/Structures/Machines/Anomaly/anomaly_generator.rsi/generating.png diff --git a/Content.Client/Anomaly/Ui/AnomalyGeneratorWindow.xaml.cs b/Content.Client/Anomaly/Ui/AnomalyGeneratorWindow.xaml.cs index cf46f0f8fd..cda9c21239 100644 --- a/Content.Client/Anomaly/Ui/AnomalyGeneratorWindow.xaml.cs +++ b/Content.Client/Anomaly/Ui/AnomalyGeneratorWindow.xaml.cs @@ -37,7 +37,9 @@ public sealed partial class AnomalyGeneratorWindow : FancyWindow var fuelCompletion = Math.Clamp((float) state.FuelAmount / state.FuelCost, 0f, 1f); FuelBar.Value = fuelCompletion; - FuelText.Text = $"{fuelCompletion:P}"; + + var charges = state.FuelAmount / state.FuelCost; + FuelText.Text = Loc.GetString("anomaly-generator-charges", ("charges", charges)); UpdateTimer(); UpdateReady(); // yes this can trigger twice. no i don't care diff --git a/Content.Server/Anomaly/AnomalySystem.Generator.cs b/Content.Server/Anomaly/AnomalySystem.Generator.cs index 7a2deb8611..2b20ce75a2 100644 --- a/Content.Server/Anomaly/AnomalySystem.Generator.cs +++ b/Content.Server/Anomaly/AnomalySystem.Generator.cs @@ -1,9 +1,11 @@ -using Content.Server.Anomaly.Components; +using Content.Server.Anomaly.Components; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Shared.Anomaly; using Content.Shared.CCVar; using Content.Shared.Materials; +using Content.Shared.Radio; +using Robust.Shared.Audio; using Content.Shared.Physics; using Robust.Shared.Map.Components; using Robust.Shared.Physics; @@ -24,6 +26,9 @@ public sealed partial class AnomalySystem SubscribeLocalEvent(OnGeneratorMaterialAmountChanged); SubscribeLocalEvent(OnGenerateButtonPressed); SubscribeLocalEvent(OnGeneratorPowerChanged); + SubscribeLocalEvent(OnGeneratorUnpaused); + SubscribeLocalEvent(OnGeneratingStartup); + SubscribeLocalEvent(OnGeneratingUnpaused); } private void OnGeneratorPowerChanged(EntityUid uid, AnomalyGeneratorComponent component, ref PowerChangedEvent args) @@ -46,6 +51,11 @@ public sealed partial class AnomalySystem TryGeneratorCreateAnomaly(uid, component); } + private void OnGeneratorUnpaused(EntityUid uid, AnomalyGeneratorComponent component, ref EntityUnpausedEvent args) + { + component.CooldownEndTime += args.PausedTime; + } + public void UpdateGeneratorUi(EntityUid uid, AnomalyGeneratorComponent component) { var materialAmount = _material.GetMaterialAmount(uid, component.RequiredMaterial); @@ -65,14 +75,12 @@ public sealed partial class AnomalySystem if (Timing.CurTime < component.CooldownEndTime) return; - var grid = Transform(uid).GridUid; - if (grid == null) - return; - if (!_material.TryChangeMaterialAmount(uid, component.RequiredMaterial, -component.MaterialPerAnomaly)) return; - SpawnOnRandomGridLocation(grid.Value, component.SpawnerPrototype); + var generating = EnsureComp(uid); + generating.EndTime = Timing.CurTime + component.GenerationLength; + generating.AudioStream = Audio.PlayPvs(component.GeneratingSound, uid, AudioParams.Default.WithLoop(true)); component.CooldownEndTime = Timing.CurTime + component.CooldownLength; UpdateGeneratorUi(uid, component); } @@ -126,4 +134,42 @@ public sealed partial class AnomalySystem Spawn(toSpawn, targetCoords); } + + private void OnGeneratingStartup(EntityUid uid, GeneratingAnomalyGeneratorComponent component, ComponentStartup args) + { + Appearance.SetData(uid, AnomalyGeneratorVisuals.Generating, true); + } + + private void OnGeneratingUnpaused(EntityUid uid, GeneratingAnomalyGeneratorComponent component, ref EntityUnpausedEvent args) + { + component.EndTime += args.PausedTime; + } + + private void OnGeneratingFinished(EntityUid uid, AnomalyGeneratorComponent component) + { + var grid = Transform(uid).GridUid; + if (grid == null) + return; + + SpawnOnRandomGridLocation(grid.Value, component.SpawnerPrototype); + RemComp(uid); + Appearance.SetData(uid, AnomalyGeneratorVisuals.Generating, false); + Audio.PlayPvs(component.GeneratingFinishedSound, uid); + + var message = Loc.GetString("anomaly-generator-announcement"); + _radio.SendRadioMessage(uid, message, _prototype.Index(component.ScienceChannel)); + } + + private void UpdateGenerator() + { + foreach (var (active, gen) in EntityQuery()) + { + var ent = active.Owner; + + if (Timing.CurTime < active.EndTime) + continue; + active.AudioStream?.Stop(); + OnGeneratingFinished(ent, gen); + } + } } diff --git a/Content.Server/Anomaly/AnomalySystem.cs b/Content.Server/Anomaly/AnomalySystem.cs index e48fc328c4..3de46afb46 100644 --- a/Content.Server/Anomaly/AnomalySystem.cs +++ b/Content.Server/Anomaly/AnomalySystem.cs @@ -4,12 +4,15 @@ using Content.Server.Audio; using Content.Server.DoAfter; using Content.Server.Explosion.EntitySystems; using Content.Server.Materials; +using Content.Server.Radio.EntitySystems; using Content.Shared.Anomaly; using Content.Shared.Anomaly.Components; using Robust.Server.GameObjects; using Robust.Shared.Configuration; using Robust.Shared.Physics.Events; +using Robust.Shared.Prototypes; using Robust.Shared.Random; + namespace Content.Server.Anomaly; /// @@ -18,11 +21,13 @@ namespace Content.Server.Anomaly; public sealed partial class AnomalySystem : SharedAnomalySystem { [Dependency] private readonly IConfigurationManager _configuration = default!; + [Dependency] private readonly IPrototypeManager _prototype = default!; [Dependency] private readonly AmbientSoundSystem _ambient = default!; [Dependency] private readonly AtmosphereSystem _atmosphere = default!; [Dependency] private readonly DoAfterSystem _doAfter = default!; [Dependency] private readonly ExplosionSystem _explosion = default!; [Dependency] private readonly MaterialStorageSystem _material = default!; + [Dependency] private readonly RadioSystem _radio = default!; [Dependency] private readonly UserInterfaceSystem _ui = default!; public const float MinParticleVariation = 0.8f; @@ -128,6 +133,7 @@ public sealed partial class AnomalySystem : SharedAnomalySystem { base.Update(frameTime); + UpdateGenerator(); UpdateVessels(); } } diff --git a/Content.Server/Anomaly/Components/AnomalyGeneratorComponent.cs b/Content.Server/Anomaly/Components/AnomalyGeneratorComponent.cs index 4c9fc39442..0b27ee7d1b 100644 --- a/Content.Server/Anomaly/Components/AnomalyGeneratorComponent.cs +++ b/Content.Server/Anomaly/Components/AnomalyGeneratorComponent.cs @@ -1,4 +1,6 @@ using Content.Shared.Materials; +using Content.Shared.Radio; +using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; @@ -24,6 +26,12 @@ public sealed class AnomalyGeneratorComponent : Component [DataField("cooldownLength"), ViewVariables(VVAccess.ReadWrite)] public TimeSpan CooldownLength = TimeSpan.FromMinutes(5); + /// + /// How long it takes to generate an anomaly after pushing the button. + /// + [DataField("generationLength"), ViewVariables(VVAccess.ReadWrite)] + public TimeSpan GenerationLength = TimeSpan.FromSeconds(8); + /// /// The material needed to generate an anomaly /// @@ -41,4 +49,22 @@ public sealed class AnomalyGeneratorComponent : Component /// [DataField("spawnerPrototype", customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] public string SpawnerPrototype = "RandomAnomalySpawner"; + + /// + /// The radio channel for science + /// + [DataField("scienceChannel", customTypeSerializer: typeof(PrototypeIdSerializer))] + public string ScienceChannel = "Science"; + + /// + /// The sound looped while an anomaly generates + /// + [DataField("generatingSound")] + public SoundSpecifier? GeneratingSound; + + /// + /// Sound played on generation completion. + /// + [DataField("generatingFinishedSound")] + public SoundSpecifier? GeneratingFinishedSound; } diff --git a/Content.Server/Anomaly/Components/GeneratingAnomalyGeneratorComponent.cs b/Content.Server/Anomaly/Components/GeneratingAnomalyGeneratorComponent.cs new file mode 100644 index 0000000000..9e30d66c90 --- /dev/null +++ b/Content.Server/Anomaly/Components/GeneratingAnomalyGeneratorComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.Audio; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Server.Anomaly.Components; + +[RegisterComponent] +public sealed class GeneratingAnomalyGeneratorComponent : Component +{ + /// + /// When the generating period will end. + /// + [DataField("endTime", customTypeSerializer: typeof(TimeOffsetSerializer))] + public TimeSpan EndTime = TimeSpan.Zero; + + public IPlayingAudioStream? AudioStream; +} diff --git a/Content.Shared/Anomaly/SharedAnomaly.cs b/Content.Shared/Anomaly/SharedAnomaly.cs index 9ee1f847a9..cf94e2c6b1 100644 --- a/Content.Shared/Anomaly/SharedAnomaly.cs +++ b/Content.Shared/Anomaly/SharedAnomaly.cs @@ -48,6 +48,18 @@ public enum AnomalyVesselVisualLayers : byte Base } +[Serializable, NetSerializable] +public enum AnomalyGeneratorVisuals : byte +{ + Generating +} + +[Serializable, NetSerializable] +public enum AnomalyGeneratorVisualLayers : byte +{ + Base +} + [Serializable, NetSerializable] public enum AnomalyScannerUiKey : byte { diff --git a/Resources/Audio/Machines/anomaly_generate.ogg b/Resources/Audio/Machines/anomaly_generate.ogg new file mode 100644 index 0000000000000000000000000000000000000000..fd5384a2f5660be2c959bd77d2f47e2fe9d312dc GIT binary patch literal 43856 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 LV>mE1HN{vO57FRv literal 0 HcmV?d00001 diff --git a/Resources/Audio/Machines/attributions.yml b/Resources/Audio/Machines/attributions.yml index 4ac0ac9cfb..4f47ff53be 100644 --- a/Resources/Audio/Machines/attributions.yml +++ b/Resources/Audio/Machines/attributions.yml @@ -1,3 +1,13 @@ +- files: ["anomaly_generate.ogg"] + license: "CC0-1.0" + copyright: "Created by szegvari, converted to mono and .ogg by EmoGarbage404 (github)." + source: "https://freesound.org/people/szegvari/sounds/536794/" + +- files: ["beep.ogg"] + license: "CC0-1.0" + copyright: "Created by dotY21." + source: "https://freesound.org/people/dotY21/sounds/330726/" + - files: ["vending_restock_start.ogg"] license: "CC0-1.0" copyright: "https://freesound.org/people/Defaultv/" diff --git a/Resources/Audio/Machines/beep.ogg b/Resources/Audio/Machines/beep.ogg new file mode 100644 index 0000000000000000000000000000000000000000..820f5507810a3f4fa28fd03ad38726794adc69df GIT binary patch literal 8415 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 + [one] {$charges} charge + *[other] {$charges} charges +} +anomaly-generator-announcement = An anomaly has been generated! \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml b/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml index cfce5ca910..acc32a5195 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml @@ -196,6 +196,10 @@ - state: inserting visible: false map: ["enum.MaterialStorageVisualLayers.Inserting"] + - state: generating + visible: false + shader: unshaded + map: ["enum.AnomalyGeneratorVisualLayers.Base"] - type: Transform anchored: true - type: ApcPowerReceiver @@ -203,12 +207,16 @@ - type: ExtensionCableReceiver - type: AmbientSound range: 5 - volume: -3 + volume: -6 sound: path: /Audio/Ambience/Objects/anomaly_generator.ogg - type: Physics bodyType: Static - type: AnomalyGenerator + generatingSound: + path: /Audio/Machines/anomaly_generate.ogg + generatingFinishedSound: + path: /Audio/Machines/beep.ogg - type: MaterialStorage whitelist: tags: @@ -247,12 +255,19 @@ - key: enum.AnomalyGeneratorUiKey.Key type: AnomalyGeneratorBoundUserInterface - type: Appearance + - type: ActiveRadio + channels: + - Science - type: GenericVisualizer visuals: enum.PowerDeviceVisuals.Powered: enum.PowerDeviceVisualLayers.Powered: True: { visible: true } False: { visible: false } + enum.AnomalyGeneratorVisuals.Generating: + enum.AnomalyGeneratorVisualLayers.Base: + True: { visible: true } + False: { visible: false } - type: WiresVisuals - type: StaticPrice price: 5000 diff --git a/Resources/Textures/Structures/Machines/Anomaly/anomaly_generator.rsi/generating.png b/Resources/Textures/Structures/Machines/Anomaly/anomaly_generator.rsi/generating.png new file mode 100644 index 0000000000000000000000000000000000000000..e530750e104b05ee22360a605b93b16582ab1f7d GIT binary patch literal 2130 zcmb`HYfuwc8^jLadii2p2WR1brh_DhVJ4i4ZI*Brya6AtdbXX+WpYcBY@YAO8D1d(Lw? zXXp2P9upnD*y%MV2!a+zd=N^9AY6gXmO9$cd>L+F*j~6ydiZ;gpxs>qL5_ro(2&@p z|I_!?eZ4epnf*X{(du(M&ewmot9O~;`=aLHrcf%kl;gnTZJ`x@ypDOy(L_`o(%n>b zTR_7m|B$bQC6N)L98~Q;nhP90I zN!#QpBzq`!IF`ukZLnfLW)5E{v9=fDq|xhxU*$JJ-5+;N*BFK>Zt3nRFP>=+X~atx zl>8TWmn^e8PrTgk%ZBfN`V0S_lJ(QDdn_3WlH>wiMx9lJ3LoYfcWu~GyFGU-(d#3o zsx@`|PVrvHFKa|o-mVvw`az-P$#$QGVI9pgewn`Y*Jt1RR^MDXnrwaLQJip!3-b2# z!llLC>b?YA)zSLhm-;6sz(Gq!oOHCkthifu7L#}-jySpXS3TWps^v6V_m&+G;NG>{i5yO&hbGr6Q2^Rv)LE;K;L}qowGFCeQluu6%&6sEZyN} z!&kdCl0;F$xC?95X-rK4r+hgYfEr!ct9t4tzyO}N94TwBY@^?1hF;6>jj=emt*}b; zBBQ~-zyzBSDq$d52SOZzJrP62Ez;dzwtS$ZMGeuEwAbGO9{xokT4h=hGHu)S928QQ z@7F9!+({7yj9K?-5RG+T;S+W8w+aww^koBNgl&+w3MdVQdT4W(K`?rd6uG91N^8kN z8?vzZB6_pmZX&%knNO!|sGuaw2^_T-Lbh8AgH-PRrk5pV>&(cmCAGMcPW5r>30rrw zE&d^rAC9^zl!C&qa?o}2(#=_rBErC6614I7TKix|$37w!UU8D$o0s5P-0{}tp~vO;9qQI(h;(w> zt5TOv+JMIynIwJ+w%#7Bz0LLm-j`)SfP0jm-Uz7fLMCD0nNJSooXCE3DBBRV#@+S5X7lWD&h=gOm|<*6(34#Y_@j}5j#5QxI@H|p0Vy**@GXVE}n zng0qorO+P+z8E7Io&41v!*cljJla z2r9>X{c&PaOs2E#&^GM7Bi|R-9&%6|!m@I<)pV8jCx1x=!U>A*zBSQy$u{txJ|BxG z=jJuBmb^Pa2AVWp^_4(Y^b^fwv9jT3(9+%r#1@aa83!BkNF(_mm|_04s-oABiCGc z<3H#2;SaCPHtMxEERw;n8J7pla>|p69;;**Ryp$jpi+#K2Q_d&CpjxV5?*xzd8;Tv z%l(dRbg6?hAm3t6D42jxBY488s^NLyn_Z64k4(LNg{|dsRvHaL+up+#b596?E(x2V zkG+Izci;6!L;jJ6=CU(2|KVQk7|d->^6#ds%zY}+1w0z0>_kZ`fJgChj4{sFG08p7 zNgL4-C-r1yNd|dh)00Y_a`m5R2VS3N;{sJy~6JtLJxTWpfd7}3G; zc`(NF?@5>Yaw_P5As-d24RZQz*}TSP%i#Yt=11W%@0}klModlLcF!b@ct1K+@Lm$< EcU|2vm;e9( literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Machines/Anomaly/anomaly_generator.rsi/meta.json b/Resources/Textures/Structures/Machines/Anomaly/anomaly_generator.rsi/meta.json index cd4793cdd2..a70802f017 100644 --- a/Resources/Textures/Structures/Machines/Anomaly/anomaly_generator.rsi/meta.json +++ b/Resources/Textures/Structures/Machines/Anomaly/anomaly_generator.rsi/meta.json @@ -7,6 +7,21 @@ "license":"CC0-1.0", "copyright":"Created by EmoGarbage", "states":[ + { + "name": "generating", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, { "name":"base" }, -- 2.52.0