diff --git a/Content.Server/Salvage/SalvageSystem.ExpeditionConsole.cs b/Content.Server/Salvage/SalvageSystem.ExpeditionConsole.cs index a5abecef4cf..d04aae04cc0 100644 --- a/Content.Server/Salvage/SalvageSystem.ExpeditionConsole.cs +++ b/Content.Server/Salvage/SalvageSystem.ExpeditionConsole.cs @@ -25,14 +25,32 @@ private void OnSalvageClaimMessage(EntityUid uid, SalvageExpeditionConsoleCompon { var station = _station.GetOwningStation(uid); + // Corvax-Frontier Start + var activeExpeditionCount = 0; + var expeditionQuery = EntityManager.AllEntityQueryEnumerator(); + while (expeditionQuery.MoveNext(out var expeditionUid, out _, out _)) + { + if (TryComp(expeditionUid, out var expeditionData) && expeditionData.Claimed) + { + activeExpeditionCount++; + } + } + + if (activeExpeditionCount >= 2) + { + PlayDenySound(uid, component); + _popupSystem.PopupEntity(Loc.GetString("ftl-channel-blocked"), uid, PopupType.MediumCaution); + return; + } + // Corvax-Frontier End + if (!TryComp(station, out var data) || data.Claimed) return; if (!data.Missions.TryGetValue(args.Index, out var missionparams)) return; - // On Frontier, FTL travel is currently restricted to expeditions and such, and so we need to put this here - // until FTL changes for us in some way. + // Существующие проверки и логика if (!TryComp(station, out var stationData)) return; if (_station.GetLargestGrid(stationData) is not {Valid : true} grid) @@ -57,9 +75,8 @@ private void OnSalvageClaimMessage(EntityUid uid, SalvageExpeditionConsoleCompon UpdateConsoles(data); return; } - // end of Frontier proximity check - // Frontier change - disable coordinate disks for expedition missions + // Frontier change - disable coordinate disks for expedition missions //var cdUid = Spawn(CoordinatesDisk, Transform(uid).Coordinates); SpawnMission(missionparams, station.Value, null); @@ -67,7 +84,7 @@ private void OnSalvageClaimMessage(EntityUid uid, SalvageExpeditionConsoleCompon var mission = GetMission(missionparams.MissionType, missionparams.Difficulty, missionparams.Seed); data.NextOffer = _timing.CurTime + mission.Duration + TimeSpan.FromSeconds(1); - // Frontier change - disable coordinate disks for expedition missions + // Frontier change - disable coordinate disks for expedition missions //_labelSystem.Label(cdUid, GetFTLName(_prototypeManager.Index("names_borer"), missionparams.Seed)); //_audio.PlayPvs(component.PrintSound, uid); @@ -116,6 +133,7 @@ private void UpdateConsole(Entity component) _ui.TrySetUiState(component, SalvageConsoleUiKey.Expedition, state); } + private void PlayDenySound(EntityUid uid, SalvageExpeditionConsoleComponent component) { _audio.PlayPvs(_audio.GetSound(component.ErrorSound), uid); diff --git a/Resources/Locale/ru-RU/_NF/adventure/adventure.ftl b/Resources/Locale/ru-RU/_NF/adventure/adventure.ftl index bcd2b93d112..4447c58aea2 100644 --- a/Resources/Locale/ru-RU/_NF/adventure/adventure.ftl +++ b/Resources/Locale/ru-RU/_NF/adventure/adventure.ftl @@ -21,6 +21,7 @@ shipyard-rules-default2 = Корпоративный Закон приведут к административным мерам. Спасибо, что выбрали Службу Безопасности NT. shuttle-ftl-proximity = Близлежащие объекты слишком массивны для FTL прыжка! +ftl-channel-blocked = FTL канал перегружен, попробуйте позже. changelog-tab-title-Upstream = Журнал изменений public-transit-departure = Направляемся в { $destination }. Ориентировочное время в пути: { $flytime } секунд. public-transit-arrival = Спасибо за выбор общественного транспорта NT. Следующий шаттл до { $destination } отправляется через { $waittime } секунд.