Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 79db620fc1 | |||
| 8bf075c2ce | |||
| f0c6ce1bcc | |||
| 7b392e5c9d | |||
| efe6eac5aa | |||
| 52b64c3016 | |||
| 48d0d17628 | |||
| 8101381cc4 |
@@ -1,3 +1,19 @@
|
|||||||
|
## 1.13.8
|
||||||
|
### Bugfixes
|
||||||
|
- `getMovedDistanceFromToken` no longer returns incorrect values on gridless maps
|
||||||
|
|
||||||
|
|
||||||
|
## 1.13.7
|
||||||
|
### Compatibility
|
||||||
|
- Drag Ruler's generic speed provider is now aware of good defaults for the Crucible game system
|
||||||
|
|
||||||
|
|
||||||
|
## 1.13.6
|
||||||
|
### Bugfixes
|
||||||
|
- Fixed a bug that caused no measurements to be shown next to the ruler
|
||||||
|
- Fixed a bug where diagonal paths would sometimes highlight squares that don't blong to the path on square maps
|
||||||
|
|
||||||
|
|
||||||
## 1.13.5
|
## 1.13.5
|
||||||
### Compatibility
|
### Compatibility
|
||||||
- Drag Ruler is now compatible with Foundry VTT v11 (thanks to pkonshik for doing much of the porting work!)
|
- Drag Ruler is now compatible with Foundry VTT v11 (thanks to pkonshik for doing much of the porting work!)
|
||||||
|
|||||||
+4
-4
@@ -2,7 +2,7 @@
|
|||||||
"id": "drag-ruler",
|
"id": "drag-ruler",
|
||||||
"title": "Drag Ruler",
|
"title": "Drag Ruler",
|
||||||
"description": "When dragging a token displays a ruler showing how far you've moved that token.",
|
"description": "When dragging a token displays a ruler showing how far you've moved that token.",
|
||||||
"version": "1.13.5",
|
"version": "1.13.8",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "11",
|
"minimum": "11",
|
||||||
"verified": "11"
|
"verified": "11"
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Manuel Vögele",
|
"name": "Manuel Vögele",
|
||||||
"email": "develop@manuel-voegele.de",
|
"email": "develop@manuel-voegele.de",
|
||||||
"discord": "Stäbchenfisch#5107"
|
"discord": "stabchenfisch"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"esmodules": [
|
"esmodules": [
|
||||||
@@ -80,10 +80,10 @@
|
|||||||
},
|
},
|
||||||
"socket": true,
|
"socket": true,
|
||||||
"url": "https://github.com/manuelVo/foundryvtt-drag-ruler",
|
"url": "https://github.com/manuelVo/foundryvtt-drag-ruler",
|
||||||
"download": "https://github.com/manuelVo/foundryvtt-drag-ruler/archive/v1.13.5.zip",
|
"download": "https://github.com/manuelVo/foundryvtt-drag-ruler/archive/v1.13.8.zip",
|
||||||
"manifest": "https://raw.githubusercontent.com/manuelVo/foundryvtt-drag-ruler/master/module.json",
|
"manifest": "https://raw.githubusercontent.com/manuelVo/foundryvtt-drag-ruler/master/module.json",
|
||||||
"readme": "https://github.com/manuelVo/foundryvtt-drag-ruler/blob/master/README.md",
|
"readme": "https://github.com/manuelVo/foundryvtt-drag-ruler/blob/master/README.md",
|
||||||
"changelog": "https://github.com/manuelVo/foundryvtt-drag-ruler/blob/master/CHANGELOG.md",
|
"changelog": "https://github.com/manuelVo/foundryvtt-drag-ruler/blob/master/CHANGELOG.md",
|
||||||
"bugs": "https://github.com/manuelVo/foundryvtt-drag-ruler/issues",
|
"bugs": "https://github.com/manuelVo/foundryvtt-drag-ruler/issues",
|
||||||
"allowBugReporter": true
|
"allowBugReporter": true
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-1
@@ -133,8 +133,13 @@ export function getColorForDistanceAndToken(distance, token, ranges = null) {
|
|||||||
export function getMovedDistanceFromToken(token) {
|
export function getMovedDistanceFromToken(token) {
|
||||||
const terrainRulerAvailable = game.modules.get("terrain-ruler")?.active;
|
const terrainRulerAvailable = game.modules.get("terrain-ruler")?.active;
|
||||||
const history = getMovementHistory(token);
|
const history = getMovementHistory(token);
|
||||||
|
const tokenPos = {x: token.x, y: token.y};
|
||||||
|
if (canvas.grid.type === CONST.GRID_TYPES.GRIDLESS) {
|
||||||
|
tokenPos.x += token.w / 2;
|
||||||
|
tokenPos.y += token.h / 2;
|
||||||
|
}
|
||||||
const segments = CONFIG.Canvas.rulerClass
|
const segments = CONFIG.Canvas.rulerClass
|
||||||
.dragRulerGetRaysFromWaypoints(history, {x: token.x, y: token.y})
|
.dragRulerGetRaysFromWaypoints(history, tokenPos)
|
||||||
.map(ray => {
|
.map(ray => {
|
||||||
return {ray};
|
return {ray};
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ export function highlightMeasurementNative(
|
|||||||
tokenShape = [{x: 0, y: 0}],
|
tokenShape = [{x: 0, y: 0}],
|
||||||
alpha = 1,
|
alpha = 1,
|
||||||
) {
|
) {
|
||||||
const spacer = canvas.scene.gridType === CONST.GRID_TYPES.SQUARE ? 1.41 : 1;
|
const spacer = canvas.scene.grid.type === CONST.GRID_TYPES.SQUARE ? 1.41 : 1;
|
||||||
const nMax = Math.max(
|
const nMax = Math.max(
|
||||||
Math.floor(ray.distance / (spacer * Math.min(canvas.grid.w, canvas.grid.h))),
|
Math.floor(ray.distance / (spacer * Math.min(canvas.grid.w, canvas.grid.h))),
|
||||||
1,
|
1,
|
||||||
|
|||||||
+16
-22
@@ -262,29 +262,23 @@ export function extendRuler() {
|
|||||||
if (!this.isDragRuler) {
|
if (!this.isDragRuler) {
|
||||||
return super._computeDistance(gridSpaces);
|
return super._computeDistance(gridSpaces);
|
||||||
}
|
}
|
||||||
if (!this.dragRulerEnableTerrainRuler) {
|
const shape = this.draggedEntity ? getTokenShape(this.draggedEntity) : null;
|
||||||
if (!this.dragRulerIgnoreGrid) {
|
const options = {
|
||||||
gridSpaces = true;
|
ignoreGrid: this.dragRulerIgnoreGrid,
|
||||||
}
|
gridSpaces,
|
||||||
super._computeDistance(gridSpaces);
|
enableTerrainRuler: this.dragRulerEnableTerrainRuler,
|
||||||
} else {
|
};
|
||||||
const shape = this.draggedEntity ? getTokenShape(this.draggedEntity) : null;
|
const distances = measureDistances(this.segments, this.draggedEntity, shape, options);
|
||||||
const options = {
|
let totalDistance = 0;
|
||||||
ignoreGrid: this.dragRulerIgnoreGrid,
|
for (const [i, d] of distances.entries()) {
|
||||||
gridSpaces,
|
let s = this.segments[i];
|
||||||
enableTerrainRuler: this.dragRulerEnableTerrainRuler,
|
s.startDistance = totalDistance;
|
||||||
};
|
totalDistance += d;
|
||||||
const distances = measureDistances(this.segments, this.draggedEntity, shape, options);
|
s.last = i === this.segments.length - 1;
|
||||||
let totalDistance = 0;
|
s.distance = d;
|
||||||
for (const [i, d] of distances.entries()) {
|
s.text = this._getSegmentLabel(s, totalDistance);
|
||||||
let s = this.segments[i];
|
|
||||||
s.startDistance = totalDistance;
|
|
||||||
totalDistance += d;
|
|
||||||
s.last = i === this.segments.length - 1;
|
|
||||||
s.distance = d;
|
|
||||||
s.text = this._getSegmentLabel(s, totalDistance);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const [i, segment] of this.segments.entries()) {
|
for (const [i, segment] of this.segments.entries()) {
|
||||||
const unsnappedSegment = this.dragRulerUnsnappedSegments[i];
|
const unsnappedSegment = this.dragRulerUnsnappedSegments[i];
|
||||||
unsnappedSegment.startDistance = segment.startDistance;
|
unsnappedSegment.startDistance = segment.startDistance;
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ export function getDefaultSpeedAttribute() {
|
|||||||
return "actor.derivedValues.speed.value";
|
return "actor.derivedValues.speed.value";
|
||||||
case "wfrp4e":
|
case "wfrp4e":
|
||||||
return "actor.system.details.move.walk";
|
return "actor.system.details.move.walk";
|
||||||
|
case "crucible":
|
||||||
|
return "actor.system.movement.stride";
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
@@ -49,6 +51,8 @@ export function getDefaultDashMultiplier() {
|
|||||||
return 3;
|
return 3;
|
||||||
case "wfrp4e":
|
case "wfrp4e":
|
||||||
return 2;
|
return 2;
|
||||||
|
case "crucible":
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user