Korrigiere Altersgruppenlogik in FalukantWidget: Überarbeite die Altersberechnung und passe die Kommentare für Klarheit an.

This commit is contained in:
Torsten Schulz (local)
2026-02-09 17:06:30 +01:00
parent c45a843611
commit da1d912bdb

View File

@@ -47,7 +47,7 @@ export default {
// Altersabhängige, (auf Wunsch) altertümlichere Bezeichnungen
const years = this._ageYearsFromWidgetValue(this.falukantData?.age);
const group = this._getAgeGroupKey(years);
const group = years == null ? null : this._getAgeGroupKey(years);
if (group && (g === 'female' || g === 'male')) {
const key = `falukant.genderAge.${g}.${group}`;
const t = this.$t(key);
@@ -70,17 +70,16 @@ export default {
methods: {
/**
* Backend liefert für Falukant das Alter als (Spiel-)Tage.
* Im Spiel entsprechen 365 Tage einem Jahr, damit die Alterung schneller/spielbar ist.
* In diesem Spiel entspricht 1 (Spiel-)Tag einem Jahr, damit die Alterung spielbar schnell ist.
*
* Wichtig: Wir runden auf das nächste Jahr, damit die Anzeige erwartbar ist
* (sonst wirkt sie oft "ein Jahr zu jung" kurz vor dem nächsten Jahr).
* Daher ist der übergebene Tageswert direkt das Alter in (Spiel-)Jahren.
*/
_ageYearsFromWidgetValue(ageValue) {
const n = Number(ageValue);
if (Number.isNaN(n)) return null;
// Spiel-Zeit: 365 Tage = 1 Jahr
const years = Math.round(n / 365);
// Spiel-Zeit: 1 Tag = 1 Jahr
const years = Math.floor(n);
return Number.isFinite(years) ? years : null;
},
_getAgeGroupKey(age) {