From f8e35c961aae055328827f34a631dbeffc81618e Mon Sep 17 00:00:00 2001 From: sladecraven Date: Sun, 3 Jan 2021 09:58:07 +0100 Subject: [PATCH] #95 : Utilisation uniquement des armes equipees pour attaque/initiative/combat --- module/rdd-combat.js | 7 +++-- module/rdd-utility.js | 47 +++++++++++++++------------- templates/actor-sheet.html | 14 +++++++++ templates/item-meditation-sheet.html | 22 +++++++++++++ 4 files changed, 65 insertions(+), 25 deletions(-) diff --git a/module/rdd-combat.js b/module/rdd-combat.js index 4f712223..ef069170 100644 --- a/module/rdd-combat.js +++ b/module/rdd-combat.js @@ -287,16 +287,17 @@ export class RdDCombat { /* -------------------------------------------- */ _filterArmesParade(items, competence) { + let itemsEquipped = items.filter(item => item.equipe == true ); switch (competence.data.categorie) { case 'tir': case 'lancer': - return items.filter(item => RdDItemArme.getCategorieParade(item) == 'boucliers') + return items.filter(item => RdDItemArme.getCategorieParade(itemsEquipped) == 'boucliers') default: // Le fléau ne peut être paré qu’au bouclier p115 if (competence.name == "Fléau"){ - return items.filter(item => RdDItemArme.getCategorieParade(item) == 'boucliers') + return items.filter(item => RdDItemArme.getCategorieParade(itemsEquipped) == 'boucliers') } - return items.filter(item => RdDItemArme.getCategorieParade(item)); + return items.filter(item => RdDItemArme.getCategorieParade(itemsEquipped)); } } diff --git a/module/rdd-utility.js b/module/rdd-utility.js index d92c68d0..874e5387 100644 --- a/module/rdd-utility.js +++ b/module/rdd-utility.js @@ -259,6 +259,7 @@ export class RdDUtility { data.data.tetes = this.checkNull(data.itemsByType['tete']); data.data.taches = this.checkNull(data.itemsByType['tache']); data.data.monnaie = this.checkNull(data.itemsByType['monnaie']); + data.data.meditations = this.checkNull(data.itemsByType['meditation']); data.data.objets = data.data.conteneurs.concat(data.data.materiel).concat(data.data.armes).concat(data.data.armures).concat(data.data.munitions).concat(data.data.livres).concat(data.data.potions).concat(data.data.herbes).concat(data.data.ingredients); } @@ -449,31 +450,33 @@ export class RdDUtility { static finalizeArmeList( armeList, competenceList, carac ) { // Gestion des armes 1/2 mains let arme2mains = []; // Tableau contenant la duplication des armes 1m/2m + let armesEquipe = []; for (const arme of armeList) { - let comp = competenceList.find(c => c.name == arme.data.competence); - arme.data.initiative = RdDUtility.calculInitiative(arme.data.niveau, carac[comp.data.defaut_carac].value); - // Dupliquer les armes pouvant être à 1 main et 2 mains en patchant la compétence - if (arme.data.unemain && !arme.data.deuxmains ) { - arme.data.mainInfo = "(1m)"; - } else if ( !arme.data.unemain && arme.data.deuxmains ) { - arme.data.mainInfo = "(2m)"; - } else if (arme.data.unemain && arme.data.deuxmains) { - arme.data.mainInfo = "(1m)"; - let arme2main = duplicate(arme); - arme2main.data.mainInfo = "(2m)"; - arme2main.data.dommages = arme2main.data.dommages.split("/")[1]; // Existence temporaire uniquement dans la liste des armes, donc OK - arme2main.data.competence = arme2main.data.competence.replace(" 1 main", " 2 mains"); // Replace ! - let comp = competenceList.find(c => c.name == arme2main.data.competence); - arme2main.data.niveau = comp.data.niveau; - arme2main.data.initiative = RdDUtility.calculInitiative(arme2main.data.niveau, carac[comp.data.defaut_carac].value); - arme2mains.push(arme2main); - } else { + if (arme.data.equipe) { + armesEquipe.push( arme ); + let comp = competenceList.find(c => c.name == arme.data.competence); + arme.data.initiative = RdDUtility.calculInitiative(arme.data.niveau, carac[comp.data.defaut_carac].value); + // Dupliquer les armes pouvant être à 1 main et 2 mains en patchant la compétence + if (arme.data.unemain && !arme.data.deuxmains ) { + arme.data.mainInfo = "(1m)"; + } else if ( !arme.data.unemain && arme.data.deuxmains ) { + arme.data.mainInfo = "(2m)"; + } else if (arme.data.unemain && arme.data.deuxmains) { + arme.data.mainInfo = "(1m)"; + let arme2main = duplicate(arme); + arme2main.data.mainInfo = "(2m)"; + arme2main.data.dommages = arme2main.data.dommages.split("/")[1]; // Existence temporaire uniquement dans la liste des armes, donc OK + arme2main.data.competence = arme2main.data.competence.replace(" 1 main", " 2 mains"); // Replace ! + let comp = competenceList.find(c => c.name == arme2main.data.competence); + arme2main.data.niveau = comp.data.niveau; + arme2main.data.initiative = RdDUtility.calculInitiative(arme2main.data.niveau, carac[comp.data.defaut_carac].value); + armesEquipe.push(arme2main); + } } - } - armeList = armeList.concat(arme2mains); // Merge all cases - armeList = armeList.sort((a, b) => { if ( a.name > b.name) return 1; else return -1; } ); - return armeList + //armeList = armeList.concat(arme2mains); // Merge all cases + armesEquipe = armesEquipe.sort((a, b) => { if ( a.name > b.name) return 1; else return -1; } ); + return armesEquipe } /* -------------------------------------------- */ diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index 6a0f3f48..d6be90b5 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -597,6 +597,20 @@ {{/each}} +
+ Méditations : + +
Cases Spéciales:
+
+ + {{#if isGM}} + + {{else}} + + {{/if}} +
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}