forked from public/bol
Ajout distance
This commit is contained in:
@ -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") {
|
||||
|
Reference in New Issue
Block a user