Files
yourpart3/docs/FALUKANT_LOVERS_IMPLEMENTATION_BACKLOG.md

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

  1. Migration für falukant_data.relationship_state anlegen
  2. Modell relationship_state.js anlegen
  3. Associations in associations.js ergänzen
  4. child_relation um legitimacy, birth_context, public_known erweitern
  5. Modell child_relation.js anpassen

Betroffene Dateien

Abhängigkeiten

  • keine

Done

  • Datenbank kann die neuen Felder speichern
  • Sequelize kann Relationship plus state laden
  • ChildRelation kennt neue Legitimitätsfelder

Paket B2: Backfill und Defaults

Ziel

Bestehende Ehen und Liebschaften mit Startwerten versorgen.

Aufgaben

  1. Backfill-Migration oder Reparaturskript für bestehende married-Beziehungen
  2. Backfill-Migration oder Reparaturskript für bestehende lover-Beziehungen
  3. Fallback-Logik im Backend ergänzen, falls für alte Datensätze noch kein State existiert

Betroffene Dateien

Abhängigkeiten

  • B1

Done

  • alle alten married- und lover-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

  1. getFamily() in falukantService.js um state-Daten erweitern
  2. für Ehebeziehungen marriageSatisfaction und marriageState liefern
  3. für lovers Rollen-, Kosten-, Sichtbarkeits- und Risikofelder liefern
  4. Hilfsmethoden für Standesgruppe und Vorschauwerte ergänzen

Betroffene Dateien

Abhängigkeiten

  • B1
  • B2

Done

  • GET /api/falukant/family liefert 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

  1. Ehebereich in FamilyView.vue um Ehe-Zufriedenheit ergänzen
  2. lovers-Bereich mit Rolle, Sichtbarkeit, Diskretion, Unterhalt, Reputationseffekt und Eheeffekt erweitern
  3. Kinderkennzeichnung für legitimate, hidden_bastard, acknowledged_bastard ergänzen
  4. I18n-Schlüssel in den Falukant-Locales ergänzen

Betroffene Dateien

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

  1. getRankGroup(...) implementieren
  2. calculateLoverMonthlyCost(...) implementieren
  3. calculateMarriageDelta(...) implementieren
  4. calculateReputationDeltaFromLover(...) implementieren
  5. calculateDailyVisibilityDelta(...) und calculateDailyDiscretionDelta(...) implementieren
  6. calculateDailyScandalChance(...) implementieren
  7. calculateMonthlyPregnancyChance(...) 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

  1. Übergabedokument für den externen Daemon erstellen
  2. Daily Input- und Output-Felder festlegen
  3. Idempotenzanforderungen für last_daily_processed_at festlegen
  4. Datenabhängigkeiten für Ehe, Liebschaften und Stand definieren
  5. 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

  1. Monthly Input- und Output-Felder festlegen
  2. Geldabbuchung und Moneyflow-Anforderungen beschreiben
  3. Unterversorgung und Zustandsänderungen beschreiben
  4. Kind-Erzeugung und Folgeeffekte beschreiben
  5. Idempotenzanforderungen für last_monthly_processed_at festlegen
  6. 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

  1. createChildFromLoverRelationship(...) implementieren
  2. processLoverBirths(...) in den Monthly Tick integrieren
  3. ChildRelation korrekt mit birthContext = lover anlegen
  4. legitimacy = hidden_bastard als Startwert setzen
  5. erste Folgeeffekte auf Ansehen und Ehezufriedenheit anwenden

Betroffene Dateien

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

  1. Notifikationstypen für Kosten, Unterversorgung, Gerücht, Skandal und Kind ergänzen
  2. Benachrichtigungstexte definieren
  3. Daily- und Monthly-Tick an die Notification-Logik anbinden

Betroffene Dateien

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

  1. setLoverMaintenance(...)
  2. setLoverDiscretionMode(...)
  3. acknowledgeLover(...)
  4. endLoverRelationship(...)
  5. giftLover(...)
  6. Router- und Controller-Anbindung

Betroffene Dateien

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

  1. Action-Buttons in FamilyView.vue ergänzen
  2. API-Aufrufe anbinden
  3. Feedback- und Confirm-Dialoge integrieren
  4. Zustandsänderungen direkt im UI sichtbar machen

Betroffene Dateien

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

  1. Backend-Methode acknowledgeLoverChild(...)
  2. Route und Controller
  3. UI-Aktion im Familienbereich
  4. direkte Folgeeffekte auf Ansehen und Ehe einbauen

Betroffene Dateien

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

  1. Admin- oder Tool-Zugriff auf relationship_state
  2. Debug-Skript für 30 Tage simulieren
  3. Plausibilitätsprüfungen für fehlende States
  4. 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

  1. Konfigurationspunkte für Kosten- und Reputationswerte zentralisieren
  2. Grundtests für Daily- und Monthly-Tick definieren
  3. Testfälle für Standesgruppen definieren
  4. Testfälle für weibliche und männliche Spielfiguren spiegeln
  5. Testfälle für Kinder aus Liebschaften definieren

Betroffene Dateien

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:

  1. B1
  2. B2
  3. B3
  4. B4
  5. B5
  6. B6
  7. B7
  8. B8
  9. B9
  10. B10
  11. B11
  12. B12
  13. B13
  14. B14

MVP-Schnitt

Wenn eine erste spielbare Version schneller geliefert werden soll, reicht zunächst:

  1. B1
  2. B2
  3. B3
  4. B4
  5. B5
  6. B6
  7. B7
  8. 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.