Files
yourpart-daemon/docs/FALUKANT_SERVANTS_DAEMON.md

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

  1. Backend: Stammdaten in falukant_data.user_house (servant_count, servant_quality, servant_pay_level, household_order) — z. B. Migration aus YourPart3.
  2. Daemon: migrations/004_falukant_servants_daemon.sql ausfü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_daily beim täglichen Familien-Tick; run_monthly im 2-h-Monatstick zusammen mit Liebschafts-Installments (nicht mehr im seltenen Kalender-process_monthly).

WebSocket

Wie Spec: falukantUpdateFamily mit reason: daily oder monthly, danach falukantUpdateStatuskein 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)