diff --git a/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerTab.xaml b/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerTab.xaml
deleted file mode 100644
index 91623cd9466..00000000000
--- a/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerTab.xaml
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerTab.xaml.cs b/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerTab.xaml.cs
deleted file mode 100644
index f94bc7413b1..00000000000
--- a/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerTab.xaml.cs
+++ /dev/null
@@ -1,92 +0,0 @@
-using Content.Shared._NF.Bank;
-using Content.Shared._NF.Bank.BUI;
-using Content.Shared._NF.Bank.Components;
-using Robust.Client.AutoGenerated;
-using Robust.Client.UserInterface;
-using Robust.Client.UserInterface.XAML;
-
-namespace Content.Client._NF.CartridgeLoader.Cartridges;
-
-[GenerateTypedNameReferences]
-public sealed partial class LedgerTab : Control
-{
- public SectorBankAccount Account = SectorBankAccount.Invalid;
- private int _totalIncome = 0;
- private int _totalExpenses = 0;
- private bool _hasIncome = false;
- private bool _hasExpenses = false;
-
- private static readonly Color IncomeColor = Color.FromHex("#80FF80");
- private static readonly Color ExpenseColor = Color.FromHex("#FF8080");
-
- public LedgerTab()
- {
- RobustXamlLoader.Load(this);
- }
-
- public LedgerTab(SectorBankAccount account)
- {
- Account = account;
- RobustXamlLoader.Load(this);
- }
-
- public void ClearLedgerEntries()
- {
- IncomeList.Children.Clear();
- ExpenseList.Children.Clear();
- _hasIncome = false;
- _hasExpenses = false;
- _totalIncome = 0;
- _totalExpenses = 0;
- InvalidateMeasure();
- }
-
- public void AddLedgerEntry(LedgerEntryType type, int amount)
- {
- if (amount <= 0)
- return;
-
- var isExpense = type >= LedgerEntryType.FirstExpense;
- var list = isExpense ? ExpenseList : IncomeList;
- if (isExpense)
- {
- _totalExpenses += amount;
- _hasExpenses = true;
- }
- else
- {
- _totalIncome += amount;
- _hasIncome = true;
- }
-
- var ledgerEntry = new LedgerEntry();
- ledgerEntry.Description.Text = Loc.GetString($"ledger-entry-type-{type}");
- ledgerEntry.Value.Text = BankSystemExtensions.ToSpesoString(amount);
- ledgerEntry.Value.FontColorOverride = isExpense ? ExpenseColor : IncomeColor;
-
- list.AddChild(ledgerEntry);
- list.InvalidateMeasure();
- }
-
- public void UpdateTotals()
- {
- if (_hasIncome)
- IncomeValue.Text = BankSystemExtensions.ToSpesoString(_totalIncome);
- else
- IncomeValue.Text = Loc.GetString("ledger-no-income");
-
- if (_hasExpenses)
- ExpensesValue.Text = BankSystemExtensions.ToSpesoString(_totalExpenses);
- else
- ExpensesValue.Text = Loc.GetString("ledger-no-expenses");
-
- if (_hasIncome || _hasExpenses)
- {
- int totalBalance = _totalIncome - _totalExpenses;
- BalanceValue.Text = BankSystemExtensions.ToSpesoString(totalBalance);
- BalanceValue.FontColorOverride = totalBalance < 0 ? ExpenseColor : IncomeColor;
- }
- else
- BalanceValue.Text = Loc.GetString("ledger-no-balance");
- }
-}
diff --git a/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerUi.cs b/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerUi.cs
deleted file mode 100644
index 54c0bf3ee2a..00000000000
--- a/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerUi.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using Robust.Client.UserInterface;
-using Content.Client.UserInterface.Fragments;
-using Content.Shared._NF.Bank.BUI;
-
-namespace Content.Client._NF.CartridgeLoader.Cartridges;
-
-public sealed partial class LedgerUi : UIFragment
-{
- private LedgerUiFragment? _fragment;
-
- public override Control GetUIFragmentRoot()
- {
- return _fragment!;
- }
-
- public override void Setup(BoundUserInterface userInterface, EntityUid? fragmentOwner)
- {
- _fragment = new LedgerUiFragment();
- }
-
- public override void UpdateState(BoundUserInterfaceState state)
- {
- if (state is NFLedgerState cast)
- {
- _fragment?.UpdateState(cast);
- }
- }
-}
diff --git a/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerUiFragment.xaml b/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerUiFragment.xaml
deleted file mode 100644
index a757595093b..00000000000
--- a/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerUiFragment.xaml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerUiFragment.xaml.cs b/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerUiFragment.xaml.cs
deleted file mode 100644
index 8f30a21581a..00000000000
--- a/Content.Client/_NF/CartridgeLoader/Cartridges/LedgerUiFragment.xaml.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using Content.Shared._NF.Bank.BUI;
-using Content.Shared._NF.Bank.Components;
-using Robust.Client.AutoGenerated;
-using Robust.Client.UserInterface.Controls;
-using Robust.Client.UserInterface.XAML;
-
-namespace Content.Client._NF.CartridgeLoader.Cartridges;
-
-[GenerateTypedNameReferences]
-public sealed partial class LedgerUiFragment : BoxContainer
-{
- private Dictionary _tabsByAccount = new();
- public LedgerUiFragment()
- {
- RobustXamlLoader.Load(this);
-
- foreach (var account in Enum.GetValues())
- {
- if (account == SectorBankAccount.Invalid)
- continue;
- var ledgerTab = new LedgerTab(account);
- Tabs.AddChild(ledgerTab);
- Tabs.SetTabTitle(Tabs.ChildCount - 1, Loc.GetString($"ledger-tab-{account}"));
- _tabsByAccount[account] = ledgerTab;
- }
- }
-
- public void UpdateState(NFLedgerState state)
- {
- foreach (var tab in Tabs.Children)
- {
- if (tab is LedgerTab ledgerTab)
- ledgerTab.ClearLedgerEntries();
- }
-
- // Regenerate new entries
- foreach (var entry in state.Entries)
- {
- if (_tabsByAccount.ContainsKey(entry.Account))
- _tabsByAccount[entry.Account].AddLedgerEntry(entry.Type, entry.Amount);
- }
-
- foreach (var tab in Tabs.Children)
- {
- if (tab is LedgerTab ledgerTab)
- ledgerTab.UpdateTotals();
- }
- }
-}
diff --git a/Content.Server/VendingMachines/VendingMachineSystem.cs b/Content.Server/VendingMachines/VendingMachineSystem.cs
index 54fadcf75a4..95b955948fb 100644
--- a/Content.Server/VendingMachines/VendingMachineSystem.cs
+++ b/Content.Server/VendingMachines/VendingMachineSystem.cs
@@ -1,3 +1,4 @@
+using Content.Shared._NF.Bank;
using System.Linq;
using Content.Server._NF.Bank;
using System.Numerics;
diff --git a/Content.Server/_DV/Mail/EntitySystems/MailSystem.cs b/Content.Server/_DV/Mail/EntitySystems/MailSystem.cs
index efa0f82d815..4953f81061c 100644
--- a/Content.Server/_DV/Mail/EntitySystems/MailSystem.cs
+++ b/Content.Server/_DV/Mail/EntitySystems/MailSystem.cs
@@ -1,3 +1,4 @@
+using Content.Shared._NF.Bank;
using Content.Server.Access.Systems;
using Content.Server.Damage.Components;
using Content.Server._DV.Cargo.Components;
diff --git a/Content.Server/_Lua/AiShuttle/AiShuttleSpawnRuleSystem.cs b/Content.Server/_Lua/AiShuttle/AiShuttleSpawnRuleSystem.cs
index a5dccd75809..6d714f9dbf3 100644
--- a/Content.Server/_Lua/AiShuttle/AiShuttleSpawnRuleSystem.cs
+++ b/Content.Server/_Lua/AiShuttle/AiShuttleSpawnRuleSystem.cs
@@ -1,6 +1,7 @@
// LuaWorld - This file is licensed under AGPLv3
// Copyright (c) 2025 LuaWorld
// See AGPLv3.txt for details.
+using Content.Shared._NF.Bank;
using System.Numerics;
using Content.Server.Cargo.Systems;
using Robust.Server.GameObjects;
diff --git a/Content.Server/_Lua/Parking/FrontierParkingSystem.cs b/Content.Server/_Lua/Parking/FrontierParkingSystem.cs
index 369a87c836b..1cea220cadc 100644
--- a/Content.Server/_Lua/Parking/FrontierParkingSystem.cs
+++ b/Content.Server/_Lua/Parking/FrontierParkingSystem.cs
@@ -2,6 +2,7 @@
// Copyright (c) 2026 LuaWorld/LuaCorp
// See AGPLv3.txt for details.
+using Content.Shared._NF.Bank;
using Content.Server._NF.Bank;
using Content.Server.Chat.Managers;
using Content.Server.Database;
diff --git a/Content.Server/_Lua/Parking/TrafficManagerTabletSystem.cs b/Content.Server/_Lua/Parking/TrafficManagerTabletSystem.cs
index 5ced7c04913..33874929e05 100644
--- a/Content.Server/_Lua/Parking/TrafficManagerTabletSystem.cs
+++ b/Content.Server/_Lua/Parking/TrafficManagerTabletSystem.cs
@@ -2,6 +2,7 @@
// Copyright (c) 2026 LuaWorld/LuaCorp
// See AGPLv3.txt for details.
+using Content.Shared._NF.Bank;
using Content.Server._Lua.Frontier.Parking;
using Content.Server._NF.Bank;
using Content.Server._NF.Shipyard.Systems;
diff --git a/Content.Server/_Mono/Ships/Systems/LimitedShuttleSystem.cs b/Content.Server/_Mono/Ships/Systems/LimitedShuttleSystem.cs
index 2500f69e58f..aa60b98891f 100644
--- a/Content.Server/_Mono/Ships/Systems/LimitedShuttleSystem.cs
+++ b/Content.Server/_Mono/Ships/Systems/LimitedShuttleSystem.cs
@@ -93,7 +93,7 @@ public bool CanPurchaseVessel(VesselPrototype vessel)
if (vessel.LimitActive <= 0)
return true;
- var query = EntityQueryEnumerator();
+ var query = AllEntityQuery();
var shuttleCount = 0;
while (query.MoveNext(out _, out var targetVessel))
diff --git a/Content.Server/_NF/Bank/ATMSystem.cs b/Content.Server/_NF/Bank/ATMSystem.cs
index 2e8843289fe..d8df1ff2d9b 100644
--- a/Content.Server/_NF/Bank/ATMSystem.cs
+++ b/Content.Server/_NF/Bank/ATMSystem.cs
@@ -3,6 +3,7 @@
* Copyright (c) 2024 New Frontiers Contributors
* See AGPLv3.txt for details.
*/
+using Content.Shared._NF.Bank;
using Content.Server.Administration.Logs;
using Content.Server.Hands.Systems;
using Content.Server.Popups;
diff --git a/Content.Server/_NF/Bank/BankSystem.Ledger.cs b/Content.Server/_NF/Bank/BankSystem.Ledger.cs
index 56a796dd470..18caf22bff7 100644
--- a/Content.Server/_NF/Bank/BankSystem.Ledger.cs
+++ b/Content.Server/_NF/Bank/BankSystem.Ledger.cs
@@ -1,6 +1,5 @@
using System.Text;
using Content.Shared._NF.Bank;
-using Content.Shared._NF.Bank.BUI;
using Content.Shared._NF.Bank.Components;
namespace Content.Server._NF.Bank;
diff --git a/Content.Server/_NF/Bank/SectorBankComponent.cs b/Content.Server/_NF/Bank/SectorBankComponent.cs
index 26512424363..007c6be338a 100644
--- a/Content.Server/_NF/Bank/SectorBankComponent.cs
+++ b/Content.Server/_NF/Bank/SectorBankComponent.cs
@@ -1,4 +1,4 @@
-using Content.Shared._NF.Bank.BUI;
+using Content.Shared._NF.Bank;
using Content.Shared._NF.Bank.Components;
namespace Content.Server._NF.Bank;
diff --git a/Content.Server/_NF/Cargo/Systems/NFCargoSystem.Orders.cs b/Content.Server/_NF/Cargo/Systems/NFCargoSystem.Orders.cs
index b1430c54609..d6f1a77219a 100644
--- a/Content.Server/_NF/Cargo/Systems/NFCargoSystem.Orders.cs
+++ b/Content.Server/_NF/Cargo/Systems/NFCargoSystem.Orders.cs
@@ -1,3 +1,4 @@
+using Content.Shared._NF.Bank;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Content.Server._NF.Cargo.Components;
diff --git a/Content.Server/_NF/CartridgeLoader/Cartridges/NFLedgerCartridgeComponent.cs b/Content.Server/_NF/CartridgeLoader/Cartridges/NFLedgerCartridgeComponent.cs
deleted file mode 100644
index b2c9c5b7de8..00000000000
--- a/Content.Server/_NF/CartridgeLoader/Cartridges/NFLedgerCartridgeComponent.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-namespace Content.Server._NF.CartridgeLoader.Cartridges;
-
-[RegisterComponent, Access(typeof(NFLedgerCartridgeSystem))]
-public sealed partial class NFLedgerCartridgeComponent : Component;
diff --git a/Content.Server/_NF/CartridgeLoader/Cartridges/NFLedgerCartridgeSystem.cs b/Content.Server/_NF/CartridgeLoader/Cartridges/NFLedgerCartridgeSystem.cs
deleted file mode 100644
index 9f840d0e7d1..00000000000
--- a/Content.Server/_NF/CartridgeLoader/Cartridges/NFLedgerCartridgeSystem.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using Content.Server.CartridgeLoader;
-using Content.Shared.CartridgeLoader;
-using Content.Server._NF.SectorServices;
-using Content.Shared._NF.Bank.BUI;
-using System.Diagnostics.CodeAnalysis;
-using Content.Server._NF.Bank;
-
-namespace Content.Server._NF.CartridgeLoader.Cartridges;
-
-// System for ledger cartridges - pushes updates to PDA UI when ledger is updated.
-public sealed class NFLedgerCartridgeSystem : EntitySystem
-{
- [Dependency] private readonly CartridgeLoaderSystem _cartridgeLoader = default!;
- [Dependency] private readonly SectorServiceSystem _sectorService = default!;
-
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent(OnUiReady);
- SubscribeLocalEvent(OnSectorLedgerUpdated);
- }
- private void OnUiReady(Entity ent, ref CartridgeUiReadyEvent args)
- {
- if (GetUIState(out var uiState))
- UpdateUI(args.Loader, uiState);
- }
-
- private void OnSectorLedgerUpdated(SectorLedgerUpdatedEvent args)
- {
- UpdateAllCartridges();
- }
-
- private void UpdateAllCartridges()
- {
- var query = EntityQueryEnumerator();
-
- if (!GetUIState(out var uiState))
- return;
-
- while (query.MoveNext(out _, out _, out var cartridge))
- {
- if (cartridge.LoaderUid is not { } loader)
- continue;
- UpdateUI(loader, uiState);
- }
- }
-
- private bool GetUIState([NotNullWhen(true)] out NFLedgerState? uiState)
- {
- uiState = null;
- if (!TryComp(_sectorService.GetServiceEntity(), out SectorBankComponent? ledger))
- return false;
-
- var ledgerCount = ledger.AccountLedgerEntries.Count;
- NFLedgerEntry[] entries = new NFLedgerEntry[ledgerCount];
- var index = 0;
- foreach (var ledgerEntry in ledger.AccountLedgerEntries)
- {
- // Bounds check, just to be sure.
- if (index >= ledgerCount)
- break;
- entries[index].Account = ledgerEntry.Key.Account;
- entries[index].Type = ledgerEntry.Key.Type;
- entries[index].Amount = ledgerEntry.Value;
- index++;
- }
- uiState = new NFLedgerState(entries);
- return true;
- }
-
- private void UpdateUI(EntityUid loader, NFLedgerState state)
- {
- _cartridgeLoader.UpdateCartridgeUiState(loader, state);
- }
-}
diff --git a/Content.Server/_NF/Medical/MedicalBountySystem.cs b/Content.Server/_NF/Medical/MedicalBountySystem.cs
index 9a47f91002c..6ff4a2fa2b6 100644
--- a/Content.Server/_NF/Medical/MedicalBountySystem.cs
+++ b/Content.Server/_NF/Medical/MedicalBountySystem.cs
@@ -1,4 +1,5 @@
+using Content.Shared._NF.Bank;
using System.Linq;
using Content.Server._NF.Bank;
using Content.Server._NF.Medical.Components;
diff --git a/Content.Server/_NF/Shipyard/Systems/ShipyardSystem.Consoles.cs b/Content.Server/_NF/Shipyard/Systems/ShipyardSystem.Consoles.cs
index 71524fcbc29..e0942a770ef 100644
--- a/Content.Server/_NF/Shipyard/Systems/ShipyardSystem.Consoles.cs
+++ b/Content.Server/_NF/Shipyard/Systems/ShipyardSystem.Consoles.cs
@@ -1,3 +1,4 @@
+using Content.Shared._NF.Bank;
using Content.Server._Lua.ShipProtection;
using Content.Server._Lua.Shipyard.Systems;
using Content.Server._Mono.Ships.Systems;
diff --git a/Content.Server/_NF/ShuttleRecords/ShuttleRecordsSystem.Console.cs b/Content.Server/_NF/ShuttleRecords/ShuttleRecordsSystem.Console.cs
index 140f3b16826..651043efa4d 100644
--- a/Content.Server/_NF/ShuttleRecords/ShuttleRecordsSystem.Console.cs
+++ b/Content.Server/_NF/ShuttleRecords/ShuttleRecordsSystem.Console.cs
@@ -1,3 +1,4 @@
+using Content.Shared._NF.Bank;
using System.Linq;
using Content.Server._NF.Bank;
using Content.Server.Cargo.Components;
diff --git a/Content.Server/_NF/StationEvents/Events/BluespaceErrorRule.cs b/Content.Server/_NF/StationEvents/Events/BluespaceErrorRule.cs
index c09f09eadeb..bd439415fa9 100644
--- a/Content.Server/_NF/StationEvents/Events/BluespaceErrorRule.cs
+++ b/Content.Server/_NF/StationEvents/Events/BluespaceErrorRule.cs
@@ -1,3 +1,4 @@
+using Content.Shared._NF.Bank;
using System.Numerics;
using Content.Server.Cargo.Systems;
using Robust.Server.GameObjects;
diff --git a/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs b/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
index 52ceb681053..d616ef7d4b9 100644
--- a/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
+++ b/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs
@@ -157,16 +157,13 @@ private void SplashOnMeleeHit(Entity entity, ref MeleeHitEve
// First update the hit count so non-reactive targets won't count towards the total.
foreach (var hit in args.HitEntities)
{
- if (!_solutionContainerSystem.TryGetInjectableSolution(hit, out _, out _))
+ if (!HasComp(hit))
hitCount -= 1;
}
- if (hitCount <= 0)
- return;
-
foreach (var hit in args.HitEntities)
{
- if (!_solutionContainerSystem.TryGetInjectableSolution(hit, out _, out _))
+ if (!HasComp(hit))
continue;
var splitSolution = _solutionContainerSystem.SplitSolution(soln.Value, totalSplit / hitCount);
diff --git a/Content.Shared/_NF/Atmos/Systems/SharedGasDepositSystem.cs b/Content.Shared/_NF/Atmos/Systems/SharedGasDepositSystem.cs
index 465f2d022a6..2e153ad59ae 100644
--- a/Content.Shared/_NF/Atmos/Systems/SharedGasDepositSystem.cs
+++ b/Content.Shared/_NF/Atmos/Systems/SharedGasDepositSystem.cs
@@ -73,6 +73,8 @@ public void OnAnchorAttempt(Entity ent, ref Anchor
ent.Comp.DepositEntity = otherEnt.Value;
return;
}
+
+ ent.Comp.DepositEntity = null;
}
public void OnAnchorChanged(Entity ent, ref AnchorStateChangedEvent args)
diff --git a/Content.Shared/_NF/Bank/BUI/NFLedgerState.cs b/Content.Shared/_NF/Bank/LedgerEntryType.cs
similarity index 61%
rename from Content.Shared/_NF/Bank/BUI/NFLedgerState.cs
rename to Content.Shared/_NF/Bank/LedgerEntryType.cs
index 7fd066efaa9..4c30f3adc04 100644
--- a/Content.Shared/_NF/Bank/BUI/NFLedgerState.cs
+++ b/Content.Shared/_NF/Bank/LedgerEntryType.cs
@@ -1,26 +1,8 @@
-using Content.Shared._NF.Bank.Components;
using Robust.Shared.Serialization;
-namespace Content.Shared._NF.Bank.BUI;
+namespace Content.Shared._NF.Bank;
[Serializable, NetSerializable]
-public sealed class NFLedgerState : BoundUserInterfaceState
-{
- public readonly NFLedgerEntry[] Entries;
- public NFLedgerState(NFLedgerEntry[] entries)
- {
- Entries = entries;
- }
-}
-
-[Serializable, NetSerializable]
-public struct NFLedgerEntry
-{
- public SectorBankAccount Account;
- public LedgerEntryType Type;
- public int Amount;
-}
-
public enum LedgerEntryType : byte
{
// Income entries
diff --git a/Resources/Locale/en-US/_EE/guidebook/food.ftl b/Resources/Locale/en-US/_EE/guidebook/food.ftl
index dd1806bd97c..7e2b4b5785e 100644
--- a/Resources/Locale/en-US/_EE/guidebook/food.ftl
+++ b/Resources/Locale/en-US/_EE/guidebook/food.ftl
@@ -26,7 +26,7 @@ guidebook-food-output = [bold]{$name}[/bold] \[{$number}\]
guidebook-food-processing-type-microwave = microwave
guidebook-food-processing-type-oven = bake
guidebook-food-processing-type-assembler = assemble
-guidebook-food-processing-type-medical-assembler = assemble
+guidebook-food-processing-type-medical-assembler = assemble in Med-O-Mat
guidebook-food-processing-type-medical-generic = cook
guidebook-food-processing-type-deepfryer = deep fry
# End Frontier: processing types
diff --git a/Resources/Locale/en-US/_NF/cartridge-loader/cartridges.ftl b/Resources/Locale/en-US/_NF/cartridge-loader/cartridges.ftl
index d30873439da..d4b5c37c532 100644
--- a/Resources/Locale/en-US/_NF/cartridge-loader/cartridges.ftl
+++ b/Resources/Locale/en-US/_NF/cartridge-loader/cartridges.ftl
@@ -3,15 +3,6 @@ appraisal-program-name = AppraiseAll Plus
appraisal-label-name = Item
appraisal-label-price = Appraised Price
-# Ledger cartridge
-ledger-program-name = SpesoFlow Lite
-ledger-header = Sector Ledger
-ledger-total-income = Total Income
-ledger-no-income = None
-ledger-total-expenses = Total Expenses
-ledger-no-expenses = None
-ledger-balance = Balance:
-ledger-no-balance = N/A
ledger-tab-Frontier = Frontier Outpost
ledger-tab-Nfsd = NFSD
diff --git a/Resources/Locale/ru-RU/_EE/guidebook/food.ftl b/Resources/Locale/ru-RU/_EE/guidebook/food.ftl
index 279e4c0da7a..789f8dfd02b 100644
--- a/Resources/Locale/ru-RU/_EE/guidebook/food.ftl
+++ b/Resources/Locale/ru-RU/_EE/guidebook/food.ftl
@@ -26,7 +26,7 @@ guidebook-food-output = [bold]{$name}[/bold] \[{$number}\]
guidebook-food-processing-type-microwave = разогреть
guidebook-food-processing-type-oven = запекать
guidebook-food-processing-type-assembler = сборка
-guidebook-food-processing-type-medical-assembler = сборка
+guidebook-food-processing-type-medical-assembler = сборка в Мед-О-Мате
guidebook-food-processing-type-medical-generic = готовить
guidebook-food-processing-type-deepfryer = обжарить во фритюре
# End Frontier: processing types
diff --git a/Resources/Locale/ru-RU/_Lua/cartridge-loader/cartridges.ftl b/Resources/Locale/ru-RU/_Lua/cartridge-loader/cartridges.ftl
index 89adba8beb3..05b13859bdc 100644
--- a/Resources/Locale/ru-RU/_Lua/cartridge-loader/cartridges.ftl
+++ b/Resources/Locale/ru-RU/_Lua/cartridge-loader/cartridges.ftl
@@ -7,15 +7,6 @@ appraisal-program-name = ОцениВСЁ Плюс
appraisal-label-name = Предмет
appraisal-label-price = Оценочная стоимость
-# Ledger cartridge
-ledger-program-name = SpesoFlow Lite
-ledger-header = Sector Ledger
-ledger-total-income = Общий доход
-ledger-no-income = Нет
-ledger-total-expenses = Общий убыток
-ledger-no-expenses = Нет
-ledger-balance = Баланс:
-ledger-no-balance = N/A
ledger-tab-Frontier = Аванпост Фронтир
ledger-tab-Nfsd = ДСБФ
diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/devices/cartridges.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/devices/cartridges.ftl
index 360b383fcf4..5b72f4592f6 100644
--- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/devices/cartridges.ftl
+++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/devices/cartridges.ftl
@@ -10,5 +10,3 @@ ent-AstroNavCartridge = картридж АстроНав
.desc = Навигационная программа, предоставляющая GPS-координаты.
ent-MedTekCartridge = картридж МедТек
.desc = Программа, предоставляющая инструменты для медицинской диагностики.
-ent-LedgerCartridge = картридж SpesoFlow Lite
- .desc = Программа для отслеживания банковских счетов сектора.
\ No newline at end of file
diff --git a/Resources/Prototypes/_Corvax/Entities/Structures/Walls/asteroid.yml b/Resources/Prototypes/_Corvax/Entities/Structures/Walls/asteroid.yml
index c6c0a0b3fab..dd9e9a88374 100644
--- a/Resources/Prototypes/_Corvax/Entities/Structures/Walls/asteroid.yml
+++ b/Resources/Prototypes/_Corvax/Entities/Structures/Walls/asteroid.yml
@@ -1420,6 +1420,7 @@
- map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west
- state: rock_gems
+ map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity
id: WallRockGems
@@ -1442,6 +1443,7 @@
- map: [ "enum.EdgeLayer.West" ]
state: rock_west
- state: rock_gems
+ map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity
id: WallRockBasaltGems
@@ -1464,6 +1466,7 @@
- map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west
- state: rock_gems
+ map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity
id: WallRockAndesiteGems
@@ -1486,6 +1489,7 @@
- map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west
- state: rock_gems
+ map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity
id: WallRockChromiteGems
@@ -1508,6 +1512,7 @@
- map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west
- state: rock_gems
+ map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity
id: AsteroidRockMagmite
@@ -1530,6 +1535,7 @@
- map: [ "enum.EdgeLayer.West" ]
state: rock_asteroid_west
- state: rock_magmite
+ map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity
id: WallRockMagmite
@@ -1552,6 +1558,7 @@
- map: [ "enum.EdgeLayer.West" ]
state: rock_west
- state: rock_magmite
+ map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity
id: WallRockBasaltMagmite
@@ -1574,6 +1581,7 @@
- map: [ "enum.EdgeLayer.West" ]
state: rock_wall_west
- state: rock_magmite
+ map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity
id: WallRockAndesiteMagmite
@@ -1596,6 +1604,7 @@
- map: [ "enum.EdgeLayer.West" ]
state: rock_andesite_west
- state: rock_magmite
+ map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity
id: WallRockChromiteMagmite
@@ -1618,6 +1627,7 @@
- map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west
- state: rock_magmite
+ map: [ "enum.MiningScannerVisualLayers.Overlay" ]
# Соль
diff --git a/Resources/Prototypes/_Lua/Datasets/Voices/tts-voices.yml b/Resources/Prototypes/_Lua/Datasets/Voices/tts-voices.yml
index c33463e5ee6..2426b00e32b 100644
--- a/Resources/Prototypes/_Lua/Datasets/Voices/tts-voices.yml
+++ b/Resources/Prototypes/_Lua/Datasets/Voices/tts-voices.yml
@@ -903,7 +903,7 @@
- type: ttsVoice
id: ElfEng
name: tts-voice-name-elfeng
- sex: Unsexed
+ sex: Male
speaker: elf_eng
# sponsorOnly: true
diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/mob_hostile_zombies.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/mob_hostile_zombies.yml
index 3d24ca0e301..410f2fc7cdc 100644
--- a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/mob_hostile_zombies.yml
+++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/mob_hostile_zombies.yml
@@ -668,14 +668,6 @@
- type: Bloodstream
bloodReagent: WeldingFuel
bloodMaxVolume: 100
- - type: Timer
- - type: TimedSpawner
- prototypes:
- - NFZombiePileLoophole
- chance: 1
- intervalSeconds: 240 # 4 min
- minimumEntitiesSpawned: 1
- maximumEntitiesSpawned: 1
- type: MobThresholds
thresholds:
0: Alive
@@ -731,13 +723,6 @@
name: body bags pile
description: A stacked pile of reinforced body bags. Some of them are moving!
components:
- - type: TimedSpawner
- prototypes:
- - NFSpawnMobZombieRandom
- chance: 1
- intervalSeconds: 300 # 5 min
- minimumEntitiesSpawned: 1
- maximumEntitiesSpawned: 3
- type: Sprite
sprite: _NF/Mobs/Zombies/zombie_human.rsi
layers:
diff --git a/Resources/Prototypes/_NF/Entities/Objects/Devices/cartridges.yml b/Resources/Prototypes/_NF/Entities/Objects/Devices/cartridges.yml
index ce9138ae470..bb1a899e2c4 100644
--- a/Resources/Prototypes/_NF/Entities/Objects/Devices/cartridges.yml
+++ b/Resources/Prototypes/_NF/Entities/Objects/Devices/cartridges.yml
@@ -45,25 +45,6 @@
icon: { sprite: Objects/Tools/appraisal-tool.rsi, state: icon }
- type: AppraisalCartridge
-- type: entity
- parent: NFBasePDACartridge
- id: LedgerCartridge
- name: SpesoFlow Lite cartridge
- description: A program for keeping track of sector bank accounts.
- components:
- - type: Sprite
- sprite: _NF/Objects/Devices/cartridge.rsi
- state: cart-ledger
- - type: Icon
- sprite: _NF/Objects/Devices/cartridge.rsi
- state: cart-ledger
- - type: UIFragment
- ui: !type:LedgerUi
- - type: Cartridge
- programName: ledger-program-name
- icon: { sprite: _NF/Interface/icons.rsi, state: ledger }
- readonly: true
- - type: NFLedgerCartridge
# Not a PDA cartridge (then why is this here)
- type: entity
diff --git a/Resources/Prototypes/_NF/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/_NF/Entities/Objects/Devices/pda.yml
index 8ff73835e50..5534c2ee2ed 100644
--- a/Resources/Prototypes/_NF/Entities/Objects/Devices/pda.yml
+++ b/Resources/Prototypes/_NF/Entities/Objects/Devices/pda.yml
@@ -24,7 +24,6 @@
- BountyContractsCartridge
- AstroNavCartridge
- WantedListCartridge
- - LedgerCartridge
- LogProbeCartridge
- MailMetricsCartridge
- AppraisalCartridge
@@ -161,7 +160,6 @@
- BountyContractsCartridge
- AstroNavCartridge
- WantedListCartridge
- - LedgerCartridge
- type: entity
parent: BaseSecurityPDA
@@ -384,7 +382,6 @@
- NewsReaderCartridge
- BountyContractsCartridge
- AstroNavCartridge
- - LedgerCartridge
- MailMetricsCartridge
- type: entity
@@ -542,7 +539,6 @@
- NewsReaderCartridge
- BountyContractsCartridge
- AstroNavCartridge
- - LedgerCartridge
- MedTekCartridge
- type: entity
@@ -591,4 +587,3 @@
- NewsReaderCartridge
- BountyContractsCartridge
- AstroNavCartridge
- - LedgerCartridge
diff --git a/Resources/Prototypes/_NF/Entities/Structures/Piping/Atmospherics/binary.yml b/Resources/Prototypes/_NF/Entities/Structures/Piping/Atmospherics/binary.yml
index 33792c8680f..35a0af91a23 100644
--- a/Resources/Prototypes/_NF/Entities/Structures/Piping/Atmospherics/binary.yml
+++ b/Resources/Prototypes/_NF/Entities/Structures/Piping/Atmospherics/binary.yml
@@ -1,4 +1,4 @@
-- type: entity
+- type: entity
parent: GasPressurePump
id: GasPressurePumpOn
suffix: On
@@ -186,6 +186,8 @@
- type: IconSmooth
key: walls
mode: NoSprite
+ - type: BindToStation
+ enabled: false
- type: entity
parent: [ BaseStructureDynamic, BasePressurePumpGaslock, BaseMachinePowered, ConstructibleMachine ]