/* -------------------------------------------- */ import { HawkmoonUtility } from "./hawkmoon-utility.js"; import "./xregexp-all.js"; const __level1Expr = '(?[a-z]+):(?[a-zA-Z]+)\\((?[a-zA-Z0-9\\.]+)\\)\\s+(?[\\d]+)\\s*{*(?[a-zA-Zàéè\\s]*)}*' const __effectTypes = {modifier: 1, cost: 1, provide: 1} /* -------------------------------------------- */ export class HawkmoonAutomation { /* -------------------------------------------- */ static init() { this.__objectTypes = { } Object.entries(game.data.model.Actor).forEach(kv => { this.__objectTypes[kv[0]] = foundry.utils.duplicate(kv[1]) }) Object.entries(game.data.model.Item).forEach(kv => { this.__objectTypes[kv[0]] = foundry.utils.duplicate(kv[1]) }) } /* -------------------------------------------- */ static processAutomations(event, item, actor) { //console.log("We have", event, item, actor) if ( !item.system.isautomated || item.system.automations.length == 0 ) { return {isValid: true} } let relevantAutomations = item.system.automations.filter( auto => auto.eventtype == event) if ( !relevantAutomations || relevantAutomations.length == 0) { return {isValid: true} } let validTab = [] for(let auto of relevantAutomations) { if ( event == "on-drop") { validTab.push( actor.checkAttributOrCompetenceLevel( auto.competence, auto.minLevel) ) } } // Post process validation array for (let ret of validTab) { if ( !ret.isValid) { return ret } } return {isValid: true} } }