using Barotrauma; using MoreLevelContent.Missions; using MoreLevelContent.Shared.Data; using System.Collections.Generic; using System.Xml.Linq; using System; using System.Linq; using MoreLevelContent.Networking; using MoreLevelContent.Shared.Utils; namespace MoreLevelContent.Shared.Generation { internal partial class LostCargoMapModule : TimedEventMapModule { protected override NetEvent EventCreated => NetEvent.MAP_SEND_NEWCARGO; //protected override NetEvent EventUpdated => throw new NotImplementedException(); protected override string NewEventText => "mlc.lostcargo.new"; protected override string EventTag => "lostcargo"; protected override int MaxActiveEvents => 5; protected override float EventSpawnChance => 1; protected override int MinDistance => 1; protected override int MaxDistance => 2; protected override int MinEventDuration => 4; protected override int MaxEventDuration => 6; protected override bool ShouldSpawnEventAtStart => true; protected override void HandleEventCreation(LevelData_MLCData data, int eventDuration) { data.HasLostCargo = true; data.CargoStepsLeft = eventDuration; } protected override void HandleUpdate(LevelData_MLCData data, LocationConnection connection) { data.CargoStepsLeft--; if (data.CargoStepsLeft <= 0) { data.HasLostCargo = false; string textTag = MLCUtils.GetRandomTag("mlc.lostcargo.tooslow", connection.LevelData); AddNewsStory(textTag, connection); } } protected override bool LevelHasEvent(LevelData_MLCData data) => data.HasLostCargo; } }