diff --git a/Content.Server/GameObjects/Components/Items/Storage/Fill/EmergencyClosetFillComponent.cs b/Content.Server/GameObjects/Components/Items/Storage/Fill/EmergencyClosetFillComponent.cs new file mode 100644 index 0000000000..0bcee84573 --- /dev/null +++ b/Content.Server/GameObjects/Components/Items/Storage/Fill/EmergencyClosetFillComponent.cs @@ -0,0 +1,65 @@ +using Robust.Server.Interfaces.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.Random; +using Robust.Shared.IoC; +using Robust.Shared.Random; + +namespace Content.Server.GameObjects.Components.Items.Storage.Fill +{ + [RegisterComponent] + internal sealed class EmergencyClosetFillComponent : Component, IMapInit + { + public override string Name => "EmergencyClosetFill"; + + void IMapInit.MapInit() + { + var storage = Owner.GetComponent(); + var random = IoCManager.Resolve(); + + void Spawn(string prototype) + { + storage.Insert(Owner.EntityManager.SpawnEntity(prototype, Owner.Transform.GridPosition)); + } + + if (random.Prob(40)) + { + Spawn("ToolboxEmergencyFilled"); + } + + var pick = random.Next(0, 100); + if (pick < 40) // 40% + { + // TODO: uncomment when we actually have these items. + // Spawn("TankOxygenSmallFilled"); + // Spawn("TankOxygenSmallFilled"); + Spawn("BreathMaskClothing"); + Spawn("BreathMaskClothing"); + } + else if (pick < 65) // 25% + { + // Spawn("TankOxygenSmallFilled"); + // Spawn("MedkitOxygenFilled"); + Spawn("BreathMaskClothing"); + } + else if (pick < 85) // 20% + { + // Spawn("TankOxygenFilled"); + Spawn("BreathMaskClothing"); + } + else if (pick < 95) // 10% + { + // Spawn("TankOxygenSmallFilled"); + Spawn("BreathMaskClothing"); + } + else if (pick < 99) // 4% + { + // nothing, doot + } + else // 1% + { + // teehee + Owner.Delete(); + } + } + } +} diff --git a/Content.Server/GameObjects/Components/Items/Storage/Fill/ToolLockerFillComponent.cs b/Content.Server/GameObjects/Components/Items/Storage/Fill/ToolLockerFillComponent.cs index b6322c56e4..35d7ef593e 100644 --- a/Content.Server/GameObjects/Components/Items/Storage/Fill/ToolLockerFillComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Storage/Fill/ToolLockerFillComponent.cs @@ -12,10 +12,6 @@ namespace Content.Server.GameObjects.Components.Items.Storage.Fill { public override string Name => "ToolLockerFill"; -#pragma warning disable 649 - [Dependency] private readonly IEntityManager _entityManager; -#pragma warning restore 649 - void IMapInit.MapInit() { var storage = Owner.GetComponent(); @@ -23,7 +19,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage.Fill void Spawn(string prototype) { - storage.Insert(_entityManager.SpawnEntity(prototype, Owner.Transform.GridPosition)); + storage.Insert(Owner.EntityManager.SpawnEntity(prototype, Owner.Transform.GridPosition)); } if (random.Prob(0.4f)) diff --git a/Resources/Prototypes/Entities/Buildings/Storage/Closets/utility_closets.yml b/Resources/Prototypes/Entities/Buildings/Storage/Closets/utility_closets.yml index 33cd576fa4..b6edc7de89 100644 --- a/Resources/Prototypes/Entities/Buildings/Storage/Closets/utility_closets.yml +++ b/Resources/Prototypes/Entities/Buildings/Storage/Closets/utility_closets.yml @@ -63,7 +63,8 @@ id: LockerEmergencyFilledRandom parent: LockerEmergency suffix: Filled, Random - + components: + - type: EmergencyClosetFill # Fire safety closet - type: entity