diff --git a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Emitter.cs b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Emitter.cs index 06f1b6b154..78aca15bca 100644 --- a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Emitter.cs +++ b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Emitter.cs @@ -49,7 +49,7 @@ public sealed partial class ParticleAcceleratorSystem ParticleAcceleratorPowerState.Level0 => 1, ParticleAcceleratorPowerState.Level1 => 2, ParticleAcceleratorPowerState.Level2 => 3, - ParticleAcceleratorPowerState.Level3 => 10, + ParticleAcceleratorPowerState.Level3 => 6, _ => 0, } * 10; } diff --git a/Content.Server/Singularity/EntitySystems/SingularitySystem.cs b/Content.Server/Singularity/EntitySystems/SingularitySystem.cs index b273b2099d..6b9182fb4d 100644 --- a/Content.Server/Singularity/EntitySystems/SingularitySystem.cs +++ b/Content.Server/Singularity/EntitySystems/SingularitySystem.cs @@ -55,14 +55,12 @@ public sealed class SingularitySystem : SharedSingularitySystem var vvHandle = Vvm.GetTypeHandler(); vvHandle.AddPath(nameof(SingularityComponent.Energy), (_, comp) => comp.Energy, SetEnergy); - vvHandle.AddPath(nameof(SingularityComponent.TargetUpdatePeriod), (_, comp) => comp.TargetUpdatePeriod, SetUpdatePeriod); } public override void Shutdown() { var vvHandle = Vvm.GetTypeHandler(); vvHandle.RemovePath(nameof(SingularityComponent.Energy)); - vvHandle.RemovePath(nameof(SingularityComponent.TargetUpdatePeriod)); base.Shutdown(); } @@ -78,39 +76,10 @@ public sealed class SingularitySystem : SharedSingularitySystem var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var singularity)) { - var curTime = _timing.CurTime; - if (singularity.NextUpdateTime <= curTime) - Update(uid, curTime - singularity.LastUpdateTime, singularity); + AdjustEnergy(uid, -singularity.EnergyDrain * frameTime, singularity: singularity); } } - /// - /// Handles the gradual energy loss and dissipation of singularity. - /// - /// The uid of the singularity to update. - /// The state of the singularity to update. - public void Update(EntityUid uid, SingularityComponent? singularity = null) - { - if (Resolve(uid, ref singularity)) - Update(uid, _timing.CurTime - singularity.LastUpdateTime, singularity); - } - - /// - /// Handles the gradual energy loss and dissipation of a singularity. - /// - /// The uid of the singularity to update. - /// The amount of time that has elapsed since the last update. - /// The state of the singularity to update. - public void Update(EntityUid uid, TimeSpan frameTime, SingularityComponent? singularity = null) - { - if(!Resolve(uid, ref singularity)) - return; - - singularity.LastUpdateTime = _timing.CurTime; - singularity.NextUpdateTime = singularity.LastUpdateTime + singularity.TargetUpdatePeriod; - AdjustEnergy(uid, -singularity.EnergyDrain * (float)frameTime.TotalSeconds, singularity: singularity); - } - #region Getters/Setters /// @@ -166,28 +135,6 @@ public sealed class SingularitySystem : SharedSingularitySystem SetEnergy(uid, MathHelper.Clamp(newValue, min, max), singularity); } - /// - /// Setter for . - /// If the new target time implies that the singularity should have updated it does so immediately. - /// - /// The uid of the singularity to set the update period for. - /// The new update period for the singularity. - /// The state of the singularity to set the update period for. - public void SetUpdatePeriod(EntityUid uid, TimeSpan value, SingularityComponent? singularity = null) - { - if(!Resolve(uid, ref singularity)) - return; - - if (MathHelper.CloseTo(singularity.TargetUpdatePeriod.TotalSeconds, value.TotalSeconds)) - return; - - singularity.TargetUpdatePeriod = value; - singularity.NextUpdateTime = singularity.LastUpdateTime + singularity.TargetUpdatePeriod; - - var curTime = _timing.CurTime; - if (singularity.NextUpdateTime <= curTime) - Update(uid, curTime - singularity.LastUpdateTime, singularity); - } #endregion Getters/Setters @@ -203,9 +150,6 @@ public sealed class SingularitySystem : SharedSingularitySystem /// The event arguments. protected override void OnSingularityStartup(EntityUid uid, SingularityComponent comp, ComponentStartup args) { - comp.LastUpdateTime = _timing.CurTime; - comp.NextUpdateTime = comp.LastUpdateTime + comp.TargetUpdatePeriod; - MetaDataComponent? metaData = null; if (Resolve(uid, ref metaData) && metaData.EntityLifeStage <= EntityLifeStage.Initializing) _audio.PlayPvs(comp.FormationSound, uid); @@ -223,7 +167,7 @@ public sealed class SingularitySystem : SharedSingularitySystem /// The event arguments. public void OnDistortionStartup(EntityUid uid, SingularityDistortionComponent comp, ComponentStartup args) { - _pvs.AddGlobalOverride(GetNetEntity(uid)); + _pvs.AddGlobalOverride(uid); } /// @@ -269,6 +213,10 @@ public sealed class SingularitySystem : SharedSingularitySystem /// The event arguments. public void OnConsumedEntity(EntityUid uid, SingularityComponent comp, ref EntityConsumedByEventHorizonEvent args) { + // Don't double count singulo food + if (HasComp(args.Entity)) + return; + AdjustEnergy(uid, BaseEntityEnergy, singularity: comp); } diff --git a/Content.Shared/Singularity/Components/SingularityComponent.cs b/Content.Shared/Singularity/Components/SingularityComponent.cs index 3bab8d80b0..dd4eb8c1ab 100644 --- a/Content.Shared/Singularity/Components/SingularityComponent.cs +++ b/Content.Shared/Singularity/Components/SingularityComponent.cs @@ -81,26 +81,4 @@ public sealed partial class SingularityComponent : Component ); #endregion Audio - - #region Update Timing - - /// - /// The amount of time that should elapse between automated updates to this singularity. - /// - [DataField("updatePeriod")] - [ViewVariables(VVAccess.ReadWrite)] - public TimeSpan TargetUpdatePeriod = TimeSpan.FromSeconds(1.0); - - /// - /// - [ViewVariables(VVAccess.ReadOnly)] - public TimeSpan NextUpdateTime = default!; - - /// - /// The last time this singularity was updated. - /// - [ViewVariables(VVAccess.ReadOnly)] - public TimeSpan LastUpdateTime = default!; - - #endregion Update Timing }