* Implements bureaucratic error and random sentience. * Adds the Vent Critters event. * bug moment * forgot ignores. * undo something i included in the PR by mistake. * address review
59 lines
1.9 KiB
C#
59 lines
1.9 KiB
C#
using Robust.Shared.GameObjects;
|
|
using Robust.Shared.IoC;
|
|
using Robust.Shared.Localization;
|
|
using Robust.Shared.Log;
|
|
using Robust.Shared.Map;
|
|
using Robust.Shared.Maths;
|
|
using Robust.Shared.Random;
|
|
|
|
namespace Content.Server.StationEvents.Events;
|
|
|
|
public sealed class KudzuGrowth : StationEvent
|
|
{
|
|
[Dependency] private readonly IRobustRandom _robustRandom = default!;
|
|
[Dependency] private readonly IEntityManager _entityManager = default!;
|
|
|
|
public override string Name => "KudzuGrowth";
|
|
|
|
public override string? StartAnnouncement =>
|
|
Loc.GetString("station-event-kudzu-growth-start-announcement");
|
|
|
|
public override string? StartAudio => "/Audio/Announcements/bloblarm.ogg";
|
|
|
|
public override int EarliestStart => 15;
|
|
|
|
public override int MinimumPlayers => 15;
|
|
|
|
public override float Weight => WeightLow;
|
|
|
|
public override int? MaxOccurrences => 2;
|
|
|
|
// Get players to scatter a bit looking for it.
|
|
protected override float StartAfter => 50f;
|
|
|
|
// Give crew at least 9 minutes to either have it gone, or to suffer another event. Kudzu is not actually required to be dead for another event to roll.
|
|
protected override float EndAfter => 60*4;
|
|
|
|
private EntityUid _targetGrid;
|
|
|
|
private Vector2i _targetTile;
|
|
|
|
private EntityCoordinates _targetCoords;
|
|
|
|
public override void Startup()
|
|
{
|
|
base.Startup();
|
|
|
|
// Pick a place to plant the kudzu.
|
|
if (TryFindRandomTile(out _targetTile, out _, out _targetGrid, out _targetCoords, _robustRandom, _entityManager))
|
|
{
|
|
_entityManager.SpawnEntity("Kudzu", _targetCoords);
|
|
Logger.InfoS("stationevents", $"Spawning a Kudzu at {_targetTile} on {_targetGrid}");
|
|
}
|
|
|
|
// If the kudzu tile selection fails we just let the announcement happen anyways because it's funny and people
|
|
// will be hunting the non-existent, dangerous plant.
|
|
}
|
|
|
|
}
|