diff --git a/src/module/combat.js b/src/module/combat.js index 618d0b6..e63419a 100644 --- a/src/module/combat.js +++ b/src/module/combat.js @@ -4,7 +4,7 @@ export class AcksCombat { data.combatants = []; let groups = {}; combat.data.combatants.forEach((cbt) => { - groups[cbt.flags.acks.group] = { present: true }; + groups[cbt.data.flags.acks.group] = { present: true }; data.combatants.push(cbt); }); @@ -23,7 +23,7 @@ export class AcksCombat { return; } data.combatants[i].initiative = - groups[data.combatants[i].flags.acks.group].initiative; + groups[data.combatants[i].data.flags.acks.group].initiative; if (data.combatants[i].actor.data.data.isSlow) { data.combatants[i].initiative -= 1; } @@ -88,24 +88,25 @@ export class AcksCombat { ? '' : span.innerHTML; }); - + html.find(".combatant").each((_, ct) => { // Append spellcast and retreat const controls = $(ct).find(".combatant-controls .combatant-control"); - const cmbtant = object.combat.getCombatant(ct.dataset.combatantId); - const moveActive = cmbtant.flags.acks && cmbtant.flags.acks.moveInCombat ? "active" : ""; + const cmbtant = game.combat.combatants.get(ct.dataset.combatantId); + const moveActive = cmbtant.data.flags.acks?.moveInCombat ? "active" : ""; controls.eq(1).after( `` ); - const spellActive = cmbtant.flags.acks && cmbtant.flags.acks.prepareSpell ? "active" : ""; + const spellActive = cmbtant.data.flags.acks?.prepareSpell ? "active" : ""; controls.eq(1).after( `` ); - const holdActive = cmbtant.flags.acks && cmbtant.flags.acks.holdTurn ? "active" : ""; + const holdActive = cmbtant.data.flags.acks?.holdTurn ? "active" : ""; controls.eq(1).after( `` ); }); + AcksCombat.announceListener(html); let init = game.settings.get("acks", "initiative") === "group"; @@ -128,7 +129,7 @@ export class AcksCombat { // Get group color const cmbtant = object.combat.getCombatant(ct.dataset.combatantId); - let color = cmbtant.flags.acks.group; + let color = cmbtant.data.flags.acks.group; // Append colored flag let controls = $(ct).find(".combatant-controls"); @@ -155,7 +156,7 @@ export class AcksCombat { ct.initiative && ct.initiative != "-789.00" && ct._id != data._id && - ct.flags.acks.group == combatant.flags.acks.group + ct.data.flags.acks.group == combatant.data.flags.acks.group ) { groupInit = ct.initiative; // Set init @@ -166,32 +167,37 @@ export class AcksCombat { } static announceListener(html) { - html.find(".combatant-control.hold-turn").click((ev) => { + html.find(".combatant-control.hold-turn").click(async (ev) => { ev.preventDefault(); // Toggle hold announcement - let id = $(ev.currentTarget).closest(".combatant")[0].dataset.combatantId; - let isActive = ev.currentTarget.classList.contains('active'); - game.combat.updateCombatant({ + const id = $(ev.currentTarget).closest(".combatant")[0].dataset.combatantId; + const isActive = ev.currentTarget.classList.contains('active'); + const combatant = game.combat.combatants.get(id); + await combatant.update({ _id: id, flags: { acks: { holdTurn: !isActive } }, }); }) - html.find(".combatant-control.prepare-spell").click((ev) => { + + html.find(".combatant-control.prepare-spell").click(async (ev) => { ev.preventDefault(); // Toggle spell announcement - let id = $(ev.currentTarget).closest(".combatant")[0].dataset.combatantId; - let isActive = ev.currentTarget.classList.contains('active'); - game.combat.updateCombatant({ + const id = $(ev.currentTarget).closest(".combatant")[0].dataset.combatantId; + const isActive = ev.currentTarget.classList.contains('active'); + const combatant = game.combat.combatants.get(id); + await combatant.update({ _id: id, flags: { acks: { prepareSpell: !isActive } }, }); }); - html.find(".combatant-control.move-combat").click((ev) => { + + html.find(".combatant-control.move-combat").click(async (ev) => { ev.preventDefault(); // Toggle retreat announcement - let id = $(ev.currentTarget).closest(".combatant")[0].dataset.combatantId; - let isActive = ev.currentTarget.classList.contains('active'); - game.combat.updateCombatant({ + const id = $(ev.currentTarget).closest(".combatant")[0].dataset.combatantId; + const isActive = ev.currentTarget.classList.contains('active'); + const combatant = game.combat.combatants.get(id); + await combatant.update({ _id: id, flags: { acks: { moveInCombat: !isActive } }, }); @@ -200,20 +206,22 @@ export class AcksCombat { static addListeners(html) { // Cycle through colors - html.find(".combatant-control.flag").click((ev) => { + html.find(".combatant-control.flag").click(async (ev) => { if (!game.user.isGM) { return; } - let currentColor = ev.currentTarget.style.color; - let colors = Object.keys(CONFIG.ACKS.colors); + const currentColor = ev.currentTarget.style.color; + const colors = Object.keys(CONFIG.ACKS.colors); let index = colors.indexOf(currentColor); if (index + 1 == colors.length) { index = 0; } else { index++; } - let id = $(ev.currentTarget).closest(".combatant")[0].dataset.combatantId; - game.combat.updateCombatant({ + + const id = $(ev.currentTarget).closest(".combatant")[0].dataset.combatantId; + const combatant = game.combat.combatants.get(id); + await combatant.update({ _id: id, flags: { acks: { group: colors[index] } }, });