From eda51dec7fe7eb43829aa02dedfe03ef0b515ce1 Mon Sep 17 00:00:00 2001 From: sladecraven Date: Fri, 3 Jun 2022 08:15:39 +0200 Subject: [PATCH] Ajout fenetre de roll + gestion de base des rolls --- modules/mournblade-actor-sheet.js | 139 +------------------ modules/mournblade-actor.js | 41 ++---- modules/mournblade-roll-dialog.js | 213 +++-------------------------- modules/mournblade-utility.js | 67 ++++++++- packs/armes.db | 42 ++++++ system.json | 4 +- template.json | 4 +- templates/actor-sheet.html | 112 ++++----------- templates/chat-generic-result.html | 82 ++++++----- templates/roll-dialog-generic.html | 114 ++++++--------- 10 files changed, 253 insertions(+), 565 deletions(-) create mode 100644 packs/armes.db diff --git a/modules/mournblade-actor-sheet.js b/modules/mournblade-actor-sheet.js index 5fefb8f..83f96e0 100644 --- a/modules/mournblade-actor-sheet.js +++ b/modules/mournblade-actor-sheet.js @@ -27,7 +27,7 @@ export class MournbladeActorSheet extends ActorSheet { async getData() { const objectData = MournbladeUtility.data(this.object); - let actorData = duplicate(MournbladeUtility.templateData(this.object)); + let actorData = duplicate(MournbladeUtility.templateData(this.object)) let formData = { title: this.title, @@ -64,10 +64,6 @@ export class MournbladeActorSheet extends ActorSheet { // Everything below here is only needed if the sheet is editable if (!this.options.editable) return; - html.bind("keydown", function(e) { // Ignore Enter in actores sheet - if (e.keyCode === 13) return false; - }); - // Update Inventory Item html.find('.item-edit').click(ev => { const li = $(ev.currentTarget).parents(".item") @@ -81,64 +77,6 @@ export class MournbladeActorSheet extends ActorSheet { MournbladeUtility.confirmDelete(this, li); }); - html.find('.spec-group-activate').click(ev => { - const li = $(ev.currentTarget).parents(".item"); - let itemId = li.data("item-id"); - this.actor.specPowerActivate( itemId) - }); - html.find('.spec-group-deactivate').click(ev => { - const li = $(ev.currentTarget).parents(".item"); - let itemId = li.data("item-id"); - this.actor.specPowerDeactivate( itemId) - }); - - html.find('.equip-activate').click(ev => { - const li = $(ev.currentTarget).parents(".item") - let itemId = li.data("item-id") - this.actor.equipActivate( itemId) - }); - html.find('.equip-deactivate').click(ev => { - const li = $(ev.currentTarget).parents(".item") - let itemId = li.data("item-id") - this.actor.equipDeactivate( itemId) - }); - - html.find('.effect-used').click(ev => { - const li = $(ev.currentTarget).parents(".item"); - let itemId = li.data("item-id"); - this.actor.perkEffectUsed( itemId) - }); - - html.find('.perk-status').change(ev => { - const li = $(ev.currentTarget).parents(".item"); - let itemId = li.data("item-id"); - this.actor.updatePerkStatus( itemId, ev.currentTarget.value) - }); - html.find('.power-cost-spent').change(ev => { - const li = $(ev.currentTarget).parents(".item"); - let itemId = li.data("item-id"); - this.actor.updatePowerSpentCost( itemId, ev.currentTarget.value) - }); - html.find('.perk-used').change(ev => { - const li = $(ev.currentTarget).parents(".item") - let itemId = li.data("item-id") - let index = Number($(ev.currentTarget).data("use-index") ) - this.actor.updatePerkUsed( itemId, index, ev.currentTarget.checked ) - }); - - html.find('.subactor-edit').click(ev => { - const li = $(ev.currentTarget).parents(".item"); - let actorId = li.data("actor-id"); - let actor = game.actors.get( actorId ); - actor.sheet.render(true); - }); - - html.find('.subactor-delete').click(ev => { - const li = $(ev.currentTarget).parents(".item"); - let actorId = li.data("actor-id"); - this.actor.delSubActor(actorId); - }); - html.find('.quantity-minus').click(event => { const li = $(event.currentTarget).parents(".item"); this.actor.incDecQuantity( li.data("item-id"), -1 ); @@ -148,49 +86,16 @@ export class MournbladeActorSheet extends ActorSheet { this.actor.incDecQuantity( li.data("item-id"), +1 ); } ); - html.find('.unarmed-attack').click((event) => { - this.actor.rollUnarmedAttack(); + html.find('.roll-attribut').click((event) => { + const li = $(event.currentTarget).parents(".item") + let attrKey = li.data("attr-key") + this.actor.rollAttribut(attrKey) }); - html.find('.generic-pool-roll').click((event) => { - this.openGenericRoll() - } ); - html.find('.attack-melee').click((event) => { - this.actor.rollPool( 'com'); - }); - html.find('.attack-ranged').click((event) => { - this.actor.rollPool( 'agi'); - }); - html.find('.defense-roll').click((event) => { - this.actor.rollPool( 'def', true); - }); - html.find('.damage-melee').click((event) => { - this.actor.rollPool( 'str'); - }); - html.find('.damage-ranged').click((event) => { - this.actor.rollPool( 'per'); - }); - html.find('.damage-resistance').click((event) => { - this.actor.rollPool( 'phy'); - }); - - html.find('.roll-stat').click((event) => { - const statId = $(event.currentTarget).data("stat-key"); - this.actor.rollStat(statId); - }); - html.find('.roll-mr').click((event) => { - this.actor.rollMR(); - }); - html.find('.roll-spec').click((event) => { const li = $(event.currentTarget).parents(".item"); const specId = li.data("item-id"); this.actor.rollSpec(specId); }); - html.find('.power-roll').click((event) => { - const li = $(event.currentTarget).parents(".item"); - const powerId = li.data("item-id"); - this.actor.rollPower(powerId); - }); html.find('.weapon-roll').click((event) => { const li = $(event.currentTarget).parents(".item"); const weaponId = li.data("item-id"); @@ -208,49 +113,15 @@ export class MournbladeActorSheet extends ActorSheet { this.actor.rollWeapon(weaponId, true); }); - html.find('.weapon-damage').click((event) => { - const li = $(event.currentTarget).parents(".item"); - const weapon = this.actor.getOwnedItem(li.data("item-id")); - this.actor.rollDamage(weapon, 'damage'); - }); - html.find('.lock-unlock-sheet').click((event) => { this.options.editScore = !this.options.editScore; this.render(true); }); - html.find('.item-link a').click((event) => { - const itemId = $(event.currentTarget).data("item-id"); - const item = this.actor.getOwnedItem(itemId); - item.sheet.render(true); - }); html.find('.item-equip').click(ev => { const li = $(ev.currentTarget).parents(".item"); this.actor.equipItem( li.data("item-id") ); this.render(true); }); - html.find('.power-activate').click(ev => { - const li = $(ev.currentTarget).parents(".item"); - this.actor.activatePower( li.data("item-id") ); - this.render(true); - }); - - html.find('.change-worstfear').change(ev => { - this.actor.manageWorstFear( ev.currentTarget.checked ) - }); - html.find('.change-desires').change(ev => { - this.actor.manageDesires( ev.currentTarget.checked ) - }); - - html.find('.update-field').change(ev => { - const fieldName = $(ev.currentTarget).data("field-name"); - let value = Number(ev.currentTarget.value); - this.actor.update( { [`${fieldName}`]: value } ); - }); - html.find('.perk-active').click(ev => { - const li = $(ev.currentTarget).parents(".item"); - this.actor.activatePerk( li.data("item-id") ); - this.render(true); - }); } diff --git a/modules/mournblade-actor.js b/modules/mournblade-actor.js index 0c4c236..8838201 100644 --- a/modules/mournblade-actor.js +++ b/modules/mournblade-actor.js @@ -81,11 +81,6 @@ export class MournbladeActor extends Actor { super._preUpdate(changed, options, user); } - /* -------------------------------------------- */ - getActivePerks() { - let perks = this.data.items.filter(item => item.type == 'perk' && item.data.data.active); - return perks; - } /* -------------------------------------------- */ getItemById(id) { let item = this.data.items.find(item => item.id == id); @@ -117,7 +112,7 @@ export class MournbladeActor extends Actor { /* -------------------------------------------- */ getAttribute(attrKey) { - return this.data.data.attributes[attrKey]; + return this.data.data.attributes[attrKey] } /* -------------------------------------------- */ @@ -164,38 +159,30 @@ export class MournbladeActor extends Actor { } /* -------------------------------------------- */ - getCommonRollData(statKey = undefined, useShield = false) { + getCommonRollData(attrKey = undefined, compKey = undefined) { let rollData = MournbladeUtility.getBasicRollData() rollData.alias = this.name rollData.actorImg = this.img rollData.actorId = this.id rollData.img = this.img - rollData.activePerks = duplicate(this.getActivePerks()) - if (statKey) { - rollData.statKey = statKey - rollData.stat = this.getStat(statKey) - rollData.statDicesLevel = rollData.stat.value - rollData.statMod = rollData.stat.mod - rollData.specList = this.getRelevantSpec(statKey) - rollData.selectedSpec = "0" + if (attrKey) { + rollData.attrKey = attrKey + rollData.attr = duplicate(this.data.data.attributs[attrKey]) + } + if (compKey) { + rollData.compKey = compKey + // TODO! } - - this.addEffects(rollData) - this.addArmorsShields(rollData, statKey, useShield) - this.addWeapons(rollData, statKey, useShield) - this.addEquipments(rollData, statKey) - return rollData } /* -------------------------------------------- */ - async startRoll(rollData) { - this.syncRoll(rollData); - //console.log("ROLL DATA", rollData) - let rollDialog = await MournbladeRollDialog.create(this, rollData); - console.log(rollDialog); - rollDialog.render(true); + async rollAttribut(attrKey) { + let rollData = this.getCommonRollData(attrKey) + console.log("RollDatra", rollData) + let rollDialog = await MournbladeRollDialog.create(this, rollData) + rollDialog.render(true) } diff --git a/modules/mournblade-roll-dialog.js b/modules/mournblade-roll-dialog.js index 5c3dd3c..a396ff0 100644 --- a/modules/mournblade-roll-dialog.js +++ b/modules/mournblade-roll-dialog.js @@ -14,17 +14,22 @@ export class MournbladeRollDialog extends Dialog { /* -------------------------------------------- */ constructor(actor, rollData, html, options, close = undefined) { let conf = { - title: (rollData.mode == "skill") ? "Skill" : "Roll", + title: "Test de Capacité", content: html, buttons: { - roll: { + rolld10: { icon: '', - label: "Roll !", - callback: () => { this.roll() } + label: "Lancer 1d10", + callback: () => { this.roll("1d10") } + }, + rolld20: { + icon: '', + label: "Lancer 1d20", + callback: () => { this.roll("1d20") } }, cancel: { icon: '', - label: "Cancel", + label: "Annuler", callback: () => { this.close() } } }, close: close @@ -32,148 +37,17 @@ export class MournbladeRollDialog extends Dialog { super(conf, options); - this.actor = actor; - this.rollData = rollData; + this.actor = actor + this.rollData = rollData } /* -------------------------------------------- */ - roll () { + roll ( dice) { + this.rollData.mainDice = dice MournbladeUtility.rollMournblade( this.rollData ) } - /* -------------------------------------------- */ - manageEffects( effectIdx, toggled) { - let effect = this.rollData.effectsList[effectIdx] - if (effect) { - effect.applied = toggled - - let level, genre, idVal - if (effect.type == 'hindrance' ) { - level = effect.value - genre = 'positive' - idVal = "#hindranceDicesLevel" - } - if (effect.type == 'effect' ) { - let effectData = effect.effect - level = effectData.data.effectlevel - genre = effectData.data.genre - effectData.data.isUsed = toggled - if (effectData.data.bonusdice) { - idVal = "#bonusDicesLevel" - } - if (effectData.data.reducedicevalue || effectData.data.statdice) { - idVal = "#statDicesLevel" - } - if (effectData.data.otherdice) { - idVal = "#otherDicesLevel" - } - if (effectData.data.hindrance) { - idVal = "#hindranceDicesLevel" - genre = 'positive' // Dynamic fix - } - } - // Now process the dice level update - let newLevel = Number($(idVal).val()) - console.log("Ongoing", newLevel, toggled, idVal ) - if (toggled) { - if ( genre == 'positive') { - newLevel += Number(level) - }else { - newLevel -= Number(level) - } - }else { - if ( genre == 'positive') { - newLevel -= Number(level) - }else { - newLevel += Number(level) - } - } - newLevel = (newLevel<0) ? 0 : newLevel - $(idVal).val(newLevel) - } - //console.log("Effect", effect, toggled) - this.rollData.statDicesLevel = Number($('#statDicesLevel').val()) - this.rollData.specDicesLevel = Number($('#specDicesLevel').val()) - this.rollData.bonusDicesLevel = Number($('#bonusDicesLevel').val()) - this.rollData.hindranceDicesLevel = Number($('#hindranceDicesLevel').val()) - this.rollData.otherDicesLevel = Number($('#otherDicesLevel').val()) - } - - /* -------------------------------------------- */ - manageArmors( armorIdx, toggled) { - let armor = this.rollData.armorsList[armorIdx] - if (armor) { - armor.applied = toggled - if (armor.type == 'other' ) { - if (toggled) { - this.rollData.otherDicesLevel += Number(armor.value) - } else { - this.rollData.otherDicesLevel -= Number(armor.value) - this.rollData.otherDicesLevel = (this.rollData.otherDicesLevel<0) ? 0 : this.rollData.otherDicesLevel - } - $("#otherDicesLevel").val(this.rollData.otherDicesLevel) - } - } - console.log("Armor", armorIdx, toggled) - } - - /* -------------------------------------------- */ - manageWeapons( weaponIdx, toggled) { - let weapon = this.rollData.weaponsList[weaponIdx] - if (weapon) { - if (toggled) { - this.rollData.weaponName = weapon.weapon.name - } else { - this.rollData.weaponName = undefined - } - weapon.applied = toggled - if (weapon.type == 'damage' || weapon.type == 'enhanced' ) { - if (toggled) { - this.rollData.otherDicesLevel += Number(weapon.value) - } else { - this.rollData.weaponName = undefined - this.rollData.otherDicesLevel -= Number(weapon.value) - this.rollData.otherDicesLevel = (this.rollData.otherDicesLevel<0) ? 0 : this.rollData.otherDicesLevel - } - $("#otherDicesLevel").val(this.rollData.otherDicesLevel) - } - } - console.log("Weapon", weaponIdx, toggled, this.rollData.otherDicesLevel, weapon) - } - - /* -------------------------------------------- */ - manageEquip( equipIdx, toggled) { - let equip = this.rollData.equipmentsList[equipIdx] - if (equip) { - equip.applied = toggled - let idVal = "#otherDicesLevel" // Default - if (equip.equip.data.bonusdice) { - idVal = "#bonusDicesLevel" - } - if (equip.equip.data.statdice) { - idVal = "#statDicesLevel" - } - if (equip.equip.data.otherdice) { - idVal = "#otherDicesLevel" - } - let newLevel = Number($(idVal).val()) - if (toggled) { - newLevel += Number(equip.value) - } else { - newLevel -= Number(equip.value) - } - newLevel = (newLevel <0) ? 0 : newLevel - $(idVal).val(newLevel) - // Then refresh - this.rollData.statDicesLevel = Number($('#statDicesLevel').val()) - this.rollData.specDicesLevel = Number($('#specDicesLevel').val()) - this.rollData.bonusDicesLevel = Number($('#bonusDicesLevel').val()) - this.rollData.hindranceDicesLevel = Number($('#hindranceDicesLevel').val()) - this.rollData.otherDicesLevel = Number($('#otherDicesLevel').val()) - } - } - /* -------------------------------------------- */ activateListeners(html) { super.activateListeners(html); @@ -183,57 +57,12 @@ export class MournbladeRollDialog extends Dialog { } $(function () { onLoad(); }); - html.find('#specList').change(async (event) => { - this.rollData.selectedSpec = event.currentTarget.value - let spec = this.rollData.specList.find(item => item._id == this.rollData.selectedSpec) - if ( spec) { - this.rollData.specDiceLevel = spec.data.level - this.rollData.specName = spec.name - $('#specDicesLevel').val(this.rollData.specDiceLevel) - } else { - this.rollData.specName = undefined - $('#specDicesLevel').val(0) - } - const content = await renderTemplate("systems/fvtt-Mournblade-rpg/templates/roll-dialog-generic.html", this.rollData) - this.data.content = content - this.render(true) - }); - html.find('#statDicesLevel').change((event) => { - this.rollData.statDicesLevel = Number(event.currentTarget.value) - }); - html.find('#specDicesLevel').change((event) => { - this.rollData.specDicesLevel = Number(event.currentTarget.value) - }); - html.find('#bonusDicesLevel').change((event) => { - this.rollData.bonusDicesLevel = Number(event.currentTarget.value) - }); - html.find('#hindranceDicesLevel').change((event) => { - this.rollData.hindranceDicesLevel = Number(event.currentTarget.value) - }); - html.find('#otherDicesLevel').change((event) => { - this.rollData.otherDicesLevel = Number(event.currentTarget.value) - }); - html.find('.effect-clicked').change((event) => { - let toggled = event.currentTarget.checked - let effectIdx = $(event.currentTarget).data("effect-idx") - this.manageEffects( effectIdx, toggled) - }); - html.find('.armor-clicked').change((event) => { - let toggled = event.currentTarget.checked - let armorIdx = $(event.currentTarget).data("armor-idx") - this.manageArmors( armorIdx, toggled) - }); - html.find('.weapon-clicked').change((event) => { - let toggled = event.currentTarget.checked - let weaponIdx = $(event.currentTarget).data("weapon-idx") - this.manageWeapons( weaponIdx, toggled) - }); - html.find('.equip-clicked').change((event) => { - let toggled = event.currentTarget.checked - let equipIdx = $(event.currentTarget).data("equip-idx") - this.manageEquip( equipIdx, toggled) - }); - - + html.find('#modificateur').change(async (event) => { + this.rollData.modificateur = Number(event.currentTarget.value) + }) + html.find('#difficulte').change(async (event) => { + this.rollData.difficulte = Number(event.currentTarget.value) + }) + } } \ No newline at end of file diff --git a/modules/mournblade-utility.js b/modules/mournblade-utility.js index 8b0a639..903fb53 100644 --- a/modules/mournblade-utility.js +++ b/modules/mournblade-utility.js @@ -22,23 +22,38 @@ export class MournbladeUtility { Handlebars.registerHelper('count', function (list) { return list.length; - }); + }) Handlebars.registerHelper('includes', function (array, val) { return array.includes(val); - }); + }) Handlebars.registerHelper('upper', function (text) { return text.toUpperCase(); - }); + }) + Handlebars.registerHelper('lower', function (text) { + return text.toLowerCase() + }) Handlebars.registerHelper('upperFirst', function (text) { if (typeof text !== 'string') return text return text.charAt(0).toUpperCase() + text.slice(1) - }); + }) Handlebars.registerHelper('notEmpty', function (list) { return list.length > 0; - }); + }) + Handlebars.registerHelper('mul', function (a, b) { + return parseInt(a) * parseInt(b); + }) } + /* -------------------------------------------- */ + static getModificateurOptions() { + let opt = [] + for (let i = -15; i <= 15; i++) { + opt.push( `` ) + } + return opt.concat("\n") + } + /* -------------------------------------------- */ static getAttributs() { return { adr: "Adresse", pui: "Puissance", cla: "Clairvoyance", pre: "Présence", tre: "Trempe"} @@ -247,8 +262,43 @@ export class MournbladeUtility { /* -------------------------------------------- */ static async rollMournblade(rollData) { + rollData.diceFormula = rollData.mainDice + if (rollData.competence) { + rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.data.niveau}+${rollData.modificateur}` + } else { + rollData.diceFormula += `+${rollData.attr.value}*2+${rollData.modificateur}` + } + + let myRoll = rollData.roll + if (!myRoll) { // New rolls only of no rerolls + myRoll = new Roll(rollData.diceFormula).roll({ async: false }); + console.log("ROLL : ", rollData.diceFormula) + await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")); + rollData.roll = myRoll + } + console.log(">>>> ", myRoll) + + rollData.finalResult = myRoll.total + if ( rollData.mainDice == "1d20") { + let diceValue = myRoll.terms[0].results[0].result + console.log("PAIR/IMP", diceValue) + if ( diceValue % 2 == 1) { + console.log("PAIR/IMP2", diceValue) + rollData.finalResult -= myRoll.terms[0].results[0].result // Substract value + if (diceValue == 1 || diceValue == 11) { + rollData.isDramatique = true + rollData.isSuccess = false + } + } + } + + if (rollData.difficulte > 0 && !rollData.isDramatique) { + rollData.isSuccess = (myRoll.finalResult >= rollData.difficulte) + rollData.isHeroique = ((myRoll.finalResult - rollData.difficulte) >= 10) + rollData.isDramatique = ((myRoll.finalResult - rollData.difficulte) <= -10) + } this.createChatWithRollMode(rollData.alias, { - content: await renderTemplate(`systems/fvtt-Mournblade-rpg/templates/chat-generic-result.html`, rollData) + content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-generic-result.html`, rollData) }); // And save the roll @@ -291,7 +341,7 @@ export class MournbladeUtility { } else { item = game.items.get(dataItem.id) } - return item; + return item } /* -------------------------------------------- */ @@ -338,6 +388,9 @@ export class MournbladeUtility { let rollData = { rollId: randomID(16), rollMode: game.settings.get("core", "rollMode"), + modificateursOptions : this.getModificateurOptions(), + difficulte: 0, + modificateur: 0, } MournbladeUtility.updateWithTarget(rollData) return rollData diff --git a/packs/armes.db b/packs/armes.db new file mode 100644 index 0000000..a061370 --- /dev/null +++ b/packs/armes.db @@ -0,0 +1,42 @@ +{"name":"Fouet","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contactjet","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d4 + 1","deuxmains":false,"courte":3,"moyenne":0,"longue":0,"tr":0,"rarete":4,"prix":40},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Qb1h25U88mTM4h72"}},"_id":"0swiE8k5zfUIqmXu"} +{"name":"Sabre de Pan Tang","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d10 + 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":120},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.l3ffzso7GyHMKguD"}},"_id":"1hIQVgVH6VgTTaAc"} +{"name":"Hache des mers","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"2d6","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.mGYFgteaWBDo10Xb"}},"_id":"2BSVJXr0FGZZJ9fh"} +{"name":"Fléau d’armes","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D10+1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.PHQabMgfk1GNOjKo"}},"_id":"2qezkR1BdC0DcRIl"} +{"name":"Arbalète","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"tir","bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"2d6","deuxmains":false,"courte":25,"moyenne":50,"longue":75,"tr":3,"rarete":10,"prix":500},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.WYp8ojQN8HYJwUJc"}},"_id":"2zIdrBK88iuMbOF0"} +{"name":"Cimeterre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":1,"degats":"1d10","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.RYxEg0gJfAlIZ4mw"}},"_id":"3Iv1oLpZcPEJVaI4"} +{"name":"Fronde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"tir","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D4","deuxmains":false,"courte":10,"moyenne":25,"longue":50,"tr":1,"rarete":2,"prix":1},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.TgVuNnytO9k2K0Xe"}},"_id":"4To8rLxv4efsoZK0"} +{"name":"Pierre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contactjet","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D4","deuxmains":false,"courte":3,"moyenne":6,"longue":15,"tr":1,"rarete":0,"prix":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.3YS9IfQddECnoagK"}},"_id":"4yKlK8MeSj5Zk8lM"} +{"name":"Grand marteau","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"2D6+2","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":120},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.vjic4cPkJ0iMCIt5"}},"_id":"6e1JHoD1Jrz020R7"} +{"name":"Arc en os","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"tir","bonusmaniementoff":3,"bonusmaniementdef":0,"degats":"1d8 + 1","deuxmains":false,"courte":30,"moyenne":60,"longue":125,"tr":2,"rarete":10,"prix":500},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Dy9dzVhXbNAVm3zn"}},"_id":"7dXsPz1WDmL12leA"} +{"name":"Arc de cavalerie","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"tir","bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d6","deuxmains":false,"courte":25,"moyenne":50,"longue":75,"tr":1,"rarete":7,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.5EWrgNQjJMx1t2v1"}},"_id":"88UuW1bdpFuCmkqb"} +{"name":"Épée de maître","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1d8+ 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":120},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.kX3MbDFu9uYZVNf2"}},"_id":"9Eo9mRbPPZHN98Cr"} +{"name":"Pique filkharienne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d8 + 2","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.dF9LxfA1crZBmT92"}},"_id":"AYBujxf5C0XaW9iZ"} +{"name":"Lance ilmioréenne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":2,"degats":"1d8 + 2","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.8ApbiVgkx79OHVp2"}},"_id":"BN8LBnXSidpKa3OO"} +{"name":"Masse lourde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d10 + 1","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":80},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.DPfXgFj3gpjJ3nbR"}},"_id":"CeC5lAKs7NdPF05l"} +{"name":"Gourdin","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1D6","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.CBIfq9eRd2RmoI4H"}},"_id":"CqP80SQFQOefpGgd"} +{"name":"Rapière","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":3,"bonusmaniementdef":1,"degats":"1d8+ 1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.XIStcClTnmLoSwyR"}},"_id":"CupT9m8L909l4Fo5"} +{"name":"Hachette / Hache de lancer","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contactjet","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d4 + 1","deuxmains":false,"courte":5,"moyenne":10,"longue":15,"tr":1,"rarete":5,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.5NHbRanxXA5vUE3B"}},"_id":"DzkeP7jbruqW4nQH"} +{"name":"Lance légère","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d8","deuxmains":false,"courte":10,"moyenne":25,"longue":50,"tr":1,"rarete":5,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.LIVeq22E9EanRS9L"}},"_id":"FDeRBkxXwoZIuL9B"} +{"name":"Arc de chasse","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"tir","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 - 1","deuxmains":false,"courte":25,"moyenne":50,"longue":75,"tr":1,"rarete":8,"prix":250},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.TrYZ9BxYukS1mbBX"}},"_id":"Hrm08cpgAMMV6Jpq"} +{"name":"Coup de pied / poing / tête","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":3,"bonusmaniementdef":0,"degats":"1d4","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.nBPKHsYIM0HgMcBy"}},"_id":"Iw3j4oC6H8HJ9MFQ"} +{"name":"Lance lourde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":2,"degats":"1d10","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Kcl07bs7TOcne37W"}},"_id":"KY22L6Lx5WxgvyGD"} +{"name":"Couteau / Dague","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contactjet","bonusmaniementoff":3,"bonusmaniementdef":0,"degats":"1d4","deuxmains":false,"courte":3,"moyenne":6,"longue":15,"tr":1,"rarete":1,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.5a9GKIvNgbbXBq3s"}},"_id":"N5BbO2lGwzQnpvH0"} +{"name":"Hache de bataille dite lormyrienne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"2d6 + 2","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":250},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Lpa6kesbzgKVtogn"}},"_id":"Ss5vYfkV6su8vp6z"} +{"name":"Masse légère","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 + 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.xrWRNZBrEzkUQzRG"}},"_id":"SzgkzHvzma8NiMd5"} +{"name":"Sabre d’abordage","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d8","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.aNUqO9OZT0GBszvv"}},"_id":"U8CoqFhGuT3ZHeq1"} +{"name":"Javelot","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"jet","bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d6","deuxmains":false,"courte":25,"moyenne":50,"longue":75,"tr":1,"rarete":5,"prix":30},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Zwiz9E3TbeUP8qHH"}},"_id":"aELvOR7A9DIJKgBk"} +{"name":"Fourche / Faux de paysan","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D6","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":1,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.K5Ayim6mPKZoCSCc"}},"_id":"aJBVfqQ3JQNyVL7c"} +{"name":"Arme improvisée","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d6","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.E7gcmnNQK2t5OQjv"}},"_id":"c6l49ZmEBjUxfI3W"} +{"name":"Arc de guerre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"tir","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d10 + 1","deuxmains":false,"courte":30,"moyenne":50,"longue":100,"tr":1,"rarete":6,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Tq6lUFPTkBN5cBwn"}},"_id":"cKf5z3fajUnxJh0r"} +{"name":"Main gauche","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":3,"degats":"1d4 + 1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.BBii0qi1unvSRNO4"}},"_id":"fLHX6ut131CQI630"} +{"name":"Marteau de guerre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d8 + 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":6,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.6n2uSdYfRAsSqQnA"}},"_id":"freCCeiYGfWmUAQU"} +{"name":"Hallebarde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":2,"degats":"2d6","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.ZTdyIoMzE9kqm4e6"}},"_id":"lYtm5MwP96numskx"} +{"name":"Lance melnibonéenne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":2,"degats":"2d6+ 4","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":10,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.KAl5qXHeYDoYRU6G"}},"_id":"qHi8s2eKLWaSR5kT"} +{"name":"Bâton ferré ou lesté","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":2,"degats":"1D8","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":1},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.zoBHSbvJPnjbtPh6"}},"_id":"sHj90bPcMaDlOw51"} +{"name":"Épée courte / Glaive","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1D6+1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":4,"prix":40},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Mxv5gMHRvRrsuhPA"}},"_id":"sju2r73hUHyGbHYg"} +{"name":"Faucheur","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1d4 + 1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.OlmzE29fh9DFd8TF"}},"_id":"t2uQcWe7kirUOp3D"} +{"name":"Arc du Désert des Larmes","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"tir","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 + 1","deuxmains":false,"courte":25,"moyenne":50,"longue":75,"tr":1,"rarete":8,"prix":250},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.QmYjdRCAk3MnxKJg"}},"_id":"tn7L1zaimB0PThI5"} +{"name":"Fléau lourd","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d10+ 3","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.vDDw0qqM1Kg7Pu6T"}},"_id":"uatjBTFCE5ZCqhAd"} +{"name":"Hache","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 + 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":2,"prix":30},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.2MwgptY2kE4tgYBe"}},"_id":"v7ymzlEALvsk0poA"} +{"name":"Épée large","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1d6+ 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.iuAizxCvnUxmsjrn"}},"_id":"wWk0Wfer06Ttmouv"} +{"name":"Épée longue","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"2d6 + 1","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":250},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.yiYtZ0sCUpMihvzz"}},"_id":"wv5EiePmPTpqFutt"} diff --git a/system.json b/system.json index da3ea1f..4a388bb 100644 --- a/system.json +++ b/system.json @@ -70,9 +70,9 @@ "styles": [ "styles/simple.css" ], - "templateVersion": 4, + "templateVersion": 7, "title": "Mournblade", "url": "", - "version": "0.0.6", + "version": "0.0.8", "background": "./images/ui/mournblade_welcome.webp" } \ No newline at end of file diff --git a/template.json b/template.json index 0ed5bca..ecb5773 100644 --- a/template.json +++ b/template.json @@ -87,10 +87,10 @@ "description": "" } }, - "character": { + "personnage": { "templates": [ "biodata", "core" ] }, - "npc": { + "pnj": { "templates": [ "npccore" ] } }, diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index 2fe1bd1..d352134 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -32,9 +32,22 @@
@@ -93,6 +106,9 @@ {{skill.name}} {{skill.data.niveau}} + {{skill.data.attribut1}} : {{skill.data.attribut1value}} + {{skill.data.attribut2}} : {{skill.data.attribut1value}} + {{skill.data.attribut3}} : {{skill.data.attribut1value}}
 
@@ -113,21 +129,19 @@
    -
  • - - -
  • -
  • - - -
  • -
+
  • + + +
  • +
  • + + +
  • +
      @@ -140,10 +154,6 @@ -
    • - - -
    @@ -156,76 +166,10 @@ -
  • - - -
  • -
    -
    -

    Apparence actuelle :

    -
    - {{editor content=data.biodata.appactual target="data.biodata.appactual" button=true owner=owner - editable=editable}} -
    -
    -
    -

    Autres identités :

    -
    - {{editor content=data.biodata.identities target="data.biodata.identities" button=true owner=owner - editable=editable}} -
    -
    -
    -
    -
    -

    Traits particuliers :

    -
    - {{editor content=data.biodata.traits target="data.biodata.traits" button=true owner=owner - editable=editable}} -
    -
    -
    -

    Souvenirs quantiques :

    -
    - {{editor content=data.biodata.memories target="data.biodata.memories" button=true owner=owner - editable=editable}} -
    -
    -
    - -
    -
    -

    Rebuild :

    -
    - {{editor content=data.biodata.rebuild target="data.biodata.rebuild" button=true owner=owner - editable=editable}} -
    -
    -
    -

    Relations, contacts et acolytes :

    -
    - {{editor content=data.biodata.contacts target="data.biodata.contacts" button=true owner=owner - editable=editable}} -
    -
    -
    - -

    Qui suis-je :

    -
    - {{editor content=data.biodata.whoami target="data.biodata.whoami" button=true owner=owner - editable=editable}} -
    -
    -

    Notes :

    -
    - {{editor content=data.biodata.notes target="data.biodata.notes" button=true owner=owner editable=editable}} -
    -
    -
    diff --git a/templates/chat-generic-result.html b/templates/chat-generic-result.html index 658ae08..d494d20 100644 --- a/templates/chat-generic-result.html +++ b/templates/chat-generic-result.html @@ -5,50 +5,48 @@

    {{alias}}

    -
    - - {{#if img}} -
    - {{name}} -
    - {{/if}} +
    -
    -
    +{{#if img}} +
    + {{name}} +
    +{{/if}} -
    -
    + {{#if weaponName}} +
  • Weapon : {{weaponName}}
  • + {{/if}} + +
  • Formule : {{diceFormula}}
  • +
  • Total : {{finalResult}}
  • + + {{#if difficulte}} + {{#if isSuccess}} +
  • Succés!!!
  • + {{else}} +
  • Echec ...
  • + {{/if}} + {{/if}} + + {{#if isHeroique}} +
  • Succés Héroïque!!!
  • + {{/if}} + {{#if isDramatique}} +
  • Succés Dramatique!!!
  • + {{/if}} + + + + + \ No newline at end of file diff --git a/templates/roll-dialog-generic.html b/templates/roll-dialog-generic.html index 75c582d..5455966 100644 --- a/templates/roll-dialog-generic.html +++ b/templates/roll-dialog-generic.html @@ -3,86 +3,50 @@ {{#if img}} {{/if}} -

    {{title}}

    +

    {{title}}

    -
    +
    -
    - -
    - Stat Dice : - -  + {{statMod}} -
    - - {{#if specList}} -
    - Spec : - -   -
    - {{/if}} - -
    - Spec Dice : - -   -
    - -
    - Bonus Dice : - -   -
    - -
    - Hindrance Dice : - -   -
    - -
    - Other Dice : - -   -
    - +
    + {{attr.label}} + {{attr.value}}
    -
    - {{> systems/fvtt-pegasus-rpg/templates/partial-roll-select-effects.html}} + {{#if competence}} +
    + {{competence.name}} + {{competence.data.niveau}}
    + {{/if}} + +
    + Modificateur : + +
    + +
    + Difficulté : + +
    +
    - - + + \ No newline at end of file