treasures.js : charge /api/reference/templates (TEMPLATES_DB) ; section
'Templates de drop' (templateCard reutilise GEAR_MOD_LABELS) ; menu .tz-nav
collant avec ancres vers chaque section (ids tz-sec-*) ; bouton flottant
#tz-top (remonter), visible apres 400px de scroll. window.scrollTo au lieu
du scrollTop d'element (la fenetre scrolle, .screen n'a pas d'overflow).
CSS : .tz-nav sticky, .tz-top, scroll-margin-top sur .tz-section.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- db.js : table templates + seed des 19 templates du CSV (mappes vers les
mods + nouveau champ tour), templatesAll/setTemplate/resetCategory.
- server.js : /api/reference/templates.
- mp.js : config templateChance (0-100, bornee) ; applyGearTemplates applique
jusqu'a 3 templates (6 si 2 mains), distincts, proba par emplacement,
fusionne les mods (dont tour) et compose le nom ; applique au spawnItem.
Solo vanilla.
- gear.js : GEAR_MOD_LABELS += tour (affichage 'TOUR +X mn').
- admin.html : champ Proba de template / emplacement.
- test/mp.js : test des templates (nb selon mains, distincts, proba 0).
Note : effet gameplay de tour (DLA) non cable, en attente de la regle.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
index.html reference css/js en ?v=__V__ ; handleStatic remplace __V__ par
APP_VERSION dans les reponses .html. Chaque deploiement change le jeton ->
le navigateur recharge le nouveau code sans vider le cache (cause du
'toujours pas' : ancien treasures.js en cache qui lisait le statique sans
les bonus magiques edites en base).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
adminSetTuning ne fait plus resetCategory + reapplique tout (ce qui
ecrasait les editions sqlite-web) : mises a jour ciblees des seuls objets
fournis (valeurs absolues), sans toucher au reste. Le bouton reset passe
par patch.reset (tableau de categories). admin.html : collectTuning
renvoie les objets MODIFIES dans la session (data-init) avec leurs
valeurs completes. Tests : non-regression (edition externe preservee)
+ mise a jour du test de reset.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- /api/reference/(gear|monsters|potions|scrolls) generalise ; treasures.js
lit aussi les plages de puissance potions/parchemins (powerLabel garde les
libelles speciaux -, X (fixe), set discret).
- Cache-Control: no-cache sur html/js/css (revalidation systematique) pour que
les MAJ et editions BDD soient prises sans vider le cache ; medias en cache 1j.
- POTION_POWER_DEFAULTS.pufPuff 0-2 -> 1-3 (incoherent avec le rollPower solo
corrige en 2.5.1) + migration db.init() des bases existantes (UPDATE cible).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Nouvel endpoint GET /api/reference/gear (db.gearAll()). treasures.js
recupere les equipements de la base de reference a chaque ouverture
(GEAR_DB) avec repli sur gear.js statique si injoignable (file://).
Les editions admin/sqlite-web sont desormais refletees sur le listing.
Intro de la section mise a jour (bonus phys + mag d'equipement).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PufPuff passe de potRand(0,2) a potRand(1,3) : le niveau 0 affichait
des formules absurdes (ATT -0 D3, VUE -(0+1), PV -2D3 si 0>=2). Biskot
(effet fixe, plage --) n'affiche plus de niveau du tout au lieu de
niv. 0. Table treasures.js pufPuff 0 a 2 -> 1 a 3.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Regle (demande Perco) : on lance les des puis on ajoute TOUJOURS les
deux bonus (physique = equipement, magique = potions/parchemins +
equipement magique), comme l'esquive le faisait deja. effTroll :
colonnes phys/mag rendues PURES (potion = magique, comptee une seule
fois) -> xxxFlat = phys + mag = total ajoute au jet. resolveAttack
additionne les deux (pickFlat supprime) ; opts.magic ne sert plus qu'a
choisir l'armure reductrice. Affichage : +total (phy +X . mag +Y)
coherent (fini le faux double comptage). Armure presentee comme
l'attaque : une seule ligne via fmtArmorLine au lieu de phy./mag.
separees. Tests smoke mis a jour vers le nouveau modele.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
fmtStatLine affichait a la fois le +X agrege ET (phy +X . mag +X) quand
les deux saveurs etaient egales -> illusion d'un triple comptage. On
n'affiche plus le detail phys/mag QUE lorsqu'ils different reellement,
sinon un seul +X. degBonus reporte des deux cotes. Le combat etait deja
juste (pickFlat choisit une seule saveur).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Les regles #stats (flex label/valeur, .stat-val monospace aligne a
droite, .stat-hint) ne ciblaient que le solo -> etendues a #mp-stats.
Suppression du reliquat CSS #mp-effects .eq-line/.fx-empty qui
desalignait le message vide. Les deux fiches sont desormais identiques.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Le mode multi reprend exactement le panneau a onglets « Caracteristiques /
Effets » du solo : meme structure HTML, badge du nombre d'effets, et
l'onglet Effets passe par renderEffectsPanel (cartes buff/malus + total)
au lieu de la liste simplifiee. switchLeftTab generalise avec un prefixe
("" solo / "mp-" multi) ; le serveur renvoie potionEffects complets pour
alimenter le total des modificateurs. Reste seule la difference de fond
Tour (solo) vs DLA temps reel (multi).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sur la fiche du troll du monde partagé, la décomposition phys/mag des
caracs (att/esq/deg/reg) disparaissait dès que les deux saveurs étaient
égales (ex. bonus de potion appliqué aux deux). Affichage désormais
systématique dès qu'un bonus existe. Panneaux latéraux 230 -> 270 px.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ATT/ESQ/DEG/REG d'équipement alimentent attFlat/esqFlat/degFlat/regFlat
dans effTroll (Gourdin = DEG +5 sur le jet, pas +5D3).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- js/scrolls.js : les 7 parchemins standards de Mountypedia (X 1-5),
effets via le système d'effets magiques, un seul jet de D3 par parchemin
- Effets de zone (rayon 3 cases) : Rune Explosive (dégâts aux monstres),
Yeu'Ki'Pic (VUE des monstres réduite, statut à durée)
- TOUR ±X*30 min converti en ±X PA par tour (PA min. 1)
- Drops : coffres (12 %), butin de monstres (25 %), pinceau éditeur,
validation serveur du kind « scroll »
- js/treasures.js : page encyclopédie des 25 potions et 7 parchemins
(niveau X, durée, formules), boutons accueil + en jeu
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Seules les notations « X D3 » de Mountypedia sont des jets de dés ;
« DEG +X » / « REG +X » sont des bonus fixes ajoutés au résultat
- Concerne Bonne Bouffe, Fertilité, Corruption, DjhinTonik,
Rhume/Grippe/Pneumonie, Biskot, KouleMann, Glacier
- Régénération bornée à 0 sous malus + affichage du signe corrigé
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Sang de Toh Réroh et PufPuff passent de D6 à D3 (conformes à Mountypedia)
- Un seul jet de XD3 par potion : le même total s'applique à ATT et ESQ
(Corruption, Rhume/Grippe/Pneumonie, PufPuff, Sang de Toh Réroh, Zet Crakdedand)
- Panneau des effets : suppression des mentions « (jet) » et « (jets inclus) »
- APP_VERSION réalignée sur le README (1.5.1)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Les 10 fiches compétences/sortilèges (coût en PA, type, jet de
résistance, effet de zone, limite par DLA, formules de jets, lore),
accessibles depuis l'accueil et en jeu. En partie, encart « Mes infos »
par talent de la race jouée : maîtrise actuelle et plafond, taux de
réussite sur les jets effectués, dernière utilisation et jets calculés
du troll. tryTalent compte désormais essais/réussites/dernier usage.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bloc détaillé à droite du journal pour chaque action : jets d'Attaque/
Esquive avec dés, coup critique, Seuil de Résistance et jet de
Résistance des sortilèges, progression de Maîtrise, dégâts, mise à
mort, butin et total de PX — y compris pour les attaques des monstres.
Ajout des coups critiques (dégâts ×2 si attaque ≥ 2 × esquive), du
butin de monstres (40 % : potion ou Mountyzédons) et du mode
?demo=combat pour les captures.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Table officielle : N-ième achat = N × base, caractéristique favorite à
12 PI, REG à 30 (Darkling 22), PV par tranche de 10 à 16 (Durakuir 12),
et armure naturelle en D3 achetable à 30 PI pour toutes les races
(réduction de dégâts jetée en D3 en plus de l'équipement).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Portes 🚪 (max 10/niveau) téléportant vers un autre niveau publié avec
troll conservé (PV, PI, équipement) ; clé d'auteur renvoyée au POST et
stockée en localStorage, PUT /api/levels/<id> protégé par X-Level-Secret,
section « Mes niveaux publiés » dans l'éditeur, objectifs de victoire
affinés (sortie > nettoyage, portes = continuation).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Éditeur visuel (terrain, monstres avec gabarits, objets, départ, sortie),
test en un clic, publication via une API node sans dépendance (server.js,
validation serveur, stockage JSON sur volume), écran « Niveaux de la
communauté » et liens partageables ?level=<id>. Le conteneur passe de
nginx à node:22-alpine.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Roguelike navigateur hommage à MountyHall : 5 races, combat aux dés
(ATT/ESQ/DEG D6), DLA à 6 PA, progression PX/PI, brouillard de guerre
basé sur la Vue, 5 profondeurs et boss Béhémoth. Vanilla JS sans
dépendance, tests de fumée node.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>