NPC spell generation, front end
This commit is contained in:
		
							parent
							
								
									a683cd9007
								
							
						
					
					
						commit
						b3c8ae7328
					
				@ -55,6 +55,7 @@ def populate_npc_database():
 | 
				
			|||||||
            spell.arcane = 0
 | 
					            spell.arcane = 0
 | 
				
			||||||
        if spell.divine == '':
 | 
					        if spell.divine == '':
 | 
				
			||||||
            spell.divine = 0
 | 
					            spell.divine = 0
 | 
				
			||||||
 | 
					        spell.description = spell.description.strip()
 | 
				
			||||||
    db.session.bulk_save_objects(spells)
 | 
					    db.session.bulk_save_objects(spells)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    db.session.commit()
 | 
					    db.session.commit()
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,5 @@
 | 
				
			|||||||
 | 
					import base64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from flask_sqlalchemy import SQLAlchemy
 | 
					from flask_sqlalchemy import SQLAlchemy
 | 
				
			||||||
from ..models import db, BaseModel
 | 
					from ..models import db, BaseModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -120,7 +122,7 @@ class Spell(BaseModel):
 | 
				
			|||||||
            'is_divine': self.is_divine,
 | 
					            'is_divine': self.is_divine,
 | 
				
			||||||
            'arcane': self.arcane,
 | 
					            'arcane': self.arcane,
 | 
				
			||||||
            'is_arcane': self.is_arcane,
 | 
					            'is_arcane': self.is_arcane,
 | 
				
			||||||
            'description': self.description #.replace('"', '\\"').replace("'", "\\'")
 | 
					            'description': base64.b64encode(self.description.encode('ascii')).decode('ascii')
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return spell_dict 
 | 
					        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:
 | 
					        if self.ranged:
 | 
				
			||||||
            npc_dict['ranged'] = {
 | 
					            npc_dict['ranged'] = {
 | 
				
			||||||
                'name': self.ranged.name,
 | 
					                'name': self.ranged.name,
 | 
				
			||||||
 | 
				
			|||||||
@ -106,6 +106,9 @@ def select_spell_list(npc, data):
 | 
				
			|||||||
            level_set.add(choice(overall_spell_list[level]).id)
 | 
					            level_set.add(choice(overall_spell_list[level]).id)
 | 
				
			||||||
        npc_spell_list.extend(level_set)
 | 
					        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)
 | 
					    return ','.join(str(sid) for sid in npc_spell_list)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def calc_hp(conmod, hit_die_size, level):
 | 
					def calc_hp(conmod, hit_die_size, level):
 | 
				
			||||||
 | 
				
			|||||||
@ -270,7 +270,7 @@ div.acks-npc-card {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // Fill in spell details
 | 
					        // Fill in spell details
 | 
				
			||||||
        document.querySelector('#spell-modal-title').innerText = modal_spell.name;
 | 
					        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) {
 | 
					        if(spell.range) {
 | 
				
			||||||
            document.querySelector('#spell-modal-range').innerText = modal_spell.range;
 | 
					            document.querySelector('#spell-modal-range').innerText = modal_spell.range;
 | 
				
			||||||
@ -294,9 +294,9 @@ div.acks-npc-card {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    function showExportModal() {
 | 
					    function showExportModal() {
 | 
				
			||||||
        {% if party %}
 | 
					        {% if party %}
 | 
				
			||||||
            {% for npc in party %}
 | 
					        {% for npc in party %}
 | 
				
			||||||
        party.push(JSON.parse('{{ npc.roll20_format | tojson }}'));
 | 
					        party.push(JSON.parse('{{ npc.roll20_format | tojson }}'));
 | 
				
			||||||
            {% endfor %}
 | 
					        {% endfor %}
 | 
				
			||||||
        {% endif %}
 | 
					        {% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for(let cb of document.querySelectorAll('#pe_selects > label > input')) {
 | 
					        for(let cb of document.querySelectorAll('#pe_selects > label > input')) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user