v2.11.1 : nom monstre 'Nom [Age]' + gestion du feminin

bestiary.js regenere avec champ gender (m/f, liste curatee de ~31
feminins) + export AGE_NAMES_F. db.js : gender en colonne (BESTIARY_TXT_KEYS)
+ migration ALTER TABLE ... ADD COLUMN gender AVANT le seed, puis UPDATE
du genre des lignes existantes. game.js buildBestiaryMonster(.., ageNamesF, ..)
: nom = 'Nom [Age]' avec age accorde au genre. mp.js + makeMonster passent
AGE_NAMES_F. treasures.js : age affiche au feminin. admin : champ Genre.
Tests : format + feminin (Plante [Doyenne]).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
perco
2026-06-15 21:05:00 +02:00
co-authored by Claude Opus 4.8
parent 116ac7d063
commit 867569c3c9
8 changed files with 38 additions and 13 deletions
+9 -1
View File
@@ -64,7 +64,7 @@ function templateCard(t) {
/* Carte d'un monstre du bestiaire : blason + stats (plages) + âges + capacités. */
function monsterCard(m) {
const rg = (a, b, s = "") => (a === b ? `${a}${s}` : `${a}-${b}${s}`);
const ages = BESTIARY_AGE_NAMES[m.family] || [];
const ages = ((m.gender === "f" ? BESTIARY_AGE_NAMES_F : BESTIARY_AGE_NAMES)[m.family]) || [];
const ageTxt = m.minAge === m.maxAge ? (ages[m.minAge] || "—")
: `${ages[m.minAge] || m.minAge}${ages[m.maxAge] || m.maxAge}`;
const fx = [
@@ -231,6 +231,14 @@ const BESTIARY_AGE_NAMES = {
Monstre: ["Nouveau", "Jeune", "Adulte", "Vétéran", "Briscard", "Doyen", "Légendaire", "Mythique"],
"Mort-Vivant": ["Naissant", "Récent", "Ancien", "Vénérable", "Séculaire", "Antique", "Ancestral", "Antédiluvien"],
};
const BESTIARY_AGE_NAMES_F = {
Insecte: ["Larve", "Immature", "Juvénile", "Imago", "Développée", "Mûre", "Accomplie", "Achevée"],
Animal: ["Bébé", "Enfançon", "Jeune", "Adulte", "Mature", "Chef de harde", "Ancienne", "Ancêtre"],
"Démon": ["Initiale", "Novice", "Mineure", "Favorite", "Majeure", "Supérieure", "Suprême", "Ultime"],
Humanoide: ["Nouvelle", "Jeune", "Adulte", "Vétérane", "Briscarde", "Doyenne", "Légendaire", "Mythique"],
Monstre: ["Nouvelle", "Jeune", "Adulte", "Vétérane", "Briscarde", "Doyenne", "Légendaire", "Mythique"],
"Mort-Vivant": ["Naissante", "Récente", "Ancienne", "Vénérable", "Séculaire", "Antique", "Ancestrale", "Antédiluvienne"],
};
const FAMILY_EMOJI = { Insecte: "🐛", Animal: "🐾", "Démon": "👿", Humanoide: "🧝", Monstre: "👹", "Mort-Vivant": "💀" };
async function fetchRef(cat) {