v2.6.2 : edition admin et BDD non conflictuelles (updates cibles)
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>
This commit is contained in:
+19
-2
@@ -258,11 +258,28 @@ function makeWorld(over = {}) {
|
||||
const tun2 = mp.adminSetTuning(w, { monsters: { "Dragon": { att: 5 }, "Gobelin": { att: 5000 } } });
|
||||
assert(!tun2.monsters.Dragon, "type inconnu ignoré");
|
||||
assert.strictEqual(tun2.monsters.Gobelin.att, 99, "ATT bornée à 99");
|
||||
// retour au vanilla
|
||||
const tun3 = mp.adminSetTuning(w, { monsters: {} });
|
||||
// retour au vanilla : reset explicite de la catégorie
|
||||
const tun3 = mp.adminSetTuning(w, { reset: ["monsters"] });
|
||||
assert.strictEqual(Object.keys(tun3.monsters).length, 0, "bestiaire d'origine restauré");
|
||||
}
|
||||
|
||||
// Tuning admin : mises à jour CIBLÉES — éditer un objet n'écrase pas les autres
|
||||
// (cohabitation avec les éditions directes en base, ex. sqlite-web).
|
||||
{
|
||||
const db = require("../db.js");
|
||||
const w = makeWorld({ monsterTarget: 0, itemTarget: 0 });
|
||||
// édition « externe » (façon sqlite-web) sur le Chapeau pointu
|
||||
db.setGear("casque", "Chapeau pointu", { mmPct: 20 });
|
||||
// l'admin sauve un AUTRE objet : le chapeau ne doit PAS être réinitialisé
|
||||
mp.adminSetTuning(w, { gear: { "arme/Gourdin": { att: 7 } } });
|
||||
assert.strictEqual(db.gearRow("casque", "Chapeau pointu").mmPct, 20, "édition externe préservée");
|
||||
assert.strictEqual(db.gearRow("arme", "Gourdin").att, 7, "objet édité par l'admin appliqué");
|
||||
// reset explicite : tout revient au vanilla
|
||||
mp.adminSetTuning(w, { reset: ["gear"] });
|
||||
assert.strictEqual(db.gearRow("casque", "Chapeau pointu").mmPct, 5, "reset gear → vanilla (chapeau)");
|
||||
assert.strictEqual(db.gearRow("arme", "Gourdin").att, 2, "reset gear → vanilla (gourdin)");
|
||||
}
|
||||
|
||||
// Tuning admin : puissance des potions/parchemins et bonus d'équipement
|
||||
{
|
||||
const w = makeWorld({ monsterTarget: 0, itemTarget: 0 });
|
||||
|
||||
Reference in New Issue
Block a user