diff --git a/acks/npc/commands.py b/acks/npc/commands.py index 1a7e310..a1c631c 100644 --- a/acks/npc/commands.py +++ b/acks/npc/commands.py @@ -55,6 +55,7 @@ def populate_npc_database(): spell.arcane = 0 if spell.divine == '': spell.divine = 0 + spell.description = spell.description.strip() db.session.bulk_save_objects(spells) db.session.commit() diff --git a/acks/npc/models.py b/acks/npc/models.py index 1da0201..f059170 100644 --- a/acks/npc/models.py +++ b/acks/npc/models.py @@ -1,3 +1,5 @@ +import base64 + from flask_sqlalchemy import SQLAlchemy from ..models import db, BaseModel @@ -120,7 +122,7 @@ class Spell(BaseModel): 'is_divine': self.is_divine, 'arcane': self.arcane, 'is_arcane': self.is_arcane, - 'description': self.description #.replace('"', '\\"').replace("'", "\\'") + 'description': base64.b64encode(self.description.encode('ascii')).decode('ascii') } return spell_dict @@ -283,6 +285,13 @@ class CharacterNPC(BaseModel): } } + if self.guild.is_divine_spellcaster or self.guild.is_arcane_spellcaster: + npc_dict['spells'] = [] + spell_list = self.spell_list() + for level in spell_list: + for spell in spell_list[level]: + npc_dict['spells'].append(spell.roll20_format) + if self.ranged: npc_dict['ranged'] = { 'name': self.ranged.name, diff --git a/acks/npc/npc_party.py b/acks/npc/npc_party.py index 8367747..47cfe5e 100644 --- a/acks/npc/npc_party.py +++ b/acks/npc/npc_party.py @@ -106,6 +106,9 @@ def select_spell_list(npc, data): level_set.add(choice(overall_spell_list[level]).id) npc_spell_list.extend(level_set) + # FOR DEBUG XXX NOTE + npc_spell_list.append(106) + return ','.join(str(sid) for sid in npc_spell_list) def calc_hp(conmod, hit_die_size, level): diff --git a/acks/npc/templates/generate_npc_party.html b/acks/npc/templates/generate_npc_party.html index e038125..23848fe 100644 --- a/acks/npc/templates/generate_npc_party.html +++ b/acks/npc/templates/generate_npc_party.html @@ -270,7 +270,7 @@ div.acks-npc-card { // Fill in spell details document.querySelector('#spell-modal-title').innerText = modal_spell.name; - document.querySelector('#spell-modal-desc').innerText = modal_spell.description; + document.querySelector('#spell-modal-desc').innerText = atob(modal_spell.description); if(spell.range) { document.querySelector('#spell-modal-range').innerText = modal_spell.range; @@ -294,9 +294,9 @@ div.acks-npc-card { function showExportModal() { {% if party %} - {% for npc in party %} + {% for npc in party %} party.push(JSON.parse('{{ npc.roll20_format | tojson }}')); - {% endfor %} + {% endfor %} {% endif %} for(let cb of document.querySelectorAll('#pe_selects > label > input')) {