Initial commit. Basic models mostly done.
This commit is contained in:
275
app/models.py
Normal file
275
app/models.py
Normal file
@@ -0,0 +1,275 @@
|
||||
from django.db import models
|
||||
|
||||
#==============================================================================#
|
||||
#-------------------------------- OPTION LISTS --------------------------------#
|
||||
#==============================================================================#
|
||||
ATTRIBUTES = []
|
||||
ABILITIES = []
|
||||
STATICS = []
|
||||
CATEGORIES = []
|
||||
TAGS_WEAPON = []
|
||||
TAGS_ARMOR = []
|
||||
INTENSITIES = [
|
||||
("MINOR", "Minor"),
|
||||
("MAJOR", "Major"),
|
||||
("DEFINING", "Defining"),
|
||||
]
|
||||
|
||||
#==============================================================================#
|
||||
#------------------------------- CUSTOM MODELS --------------------------------#
|
||||
#==============================================================================#
|
||||
class NameField(models.CharField):
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs['verbose_name'] = "Name"
|
||||
kwargs['blank'] = False
|
||||
kwargs['max_length'] = 100
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class DescriptionField(models.TextField):
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs['verbose_name'] = "Description"
|
||||
kwargs['blank'] = True
|
||||
kwargs['max_length'] = 1000
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class DotField(models.IntegerField):
|
||||
def __init__(self, verbose_name, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['blank'] = False
|
||||
kwargs['default'] = 0
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class SingleChoiceField(models.CharField):
|
||||
def __init__(self, verbose_name, choices, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['choices'] = choices
|
||||
kwargs['blank'] = True
|
||||
kwargs['max_length'] = 100
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class NamedIntegerField(models.IntegerField):
|
||||
def __init__(self, verbose_name, desc=None, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['help_text'] = desc
|
||||
kwargs['blank'] = False
|
||||
kwargs['default'] = 0
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class NamedCharField(models.CharField):
|
||||
def __init__(self, verbose_name, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['blank'] = False
|
||||
kwargs['max_length'] = 100
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
#==============================================================================#
|
||||
#--------------------------------- MODIFIERS ----------------------------------#
|
||||
#==============================================================================#
|
||||
class modifierBase(models.Model):
|
||||
class Meta:
|
||||
abstract = True
|
||||
value = NamedIntegerField("Modifier Value")
|
||||
|
||||
class modifierAttribute(modifierBase):
|
||||
# attribute
|
||||
pass
|
||||
|
||||
class modifierAbility(modifierBase):
|
||||
# ability
|
||||
pass
|
||||
|
||||
class modifierStatic(modifierBase):
|
||||
# static
|
||||
pass
|
||||
|
||||
#==============================================================================#
|
||||
#----------------------------------- ITEMS ------------------------------------#
|
||||
#==============================================================================#
|
||||
class itemBase(models.Model):
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
name = NameField()
|
||||
description = DescriptionField()
|
||||
|
||||
class item(itemBase):
|
||||
pass
|
||||
|
||||
#==============================================================================#
|
||||
#---------------------------------- WEAPONS -----------------------------------#
|
||||
#==============================================================================#
|
||||
class itemWeaponBase(itemBase):
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
# category
|
||||
# tags
|
||||
accuracy = NamedIntegerField("Accuracy")
|
||||
damage = NamedIntegerField("Damage")
|
||||
defense = NamedIntegerField("Defense")
|
||||
overwhelming = NamedIntegerField("Overwhelming")
|
||||
attunement = NamedIntegerField("Attunement")
|
||||
|
||||
class itemWeaponMelee(itemWeaponBase):
|
||||
pass
|
||||
|
||||
class itemWeaponRanged(itemWeaponBase):
|
||||
rangeClose = NamedIntegerField("Close Range")
|
||||
rangeShort = NamedIntegerField("Short Range")
|
||||
rangeMedium = NamedIntegerField("Medium Range")
|
||||
rangeLong = NamedIntegerField("Long Range")
|
||||
rangeExtreme = NamedIntegerField("Extreme Range")
|
||||
|
||||
#==============================================================================#
|
||||
#----------------------------------- ARMOR ------------------------------------#
|
||||
#==============================================================================#
|
||||
class itemArmor(itemBase):
|
||||
# category
|
||||
# tags
|
||||
soak = NamedIntegerField("Soak")
|
||||
hardness = NamedIntegerField("Hardness")
|
||||
mobilityPenalty = NamedIntegerField("Mobility Penalty")
|
||||
attunement = NamedIntegerField("Attunement")
|
||||
|
||||
#==============================================================================#
|
||||
#----------------------------------- CHARMS -----------------------------------#
|
||||
#==============================================================================#
|
||||
class charm(models.Model):
|
||||
name = NameField()
|
||||
description = DescriptionField()
|
||||
# modifierAttribute
|
||||
# modifierAbility
|
||||
# modifierStatic
|
||||
# rollConfiguration
|
||||
|
||||
#==============================================================================#
|
||||
#----------------------------------- MERITS -----------------------------------#
|
||||
#==============================================================================#
|
||||
class merit(models.Model):
|
||||
name = NameField()
|
||||
description = DescriptionField()
|
||||
dots = DotField("Dots")
|
||||
# modifierAttribute
|
||||
# modifierAbility
|
||||
# modifierStatic
|
||||
# rollConfiguration
|
||||
|
||||
#==============================================================================#
|
||||
#-------------------------------- SPECIALITIES --------------------------------#
|
||||
#==============================================================================#
|
||||
class speciality(models.Model):
|
||||
modifier = 2
|
||||
name = NameField()
|
||||
# ability
|
||||
|
||||
#==============================================================================#
|
||||
#--------------------------------- INTIMACIES ---------------------------------#
|
||||
#==============================================================================#
|
||||
class intimacyBase(models.Model):
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
description = DescriptionField()
|
||||
intensity = SingleChoiceField("Intensity", INTENSITIES)
|
||||
pass
|
||||
|
||||
class intimacyTie(intimacyBase):
|
||||
target = NamedCharField("Target")
|
||||
pass
|
||||
|
||||
class intimacyPrincipal(intimacyBase):
|
||||
pass
|
||||
|
||||
#==============================================================================#
|
||||
#--------------------------------- CHARACTERS ---------------------------------#
|
||||
#==============================================================================#
|
||||
class characterBase(models.Model):
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
#============ GENERAL =============#
|
||||
name = NameField()
|
||||
|
||||
#=========== ATTRIBUTES ===========#
|
||||
strength = DotField("Strength")
|
||||
dexterity = DotField("Dexterity")
|
||||
stamina = DotField("Stamina")
|
||||
charisma = DotField("Charisma")
|
||||
manipulation = DotField("Manipulation")
|
||||
appearance = DotField("Apperance")
|
||||
perception = DotField("Perception")
|
||||
intelligence = DotField("Intelligence")
|
||||
wits = DotField("Wits")
|
||||
|
||||
#=========== ABILITIES ============#
|
||||
archey = DotField("Archery")
|
||||
athletics = DotField("Athletics")
|
||||
awareness = DotField("Awareness")
|
||||
brawl = DotField("Brawl")
|
||||
bureaucracy = DotField("Bureaucracy")
|
||||
craft = DotField("Craft")
|
||||
dodge = DotField("Dodge")
|
||||
integrity = DotField("Integrity")
|
||||
investigation = DotField("Investigation")
|
||||
larceny = DotField("Larceny")
|
||||
linguistics = DotField("Linguistics")
|
||||
lore = DotField("Lore")
|
||||
martialArts = DotField("MartialArts")
|
||||
medicine = DotField("Medicine")
|
||||
melee = DotField("Melee")
|
||||
occult = DotField("Occult")
|
||||
performance = DotField("Performance")
|
||||
presence = DotField("Presence")
|
||||
resistance = DotField("Resistance")
|
||||
ride = DotField("Ride")
|
||||
sail = DotField("Sail")
|
||||
socialize = DotField("Socialize")
|
||||
stealth = DotField("Stealth")
|
||||
survival = DotField("Survival")
|
||||
thrown = DotField("Thrown")
|
||||
war = DotField("War")
|
||||
|
||||
#============= MERITS =============#
|
||||
|
||||
#=========== WILLPOWER ============#
|
||||
|
||||
#=========== EXPERIENCE ===========#
|
||||
|
||||
#============ WEAPONS =============#
|
||||
|
||||
#============= ARMOR ==============#
|
||||
|
||||
#============= ITEMS ==============#
|
||||
|
||||
#============= HEALTH =============#
|
||||
|
||||
#============ STATICS =============#
|
||||
|
||||
class characterExaltBase(characterBase):
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
#============ ESSENCE =============#
|
||||
|
||||
#============= LIMIT ==============#
|
||||
|
||||
#======= EXALTED EXPERIENCE =======#
|
||||
|
||||
#============= CHARMS =============#
|
||||
|
||||
pass
|
||||
|
||||
class characterMortal(characterBase):
|
||||
pass
|
||||
|
||||
class characterExaltSolar(characterExaltBase):
|
||||
|
||||
#============ SUPERNAL ============#
|
||||
|
||||
pass
|
||||
|
||||
class characterExaltLunar(characterExaltBase):
|
||||
|
||||
#========= SHAPESHIFTING ==========#
|
||||
|
||||
pass
|
||||
Reference in New Issue
Block a user