import * as MODULE from "../MaterialDeck.js"; import {streamDeck, tokenControl} from "../MaterialDeck.js"; import {compatibleCore} from "./misc.js"; export class CombatTracker{ constructor(){ this.active = false; this.combatantLength = 0; } async updateAll(){ if (this.active == false) return; for (let device of streamDeck.buttonContext) { if (device?.buttons == undefined) continue; for (let i=0; i token.id == game.combat.combatant.token.id)[0]; if (token.can(game.userId,"control")) token.control(); } } else { const onClick = settings.onClick ? settings.onClick : 'doNothing'; let tokenId; if (mode == 'combatants') { if (combat != null && combat != undefined && combat.turns.length != 0){ const initiativeOrder = combat.turns; let nr = settings.combatantNr - 1; if (nr == undefined || nr < 1) nr = 0; const combatant = initiativeOrder[nr] if (combatant == undefined) return; tokenId = compatibleCore("0.8.1") ? combatant.data.tokenId : combatant.tokenId; } } else if (mode == 'currentCombatant') if (combat != null && combat != undefined && combat.started) tokenId = compatibleCore("0.8.1") ? combat.combatant.data.tokenId : combat.combatant.tokenId; let token = (canvas.tokens.children[0] != undefined) ? canvas.tokens.children[0].children.find(p => p.id == tokenId) : undefined; if (token == undefined) return; if (onClick == 'doNothing') //Do nothing return; else if (onClick == 'select'){ //select token token.control(); } else if (onClick == 'center'){ //center on token let location = token.getCenter(token.x,token.y); canvas.animatePan(location); } else if (onClick == 'centerSelect'){ //center on token and select const location = token.getCenter(token.x,token.y); canvas.animatePan(location); token.control(); } else if (onClick == 'charSheet'){ //Open character sheet const element = document.getElementById(token.actor.sheet.id); if (element == null) token.actor.sheet.render(true); else token.actor.sheet.close(); } else if (onClick == 'tokenConfig'){ //Open token config const element = document.getElementById(token.sheet.id); if (element == null) token.sheet.render(true); else token.sheet.close(); } } } }