diff --git a/changelog.md b/changelog.md index bd15a1c3..e15ea91f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,4 +1,9 @@ # 13.0 +## 13.0.13 - Le familier d'Illysis + +- Nouvelle fenêtre de jets de dés + - Attaque/défense des créatures + ## 13.0.13 - L'épanouissement d'Illysis - Fix d'erreur au chargement de templates RollDialog diff --git a/module/actor.js b/module/actor.js index 914aa630..24368810 100644 --- a/module/actor.js +++ b/module/actor.js @@ -186,12 +186,12 @@ export class RdDActor extends RdDBaseActorSang { const uniques = [] const addAttaque = (arme, main = undefined, action = 'attaque') => { - const dommagesArme = RdDItemArme.valeurMain(arme.system.dommages, main) + const dommages = RdDItemArme.valeurMain(arme.system.dommages, main) const forceRequise = RdDItemArme.valeurMain(arme.system.force ?? 0, main) const ecaillesEfficacite = arme.system.magique ? arme.system.ecaille_efficacite : 0; const comp = this.getCompetence(RdDActor.$getCompetenceAction(arme, main)) - const unique = [comp.id, arme.name, dommagesArme, forceRequise, ecaillesEfficacite].join('|'); + const unique = [comp.id, arme.name, dommages, forceRequise, ecaillesEfficacite].join('|'); if (uniques.includes(unique)) { return } @@ -212,7 +212,7 @@ export class RdDActor extends RdDBaseActorSang { main: main, carac: { key: caracCode, value: caracValue }, equipe: arme.system.equipe, - dommagesArme: dommagesArme, + dommages: dommages, forceRequise: forceRequise, initiative: RdDInitiative.getRollInitiative(caracValue, niveau, ajustement) }) diff --git a/module/actor/base-actor-reve.js b/module/actor/base-actor-reve.js index 65dd8f57..dab282bb 100644 --- a/module/actor/base-actor-reve.js +++ b/module/actor/base-actor-reve.js @@ -176,10 +176,11 @@ export class RdDBaseActorReve extends RdDBaseActor { } getCompetences(name = undefined, options = { onMessage: message => { } }) { + const all = [...this.itemTypes[ITEM_TYPES.competence], ...this.itemTypes[ITEM_TYPES.competencecreature]] if (name == undefined) { - return this.itemTypes[ITEM_TYPES.competence] + return all } - return RdDItemCompetence.findCompetences(this.itemTypes[ITEM_TYPES.competence], name, options) + return RdDItemCompetence.findCompetences(all, name, options) } getCompetenceCorpsACorps(options = { onMessage: message => { } }) { diff --git a/module/actor/base-actor-sheet.js b/module/actor/base-actor-sheet.js index bdbca38f..8be9575a 100644 --- a/module/actor/base-actor-sheet.js +++ b/module/actor/base-actor-sheet.js @@ -56,8 +56,7 @@ export class RdDBaseActorSheet extends foundry.appv1.sheets.ActorSheet { this._appliquerRechercheObjets(formData.conteneurs, formData.inventaires); formData.conteneurs = RdDUtility.conteneursRacine(formData.conteneurs); formData.competences.filter(it => it.type == ITEM_TYPES.competencecreature) - .forEach(it => it.isdommages = it.isDommages() - ) + .forEach(it => it.isdommages = it.isDommages()) return formData; } diff --git a/module/actor/export-scriptarium/mapping.js b/module/actor/export-scriptarium/mapping.js index 3b0fa256..b16ca758 100644 --- a/module/actor/export-scriptarium/mapping.js +++ b/module/actor/export-scriptarium/mapping.js @@ -160,7 +160,7 @@ export class Mapping { return undefined } const categorie = Mapping.complementCategorie(arme, maniement) - const dommages = Mapping.dommagesArme(actor, arme, maniement) + const dommages = Mapping.dommages(actor, arme, maniement) return { name: arme.name + categorie, niveau: Misc.toSignedString(competence.system.niveau), @@ -170,7 +170,8 @@ export class Mapping { arme: arme } } - static dommagesArme(actor, arme, maniement) { + + static dommages(actor, arme, maniement) { const dmgArme = RdDItemArme.dommagesReels(arme, maniement) const dommages = Misc.toSignedString(dmgArme + RdDBonus.bonusDmg(actor, maniement, dmgArme)) switch (arme.system.mortalite) { diff --git a/module/item-competencecreature.js b/module/item-competencecreature.js index 35519b3f..80b735e6 100644 --- a/module/item-competencecreature.js +++ b/module/item-competencecreature.js @@ -32,6 +32,7 @@ export class RdDItemCompetenceCreature extends RdDItem { initiative: initative, mortalite: this.system.mortalite, dommages: this.system.dommages, + forceRequise: 0, equipe: true, resistance: 100, penetration: 0, @@ -43,7 +44,8 @@ export class RdDItemCompetenceCreature extends RdDItem { carac: { key: this.name, value: this.system.carac_value }, equipe: true, mortalite: this.system.mortalite, - dmg: this.system.dommages, + dommages: this.system.dommages, + //dmg: this.system.dommages, initiative: initative }; return attaque diff --git a/module/rdd-combat.js b/module/rdd-combat.js index 6bb9c2b0..58f01421 100644 --- a/module/rdd-combat.js +++ b/module/rdd-combat.js @@ -727,8 +727,6 @@ export class RdDCombat { RollBasicParts.loadSurprises(attackerRoll) attackerRoll.passeArme = attackerRoll.passeArme ?? foundry.utils.randomID(16) attackerRoll.dmg = RdDBonus.dmgRollV2(attackerRoll, attackerRoll.current.attaque) - // attackerRoll.current.attaque.dmg = attackerRoll.dmg - // attaque.dmg = attackerRoll.current.attaque.dmg const attaque = RollDialog.saveParts(attackerRoll) const defense = { attackerRoll: attaque, diff --git a/module/roll/roll-part-attaque.mjs b/module/roll/roll-part-attaque.mjs index 5519ede1..914260e8 100644 --- a/module/roll/roll-part-attaque.mjs +++ b/module/roll/roll-part-attaque.mjs @@ -36,7 +36,7 @@ export class RollPartAttaque extends RollPartSelect { restore(rollData) { const saved = this.getSaved(rollData) super.restore(rollData) - if (saved.dmg) { + if (saved.dmg != undefined) { this.getCurrent(rollData).dmg = this.getSaved(rollData).dmg } } diff --git a/module/roll/roll-part-carac.mjs b/module/roll/roll-part-carac.mjs index b143859f..065549ca 100644 --- a/module/roll/roll-part-carac.mjs +++ b/module/roll/roll-part-carac.mjs @@ -12,22 +12,30 @@ export class RollPartCarac extends RollPartSelect { loadRefs(rollData) { const refs = this.getRefs(rollData) - refs.all = this.$getActorCaracs(rollData) + const actor = rollData.active.actor + refs.all = [...this.$getActorCaracs(actor), ...this.$getCaracCompetenceCreature(actor)] refs.caracs = refs.all this.$selectCarac(rollData) } choices(refs) { return refs.caracs } - $getActorCaracs(rollData) { - return Object.entries(rollData.active.actor.getCarac()) + $getActorCaracs(actor) { + return Object.entries(actor.getCarac()) .filter(([key, c]) => key != 'taille') - /* TODO: filter by context */ .map(([key, carac]) => { return RollPartCarac.$extractCarac(key, carac) }) } + $getCaracCompetenceCreature(actor) { + if (actor.isPersonnage()) { + return [] + } + return actor.getCompetences() + .map(it => { return { key: it.name, label: it.name, value: parseInt(it.system.carac_value) } }) + } + static $extractCarac(key, carac) { return { key: key, @@ -40,7 +48,6 @@ export class RollPartCarac extends RollPartSelect { allowed = allowed.filter(it => it != undefined) const refs = this.getRefs(rollData) refs.caracs = allowed.length > 0 - // ? refs.all.filter(it => allowed.includes(Grammar.toLowerCaseNoAccent(it.key))) ? refs.all.filter(it => allowed.includes(it.key)) : refs.all this.$selectCarac(rollData) diff --git a/templates/actor/combat.hbs b/templates/actor/combat.hbs index 68f686e4..5c32a9f2 100644 --- a/templates/actor/combat.hbs +++ b/templates/actor/combat.hbs @@ -20,7 +20,7 @@ {{>"systems/foundryvtt-reve-de-dragon/templates/item/icon-arme-broken.hbs" action.arme}} {{plusMoins action.comp.system.niveau}} - {{plusMoins action.dommagesArme}} + {{plusMoins action.dommages}} diff --git a/templates/roll/result/chat-attaque.hbs b/templates/roll/result/chat-attaque.hbs index f4c81494..e1502e7f 100644 --- a/templates/roll/result/chat-attaque.hbs +++ b/templates/roll/result/chat-attaque.hbs @@ -10,8 +10,7 @@
- {{current.carac.label}} / {{current.comp.label}} à {{current.diff.value}} -
{{> 'partial-infojet'}} + {{> 'partial-infojet'}}
diff --git a/templates/roll/result/chat-comp.hbs b/templates/roll/result/chat-comp.hbs index b380b32a..080c1030 100644 --- a/templates/roll/result/chat-comp.hbs +++ b/templates/roll/result/chat-comp.hbs @@ -8,8 +8,7 @@
- {{current.carac.label}}{{#unless (eq current.comp.key '')}} / {{current.comp.label}}{{/unless}} à {{current.diff.value}} -
{{> 'partial-infojet'}} + {{> 'partial-infojet'}}
diff --git a/templates/roll/result/chat-cuisine.hbs b/templates/roll/result/chat-cuisine.hbs index a9469c70..0eeba85d 100644 --- a/templates/roll/result/chat-cuisine.hbs +++ b/templates/roll/result/chat-cuisine.hbs @@ -13,8 +13,7 @@
- {{current.carac.label}} / {{current.comp.label}} à {{current.diff.value}} -
{{> "partial-infojet"}} + {{> 'partial-infojet'}}
diff --git a/templates/roll/result/chat-defense.hbs b/templates/roll/result/chat-defense.hbs index 2000cfb8..f9851cc1 100644 --- a/templates/roll/result/chat-defense.hbs +++ b/templates/roll/result/chat-defense.hbs @@ -10,8 +10,7 @@
- {{current.carac.label}} / {{current.comp.label}} à {{current.diff.value}} -
{{> 'partial-infojet'}} + {{> 'partial-infojet'}}
diff --git a/templates/roll/result/chat-jeu.hbs b/templates/roll/result/chat-jeu.hbs index 2b0f53a5..a7246bf2 100644 --- a/templates/roll/result/chat-jeu.hbs +++ b/templates/roll/result/chat-jeu.hbs @@ -8,8 +8,7 @@
- {{current.carac.label}} / {{current.comp.label}} à {{current.diff.value}} -
{{> 'partial-infojet'}} + {{> 'partial-infojet'}}
diff --git a/templates/roll/result/chat-meditation.hbs b/templates/roll/result/chat-meditation.hbs index 1066de5e..5c18e7b2 100644 --- a/templates/roll/result/chat-meditation.hbs +++ b/templates/roll/result/chat-meditation.hbs @@ -8,8 +8,7 @@
- {{current.carac.label}} / {{current.comp.label}} à {{current.diff.value}} -
{{> 'partial-infojet'}} + {{> 'partial-infojet'}}
diff --git a/templates/roll/result/chat-oeuvre.hbs b/templates/roll/result/chat-oeuvre.hbs index f8c9559a..4978ff5c 100644 --- a/templates/roll/result/chat-oeuvre.hbs +++ b/templates/roll/result/chat-oeuvre.hbs @@ -8,8 +8,7 @@
- {{current.carac.label}} / {{current.comp.label}} à {{current.diff.value}} -
{{> 'partial-infojet'}} + {{> 'partial-infojet'}}
diff --git a/templates/roll/result/chat-sort.hbs b/templates/roll/result/chat-sort.hbs index 035a3f3b..5636af5b 100644 --- a/templates/roll/result/chat-sort.hbs +++ b/templates/roll/result/chat-sort.hbs @@ -15,8 +15,7 @@
- {{current.carac.label}} / {{current.comp.label}} à {{current.diff.value}} -
{{> 'partial-infojet'}} + {{> 'partial-infojet'}}

diff --git a/templates/roll/result/chat-tache.hbs b/templates/roll/result/chat-tache.hbs index 6829d90e..31c6206a 100644 --- a/templates/roll/result/chat-tache.hbs +++ b/templates/roll/result/chat-tache.hbs @@ -8,8 +8,7 @@
- {{current.carac.label}} / {{current.comp.label}} à {{current.diff.value}} -
{{> 'partial-infojet'}} + {{> 'partial-infojet'}}
diff --git a/templates/roll/result/partial-infojet.hbs b/templates/roll/result/partial-infojet.hbs index c373383d..18992ba5 100644 --- a/templates/roll/result/partial-infojet.hbs +++ b/templates/roll/result/partial-infojet.hbs @@ -1,3 +1,9 @@ +{{current.carac.label}} +{{#if (and (ne current.comp.key '') (ne current.carac.label current.comp.label))}} + / {{current.comp.label}} +{{/if}} + à {{current.diff.value}} +
{{#if ajustements}}