Ajout distance

This commit is contained in:
2022-10-08 17:43:09 +02:00
parent edf8325109
commit 815b5ff2ac
4 changed files with 76 additions and 2 deletions

View File

@ -67,6 +67,44 @@ export class BoLRoll {
})
}
/* -------------------------------------------- */
static async detectDistance( weapon, target ) {
let visible, dist
if (weapon.system.properties.ranged || weapon.system.properties.throwing) {
console.log("target", target, weapon)
visible = canvas.effects.visibility.testVisibility(target.center, { object: _token })
dist = Number(canvas.grid.measureDistances([{ ray: new Ray(_token.center, target.center) }], { gridSpaces: false })).toFixed(2)
let range = Number(weapon.system.properties.range)
let rangeMsg = "BOL.chat.rangeout"
if ( dist <= range) {
rangeMsg = "BOL.chat.range0"
} else if (dist < range*2) {
rangeMsg = "BOL.chat.range1"
} else if (dist < range*3) {
rangeMsg = "BOL.chat.range2"
} else if (dist < range*4) {
rangeMsg = "BOL.chat.range3"
} else if (dist < range*5) {
rangeMsg = "BOL.chat.range4"
} else if (dist < range*6) {
rangeMsg = "BOL.chat.range5"
} else if (dist < range*7) {
rangeMsg = "BOL.chat.range6"
}
ChatMessage.create({
content: await renderTemplate('systems/bol/templates/chat/chat-info-range.hbs', {
weapon: weapon,
attackerName: _token.actor.name,
defenderName: target.actor.name,
weaponRange: weapon.system.properties.range,
visible: visible,
distance: dist,
rangeMsg: rangeMsg
})
})
}
}
/* -------------------------------------------- */
static weaponCheckWithWeapon(actor, weapon) {
@ -76,6 +114,9 @@ export class BoLRoll {
let attribute = eval(`actor.system.attributes.${weaponData.properties.attackAttribute}`)
let aptitude = eval(`actor.system.aptitudes.${weaponData.properties.attackAptitude}`)
// Compute distance
this.detectDistance( weapon, target)
// Manage specific case
let fightOption = actor.getActiveFightOption()
if (fightOption && fightOption.system.fightoptiontype == "fulldefense") {