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"));
+ });
+ });
});