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"));
|
|
Hooks.callAll("automated-evocations.pf2e.ready");
|
|
});
|