From b8c45dea00ae887cc8cff44ae4c525fdb1a5f7b9 Mon Sep 17 00:00:00 2001 From: Felix Date: Thu, 30 Apr 2020 19:07:00 +0200 Subject: [PATCH] Add files via upload --- compendium-browser.css | 9 +- compendium-browser.js | 92 +++++----- compendium-browser.less | 12 +- lang/en.json | 1 + module.json | 2 +- spell-classes.json | 349 ++++++++++++++++++------------------ template/npc-browser.html | 3 +- template/settings.html | 2 +- template/spell-browser.html | 5 +- template/template.html | 20 ++- 10 files changed, 262 insertions(+), 233 deletions(-) diff --git a/compendium-browser.css b/compendium-browser.css index ccf9e35..61b2be6 100644 --- a/compendium-browser.css +++ b/compendium-browser.css @@ -50,6 +50,13 @@ padding-right: 5px; overflow: scroll; } +.compendium-browser .control-area button { + background: rgba(0, 0, 0, 0.05); + border: 1px solid #bbb; + border-radius: 5px; + margin-top: 5px; + padding: 2px; +} .compendium-browser .control-area .filtercontainer { border: 1px solid #bbb; border-radius: 5px; @@ -93,7 +100,7 @@ .compendium-browser .control-area .filtercontainer .small-input { width: calc(100% - 44px); height: 27px; - background: rgba(255, 255, 255, 0.8); + background: rgba(0, 0, 0, 0.05); border: 1px solid #444; border-radius: 3px; padding: 0 3px; diff --git a/compendium-browser.js b/compendium-browser.js index b710cc5..cd10856 100644 --- a/compendium-browser.js +++ b/compendium-browser.js @@ -1,33 +1,28 @@ /** * @author Felix Müller aka syl3r86 - * @version 0.1.11 + * @version 0.2.0 */ class SpellBrowser extends Application { - - constructor(app) { - super(app); - + + async initializeContent() { // load settings - Hooks.on('ready', e => { - if (this.settings === undefined) { - this.initSettings(); - } - - this.loadSpells().then(obj => { - this.spells = obj - }); - this.loadNpcs().then(obj => { - this.npcs = obj - }); - - loadTemplates([ - "modules/compendium-browser/template/spell-browser.html", - "modules/compendium-browser/template/npc-browser.html", - "modules/compendium-browser/template/filter-container.html", - "modules/compendium-browser/template/settings.html" - ]) + if (this.settings === undefined) { + this.initSettings(); + } + this.loadSpells().then(obj => { + this.spells = obj; }); + this.loadNpcs().then(obj => { + this.npcs = obj; + }); + await loadTemplates([ + "modules/compendium-browser/template/spell-browser.html", + "modules/compendium-browser/template/npc-browser.html", + "modules/compendium-browser/template/filter-container.html", + "modules/compendium-browser/template/settings.html" + ]); + this.hookCompendiumList(); this.spellFilters = { @@ -38,18 +33,20 @@ class SpellBrowser extends Application { registeredFilterCategorys: {}, activeFilters: {} }; - } static get defaultOptions() { const options = super.defaultOptions; - options.classes = options.classes.concat('compendium-browser'); - options.template = "modules/compendium-browser/template/template.html"; - options.width = 800; - options.height = 700; - options.resizable = true; - options.minimizable = true; - options.title = "Compendium Browser"; + mergeObject(options, { + tabs: [{ navSelector: ".tabs", contentSelector: ".content", initial: "spell" }], + classes: options.classes.concat('compendium-browser'), + template: "modules/compendium-browser/template/template.html", + width: 800, + height: 700, + resizable: true, + minimizable: true, + title: "Compendium Browser" + }); return options; } @@ -195,7 +192,7 @@ class SpellBrowser extends Application { if (item.type == 'spell') { npc.hasSpells = true; } - if (item.data.damage && item.data.damage.parts.length > 0) { + if (item.data.damage && item.data.damage.parts && item.data.damage.parts.length > 0) { for (let part of item.data.damage.parts) { let type = part[1]; if (npc.damageDealt.indexOf(type) === -1) { @@ -215,19 +212,10 @@ class SpellBrowser extends Application { } activateListeners(html) { + super.activateListeners(html); // localizing title $(html).parents('.app').find('.window-title')[0].innerText = game.i18n.localize("CMPBrowser.compendiumBrowser"); - - // activating tabs/* - let nav = $('.tabs[data-group="toplvl"]'); - new Tabs(nav, { - initial: this["activeTab"] || 'tab1', - callback: clicked => { - this["activeTab"] = clicked.data("tab"); - } - }); - // show entity sheet html.find('.item-edit').click(ev => { let itemId = $(ev.currentTarget).parents("li").attr("data-entry-id"); @@ -289,6 +277,17 @@ class SpellBrowser extends Application { }); html.find('.npc-browser select[name=sortorder]').trigger('change') + // reset filters + html.find('#reset-spell-filter').click(ev => { + this.spellFilters.activeFilters = {}; + this.render(); + }); + + html.find('#reset-npc-filter').click(ev => { + this.npcFilters.activeFilters = {}; + this.render(); + }); + // settings html.find('.settings input').on('change', ev => { let setting = ev.target.dataset.setting; @@ -738,13 +737,14 @@ class SpellBrowser extends Application { } } -Hooks.on('init', () => { +Hooks.on('ready', async function() { + if (game.compendiumBrowser === undefined) { game.compendiumBrowser = new SpellBrowser(); + await game.compendiumBrowser.initializeContent(); } -}); -Hooks.on('ready', () => { + game.compendiumBrowser.addSpellFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("DND5E.Source"), 'data.source', 'text'); game.compendiumBrowser.addSpellFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.lvl"), 'data.level', 'multiSelect', [game.i18n.localize("CMPBrowser.cantip"), 1, 2, 3, 4, 5, 6, 7, 8, 9]); game.compendiumBrowser.addSpellFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.school"), 'data.school', 'select', CONFIG.DND5E.spellSchools); game.compendiumBrowser.addSpellFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.castingTime"), 'data.activation.type', 'select', @@ -760,6 +760,7 @@ Hooks.on('ready', () => { game.compendiumBrowser.addSpellFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.damageType"), 'damageTypes', 'select', CONFIG.DND5E.damageTypes); game.compendiumBrowser.addSpellFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.class"), 'data.classes', 'select', { + artificer: game.i18n.localize("CMPBrowser.artificer"), bard: game.i18n.localize("CMPBrowser.bard"), cleric: game.i18n.localize("CMPBrowser.cleric"), druid: game.i18n.localize("CMPBrowser.druid"), @@ -776,6 +777,7 @@ Hooks.on('ready', () => { game.compendiumBrowser.addSpellFilter(game.i18n.localize("CMPBrowser.components"), game.i18n.localize("CMPBrowser.somatic"), 'data.components.somatic', 'bool'); game.compendiumBrowser.addSpellFilter(game.i18n.localize("CMPBrowser.components"), game.i18n.localize("CMPBrowser.material"), 'data.components.material', 'bool'); + game.compendiumBrowser.addNpcFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("DND5E.Source"), 'data.details.source', 'text'); game.compendiumBrowser.addNpcFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.size"), 'data.traits.size', 'select', CONFIG.DND5E.actorSizes); game.compendiumBrowser.addNpcFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.hasSpells"), 'hasSpells', 'bool'); game.compendiumBrowser.addNpcFilter(game.i18n.localize("CMPBrowser.general"), game.i18n.localize("CMPBrowser.hasLegAct"), 'data.resources.legact.max', 'bool'); diff --git a/compendium-browser.less b/compendium-browser.less index 9ece3d8..3ac99a7 100644 --- a/compendium-browser.less +++ b/compendium-browser.less @@ -55,6 +55,14 @@ padding-right:5px; overflow:scroll; + button { + background: rgba(0, 0, 0, 0.05); + border: 1px solid #bbb; + border-radius: 5px; + margin-top: 5px; + padding:2px; + } + .filtercontainer { border: 1px solid #bbb; border-radius: 5px; @@ -102,7 +110,7 @@ .small-input { width: calc(100% - 44px); height: 27px; - background: rgba(255, 255, 255, 0.8); + background: rgba(0, 0, 0, 0.05); border: 1px solid #444; border-radius: 3px; padding: 0 3px; @@ -248,4 +256,4 @@ } } } -} +} \ No newline at end of file diff --git a/lang/en.json b/lang/en.json index 979aaec..a89f4d6 100644 --- a/lang/en.json +++ b/lang/en.json @@ -22,6 +22,7 @@ "CMPBrowser.spellType":"Spell Type", "CMPBrowser.damageType":"Damage Type", "CMPBrowser.class":"Class", + "CMPBrowser.artificer":"Artificer", "CMPBrowser.bard":"Bard", "CMPBrowser.cleric":"Cleric", "CMPBrowser.druid":"Druid", diff --git a/module.json b/module.json index 8d84a6a..0ed1e22 100644 --- a/module.json +++ b/module.json @@ -2,7 +2,7 @@ "name": "compendium-browser", "title": "Compendium Browser", "description": "A module to easily browse and filter spells as well as npcs loaded from compendie.", - "version": "0.1.11", + "version": "0.2.0", "author": "Felix#6196", "systems": ["dnd5e"], "scripts": ["./compendium-browser.js"], diff --git a/spell-classes.json b/spell-classes.json index a0f065b..eac6303 100644 --- a/spell-classes.json +++ b/spell-classes.json @@ -1,120 +1,24 @@ { "abidalzimshorridwilting": "sorcerer,wizard", - "absorbelements": "druid,ranger,sorcerer,wizard", - "aganazzarsscorcher": "sorcerer,wizard", - "beastbond": "druid,ranger", - "bonesoftheearth": "druid", - "catapult": "sorcerer,wizard", - "catnap": "bard,sorcerer,wizard", - "causefear": "warlock,wizard", - "ceremony": "cleric,paladin", - "chaosbolt": "sorcerer", - "charmmonster": "bard,druid,sorcerer,warlock,wizard", - "controlflames": "druid,sorcerer,wizard", - "controlwinds": "druid,sorcerer,wizard", - "createbonfire": "druid,sorcerer,warlock,wizard", - "createhomunculus": "wizard", - "crownofstars": "sorcerer,warlock,wizard", - "dansemacabre": "warlock,wizard", - "dawn": "cleric,wizard", - "dragonsbreath": "sorcerer,wizard", - "druidgrove": "druid", - "dustdevil": "druid,sorcerer,wizard", - "earthtremor": "bard,druid,sorcerer,wizard", - "earthbind": "druid,sorcerer,warlock,wizard", - "elementalbane": "druid,warlock,wizard", - "enemiesabound": "bard,sorcerer,warlock,wizard", - "enervation": "sorcerer,warlock,wizard", - "eruptingearth": "druid,sorcerer,wizard", - "farstep": "sorcerer,warlock,wizard", - "findgreatersteed": "paladin", - "flamearrows": "druid,ranger,sorcerer,wizard", - "frostbite": "druid,sorcerer,warlock,wizard", - "guardianofnature": "druid,ranger", - "gust": "druid,sorcerer,wizard", - "healingspirit": "druid,ranger", - "holyweapon": "cleric,paladin", - "iceknife": "druid,sorcerer,wizard", - "illusorydragon": "wizard", - "immolation": "sorcerer,wizard", - "infernalcalling": "warlock,wizard", - "infestation": "druid,sorcerer,warlock,wizard", - "investitureofflame": "druid,sorcerer,warlock,wizard", - "investitureofice": "druid,sorcerer,warlock,wizard", - "investitureofstone": "druid,sorcerer,warlock,wizard", - "investitureofwind": "druid,sorcerer,warlock,wizard", - "invulnerability": "wizard", - "lifetransference": "cleric,wizard", - "maddeningdarkness": "warlock,wizard", - "maelstrom": "druid", - "magicstone": "druid,warlock", - "masspolymorph": "bard,sorcerer,wizard", - "maximiliansearthengrasp": "sorcerer,wizard", - "melfsminutemeteors": "sorcerer,wizard", - "mentalprison": "sorcerer,warlock,wizard", - "mightyfortress": "wizard", - "mindspike": "sorcerer,warlock,wizard", - "moldearth": "druid,sorcerer,wizard", - "negativeenergyflood": "warlock,wizard", - "powerwordpain": "sorcerer,warlock,wizard", - "primalsavagery": "druid", - "primordialward": "druid", - "psychicscream": "bard,sorcerer,warlock,wizard", - "pyrotechnics": "bard,sorcerer,wizard", - "scatter": "sorcerer,warlock,wizard", - "shadowblade": "sorcerer,warlock,wizard", - "shadowofmoil": "warlock", - "shapewater": "druid,sorcerer,wizard", - "sickeningradiance": "sorcerer,warlock,wizard", - "skillempowerment": "bard,sorcerer,wizard", - "skywrite": "bard,druid,wizard", - "snare": "druid,ranger,wizard", - "snillocssnowballswarm": "sorcerer,wizard", - "soulcage": "warlock,wizard", - "steelwindstrike": "ranger,wizard", - "stormsphere": "sorcerer,wizard", - "summongreaterdemon": "warlock,wizard", - "summonlesserdemons": "warlock,wizard", - "synapticstatic": "bard,sorcerer,warlock,wizard", - "templeofthegods": "cleric", - "tenserstransformation": "wizard", - "thunderstep": "sorcerer,warlock,wizard", - "thunderclap": "bard,druid,sorcerer,warlock,wizard", - "tidalwave": "druid,sorcerer,wizard", - "tinyservant": "wizard", - "tollthedead": "cleric,warlock,wizard", - "transmuterock": "druid,wizard", - "vitriolicsphere": "sorcerer,wizard", - "walloflight": "sorcerer,warlock,wizard", - "wallofsand": "wizard", - "wallofwater": "druid,sorcerer,wizard", - "wardingwind": "bard,druid,sorcerer,wizard", - "waterysphere": "druid,sorcerer,wizard", - "whirlwind": "druid,sorcerer,wizard", - "wordofradiance": "cleric", - "wrathofnature": "druid,ranger", - "zephyrstrike": "ranger", - "boomingblade": "sorcerer,warlock,wizard", - "greenflameblade": "sorcerer,warlock,wizard", - "lightninglure": "sorcerer,warlock,wizard", - "swordburst": "sorcerer,warlock,wizard", + "absorbelements": "artificer,druid,ranger,sorcerer,wizard", "arcaneweapon": "artificerrevisited", - "acidsplash": "sorcerer,wizard,artificerrevisited", - "aid": "cleric,paladin,artificer,artificerrevisited", - "alarm": "ranger,wizard,artificer,artificerrevisited", - "alterself": "sorcerer,wizard,artificer,artificerrevisited", + "acidsplash": "artificer,sorcerer,wizard,artificerrevisited", + "aganazzarsscorcher": "sorcerer,wizard", + "aid": "artificer,cleric,paladin,artificer,artificerrevisited", + "alarm": "artificer,ranger,wizard,artificer,artificerrevisited", + "alterself": "artificer,sorcerer,wizard,artificer,artificerrevisited", "animalfriendship": "bard,druid,ranger", "animalmessenger": "bard,druid,ranger", "animalshapes": "druid", "animatedead": "cleric,wizard", - "animateobjects": "bard,sorcerer,wizard,artificerrevisited", + "animateobjects": "artificer,bard,sorcerer,wizard,artificerrevisited", "antilifeshell": "druid", "antimagicfield": "cleric,wizard", "antipathysympathy": "druid,wizard", - "arcaneeye": "wizard,artificer,artificerrevisited", + "arcaneeye": "artificer,wizard,artificer,artificerrevisited", "arcanegate": "sorcerer,warlock,wizard", - "arcanelock": "wizard,artificer,artificerrevisited", + "arcanelock": "artificer,wizard,artificer,artificerrevisited", "armorofagathys": "warlock", "armsofhadar": "warlock", "astralprojection": "cleric,warlock,wizard", @@ -128,9 +32,10 @@ "banishment": "cleric,paladin,sorcerer,warlock,wizard", "barkskin": "druid,ranger", "beaconofhope": "cleric", + "beastbond": "druid,ranger", "beastsense": "druid,ranger", "bestowcurse": "bard,cleric,wizard", - "bigbyshand": "wizard,artificerrevisited", + "bigbyshand": "artificer,wizard,artificerrevisited", "arcanehand": "wizard,artificerrevisited", "bladebarrier": "cleric", "bladeward": "bard,sorcerer,warlock,wizard", @@ -138,13 +43,21 @@ "blight": "druid,sorcerer,warlock,wizard", "blindingsmite": "paladin", "blindnessdeafness": "bard,cleric,sorcerer,wizard", - "blink": "sorcerer,wizard,artificer,artificerrevisited", - "blur": "sorcerer,wizard,artificer,artificerrevisited", + "blink": "artificer,sorcerer,wizard,artificer,artificerrevisited", + "blur": "artificer,sorcerer,wizard,artificer,artificerrevisited", + "bonesoftheearth": "druid", + "boomingblade": "sorcerer,warlock,wizard", "brandingsmite": "paladin", "burninghands": "sorcerer,wizard", "calllightning": "druid", "calmemotions": "bard,cleric", + "catapult": "artificer,sorcerer,wizard", + "catnap": "artificer,bard,sorcerer,wizard", + "causefear": "warlock,wizard", + "ceremony": "cleric,paladin", "chainlightning": "sorcerer,wizard", + "chaosbolt": "sorcerer", + "charmmonster": "bard,druid,sorcerer,warlock,wizard", "charmperson": "bard,druid,sorcerer,warlock,wizard", "chilltouch": "sorcerer,warlock,wizard", "chromaticorb": "sorcerer,wizard", @@ -174,112 +87,139 @@ "contactotherplane": "warlock,wizard", "contagion": "cleric,druid", "contingency": "wizard", - "continualflame": "cleric,wizard,artificer,artificerrevisited", + "continualflame": "artificer,cleric,wizard,artificer,artificerrevisited", + "controlflames": "druid,sorcerer,wizard", "controlwater": "cleric,druid,wizard", "controlweather": "cleric,druid,wizard", + "controlwinds": "druid,sorcerer,wizard", "cordonofarrows": "ranger", "counterspell": "sorcerer,warlock,wizard", - "createfoodandwater": "cleric,paladin", + "createbonfire": "artificer,druid,sorcerer,warlock,wizard", + "createfoodandwater": "artificer,cleric,paladin", + "createhomunculus": "wizard", "createundead": "cleric,warlock,wizard", "createordestroywater": "cleric,druid", - "creation": "sorcerer,wizard,artificerrevisited", + "creation": "artificer,sorcerer,wizard,artificerrevisited", "crownofmadness": "bard,sorcerer,warlock,wizard", + "crownofstars": "sorcerer,warlock,wizard", "crusadersmantle": "paladin", - "curewounds": "bard,cleric,druid,paladin,ranger,artificer,artificerrevisited", - "dancinglights": "bard,sorcerer,wizard,artificerrevisited", + "curewounds": "artificer,bard,cleric,druid,paladin,ranger,artificer,artificerrevisited", + "dancinglights": "artificer,bard,sorcerer,wizard,artificerrevisited", + "dansemacabre": "warlock,wizard", "darkness": "sorcerer,warlock,wizard", - "darkvision": "druid,ranger,sorcerer,wizard,artificer,artificerrevisited", + "darkvision": "artificer,druid,ranger,sorcerer,wizard,artificer,artificerrevisited", + "dawn": "cleric,wizard", "daylight": "cleric,druid,paladin,ranger,sorcerer", "deathward": "cleric,paladin,artificer", "delayedblastfireball": "sorcerer,wizard", "demiplane": "warlock,wizard", "destructivewave": "paladin", "detectevilandgood": "cleric,paladin", - "detectmagic": "bard,cleric,druid,paladin,ranger,sorcerer,wizard,artificerrevisited", + "detectmagic": "artificer,bard,cleric,druid,paladin,ranger,sorcerer,wizard,artificerrevisited", "detectpoisonanddisease": "cleric,druid,paladin,ranger", "detectthoughts": "bard,sorcerer,wizard", "dimensiondoor": "bard,sorcerer,warlock,wizard", - "disguiseself": "bard,sorcerer,wizard,artificer,artificerrevisited", + "disguiseself": "artificer,bard,sorcerer,wizard,artificer,artificerrevisited", "disintegrate": "sorcerer,wizard", "dispelevilandgood": "cleric,paladin", - "dispelmagic": "bard,cleric,druid,paladin,sorcerer,warlock,wizard,artificerrevisited", + "dispelmagic": "artificer,bard,cleric,druid,paladin,sorcerer,warlock,wizard,artificerrevisited", "dissonantwhispers": "bard", + "distortvalue": "bard,sorcerer,warlock,wizard", "divination": "cleric", "divinefavor": "paladin", "divineword": "cleric", "dominatebeast": "druid,sorcerer", "dominatemonster": "bard,sorcerer,warlock,wizard", "dominateperson": "bard,sorcerer,wizard", + "dragonsbreath": "sorcerer,wizard", "drawmijsinstantsummons": "wizard", "instantsummons": "wizard", "dream": "bard,warlock,wizard", + "druidgrove": "druid", "druidcraft": "druid", + "dustdevil": "druid,sorcerer,wizard", + "earthtremor": "bard,druid,sorcerer,wizard", + "earthbind": "druid,sorcerer,warlock,wizard", "earthquake": "cleric,druid,sorcerer", "eldritchblast": "warlock", - "elementalweapon": "paladin,artificerrevisited", - "enhanceability": "bard,cleric,druid,sorcerer,artificer,artificerrevisited", - "enlargereduce": "sorcerer,wizard,artificer,artificerrevisited", + "elementalbane": "artificer,druid,warlock,wizard", + "elementalweapon": "artificer,paladin,artificerrevisited", + "enemiesabound": "bard,sorcerer,warlock,wizard", + "enervation": "sorcerer,warlock,wizard", + "enhanceability": "artificer,bard,cleric,druid,sorcerer,artificer,artificerrevisited", + "enlargereduce": "artificer,sorcerer,wizard,artificer,artificerrevisited", "ensnaringstrike": "ranger", "entangle": "druid", "enthrall": "bard,warlock", + "eruptingearth": "druid,sorcerer,wizard", "etherealness": "bard,cleric,sorcerer,warlock,wizard", "evardsblacktentacles": "wizard", "blacktentacles": "wizard", - "expeditiousretreat": "sorcerer,warlock,wizard,artificer,artificerrevisited", + "expeditiousretreat": "artificer,sorcerer,warlock,wizard,artificer,artificerrevisited", "eyebite": "bard,sorcerer,warlock,wizard", - "fabricate": "wizard,artificer,artificerrevisited", - "faeriefire": "bard,druid", - "falselife": "sorcerer,wizard,artificer,artificerrevisited", + "fabricate": "artificer,wizard,artificer,artificerrevisited", + "faeriefire": "artificer,bard,druid", + "falselife": "artificer,sorcerer,wizard,artificer,artificerrevisited", + "farstep": "sorcerer,warlock,wizard", + "fastfriends": "bard,cleric,wizard", "fear": "bard,sorcerer,warlock,wizard", - "featherfall": "bard,sorcerer,wizard", + "featherfall": "artificer,bard,sorcerer,wizard", "feeblemind": "bard,druid,warlock,wizard", "feigndeath": "bard,cleric,druid,wizard", "findfamiliar": "wizard", + "findgreatersteed": "paladin", "findsteed": "paladin", "findtraps": "cleric,druid,ranger", "findthepath": "bard,cleric,druid", "fingerofdeath": "sorcerer,warlock,wizard", - "firebolt": "sorcerer,wizard,artificerrevisited", + "firebolt": "artificer,sorcerer,wizard,artificerrevisited", "fireshield": "wizard", "firestorm": "cleric,druid,sorcerer", "fireball": "sorcerer,wizard", + "flamearrows": "artificer,druid,ranger,sorcerer,wizard", "flameblade": "druid", "flamestrike": "cleric", "flamingsphere": "druid,wizard", "fleshtostone": "warlock,wizard", - "fly": "sorcerer,warlock,wizard,artificer,artificerrevisited", + "fly": "artificer,sorcerer,warlock,wizard,artificer,artificerrevisited", "fogcloud": "druid,ranger,sorcerer,wizard", "forbiddance": "cleric", "forcecage": "bard,warlock,wizard", "foresight": "bard,druid,warlock,wizard", - "freedomofmovement": "bard,cleric,druid,ranger,artificer,artificerrevisited", + "freedomofmovement": "artificer,bard,cleric,druid,ranger,artificer,artificerrevisited", "friends": "bard,sorcerer,warlock,wizard", + "frostbite": "artificer,druid,sorcerer,warlock,wizard", "gaseousform": "sorcerer,warlock,wizard,artificer,artificerrevisited", "gate": "cleric,sorcerer,wizard", "geas": "bard,cleric,druid,paladin,wizard", "gentlerepose": "cleric,wizard", "giantinsect": "druid", + "giftofgab": "bard,wizard", "glibness": "bard,warlock", "globeofinvulnerability": "sorcerer,wizard", - "glyphofwarding": "bard,cleric,wizard,artificer,artificerrevisited", + "glyphofwarding": "artificer,bard,cleric,wizard,artificer,artificerrevisited", "goodberry": "druid,ranger", "graspingvine": "druid,ranger", - "grease": "wizard,artificerrevisited", + "grease": "artificer,wizard,artificerrevisited", "greaterinvisibility": "bard,sorcerer,wizard", - "greaterrestoration": "bard,cleric,druid,artificerrevisited", + "greaterrestoration": "artificer,bard,cleric,druid,artificerrevisited", + "greenflameblade": "sorcerer,warlock,wizard", "guardianoffaith": "cleric", + "guardianofnature": "druid,ranger", "guardsandwards": "bard,wizard", - "guidance": "cleric,druid,artificerrevisited", + "guidance": "artificer,cleric,druid,artificerrevisited", "guidingbolt": "cleric", + "gust": "druid,sorcerer,wizard", "gustofwind": "druid,sorcerer,wizard", "hailofthorns": "ranger", "hallow": "cleric", "hallucinatoryterrain": "bard,druid,warlock,wizard", "harm": "cleric", - "haste": "sorcerer,wizard,artificer,artificerrevisited", + "haste": "artificer,sorcerer,wizard,artificer,artificerrevisited", "heal": "cleric,druid", + "healingspirit": "druid,ranger", "healingword": "bard,cleric,druid", - "heatmetal": "bard,druid,artificerrevisited", + "heatmetal": "artificer,bard,druid,artificerrevisited", "hellishrebuke": "warlock", "heroesfeast": "cleric,druid", "heroism": "bard,paladin", @@ -287,71 +227,99 @@ "holdmonster": "bard,sorcerer,warlock,wizard", "holdperson": "bard,cleric,druid,sorcerer,warlock,wizard", "holyaura": "cleric", + "holyweapon": "cleric,paladin", "hungerofhadar": "warlock", "huntersmark": "ranger", "hypnoticpattern": "bard,sorcerer,warlock,wizard", + "iceknife": "druid,sorcerer,wizard", "icestorm": "druid,sorcerer,wizard", - "identify": "bard,wizard,artificerrevisited", + "identify": "artificer,bard,wizard,artificerrevisited", + "illusorydragon": "wizard", "illusoryscript": "bard,warlock,wizard", + "immolation": "sorcerer,wizard", "imprisonment": "warlock,wizard", "incendiarycloud": "sorcerer,wizard", + "incitegreed": "cleric,warlock,wizard", + "infernalcalling": "warlock,wizard", + "infestation": "druid,sorcerer,warlock,wizard", "inflictwounds": "cleric", "insectplague": "cleric,druid,sorcerer", - "invisibility": "bard,sorcerer,warlock,wizard,artificer,artificerrevisited", - "jump": "druid,ranger,sorcerer,wizard,artificer,artificerrevisited", + "investitureofflame": "druid,sorcerer,warlock,wizard", + "investitureofice": "druid,sorcerer,warlock,wizard", + "investitureofstone": "druid,sorcerer,warlock,wizard", + "investitureofwind": "druid,sorcerer,warlock,wizard", + "invisibility": "artificer,bard,sorcerer,warlock,wizard,artificer,artificerrevisited", + "invulnerability": "wizard", + "jimsglowingcoin": "wizard", + "jimsmagicmissile": "wizard", + "jump": "artificer,druid,ranger,sorcerer,wizard,artificer,artificerrevisited", "knock": "bard,sorcerer,wizard", "legendlore": "bard,cleric,wizard", - "leomundssecretchest": "wizard,artificer,artificerrevisited", + "leomundssecretchest": "artificer,wizard,artificer,artificerrevisited", "leomundstinyhut": "bard,wizard", - "lesserrestoration": "bard,cleric,druid,paladin,ranger,artificer,artificerrevisited", - "levitate": "sorcerer,wizard,artificerrevisited", - "light": "bard,cleric,sorcerer,wizard,artificerrevisited", + "lesserrestoration": "artificer,bard,cleric,druid,paladin,ranger,artificer,artificerrevisited", + "levitate": "artificer,sorcerer,wizard,artificerrevisited", + "lifetransference": "cleric,wizard", + "light": "artificer,bard,cleric,sorcerer,wizard,artificerrevisited", "lightningarrow": "ranger", "lightningbolt": "sorcerer,wizard", + "lightninglure": "sorcerer,warlock,wizard", "locateanimalsorplants": "bard,druid,ranger", "locatecreature": "bard,cleric,druid,paladin,ranger,wizard", "locateobject": "bard,cleric,druid,paladin,ranger,wizard", - "longstrider": "bard,druid,ranger,wizard,artificer,artificerrevisited", + "longstrider": "artificer,bard,druid,ranger,wizard,artificer,artificerrevisited", + "maddeningdarkness": "warlock,wizard", + "maelstrom": "druid", "magearmor": "sorcerer,wizard", - "magehand": "bard,sorcerer,warlock,wizard,artificerrevisited", + "magehand": "artificer,bard,sorcerer,warlock,wizard,artificerrevisited", "magiccircle": "cleric,paladin,warlock,wizard", "magicjar": "wizard", "magicmissile": "sorcerer,wizard", - "magicmouth": "bard,wizard,artificerrevisited", - "magicweapon": "paladin,wizard,artificer,artificerrevisited", + "magicmouth": "artificer,bard,wizard,artificerrevisited", + "magicstone": "artificer,druid,warlock", + "magicweapon": "artificer,paladin,wizard,artificer,artificerrevisited", "majorimage": "bard,sorcerer,warlock,wizard", "masscurewounds": "bard,cleric,druid", "massheal": "cleric", "masshealingword": "cleric", + "masspolymorph": "bard,sorcerer,wizard", "masssuggestion": "bard,sorcerer,warlock,wizard", + "maximiliansearthengrasp": "sorcerer,wizard", "maze": "wizard", "meldintostone": "cleric,druid", "melfsacidarrow": "wizard", + "melfsminutemeteors": "sorcerer,wizard", "acidarrow": "wizard", - "mending": "bard,cleric,druid,sorcerer,wizard,artificerrevisited", - "message": "bard,sorcerer,wizard,artificerrevisited", + "mending": "artificer,bard,cleric,druid,sorcerer,wizard,artificerrevisited", + "mentalprison": "sorcerer,warlock,wizard", + "message": "artificer,bard,sorcerer,wizard,artificerrevisited", "meteorswarm": "sorcerer,wizard", + "mightyfortress": "wizard", "mindblank": "bard,wizard", + "mindspike": "sorcerer,warlock,wizard", "minorillusion": "bard,sorcerer,warlock,wizard", "miragearcane": "bard,druid,wizard", "mirrorimage": "sorcerer,warlock,wizard", "mislead": "bard,wizard", "mistystep": "sorcerer,warlock,wizard", "modifymemory": "bard,wizard", + "moldearth": "druid,sorcerer,wizard", "moonbeam": "druid", - "mordenkainensfaithfulhound": "wizard,artificer,artificerrevisited", + "mordenkainensfaithfulhound": "artificer,wizard,artificer,artificerrevisited", + "motivationalspeech": "bard,cleric", "faithfulhound": "wizard,artificer,artificerrevisited", "mordenkainensmagnificentmansion": "bard,wizard", "magnificentmansion": "bard,wizard", - "mordenkainensprivatesanctum": "wizard,artificer,artificerrevisited", + "mordenkainensprivatesanctum": "artificer,wizard,artificer,artificerrevisited", "mordenkainenssword": "bard,wizard", "arcanesword": "bard,wizard", "moveearth": "druid,sorcerer,wizard", + "negativeenergyflood": "warlock,wizard", "nondetection": "bard,ranger,wizard", "nystulsmagicaura": "wizard", "arcanistsmagicaura": "wizard", "otilukesfreezingsphere": "wizard", - "otilukesresilientsphere": "wizard,artificer,artificerrevisited", + "otilukesresilientsphere": "artificer,wizard,artificer,artificerrevisited", "ottosirresistibledance": "bard,wizard", "passwithouttrace": "druid,ranger", "passwall": "wizard", @@ -362,73 +330,94 @@ "planarbinding": "bard,cleric,druid,wizard", "planeshift": "cleric,druid,sorcerer,warlock,wizard", "plantgrowth": "bard,druid,ranger", - "poisonspray": "druid,sorcerer,warlock,wizard,artificerrevisited", + "poisonspray": "artificer,druid,sorcerer,warlock,wizard,artificerrevisited", "polymorph": "bard,druid,sorcerer,wizard", "powerwordheal": "bard", "powerwordkill": "bard,sorcerer,warlock,wizard", + "powerwordpain": "sorcerer,warlock,wizard", "powerwordstun": "bard,sorcerer,warlock,wizard", "prayerofhealing": "cleric", - "prestidigitation": "bard,sorcerer,warlock,wizard,artificerrevisited", + "prestidigitation": "artificer,bard,sorcerer,warlock,wizard,artificerrevisited", + "primalsavagery": "druid", + "primordialward": "druid", "prismaticspray": "sorcerer,wizard", "prismaticwall": "wizard", "produceflame": "druid", "programmedillusion": "bard,wizard", "projectimage": "bard,wizard", - "protectionfromenergy": "cleric,druid,ranger,sorcerer,wizard,artificer,artificerrevisited", + "protectionfromenergy": "artificer,cleric,druid,ranger,sorcerer,wizard,artificer,artificerrevisited", "protectionfromevilandgood": "cleric,paladin,warlock,wizard", - "protectionfrompoison": "cleric,druid,paladin,ranger,artificer,artificerrevisited", - "purifyfoodanddrink": "cleric,druid,paladin", + "protectionfrompoison": "artificer,cleric,druid,paladin,ranger,artificer,artificerrevisited", + "psychicscream": "bard,sorcerer,warlock,wizard", + "purifyfoodanddrink": "artificer,cleric,druid,paladin", + "pyrotechnics": "artificer,bard,sorcerer,wizard", "raisedead": "bard,cleric,paladin", "rarystelepathicbond": "wizard", "rayofenfeeblement": "warlock,wizard", - "rayoffrost": "sorcerer,wizard,artificerrevisited", + "rayoffrost": "artificer,sorcerer,wizard,artificerrevisited", "rayofsickness": "sorcerer,wizard", "regenerate": "bard,cleric,druid", "reincarnate": "druid", "removecurse": "cleric,paladin,warlock,wizard", - "resistance": "cleric,druid,artificerrevisited", + "resistance": "artificer,cleric,druid,artificerrevisited", "resurrection": "bard,cleric", "reversegravity": "druid,sorcerer,wizard", - "revivify": "cleric,paladin,artificer,artificerrevisited", - "ropetrick": "wizard,artificer,artificerrevisited", + "revivify": "artificer,cleric,paladin,artificer,artificerrevisited", + "ropetrick": "artificer,wizard,artificer,artificerrevisited", "sacredflame": "cleric", - "sanctuary": "cleric,artificer,artificerrevisited", + "sanctuary": "artificer,cleric,artificer,artificerrevisited", + "scatter": "sorcerer,warlock,wizard", "scorchingray": "sorcerer,wizard", "scrying": "bard,cleric,druid,warlock,wizard", "searingsmite": "paladin", - "seeinvisibility": "bard,sorcerer,wizard,artificerrevisited", + "seeinvisibility": "artificer,bard,sorcerer,wizard,artificerrevisited", "seeming": "bard,sorcerer,wizard", "sending": "bard,cleric,wizard", "sequester": "wizard", + "shadowblade": "sorcerer,warlock,wizard", + "shadowofmoil": "warlock", + "shapewater": "druid,sorcerer,wizard", "shapechange": "druid,wizard", "shatter": "bard,sorcerer,warlock,wizard", "shield": "sorcerer,wizard", "shieldoffaith": "cleric,paladin,artificer,artificerrevisited", "shillelagh": "druid", - "shockinggrasp": "sorcerer,wizard,artificerrevisited", + "shockinggrasp": "artificer,sorcerer,wizard,artificerrevisited", + "sickeningradiance": "sorcerer,warlock,wizard", "silence": "bard,cleric,ranger", "silentimage": "bard,sorcerer,wizard", "simulacrum": "wizard", + "skillempowerment": "artificer,bard,sorcerer,wizard", + "skywrite": "artificer,bard,druid,wizard", "sleep": "bard,sorcerer,wizard", "sleetstorm": "druid,sorcerer,wizard", "slow": "sorcerer,wizard", - "sparethedying": "cleric,artificerrevisited", + "snare": "artificer,druid,ranger,wizard", + "snillocssnowballswarm": "sorcerer,wizard", + "soulcage": "warlock,wizard", + "sparethedying": "artificer,cleric,artificerrevisited", "speakwithanimals": "bard,druid,ranger", "speakwithdead": "bard,cleric", "speakwithplants": "bard,druid,ranger", - "spiderclimb": "sorcerer,warlock,wizard,artificer,artificerrevisited", + "spiderclimb": "artificer,sorcerer,warlock,wizard,artificer,artificerrevisited", "spikegrowth": "druid,ranger", "spiritguardians": "cleric", "spiritualweapon": "cleric", "staggeringsmite": "paladin", + "steelwindstrike": "ranger,wizard", "stinkingcloud": "bard,sorcerer,wizard", - "stoneshape": "cleric,druid,wizard,artificer,artificerrevisited", - "stoneskin": "druid,ranger,sorcerer,wizard,artificer,artificerrevisited", + "stoneshape": "artificer,cleric,druid,wizard,artificer,artificerrevisited", + "stoneskin": "artificer,druid,ranger,sorcerer,wizard,artificer,artificerrevisited", "stormofvengeance": "druid", + "stormsphere": "sorcerer,wizard", "suggestion": "bard,sorcerer,warlock,wizard", + "summongreaterdemon": "warlock,wizard", + "summonlesserdemons": "warlock,wizard", "sunbeam": "druid,sorcerer,wizard", "sunburst": "druid,sorcerer,wizard", "swiftquiver": "ranger", + "swordburst": "sorcerer,warlock,wizard", + "synapticstatic": "bard,sorcerer,warlock,wizard", "symbol": "bard,cleric,wizard", "tashashideouslaughter": "bard,wizard", "hideouslaughter": "bard,wizard", @@ -436,15 +425,23 @@ "telepathy": "wizard", "teleport": "bard,sorcerer,wizard", "teleportationcircle": "bard,sorcerer,wizard", + "templeofthegods": "cleric", "tensersfloatingdisk": "wizard", "tensersfloatingdisc": "wizard", + "tenserstransformation": "wizard", "floatingdisc": "wizard", "thaumaturgy": "cleric", - "thornwhip": "druid,artificerrevisited", + "thornwhip": "artificer,druid,artificerrevisited", + "thunderstep": "sorcerer,warlock,wizard", + "thunderclap": "artificer,bard,druid,sorcerer,warlock,wizard", "thunderoussmite": "paladin", "thunderwave": "bard,druid,sorcerer,wizard", + "tidalwave": "druid,sorcerer,wizard", "timestop": "sorcerer,wizard", + "tinyservant": "artificer,wizard", + "tollthedead": "cleric,warlock,wizard", "tongues": "bard,cleric,sorcerer,warlock,wizard", + "transmuterock": "artificer,druid,wizard", "transportviaplants": "druid", "treestride": "druid,ranger", "truepolymorph": "bard,warlock,wizard", @@ -455,21 +452,31 @@ "unseenservant": "bard,warlock,wizard", "vampirictouch": "warlock,wizard", "viciousmockery": "bard", + "vitriolicsphere": "sorcerer,wizard", "walloffire": "druid,sorcerer,wizard", "wallofforce": "wizard", "wallofice": "wizard", - "wallofstone": "druid,sorcerer,wizard,artificerrevisited", + "walloflight": "sorcerer,warlock,wizard", + "wallofsand": "wizard", + "wallofstone": "artificer,druid,sorcerer,wizard,artificerrevisited", "wallofthorns": "druid", + "wallofwater": "druid,sorcerer,wizard", "wardingbond": "cleric", - "waterbreathing": "druid,ranger,sorcerer,wizard,artificer,artificerrevisited", - "waterwalk": "cleric,druid,ranger,sorcerer,artificer,artificerrevisited", - "web": "sorcerer,wizard", + "wardingwind": "bard,druid,sorcerer,wizard", + "waterbreathing": "artificer,druid,ranger,sorcerer,wizard,artificer,artificerrevisited", + "waterwalk": "artificer,cleric,druid,ranger,sorcerer,artificer,artificerrevisited", + "waterysphere": "druid,sorcerer,wizard", + "web": "artificer,sorcerer,wizard", "weird": "wizard", + "whirlwind": "druid,sorcerer,wizard", "windwalk": "druid", "windwall": "druid,ranger", "wish": "sorcerer,wizard", "witchbolt": "sorcerer,warlock,wizard", + "wordofradiance": "cleric", "wordofrecall": "cleric", + "wrathofnature": "druid,ranger", "wrathfulsmite": "paladin", + "zephyrstrike": "ranger", "zoneoftruth": "bard,cleric,paladin" } \ No newline at end of file diff --git a/template/npc-browser.html b/template/npc-browser.html index 8d19dd3..4472b02 100644 --- a/template/npc-browser.html +++ b/template/npc-browser.html @@ -1,4 +1,4 @@ -
+
@@ -12,6 +12,7 @@ +
{{> "modules/compendium-browser/template/filter-container.html" filters=npcFilters}}
diff --git a/template/settings.html b/template/settings.html index dd97165..823ac4a 100644 --- a/template/settings.html +++ b/template/settings.html @@ -1,4 +1,4 @@ -
+

{{localize "CMPBrowser.generalSettings"}}