Hooks.once("ready", async function () { if (!game.automatedevocations) { game.automatedevocations = {}; game.automatedevocations[game.system.id] = {}; } if(game.system.id == "pf2e"){ game.automatedevocations.pf2e = { "Forceful Hand":[ { creature: "Forceful Hand", number: 1, animation: "magic1", }, ], "Spiritual Weapon":[ { creature: "Spiritual Weapon", number: 1, animation: "magic2", }, ], "Summon Animal": (data) => { let multiplier = -1; if (data.spellLevel >= 2) multiplier = 1; if (data.spellLevel >= 3) multiplier = 2; if (data.spellLevel >= 4) multiplier = 3; if (data.spellLevel >= 5) multiplier = 5; if (data.spellLevel >= 6) multiplier = 7; if (data.spellLevel >= 7) multiplier = 9; if (data.spellLevel >= 8) multiplier = 11; if (data.spellLevel >= 9) multiplier = 13; if (data.spellLevel >= 10) multiplier = 15; let animals = game.actors .filter( (a) => a.system.traits.traits.value.includes("animal") && a.system.details.level.value <= multiplier ) .sort((a, b) => { return a.system.details.level.value < b.system.details.level.value ? 1 : -1; }); let creatures = []; for (let animal of animals) { creatures.push({ creature: animal.name, number: 1, }); } return creatures; }, "Animate Dead": (data) => { let multiplier = -1; if (data.spellLevel >= 2) multiplier = 1; if (data.spellLevel >= 3) multiplier = 2; if (data.spellLevel >= 4) multiplier = 3; if (data.spellLevel >= 5) multiplier = 5; if (data.spellLevel >= 6) multiplier = 7; if (data.spellLevel >= 7) multiplier = 9; if (data.spellLevel >= 8) multiplier = 11; if (data.spellLevel >= 9) multiplier = 13; if (data.spellLevel >= 10) multiplier = 15; let undeads = game.actors .filter( (a) => a.system.traits.traits.value.includes("undead") && a.system.details.level.value <= multiplier ) .sort((a, b) => { return a.system.details.level.value < b.system.details.level.value ? 1 : -1; }); let creatures = []; for (let undead of undeads) { creatures.push({ creature: undead.name, number: 1, animation: "darkness", }); } return creatures; }, "Summon Lesser Servitor": (data) => { let servitormultiplier = -1; if (data.spellLevel == 2) servitormultiplier = 1; if (data.spellLevel == 3) servitormultiplier = 2; if (data.spellLevel == 4) servitormultiplier = 3; let servitors = game.actors .filter( (a) => (a.system.traits.traits.value.includes("fiend") || a.system.traits.traits.value.includes("monitor") || a.system.traits.traits.value.includes("celestial")) && a.system.details.level.value <= servitormultiplier && a.document.type == "npc" ) .sort((a, b) => { return a.system.details.level.value < b.system.details.level.value ? 1 : -1; }); let creatures = []; for (let servitor of servitors) { creatures.push({ creature: servitor.name, number: 1, animation: "magic2", }); } const extraCreatures = ["Raven", "Eagle", "Guard Dog", "Black Bear", "Giant Bat", "Leopard", "Great White Shark", "Tiger"] let arrayendpoint = 3; if(data.spellLevel == 2) arrayendpoint = 3; if(data.spellLevel == 3) arrayendpoint = 6; if(data.spellLevel >= 4) arrayendpoint = 8; for(let i=0; i < arrayendpoint;i++) { creatures.push({ creature: extraCreatures[i], number: 1, animation: "magic2", }); } return creatures; }, }; } game.automatedevocations[game.system.id] = mergeObject(game.automatedevocations[game.system.id],game.settings.get(AECONSTS.MN, "customautospells")) });