18 lines
719 B
JavaScript
18 lines
719 B
JavaScript
// Ages are whole game years (one real calendar day per year).
|
|
export function hasReachedFertility(character, age) {
|
|
const threshold = character?.fertileFromAge;
|
|
return Number.isInteger(threshold) && threshold > 0
|
|
&& Number.isFinite(age) && age >= threshold;
|
|
}
|
|
|
|
export function getCharacterDevelopment(character, age) {
|
|
const pubertyStartAge = character?.pubertyStartAge ?? null;
|
|
return {
|
|
pubertyStartAge,
|
|
fertileFromAge: character?.fertileFromAge ?? null,
|
|
hasReachedPuberty: Number.isInteger(pubertyStartAge) && pubertyStartAge > 0
|
|
&& Number.isFinite(age) && age >= pubertyStartAge,
|
|
hasReachedFertility: hasReachedFertility(character, age),
|
|
};
|
|
}
|