export const CONST = { SWADE: null, FOUNDRY: null } export class shim { static get folders () { return game.folders } static get controlled () { return canvas.tokens.controlled } static get targets () { return game.user.targets } static get notifications () { return ui.notifications } static get user () { return game.user } static getStatus (label, name, favorite = true) { const effect = JSON.parse(JSON.stringify( CONFIG.statusEffects.find(se => se.label === label))) effect.name = ('name' in effect ? effect.name : effect.label) if (!('flags' in effect)) { effect.flags = {} } if (favorite) { if (!('swade' in effect.flags)) { effect.flags.swade = {} } effect.flags.swade.favorite = true } effect.flags.core = { statusId: effect.id } return effect } static createEffectDocument (icon, name, durationRounds, changes = null) { if (changes === null) { changes = [] } return { icon, name, duration: { rounds: durationRounds }, changes, flags: { swade: { favorite: true, expiration: CONST.SWADE.STATUS_EFFECT_EXPIRATION.EndOfTurnPrompt } } } } static async applyActiveEffects (token, effectDocuments) { const mutation = { embedded: { ActiveEffect: {} } } const mutateOptions = { permanent: true, description: effectDocuments[effectDocuments.length - 1] } for (const effectDocument of effectDocuments) { mutation.embedded.ActiveEffect[effectDocument.name] = effectDocument } await warpgate.mutate(token.document, mutation, {}, mutateOptions) } static warpgateMenu (menuData, menuOptions) { return warpgate.menu(menuData, menuOptions) } } export function log (...args) { console.log('SWADE MB HELPERS |', ...args) }