From 2353912e914994ca48a9f671edb03abfa9d74ae7 Mon Sep 17 00:00:00 2001 From: sladecraven Date: Mon, 14 Mar 2022 14:09:26 +0100 Subject: [PATCH] Fix spec dice --- modules/pegasus-actor.js | 11 +++++++---- modules/pegasus-roll-dialog.js | 4 ++-- modules/pegasus-utility.js | 22 +++++++++++----------- system.json | 4 ++-- template.json | 1 + templates/item-ability-sheet.html | 4 ++++ 6 files changed, 27 insertions(+), 19 deletions(-) diff --git a/modules/pegasus-actor.js b/modules/pegasus-actor.js index 64f3944..44dc19b 100644 --- a/modules/pegasus-actor.js +++ b/modules/pegasus-actor.js @@ -301,8 +301,8 @@ export class PegasusActor extends Actor { for(let key of statThreatLevel) { // Init with concerned stats tl += PegasusUtility.getDiceValue( this.data.data.statistics[key].value ) } - let powers = this.getPowers() - if ( powers && powers.length > 0 ) { // Then add some mental ones of powers + let powers = duplicate( this.getPowers() || []) + if ( powers.length > 0 ) { // Then add some mental ones of powers tl += PegasusUtility.getDiceValue( this.data.data.statistics.foc.value ) tl += PegasusUtility.getDiceValue( this.data.data.statistics.mnd.value ) } @@ -326,7 +326,10 @@ export class PegasusActor extends Actor { for(let shield of shields) { tl += PegasusUtility.getDiceValue(shield.data.level) } - + let abilities = duplicate(this.getAbilities()) + for (let ability of abilities) { + tl += ability.data.threatlevel + } let equipments = this.getEquipmentsOnly() for (let equip of equipments) { tl += equip.data.threatlevel @@ -1133,7 +1136,7 @@ export class PegasusActor extends Actor { rollData.actorId = this.id rollData.img = this.img rollData.activePerks = duplicate(this.getActivePerks()) - + if (statKey) { rollData.statKey = statKey rollData.stat = this.getStat(statKey) diff --git a/modules/pegasus-roll-dialog.js b/modules/pegasus-roll-dialog.js index b2ed5cc..6b7cbb3 100644 --- a/modules/pegasus-roll-dialog.js +++ b/modules/pegasus-roll-dialog.js @@ -187,9 +187,9 @@ export class PegasusRollDialog extends Dialog { 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.specDicesLevel = spec.data.level this.rollData.specName = spec.name - $('#specDicesLevel').val(this.rollData.specDiceLevel) + $('#specDicesLevel').val(this.rollData.specDicesLevel) } else { this.rollData.specName = undefined $('#specDicesLevel').val(0) diff --git a/modules/pegasus-utility.js b/modules/pegasus-utility.js index d0300fd..15fe683 100644 --- a/modules/pegasus-utility.js +++ b/modules/pegasus-utility.js @@ -334,7 +334,7 @@ export class PegasusUtility { /* -------------------------------------------- */ static async updateDefenseState(defenderId, rollId) { - this.defenderStore[defenderId] = rollId; + this.defenderStore[defenderId] = rollId if (game.user.character && game.user.character.id == defenderId) { let defender = game.actors.get(defenderId); let chatData = { @@ -470,30 +470,30 @@ export class PegasusUtility { let dicePool = [{ name: "stat", level: 0, statmod: 0 }, { name: "spec", level: 0 }, { name: "bonus", level: 0 }, { name: "hindrance", level: 0 }, { name: "other", level: 0 }]; if (rollData.stat) { - dicePool[0].level += Number(rollData.stat.value); - dicePool[0].statmod = Number(rollData.stat.mod); + dicePool[0].level += Number(rollData.stat.value) + dicePool[0].statmod = Number(rollData.stat.mod) } if (rollData.statDicesLevel) { - dicePool[0].level = rollData.statDicesLevel; + dicePool[0].level = rollData.statDicesLevel } if (rollData.selectedSpec && rollData.selectedSpec != "0") { - rollData.spec = rollData.specList.find(item => item._id == rollData.selectedSpec); - rollData.spec.data.dice = PegasusUtility.getDiceFromLevel(rollData.spec.data.level); + rollData.spec = rollData.specList.find(item => item._id == rollData.selectedSpec) + rollData.spec.data.dice = PegasusUtility.getDiceFromLevel(rollData.spec.data.level) } if (rollData.spec) { - dicePool[1].level += Number(rollData.spec.data.level); + dicePool[1].level += Number(rollData.spec.data.level) } if (rollData.specDicesLevel) { - dicePool[1].level = rollData.specDicesLevel; + dicePool[1].level = rollData.specDicesLevel } if (rollData.bonusDicesLevel) { - dicePool[2].level += Number(rollData.bonusDicesLevel); + dicePool[2].level += Number(rollData.bonusDicesLevel) } if (rollData.hindranceDicesLevel) { - dicePool[3].level += Number(rollData.hindranceDicesLevel); + dicePool[3].level += Number(rollData.hindranceDicesLevel) } if (rollData.otherDicesLevel) { - dicePool[4].level += Number(rollData.otherDicesLevel); + dicePool[4].level += Number(rollData.otherDicesLevel) } let diceFormulaTab = []; diff --git a/system.json b/system.json index ed5ba5c..c654e06 100644 --- a/system.json +++ b/system.json @@ -180,9 +180,9 @@ "styles": [ "styles/simple.css" ], - "templateVersion": 88, + "templateVersion": 89, "title": "Pegasus RPG", "url": "https://www.uberwald.me/data/files/fvtt-pegasus-rpg", - "version": "0.5.7", + "version": "0.5.9", "background" : "./images/ui/pegasus_welcome_page.webp" } diff --git a/template.json b/template.json index d01a0f5..2557e41 100644 --- a/template.json +++ b/template.json @@ -260,6 +260,7 @@ "opponenthindrance": 0, "attackgained": [], "armorgained": [], + "threatlevel": 0, "description": "" }, "specialisation": { diff --git a/templates/item-ability-sheet.html b/templates/item-ability-sheet.html index a45ad6d..ef9da6c 100644 --- a/templates/item-ability-sheet.html +++ b/templates/item-ability-sheet.html @@ -107,6 +107,10 @@ --> +
  • + +
  • +