You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

78 lines
2.7 KiB

from flask_sqlalchemy import SQLAlchemy
from ..models import db, BaseModel
class CharacterClass(BaseModel):
__tablename__ = 'character_class'
name = db.Column(db.String(50), unique=True, nullable=False)
bucket = db.Column(db.String(50))
frequency_modifier = db.Column(db.Integer, default=1)
prime_requisite = db.Column(db.String(3))
hit_die_size = db.Column(db.Integer)
maximum_level = db.Column(db.Integer)
armour_modifier = db.Column(db.Integer)
melee_light = db.Column(db.Integer)
melee_medium = db.Column(db.Integer)
melee_heavy = db.Column(db.Integer)
ranged_light = db.Column(db.Integer)
ranged_heavy = db.Column(db.Integer)
def __repr__(self):
return '<CharacterClass {0}>'.format(self.name)
class EquipmentArmour(BaseModel):
__tablename__ = 'eq_armour'
name = db.Column(db.String(50), unique=True, nullable=False)
gp_value = db.Column(db.Integer, nullable=False)
ac_mod = db.Column(db.Integer, nullable=False)
def __repr__(self):
return '<EquipmentArmour {0}>'.format(self.name)
class EquipmentRangedWeapon(BaseModel):
__tablename__ = 'eq_ranged_wep'
name = db.Column(db.String(50), unique=True, nullable=False)
bucket = db.Column(db.String(20), nullable=False)
gp_value = db.Column(db.Integer, nullable=False)
damage_die = db.Column(db.String(10), nullable=False)
def __repr__(self):
return '<EquipmentRangedWeapon {0}>'.format(self.name)
class EquipmentMeleeWeapon(BaseModel):
__tablename__ = 'eq_melee_wep'
name = db.Column(db.String(50), unique=False, nullable=False)
bucket = db.Column(db.String(20), nullable=False)
gp_value = db.Column(db.Integer, nullable=False)
damage_die = db.Column(db.String(10), nullable=False)
two_handed = db.Column(db.Boolean, nullable=False)
def __repr__(self):
return '<EquipmentMeleeWeapon {0}>'.format(self.name)
class CharacterNPC(BaseModel):
__tablename__ = 'npcs'
name = db.Column(db.String(50), unique=False, nullable=True)
level = db.Column(db.Integer, nullable=False)
hit_points = db.Column(db.Integer, nullable=False)
guild_id = db.Column(db.Integer, db.ForeignKey('guild.id'), nullable=False)
guild = db.relationship('CharacterClass', backref=db.backref('npcs', lazy=True))
melee_id = db.Column(db.Integer, db.ForeignKey('melee.id'), nullable=False)
melee = db.relationship('EquipmentMeleeWeapon')
ranged_id = db.Column(db.Integer, db.ForeignKey('ranged.id'), nullable=False)
ranged = db.relationship('EquipmentRangedWeapon')
def __repr__(self):
return '<CharacterNPC {0}>'.format(self.name)
admin_models = [CharacterClass, EquipmentArmour, EquipmentRangedWeapon, EquipmentMeleeWeapon, CharacterNPC]