Fix: attaques à distance
This commit is contained in:
@@ -36,19 +36,18 @@ export class Distance {
|
||||
}
|
||||
|
||||
static distance(token, defenderToken) {
|
||||
if (token instanceof Token && defenderToken instanceof Token) {
|
||||
const ray = new foundry.canvas.geometry.Ray(
|
||||
token.getCenterPoint(),
|
||||
defenderToken.getCenterPoint()
|
||||
)
|
||||
return Number(canvas.grid.measureDistances([{ ray }], { gridSpaces: false }))
|
||||
if (Distance.$isToken(token) && Distance.$isToken(defenderToken)) {
|
||||
const source = token.getCenterPoint()
|
||||
const target = defenderToken.getCenterPoint()
|
||||
const measure = canvas.grid.measurePath([ source, target])
|
||||
return measure.distance
|
||||
}
|
||||
return -1 /* distance indéterminée */
|
||||
}
|
||||
|
||||
static isVisible(token, defenderToken) {
|
||||
// TODO: regarder les StatusEffect aveuglé?
|
||||
if (token instanceof Token && defenderToken instanceof Token) {
|
||||
if (Distance.$isToken(token) && Distance.$isToken(defenderToken)) {
|
||||
return canvas.effects.visibility.testVisibility(defenderToken.getCenterPoint(), { object: token })
|
||||
}
|
||||
return true
|
||||
@@ -79,11 +78,11 @@ export class Distance {
|
||||
}
|
||||
|
||||
static ajustementMouvement(defenderToken) {
|
||||
if (defenderToken instanceof Token) {
|
||||
if (Distance.$isToken(defenderToken)) {
|
||||
if (defenderToken.actor?.getSurprise(true) != '') return { msg: "immobile (surprise)", diff: 0 };
|
||||
if (defenderToken.inCombat) return { msg: "en mouvement (combat)", diff: -4 };
|
||||
if (defenderToken.inCombat) return { msg: "en combat", diff: -4 };
|
||||
}
|
||||
return { msg: "à déterminer (0 immobile, -3 actif, -4 en mouvement, -5 en zig-zag)", diff: -3 };
|
||||
return { msg: "à déterminer", diff: -3 };
|
||||
}
|
||||
|
||||
static diff(...ajustements) {
|
||||
@@ -116,4 +115,8 @@ export class Distance {
|
||||
return undefined
|
||||
}
|
||||
|
||||
static $isToken(token) {
|
||||
return token instanceof Token || token instanceof TokenDocument
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user