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