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}}