12 KiB
Falukant: Steuerung von Ehezustand und Hausfrieden
Dieses Dokument beschreibt:
- wie Spieler
EhezustandundHausfriedendirekt beeinflussen können - welche Werte dafür im Backend sichtbar und änderbar sein müssen
- was der externe Daemon täglich und monatlich berechnen soll
Die Datei ist bewusst als gemeinsame Arbeitsgrundlage für UI, Backend und externen Daemon formuliert.
1. Zielbild
Es soll zwei getrennte, aber gekoppelte Systeme geben:
marriageSatisfaction- numerisch
0..100 - individueller Kernwert der Ehe
- numerisch
householdTension- aggregierter Haushaltszustand
- nach außen in UI als
low | medium | high - intern sinnvollerweise als numerischer Spannungswert
0..100
Interpretation:
marriageSatisfactionbeschreibt die Qualität der PaarbeziehunghouseholdTensionbeschreibt Spannungen im gesamten Haus- Liebschaften
- Unterversorgung
- Ordnung
- Kinderkonflikte
- Dienerschaft
2. Werte und Ableitungen
2.1 Ehe
Bestehend:
relationship_state.marriage_satisfaction
Neu sinnvoll:
relationship_state.marriage_public_stability- besteht bereits
- soll aktiv genutzt werden
- optional später:
last_affection_action_atlast_conflict_action_atlast_shared_time_at
UI-Ableitung:
0..19=>broken20..39=>fragile40..59=>strained60..79=>stable80..100=>harmonious
2.2 Hausfrieden
Der bisherige reine UI-Helfer
lowmediumhigh
reicht für eine echte Steuerung nicht aus.
Neu sinnvoll:
- interner Wert
householdTensionScore- Bereich
0..100 0= sehr ruhig100= offener Hauskonflikt
- Bereich
UI-Ableitung:
0..24=>low25..59=>medium60..100=>high
Falls kein eigener Persistenzwert angelegt werden soll, darf der Daemon den Score auch nur berechnen und als API-Feld zurückgeben.
3. Direkte Spieleraktionen
Es braucht direkte Spielzüge, die der Spieler bewusst auslösen kann.
Wichtig:
- nicht jede Aktion muss sofort große Werte ändern
- direkte Aktionen sollen kleine, klare Effekte haben
- der Daemon übernimmt Drift, Gegenkräfte und Folgewirkungen
3.1 Ehe-Aktionen
Diese Aktionen gehören fachlich in FamilyView.
A. Zeit mit Ehepartner verbringen
Zweck:
- Standardaktion zur Pflege der Beziehung
Regel:
- verfügbar nur bei aktiver Ehe
- Cooldown:
1x pro Tag - Kosten:
0oder sehr klein
Soforteffekt:
marriageSatisfaction +2householdTensionScore -1
Modifikatoren:
- wenn aktive sichtbare Liebschaft
visibility >= 45: nur+1 - wenn
householdOrder <= 35: kein Bonus auf Hausfrieden - wenn
marriageSatisfaction < 25: stattdessen nur+1
B. Geschenk an Ehepartner
Zweck:
- Geld gegen schnellere Stabilisierung
Regel:
- verfügbar nur bei aktiver Ehe
- Stufen:
small,decent,lavish - Cooldown:
1x pro 3 Tage
Soforteffekt:
small:marriageSatisfaction +2decent:marriageSatisfaction +4lavish:marriageSatisfaction +7
Nebeneffekt:
marriagePublicStability +1/+2/+3
Malus:
- bei gleichzeitig unterfinanzierter Liebschaft halbierter Effekt
C. Streit schlichten
Zweck:
- gezielte Krisenintervention
Regel:
- verfügbar nur wenn
householdTensionScore >= 35odermarriageSatisfaction <= 50 - Cooldown:
1x pro 2 Tage
Soforteffekt:
householdTensionScore -4marriageSatisfaction +1
Malus:
- wenn
visibilityeiner aktiven Liebschaft>= 60, dann nurhouseholdTensionScore -2
D. Fest nur für den Haushalt
Zweck:
- Hausfrieden über Geld und Repräsentation stützen
Regel:
- verfügbar bei vorhandenem Haus
- kleiner interner Hausakt, nicht großes Reputationsfest
- Cooldown:
1x pro Monat
Soforteffekt:
householdTensionScore -6marriageSatisfaction +2householdOrder +2
Malus:
- bei unterbesetzter Dienerschaft nur halbe Wirkung
3.2 Haus-Aktionen
Diese Aktionen gehören fachlich in HouseView.
A. Haus ordnen
Zweck:
- kleine direkte Ordnungsmaßnahme
Regel:
- Cooldown:
1x pro Tag - Kosten: niedrig
Soforteffekt:
householdOrder +3- wenn
householdOrder > 70: stattdessen nur+1
Indirekter Effekt:
- besserer Daily-Wert für
householdTensionScore
B. Diener einstellen
Bereits vorhanden.
Neue fachliche Wirkung:
- wenn vorher
servantCount < expectedMin- sofort
householdTensionScore -2
- sofort
C. Diener entlassen
Bereits vorhanden.
Neue fachliche Wirkung:
- wenn danach
servantCount < expectedMin- sofort
householdTensionScore +3
- sofort
D. Bezahlung erhöhen
Bereits vorhanden.
Neue fachliche Wirkung:
- wenn von
low -> normalodernormal -> high- sofort
householdOrder +2 householdTensionScore -1
- sofort
3.3 Familien-/Kinder-Aktionen
A. Uneheliches Kind anerkennen
Zweck:
- offenere, geordnetere Lösung statt versteckter Konfliktlage
Soforteffekt:
publicKnown = truelegitimacy = acknowledged_bastardhouseholdTensionScore -2, wenn Beziehung bereits öffentlich geordnethouseholdTensionScore +3, wenn Ehe schwach und Beziehung skandalös
Eheeffekt:
marriageSatisfaction -2bis-6je nach Sichtbarkeit und Stand
B. Erbenfrage regeln
Wenn uneheliche Kinder sichtbar werden, kann die UI später eine Handlung
Erbfolge klären bekommen.
Erste Version:
- nur vorgemerkt
- noch keine direkte Aktion nötig
3.4 Liebschafts-Aktionen mit Einfluss auf Ehe und Haus
Bestehend:
- Unterhalt ändern
- Beziehung anerkennen
- Beziehung beenden
Diese Aktionen sollen explizit folgende Sofortwirkung haben:
Unterhalt erhöhen
monthsUnderfundedbaut sich später im Daemon ab- sofort kein großer Ehebonus
- aber
householdTensionScore -1, wenn vorher Unterversorgung bestand
Beziehung anerkennen
visibilitysteigt nicht automatisch hart, aber öffentlicher Charakter nimmt zu- bei hohen Ständen geordnet eher neutral bis leicht positiv für Ehe-Stabilität
- bei niedrigen Ständen eher negativ
Sofortregel:
- Standesgruppe
0-1:marriageSatisfaction -3,householdTensionScore +2 - Standesgruppe
2:marriageSatisfaction -1,householdTensionScore +1 - Standesgruppe
3:marriagePublicStability +1,householdTensionScore -1, wenn Diskretion und Versorgung gut sind
Beziehung beenden
- sofort
householdTensionScore -3, wenn Liebschaft riskant war - sofort
marriageSatisfaction +1, wenn aktive Ehe existiert - aber bei hoher
affection >= 70auch möglicher Malus auf Stimmungssystem später
4. Daemon-Berechnung
4.1 Daily-Input
Der externe Daemon braucht pro Spielerfigur:
- aktive Ehebeziehung mit
marriageSatisfaction,marriagePublicStability - aktive Liebschaften mit:
loverRolevisibilitydiscretionmaintenanceLevelstatusFitmonthsUnderfundedacknowledged
- Kinderdaten:
legitimacybirthContextpublicKnown
- Hausdaten:
servantCountservantQualityservantPayLevelhouseholdOrder
- Charakterdaten:
titleOfNobilityreputation
4.2 Daily-Berechnung für Ehe
Grunddrift:
marriageDelta = 0
if marriageSatisfaction > 55: marriageDelta -= 1 every 3 days
if marriageSatisfaction < 55: marriageDelta += 1 every 5 days
Liebschaften:
for each active lover:
if visibility >= 60: marriageDelta -= 2
else if visibility >= 35: marriageDelta -= 1
if monthsUnderfunded >= 2: marriageDelta -= 1
if acknowledged = true and statusGroup <= 1: marriageDelta -= 1
if acknowledged = true and statusGroup = 3 and visibility <= 35 and maintenanceLevel >= 60:
marriageDelta += 0 or +1 every few days
Zu jung:
if minAge <= 15: marriageDelta -= 1
if minAge <= 13: marriageDelta -= 2
Haus:
if householdOrder >= 75: marriageDelta += 1
if householdOrder <= 35: marriageDelta -= 1
if householdTensionScore >= 60: marriageDelta -= 1
Dienerschaft:
if servantCount < expectedMin: marriageDelta -= 1
if servantPayLevel = high and servantQuality >= 70 and householdOrder >= 70:
marriageDelta += 1 every 3 days
Danach:
- clamp
0..100
4.3 Daily-Berechnung für Hausfrieden
Interner Wert:
householdTensionScore = base
Empfohlene Berechnung:
base = 10
for each active lover:
if visibility >= 60: base += 18
else if visibility >= 35: base += 10
else: base += 4
if monthsUnderfunded >= 1: base += 6
if monthsUnderfunded >= 2: base += 6
if acknowledged = true: base += 4
if statusFit = -1: base += 3
if statusFit = -2: base += 6
Kinder:
for each child where birthContext = 'lover':
if publicKnown = true: base += 6
else: base += 2
if legitimacy = 'acknowledged_bastard': base += 2
if legitimacy = 'hidden_bastard': base += 4
Haus:
if householdOrder >= 80: base -= 6
else if householdOrder >= 65: base -= 3
if householdOrder <= 35: base += 8
else if householdOrder <= 50: base += 4
Dienerschaft:
if servantCount < expectedMin: base += 5
if servantPayLevel = low: base += 2
if servantQuality >= 70 and servantPayLevel = high: base -= 3
Ehe:
if marriageSatisfaction <= 35: base += 6
if marriageSatisfaction >= 75: base -= 2
Danach:
- clamp
0..100 - UI-Ableitung auf
low/medium/high
4.4 Monthly-Berechnung
Monatlich soll der Daemon zusätzlich:
- Dienerkosten abbuchen
- Liebschaftskosten abbuchen
- bei Unterversorgung
householdTensionScorestärker erhöhen - langfristige Ordnungs- oder Eheboni addieren
Empfohlene Zusatzregeln:
if a lover was underfunded this month:
householdTensionScore += 4
if servantCount far below expectedMin for full month:
householdTensionScore += 3
if householdOrder >= 80 for full month:
marriageSatisfaction += 1
if householdOrder <= 30 for full month:
marriageSatisfaction -= 2
5. UI-Anforderungen
5.1 FamilyView
Neu sinnvolle Aktionen:
Zeit miteinander verbringenGeschenk machenStreit schlichtenLiebschaft beendenUneheliches Kind anerkennen
Zusätzlich hilfreiche Anzeige:
- kurze Ursachenliste für
Hausfrieden- z. B.
sichtbare Liebschaft Unruhe im Hauszu wenig Dieneranerkanntes uneheliches Kind
- z. B.
5.2 HouseView
Neu sinnvolle Aktionen:
Haus ordnen- vorhandene Dieneraktionen mit klarer Auswirkungstextzeile
Anzeige:
Haushaltsordnungerwartete DienerzahlAuswirkung auf Hausfrieden
6. Backend-Anforderungen
6.1 Direktaktionen
Dieses Projekt sollte Endpunkte für direkte Einflussaktionen bereitstellen:
POST /api/falukant/family/marriage/spend-timePOST /api/falukant/family/marriage/giftPOST /api/falukant/family/marriage/reconcilePOST /api/falukant/houses/order- später optional:
POST /api/falukant/family/children/acknowledge
6.2 API-Rückgabe
Family-API sollte zusätzlich liefern:
marriageSatisfactionmarriageStatemarriagePublicStabilityhouseholdTensionhouseholdTensionScore- optional:
householdTensionReasons[]
House-API sollte zusätzlich liefern:
householdOrderexpectedServantsMinexpectedServantsMaxmarriageComfortModifier
7. Priorisierte Umsetzung
Phase A
statusFit-Fehler korrigieren- direkte Ehe-Aktionen
Zeit,Geschenk,Streit schlichten - direkte Haus-Aktion
Haus ordnen - Family-API um
householdTensionScoreerweitern
Phase B
- externer Daemon berechnet Daily-Drift für Ehe und Hausfrieden
- Dienerschaft fließt in Hausfrieden ein
- Liebschaften und Unterversorgung wirken vollständig auf Hausfrieden
Phase C
- uneheliche Kinder als aktiver Konfliktfaktor
- Anerkennungsaktion
- genauere Ursachenlisten in der UI
8. Offene Balancing-Punkte
Diese Werte sind absichtlich noch nicht final:
- exakte Geldkosten für Ehe-Aktionen
- Stärke der Boni für hohe Stände
- Stärke des Malus bei sichtbaren Liebschaften
- Stärke der Dienerwirkung auf Ehe und Haus
Die Struktur sollte jetzt aber stabil genug sein, damit UI und Daemon unabhängig voneinander anfangen können.