bmarian / token-tooltip-alt

A module that adds a tooltip next to the currently hovered token to show some useful information for players and DMs.
MIT License
9 stars 15 forks source link

[BUG] Showing on alt held with setting turned off #103

Closed websterguy closed 2 years ago

websterguy commented 2 years ago

When the option to show on is turned off, am still getting the tooltip for all visible tokens when holding alt.

image

{"gmSettings":{"default":{"items":[{"disposition":"FRIENDLY","items":[{"value":"{hp = <attributes.hp.value>;\n hpm = <attributes.hp.max>;\n concat(string(hp), \"/\", string(hpm))\n}","icon":"fa-heart","isFunction":false,"expression":true,"isNumber":false,"color":"#d31d1d"},{"value":"attributes.ac.value","icon":"fa-shield-alt","isFunction":false,"expression":false,"isNumber":false,"color":"#0262b6"},{"value":"{<saves.fortitude.value>+10}","icon":"fa-chess-rook","isFunction":false,"expression":true,"isNumber":false,"color":"#d1d1d1"},{"value":"{<saves.reflex.value>+10}","icon":"fa-running","isFunction":false,"expression":true,"isNumber":false,"color":"#60d2e6"},{"value":"{<saves.will.value>+10}","icon":"fa-brain","isFunction":false,"expression":true,"isNumber":false,"color":"#d756cc"},{"value":"{<skills.ath.value>+10}","icon":"fa-fist-raised","isFunction":false,"expression":true,"isNumber":false,"color":"#dd792c"},{"value":"{<skills.ste.value>+10}","icon":"fa-eye-slash","isFunction":false,"expression":true,"isNumber":false,"color":"#6d6467"},{"value":"{<attributes.perception.value>+10}","icon":"fa-eye","isFunction":false,"expression":true,"isNumber":false,"color":"#b85ee8"},{"value":"{concat(string(<attributes.speed.total>), \" ft\")}","icon":"fa-shoe-prints","isFunction":false,"expression":true,"isNumber":false,"color":"#c04b0c"},{"value":"let distance = tokenDistance(_token, token);\nreturn \"~\" +round5(distance) +\" ft\";\n/*\n  Total Distance between two tokens.\n*/\nfunction tokenDistance(token1, token2)\n{\n  if(!token1 || !token2) return;\n\n  let distance = measureDistancePF2(token1, token2);\n  if(token1.elevation !== token2.data.elevation)\n  {\n    let h_diff = token2.data.elevation > token1.data.elevation \n      ? token2.data.elevation - token1.data.elevation \n      : token1.data.elevation - token2.data.elevation;\n\n    return Math.sqrt(Math.pow(h_diff,2) + Math.pow(distance,2));\n  }else{\n    return distance;\n  }\n}\n\nfunction round5(x)\n{\n  return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;\n}\n\nfunction measureDistancePF2(p0, p1){\n        const gs = canvas.dimensions.size;\n        const ray = new Ray(p0, p1);\n        // How many squares do we travel across to get there? If 2.3, we should count that as 3 instead of 2; hence, Math.ceil\n        const nx = Math.ceil(Math.abs(ray.dx / gs));\n        const ny = Math.ceil(Math.abs(ray.dy / gs));\n\n        // Get the number of straight and diagonal moves\n        const nDiagonal = Math.min(nx, ny);\n        const nStraight = Math.abs(ny - nx);\n\n        // Diagonals in PF pretty much count as 1.5 times a straight\n        const distance = Math.floor(nDiagonal * 1.5 + nStraight);\n        const distanceOnGrid = distance * canvas.dimensions.distance;\n        return distanceOnGrid;\n    }","icon":"fa-ruler","isFunction":true,"expression":false,"isNumber":false,"color":"#fbdf2d"}]},{"disposition":"NEUTRAL","items":[{"value":"{hp = <attributes.hp.value>;\n hpm = <attributes.hp.max>;\n concat(string(hp), \"/\", string(hpm))\n}","icon":"fa-heart","isFunction":false,"expression":true,"isNumber":false,"color":"#d31d1d"},{"value":"attributes.ac.value","icon":"fa-shield-alt","isFunction":false,"expression":false,"isNumber":false,"color":"#0262b6"},{"value":"{<saves.fortitude.value>+10}","icon":"fa-chess-rook","isFunction":false,"expression":true,"isNumber":false,"color":"#d1d1d1"},{"value":"{<saves.reflex.value>+10}","icon":"fa-running","isFunction":false,"expression":true,"isNumber":false,"color":"#60d2e6"},{"value":"{<saves.will.value>+10}","icon":"fa-brain","isFunction":false,"expression":true,"isNumber":false,"color":"#d756cc"},{"value":"{<skills.ath.value>+10}","icon":"fa-fist-raised","isFunction":false,"expression":true,"isNumber":false,"color":"#dd792c"},{"value":"{<skills.ste.value>+10}","icon":"fa-eye-slash","isFunction":false,"expression":true,"isNumber":false,"color":"#6d6467"},{"value":"{<attributes.perception.value>+10}","icon":"fa-eye","isFunction":false,"expression":true,"isNumber":false,"color":"#b85ee8"},{"value":"{concat(string(<attributes.speed.total>), \" ft\")}","icon":"fa-shoe-prints","isFunction":false,"expression":true,"isNumber":false,"color":"#c04b0c"},{"value":"let distance = tokenDistance(_token, token);\nreturn \"~\" +round5(distance) +\" ft\";\n/*\n  Total Distance between two tokens.\n*/\nfunction tokenDistance(token1, token2)\n{\n  if(!token1 || !token2) return;\n\n  let distance = measureDistancePF2(token1, token2);\n  if(token1.elevation !== token2.data.elevation)\n  {\n    let h_diff = token2.data.elevation > token1.data.elevation \n      ? token2.data.elevation - token1.data.elevation \n      : token1.data.elevation - token2.data.elevation;\n\n    return Math.sqrt(Math.pow(h_diff,2) + Math.pow(distance,2));\n  }else{\n    return distance;\n  }\n}\n\nfunction round5(x)\n{\n  return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;\n}\n\nfunction measureDistancePF2(p0, p1){\n        const gs = canvas.dimensions.size;\n        const ray = new Ray(p0, p1);\n        // How many squares do we travel across to get there? If 2.3, we should count that as 3 instead of 2; hence, Math.ceil\n        const nx = Math.ceil(Math.abs(ray.dx / gs));\n        const ny = Math.ceil(Math.abs(ray.dy / gs));\n\n        // Get the number of straight and diagonal moves\n        const nDiagonal = Math.min(nx, ny);\n        const nStraight = Math.abs(ny - nx);\n\n        // Diagonals in PF pretty much count as 1.5 times a straight\n        const distance = Math.floor(nDiagonal * 1.5 + nStraight);\n        const distanceOnGrid = distance * canvas.dimensions.distance;\n        return distanceOnGrid;\n    }","icon":"fa-ruler","isFunction":true,"expression":false,"isNumber":false,"color":"#fbdf2d"}]},{"disposition":"HOSTILE","items":[{"value":"{hp = <attributes.hp.value>;\n hpm = <attributes.hp.max>;\n concat(string(hp), \"/\", string(hpm))\n}","icon":"fa-heart","isFunction":false,"expression":true,"isNumber":false,"color":"#d31d1d"},{"value":"attributes.ac.value","icon":"fa-shield-alt","isFunction":false,"expression":false,"isNumber":false,"color":"#0262b6"},{"value":"{<saves.fortitude.value>+10}","icon":"fa-chess-rook","isFunction":false,"expression":true,"isNumber":false,"color":"#d1d1d1"},{"value":"{<saves.reflex.value>+10}","icon":"fa-running","isFunction":false,"expression":true,"isNumber":false,"color":"#60d2e6"},{"value":"{<saves.will.value>+10}","icon":"fa-brain","isFunction":false,"expression":true,"isNumber":false,"color":"#d756cc"},{"value":"{<skills.ath.value>+10}","icon":"fa-fist-raised","isFunction":false,"expression":true,"isNumber":false,"color":"#dd792c"},{"value":"{<skills.ste.value>+10}","icon":"fa-eye-slash","isFunction":false,"expression":true,"isNumber":false,"color":"#6d6467"},{"value":"{<attributes.perception.value>+10}","icon":"fa-eye","isFunction":false,"expression":true,"isNumber":false,"color":"#b85ee8"},{"value":"{concat(string(<attributes.speed.total>), \" ft\")}","icon":"fa-shoe-prints","isFunction":false,"expression":true,"isNumber":false,"color":"#c04b0c"},{"value":"let distance = tokenDistance(_token, token);\nreturn \"~\" +round5(distance) +\" ft\";\n/*\n  Total Distance between two tokens.\n*/\nfunction tokenDistance(token1, token2)\n{\n  if(!token1 || !token2) return;\n\n  let distance = measureDistancePF2(token1, token2);\n  if(token1.elevation !== token2.data.elevation)\n  {\n    let h_diff = token2.data.elevation > token1.data.elevation \n      ? token2.data.elevation - token1.data.elevation \n      : token1.data.elevation - token2.data.elevation;\n\n    return Math.sqrt(Math.pow(h_diff,2) + Math.pow(distance,2));\n  }else{\n    return distance;\n  }\n}\n\nfunction round5(x)\n{\n  return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;\n}\n\nfunction measureDistancePF2(p0, p1){\n        const gs = canvas.dimensions.size;\n        const ray = new Ray(p0, p1);\n        // How many squares do we travel across to get there? If 2.3, we should count that as 3 instead of 2; hence, Math.ceil\n        const nx = Math.ceil(Math.abs(ray.dx / gs));\n        const ny = Math.ceil(Math.abs(ray.dy / gs));\n\n        // Get the number of straight and diagonal moves\n        const nDiagonal = Math.min(nx, ny);\n        const nStraight = Math.abs(ny - nx);\n\n        // Diagonals in PF pretty much count as 1.5 times a straight\n        const distance = Math.floor(nDiagonal * 1.5 + nStraight);\n        const distanceOnGrid = distance * canvas.dimensions.distance;\n        return distanceOnGrid;\n    }","icon":"fa-ruler","isFunction":true,"expression":false,"isNumber":false,"color":"#fbdf2d"}]}],"static":{"displayNameInTooltip":true,"useAccentEverywhere":false,"accentColor":"#bfb4f3","tokenDispositions":["FRIENDLY","NEUTRAL","HOSTILE"],"useAccentColorForEverything":false}},"character":{"items":[{"disposition":"FRIENDLY","items":[]},{"disposition":"NEUTRAL","items":[]},{"disposition":"HOSTILE","items":[]}],"static":{"displayNameInTooltip":true,"accentColor":"#dc6869","useAccentColorForEverything":false,"tokenDispositions":["FRIENDLY","NEUTRAL","HOSTILE"]}},"npc":{"items":[{"disposition":"FRIENDLY","items":[{"value":"attributes.ac.value","icon":"fa-shield-alt","isFunction":false,"expression":false,"isNumber":false,"color":"#0262b6"},{"value":"{<saves.fortitude.value>+10}","icon":"fa-fist-raised","isFunction":false,"expression":true,"isNumber":false,"color":"#47d758"},{"value":"{<saves.reflex.value>+10}","icon":"fa-running","isFunction":false,"expression":true,"isNumber":false,"color":"#02bb96"},{"value":"{<saves.will.value>+10}","icon":"fa-brain","isFunction":false,"expression":true,"isNumber":false,"color":"#e68f8f"},{"value":"{<skills.ath.value>+10}","icon":"fa-dumbbell","isFunction":false,"expression":true,"isNumber":false,"color":"#e02929"},{"value":"{<skills.ste.value>+10}","icon":"fa-eye-slash","isFunction":false,"expression":true,"isNumber":false,"color":"#b9acb1"},{"value":"{<attributes.perception.value>+10}","icon":"fa-eye","isFunction":false,"expression":true,"isNumber":false,"color":"#b85ee8"},{"value":"attributes.speed.value","icon":"fa-shoe-prints","isFunction":false,"expression":false,"isNumber":true,"color":"#c04b0c"}]},{"disposition":"NEUTRAL","items":[{"value":"attributes.ac.value","icon":"fa-shield-alt","isFunction":false,"expression":false,"isNumber":false,"color":"#0262b6"},{"value":"{<saves.fortitude.value>+10}","icon":"fa-fist-raised","isFunction":false,"expression":true,"isNumber":false,"color":"#47d758"},{"value":"{<saves.reflex.value>+10}","icon":"fa-running","isFunction":false,"expression":true,"isNumber":false,"color":"#02bb96"},{"value":"{<saves.will.value>+10}","icon":"fa-brain","isFunction":false,"expression":true,"isNumber":false,"color":"#e68f8f"},{"value":"{<skills.ath.value>+10}","icon":"fa-dumbbell","isFunction":false,"expression":true,"isNumber":false,"color":"#e02929"},{"value":"{<skills.ste.value>+10}","icon":"fa-eye-slash","isFunction":false,"expression":true,"isNumber":false,"color":"#b9acb1"},{"value":"{<attributes.perception.value>+10}","icon":"fa-eye","isFunction":false,"expression":true,"isNumber":false,"color":"#b85ee8"},{"value":"attributes.speed.value","icon":"fa-shoe-prints","isFunction":false,"expression":false,"isNumber":true,"color":"#c04b0c"}]},{"disposition":"HOSTILE","items":[{"value":"attributes.ac.value","icon":"fa-shield-alt","isFunction":false,"expression":false,"isNumber":false,"color":"#0262b6"},{"value":"{<saves.fortitude.value>+10}","icon":"fa-fist-raised","isFunction":false,"expression":true,"isNumber":false,"color":"#47d758"},{"value":"{<saves.reflex.value>+10}","icon":"fa-running","isFunction":false,"expression":true,"isNumber":false,"color":"#02bb96"},{"value":"{<saves.will.value>+10}","icon":"fa-brain","isFunction":false,"expression":true,"isNumber":false,"color":"#e68f8f"},{"value":"{<skills.ath.value>+10}","icon":"fa-dumbbell","isFunction":false,"expression":true,"isNumber":false,"color":"#e02929"},{"value":"{<skills.ste.value>+10}","icon":"fa-eye-slash","isFunction":false,"expression":true,"isNumber":false,"color":"#b9acb1"},{"value":"{<attributes.perception.value>+10}","icon":"fa-eye","isFunction":false,"expression":true,"isNumber":false,"color":"#b85ee8"},{"value":"attributes.speed.value","icon":"fa-shoe-prints","isFunction":false,"expression":false,"isNumber":true,"color":"#c04b0c"}]}],"static":{"displayNameInTooltip":true,"useAccentEverywhere":false,"accentColor":"#c2512e","tokenDispositions":["FRIENDLY","NEUTRAL","HOSTILE"],"useAccentColorForEverything":false}},"hazard":{"items":[{"disposition":"FRIENDLY","items":[]},{"disposition":"NEUTRAL","items":[]},{"disposition":"HOSTILE","items":[]}],"static":{"displayNameInTooltip":true,"accentColor":"#cfcef3","useAccentColorForEverything":false,"tokenDispositions":["FRIENDLY","NEUTRAL","HOSTILE"]}},"loot":{"items":[{"disposition":"FRIENDLY","items":[]},{"disposition":"NEUTRAL","items":[]},{"disposition":"HOSTILE","items":[]}],"static":{"displayNameInTooltip":false,"useAccentEverywhere":false,"accentColor":"#542256","tokenDispositions":["FRIENDLY","NEUTRAL","HOSTILE"],"useAccentColorForEverything":false}},"familiar":{"items":[{"disposition":"FRIENDLY","items":[]},{"disposition":"NEUTRAL","items":[]},{"disposition":"HOSTILE","items":[]}],"static":{"displayNameInTooltip":true,"accentColor":"#7e2dad","useAccentColorForEverything":false,"tokenDispositions":["FRIENDLY","NEUTRAL","HOSTILE"]}},"vehicle":{"items":[{"disposition":"FRIENDLY","items":[]},{"disposition":"NEUTRAL","items":[]},{"disposition":"HOSTILE","items":[]}],"static":{"displayNameInTooltip":true,"accentColor":"#3bc13e","useAccentColorForEverything":false,"tokenDispositions":["FRIENDLY","NEUTRAL","HOSTILE"]}}},"playerSettings":{"default":{"items":[{"disposition":"OWNED","items":[{"value":"{hp = <attributes.hp.value>;\n hpm = <attributes.hp.max>;\n concat(string(hp), \"/\", string(hpm))\n}","icon":"fa-heart","isFunction":false,"expression":true,"isNumber":false,"color":"#d31d1d"},{"value":"attributes.ac.value","icon":"fa-shield-alt","isFunction":false,"expression":false,"isNumber":false,"color":"#0262b6"},{"value":"{concat(string(<attributes.speed.total>), \" ft\")}","icon":"fa-shoe-prints","isFunction":false,"expression":true,"isNumber":false,"color":"#c04b0c"},{"value":"let distance = tokenDistance(_token, token);\nreturn \"~\" +round5(distance) +\" ft\";\n/*\n  Total Distance between two tokens.\n*/\nfunction tokenDistance(token1, token2)\n{\n  if(!token1 || !token2) return;\n\n  let distance = measureDistancePF2(token1, token2);\n  if(token1.elevation !== token2.data.elevation)\n  {\n    let h_diff = token2.data.elevation > token1.data.elevation \n      ? token2.data.elevation - token1.data.elevation \n      : token1.data.elevation - token2.data.elevation;\n\n    return Math.sqrt(Math.pow(h_diff,2) + Math.pow(distance,2));\n  }else{\n    return distance;\n  }\n}\n\nfunction round5(x)\n{\n  return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;\n}\n\nfunction measureDistancePF2(p0, p1){\n        const gs = canvas.dimensions.size;\n        const ray = new Ray(p0, p1);\n        // How many squares do we travel across to get there? If 2.3, we should count that as 3 instead of 2; hence, Math.ceil\n        const nx = Math.ceil(Math.abs(ray.dx / gs));\n        const ny = Math.ceil(Math.abs(ray.dy / gs));\n\n        // Get the number of straight and diagonal moves\n        const nDiagonal = Math.min(nx, ny);\n        const nStraight = Math.abs(ny - nx);\n\n        // Diagonals in PF pretty much count as 1.5 times a straight\n        const distance = Math.floor(nDiagonal * 1.5 + nStraight);\n        const distanceOnGrid = distance * canvas.dimensions.distance;\n        return distanceOnGrid;\n    }","icon":"fa-ruler","isFunction":true,"expression":false,"isNumber":false,"color":"#fbdf2d"}]},{"disposition":"FRIENDLY","items":[{"value":"let distance = tokenDistance(_token, token);\nreturn \"~\" +round5(distance) +\" ft\";\n/*\n  Total Distance between two tokens.\n*/\nfunction tokenDistance(token1, token2)\n{\n  if(!token1 || !token2) return;\n\n  let distance = measureDistancePF2(token1, token2);\n  if(token1.elevation !== token2.data.elevation)\n  {\n    let h_diff = token2.data.elevation > token1.data.elevation \n      ? token2.data.elevation - token1.data.elevation \n      : token1.data.elevation - token2.data.elevation;\n\n    return Math.sqrt(Math.pow(h_diff,2) + Math.pow(distance,2));\n  }else{\n    return distance;\n  }\n}\n\nfunction round5(x)\n{\n  return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;\n}\n\nfunction measureDistancePF2(p0, p1){\n        const gs = canvas.dimensions.size;\n        const ray = new Ray(p0, p1);\n        // How many squares do we travel across to get there? If 2.3, we should count that as 3 instead of 2; hence, Math.ceil\n        const nx = Math.ceil(Math.abs(ray.dx / gs));\n        const ny = Math.ceil(Math.abs(ray.dy / gs));\n\n        // Get the number of straight and diagonal moves\n        const nDiagonal = Math.min(nx, ny);\n        const nStraight = Math.abs(ny - nx);\n\n        // Diagonals in PF pretty much count as 1.5 times a straight\n        const distance = Math.floor(nDiagonal * 1.5 + nStraight);\n        const distanceOnGrid = distance * canvas.dimensions.distance;\n        return distanceOnGrid;\n    }return \"~\" +round5(distance) +\" ft.\";\n/*\n  Total Distance between two tokens.\n*/\nfunction tokenDistance(token1, token2)\n{\n  if(!token1 || !token2) return;\n\n  let distance = canvas.grid.measureDistance(token1, token2);\n  if(token1.elevation !== token2.data.elevation)\n  {\n    let h_diff = token2.data.elevation > token1.data.elevation \n      ? token2.data.elevation - token1.data.elevation \n      : token1.data.elevation - token2.data.elevation;\n\n    return Math.sqrt(Math.pow(h_diff,2) + Math.pow(distance,2));\n  }else{\n    return distance;\n  }\n}\n\nfunction round5(x)\n{\n  return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;\n}","icon":"fa-ruler","isFunction":true,"expression":false,"isNumber":false,"color":"#fbdf2d"}]},{"disposition":"NEUTRAL","items":[{"value":"let distance = tokenDistance(_token, token);\nreturn \"~\" +round5(distance) +\" ft\";\n/*\n  Total Distance between two tokens.\n*/\nfunction tokenDistance(token1, token2)\n{\n  if(!token1 || !token2) return;\n\n  let distance = measureDistancePF2(token1, token2);\n  if(token1.elevation !== token2.data.elevation)\n  {\n    let h_diff = token2.data.elevation > token1.data.elevation \n      ? token2.data.elevation - token1.data.elevation \n      : token1.data.elevation - token2.data.elevation;\n\n    return Math.sqrt(Math.pow(h_diff,2) + Math.pow(distance,2));\n  }else{\n    return distance;\n  }\n}\n\nfunction round5(x)\n{\n  return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;\n}\n\nfunction measureDistancePF2(p0, p1){\n        const gs = canvas.dimensions.size;\n        const ray = new Ray(p0, p1);\n        // How many squares do we travel across to get there? If 2.3, we should count that as 3 instead of 2; hence, Math.ceil\n        const nx = Math.ceil(Math.abs(ray.dx / gs));\n        const ny = Math.ceil(Math.abs(ray.dy / gs));\n\n        // Get the number of straight and diagonal moves\n        const nDiagonal = Math.min(nx, ny);\n        const nStraight = Math.abs(ny - nx);\n\n        // Diagonals in PF pretty much count as 1.5 times a straight\n        const distance = Math.floor(nDiagonal * 1.5 + nStraight);\n        const distanceOnGrid = distance * canvas.dimensions.distance;\n        return distanceOnGrid;\n    }return \"~\" +round5(distance) +\" ft.\";\n/*\n  Total Distance between two tokens.\n*/\nfunction tokenDistance(token1, token2)\n{\n  if(!token1 || !token2) return;\n\n  let distance = canvas.grid.measureDistance(token1, token2);\n  if(token1.elevation !== token2.data.elevation)\n  {\n    let h_diff = token2.data.elevation > token1.data.elevation \n      ? token2.data.elevation - token1.data.elevation \n      : token1.data.elevation - token2.data.elevation;\n\n    return Math.sqrt(Math.pow(h_diff,2) + Math.pow(distance,2));\n  }else{\n    return distance;\n  }\n}\n\nfunction round5(x)\n{\n  return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;\n}","icon":"fa-ruler","isFunction":true,"expression":false,"isNumber":false,"color":"#fbdf2d"}]},{"disposition":"HOSTILE","items":[{"value":"let distance = tokenDistance(_token, token);\nreturn \"~\" +round5(distance) +\" ft\";\n/*\n  Total Distance between two tokens.\n*/\nfunction tokenDistance(token1, token2)\n{\n  if(!token1 || !token2) return;\n\n  let distance = measureDistancePF2(token1, token2);\n  if(token1.elevation !== token2.data.elevation)\n  {\n    let h_diff = token2.data.elevation > token1.data.elevation \n      ? token2.data.elevation - token1.data.elevation \n      : token1.data.elevation - token2.data.elevation;\n\n    return Math.sqrt(Math.pow(h_diff,2) + Math.pow(distance,2));\n  }else{\n    return distance;\n  }\n}\n\nfunction round5(x)\n{\n  return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;\n}\n\nfunction measureDistancePF2(p0, p1){\n        const gs = canvas.dimensions.size;\n        const ray = new Ray(p0, p1);\n        // How many squares do we travel across to get there? If 2.3, we should count that as 3 instead of 2; hence, Math.ceil\n        const nx = Math.ceil(Math.abs(ray.dx / gs));\n        const ny = Math.ceil(Math.abs(ray.dy / gs));\n\n        // Get the number of straight and diagonal moves\n        const nDiagonal = Math.min(nx, ny);\n        const nStraight = Math.abs(ny - nx);\n\n        // Diagonals in PF pretty much count as 1.5 times a straight\n        const distance = Math.floor(nDiagonal * 1.5 + nStraight);\n        const distanceOnGrid = distance * canvas.dimensions.distance;\n        return distanceOnGrid;\n    }return \"~\" +round5(distance) +\" ft.\";\n/*\n  Total Distance between two tokens.\n*/\nfunction tokenDistance(token1, token2)\n{\n  if(!token1 || !token2) return;\n\n  let distance = canvas.grid.measureDistance(token1, token2);\n  if(token1.elevation !== token2.data.elevation)\n  {\n    let h_diff = token2.data.elevation > token1.data.elevation \n      ? token2.data.elevation - token1.data.elevation \n      : token1.data.elevation - token2.data.elevation;\n\n    return Math.sqrt(Math.pow(h_diff,2) + Math.pow(distance,2));\n  }else{\n    return distance;\n  }\n}\n\nfunction round5(x)\n{\n  return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;\n}","icon":"fa-ruler","isFunction":true,"expression":false,"isNumber":false,"color":"#fbdf2d"}]}],"static":{"displayNameInTooltip":"FRIENDLY","useAccentEverywhere":false,"accentColor":"#bfb4f3","tokenDispositions":["OWNED","FRIENDLY","NEUTRAL","HOSTILE"],"useAccentColorForEverything":false}},"character":{"items":[{"disposition":"OWNED","items":[]},{"disposition":"FRIENDLY","items":[]},{"disposition":"NEUTRAL","items":[]},{"disposition":"HOSTILE","items":[]}],"static":{"displayNameInTooltip":"FRIENDLY","accentColor":"#73c320","useAccentColorForEverything":false,"tokenDispositions":["OWNED","FRIENDLY","NEUTRAL","HOSTILE"]}},"npc":{"items":[{"disposition":"OWNED","items":[]},{"disposition":"FRIENDLY","items":[]},{"disposition":"NEUTRAL","items":[]},{"disposition":"HOSTILE","items":[]}],"static":{"displayNameInTooltip":"FRIENDLY","useAccentEverywhere":false,"accentColor":"#000000","tokenDispositions":["OWNED","FRIENDLY","NEUTRAL","HOSTILE"],"useAccentColorForEverything":false}},"hazard":{"items":[{"disposition":"OWNED","items":[]},{"disposition":"FRIENDLY","items":[]},{"disposition":"NEUTRAL","items":[]},{"disposition":"HOSTILE","items":[]}],"static":{"displayNameInTooltip":"FRIENDLY","accentColor":"#159833","useAccentColorForEverything":false,"tokenDispositions":["OWNED","FRIENDLY","NEUTRAL","HOSTILE"]}},"loot":{"items":[{"disposition":"OWNED","items":[]},{"disposition":"FRIENDLY","items":[]},{"disposition":"NEUTRAL","items":[]},{"disposition":"HOSTILE","items":[]}],"static":{"displayNameInTooltip":"FRIENDLY","useAccentEverywhere":false,"accentColor":"#e26c4e","tokenDispositions":["OWNED","FRIENDLY","NEUTRAL","HOSTILE"],"useAccentColorForEverything":false}},"familiar":{"items":[{"disposition":"OWNED","items":[]},{"disposition":"FRIENDLY","items":[]},{"disposition":"NEUTRAL","items":[]},{"disposition":"HOSTILE","items":[]}],"static":{"displayNameInTooltip":"FRIENDLY","accentColor":"#3d2711","useAccentColorForEverything":false,"tokenDispositions":["OWNED","FRIENDLY","NEUTRAL","HOSTILE"]}},"vehicle":{"items":[{"disposition":"OWNED","items":[]},{"disposition":"FRIENDLY","items":[]},{"disposition":"NEUTRAL","items":[]},{"disposition":"HOSTILE","items":[]}],"static":{"displayNameInTooltip":"FRIENDLY","accentColor":"#b2266","useAccentColorForEverything":false,"tokenDispositions":["OWNED","FRIENDLY","NEUTRAL","HOSTILE"]}}}}
bmarian commented 2 years ago

Fixed with release 3.1.2