4.5 KiB
4.5 KiB
Falukant: Daemon-Handoff für Ehe und Hausfrieden
Dieses Dokument beschreibt den Stand nach Phase A und die Rolle des externen Daemons (Übergabe Backend ↔ YpDaemon).
1. Was im Projekt jetzt vorhanden ist
Backend-/API-seitig vorhanden:
relationship_state.marriage_satisfactionrelationship_state.marriage_public_stability- aktive Liebschaften mit:
visibilitydiscretionmaintenance_levelstatus_fitmonths_underfundedacknowledged
user_housemit:servant_countservant_qualityservant_pay_levelhousehold_order
- Family-API liefert jetzt zusätzlich:
householdTensionhouseholdTensionScorehouseholdTensionReasons
Direkte Spieleraktionen vorhanden:
POST /api/falukant/family/marriage/spend-timePOST /api/falukant/family/marriage/giftPOST /api/falukant/family/marriage/reconcilePOST /api/falukant/houses/order
2. Daily-Input für den externen Daemon
Pro betroffenem Falukant-User:
falukant_user.iduser.id/user.hashed_id- aktive Ehe-
relationshipmitrelationship_state - aktive Liebschaften mit
relationship_state - Kinder mit:
birth_contextlegitimacypublic_known
- Haus mit:
servant_countservant_qualityservant_pay_levelhousehold_order
- Charakter mit:
reputationtitle_of_nobility
3. Was der Daemon täglich berechnen soll
Ehe
- Drift von
marriage_satisfaction - Drift von
marriage_public_stability - Einfluss aus:
- sichtbaren Liebschaften
- unterfinanzierten Liebschaften
- Standesunterschieden
- Dienerschaft / Haushaltsordnung
- zu jungen Liebschaften
Hausfrieden
Der Daemon soll intern einen numerischen Spannungswert pflegen oder berechnen:
householdTensionScore0..100
Einflussfaktoren:
- sichtbare Liebschaften
- anerkannte Liebschaften
- unterfinanzierte Liebschaften
- Kinder aus Liebschaften
- Haushaltsordnung
- Dienerschaft
- schwache Ehe
UI-Ableitung:
0..24=>low25..59=>medium60..100=>high
4. Was der Daemon zurückschreiben soll
Pflicht:
relationship_state.marriage_satisfactionrelationship_state.marriage_public_stability- lover-state-Felder bei Änderungen:
visibilitydiscretionmonths_underfunded- optional
notes_json/flags_json
- falls eigener Persistenzwert eingeführt wird:
household_tension_score
Wenn kein eigener Persistenzwert eingeführt wird:
- der Daemon darf den Spannungswert auch nur berechnen
- die API kann ihn weiterhin aus Ehe, Liebschaften, Kindern und Haus ableiten
5. Socket-/Refresh-Verhalten
Wenn Daily-/Monthly-Verarbeitung Ehe oder Hausfrieden betrifft:
falukantUpdateFamilymitreason: "daily"oderreason: "monthly"- danach
falukantUpdateStatus
Wenn ein Sonderereignis entsteht:
reason: "scandal"zusätzlich
6. Wichtige Phase-A-Regel
Die neuen Direktaktionen geben nur Sofortimpulse:
spend-timegiftreconcilehouse/order
Der Daemon ist weiterhin verantwortlich für:
- Rückdrift
- Gegenkräfte
- Langzeiteffekte
- Balancing
Kurz:
- UI/Backend setzen kleine direkte Impulse
- der Daemon bestimmt die dauerhafte Entwicklung
Anhang: Abgleich YpDaemon (dieses Repo)
| Thema | Stand in YpDaemon |
|---|---|
Ehe-Zufriedenheit, Buffs, Drift (marriage_drift_*) |
FalukantFamilyWorker + Migrationen 001/003, siehe FALUKANT_DAEMON_HANDOFF.md |
marriage_public_stability (Daily-Drift) |
Migration 005, QUERY_GET_MARRIAGE_ROWS / QUERY_UPDATE_MARRIAGE_STATE_AND_BUFFS, Logik in falukant_family.rs (Einfluss: sichtbare/unterfinanzierte/anerkannte Liebschaften, Stand, Alter, Haushalt/Diener, schwache Ehe) |
household_tension_score (0..100) |
Migration 005, berechnet im Daily-Tick, persistiert in user_house; UI-Band low/medium/high weiterhin aus Score ableitbar (0–24 / 25–59 / 60–100) |
Liebschaften (visibility, discretion, …, acknowledged, months_underfunded) |
Daily-Query erweitert; Tension-Aggregation nutzt diese Felder |
Dienerschaft / household_order |
falukant_servants.rs + Migration 004; zusätzlich in Ehe-Stabilität und Haus-Spannung |
| WebSocket | Bei Änderung von Ehe oder Spannung: falukantUpdateFamily mit reason: "daily" (wie bisher) |
HTTP-Routen (spend-time, gift, …) |
Liegen im Backend (nicht im Daemon-Repo) |
Verwandte Doku: FALUKANT_UI_WEBSOCKET.md, FALUKANT_SERVANTS_DAEMON.md.