53 lines
1.3 KiB
JavaScript

export class helpers {
static runOnTargetOrSelectedTokens (runFunc) {
let tokens = []
const targets = Array.from(game.user.targets)
if (targets.length > 0) {
tokens = targets
} else if (canvas.tokens.controlled.length > 0) {
tokens = canvas.tokens.controlled
}
if (tokens.length > 0) {
runFunc(tokens)
} else {
ui.notifications.error('Please select or target a token')
}
}
static createEffectDocument (icon, name, durationRounds, changes) {
const effectData = {
icon,
id: name,
label: name,
duration: { rounds: durationRounds },
flags: {
swade: {
expiration: CONFIG.SWADE.CONST.STATUS_EFFECT_EXPIRATION.EndOfTurnPrompt,
loseTurnOnHold: true
}
},
changes
}
return effectData
}
static createMutationWithEffect (icon, name, durationRounds, changes) {
const effect = helpers.createEffectDocument(icon, name, durationRounds, changes)
const mutate = {
embedded: { ActiveEffect: {} }
}
mutate.embedded.ActiveEffect[name] = effect
return mutate
}
static defaultMutationOptions (name) {
const mutateOptions = {
comparisonKeys: { ActiveEffect: 'label' },
name,
permanent: true,
description: name
}
return mutateOptions
}
}