diff --git a/Content.Server/Singularity/Components/ContainmentFieldConnection.cs b/Content.Server/Singularity/Components/ContainmentFieldConnection.cs index 1a50a05d20..6851a3b84d 100644 --- a/Content.Server/Singularity/Components/ContainmentFieldConnection.cs +++ b/Content.Server/Singularity/Components/ContainmentFieldConnection.cs @@ -1,4 +1,5 @@ using System.Threading; +using Content.Shared.Singularity.Components; using Timer = Robust.Shared.Timing.Timer; namespace Content.Server.Singularity.Components @@ -65,13 +66,9 @@ namespace Content.Server.Singularity.Components Timer.SpawnRepeating(1000, () => { SharedEnergyPool--;}, _powerDecreaseCancellationTokenSource.Token); } - public bool CanRepell(EntityUid toRepell) + public bool CanRepel(SharedSingularityComponent toRepel) { - var powerNeeded = 1; - if (IoCManager.Resolve().TryGetComponent(toRepell, out var singularityComponent)) - { - powerNeeded += 2*singularityComponent.Level; - } + var powerNeeded = 2 * toRepel.Level + 1; return _sharedEnergyPool > powerNeeded; } diff --git a/Content.Server/Singularity/Components/ContainmentFieldGeneratorComponent.cs b/Content.Server/Singularity/Components/ContainmentFieldGeneratorComponent.cs index c5ee929402..b9f3aad25a 100644 --- a/Content.Server/Singularity/Components/ContainmentFieldGeneratorComponent.cs +++ b/Content.Server/Singularity/Components/ContainmentFieldGeneratorComponent.cs @@ -55,8 +55,8 @@ namespace Content.Server.Singularity.Components private Tuple? _connection1; private Tuple? _connection2; - public bool CanRepell(EntityUid toRepell) => _connection1?.Item2?.CanRepell(toRepell) == true || - _connection2?.Item2?.CanRepell(toRepell) == true; + public bool CanRepel(SharedSingularityComponent toRepel) => _connection1?.Item2?.CanRepel(toRepel) == true || + _connection2?.Item2?.CanRepel(toRepel) == true; public void OnAnchoredChanged() { diff --git a/Content.Server/Singularity/EntitySystems/SingularitySystem.cs b/Content.Server/Singularity/EntitySystems/SingularitySystem.cs index 1e17a70fe8..671d6d5ef9 100644 --- a/Content.Server/Singularity/EntitySystems/SingularitySystem.cs +++ b/Content.Server/Singularity/EntitySystems/SingularitySystem.cs @@ -132,7 +132,7 @@ namespace Content.Server.Singularity.EntitySystems !EntityManager.HasComponent(entity) && (component.Level > 4 || !EntityManager.HasComponent(entity) && - !EntityManager.HasComponent(entity)); + !(EntityManager.TryGetComponent(entity, out var containFieldGen) && containFieldGen.CanRepel(component))); } private void HandleDestroy(ServerSingularityComponent component, EntityUid entity)