2024-10-25 11:14:29 +02:00
|
|
|
let spells = await warhammer.utility.findAllItems("spell", "Loading Spells")
|
2024-05-17 12:46:44 +02:00
|
|
|
|
|
|
|
let lore = (await game.wfrp4e.tables.rollTable("random-caster", {hideDSN: true})).text
|
|
|
|
this.script.scriptNotification(lore)
|
|
|
|
if (lore == "GM's Choice") {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (lore == "Arcane Magic") {
|
|
|
|
lore = "Arcane"
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (lore == "Petty Magic") {
|
|
|
|
lore = "petty"
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
lore = lore.toLowerCase();
|
|
|
|
}
|
|
|
|
|
|
|
|
let spellsWithLore = []
|
|
|
|
if (lore == "Arcane") {
|
|
|
|
spellsWithLore = spells.filter(i => !i.system.lore.value)
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
spellsWithLore = spells.filter(i => i.system.lore.value == lore)
|
|
|
|
}
|
|
|
|
|
|
|
|
let selectedSpell = spellsWithLore[Math.floor(CONFIG.Dice.randomUniform() * spellsWithLore.length)]
|
|
|
|
Item.implementation.create(selectedSpell.toObject(), { parent: this.actor}).then(item => {
|
|
|
|
this.actor.setupCast(item).then(test => test.roll());
|
|
|
|
})
|