feat(economy): add Bestellsystem mit Lieferzeit

- SupplierService: Bestellungen mit Lieferzeit-Berechnung
- OrderTerminal: Spieler-Interaktion zum Aufgeben von Bestellungen
- StorageCrateRegistry + StorageCrate.Restock: Server registriert Kisten
  und füllt sie bei Lieferung wieder auf
- GameClock.TotalHours: durchgehende Spielzeit für Lieferzeit-Berechnung
- ROADMAP: Bestellsystem-Punkt als erledigt markiert

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-14 19:17:36 +02:00
co-authored by Claude Sonnet 5
parent 2b48b76a91
commit 7e4cebbf13
11 changed files with 202 additions and 2 deletions
@@ -0,0 +1,37 @@
using AfterHours.Economy;
using NUnit.Framework;
namespace AfterHours.Tests
{
public sealed class PurchaseOrderTests
{
[Test]
public void Total_SumsAllLines()
{
var order = new PurchaseOrder();
order.Add(1, 10, 2f);
order.Add(2, 5, 4f);
Assert.AreEqual(40f, order.Total(), 0.0001f);
}
[Test]
public void Add_IgnoresNonPositiveQuantity()
{
var order = new PurchaseOrder();
order.Add(1, 0, 5f);
order.Add(1, -3, 5f);
Assert.AreEqual(0, order.Lines.Count);
}
[Test]
public void LineTotal_IsQuantityTimesUnitPrice()
{
var order = new PurchaseOrder();
order.Add(7, 3, 2.5f);
Assert.AreEqual(7.5f, order.Lines[0].LineTotal, 0.0001f);
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 3635a8816e4d1744cb4d319118ae2768