diff --git a/ProjectMoonTRPG/ProjectMoonTRPG.html b/ProjectMoonTRPG/ProjectMoonTRPG.html index 28ce773403..f21bbace63 100644 --- a/ProjectMoonTRPG/ProjectMoonTRPG.html +++ b/ProjectMoonTRPG/ProjectMoonTRPG.html @@ -10812,19 +10812,19 @@ on('change:prevRoundInit', (info) => { /* Select token instance functionality */ on('clicked:selectToken', async function(info) { - getTokenId("selected", "select"); + getTokenId("selected", "select", "true"); }); on('clicked:repeating_tokens:selectinstance', async function(info) { setAttrs({"tokenId_selected":info.sourceAttribute.replace("repeating_tokens_","").replace("_selectinstance","")}); }); /* setSelectModes: select (always set selection or bars), false (do not set selection or bars), unset (set if unset)*/ -function getTokenId(target="selected", setSelectMode="false", callback=()=>{}) { +function getTokenId(target="selected", setSelectMode="false", queryGenericMode="false", callback=()=>{}) { getAttrs(["tokenId_selected"], function(values) { let tokenId_selected = values.tokenId_selected; /* If setting is disabled, ask if it should be enabled. Continue if yes */ - checkGenericMode(async function(genericModeCheck) { + checkGenericMode(queryGenericMode, async function(genericModeCheck) { if (genericModeCheck == "false") { return; } /* Get selected token attributes */ @@ -10872,21 +10872,21 @@ function getTokenId(target="selected", setSelectMode="false", callback=()=>{}) { } /* Manipulate token instances functionality */ on('clicked:addToken', async function(info) { - getTokenId("selected", "add", (selectAttrs) => { + getTokenId("selected", "add", "true", (selectAttrs) => { updateToken(selectAttrs); }); }); on('clicked:addTokenMultiple', async function(info) { - getTokenId(`target|Target`, "add", (selectAttrs) => { updateToken(selectAttrs); - getTokenId(`target|Target`, "add", (selectAttrs) => { updateToken(selectAttrs); - getTokenId(`target|Target`, "add", (selectAttrs) => { updateToken(selectAttrs); - getTokenId(`target|Target`, "add", (selectAttrs) => { updateToken(selectAttrs); - getTokenId(`target|Target`, "add", (selectAttrs) => { updateToken(selectAttrs); - getTokenId(`target|Target`, "add", (selectAttrs) => { updateToken(selectAttrs); - getTokenId(`target|Target`, "add", (selectAttrs) => { updateToken(selectAttrs); - getTokenId(`target|Target`, "add", (selectAttrs) => { updateToken(selectAttrs); - getTokenId(`target|Target`, "add", (selectAttrs) => { updateToken(selectAttrs); - getTokenId(`target|Target`, "add", (selectAttrs) => { updateToken(selectAttrs); + getTokenId(`target|Target`, "add", "true", (selectAttrs) => { updateToken(selectAttrs); + getTokenId(`target|Target`, "add", "true", (selectAttrs) => { updateToken(selectAttrs); + getTokenId(`target|Target`, "add", "true", (selectAttrs) => { updateToken(selectAttrs); + getTokenId(`target|Target`, "add", "true", (selectAttrs) => { updateToken(selectAttrs); + getTokenId(`target|Target`, "add", "true", (selectAttrs) => { updateToken(selectAttrs); + getTokenId(`target|Target`, "add", "true", (selectAttrs) => { updateToken(selectAttrs); + getTokenId(`target|Target`, "add", "true", (selectAttrs) => { updateToken(selectAttrs); + getTokenId(`target|Target`, "add", "true", (selectAttrs) => { updateToken(selectAttrs); + getTokenId(`target|Target`, "add", "true", (selectAttrs) => { updateToken(selectAttrs); + getTokenId(`target|Target`, "add", "true", (selectAttrs) => { updateToken(selectAttrs); });});});});});});});});});}); }); on('clicked:deleteToken', async function(info) { @@ -10898,7 +10898,7 @@ on('clicked:deleteToken', async function(info) { setAttrs({"tokenId_selected":""}); } } else { - getTokenId("selected", "false", (selectAttrs) => { + getTokenId("selected", "false", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); @@ -10910,16 +10910,16 @@ on('clicked:deleteToken', async function(info) { on('clicked:deleteTokenMultiple', async function(info) { getAttrs(["tokenId_selected"], async function(values) { let selectedId = values.tokenId_selected; - getTokenId("target|Target", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; - getTokenId("target|Target", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; - getTokenId("target|Target", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; - getTokenId("target|Target", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; - getTokenId("target|Target", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; - getTokenId("target|Target", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; - getTokenId("target|Target", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; - getTokenId("target|Target", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; - getTokenId("target|Target", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; - getTokenId("target|Target", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; + getTokenId("target|Target", "false", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; + getTokenId("target|Target", "false", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; + getTokenId("target|Target", "false", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; + getTokenId("target|Target", "false", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; + getTokenId("target|Target", "false", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; + getTokenId("target|Target", "false", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; + getTokenId("target|Target", "false", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; + getTokenId("target|Target", "false", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; + getTokenId("target|Target", "false", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; + getTokenId("target|Target", "false", "false", (selectAttrs) => { deleteToken(selectAttrs.tokenId); if (selectAttrs.tokenId == selectedId) { setAttrs({"tokenId_selected":""}); }; });});});});});});});});});}); }); }); @@ -11195,11 +11195,11 @@ on(`change:actNum change:repeating_tokens:actNum`, (info) => { /* --- Token helper functions --- */ -async function checkGenericMode(callback=()=>{}) { +async function checkGenericMode(executeQuery, callback=()=>{}) { getAttrs(["settingGenericTokenMode"], async function(values) { let genericMode = values.settingGenericTokenMode; - if (genericMode != "true") { + if (genericMode != "true" && executeQuery == "true") { let queryResults = await sendQuery(["enableGenericMode", getTranslationByKeyCustom("Generic token mode not enabled for sheet. Enable setting?", "query-enable-generic-mode"), { [getTranslationByKeyCustom("No","query-no")]:"false", @@ -11564,48 +11564,61 @@ async function sendQuery(...args) { /* Action button functions */ on('clicked:actionButtonDamage', async (data) => { getAttrs(["lastDefenceRoll"], async function(values) { + let defenceRoll = parseInt(values.lastDefenceRoll); data = Data.unpackage(data.originalRollId); data = data[0]; + getTokenId("selected", "unset", "false", (selectAttrs) => { + changeActiveToken(selectAttrs.tokenId, async function() { - /* If the damage type is unset (such as for ranged weapon) query the player for a damage type */ - if (data.damageTypeOverride == "---") { - let queryResults = await sendQuery(["damageTypeOverride", - getTranslationByKeyCustom("Select damage type of attack", "query-damage-type"), { - [getTranslationByKeyCustom("---", "weapon-type-None")]:"None", - [getTranslationByKeyCustom("Slash","weapon-type-Slash")]:"Slash", - [getTranslationByKeyCustom("Pierce","weapon-type-Pierce")]:"Pierce", - [getTranslationByKeyCustom("Blunt","weapon-type-Blunt")]:"Blunt" + /* If the damage type is unset (such as for ranged weapon) query the player for a damage type */ + if (data.damageTypeOverride == "---") { + let queryResults = await sendQuery(["damageTypeOverride", + getTranslationByKeyCustom("Select damage type of attack", "query-damage-type"), { + [getTranslationByKeyCustom("---", "weapon-type-None")]:"None", + [getTranslationByKeyCustom("Slash","weapon-type-Slash")]:"Slash", + [getTranslationByKeyCustom("Pierce","weapon-type-Pierce")]:"Pierce", + [getTranslationByKeyCustom("Blunt","weapon-type-Blunt")]:"Blunt" + } + ]); + data.damageTypeOverride = queryResults.damageTypeOverride; } - ]); - data.damageTypeOverride = queryResults.damageTypeOverride; - } - /* If taking Light damage, process it as an Add AutoEffect */ - if (data.flatLightOverride != undefined && data.flatLightOverride != 0) { - data.autoScriptOverride = `(Add -${data.flatLightOverride} Light)`; - } + /* If taking Light damage, process it as an Add AutoEffect */ + if (data.flatLightOverride != undefined && data.flatLightOverride != 0) { + data.autoScriptOverride = `(Add -${data.flatLightOverride} Light)`; + } - if (data.AutoScript != undefined) { - let overrideList = {} - if (data.targetTokenId != undefined) { overrideList.targetTokenId = data.targetTokenId; } - AutoScriptMain(data.AutoScript, "None", "false", "true", overrideList, () => {}, getTranslationByKeyCustom("Apply damage", "helper-text-applydamage")); - } else { - damageHelper(data, defenceRoll); - } + if (data.AutoScript != undefined) { + let overrideList = {} + if (data.targetTokenId != undefined) { overrideList.targetTokenId = data.targetTokenId; } + AutoScriptMain(data.AutoScript, "None", "false", "true", overrideList, () => {}, getTranslationByKeyCustom("Apply damage", "helper-text-applydamage")); + } else { + damageHelper(data, defenceRoll); + } - setAttrs({lastDefenceRoll: 0}); + setAttrs({"lastDefenceRoll": 0}); + }); + }); }); }); on('clicked:actionButtonInflict', async (data) => { data = Data.unpackage(data.originalRollId); data = data[0]; - AutoScriptMain(data.AutoScript, "None", "false", "true", { targetTokenId: data.targetTokenId }, () => {}, getTranslationByKeyCustom("Apply ailments", "helper-text-applyailments")); + getTokenId("selected", "unset", "false", (selectAttrs) => { + changeActiveToken(selectAttrs.tokenId, () => { + AutoScriptMain(data.AutoScript, "None", "false", "true", { targetTokenId: data.targetTokenId }, () => {}, getTranslationByKeyCustom("Apply ailments", "helper-text-applyailments")); + }); + }); }); on('clicked:actionButtonGive', async (data) => { data = Data.unpackage(data.originalRollId); data = data[0]; - AutoScriptMain(data.AutoScript, "None", "false", "true", { targetTokenId: data.targetTokenId }, () => {}, getTranslationByKeyCustom("Give ailments", "helper-text-giveailments")); + getTokenId("selected", "unset", "false", (selectAttrs) => { + changeActiveToken(selectAttrs.tokenId, () => { + AutoScriptMain(data.AutoScript, "None", "false", "true", { targetTokenId: data.targetTokenId }, () => {}, getTranslationByKeyCustom("Give ailments", "helper-text-giveailments")); + }); + }); });