Compare commits

..

10 Commits

Author SHA1 Message Date
Manuel Vögele fa581ddfc3 Release v1.11.3 2022-02-03 18:23:35 +01:00
Manuel Vögele 56e15be4ca Don't perform pathfinding on other player's rulers 2022-02-03 17:59:35 +01:00
Manuel Vögele 1509307313 Show the setting for automatic pathfinding to players if they are allowed to use pathfinding 2022-02-03 17:59:09 +01:00
Manuel Vögele 68885385ea Formatting fix 2022-02-03 17:42:35 +01:00
Manuel Vögele 6748617f6a Add "DnD5e Drag Ruler Integration" and "Shadow of the Demon Lord" to list of Drag Ruler integraion 2022-02-01 20:57:44 +01:00
Manuel Vögele 9d5dccb504 Release v1.11.2 2022-02-01 11:35:46 +01:00
Manuel Vögele a252da620a Always allow the GM to use pathfinding 2022-02-01 11:33:33 +01:00
Johannes Loher 41c8979925 Add support for Dungeonslayers 4 (#146) 2022-02-01 10:32:54 +01:00
Manuel Vögele 39f9204fa7 Destroy labels that are no longer used 2022-02-01 02:58:55 +01:00
Manuel Vögele 10633e4e2a Add .gitignore 2022-01-30 14:28:02 +01:00
13 changed files with 52 additions and 20 deletions
+1
View File
@@ -0,0 +1 @@
foundry-*.js
+17
View File
@@ -1,3 +1,20 @@
## 1.11.3
### Bugfixes
- The setting to automatically start pathfinding is now visible to players again (this was a regression introduced in 1.11.2)
- Fixed a bug that would show the measurements of other players as if they were using the pathfinder, even if they were not using it.
## 1.11.2
### Bugfixes
- Fixed a memory leak that could cause the rule to slow down after using the pathfinding functionality for a while
### Misc
- GMs are now always allowed to use the pathfinding tool. The setting now only prevents players from using it.
### Compatibility
- Drag Ruler's generic speed provider is now aware of good defaults for Dungeonslayers 4
## 1.11.1
### Bugfixes
- Fixed a bug that would cause the pathfinding algorithm to make tokens of size 2 and 4 to take an unnecessary step
+2
View File
@@ -37,6 +37,7 @@ Drag Ruler will work with all Foundry VTT game systems. However, some game syste
The game systems that offer Drag Ruler integration are:
- Cypher System (starting with version 1.13.0)
- DnD5e (via the module [DnD5e Drag Ruler Integration](https://foundryvtt.com/packages/elevation-drag-ruler))
- GURPS 4th Edition Game Aid (Unofficial) (starting with version 0.9.1)
- Ironclaw Second Edition (starting with version 0.2.2)
- Lancer (via the module [Lancer Speed Provider](https://foundryvtt.com/packages/lancer-speed-provider))
@@ -44,6 +45,7 @@ The game systems that offer Drag Ruler integration are:
- Pathfinder 1 (starting with version 0.77.3)
- Pathfinder 2e (via the module [PF2E Drag Ruler Integration](https://foundryvtt.com/packages/pf2e-dragruler/))
- Shadowrun 5th Edition (via the module [Drag Ruler Integration for Shadowrun 5E](https://foundryvtt.com/packages/drag-ruler-integration-for-shadowrun-5e))
- Shadow of the Demon Lord (starting with version 1.7.15)
- Starfinder (via the module [Starfinder Drag Ruler Integration](https://foundryvtt.com/packages/starfinder-drag-ruler))
- Stargate RPG (starting with version 1.6.0)
- Symbaroum (via the module [Symbaroum drag ruler integration](https://foundryvtt.com/packages/symbaroum-drag-ruler-integration))
+2 -2
View File
@@ -48,8 +48,8 @@
},
"settings": {
"allowPathfinding": {
"name": "Wegfindung aktivieren",
"hint": "Aktiviert Drag Ruler's Wegfindungsfunktion. Bitte beachte, dass die Wegfindung Wege durch unerkundeten Nebel des Kriegs und Ätherische Wände berechnen kann. Dies kann deinen Spielern Geheimnisse lüften, von denen sie noch nicht erfahren sollten."
"name": "Wegfindung für Spieler erlauben",
"hint": "Erlaubt es Spielern die Wegfindungs zu benutzen. Bitte beachte, dass die Wegfindung Wege durch unerkundeten Nebel des Kriegs und Ätherische Wände berechnen kann. Dies kann deinen Spielern Geheimnisse lüften, von denen sie noch nicht erfahren sollten."
},
"alwaysShowSpeedForPCs": {
"name": "Geschwindigkeit von Spielercharakteren für jeden anzeigen",
+2 -2
View File
@@ -48,8 +48,8 @@
},
"settings": {
"allowPathfinding": {
"name": "Enable pathfinding feature",
"hint": "Enables Drag Ruler's pathfinding functionality in this world. Be aware that pathfinding can route through unexplored fog of war and Ethereal Walls, which might reveal secrets to your players ahead of time."
"name": "Allow pathfinding for players",
"hint": "Allows players to use Drag Ruler's pathfinding functionality in this world. Be aware that pathfinding can route through unexplored fog of war and Ethereal Walls, which might reveal secrets to your players ahead of time."
},
"alwaysShowSpeedForPCs": {
"name": "Show PC speed to everyone",
+2 -2
View File
@@ -2,7 +2,7 @@
"name": "drag-ruler",
"title": "Drag Ruler",
"description": "When dragging a token displays a ruler showing how far you've moved that token.",
"version": "1.11.1",
"version": "1.11.3",
"minimumCoreVersion" : "9.245",
"compatibleCoreVersion" : "9",
"authors": [
@@ -65,7 +65,7 @@
],
"socket": true,
"url": "https://github.com/manuelVo/foundryvtt-drag-ruler",
"download": "https://github.com/manuelVo/foundryvtt-drag-ruler/archive/v1.11.1.zip",
"download": "https://github.com/manuelVo/foundryvtt-drag-ruler/archive/v1.11.3.zip",
"manifest": "https://raw.githubusercontent.com/manuelVo/foundryvtt-drag-ruler/master/module.json",
"readme": "https://github.com/manuelVo/foundryvtt-drag-ruler/blob/master/README.md",
"changelog": "https://github.com/manuelVo/foundryvtt-drag-ruler/blob/master/CHANGELOG.md",
+1 -1
View File
@@ -168,7 +168,7 @@ export function measure(destination, options={}) {
this.dragRulerRemovePathfindingWaypoints();
if (isToken && isPathfindingEnabled()) {
if (isToken && isPathfindingEnabled.call(this)) {
const from = getGridPositionFromPixelsObj(this.waypoints[this.waypoints.length - 1]);
const to = getGridPositionFromPixelsObj(destination);
let path = findPath(from, to, this.draggedEntity, this.waypoints);
+1 -2
View File
@@ -52,15 +52,14 @@ export function registerKeybindings() {
precedence: -1,
});
if (game.settings.get(settingsKey, "allowPathfinding")) {
game.keybindings.register(settingsKey, "togglePathfinding", {
name: "drag-ruler.keybindings.togglePathfinding.name",
hint: "drag-ruler.keybindings.togglePathfinding.hint",
onDown: handleTogglePathfinding,
onUp: handleTogglePathfinding,
precedence: -1,
restricted: !game.settings.get(settingsKey, "allowPathfinding"),
});
}
}
function handleDeleteWaypoint() {
+3 -1
View File
@@ -8,9 +8,11 @@ let cachedNodes = undefined;
let use5105 = false;
export function isPathfindingEnabled() {
if (this.user !== game.user)
return false;
if (canvas.grid.type === CONST.GRID_TYPES.GRIDLESS)
return false;
if (!game.settings.get(settingsKey, "allowPathfinding"))
if (!game.user.isGM && !game.settings.get(settingsKey, "allowPathfinding"))
return false;
return game.settings.get(settingsKey, "autoPathfinding") != togglePathfinding;
}
+1 -1
View File
@@ -116,7 +116,7 @@ export function extendRuler() {
}
dragRulerRemovePathfindingWaypoints() {
this.waypoints.filter(waypoint => waypoint.isPathfinding).forEach(_ => this.labels.removeChild(this.labels.children.pop()));
this.waypoints.filter(waypoint => waypoint.isPathfinding).forEach(_ => this.labels.removeChild(this.labels.children[this.labels.children.length - 1]).destroy());
this.waypoints = this.waypoints.filter(waypoint => !waypoint.isPathfinding);
}
+2 -1
View File
@@ -1,5 +1,6 @@
import {availableSpeedProviders, currentSpeedProvider, getDefaultSpeedProvider, updateSpeedProvider} from "./api.js";
import {SpeedProvider} from "./speed_provider.js"
import { early_isGM } from "./util.js";
export const settingsKey = "drag-ruler";
@@ -96,7 +97,7 @@ export function registerSettings() {
name: "drag-ruler.settings.autoPathfinding.name",
hint: "drag-ruler.settings.autoPathfinding.hint",
scpoe: "client",
config: true,
config: early_isGM() || game.settings.get(settingsKey, "allowPathfinding"),
type: Boolean,
defualt: false,
});
+3
View File
@@ -17,6 +17,8 @@ export function getDefaultSpeedAttribute() {
return "actor.data.data.movement.walk.value";
case "swade":
return "actor.data.data.stats.speed.adjusted";
case "ds4":
return "actor.data.data.combatValues.movement.total";
}
return ""
}
@@ -32,6 +34,7 @@ export function getDefaultDashMultiplier() {
case "D35E":
case "sfrpg":
case "shadowrun5e":
case "ds4":
return 2
case "CoC7":
return 5;
+7
View File
@@ -272,3 +272,10 @@ export function getMeasurePosition() {
const measurePosition = {x: mousePosition.x + rulerOffset.x, y: mousePosition.y + rulerOffset.y};
return measurePosition;
}
// isGM function for use during loading when game.user isn't available yet
export function early_isGM() {
const level = game.data.users.find(u => u._id == game.data.userId).role;
const gmLevel = CONST.USER_ROLES.ASSISTANT;
return level >= gmLevel;
}