diff --git a/module/actor/actor.js b/module/actor/actor.js index 9bc4872..f4a1144 100644 --- a/module/actor/actor.js +++ b/module/actor/actor.js @@ -61,7 +61,7 @@ export class BoLActor extends Actor { } /* -------------------------------------------- */ getInitiativeMalus() { - if ( this.type === 'encounter' && (this.chartype == "adversary" || this.chartype == "tough")) { + if (this.type === 'encounter' && (this.chartype == "adversary" || this.chartype == "tough")) { return this.system.aptitudes.init.value } return 0 @@ -103,12 +103,12 @@ export class BoLActor extends Actor { let newVitality = 10 + this.system.attributes.vigor.value + this.system.resources.hp.bonus if (this.system.resources.hp.max != newVitality) { let actor = this - setTimeout( function() { actor.update({ 'system.resources.hp.max': newVitality }) }, 800 ) + setTimeout(function () { actor.update({ 'system.resources.hp.max': newVitality }) }, 800) } let newPower = 10 + this.system.attributes.mind.value + this.system.resources.power.bonus if (this.system.resources.power.max != newPower) { let actor = this - setTimeout( function() { actor.update({ 'system.resources.power.max': newPower }) }, 800 ) + setTimeout(function () { actor.update({ 'system.resources.power.max': newPower }) }, 800) } } } @@ -121,7 +121,7 @@ export class BoLActor extends Actor { super.prepareDerivedData() if (this.id) { this.updateResourcesData() - this.manageHealthState() + this.manageHealthState() } } } @@ -130,16 +130,16 @@ export class BoLActor extends Actor { get details() { return this.system.details } - addEffectModifiers( myList, dataPath) { + addEffectModifiers(myList, dataPath) { for (let attr of myList) { attr.numModifier = 0 attr.diceModifier = "" - let effects = this.items.filter( i => i.type === "feature" && i.system.subtype === "boleffect" && i.system.properties.identifier == dataPath+attr.key) + let effects = this.items.filter(i => i.type === "feature" && i.system.subtype === "boleffect" && i.system.properties.identifier == dataPath + attr.key) for (let effect of effects) { - if ( Number(effect.system.properties.modifier)) { + if (Number(effect.system.properties.modifier)) { attr.numModifier += Number(effect.system.properties.modifier) } else { - attr.diceModifier += "+"+effect.system.properties.modifier + attr.diceModifier += "+" + effect.system.properties.modifier } } } @@ -523,16 +523,16 @@ export class BoLActor extends Actor { } if (rollData.horoscopeType == "major") { let actorHoroscope = this - if(rollData.targetId) { + if (rollData.targetId) { let token = game.scenes.current.tokens.get(rollData.targetId) - actorHoroscope = token.actor + actorHoroscope = token.actor } if (rollData.isSuccess) { actorHoroscope.addHeroPoints(1) } else { actorHoroscope.subHeroPoints(1) } - rollData.horoscopeName = actorHoroscope.name + rollData.horoscopeName = actorHoroscope.name } if (rollData.horoscopeType == "majorgroup") { let rID = randomID(16) @@ -607,16 +607,18 @@ export class BoLActor extends Actor { /*-------------------------------------------- */ heroReroll() { - if (this.type == 'character') { + if (this.type == 'character' || this.system.villainy == 'adversary') { return this.system.resources.hero.value > 0; - } else { - if (this.system.villainy == 'adversary') { - return this.system.resources.hero.value > 0; - } } return false } - + /*-------------------------------------------- */ + getHeroPoints() { + if (this.type == 'character' || this.system.villainy == 'adversary') { + return this.system.resources.hero.value + } + return 0 + } /*-------------------------------------------- */ getResourcesFromType() { let resources = {}; @@ -842,7 +844,7 @@ export class BoLActor extends Actor { let msg = await ChatMessage.create({ alias: this.name, whisper: BoLUtility.getWhisperRecipientsAndGMs(this.name), - content: game.i18n.format( "BOL.chat.inforecup", {name: this.name, recupHP: recupHP} ) + content: game.i18n.format("BOL.chat.inforecup", { name: this.name, recupHP: recupHP }) }) } @@ -860,12 +862,12 @@ export class BoLActor extends Actor { } /*-------------------------------------------- */ checkNumeric(myObject) { - if ( myObject) { + if (myObject) { for (let key in myObject) { - if ( myObject[key].value === null ) { + if (myObject[key].value === null) { myObject[key].value = 0 } - if ( myObject[key].value === NaN ) { + if (myObject[key].value === NaN) { myObject[key].value = 0 } } @@ -893,7 +895,7 @@ export class BoLActor extends Actor { fvttInit = 5 if (!rollData) { if (isCombat) { - if (game.user.isGM ) { + if (game.user.isGM) { if (this.hasPlayerOwner) { game.socket.emit("system.bol", { name: "msg_request_init_roll", data: { actorId: this.id, combatData } }) } else { @@ -949,7 +951,7 @@ export class BoLActor extends Actor { /*-------------------------------------------- */ incDecResources(target, value) { let newValue = this.system.resources[target].value + value - this.update({ [`system.resources.${target}.value`]: newValue }) + this.update({ [`system.resources.${target}.value`]: newValue }) } /*-------------------------------------------- */ async sufferDamage(damage) { diff --git a/module/controllers/bol-rolls.js b/module/controllers/bol-rolls.js index 0f699e1..4b26471 100644 --- a/module/controllers/bol-rolls.js +++ b/module/controllers/bol-rolls.js @@ -491,6 +491,7 @@ export class BoLRoll { if (defender) { // If target is selected rollData.defence = defender.defenseValue rollData.armorMalus = defender.armorMalusValue + rollData.defenderHeroPoints = defender.getHeroPoints() rollData.shieldBlock = 'none' let shields = defender.shields //console.log("Defender stats", defender) @@ -578,7 +579,7 @@ export class BoLRoll { const isMalus = (rollData.bmDice < 0) let rollbase = rollData.attrValue + rollData.aptValue - if (rollData.weapon && rollData.weapon.system.properties.onlymodifier) { + if (rollData.weapon?.system.properties.onlymodifier) { rollbase = 0 } let diceData = BoLUtility.getDiceData() diff --git a/module/system/bol-utility.js b/module/system/bol-utility.js index 59ca9bd..306837c 100644 --- a/module/system/bol-utility.js +++ b/module/system/bol-utility.js @@ -611,6 +611,7 @@ export class BoLUtility { attackId: rollData.id, attacker: rollData.attacker, defender: defender, + defenderHeroPoints:defender.getHeroPoints(), defenderWeapons: defenderWeapons, damageTotal: rollData.damageTotal, damagesIgnoresArmor: rollData.damagesIgnoresArmor, diff --git a/system.json b/system.json index 6f3d0da..fa62794 100644 --- a/system.json +++ b/system.json @@ -14,7 +14,7 @@ ], "url": "https://www.uberwald.me/gitea/public/bol", "license": "LICENSE.txt", - "version": "11.0.13", + "version": "11.0.14", "compatibility": { "minimum": "10", "verified": "11" @@ -202,7 +202,7 @@ ], "socket": true, "manifest": "https://www.uberwald.me/gitea/public/bol/raw/v10/system.json", - "download": "https://www.uberwald.me/gitea/public/bol/archive/bol-v11.0.13.zip", + "download": "https://www.uberwald.me/gitea/public/bol/archive/bol-v11.0.14.zip", "background": "systems/bol/ui/page_accueil.webp", "gridDistance": 1.5, "gridUnits": "m", diff --git a/templates/chat/rolls/defense-request-card.hbs b/templates/chat/rolls/defense-request-card.hbs index 3ca9093..231d19d 100644 --- a/templates/chat/rolls/defense-request-card.hbs +++ b/templates/chat/rolls/defense-request-card.hbs @@ -8,14 +8,12 @@ -{{#if isHeroAdversary}} - {{#if (gt defender.system.resources.hero.value 0)}} - +{{#if (gt defenderHeroPoints 0)}} + - {{#each defenderWeapons as |weapon idx|}} - - {{/each}} - {{/if}} + {{#each defenderWeapons as |weapon idx|}} + + {{/each}} {{/if}}