14 KiB
Falukant: Implementierungs-Backlog für Liebhaber, Mätressen, Ehezufriedenheit und Kinder aus Liebschaften
Zweck
Dieses Backlog übersetzt die Fach- und Technikdokumente in konkrete Umsetzungspakete.
Grundlagen:
Das Backlog ist absichtlich in Reihenfolge angeordnet. Spätere Pakete bauen auf früheren auf.
Rahmen
Nicht Teil der ersten Umsetzung:
- eigenes Dienerschaftssystem
- finales Balancing
- große Ereignisketten rund um Kirche, Gericht oder Hofintrigen
Paket B1: Datenmodell vorbereiten
Ziel
Die Datenbasis für Ehezufriedenheit, Liebschaftsstatus und Kinder aus Liebschaften anlegen.
Aufgaben
- Migration für
falukant_data.relationship_stateanlegen - Modell relationship_state.js anlegen
- Associations in associations.js ergänzen
child_relationumlegitimacy,birth_context,public_knownerweitern- Modell child_relation.js anpassen
Betroffene Dateien
- backend/models/associations.js
- backend/models/falukant/data/child_relation.js
- neue Migrationen in backend/migrations
- neue Datei backend/models/falukant/data/relationship_state.js
Abhängigkeiten
- keine
Done
- Datenbank kann die neuen Felder speichern
- Sequelize kann
Relationshipplusstateladen ChildRelationkennt neue Legitimitätsfelder
Paket B2: Backfill und Defaults
Ziel
Bestehende Ehen und Liebschaften mit Startwerten versorgen.
Aufgaben
- Backfill-Migration oder Reparaturskript für bestehende
married-Beziehungen - Backfill-Migration oder Reparaturskript für bestehende
lover-Beziehungen - Fallback-Logik im Backend ergänzen, falls für alte Datensätze noch kein State existiert
Betroffene Dateien
- neue Migration oder Tool in backend/migrations oder backend/tools
- backend/services/falukantService.js
Abhängigkeiten
- B1
Done
- alle alten
married- undlover-Beziehungen haben nutzbare Zustandswerte - Family-Lesezugriffe brechen nicht bei fehlendem State
Paket B3: Family-Lesepfade erweitern
Ziel
Die bestehenden API-Daten für Familie so erweitern, dass das Frontend sofort lesen und anzeigen kann.
Aufgaben
getFamily()in falukantService.js umstate-Daten erweitern- für Ehebeziehungen
marriageSatisfactionundmarriageStateliefern - für
loversRollen-, Kosten-, Sichtbarkeits- und Risikofelder liefern - Hilfsmethoden für Standesgruppe und Vorschauwerte ergänzen
Betroffene Dateien
Abhängigkeiten
- B1
- B2
Done
GET /api/falukant/familyliefert die neuen Datenfelder- keine UI-Aktion nötig, aber Daten sind vollständig lesbar
Paket B4: Family-UI lesend ausbauen
Ziel
Die neuen Daten im Familienbereich sichtbar machen, ohne schon alle Interaktionen einzubauen.
Aufgaben
- Ehebereich in FamilyView.vue um
Ehe-Zufriedenheitergänzen lovers-Bereich mit Rolle, Sichtbarkeit, Diskretion, Unterhalt, Reputationseffekt und Eheeffekt erweitern- Kinderkennzeichnung für
legitimate,hidden_bastard,acknowledged_bastardergänzen - I18n-Schlüssel in den Falukant-Locales ergänzen
Betroffene Dateien
- frontend/src/views/falukant/FamilyView.vue
- frontend/src/i18n/locales/de/falukant.json
- frontend/src/i18n/locales/en/falukant.json
- frontend/src/i18n/locales/es/falukant.json
Abhängigkeiten
- B3
Done
- FamilyView zeigt neue Zustände lesbar an
- uneheliche Kinder sind UI-seitig unterscheidbar
Paket B5: Berechnungslogik im Service kapseln
Ziel
Alle Formeln in wiederverwendbare Backend-Helfer auslagern, bevor Daemon-Jobs gebaut werden.
Aufgaben
getRankGroup(...)implementierencalculateLoverMonthlyCost(...)implementierencalculateMarriageDelta(...)implementierencalculateReputationDeltaFromLover(...)implementierencalculateDailyVisibilityDelta(...)undcalculateDailyDiscretionDelta(...)implementierencalculateDailyScandalChance(...)implementierencalculateMonthlyPregnancyChance(...)implementieren
Betroffene Dateien
Abhängigkeiten
- B1
- B2
Done
- Daemon-Jobs können auf zentrale Helper zugreifen
- keine Formel liegt verstreut in mehreren Jobs
Paket B6: Daily-Tick-Übergabe an externen Daemon
Ziel
Die tägliche Spiellogik so spezifizieren und übergeben, dass der externe Daemon sie korrekt ausführen kann.
Aufgaben
- Übergabedokument für den externen Daemon erstellen
- Daily Input- und Output-Felder festlegen
- Idempotenzanforderungen für
last_daily_processed_atfestlegen - Datenabhängigkeiten für Ehe, Liebschaften und Stand definieren
- Benachrichtigungs- und Ereignisfolgen beschreiben
Betroffene Dateien
Abhängigkeiten
- B5
Done
- der externe Daemon hat eine vollständige Daily-Tick-Übergabe
- Daily-Logik ist ohne Rückfragen implementierbar
Paket B7: Monthly-Tick-Übergabe an externen Daemon
Ziel
Die monatliche Spiellogik so spezifizieren und übergeben, dass der externe Daemon sie korrekt ausführen kann.
Aufgaben
- Monthly Input- und Output-Felder festlegen
- Geldabbuchung und Moneyflow-Anforderungen beschreiben
- Unterversorgung und Zustandsänderungen beschreiben
- Kind-Erzeugung und Folgeeffekte beschreiben
- Idempotenzanforderungen für
last_monthly_processed_atfestlegen - Transaktionsanforderungen definieren
Betroffene Dateien
Abhängigkeiten
- B5
Done
- der externe Daemon hat eine vollständige Monthly-Tick-Übergabe
- Monatslogik ist ohne Rückfragen implementierbar
Paket B8: Kinder aus Liebschaften technisch ermöglichen
Ziel
Kinder aus aktiven Liebschaften erzeugen und korrekt markieren.
Aufgaben
createChildFromLoverRelationship(...)implementierenprocessLoverBirths(...)in den Monthly Tick integrierenChildRelationkorrekt mitbirthContext = loveranlegenlegitimacy = hidden_bastardals Startwert setzen- erste Folgeeffekte auf Ansehen und Ehezufriedenheit anwenden
Betroffene Dateien
- backend/services/falukantService.js
- backend/models/falukant/data/child_relation.js
- docs/FALUKANT_LOVERS_DAEMON_HANDOFF.md
Abhängigkeiten
- B7
Done
- Kinder aus Liebschaften können entstehen
- sie sind von legitimen Kindern technisch unterscheidbar
Paket B9: Notifications und Folgeereignisse MVP
Ziel
Die wichtigsten Ergebnisse für Spieler sichtbar machen.
Aufgaben
- Notifikationstypen für Kosten, Unterversorgung, Gerücht, Skandal und Kind ergänzen
- Benachrichtigungstexte definieren
- Daily- und Monthly-Tick an die Notification-Logik anbinden
Betroffene Dateien
- docs/FALUKANT_LOVERS_DAEMON_HANDOFF.md
- bestehende Notification-Modelle oder Services im Backend
- ggf. frontend/src/views/falukant/OverviewView.vue indirekt, falls Benachrichtigungen dort auftauchen
Abhängigkeiten
- B6
- B7
- B8
Done
- Spieler sehen relevante Familienfolgen aktiv
Paket B10: Lover-Aktionen im Backend
Ziel
Interaktive Steuerung von Liebschaften serverseitig ermöglichen.
Aufgaben
setLoverMaintenance(...)setLoverDiscretionMode(...)acknowledgeLover(...)endLoverRelationship(...)giftLover(...)- Router- und Controller-Anbindung
Betroffene Dateien
- backend/services/falukantService.js
- backend/controllers/falukantController.js
- backend/routers/falukantRouter.js
Abhängigkeiten
- B3
- B5
Done
- Backend bietet alle Kernaktionen für Lovers an
Paket B11: Lover-Aktionen im Frontend
Ziel
Die neuen Interaktionen in FamilyView und ggf. Dialogen bedienbar machen.
Aufgaben
- Action-Buttons in FamilyView.vue ergänzen
- API-Aufrufe anbinden
- Feedback- und Confirm-Dialoge integrieren
- Zustandsänderungen direkt im UI sichtbar machen
Betroffene Dateien
- frontend/src/views/falukant/FamilyView.vue
- ggf. neue API-Helfer in
frontend/src/api
Abhängigkeiten
- B10
Done
- Unterhalt, Anerkennung, Diskretion und Beenden sind im UI nutzbar
Paket B12: Anerkennung unehelicher Kinder
Ziel
Uneheliche Kinder später sichtbar anerkennen können.
Aufgaben
- Backend-Methode
acknowledgeLoverChild(...) - Route und Controller
- UI-Aktion im Familienbereich
- direkte Folgeeffekte auf Ansehen und Ehe einbauen
Betroffene Dateien
- backend/services/falukantService.js
- backend/controllers/falukantController.js
- backend/routers/falukantRouter.js
- frontend/src/views/falukant/FamilyView.vue
Abhängigkeiten
- B8
- B11
Done
- uneheliche Kinder können anerkannt werden
- Status und Folgen ändern sich sichtbar
Paket B13: Admin- und Testhilfen
Ziel
Die neue Mechanik testbar und debugbar machen.
Aufgaben
- Admin- oder Tool-Zugriff auf
relationship_state - Debug-Skript für
30 Tage simulieren - Plausibilitätsprüfungen für fehlende States
- Reparaturskript für inkonsistente Kinderdaten
Betroffene Dateien
Abhängigkeiten
- B6
- B7
- B8
Done
- Entwickler können Systemzustände nachvollziehen und korrigieren
Paket B14: QA und Balancing-Vorbereitung
Ziel
Noch kein finales Balancing, aber die technische Basis für spätere Feinjustierung schaffen.
Aufgaben
- Konfigurationspunkte für Kosten- und Reputationswerte zentralisieren
- Grundtests für Daily- und Monthly-Tick definieren
- Testfälle für Standesgruppen definieren
- Testfälle für weibliche und männliche Spielfiguren spiegeln
- Testfälle für Kinder aus Liebschaften definieren
Betroffene Dateien
- docs/FALUKANT_LOVERS_DAEMON_HANDOFF.md
- ggf. Testverzeichnis im Backend
Abhängigkeiten
- B6
- B7
- B8
Done
- Werte sind zentral auffindbar
- spätere Balancing-Runden können auf Testfällen aufsetzen
Empfohlene Reihenfolge
Für eine saubere erste Lieferung:
- B1
- B2
- B3
- B4
- B5
- B6
- B7
- B8
- B9
- B10
- B11
- B12
- B13
- B14
MVP-Schnitt
Wenn eine erste spielbare Version schneller geliefert werden soll, reicht zunächst:
- B1
- B2
- B3
- B4
- B5
- B6
- B7
- B8
Damit wären bereits vorhanden:
- sichtbare Liebhaber-Details
- Ehezufriedenheit
- laufende Kosten
- laufende Ansehensänderung
- Kinder aus Liebschaften
Noch nicht enthalten im MVP:
- volle Interaktionssteuerung
- Anerkennung unehelicher Kinder
- Admin-Tools
- spätere Balancing-Infrastruktur
Nächster konkreter Schritt
Wenn direkt implementiert werden soll, ist der erste technische Einstieg:
- B1 Datenmodell vorbereiten
Das ist der sauberste Startpunkt, weil danach alle weiteren Pakete darauf aufbauen können.