1.6 KiB
1.6 KiB
Falukant: Produktionszertifikate (Daemon)
Der FalukantCertificateWorker berechnet einmal täglich die Zielstufe und schreibt falukant_user.certificate fort (max. +1 pro Tag, keine normale Herabstufung).
SQL
QUERY_GET_PRODUCTION_CERTIFICATE_INPUT_ROWS– Eingangsdaten je Falukant-User (Spielercharakter, Wissen, Produktionen, Ämter, Haus …)QUERY_UPDATE_FALUKANT_USER_CERTIFICATE– Update der Stufe
Logik (Kurz)
certificateScoreaus gewichteten Punktwerten (Wissen, Produktion, Amt, Adel, Ruf, Haus)raw_targetaus Score-Schwellen (1.2 / 2.1 / 3.0 / 4.0)effective_targetmit Mindestanforderungen je Stufe (Spec §4.5)- Aufstieg nur wenn
effective_target > current→current + 1(gegeneffective_targetbegrenzt) - Bankrott (
money <= -5000): Zertifikat auf 1, mit Event
Politische Ämter
Rang aus political_office_type.name (Substring-Heuristik im Daemon, ohne DB-Änderung). Anpassung über political_name_to_rank in falukant_certificate.rs.
Kirchliche Ämter
officePoints aus max(hierarchy_level) der aktiven church_office-Zeilen (gekappt 0–5).
Abgeschlossene Produktionen
COUNT(*) aus falukant_log.production mit producer_id = falukant_user.id (Zeilen = aggregierte Log-Einträge).
Events (WebSocket)
Bei Änderung der Stufe:
falukantUpdateProductionCertificatemitreason: "daily_recalculation",old_certificate,new_certificatefalukantUpdateStatus
Nicht umgesetzt (optional / später)
- Tod ohne Erben / Zertifikats-Reset
- Feinere Bankrott-Definition
political_office_history(nicht im Repo)