import {movementTracking} from "./movementFunctions.js" Hooks.once("init", () => { //Wait until the game is initialized, then register the settings created previously. game.settings.register("pf2e-dragruler", "offTurnMovement", { name: game.i18n.localize("pf2e-dragruler.settings.offTurnMovement.name"), hint: game.i18n.localize("pf2e-dragruler.settings.offTurnMovement.hint"), scope: "world", config: true, type: Boolean, default: false }) }); Hooks.once("dragRuler.ready", (SpeedProvider) => { class PF2eSpeedProvider extends SpeedProvider { //Registers colours for up to four movement actions so colours can be customized for them, and sets defaults get colors(){ return [ {id: "FirstAction", default: 0x3222C7}, {id: "SecondAction", default: 0xFFEC07}, {id: "ThirdAction", default: 0xC033E0}, {id: "FourthAction", default: 0x1BCAD8} ] }; // Get the distance for each movement interval to give to drag ruler getRanges(token){ var numactions = 3; //Use the actionCount function to determine how many actions that token gets each round. var movement = movementTracking(token); //Use the movementTracking function to get how far each movement range should be. const ranges = []; //create blank array to store the ranges in. if (numactions > 0 && movement.A1 > 0){ //Set the ranges for each of our four actions to be given to the drag ruler. ranges.push({range: movement.A1, color: "FirstAction"},{range: movement.A2, color: "SecondAction"}, { range: movement.A3, color: "ThirdAction"},{range: movement.A4, color: "FourthAction"}); //Remove ranges from the function until only the ranges equal to the number of legal actions remain. for (var i = numactions, len=ranges.length; i { if(game.user.isGM && game.settings.get("drag-ruler", "enableMovementHistory") && game.settings.get("pf2e-dragruler", "offTurnMovement")){ const combat = game.combats.active; //set the current combat if(combat?.turns.length > 0){ const previousCombatant = combat.turns[(combat.turn - 1) < 0 ? (combat.turns.length - 1) : (combat.turn - 1)]; const nextCombatant = combat.turns[combat.turn]; //find the next combatant if(nextCombatant?.flags?.dragRuler){ dragRuler.resetMovementHistory(combat, nextCombatant._id); //if movement history exists, clears it for the next combatant prior to acting. Gives a clean slate for the new turn, important for clearing out off turn movement. }; if(previousCombatant?.flags?.dragRuler){ dragRuler.resetMovementHistory(combat, previousCombatant._id); //if movement history exists, clears it for the next combatant prior to acting. Gives a clean slate for the new turn, important for clearing out off turn movement. }; }; }; });