2.0 KiB
Falukant: Dienerschaft im YpDaemon
Umsetzung gemäß Projektspezifikation (Daily/Monthly, Handoff).
Wichtig (Spielzeit / Kosten): Falukant arbeitet mit 1 Spieltag = 1 Spieljahr; Monatsläufe entsprechen ungefähr einem 2-h-Schritt. Dienerkosten sind kein realistischer Vollmonatslohn, sondern ein abstrakter Monatstick — siehe FALUKANT_DAEMON_AENDERUNGSNOTIZ_ZEITMASSSTAB.md.
Umsetzung: run_monthly wird alle 2 h ausgeführt (gemeinsam mit Liebschafts-Raten im FalukantFamilyWorker). SQL: servants_last_monthly_at älter als 2 h oder NULL. Abgebucht wird 1/12 des berechneten Monatsbudgets pro Tick (servants_monthly in money_history). Spaltenname servants_last_monthly_at bleibt historisch; semantisch = letzter Monatstick.
Voraussetzungen
- Backend: Stammdaten in
falukant_data.user_house(servant_count,servant_quality,servant_pay_level,household_order) — z. B. Migration aus YourPart3. - Daemon:
migrations/004_falukant_servants_daemon.sqlausführen (Tick-Spalten +servant_discretion_modifier+servants_underfunded).
Code
- Logik:
src/worker/falukant_servants.rs - SQL:
src/worker/sql.rs(Abschnitt Dienerschaft) - Ausführung:
run_dailybeim täglichen Familien-Tick;run_monthlyim 2-h-Monatstick zusammen mit Liebschafts-Installments (nicht mehr im seltenen Kalender-process_monthly).
WebSocket
Wie Spec: falukantUpdateFamily mit reason: daily oder monthly, danach falukantUpdateStatus — kein eigener Diener-reason.
Liebschaften (B7 Teil)
QUERY_GET_ACTIVE_LOVER_ROWS_FOR_DAILY liefert servant_disc_u1 / servant_disc_u2 (MAX servant_discretion_modifier je user_house des Partners). Die Sichtbarkeits-Drift addiert (u1+u2)/2 / 4 auf v_net.
Noch offen (Backlog)
- B8 Untergrund: siehe
FALUKANT_UNDERGROUND_INVESTIGATE_AFFAIR.md(investigate_affairimUndergroundWorker). - Feinbalancing (B9).