From 93fa0caa29e9cec944bf6fad94d2bcdf161c7cdb Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Sat, 22 Jun 2024 12:04:35 -0500 Subject: [PATCH] macros/kalikke.js --- macros/kalikke.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 macros/kalikke.js diff --git a/macros/kalikke.js b/macros/kalikke.js new file mode 100644 index 0000000..69503bd --- /dev/null +++ b/macros/kalikke.js @@ -0,0 +1,53 @@ +const forms = [ + { + token: 'modules/mb-pfsw-kingmaker/assets/tokens/npcs/companions/kanerah.Token.webp', + avatar: 'modules/mb-pfsw-kingmaker/assets/tokens/npcs/companions/kanerah.Avatar.webp', + name: 'Kanerah', + formName: 'Kanerah Form', + formItem: null, + }, { + token: 'modules/mb-pfsw-kingmaker/assets/tokens/npcs/companions/kalikke.Token.webp', + avatar: 'modules/mb-pfsw-kingmaker/assets/tokens/npcs/companions/kalikke.Avatar.webp', + name: 'Kalikke', + formName: 'Kalikke Form', + formItem: null + } +] +const actorUUID = 'Actor.vfyKGZVNAuWnBPSU' + +const EQUIPPED = CONFIG.SWADE.CONST.EQUIP_STATE.EQUIPPED +const STORED = CONFIG.SWADE.CONST.EQUIP_STATE.STORED + +async function main() { + if (token.actor.uuid !== actorUUID) { + ui.notifications.error("Incorrect token selected") + return + } + + let activeForm = 0 + for (let idx = 0; idx < forms.length; idx++) { + const form = forms[idx] + form.formItem = token.actor.items.find(i => i.name === form.formName) + if (form.formItem.system.equipStatus === EQUIPPED) { + activeForm = idx + } + form.formItem.update({'system.equipStatus': STORED}) + } + activeForm = (activeForm + 1) % forms.length + + const itemMods = {'system.equipStatus': EQUIPPED} + const tokenMods = { + name: forms[activeForm].name, + 'texture.src': forms[activeForm].token + } + const actorMods = { + name: forms[activeForm].name, + img: forms[activeForm].avatar, + } + await token.document.update(tokenMods) + await token.actor.update(actorMods) + await forms[activeForm].formItem.update(itemMods) + await token.actor.prototypeToken.update(tokenMods) +} + +main()