All checks were successful
Deploy to production / deploy (push) Successful in 2m53s
- Introduced FalukantCharacterVisual component to display character portraits and 3D figures based on user settings. - Updated DirectorInfo, ChurchView, PoliticsView, and other components to utilize the new character visual component. - Added visual settings management for users, allowing selection between portrait styles and display modes (portraits, 3D, or both). - Implemented age rules for engagement and marriage in the backend, ensuring compliance with specified age limits. - Created a new settings view for Falukant to manage visual preferences. - Added new images for medieval character portraits. - Updated translations for new settings and features in multiple languages.
79 lines
3.3 KiB
Markdown
79 lines
3.3 KiB
Markdown
# Falukant: Altersregeln für Werbung, Ehe und Kinder
|
|
|
|
## Verbindliche Spielregel
|
|
|
|
Ein realer Kalendertag entspricht einem Falukant-Spieljahr. Die Altersprüfung
|
|
verwendet daher die Differenz zwischen `CURRENT_DATE` und `birthdate` in Tagen.
|
|
|
|
| Bereich | Mindestalter | Regel |
|
|
| --- | ---: | --- |
|
|
| Werbung | 12 | Partner können vorgeschlagen und ein Vorschlag kann angenommen werden. |
|
|
| Hochzeit | 14 | Eine Verlobung kann durch eine Hochzeitsfeier vollzogen werden. |
|
|
| Gemeinsamer Haushalt und Kinder | 16 | Erst dann darf die Spielmechanik eine Schwangerschaft oder Geburt aus einer Ehe erzeugen. |
|
|
|
|
Die Regeln gelten für **beide** Personen einer Beziehung. Sie bilden bewusst
|
|
Spielphasen ab; es gibt keine individuelle Prüfung körperlicher Reife und keine
|
|
explizite Sexualmechanik.
|
|
|
|
## Bereits im Backend und Daemon umgesetzt
|
|
|
|
- `backend/services/falukantService.js`
|
|
- erzeugt Heiratsvorschläge nur für mindestens 12 Jahre alte Partner;
|
|
- prüft beim Annehmen eines Vorschlags beide Alter erneut;
|
|
- bietet den Hochzeitstyp erst ab 14 an und prüft beim Bestellen der Feier
|
|
beide Verlobte serverseitig;
|
|
- plant die Hochzeits-Schwangerschaft erst, wenn beide mindestens 16 sind.
|
|
- `src/valuerecalculationworker.h`
|
|
- vollzieht die Hochzeit nach der mindestens einen Tag alten Hochzeitsfeier
|
|
nur, wenn beide Verlobte mindestens 14 sind.
|
|
- `src/usercharacterworker.h`
|
|
- berücksichtigt für die bestehende zufällige Ehe-Kinderlogik ausschließlich
|
|
Paare, bei denen beide mindestens 16 sind.
|
|
|
|
## Auftrag für den externen Daemon
|
|
|
|
Falls der produktive Daemon aus diesem Repository herausgelöst ist, müssen die
|
|
folgenden Guards in dessen gleichnamige Queries übernommen werden.
|
|
|
|
### 1. Übergang `engaged` → `married`
|
|
|
|
Beim Verarbeiten einer Hochzeit sind beide Charaktere zu prüfen:
|
|
|
|
```sql
|
|
c.birthdate <= CURRENT_DATE - INTERVAL '14 days'
|
|
AND partner.birthdate <= CURRENT_DATE - INTERVAL '14 days'
|
|
```
|
|
|
|
Die bestehende Wartezeit von `party.created_at <= NOW() - INTERVAL '1 day'`
|
|
bleibt unverändert. Erfüllt ein Paar die Altersregel noch nicht, bleibt es
|
|
verlobt; die bereits angelegte Feier wird nicht verworfen und kann nach Erreichen
|
|
des Alters vollzogen werden.
|
|
|
|
### 2. Eheliche Schwangerschaften und Geburten
|
|
|
|
Jeder automatische Empfängnis- oder Geburtenkandidat muss beide Bedingungen
|
|
erfüllen:
|
|
|
|
```sql
|
|
mother.birthdate <= CURRENT_DATE - INTERVAL '16 days'
|
|
AND father.birthdate <= CURRENT_DATE - INTERVAL '16 days'
|
|
```
|
|
|
|
Das gilt sowohl für die Zufallslogik als auch für einen geplanten
|
|
`pregnancy_due_at`-Pfad. Beim geplanten Pfad soll der Daemon die Felder nicht
|
|
leeren, solange mindestens ein Elternteil noch unter 16 ist; die Schwangerschaft
|
|
wird erst verarbeitet, sobald beide die Grenze erreicht haben. Admin-Tools
|
|
können weiterhin ein bewusstes, separat protokolliertes Override anbieten.
|
|
|
|
### 3. Tests für den Daemon
|
|
|
|
- 13/13 Jahre, verlobt, Hochzeitsfeier älter als 24 Stunden: bleibt `engaged`.
|
|
- 14/14 Jahre, verlobt, Hochzeitsfeier älter als 24 Stunden: wird `married`.
|
|
- Verheiratet, ein Elternteil 15: keine automatische Schwangerschaft/Geburt.
|
|
- Verheiratet, beide 16: normaler Schwangerschafts-/Geburtspfad ist möglich.
|
|
|
|
## Bestehende Daten
|
|
|
|
Es ist keine Migration nötig. Bereits bestehende Ehen bleiben bestehen; die
|
|
Grenzen steuern ausschließlich neue Übergänge und automatische Kinderereignisse.
|