diff --git a/Content.Client/Stealth/StealthSystem.cs b/Content.Client/Stealth/StealthSystem.cs index 2dc61f03f2..7cf6e54639 100644 --- a/Content.Client/Stealth/StealthSystem.cs +++ b/Content.Client/Stealth/StealthSystem.cs @@ -63,7 +63,8 @@ public sealed class StealthSystem : SharedStealthSystem private void OnShutdown(EntityUid uid, StealthComponent component, ComponentShutdown args) { - SetShader(uid, false, component); + if (!Terminating(uid)) + SetShader(uid, false, component); } private void OnShaderRender(EntityUid uid, StealthComponent component, BeforePostShaderRenderEvent args) diff --git a/Content.IntegrationTests/Tests/EntityTest.cs b/Content.IntegrationTests/Tests/EntityTest.cs index a6d7bf30f8..d89668d4b4 100644 --- a/Content.IntegrationTests/Tests/EntityTest.cs +++ b/Content.IntegrationTests/Tests/EntityTest.cs @@ -153,17 +153,10 @@ namespace Content.IntegrationTests.Tests .Select(p => p.ID) .ToList(); - // for whatever reason, stealth boxes are breaking this test. Surplus crates have a chance of spawning them. - // TODO fix whatever is going wrong here. - HashSet ignored = new() { "GhostBox", "StealthBox", "CrateSyndicateSurplusBundle", "CrateSyndicateSuperSurplusBundle" }; - await server.WaitPost(() => { foreach (var protoId in protoIds) { - if (ignored.Contains(protoId)) - continue; - var mapId = mapManager.CreateMap(); var grid = mapManager.CreateGrid(mapId); var ent = sEntMan.SpawnEntity(protoId, new EntityCoordinates(grid.Owner, 0.5f, 0.5f)); diff --git a/Content.IntegrationTests/Tests/Minds/MindTests.EntityDeletion.cs b/Content.IntegrationTests/Tests/Minds/MindTests.EntityDeletion.cs index 63bc52bbe8..0bace9fc5c 100644 --- a/Content.IntegrationTests/Tests/Minds/MindTests.EntityDeletion.cs +++ b/Content.IntegrationTests/Tests/Minds/MindTests.EntityDeletion.cs @@ -71,7 +71,7 @@ public sealed partial class MindTests [Test] public async Task TestGhostOnDeleteMap() { - await using var pairTracker = await SetupPair(); + await using var pairTracker = await SetupPair(dirty: true); var server = pairTracker.Pair.Server; var testMap = await PoolManager.CreateTestMap(pairTracker); var coordinates = testMap.GridCoords; diff --git a/Content.IntegrationTests/Tests/PrototypeSaveTest.cs b/Content.IntegrationTests/Tests/PrototypeSaveTest.cs index 74123b5bc7..6823b2d58a 100644 --- a/Content.IntegrationTests/Tests/PrototypeSaveTest.cs +++ b/Content.IntegrationTests/Tests/PrototypeSaveTest.cs @@ -29,18 +29,9 @@ namespace Content.IntegrationTests.Tests; [TestFixture] public sealed class PrototypeSaveTest { - private readonly HashSet _ignoredPrototypes = new() - { - "Singularity", // physics collision uses "AllMask" (-1). The flag serializer currently fails to save this because this features un-named bits. - "constructionghost", - // Don't add to this list unless you have a good reason - // Or it is just temporary because tests stopped working and now master has too many broken entities. - }; - [Test] public async Task UninitializedSaveTest() { - // Apparently SpawnTest fails to clean up properly. Due to the similarities, I'll assume this also fails. await using var pairTracker = await PoolManager.GetServerClient(); var server = pairTracker.Pair.Server; @@ -92,9 +83,6 @@ public sealed class PrototypeSaveTest if (!prototype.MapSavable) continue; - if (_ignoredPrototypes.Contains(prototype.ID)) - continue; - if (prototype.SetSuffix == "DEBUG") continue; @@ -165,10 +153,7 @@ public sealed class PrototypeSaveTest var diff = compMapping.Except(protoMapping); if (diff != null && diff.Children.Count != 0) - { - var modComps = string.Join(",", diff.Keys.Select(x => x.ToString())); - Assert.Fail($"Prototype {prototype.ID} modifies component on spawn: {compName}. Modified fields: {modComps}"); - } + Assert.Fail($"Prototype {prototype.ID} modifies component on spawn: {compName}. Modified yaml:\n{diff}"); } else { diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/singularity.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/singularity.yml index ad38290c37..d2fea2870a 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/singularity.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/singularity.yml @@ -17,6 +17,8 @@ colliderFixtureId: EventHorizonCollider consumerFixtureId: EventHorizonConsumer - type: GravityWell # To make the singularity attract things. + baseRadialAcceleration: 10 + maxRange: 4 - type: Fixtures fixtures: EventHorizonCollider: @@ -43,11 +45,16 @@ energy: 180 level: 1 radsPerLevel: 2 + energyLoss: 1 - type: RandomWalk # To make the singularity move around. + maxSpeed: 2.5 + minSpeed: 1.875 - type: SingularityDistortion - intensity: 20 + falloffPower: 2.529822 + intensity: 3645 - type: RadiationSource slope: 0.2 # its emit really far away + intensity: 2 - type: PointLight enabled: true radius: 10 diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/big_boxes.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/big_boxes.yml index f4033554ad..040aff42b4 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/big_boxes.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/big_boxes.yml @@ -50,7 +50,6 @@ - type: Tag tags: - DoorBumpOpener - - type: InteractionOutline - type: Construction graph: BaseBigBox node: basebigbox @@ -66,6 +65,7 @@ - type: Damageable damageModifierSet: FlimsyMetallic #Syndicate boxes should have a bit of protection - type: Stealth + hadOutline: true - type: StealthOnMove passiveVisibilityRate: -0.37 movementVisibilityRate: 0.20 @@ -74,6 +74,7 @@ id: BigBox parent: BaseBigBox components: + - type: InteractionOutline - type: Destructible thresholds: - trigger: