Emergency closets are now filled automatically.

Mostly.
This commit is contained in:
Pieter-Jan Briers
2020-05-22 17:49:07 +02:00
parent a8e2900052
commit 931c0a01ac
3 changed files with 68 additions and 6 deletions

View File

@@ -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<IStorageComponent>();
var random = IoCManager.Resolve<IRobustRandom>();
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();
}
}
}
}

View File

@@ -12,10 +12,6 @@ namespace Content.Server.GameObjects.Components.Items.Storage.Fill
{ {
public override string Name => "ToolLockerFill"; public override string Name => "ToolLockerFill";
#pragma warning disable 649
[Dependency] private readonly IEntityManager _entityManager;
#pragma warning restore 649
void IMapInit.MapInit() void IMapInit.MapInit()
{ {
var storage = Owner.GetComponent<IStorageComponent>(); var storage = Owner.GetComponent<IStorageComponent>();
@@ -23,7 +19,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage.Fill
void Spawn(string prototype) 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)) if (random.Prob(0.4f))

View File

@@ -63,7 +63,8 @@
id: LockerEmergencyFilledRandom id: LockerEmergencyFilledRandom
parent: LockerEmergency parent: LockerEmergency
suffix: Filled, Random suffix: Filled, Random
components:
- type: EmergencyClosetFill
# Fire safety closet # Fire safety closet
- type: entity - type: entity