From c7a1133334b917966f18a4fd855b6f679bb96aa0 Mon Sep 17 00:00:00 2001 From: sladecraven Date: Sun, 5 Jun 2022 15:54:17 +0200 Subject: [PATCH] Gestion/assistance aventure/eclat --- assets/icons/adresse.webp | Bin 0 -> 7790 bytes assets/icons/bonneaventure.webp | Bin 0 -> 15154 bytes assets/icons/clairvoyance.webp | Bin 0 -> 11612 bytes assets/icons/eclat.webp | Bin 0 -> 10362 bytes assets/icons/presence.webp | Bin 0 -> 15300 bytes assets/icons/puissance.webp | Bin 0 -> 10784 bytes assets/icons/trempe.webp | Bin 0 -> 8360 bytes modules/mournblade-actor-sheet.js | 1 + modules/mournblade-actor.js | 58 ++++++-- modules/mournblade-roll-dialog.js | 4 +- modules/mournblade-utility.js | 227 +++++++++++++++++++++++------ templates/actor-sheet.html | 34 ++++- templates/chat-generic-result.html | 10 +- templates/roll-dialog-generic.html | 7 + 14 files changed, 280 insertions(+), 61 deletions(-) create mode 100644 assets/icons/adresse.webp create mode 100644 assets/icons/bonneaventure.webp create mode 100644 assets/icons/clairvoyance.webp create mode 100644 assets/icons/eclat.webp create mode 100644 assets/icons/presence.webp create mode 100644 assets/icons/puissance.webp create mode 100644 assets/icons/trempe.webp diff --git a/assets/icons/adresse.webp b/assets/icons/adresse.webp new file mode 100644 index 0000000000000000000000000000000000000000..e36b9646f7103915c3cd7a71a91d2bd021546adb GIT binary patch literal 7790 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 A-T(jq literal 0 HcmV?d00001 diff --git a/assets/icons/bonneaventure.webp b/assets/icons/bonneaventure.webp new file mode 100644 index 0000000000000000000000000000000000000000..a32ad80a2149546f00ed16d4df4437f26d58cc98 GIT binary patch literal 15154 zcmV-2JI%yWNk&F0I{*MzMM6+kP&gnSI{*MM>HwVqDgXii0zOeDkwv4TA(GfN1ULl* zvA2FLH}uOd3VQLXlMp@uiyUA6NAnlR>yr1+%75$rMEXSRAAvus^Rc9FOa0pZZ}$)L z9+F^F5V(z<$ww)_ckSmi=k>GyU8A@9f{e2lfB<-~PY$ z_J{uIdjNjZ|Mm6N{qFce{fB z{lNd>?q&MP|KOi%!zXbsZz>@GrF;J>Ufxtf0ZcoIdwEQCjKeA-4kskGSE#({#0lI> z+scSQDTi?`v$&}hW4}0{!!5Z_6}buJBU+Gs5P(w-;zAQhsDuG0&n_UHA(0RZLz$*+&}I(89{?9N7DbdwEd^ z0z(PZPz)b#^)&D%kLjN1(490%rLE*q`3RQMZ$?3+P$MJNv7Pm2q@fpnN6`ob`j4%D zwV~?IG$yK=rc#;iuqq?lC`oH3d8gfA_#VgDzH^yN)cE%@SfIsqZ

$Qt8(3zT7n? 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 literal 0 HcmV?d00001 diff --git a/assets/icons/clairvoyance.webp b/assets/icons/clairvoyance.webp new file mode 100644 index 0000000000000000000000000000000000000000..196810eefcdba1ae0b092923a6a6d767ec62a641 GIT binary patch literal 11612 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 Y!w`}K(ABtWDVH}?000001FZl60M6+Z^#A|> literal 0 HcmV?d00001 diff --git a/assets/icons/presence.webp b/assets/icons/presence.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f2a4ad9de9c0ffcefbf4c0c20ff9c7bca2e52ec GIT binary patch literal 15300 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 XQDqc;3pmK&XPN6knRo>N{%`y*G{i%_ literal 0 HcmV?d00001 diff --git a/assets/icons/trempe.webp b/assets/icons/trempe.webp new file mode 100644 index 0000000000000000000000000000000000000000..e2371df930cc217ecdb87759750495991b1ab202 GIT binary patch literal 8360 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 item.type == "arme" ) + return this.data.items.filter(item => item.type == "arme") } /* -------------------------------------------- */ getArmors() { - return this.data.items.filter(item => item.type == "protection" ) + return this.data.items.filter(item => item.type == "protection") } /* -------------------------------------------- */ getSkills() { let comp = [] - for( let item of this.data.items) { + for (let item of this.data.items) { item = duplicate(item) - if ( item.type == "competence") { + if (item.type == "competence") { item.data.attribut1total = item.data.niveau + (this.data.data.attributs[item.data.attribut1]?.value || 0) item.data.attribut2total = item.data.niveau + (this.data.data.attributs[item.data.attribut2]?.value || 0) item.data.attribut3total = item.data.niveau + (this.data.data.attributs[item.data.attribut3]?.value || 0) @@ -69,12 +69,17 @@ export class MournbladeActor extends Actor { item.data.attribut1label = this.data.data.attributs[item.data.attribut1]?.label || "" item.data.attribut2label = this.data.data.attributs[item.data.attribut2]?.label || "" item.data.attribut3label = this.data.data.attributs[item.data.attribut3]?.label || "" - comp.push( item ) - } + comp.push(item) + } } return comp } - + + /* -------------------------------------------- */ + getAlignement() { + return (this.data.data.balance.loi > this.data.data.balance.chaos) ? "loyal" : "chaotique" + } + /* -------------------------------------------- */ prepareBaseData() { } @@ -119,7 +124,7 @@ export class MournbladeActor extends Actor { /* -------------------------------------------- */ editItemField(itemId, itemType, itemField, dataType, value) { - let item= this.data.items.find(item => item.id == itemId) + let item = this.data.items.find(item => item.id == itemId) if (item) { console.log("Item ", item, itemField, dataType, value) if (dataType.toLowerCase() == "number") { @@ -128,10 +133,39 @@ export class MournbladeActor extends Actor { value = String(value) } let update = { _id: item.id, [`data.${itemField}`]: value }; - this.updateEmbeddedDocuments( "Item", [update]) + this.updateEmbeddedDocuments("Item", [update]) } } + /* -------------------------------------------- */ + getBonneAventure() { + return this.data.data.bonneaventure.actuelle + } + + /* -------------------------------------------- */ + changeBonneAventure(value) { + let newBA = this.data.data.bonneaventure.actuelle + newBA += value + this.update({ 'data.bonneaventure.actuelle': newBA }) + } + + /* -------------------------------------------- */ + getEclat() { + return this.data.data.eclat.value + } + + /* -------------------------------------------- */ + changeEclat(value) { + let newE = this.data.data.eclat.value + newE += value + this.update({ 'data.eclat.value': newE }) + } + + /* -------------------------------------------- */ + canEclatDoubleD20( ) { + return ( this.getAlignement() == "loyal" && this.data.data.eclat.value> 0) + } + /* -------------------------------------------- */ compareName(a, b) { if (a.name < b.name) { @@ -198,13 +232,17 @@ export class MournbladeActor extends Actor { rollData.actorImg = this.img rollData.actorId = this.id rollData.img = this.img - + rollData.canEclatDoubleD20 = this.canEclatDoubleD20() + rollData.doubleD20 = false + if (attrKey) { rollData.attrKey = attrKey + rollData.actionImg = "systems/fvtt-mournblade/assets/icons/" + this.data.data.attributs[attrKey].labelnorm + ".webp" rollData.attr = duplicate(this.data.data.attributs[attrKey]) } if (compId) { rollData.competence = duplicate(this.data.items.get(compId) || {}) + rollData.actionImg = rollData.competence.img } return rollData } diff --git a/modules/mournblade-roll-dialog.js b/modules/mournblade-roll-dialog.js index a396ff0..b32ec97 100644 --- a/modules/mournblade-roll-dialog.js +++ b/modules/mournblade-roll-dialog.js @@ -63,6 +63,8 @@ export class MournbladeRollDialog extends Dialog { html.find('#difficulte').change(async (event) => { this.rollData.difficulte = Number(event.currentTarget.value) }) - + html.find('#doubleD20').change(async (event) => { + this.rollData.doubleD20 = event.currentTarget.checked + }) } } \ No newline at end of file diff --git a/modules/mournblade-utility.js b/modules/mournblade-utility.js index 87b58dd..b25b5d6 100644 --- a/modules/mournblade-utility.js +++ b/modules/mournblade-utility.js @@ -8,10 +8,12 @@ export class MournbladeUtility { /* -------------------------------------------- */ static async init() { - Hooks.on('renderChatLog', (log, html, data) => MournbladeUtility.chatListeners(html)); + Hooks.on('renderChatLog', (log, html, data) => MournbladeUtility.chatListeners(html)) + Hooks.on("getChatLogEntryContext", (html, options) => MournbladeUtility.chatRollMenu(html, options)) + Hooks.on("getCombatTrackerEntryContext", (html, options) => { MournbladeUtility.pushInitiativeOptions(html, options); - }); + }) Hooks.on("dropCanvasData", (canvas, data) => { MournbladeUtility.dropItemOnToken(canvas, data) }); @@ -49,14 +51,14 @@ export class MournbladeUtility { static getModificateurOptions() { let opt = [] for (let i = -15; i <= 15; i++) { - opt.push( `` ) + opt.push(``) } return opt.concat("\n") } /* -------------------------------------------- */ static getAttributs() { - return { adr: "Adresse", pui: "Puissance", cla: "Clairvoyance", pre: "Présence", tre: "Trempe"} + return { adr: "Adresse", pui: "Puissance", cla: "Clairvoyance", pre: "Présence", tre: "Trempe" } } /* -------------------------------------------- */ static pushInitiativeOptions(html, options) { @@ -101,9 +103,9 @@ export class MournbladeUtility { static async preloadHandlebarsTemplates() { const templatePaths = [ - 'systems/fvtt-mournblade/templates/editor-notes-gm.html', - 'systems/fvtt-mournblade/templates/partial-item-description.html', - 'systems/fvtt-mournblade/templates/partial-list-niveau.html' + 'systems/fvtt-mournblade/templates/editor-notes-gm.html', + 'systems/fvtt-mournblade/templates/partial-item-description.html', + 'systems/fvtt-mournblade/templates/partial-list-niveau.html' ] return loadTemplates(templatePaths); } @@ -193,7 +195,7 @@ export class MournbladeUtility { } /* -------------------------------------------- */ static saveRollData(rollData) { - game.socket.emit("system.Mournblade-rpg", { + game.socket.emit("system.fvtt-mournblade", { name: "msg_update_roll", data: rollData }); // Notify all other clients of the roll this.updateRollData(rollData); @@ -260,51 +262,77 @@ export class MournbladeUtility { } } + /* -------------------------------------------- */ + static computeResult(rollData) { + if (rollData.mainDice == "1d20") { + let diceValue = rollData.roll.terms[0].results[0].result + diceValue *= (rollData.doubleD20) ? 2 : 1 + //console.log("PAIR/IMP", diceValue) + if (diceValue % 2 == 1) { + //console.log("PAIR/IMP2", diceValue) + rollData.finalResult -= rollData.roll.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 = (rollData.roll.finalResult >= rollData.difficulte) + rollData.isHeroique = ((rollData.roll.finalResult - rollData.difficulte) >= 10) + rollData.isDramatique = ((rollData.roll.finalResult - rollData.difficulte) <= -10) + } + } + /* -------------------------------------------- */ static async rollMournblade(rollData) { rollData.diceFormula = rollData.mainDice - if (rollData.competence) { + if ( rollData.doubleD20) { // Multiply result ! + rollData.diceFormula += "*2" + if (!rollData.isReroll) { + let actor = game.actors.get(rollData.actorId) + actor.changeEclat(-1) + } + } + if (rollData.competence) { let compmod = (rollData.competence.data.niveau == 0) ? -3 : 0 rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.data.niveau}+${rollData.modificateur}+${compmod}` } 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 - } + let myRoll = new Roll(rollData.diceFormula).roll({ async: false }) + 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.computeResult( rollData) + this.createChatWithRollMode(rollData.alias, { content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-generic-result.html`, rollData) - }); + }, rollData) + + } + + /* -------------------------------------------- */ + static async bonusRollMournblade(rollData) { + rollData.bonusFormula = rollData.addedBonus + + let bonusRoll = new Roll(rollData.bonusFormula).roll({async: false}) + await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode")); + rollData.bonusRoll = bonusRoll + + rollData.finalResult += rollData.bonusRoll.total + + this.computeResult( rollData) + + this.createChatWithRollMode(rollData.alias, { + content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-generic-result.html`, rollData) + }, rollData) - // And save the roll - this.saveRollData(rollData); } /* -------------------------------------------- */ @@ -364,7 +392,7 @@ export class MournbladeUtility { } /* -------------------------------------------- */ - static createChatMessage(name, rollMode, chatOptions) { + static async createChatMessage(name, rollMode, chatOptions, rollData = undefined) { switch (rollMode) { case "blindroll": // GM only if (!game.user.isGM) { @@ -381,8 +409,10 @@ export class MournbladeUtility { chatOptions.whisper = this.getWhisperRecipients(rollMode, name); break; } - chatOptions.alias = chatOptions.alias || name; - ChatMessage.create(chatOptions); + chatOptions.alias = chatOptions.alias || name + let msg = await ChatMessage.create(chatOptions) + console.log("=======>", rollData) + msg.setFlag("world", "mournblade-roll", rollData) } /* -------------------------------------------- */ @@ -390,7 +420,7 @@ export class MournbladeUtility { let rollData = { rollId: randomID(16), rollMode: game.settings.get("core", "rollMode"), - modificateursOptions : this.getModificateurOptions(), + modificateursOptions: this.getModificateurOptions(), difficulte: 0, modificateur: 0, } @@ -413,8 +443,119 @@ export class MournbladeUtility { } /* -------------------------------------------- */ - static createChatWithRollMode(name, chatOptions) { - this.createChatMessage(name, game.settings.get("core", "rollMode"), chatOptions); + static createChatWithRollMode(name, chatOptions, rollData = undefined) { + this.createChatMessage(name, game.settings.get("core", "rollMode"), chatOptions, rollData) + } + + /* -------------------------------------------- */ + static applyBonneAventureRoll(li, changed, addedBonus) { + let msgId = li.data("message-id") + let msg = game.messages.get(msgId) + if (msg) { + let rollData = msg.getFlag("world", "mournblade-roll") + let actor = game.actors.get(rollData.actorId) + actor.changeBonneAventure( changed ) + rollData.isReroll = true + rollData.textBonus = "Bonus de Points d'Aventure" + if (addedBonus == "reroll") { + MournbladeUtility.rollMournblade(rollData) + } else { + rollData.addedBonus = addedBonus + MournbladeUtility.bonusRollMournblade(rollData) + } + } + } + + /* -------------------------------------------- */ + static applyEclatRoll(li, changed, addedBonus) { + let msgId = li.data("message-id") + let msg = game.messages.get(msgId) + if (msg) { + let rollData = msg.getFlag("world", "mournblade-roll") + let actor = game.actors.get(rollData.actorId) + actor.changeEclat( changed ) + rollData.isReroll = true + rollData.textBonus = "Bonus d'Eclat" + rollData.addedBonus = addedBonus + MournbladeUtility.bonusRollMournblade(rollData) + } + } + + /* -------------------------------------------- */ + static chatRollMenu(html, options) { + let canApply = li => canvas.tokens.controlled.length && li.find(".mournblade-roll").length + let canApplyBALoyal = function (li) { + let message = game.messages.get(li.attr("data-message-id")) + let rollData = message.getFlag("world", "mournblade-roll") + let actor = game.actors.get(rollData.actorId) + return ( !rollData.isReroll && actor.getBonneAventure() > 0 && actor.getAlignement() == "loyal") + } + let canApplyPELoyal = function (li) { + let message = game.messages.get(li.attr("data-message-id")) + let rollData = message.getFlag("world", "mournblade-roll") + let actor = game.actors.get(rollData.actorId) + return ( !rollData.isReroll && actor.getEclat() > 0 && actor.getAlignement() == "loyal") + } + let canApplyBAChaotique = function (li) { + let message = game.messages.get(li.attr("data-message-id")) + let rollData = message.getFlag("world", "mournblade-roll") + let actor = game.actors.get(rollData.actorId) + return ( !rollData.isReroll && actor.getBonneAventure() > 0 && actor.getAlignement() == "chaotique") + } + let canApplyBAChaotique3 = function (li) { + let message = game.messages.get(li.attr("data-message-id")) + let rollData = message.getFlag("world", "mournblade-roll") + let actor = game.actors.get(rollData.actorId) + return ( !rollData.isReroll && actor.getBonneAventure() > 2 && actor.getAlignement() == "chaotique") + } + let canApplyPEChaotique = function (li) { + let message = game.messages.get(li.attr("data-message-id")) + let rollData = message.getFlag("world", "mournblade-roll") + let actor = game.actors.get(rollData.actorId) + return ( !rollData.isReroll && actor.getEclat() > 0 && actor.getAlignement() == "chaotique") + } + + options.push( + { + name: "Ajouer +3 (1 point de Bonne Aventure)", + icon: "", + condition: canApply && canApplyBALoyal, + callback: li => MournbladeUtility.applyBonneAventureRoll(li, -1, "+3") + } + ) + options.push( + { + name: "Ajouer +1d6 (1 point de Bonne Aventure)", + icon: "", + condition: canApply && canApplyBAChaotique, + callback: li => MournbladeUtility.applyBonneAventureRoll(li, -1, "+1d6") + } + ) + options.push( + { + name: "Relancer le dé (3 points de Bonne Aventure)", + icon: "", + condition: canApply && canApplyBAChaotique3, + callback: li => MournbladeUtility.applyBonneAventureRoll(li, -3, "reroll") + } + ) + options.push( + { + name: "Ajouter +10 (1 Point d'Eclat)", + icon: "", + condition: canApply && canApplyPELoyal, + callback: li => MournbladeUtility.applyEclatRoll(li, -1, "+10") + } + ) + options.push( + { + name: "Ajouter +1d20(1 Point d'Eclat)", + icon: "", + condition: canApply && canApplyPEChaotique, + callback: li => MournbladeUtility.applyEclatRoll(li, -1, "+1d20") + } + ) + return options } /* -------------------------------------------- */ diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index ddbac92..065bc43 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -48,13 +48,37 @@ +
+ +

Alignement : {{upperFirst alignement}}

+
+ + + + + + +
+

Bonne Aventure

- - + + + +
@@ -63,7 +87,8 @@

Eclat

- + + @@ -72,7 +97,8 @@

Expérience

- + + diff --git a/templates/chat-generic-result.html b/templates/chat-generic-result.html index d494d20..e226627 100644 --- a/templates/chat-generic-result.html +++ b/templates/chat-generic-result.html @@ -9,7 +9,7 @@ {{#if img}}
- {{name}} + {{name}}
{{/if}} @@ -18,12 +18,16 @@
    -
  • Attribut : {{attr.label}}
  • +
  • Attribut : {{attr.label}}
  • {{#if competence}}
  • Compétence : {{competence.name}}
  • {{/if}} + {{#if bonusRoll}} +
  • {{textBonus}} : {{bonusRoll.total}}
  • + {{/if}} + {{#if weaponName}}
  • Weapon : {{weaponName}}
  • {{/if}} @@ -43,7 +47,7 @@
  • Succés Héroïque!!!
  • {{/if}} {{#if isDramatique}} -
  • Succés Dramatique!!!
  • +
  • Echec Dramatique!!!
  • {{/if}}
diff --git a/templates/roll-dialog-generic.html b/templates/roll-dialog-generic.html index 5455966..902465e 100644 --- a/templates/roll-dialog-generic.html +++ b/templates/roll-dialog-generic.html @@ -46,6 +46,13 @@
+ {{#if canEclatDoubleD20}} +
+ Doubler le d20 (1 Point d'Eclat) + +
+ {{/if}} +