Korrigiere Altersgruppenlogik in FalukantWidget: Überarbeite die Altersberechnung und passe die Kommentare für Klarheit an.
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user