diff --git a/app/__pycache__/admin.cpython-38.pyc b/app/__pycache__/admin.cpython-38.pyc index 81fc175..bafe928 100644 Binary files a/app/__pycache__/admin.cpython-38.pyc and b/app/__pycache__/admin.cpython-38.pyc differ diff --git a/app/__pycache__/models.cpython-38.pyc b/app/__pycache__/models.cpython-38.pyc index d6a31fa..519a81a 100644 Binary files a/app/__pycache__/models.cpython-38.pyc and b/app/__pycache__/models.cpython-38.pyc differ diff --git a/app/admin.py b/app/admin.py index 27d062b..8a92635 100644 --- a/app/admin.py +++ b/app/admin.py @@ -14,6 +14,8 @@ admin.site.register(itemArmor) admin.site.register(charmSolar) admin.site.register(charmLunar) +admin.site.register(charmLunarShape) +admin.site.register(charmEvocation) admin.site.register(merit) @@ -22,6 +24,19 @@ admin.site.register(speciality) admin.site.register(intimacyTie) admin.site.register(intimacyPrincipal) -admin.site.register(characterBase) +admin.site.register(characterMortal) admin.site.register(characterExaltSolar) admin.site.register(characterExaltLunar) + +admin.site.register(ownershipItem) +admin.site.register(ownershipItemWeapon) +admin.site.register(ownershipItemArmor) +admin.site.register(ownershipCharmMartialArt) +admin.site.register(ownershipCharmEvocation) +admin.site.register(ownershipCharmSolar) +admin.site.register(ownershipCharmLunar) +admin.site.register(ownershipCharmLunarShape) +admin.site.register(ownershipMerit) +admin.site.register(ownershipSpeciality) +admin.site.register(ownershipIntimacyTie) +admin.site.register(ownershipIntimacyPrincipal) diff --git a/app/migrations/0001_initial.py b/app/migrations/0001_initial.py index cda855b..6b441c2 100644 --- a/app/migrations/0001_initial.py +++ b/app/migrations/0001_initial.py @@ -1,7 +1,8 @@ -# Generated by Django 3.0.5 on 2020-04-11 14:59 +# Generated by Django 3.0.5 on 2020-04-12 13:10 import app.models from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -9,49 +10,202 @@ class Migration(migrations.Migration): initial = True dependencies = [ + ('contenttypes', '0002_remove_content_type_name'), ] operations = [ migrations.CreateModel( - name='intimacyPrincipal', + name='characterBase', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', app.models.NameField(max_length=100, verbose_name='Name')), + ('strength', app.models.DotField(default=0, verbose_name='Strength')), + ('dexterity', app.models.DotField(default=0, verbose_name='Dexterity')), + ('stamina', app.models.DotField(default=0, verbose_name='Stamina')), + ('charisma', app.models.DotField(default=0, verbose_name='Charisma')), + ('manipulation', app.models.DotField(default=0, verbose_name='Manipulation')), + ('appearance', app.models.DotField(default=0, verbose_name='Apperance')), + ('perception', app.models.DotField(default=0, verbose_name='Perception')), + ('intelligence', app.models.DotField(default=0, verbose_name='Intelligence')), + ('wits', app.models.DotField(default=0, verbose_name='Wits')), + ('archery', app.models.DotField(default=0, verbose_name='Archery')), + ('athletics', app.models.DotField(default=0, verbose_name='Athletics')), + ('awareness', app.models.DotField(default=0, verbose_name='Awareness')), + ('brawl', app.models.DotField(default=0, verbose_name='Brawl')), + ('bureaucracy', app.models.DotField(default=0, verbose_name='Bureaucracy')), + ('craft', app.models.DotField(default=0, verbose_name='Craft')), + ('dodge', app.models.DotField(default=0, verbose_name='Dodge')), + ('integrity', app.models.DotField(default=0, verbose_name='Integrity')), + ('investigation', app.models.DotField(default=0, verbose_name='Investigation')), + ('larceny', app.models.DotField(default=0, verbose_name='Larceny')), + ('linguistics', app.models.DotField(default=0, verbose_name='Linguistics')), + ('lore', app.models.DotField(default=0, verbose_name='Lore')), + ('martialArts', app.models.DotField(default=0, verbose_name='MartialArts')), + ('medicine', app.models.DotField(default=0, verbose_name='Medicine')), + ('melee', app.models.DotField(default=0, verbose_name='Melee')), + ('occult', app.models.DotField(default=0, verbose_name='Occult')), + ('performance', app.models.DotField(default=0, verbose_name='Performance')), + ('presence', app.models.DotField(default=0, verbose_name='Presence')), + ('resistance', app.models.DotField(default=0, verbose_name='Resistance')), + ('ride', app.models.DotField(default=0, verbose_name='Ride')), + ('sail', app.models.DotField(default=0, verbose_name='Sail')), + ('socialize', app.models.DotField(default=0, verbose_name='Socialize')), + ('stealth', app.models.DotField(default=0, verbose_name='Stealth')), + ('survival', app.models.DotField(default=0, verbose_name='Survival')), + ('thrown', app.models.DotField(default=0, verbose_name='Thrown')), + ('war', app.models.DotField(default=0, verbose_name='War')), + ('willpowerMax', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Willpower')), + ('willpower', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Willpower')), + ('experienceTotal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Experience')), + ('experience', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Experience')), + ('essence', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Essence')), + ('health0', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-0' Health Levels")), + ('health1', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-1' Health Levels")), + ('health2', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-2' Health Levels")), + ('healthIndex', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Health Track Index')), + ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.characterbase_set+', to='contenttypes.ContentType')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + ), + migrations.CreateModel( + name='effectBase', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', app.models.NameField(max_length=100, verbose_name='Name')), + ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), + ('active', app.models.NamedBooleanField(default=False, verbose_name='Active?')), + ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.effectbase_set+', to='contenttypes.ContentType')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + ), + migrations.CreateModel( + name='intimacyBase', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), ('intensity', app.models.SingleChoiceField(blank=True, choices=[('MINOR', 'Minor'), ('MAJOR', 'Major'), ('DEFINING', 'Defining')], max_length=100, verbose_name='Intensity')), + ('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character')), + ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.intimacybase_set+', to='contenttypes.ContentType')), ], options={ 'abstract': False, + 'base_manager_name': 'objects', }, ), + migrations.CreateModel( + name='itemBase', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', app.models.NameField(max_length=100, verbose_name='Name')), + ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), + ('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character')), + ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.itembase_set+', to='contenttypes.ContentType')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + ), + migrations.CreateModel( + name='modifierBase', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('value', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Modifier Value')), + ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.modifierbase_set+', to='contenttypes.ContentType')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + ), + migrations.CreateModel( + name='characterExaltBase', + fields=[ + ('characterbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.characterBase')), + ('motesPersonalMax', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Personal Motes')), + ('motesPersonal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Personal Motes')), + ('motesPeripheralMax', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Peripheral Motes')), + ('motesPeripheral', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Peripheral Motes')), + ('limitTrigger', models.TextField(blank='False', max_length=1000, verbose_name='Limit Trigger')), + ('limitBreak', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Limit Break')), + ('experienceExaltedTotal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Experience')), + ('experienceExalted', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Experience')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.characterbase',), + ), + migrations.CreateModel( + name='characterMortal', + fields=[ + ('characterbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.characterBase')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.characterbase',), + ), + migrations.CreateModel( + name='charmBase', + fields=[ + ('effectbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.effectBase')), + ('levelEssence', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Essence Level')), + ('levelKey', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Key Level')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.effectbase',), + ), + migrations.CreateModel( + name='intimacyPrincipal', + fields=[ + ('intimacybase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.intimacyBase')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.intimacybase',), + ), migrations.CreateModel( name='intimacyTie', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), - ('intensity', app.models.SingleChoiceField(blank=True, choices=[('MINOR', 'Minor'), ('MAJOR', 'Major'), ('DEFINING', 'Defining')], max_length=100, verbose_name='Intensity')), + ('intimacybase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.intimacyBase')), ('target', app.models.NamedCharField(max_length=100, verbose_name='Target')), ], options={ 'abstract': False, + 'base_manager_name': 'objects', }, + bases=('app.intimacybase',), ), migrations.CreateModel( name='item', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), + ('itembase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.itemBase')), ], options={ 'abstract': False, + 'base_manager_name': 'objects', }, + bases=('app.itembase',), ), migrations.CreateModel( name='itemArmor', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), + ('itembase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.itemBase')), + ('equipped', app.models.NamedBooleanField(default=False, verbose_name='Equipped?')), ('category', app.models.SingleChoiceField(blank=True, choices=[('L', 'Light'), ('M', 'Medium'), ('H', 'Heavy')], max_length=100, verbose_name='Category')), ('tags', app.models.MultiChoiceField(blank=True, choices=[('BUOYANT', 'Buoyant'), ('CONCEALABLE', 'Concealable'), ('SILENT', 'Silent')], max_length=100, verbose_name='Tags')), ('soak', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Soak')), @@ -61,14 +215,15 @@ class Migration(migrations.Migration): ], options={ 'abstract': False, + 'base_manager_name': 'objects', }, + bases=('app.itembase',), ), migrations.CreateModel( - name='itemWeaponMelee', + name='itemWeaponBase', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), + ('itembase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.itemBase')), + ('equipped', app.models.NamedBooleanField(default=False, verbose_name='Equipped?')), ('category', app.models.SingleChoiceField(blank=True, choices=[('L', 'Light'), ('M', 'Medium'), ('H', 'Heavy')], max_length=100, verbose_name='Category')), ('tags', app.models.MultiChoiceField(blank=True, choices=[('General', (('ONE HANDED', 'One Handed'), ('TWO HANDED', 'Two Handed'), ('BASHING', 'Bashing'), ('CONCEALABLE', 'Concealable'), ('LETHAL', 'Lethal'), ('MOUNTED', 'Mounted'), ('PIERCING', 'Piercing'), ('SPECIAL', 'Special'))), ('Melee', (('MELEE', 'Melee'), ('BALANCED', 'Balanced'), ('BRAWL', 'Brawl'), ('CHOPPING', 'Chopping'), ('DISARMING', 'Disarming'), ('FLEXIBLE', 'Flexible'), ('IMPROVISED', 'Improvised'), ('GRAPPLING', 'Grappling'), ('MARTIAL ARTS', 'Martial Arts'), ('NATURAL', 'Natural'), ('REACHING', 'Reaching'), ('SHIELD', 'Shield'), ('SMASHING', 'Smashing'), ('WORN', 'Worn'))), ('Thrown', (('THROWN', 'Occult'), ('CUTTING', 'Cutting'), ('POISONABLE', 'Poisonable'), ('SUBTLE', 'Subtle'))), ('Archery', (('ARCHERY', 'Archery'), ('CROSSBOW', 'Crossbow'), ('FLAME', 'Flame'), ('POWERFUL', 'Powerful'), ('SLOW', 'Slow')))], max_length=100, verbose_name='Tags')), ('accuracy', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Accuracy')), @@ -79,68 +234,75 @@ class Migration(migrations.Migration): ], options={ 'abstract': False, + 'base_manager_name': 'objects', }, + bases=('app.itembase',), ), migrations.CreateModel( - name='itemWeaponRanged', + name='merit', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), - ('category', app.models.SingleChoiceField(blank=True, choices=[('L', 'Light'), ('M', 'Medium'), ('H', 'Heavy')], max_length=100, verbose_name='Category')), - ('tags', app.models.MultiChoiceField(blank=True, choices=[('General', (('ONE HANDED', 'One Handed'), ('TWO HANDED', 'Two Handed'), ('BASHING', 'Bashing'), ('CONCEALABLE', 'Concealable'), ('LETHAL', 'Lethal'), ('MOUNTED', 'Mounted'), ('PIERCING', 'Piercing'), ('SPECIAL', 'Special'))), ('Melee', (('MELEE', 'Melee'), ('BALANCED', 'Balanced'), ('BRAWL', 'Brawl'), ('CHOPPING', 'Chopping'), ('DISARMING', 'Disarming'), ('FLEXIBLE', 'Flexible'), ('IMPROVISED', 'Improvised'), ('GRAPPLING', 'Grappling'), ('MARTIAL ARTS', 'Martial Arts'), ('NATURAL', 'Natural'), ('REACHING', 'Reaching'), ('SHIELD', 'Shield'), ('SMASHING', 'Smashing'), ('WORN', 'Worn'))), ('Thrown', (('THROWN', 'Occult'), ('CUTTING', 'Cutting'), ('POISONABLE', 'Poisonable'), ('SUBTLE', 'Subtle'))), ('Archery', (('ARCHERY', 'Archery'), ('CROSSBOW', 'Crossbow'), ('FLAME', 'Flame'), ('POWERFUL', 'Powerful'), ('SLOW', 'Slow')))], max_length=100, verbose_name='Tags')), - ('accuracy', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Accuracy')), - ('damage', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Damage')), - ('defense', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Defense')), - ('overwhelming', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Overwhelming')), - ('attunement', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Attunement')), - ('rangeClose', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Close Range')), - ('rangeShort', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Short Range')), - ('rangeMedium', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Medium Range')), - ('rangeLong', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Long Range')), - ('rangeExtreme', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Extreme Range')), + ('effectbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.effectBase')), + ('dots', app.models.DotField(default=0, verbose_name='Dots')), ], options={ 'abstract': False, + 'base_manager_name': 'objects', }, + bases=('app.effectbase',), ), migrations.CreateModel( name='modifierAbility', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('value', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Modifier Value')), + ('modifierbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.modifierBase')), ('ability', app.models.SingleChoiceField(blank=True, choices=[('War', (('ARCHERY', 'Archery'), ('ATHLETICS', 'Athletics'), ('AWARENESS', 'Awareness'), ('BRAWL', 'Brawl'), ('DODGE', 'Dodge'), ('INTEGRITY', 'Integrity'), ('MELEE', 'Melee'), ('RESISTANCE', 'Resistance'), ('THROWN', 'Thrown'), ('WAR', 'War'))), ('Life', (('CRAFT', 'Craft'), ('LARCENY', 'Larceny'), ('LINGUISTICS', 'Linguistics'), ('PERFORMANCE', 'Performance'), ('PRESENCE', 'Presence'), ('RIDE', 'Ride'), ('SAIL', 'Sail'), ('SOCIALISE', 'Socialise'), ('STEALTH', 'Stealth'), ('SURVIVAL', 'Survival'))), ('Wisdom', (('BUREAUCRACY', 'Bureaucracy'), ('INVESTIGATION', 'Investigation'), ('LORE', 'Lore'), ('MEDICINE', 'Medicine'), ('OCCULT', 'Occult')))], max_length=100, verbose_name='Ability')), ], options={ 'abstract': False, + 'base_manager_name': 'objects', }, + bases=('app.modifierbase',), ), migrations.CreateModel( name='modifierAttribute', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('value', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Modifier Value')), - ('attribute', app.models.SingleChoiceField(blank=True, choices=[('Physical', (('STR', 'Srength'), ('DEX', 'Dexterity'), ('STA', 'Stamina'))), ('Social', (('CHA', 'Charisma'), ('MAN', 'Manipulation'), ('APP', 'Appearance'))), ('Mental', (('PER', 'Perception'), ('INT', 'Intelligence'), ('WIT', 'Wits')))], max_length=100, verbose_name='Attribute')), + ('modifierbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.modifierBase')), + ('attribute', app.models.SingleChoiceField(blank=True, choices=[('Physical', (('STR', 'Strength'), ('DEX', 'Dexterity'), ('STA', 'Stamina'))), ('Social', (('CHA', 'Charisma'), ('MAN', 'Manipulation'), ('APP', 'Appearance'))), ('Mental', (('PER', 'Perception'), ('INT', 'Intelligence'), ('WIT', 'Wits')))], max_length=100, verbose_name='Attribute')), ], options={ 'abstract': False, + 'base_manager_name': 'objects', }, + bases=('app.modifierbase',), ), migrations.CreateModel( name='modifierStatic', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('value', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Modifier Value')), + ('modifierbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.modifierBase')), ('static', app.models.SingleChoiceField(blank=True, choices=[('SOAK NATURAL', 'Natural Soak'), ('SOAK ARMORED', 'Armored Soak'), ('SOAK TOTAL', 'Total Soak'), ('HARDNESS', 'Hardness'), ('PARRY', 'Parry'), ('EVASION', 'Evasion'), ('RESOLVE', 'Resolve'), ('GUILE', 'Guile'), ('RUSH', 'Rush'), ('DISENGAGE', 'Disengage'), ('JOIN BATTLE', 'Join Battle')], max_length=100, verbose_name='Static')), ], options={ 'abstract': False, + 'base_manager_name': 'objects', }, + bases=('app.modifierbase',), + ), + migrations.CreateModel( + name='speciality', + fields=[ + ('effectbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.effectBase')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.effectbase',), ), migrations.CreateModel( name='rollConfiguration', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', app.models.NameField(max_length=100, verbose_name='Name')), + ('successesAuto', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Auto-Successes')), ('r01', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['NONE'], max_length=100, number=1, verbose_name='1s')), ('r02', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['NONE'], max_length=100, number=2, verbose_name='2s')), ('r03', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['NONE'], max_length=100, number=3, verbose_name='3s')), @@ -151,213 +313,160 @@ class Migration(migrations.Migration): ('r08', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['SUCCESS'], max_length=100, number=8, verbose_name='8s')), ('r09', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['SUCCESS'], max_length=100, number=9, verbose_name='9s')), ('r10', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['SUCCESS', 'DOUBLE'], max_length=100, number=10, verbose_name='10s')), - ], - ), - migrations.CreateModel( - name='speciality', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('ability', app.models.SingleChoiceField(blank=True, choices=[('War', (('ARCHERY', 'Archery'), ('ATHLETICS', 'Athletics'), ('AWARENESS', 'Awareness'), ('BRAWL', 'Brawl'), ('DODGE', 'Dodge'), ('INTEGRITY', 'Integrity'), ('MELEE', 'Melee'), ('RESISTANCE', 'Resistance'), ('THROWN', 'Thrown'), ('WAR', 'War'))), ('Life', (('CRAFT', 'Craft'), ('LARCENY', 'Larceny'), ('LINGUISTICS', 'Linguistics'), ('PERFORMANCE', 'Performance'), ('PRESENCE', 'Presence'), ('RIDE', 'Ride'), ('SAIL', 'Sail'), ('SOCIALISE', 'Socialise'), ('STEALTH', 'Stealth'), ('SURVIVAL', 'Survival'))), ('Wisdom', (('BUREAUCRACY', 'Bureaucracy'), ('INVESTIGATION', 'Investigation'), ('LORE', 'Lore'), ('MEDICINE', 'Medicine'), ('OCCULT', 'Occult')))], max_length=100, verbose_name='Ability')), - ], - ), - migrations.CreateModel( - name='merit', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), - ('dots', app.models.DotField(default=0, verbose_name='Dots')), - ('modifierAbility', app.models.NamedManyToManyField(blank=True, to='app.modifierAbility', verbose_name='Abilities Modifiers')), - ('modifierAttribute', app.models.NamedManyToManyField(blank=True, to='app.modifierAttribute', verbose_name='Attribute Modifiers')), - ('modifierStatic', app.models.NamedManyToManyField(blank=True, to='app.modifierStatic', verbose_name='Statics Modifiers')), - ('rollConfiguration', app.models.NamedManyToManyField(blank=True, to='app.rollConfiguration', verbose_name='Roll Configurations')), - ], - ), - migrations.CreateModel( - name='charm', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), - ('modifierAbility', app.models.NamedManyToManyField(blank=True, to='app.modifierAbility', verbose_name='Abilities Modifiers')), - ('modifierAttribute', app.models.NamedManyToManyField(blank=True, to='app.modifierAttribute', verbose_name='Attribute Modifiers')), - ('modifierStatic', app.models.NamedManyToManyField(blank=True, to='app.modifierStatic', verbose_name='Statics Modifiers')), - ('rollConfiguration', app.models.NamedManyToManyField(blank=True, to='app.rollConfiguration', verbose_name='Roll Configurations')), - ], - ), - migrations.CreateModel( - name='characterMortal', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('strength', app.models.DotField(default=0, verbose_name='Strength')), - ('dexterity', app.models.DotField(default=0, verbose_name='Dexterity')), - ('stamina', app.models.DotField(default=0, verbose_name='Stamina')), - ('charisma', app.models.DotField(default=0, verbose_name='Charisma')), - ('manipulation', app.models.DotField(default=0, verbose_name='Manipulation')), - ('appearance', app.models.DotField(default=0, verbose_name='Apperance')), - ('perception', app.models.DotField(default=0, verbose_name='Perception')), - ('intelligence', app.models.DotField(default=0, verbose_name='Intelligence')), - ('wits', app.models.DotField(default=0, verbose_name='Wits')), - ('archey', app.models.DotField(default=0, verbose_name='Archery')), - ('athletics', app.models.DotField(default=0, verbose_name='Athletics')), - ('awareness', app.models.DotField(default=0, verbose_name='Awareness')), - ('brawl', app.models.DotField(default=0, verbose_name='Brawl')), - ('bureaucracy', app.models.DotField(default=0, verbose_name='Bureaucracy')), - ('craft', app.models.DotField(default=0, verbose_name='Craft')), - ('dodge', app.models.DotField(default=0, verbose_name='Dodge')), - ('integrity', app.models.DotField(default=0, verbose_name='Integrity')), - ('investigation', app.models.DotField(default=0, verbose_name='Investigation')), - ('larceny', app.models.DotField(default=0, verbose_name='Larceny')), - ('linguistics', app.models.DotField(default=0, verbose_name='Linguistics')), - ('lore', app.models.DotField(default=0, verbose_name='Lore')), - ('martialArts', app.models.DotField(default=0, verbose_name='MartialArts')), - ('medicine', app.models.DotField(default=0, verbose_name='Medicine')), - ('melee', app.models.DotField(default=0, verbose_name='Melee')), - ('occult', app.models.DotField(default=0, verbose_name='Occult')), - ('performance', app.models.DotField(default=0, verbose_name='Performance')), - ('presence', app.models.DotField(default=0, verbose_name='Presence')), - ('resistance', app.models.DotField(default=0, verbose_name='Resistance')), - ('ride', app.models.DotField(default=0, verbose_name='Ride')), - ('sail', app.models.DotField(default=0, verbose_name='Sail')), - ('socialize', app.models.DotField(default=0, verbose_name='Socialize')), - ('stealth', app.models.DotField(default=0, verbose_name='Stealth')), - ('survival', app.models.DotField(default=0, verbose_name='Survival')), - ('thrown', app.models.DotField(default=0, verbose_name='Thrown')), - ('war', app.models.DotField(default=0, verbose_name='War')), - ('willpowerMax', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Willpower')), - ('willpower', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Willpower')), - ('experienceTotal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Experience')), - ('experience', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Experience')), - ('health0', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-0' Health Levels")), - ('health1', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-1' Health Levels")), - ('health2', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-2' Health Levels")), - ('healthIndex', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Health Track Index')), - ('armor', app.models.NamedManyToManyField(blank=True, to='app.itemArmor', verbose_name='Armor')), - ('items', app.models.NamedManyToManyField(blank=True, to='app.item', verbose_name='Items')), - ('merits', app.models.NamedManyToManyField(blank=True, to='app.merit', verbose_name='Merits')), - ('weaponsMelee', app.models.NamedManyToManyField(blank=True, to='app.itemWeaponMelee', verbose_name='Melee Weapons')), - ('weaponsRanged', app.models.NamedManyToManyField(blank=True, to='app.itemWeaponRanged', verbose_name='Ranged Weapons')), + ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.rollconfiguration_set+', to='contenttypes.ContentType')), ], options={ 'abstract': False, + 'base_manager_name': 'objects', }, ), - migrations.CreateModel( - name='characterExaltSolar', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('strength', app.models.DotField(default=0, verbose_name='Strength')), - ('dexterity', app.models.DotField(default=0, verbose_name='Dexterity')), - ('stamina', app.models.DotField(default=0, verbose_name='Stamina')), - ('charisma', app.models.DotField(default=0, verbose_name='Charisma')), - ('manipulation', app.models.DotField(default=0, verbose_name='Manipulation')), - ('appearance', app.models.DotField(default=0, verbose_name='Apperance')), - ('perception', app.models.DotField(default=0, verbose_name='Perception')), - ('intelligence', app.models.DotField(default=0, verbose_name='Intelligence')), - ('wits', app.models.DotField(default=0, verbose_name='Wits')), - ('archey', app.models.DotField(default=0, verbose_name='Archery')), - ('athletics', app.models.DotField(default=0, verbose_name='Athletics')), - ('awareness', app.models.DotField(default=0, verbose_name='Awareness')), - ('brawl', app.models.DotField(default=0, verbose_name='Brawl')), - ('bureaucracy', app.models.DotField(default=0, verbose_name='Bureaucracy')), - ('craft', app.models.DotField(default=0, verbose_name='Craft')), - ('dodge', app.models.DotField(default=0, verbose_name='Dodge')), - ('integrity', app.models.DotField(default=0, verbose_name='Integrity')), - ('investigation', app.models.DotField(default=0, verbose_name='Investigation')), - ('larceny', app.models.DotField(default=0, verbose_name='Larceny')), - ('linguistics', app.models.DotField(default=0, verbose_name='Linguistics')), - ('lore', app.models.DotField(default=0, verbose_name='Lore')), - ('martialArts', app.models.DotField(default=0, verbose_name='MartialArts')), - ('medicine', app.models.DotField(default=0, verbose_name='Medicine')), - ('melee', app.models.DotField(default=0, verbose_name='Melee')), - ('occult', app.models.DotField(default=0, verbose_name='Occult')), - ('performance', app.models.DotField(default=0, verbose_name='Performance')), - ('presence', app.models.DotField(default=0, verbose_name='Presence')), - ('resistance', app.models.DotField(default=0, verbose_name='Resistance')), - ('ride', app.models.DotField(default=0, verbose_name='Ride')), - ('sail', app.models.DotField(default=0, verbose_name='Sail')), - ('socialize', app.models.DotField(default=0, verbose_name='Socialize')), - ('stealth', app.models.DotField(default=0, verbose_name='Stealth')), - ('survival', app.models.DotField(default=0, verbose_name='Survival')), - ('thrown', app.models.DotField(default=0, verbose_name='Thrown')), - ('war', app.models.DotField(default=0, verbose_name='War')), - ('willpowerMax', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Willpower')), - ('willpower', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Willpower')), - ('experienceTotal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Experience')), - ('experience', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Experience')), - ('health0', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-0' Health Levels")), - ('health1', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-1' Health Levels")), - ('health2', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-2' Health Levels")), - ('healthIndex', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Health Track Index')), - ('armor', app.models.NamedManyToManyField(blank=True, to='app.itemArmor', verbose_name='Armor')), - ('items', app.models.NamedManyToManyField(blank=True, to='app.item', verbose_name='Items')), - ('merits', app.models.NamedManyToManyField(blank=True, to='app.merit', verbose_name='Merits')), - ('weaponsMelee', app.models.NamedManyToManyField(blank=True, to='app.itemWeaponMelee', verbose_name='Melee Weapons')), - ('weaponsRanged', app.models.NamedManyToManyField(blank=True, to='app.itemWeaponRanged', verbose_name='Ranged Weapons')), - ], - options={ - 'abstract': False, - }, + migrations.AddField( + model_name='effectbase', + name='rollConfiguration', + field=app.models.NamedManyToManyField(blank=True, to='app.rollConfiguration', verbose_name='Roll Configurations'), ), migrations.CreateModel( name='characterExaltLunar', fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('strength', app.models.DotField(default=0, verbose_name='Strength')), - ('dexterity', app.models.DotField(default=0, verbose_name='Dexterity')), - ('stamina', app.models.DotField(default=0, verbose_name='Stamina')), - ('charisma', app.models.DotField(default=0, verbose_name='Charisma')), - ('manipulation', app.models.DotField(default=0, verbose_name='Manipulation')), - ('appearance', app.models.DotField(default=0, verbose_name='Apperance')), - ('perception', app.models.DotField(default=0, verbose_name='Perception')), - ('intelligence', app.models.DotField(default=0, verbose_name='Intelligence')), - ('wits', app.models.DotField(default=0, verbose_name='Wits')), - ('archey', app.models.DotField(default=0, verbose_name='Archery')), - ('athletics', app.models.DotField(default=0, verbose_name='Athletics')), - ('awareness', app.models.DotField(default=0, verbose_name='Awareness')), - ('brawl', app.models.DotField(default=0, verbose_name='Brawl')), - ('bureaucracy', app.models.DotField(default=0, verbose_name='Bureaucracy')), - ('craft', app.models.DotField(default=0, verbose_name='Craft')), - ('dodge', app.models.DotField(default=0, verbose_name='Dodge')), - ('integrity', app.models.DotField(default=0, verbose_name='Integrity')), - ('investigation', app.models.DotField(default=0, verbose_name='Investigation')), - ('larceny', app.models.DotField(default=0, verbose_name='Larceny')), - ('linguistics', app.models.DotField(default=0, verbose_name='Linguistics')), - ('lore', app.models.DotField(default=0, verbose_name='Lore')), - ('martialArts', app.models.DotField(default=0, verbose_name='MartialArts')), - ('medicine', app.models.DotField(default=0, verbose_name='Medicine')), - ('melee', app.models.DotField(default=0, verbose_name='Melee')), - ('occult', app.models.DotField(default=0, verbose_name='Occult')), - ('performance', app.models.DotField(default=0, verbose_name='Performance')), - ('presence', app.models.DotField(default=0, verbose_name='Presence')), - ('resistance', app.models.DotField(default=0, verbose_name='Resistance')), - ('ride', app.models.DotField(default=0, verbose_name='Ride')), - ('sail', app.models.DotField(default=0, verbose_name='Sail')), - ('socialize', app.models.DotField(default=0, verbose_name='Socialize')), - ('stealth', app.models.DotField(default=0, verbose_name='Stealth')), - ('survival', app.models.DotField(default=0, verbose_name='Survival')), - ('thrown', app.models.DotField(default=0, verbose_name='Thrown')), - ('war', app.models.DotField(default=0, verbose_name='War')), - ('willpowerMax', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Willpower')), - ('willpower', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Willpower')), - ('experienceTotal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Experience')), - ('experience', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Experience')), - ('health0', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-0' Health Levels")), - ('health1', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-1' Health Levels")), - ('health2', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-2' Health Levels")), - ('healthIndex', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Health Track Index')), - ('armor', app.models.NamedManyToManyField(blank=True, to='app.itemArmor', verbose_name='Armor')), - ('items', app.models.NamedManyToManyField(blank=True, to='app.item', verbose_name='Items')), - ('merits', app.models.NamedManyToManyField(blank=True, to='app.merit', verbose_name='Merits')), - ('weaponsMelee', app.models.NamedManyToManyField(blank=True, to='app.itemWeaponMelee', verbose_name='Melee Weapons')), - ('weaponsRanged', app.models.NamedManyToManyField(blank=True, to='app.itemWeaponRanged', verbose_name='Ranged Weapons')), + ('characterexaltbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.characterExaltBase')), + ('attributeFavored', app.models.MultiChoiceField(blank=True, choices=[('Physical', (('STR', 'Strength'), ('DEX', 'Dexterity'), ('STA', 'Stamina'))), ('Social', (('CHA', 'Charisma'), ('MAN', 'Manipulation'), ('APP', 'Appearance'))), ('Mental', (('PER', 'Perception'), ('INT', 'Intelligence'), ('WIT', 'Wits')))], max_length=100, verbose_name='Favoured Attributes')), ], options={ 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.characterexaltbase',), + ), + migrations.CreateModel( + name='characterExaltSolar', + fields=[ + ('characterexaltbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.characterExaltBase')), + ('abilitySupernal', app.models.SingleChoiceField(blank=True, choices=[('War', (('ARCHERY', 'Archery'), ('ATHLETICS', 'Athletics'), ('AWARENESS', 'Awareness'), ('BRAWL', 'Brawl'), ('DODGE', 'Dodge'), ('INTEGRITY', 'Integrity'), ('MELEE', 'Melee'), ('RESISTANCE', 'Resistance'), ('THROWN', 'Thrown'), ('WAR', 'War'))), ('Life', (('CRAFT', 'Craft'), ('LARCENY', 'Larceny'), ('LINGUISTICS', 'Linguistics'), ('PERFORMANCE', 'Performance'), ('PRESENCE', 'Presence'), ('RIDE', 'Ride'), ('SAIL', 'Sail'), ('SOCIALISE', 'Socialise'), ('STEALTH', 'Stealth'), ('SURVIVAL', 'Survival'))), ('Wisdom', (('BUREAUCRACY', 'Bureaucracy'), ('INVESTIGATION', 'Investigation'), ('LORE', 'Lore'), ('MEDICINE', 'Medicine'), ('OCCULT', 'Occult')))], max_length=100, verbose_name='Supernal Ability')), + ('abilityFavored', app.models.MultiChoiceField(blank=True, choices=[('War', (('ARCHERY', 'Archery'), ('ATHLETICS', 'Athletics'), ('AWARENESS', 'Awareness'), ('BRAWL', 'Brawl'), ('DODGE', 'Dodge'), ('INTEGRITY', 'Integrity'), ('MELEE', 'Melee'), ('RESISTANCE', 'Resistance'), ('THROWN', 'Thrown'), ('WAR', 'War'))), ('Life', (('CRAFT', 'Craft'), ('LARCENY', 'Larceny'), ('LINGUISTICS', 'Linguistics'), ('PERFORMANCE', 'Performance'), ('PRESENCE', 'Presence'), ('RIDE', 'Ride'), ('SAIL', 'Sail'), ('SOCIALISE', 'Socialise'), ('STEALTH', 'Stealth'), ('SURVIVAL', 'Survival'))), ('Wisdom', (('BUREAUCRACY', 'Bureaucracy'), ('INVESTIGATION', 'Investigation'), ('LORE', 'Lore'), ('MEDICINE', 'Medicine'), ('OCCULT', 'Occult')))], max_length=100, verbose_name='Favoured Abilities')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.characterexaltbase',), + ), + migrations.CreateModel( + name='itemWeaponMelee', + fields=[ + ('itemweaponbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.itemWeaponBase')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.itemweaponbase',), + ), + migrations.CreateModel( + name='itemWeaponRanged', + fields=[ + ('itemweaponbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.itemWeaponBase')), + ('rangeClose', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Close Range')), + ('rangeShort', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Short Range')), + ('rangeMedium', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Medium Range')), + ('rangeLong', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Long Range')), + ('rangeExtreme', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Extreme Range')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.itemweaponbase',), + ), + migrations.AddField( + model_name='effectbase', + name='modifierAbility', + field=app.models.NamedManyToManyField(blank=True, to='app.modifierAbility', verbose_name='Abilities Modifiers'), + ), + migrations.AddField( + model_name='effectbase', + name='modifierAttribute', + field=app.models.NamedManyToManyField(blank=True, to='app.modifierAttribute', verbose_name='Attribute Modifiers'), + ), + migrations.AddField( + model_name='effectbase', + name='modifierStatic', + field=app.models.NamedManyToManyField(blank=True, to='app.modifierStatic', verbose_name='Statics Modifiers'), + ), + migrations.CreateModel( + name='artifactBase', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', app.models.NameField(max_length=100, verbose_name='Name')), + ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), + ('item', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.itemBase', verbose_name='Item')), + ('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.artifactbase_set+', to='contenttypes.ContentType')), + ('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltBase', verbose_name='Character')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', }, ), + migrations.CreateModel( + name='charmSolar', + fields=[ + ('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')), + ('ability', app.models.SingleChoiceField(blank=True, choices=[('War', (('ARCHERY', 'Archery'), ('ATHLETICS', 'Athletics'), ('AWARENESS', 'Awareness'), ('BRAWL', 'Brawl'), ('DODGE', 'Dodge'), ('INTEGRITY', 'Integrity'), ('MELEE', 'Melee'), ('RESISTANCE', 'Resistance'), ('THROWN', 'Thrown'), ('WAR', 'War'))), ('Life', (('CRAFT', 'Craft'), ('LARCENY', 'Larceny'), ('LINGUISTICS', 'Linguistics'), ('PERFORMANCE', 'Performance'), ('PRESENCE', 'Presence'), ('RIDE', 'Ride'), ('SAIL', 'Sail'), ('SOCIALISE', 'Socialise'), ('STEALTH', 'Stealth'), ('SURVIVAL', 'Survival'))), ('Wisdom', (('BUREAUCRACY', 'Bureaucracy'), ('INVESTIGATION', 'Investigation'), ('LORE', 'Lore'), ('MEDICINE', 'Medicine'), ('OCCULT', 'Occult')))], max_length=100, verbose_name='Key Ability')), + ('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltSolar', verbose_name='Character')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.charmbase',), + ), + migrations.CreateModel( + name='charmMartialArt', + fields=[ + ('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')), + ('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltBase', verbose_name='Characer')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.charmbase',), + ), + migrations.CreateModel( + name='charmLunarShape', + fields=[ + ('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')), + ('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltLunar', verbose_name='Character')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.charmbase',), + ), + migrations.CreateModel( + name='charmLunar', + fields=[ + ('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')), + ('attribute', app.models.SingleChoiceField(blank=True, choices=[('Physical', (('STR', 'Strength'), ('DEX', 'Dexterity'), ('STA', 'Stamina'))), ('Social', (('CHA', 'Charisma'), ('MAN', 'Manipulation'), ('APP', 'Appearance'))), ('Mental', (('PER', 'Perception'), ('INT', 'Intelligence'), ('WIT', 'Wits')))], max_length=100, verbose_name='Key Attribute')), + ('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltLunar', verbose_name='Character')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.charmbase',), + ), + migrations.CreateModel( + name='artifactEvocation', + fields=[ + ('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')), + ('artifact', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.artifactBase', verbose_name='Artifact')), + ], + options={ + 'abstract': False, + 'base_manager_name': 'objects', + }, + bases=('app.charmbase',), + ), ] diff --git a/app/migrations/0002_auto_20200411_1502.py b/app/migrations/0002_auto_20200411_1502.py deleted file mode 100644 index 83ce039..0000000 --- a/app/migrations/0002_auto_20200411_1502.py +++ /dev/null @@ -1,37 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 15:02 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0001_initial'), - ] - - operations = [ - migrations.RemoveField( - model_name='characterexaltlunar', - name='experience', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='experienceTotal', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='experience', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='experienceTotal', - ), - migrations.RemoveField( - model_name='charactermortal', - name='experience', - ), - migrations.RemoveField( - model_name='charactermortal', - name='experienceTotal', - ), - ] diff --git a/app/migrations/0003_auto_20200411_1503.py b/app/migrations/0003_auto_20200411_1503.py deleted file mode 100644 index 7e831d4..0000000 --- a/app/migrations/0003_auto_20200411_1503.py +++ /dev/null @@ -1,44 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 15:03 - -import app.models -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0002_auto_20200411_1502'), - ] - - operations = [ - migrations.AddField( - model_name='characterexaltlunar', - name='experience', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Experience'), - ), - migrations.AddField( - model_name='characterexaltlunar', - name='experienceTotal', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Experience'), - ), - migrations.AddField( - model_name='characterexaltsolar', - name='experience', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Experience'), - ), - migrations.AddField( - model_name='characterexaltsolar', - name='experienceTotal', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Experience'), - ), - migrations.AddField( - model_name='charactermortal', - name='experience', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Experience'), - ), - migrations.AddField( - model_name='charactermortal', - name='experienceTotal', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Experience'), - ), - ] diff --git a/app/migrations/0004_auto_20200411_1544.py b/app/migrations/0004_auto_20200411_1544.py deleted file mode 100644 index 1065c94..0000000 --- a/app/migrations/0004_auto_20200411_1544.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 15:44 - -import app.models -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0003_auto_20200411_1503'), - ] - - operations = [ - migrations.AddField( - model_name='itemarmor', - name='equipped', - field=app.models.NamedBooleanField(default=False, verbose_name='Equipped?'), - ), - migrations.AddField( - model_name='itemweaponmelee', - name='equipped', - field=app.models.NamedBooleanField(default=False, verbose_name='Equipped?'), - ), - migrations.AddField( - model_name='itemweaponranged', - name='equipped', - field=app.models.NamedBooleanField(default=False, verbose_name='Equipped?'), - ), - ] diff --git a/app/migrations/0005_auto_20200411_1620.py b/app/migrations/0005_auto_20200411_1620.py deleted file mode 100644 index 90a436c..0000000 --- a/app/migrations/0005_auto_20200411_1620.py +++ /dev/null @@ -1,70 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 16:20 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0004_auto_20200411_1544'), - ] - - operations = [ - migrations.RenameField( - model_name='characterexaltlunar', - old_name='armor', - new_name='armorEquipped', - ), - migrations.RenameField( - model_name='characterexaltlunar', - old_name='weaponsMelee', - new_name='weaponsMeleeEquipped', - ), - migrations.RenameField( - model_name='characterexaltlunar', - old_name='weaponsRanged', - new_name='weaponsRangedEquipped', - ), - migrations.RenameField( - model_name='characterexaltsolar', - old_name='armor', - new_name='armorEquipped', - ), - migrations.RenameField( - model_name='characterexaltsolar', - old_name='weaponsMelee', - new_name='weaponsMeleeEquipped', - ), - migrations.RenameField( - model_name='characterexaltsolar', - old_name='weaponsRanged', - new_name='weaponsRangedEquipped', - ), - migrations.RenameField( - model_name='charactermortal', - old_name='armor', - new_name='armorEquipped', - ), - migrations.RenameField( - model_name='charactermortal', - old_name='weaponsMelee', - new_name='weaponsMeleeEquipped', - ), - migrations.RenameField( - model_name='charactermortal', - old_name='weaponsRanged', - new_name='weaponsRangedEquipped', - ), - migrations.RemoveField( - model_name='itemarmor', - name='equipped', - ), - migrations.RemoveField( - model_name='itemweaponmelee', - name='equipped', - ), - migrations.RemoveField( - model_name='itemweaponranged', - name='equipped', - ), - ] diff --git a/app/migrations/0006_auto_20200411_1624.py b/app/migrations/0006_auto_20200411_1624.py deleted file mode 100644 index 7d7f180..0000000 --- a/app/migrations/0006_auto_20200411_1624.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 16:24 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0005_auto_20200411_1620'), - ] - - operations = [ - migrations.RenameField( - model_name='characterexaltlunar', - old_name='archey', - new_name='archery', - ), - migrations.RenameField( - model_name='characterexaltsolar', - old_name='archey', - new_name='archery', - ), - migrations.RenameField( - model_name='charactermortal', - old_name='archey', - new_name='archery', - ), - ] diff --git a/app/migrations/0007_auto_20200411_1651.py b/app/migrations/0007_auto_20200411_1651.py deleted file mode 100644 index 50625d0..0000000 --- a/app/migrations/0007_auto_20200411_1651.py +++ /dev/null @@ -1,426 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 16:51 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0006_auto_20200411_1624'), - ] - - operations = [ - migrations.RemoveField( - model_name='characterexaltlunar', - name='appearance', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='archery', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='armorEquipped', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='athletics', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='awareness', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='brawl', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='bureaucracy', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='charisma', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='craft', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='dexterity', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='dodge', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='experience', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='experienceTotal', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='health0', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='health1', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='health2', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='healthIndex', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='id', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='integrity', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='intelligence', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='investigation', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='items', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='larceny', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='linguistics', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='lore', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='manipulation', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='martialArts', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='medicine', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='melee', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='merits', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='name', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='occult', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='perception', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='performance', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='presence', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='resistance', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='ride', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='sail', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='socialize', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='stamina', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='stealth', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='strength', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='survival', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='thrown', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='war', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='weaponsMeleeEquipped', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='weaponsRangedEquipped', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='willpower', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='willpowerMax', - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='wits', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='appearance', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='archery', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='armorEquipped', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='athletics', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='awareness', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='brawl', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='bureaucracy', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='charisma', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='craft', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='dexterity', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='dodge', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='experience', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='experienceTotal', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='health0', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='health1', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='health2', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='healthIndex', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='id', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='integrity', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='intelligence', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='investigation', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='items', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='larceny', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='linguistics', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='lore', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='manipulation', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='martialArts', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='medicine', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='melee', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='merits', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='name', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='occult', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='perception', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='performance', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='presence', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='resistance', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='ride', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='sail', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='socialize', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='stamina', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='stealth', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='strength', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='survival', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='thrown', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='war', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='weaponsMeleeEquipped', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='weaponsRangedEquipped', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='willpower', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='willpowerMax', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='wits', - ), - migrations.AddField( - model_name='characterexaltlunar', - name='charactermortal_ptr', - field=models.OneToOneField(auto_created=True, default=None, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.characterMortal'), - preserve_default=False, - ), - migrations.AddField( - model_name='characterexaltsolar', - name='charactermortal_ptr', - field=models.OneToOneField(auto_created=True, default=None, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.characterMortal'), - preserve_default=False, - ), - ] diff --git a/app/migrations/0008_auto_20200411_1653.py b/app/migrations/0008_auto_20200411_1653.py deleted file mode 100644 index 9e0123b..0000000 --- a/app/migrations/0008_auto_20200411_1653.py +++ /dev/null @@ -1,93 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 16:53 - -import app.models -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0007_auto_20200411_1651'), - ] - - operations = [ - migrations.CreateModel( - name='characterBase', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('strength', app.models.DotField(default=0, verbose_name='Strength')), - ('dexterity', app.models.DotField(default=0, verbose_name='Dexterity')), - ('stamina', app.models.DotField(default=0, verbose_name='Stamina')), - ('charisma', app.models.DotField(default=0, verbose_name='Charisma')), - ('manipulation', app.models.DotField(default=0, verbose_name='Manipulation')), - ('appearance', app.models.DotField(default=0, verbose_name='Apperance')), - ('perception', app.models.DotField(default=0, verbose_name='Perception')), - ('intelligence', app.models.DotField(default=0, verbose_name='Intelligence')), - ('wits', app.models.DotField(default=0, verbose_name='Wits')), - ('archery', app.models.DotField(default=0, verbose_name='Archery')), - ('athletics', app.models.DotField(default=0, verbose_name='Athletics')), - ('awareness', app.models.DotField(default=0, verbose_name='Awareness')), - ('brawl', app.models.DotField(default=0, verbose_name='Brawl')), - ('bureaucracy', app.models.DotField(default=0, verbose_name='Bureaucracy')), - ('craft', app.models.DotField(default=0, verbose_name='Craft')), - ('dodge', app.models.DotField(default=0, verbose_name='Dodge')), - ('integrity', app.models.DotField(default=0, verbose_name='Integrity')), - ('investigation', app.models.DotField(default=0, verbose_name='Investigation')), - ('larceny', app.models.DotField(default=0, verbose_name='Larceny')), - ('linguistics', app.models.DotField(default=0, verbose_name='Linguistics')), - ('lore', app.models.DotField(default=0, verbose_name='Lore')), - ('martialArts', app.models.DotField(default=0, verbose_name='MartialArts')), - ('medicine', app.models.DotField(default=0, verbose_name='Medicine')), - ('melee', app.models.DotField(default=0, verbose_name='Melee')), - ('occult', app.models.DotField(default=0, verbose_name='Occult')), - ('performance', app.models.DotField(default=0, verbose_name='Performance')), - ('presence', app.models.DotField(default=0, verbose_name='Presence')), - ('resistance', app.models.DotField(default=0, verbose_name='Resistance')), - ('ride', app.models.DotField(default=0, verbose_name='Ride')), - ('sail', app.models.DotField(default=0, verbose_name='Sail')), - ('socialize', app.models.DotField(default=0, verbose_name='Socialize')), - ('stealth', app.models.DotField(default=0, verbose_name='Stealth')), - ('survival', app.models.DotField(default=0, verbose_name='Survival')), - ('thrown', app.models.DotField(default=0, verbose_name='Thrown')), - ('war', app.models.DotField(default=0, verbose_name='War')), - ('willpowerMax', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Willpower')), - ('willpower', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Willpower')), - ('experienceTotal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Experience')), - ('experience', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Experience')), - ('health0', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-0' Health Levels")), - ('health1', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-1' Health Levels")), - ('health2', app.models.NamedIntegerField(default=0, help_text=None, verbose_name="'-2' Health Levels")), - ('healthIndex', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Health Track Index')), - ('armorEquipped', app.models.NamedManyToManyField(blank=True, to='app.itemArmor', verbose_name='Armor')), - ('items', app.models.NamedManyToManyField(blank=True, to='app.item', verbose_name='Items')), - ('merits', app.models.NamedManyToManyField(blank=True, to='app.merit', verbose_name='Merits')), - ('weaponsMeleeEquipped', app.models.NamedManyToManyField(blank=True, to='app.itemWeaponMelee', verbose_name='Melee Weapons')), - ('weaponsRangedEquipped', app.models.NamedManyToManyField(blank=True, to='app.itemWeaponRanged', verbose_name='Ranged Weapons')), - ], - ), - migrations.RemoveField( - model_name='characterexaltlunar', - name='charactermortal_ptr', - ), - migrations.RemoveField( - model_name='characterexaltsolar', - name='charactermortal_ptr', - ), - migrations.DeleteModel( - name='characterMortal', - ), - migrations.AddField( - model_name='characterexaltlunar', - name='characterbase_ptr', - field=models.OneToOneField(auto_created=True, default=None, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.characterBase'), - preserve_default=False, - ), - migrations.AddField( - model_name='characterexaltsolar', - name='characterbase_ptr', - field=models.OneToOneField(auto_created=True, default=None, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.characterBase'), - preserve_default=False, - ), - ] diff --git a/app/migrations/0009_auto_20200411_1706.py b/app/migrations/0009_auto_20200411_1706.py deleted file mode 100644 index 506d9af..0000000 --- a/app/migrations/0009_auto_20200411_1706.py +++ /dev/null @@ -1,100 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 17:06 - -import app.models -from django.db import migrations -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0008_auto_20200411_1653'), - ] - - operations = [ - migrations.RemoveField( - model_name='characterbase', - name='armorEquipped', - ), - migrations.RemoveField( - model_name='characterbase', - name='items', - ), - migrations.RemoveField( - model_name='characterbase', - name='merits', - ), - migrations.RemoveField( - model_name='characterbase', - name='weaponsMeleeEquipped', - ), - migrations.RemoveField( - model_name='characterbase', - name='weaponsRangedEquipped', - ), - migrations.AddField( - model_name='charm', - name='active', - field=app.models.NamedBooleanField(default=False, verbose_name='Active?'), - ), - migrations.AddField( - model_name='charm', - name='character', - field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character'), - ), - migrations.AddField( - model_name='intimacyprincipal', - name='character', - field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character'), - ), - migrations.AddField( - model_name='intimacytie', - name='character', - field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character'), - ), - migrations.AddField( - model_name='item', - name='character', - field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character'), - ), - migrations.AddField( - model_name='itemarmor', - name='character', - field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character'), - ), - migrations.AddField( - model_name='itemarmor', - name='equipped', - field=app.models.NamedBooleanField(default=False, verbose_name='Equipped?'), - ), - migrations.AddField( - model_name='itemweaponmelee', - name='character', - field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character'), - ), - migrations.AddField( - model_name='itemweaponmelee', - name='equipped', - field=app.models.NamedBooleanField(default=False, verbose_name='Equipped?'), - ), - migrations.AddField( - model_name='itemweaponranged', - name='character', - field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character'), - ), - migrations.AddField( - model_name='itemweaponranged', - name='equipped', - field=app.models.NamedBooleanField(default=False, verbose_name='Equipped?'), - ), - migrations.AddField( - model_name='merit', - name='character', - field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character'), - ), - migrations.AddField( - model_name='speciality', - name='character', - field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character'), - ), - ] diff --git a/app/migrations/0010_auto_20200411_1711.py b/app/migrations/0010_auto_20200411_1711.py deleted file mode 100644 index eb614de..0000000 --- a/app/migrations/0010_auto_20200411_1711.py +++ /dev/null @@ -1,58 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 17:11 - -import app.models -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0009_auto_20200411_1706'), - ] - - operations = [ - migrations.CreateModel( - name='charmLunar', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), - ('levelEssence', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Essence Level')), - ('levelKey', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Key Level')), - ('active', app.models.NamedBooleanField(default=False, verbose_name='Active?')), - ('attribute', app.models.SingleChoiceField(blank=True, choices=[('Physical', (('STR', 'Srength'), ('DEX', 'Dexterity'), ('STA', 'Stamina'))), ('Social', (('CHA', 'Charisma'), ('MAN', 'Manipulation'), ('APP', 'Appearance'))), ('Mental', (('PER', 'Perception'), ('INT', 'Intelligence'), ('WIT', 'Wits')))], max_length=100, verbose_name='Key Attribute')), - ('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character')), - ('modifierAbility', app.models.NamedManyToManyField(blank=True, to='app.modifierAbility', verbose_name='Abilities Modifiers')), - ('modifierAttribute', app.models.NamedManyToManyField(blank=True, to='app.modifierAttribute', verbose_name='Attribute Modifiers')), - ('modifierStatic', app.models.NamedManyToManyField(blank=True, to='app.modifierStatic', verbose_name='Statics Modifiers')), - ('rollConfiguration', app.models.NamedManyToManyField(blank=True, to='app.rollConfiguration', verbose_name='Roll Configurations')), - ], - options={ - 'abstract': False, - }, - ), - migrations.CreateModel( - name='charmSolar', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), - ('levelEssence', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Essence Level')), - ('levelKey', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Key Level')), - ('active', app.models.NamedBooleanField(default=False, verbose_name='Active?')), - ('ability', app.models.SingleChoiceField(blank=True, choices=[('War', (('ARCHERY', 'Archery'), ('ATHLETICS', 'Athletics'), ('AWARENESS', 'Awareness'), ('BRAWL', 'Brawl'), ('DODGE', 'Dodge'), ('INTEGRITY', 'Integrity'), ('MELEE', 'Melee'), ('RESISTANCE', 'Resistance'), ('THROWN', 'Thrown'), ('WAR', 'War'))), ('Life', (('CRAFT', 'Craft'), ('LARCENY', 'Larceny'), ('LINGUISTICS', 'Linguistics'), ('PERFORMANCE', 'Performance'), ('PRESENCE', 'Presence'), ('RIDE', 'Ride'), ('SAIL', 'Sail'), ('SOCIALISE', 'Socialise'), ('STEALTH', 'Stealth'), ('SURVIVAL', 'Survival'))), ('Wisdom', (('BUREAUCRACY', 'Bureaucracy'), ('INVESTIGATION', 'Investigation'), ('LORE', 'Lore'), ('MEDICINE', 'Medicine'), ('OCCULT', 'Occult')))], max_length=100, verbose_name='Key Ability')), - ('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character')), - ('modifierAbility', app.models.NamedManyToManyField(blank=True, to='app.modifierAbility', verbose_name='Abilities Modifiers')), - ('modifierAttribute', app.models.NamedManyToManyField(blank=True, to='app.modifierAttribute', verbose_name='Attribute Modifiers')), - ('modifierStatic', app.models.NamedManyToManyField(blank=True, to='app.modifierStatic', verbose_name='Statics Modifiers')), - ('rollConfiguration', app.models.NamedManyToManyField(blank=True, to='app.rollConfiguration', verbose_name='Roll Configurations')), - ], - options={ - 'abstract': False, - }, - ), - migrations.DeleteModel( - name='charm', - ), - ] diff --git a/app/migrations/0011_rollconfiguration_name.py b/app/migrations/0011_rollconfiguration_name.py deleted file mode 100644 index 8421003..0000000 --- a/app/migrations/0011_rollconfiguration_name.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 17:14 - -import app.models -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0010_auto_20200411_1711'), - ] - - operations = [ - migrations.AddField( - model_name='rollconfiguration', - name='name', - field=app.models.NameField(default='', max_length=100, verbose_name='Name'), - preserve_default=False, - ), - ] diff --git a/app/migrations/0012_rollconfiguration_successesauto.py b/app/migrations/0012_rollconfiguration_successesauto.py deleted file mode 100644 index 7405921..0000000 --- a/app/migrations/0012_rollconfiguration_successesauto.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 17:17 - -import app.models -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0011_rollconfiguration_name'), - ] - - operations = [ - migrations.AddField( - model_name='rollconfiguration', - name='successesAuto', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Auto-Successes'), - ), - ] diff --git a/app/migrations/0013_auto_20200411_1727.py b/app/migrations/0013_auto_20200411_1727.py deleted file mode 100644 index f503403..0000000 --- a/app/migrations/0013_auto_20200411_1727.py +++ /dev/null @@ -1,40 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 17:27 - -import app.models -from django.db import migrations -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0012_rollconfiguration_successesauto'), - ] - - operations = [ - migrations.AddField( - model_name='characterexaltlunar', - name='attributeFavored', - field=app.models.MultiChoiceField(blank=True, choices=[('Physical', (('STR', 'Srength'), ('DEX', 'Dexterity'), ('STA', 'Stamina'))), ('Social', (('CHA', 'Charisma'), ('MAN', 'Manipulation'), ('APP', 'Appearance'))), ('Mental', (('PER', 'Perception'), ('INT', 'Intelligence'), ('WIT', 'Wits')))], max_length=100, verbose_name='Favoured Attributes'), - ), - migrations.AddField( - model_name='characterexaltsolar', - name='abilityFavored', - field=app.models.MultiChoiceField(blank=True, choices=[('War', (('ARCHERY', 'Archery'), ('ATHLETICS', 'Athletics'), ('AWARENESS', 'Awareness'), ('BRAWL', 'Brawl'), ('DODGE', 'Dodge'), ('INTEGRITY', 'Integrity'), ('MELEE', 'Melee'), ('RESISTANCE', 'Resistance'), ('THROWN', 'Thrown'), ('WAR', 'War'))), ('Life', (('CRAFT', 'Craft'), ('LARCENY', 'Larceny'), ('LINGUISTICS', 'Linguistics'), ('PERFORMANCE', 'Performance'), ('PRESENCE', 'Presence'), ('RIDE', 'Ride'), ('SAIL', 'Sail'), ('SOCIALISE', 'Socialise'), ('STEALTH', 'Stealth'), ('SURVIVAL', 'Survival'))), ('Wisdom', (('BUREAUCRACY', 'Bureaucracy'), ('INVESTIGATION', 'Investigation'), ('LORE', 'Lore'), ('MEDICINE', 'Medicine'), ('OCCULT', 'Occult')))], max_length=100, verbose_name='Favoured Abilities'), - ), - migrations.AddField( - model_name='characterexaltsolar', - name='abilitySupernal', - field=app.models.SingleChoiceField(blank=True, choices=[('War', (('ARCHERY', 'Archery'), ('ATHLETICS', 'Athletics'), ('AWARENESS', 'Awareness'), ('BRAWL', 'Brawl'), ('DODGE', 'Dodge'), ('INTEGRITY', 'Integrity'), ('MELEE', 'Melee'), ('RESISTANCE', 'Resistance'), ('THROWN', 'Thrown'), ('WAR', 'War'))), ('Life', (('CRAFT', 'Craft'), ('LARCENY', 'Larceny'), ('LINGUISTICS', 'Linguistics'), ('PERFORMANCE', 'Performance'), ('PRESENCE', 'Presence'), ('RIDE', 'Ride'), ('SAIL', 'Sail'), ('SOCIALISE', 'Socialise'), ('STEALTH', 'Stealth'), ('SURVIVAL', 'Survival'))), ('Wisdom', (('BUREAUCRACY', 'Bureaucracy'), ('INVESTIGATION', 'Investigation'), ('LORE', 'Lore'), ('MEDICINE', 'Medicine'), ('OCCULT', 'Occult')))], max_length=100, verbose_name='Supernal Ability'), - ), - migrations.AlterField( - model_name='charmlunar', - name='character', - field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltLunar', verbose_name='Character'), - ), - migrations.AlterField( - model_name='charmsolar', - name='character', - field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltSolar', verbose_name='Character'), - ), - ] diff --git a/app/migrations/0014_auto_20200411_1800.py b/app/migrations/0014_auto_20200411_1800.py deleted file mode 100644 index 7aab2d0..0000000 --- a/app/migrations/0014_auto_20200411_1800.py +++ /dev/null @@ -1,43 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 18:00 - -import app.models -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0013_auto_20200411_1727'), - ] - - operations = [ - migrations.RemoveField( - model_name='speciality', - name='ability', - ), - migrations.AddField( - model_name='characterbase', - name='essence', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Essence'), - ), - migrations.AddField( - model_name='merit', - name='active', - field=app.models.NamedBooleanField(default=False, verbose_name='Active?'), - ), - migrations.AddField( - model_name='speciality', - name='active', - field=app.models.NamedBooleanField(default=False, verbose_name='Active?'), - ), - migrations.AddField( - model_name='speciality', - name='modifierAbility', - field=app.models.NamedManyToManyField(blank=True, to='app.modifierAbility', verbose_name='Abilities Modifiers'), - ), - migrations.AddField( - model_name='speciality', - name='modifierStatic', - field=app.models.NamedManyToManyField(blank=True, to='app.modifierStatic', verbose_name='Statics Modifiers'), - ), - ] diff --git a/app/migrations/0015_auto_20200411_1844.py b/app/migrations/0015_auto_20200411_1844.py deleted file mode 100644 index 5d982b0..0000000 --- a/app/migrations/0015_auto_20200411_1844.py +++ /dev/null @@ -1,169 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 18:44 - -import app.models -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0014_auto_20200411_1800'), - ] - - operations = [ - migrations.RemoveField( - model_name='characterbase', - name='appearance', - ), - migrations.RemoveField( - model_name='characterbase', - name='archery', - ), - migrations.RemoveField( - model_name='characterbase', - name='athletics', - ), - migrations.RemoveField( - model_name='characterbase', - name='awareness', - ), - migrations.RemoveField( - model_name='characterbase', - name='brawl', - ), - migrations.RemoveField( - model_name='characterbase', - name='bureaucracy', - ), - migrations.RemoveField( - model_name='characterbase', - name='charisma', - ), - migrations.RemoveField( - model_name='characterbase', - name='craft', - ), - migrations.RemoveField( - model_name='characterbase', - name='dexterity', - ), - migrations.RemoveField( - model_name='characterbase', - name='dodge', - ), - migrations.RemoveField( - model_name='characterbase', - name='integrity', - ), - migrations.RemoveField( - model_name='characterbase', - name='intelligence', - ), - migrations.RemoveField( - model_name='characterbase', - name='investigation', - ), - migrations.RemoveField( - model_name='characterbase', - name='larceny', - ), - migrations.RemoveField( - model_name='characterbase', - name='linguistics', - ), - migrations.RemoveField( - model_name='characterbase', - name='lore', - ), - migrations.RemoveField( - model_name='characterbase', - name='manipulation', - ), - migrations.RemoveField( - model_name='characterbase', - name='martialArts', - ), - migrations.RemoveField( - model_name='characterbase', - name='medicine', - ), - migrations.RemoveField( - model_name='characterbase', - name='melee', - ), - migrations.RemoveField( - model_name='characterbase', - name='occult', - ), - migrations.RemoveField( - model_name='characterbase', - name='perception', - ), - migrations.RemoveField( - model_name='characterbase', - name='performance', - ), - migrations.RemoveField( - model_name='characterbase', - name='presence', - ), - migrations.RemoveField( - model_name='characterbase', - name='resistance', - ), - migrations.RemoveField( - model_name='characterbase', - name='ride', - ), - migrations.RemoveField( - model_name='characterbase', - name='sail', - ), - migrations.RemoveField( - model_name='characterbase', - name='socialize', - ), - migrations.RemoveField( - model_name='characterbase', - name='stamina', - ), - migrations.RemoveField( - model_name='characterbase', - name='stealth', - ), - migrations.RemoveField( - model_name='characterbase', - name='strength', - ), - migrations.RemoveField( - model_name='characterbase', - name='survival', - ), - migrations.RemoveField( - model_name='characterbase', - name='thrown', - ), - migrations.RemoveField( - model_name='characterbase', - name='war', - ), - migrations.RemoveField( - model_name='characterbase', - name='wits', - ), - migrations.AlterField( - model_name='characterexaltlunar', - name='attributeFavored', - field=app.models.MultiChoiceField(blank=True, choices=[('Physical', (('STR', 'Strength'), ('DEX', 'Dexterity'), ('STA', 'Stamina'))), ('Social', (('CHA', 'Charisma'), ('MAN', 'Manipulation'), ('APP', 'Appearance'))), ('Mental', (('PER', 'Perception'), ('INT', 'Intelligence'), ('WIT', 'Wits')))], max_length=100, verbose_name='Favoured Attributes'), - ), - migrations.AlterField( - model_name='charmlunar', - name='attribute', - field=app.models.SingleChoiceField(blank=True, choices=[('Physical', (('STR', 'Strength'), ('DEX', 'Dexterity'), ('STA', 'Stamina'))), ('Social', (('CHA', 'Charisma'), ('MAN', 'Manipulation'), ('APP', 'Appearance'))), ('Mental', (('PER', 'Perception'), ('INT', 'Intelligence'), ('WIT', 'Wits')))], max_length=100, verbose_name='Key Attribute'), - ), - migrations.AlterField( - model_name='modifierattribute', - name='attribute', - field=app.models.SingleChoiceField(blank=True, choices=[('Physical', (('STR', 'Strength'), ('DEX', 'Dexterity'), ('STA', 'Stamina'))), ('Social', (('CHA', 'Charisma'), ('MAN', 'Manipulation'), ('APP', 'Appearance'))), ('Mental', (('PER', 'Perception'), ('INT', 'Intelligence'), ('WIT', 'Wits')))], max_length=100, verbose_name='Attribute'), - ), - ] diff --git a/app/migrations/0016_auto_20200411_1851.py b/app/migrations/0016_auto_20200411_1851.py deleted file mode 100644 index 67cb78c..0000000 --- a/app/migrations/0016_auto_20200411_1851.py +++ /dev/null @@ -1,189 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 18:51 - -import app.models -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0015_auto_20200411_1844'), - ] - - operations = [ - migrations.AddField( - model_name='characterbase', - name='appearance', - field=app.models.DotField(default=0, verbose_name='Apperance'), - ), - migrations.AddField( - model_name='characterbase', - name='archery', - field=app.models.DotField(default=0, verbose_name='Archery'), - ), - migrations.AddField( - model_name='characterbase', - name='athletics', - field=app.models.DotField(default=0, verbose_name='Athletics'), - ), - migrations.AddField( - model_name='characterbase', - name='awareness', - field=app.models.DotField(default=0, verbose_name='Awareness'), - ), - migrations.AddField( - model_name='characterbase', - name='brawl', - field=app.models.DotField(default=0, verbose_name='Brawl'), - ), - migrations.AddField( - model_name='characterbase', - name='bureaucracy', - field=app.models.DotField(default=0, verbose_name='Bureaucracy'), - ), - migrations.AddField( - model_name='characterbase', - name='charisma', - field=app.models.DotField(default=0, verbose_name='Charisma'), - ), - migrations.AddField( - model_name='characterbase', - name='craft', - field=app.models.DotField(default=0, verbose_name='Craft'), - ), - migrations.AddField( - model_name='characterbase', - name='dexterity', - field=app.models.DotField(default=0, verbose_name='Dexterity'), - ), - migrations.AddField( - model_name='characterbase', - name='dodge', - field=app.models.DotField(default=0, verbose_name='Dodge'), - ), - migrations.AddField( - model_name='characterbase', - name='integrity', - field=app.models.DotField(default=0, verbose_name='Integrity'), - ), - migrations.AddField( - model_name='characterbase', - name='intelligence', - field=app.models.DotField(default=0, verbose_name='Intelligence'), - ), - migrations.AddField( - model_name='characterbase', - name='investigation', - field=app.models.DotField(default=0, verbose_name='Investigation'), - ), - migrations.AddField( - model_name='characterbase', - name='larceny', - field=app.models.DotField(default=0, verbose_name='Larceny'), - ), - migrations.AddField( - model_name='characterbase', - name='linguistics', - field=app.models.DotField(default=0, verbose_name='Linguistics'), - ), - migrations.AddField( - model_name='characterbase', - name='lore', - field=app.models.DotField(default=0, verbose_name='Lore'), - ), - migrations.AddField( - model_name='characterbase', - name='manipulation', - field=app.models.DotField(default=0, verbose_name='Manipulation'), - ), - migrations.AddField( - model_name='characterbase', - name='martialArts', - field=app.models.DotField(default=0, verbose_name='MartialArts'), - ), - migrations.AddField( - model_name='characterbase', - name='medicine', - field=app.models.DotField(default=0, verbose_name='Medicine'), - ), - migrations.AddField( - model_name='characterbase', - name='melee', - field=app.models.DotField(default=0, verbose_name='Melee'), - ), - migrations.AddField( - model_name='characterbase', - name='occult', - field=app.models.DotField(default=0, verbose_name='Occult'), - ), - migrations.AddField( - model_name='characterbase', - name='perception', - field=app.models.DotField(default=0, verbose_name='Perception'), - ), - migrations.AddField( - model_name='characterbase', - name='performance', - field=app.models.DotField(default=0, verbose_name='Performance'), - ), - migrations.AddField( - model_name='characterbase', - name='presence', - field=app.models.DotField(default=0, verbose_name='Presence'), - ), - migrations.AddField( - model_name='characterbase', - name='resistance', - field=app.models.DotField(default=0, verbose_name='Resistance'), - ), - migrations.AddField( - model_name='characterbase', - name='ride', - field=app.models.DotField(default=0, verbose_name='Ride'), - ), - migrations.AddField( - model_name='characterbase', - name='sail', - field=app.models.DotField(default=0, verbose_name='Sail'), - ), - migrations.AddField( - model_name='characterbase', - name='socialize', - field=app.models.DotField(default=0, verbose_name='Socialize'), - ), - migrations.AddField( - model_name='characterbase', - name='stamina', - field=app.models.DotField(default=0, verbose_name='Stamina'), - ), - migrations.AddField( - model_name='characterbase', - name='stealth', - field=app.models.DotField(default=0, verbose_name='Stealth'), - ), - migrations.AddField( - model_name='characterbase', - name='strength', - field=app.models.DotField(default=0, verbose_name='Strength'), - ), - migrations.AddField( - model_name='characterbase', - name='survival', - field=app.models.DotField(default=0, verbose_name='Survival'), - ), - migrations.AddField( - model_name='characterbase', - name='thrown', - field=app.models.DotField(default=0, verbose_name='Thrown'), - ), - migrations.AddField( - model_name='characterbase', - name='war', - field=app.models.DotField(default=0, verbose_name='War'), - ), - migrations.AddField( - model_name='characterbase', - name='wits', - field=app.models.DotField(default=0, verbose_name='Wits'), - ), - ] diff --git a/app/migrations/0017_auto_20200411_2228.py b/app/migrations/0017_auto_20200411_2228.py deleted file mode 100644 index b95c425..0000000 --- a/app/migrations/0017_auto_20200411_2228.py +++ /dev/null @@ -1,114 +0,0 @@ -# Generated by Django 3.0.5 on 2020-04-11 22:28 - -import app.models -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0016_auto_20200411_1851'), - ] - - operations = [ - migrations.AddField( - model_name='characterexaltlunar', - name='experienceExalted', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Experience'), - ), - migrations.AddField( - model_name='characterexaltlunar', - name='experienceExaltedTotal', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Experience'), - ), - migrations.AddField( - model_name='characterexaltlunar', - name='limitBreak', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Limit Break'), - ), - migrations.AddField( - model_name='characterexaltlunar', - name='limitTrigger', - field=models.TextField(blank='False', max_length=1000, verbose_name='Limit Trigger'), - ), - migrations.AddField( - model_name='characterexaltlunar', - name='motesPeripheral', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Peripheral Motes'), - ), - migrations.AddField( - model_name='characterexaltlunar', - name='motesPeripheralMax', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Peripheral Motes'), - ), - migrations.AddField( - model_name='characterexaltlunar', - name='motesPersonal', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Personal Motes'), - ), - migrations.AddField( - model_name='characterexaltlunar', - name='motesPersonalMax', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Personal Motes'), - ), - migrations.AddField( - model_name='characterexaltsolar', - name='experienceExalted', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Experience'), - ), - migrations.AddField( - model_name='characterexaltsolar', - name='experienceExaltedTotal', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Experience'), - ), - migrations.AddField( - model_name='characterexaltsolar', - name='limitBreak', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Limit Break'), - ), - migrations.AddField( - model_name='characterexaltsolar', - name='limitTrigger', - field=models.TextField(blank='False', max_length=1000, verbose_name='Limit Trigger'), - ), - migrations.AddField( - model_name='characterexaltsolar', - name='motesPeripheral', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Peripheral Motes'), - ), - migrations.AddField( - model_name='characterexaltsolar', - name='motesPeripheralMax', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Peripheral Motes'), - ), - migrations.AddField( - model_name='characterexaltsolar', - name='motesPersonal', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Personal Motes'), - ), - migrations.AddField( - model_name='characterexaltsolar', - name='motesPersonalMax', - field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Personal Motes'), - ), - migrations.CreateModel( - name='charmLunarShape', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', app.models.NameField(max_length=100, verbose_name='Name')), - ('levelEssence', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Essence Level')), - ('levelKey', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Key Level')), - ('active', app.models.NamedBooleanField(default=False, verbose_name='Active?')), - ('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')), - ('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltLunar', verbose_name='Character')), - ('modifierAbility', app.models.NamedManyToManyField(blank=True, to='app.modifierAbility', verbose_name='Abilities Modifiers')), - ('modifierAttribute', app.models.NamedManyToManyField(blank=True, to='app.modifierAttribute', verbose_name='Attribute Modifiers')), - ('modifierStatic', app.models.NamedManyToManyField(blank=True, to='app.modifierStatic', verbose_name='Statics Modifiers')), - ('rollConfiguration', app.models.NamedManyToManyField(blank=True, to='app.rollConfiguration', verbose_name='Roll Configurations')), - ], - options={ - 'abstract': False, - }, - ), - ] diff --git a/app/migrations/__pycache__/0001_initial.cpython-38.pyc b/app/migrations/__pycache__/0001_initial.cpython-38.pyc index f736ecf..7aa5501 100644 Binary files a/app/migrations/__pycache__/0001_initial.cpython-38.pyc and b/app/migrations/__pycache__/0001_initial.cpython-38.pyc differ diff --git a/app/models.py b/app/models.py index a711c03..d09c1ba 100644 --- a/app/models.py +++ b/app/models.py @@ -1,4 +1,5 @@ from django.db import models +from polymorphic.models import PolymorphicModel import multiselectfield from random import randint from math import ceil @@ -9,23 +10,23 @@ from math import ceil ATTRIBUTES = [ ( "Physical", ( - ("STR", "Strength"), - ("DEX", "Dexterity"), - ("STA", "Stamina"), + ("Strength", "Strength"), + ("Dexterity", "Dexterity"), + ("Stamina", "Stamina"), ), ), ( "Social", ( - ("CHA", "Charisma"), - ("MAN", "Manipulation"), - ("APP", "Appearance"), + ("Charisma", "Charisma"), + ("Manipulation", "Manipulation"), + ("Appearance", "Appearance"), ), ), ( "Mental", ( - ("PER", "Perception"), - ("INT", "Intelligence"), - ("WIT", "Wits"), + ("Perception", "Perception"), + ("Intelligence", "Intelligence"), + ("Wits", "Wits"), ), ), ] @@ -33,131 +34,188 @@ ATTRIBUTES = [ ABILITIES = [ ( "War", ( - ("ARCHERY", "Archery"), - ("ATHLETICS", "Athletics"), - ("AWARENESS", "Awareness"), - ("BRAWL", "Brawl"), - ("DODGE", "Dodge"), - ("INTEGRITY", "Integrity"), - ("MELEE", "Melee"), - ("RESISTANCE", "Resistance"), - ("THROWN", "Thrown"), - ("WAR", "War"), + ("Archery", "Archery"), + ("Athletics", "Athletics"), + ("Awareness", "Awareness"), + ("Brawl", "Brawl"), + ("Dodge", "Dodge"), + ("Integrity", "Integrity"), + ("Melee", "Melee"), + ("Resistance", "Resistance"), + ("Thrown", "Thrown"), + ("War", "War"), ), ), ( "Life", ( - ("CRAFT", "Craft"), - ("LARCENY", "Larceny"), - ("LINGUISTICS", "Linguistics"), - ("PERFORMANCE", "Performance"), - ("PRESENCE", "Presence"), - ("RIDE", "Ride"), - ("SAIL", "Sail"), - ("SOCIALISE", "Socialise"), - ("STEALTH", "Stealth"), - ("SURVIVAL", "Survival"), + ("Craft", "Craft"), + ("Larceny", "Larceny"), + ("Linguistics", "Linguistics"), + ("Performance", "Performance"), + ("Presence", "Presence"), + ("Ride", "Ride"), + ("Sail", "Sail"), + ("Socialise", "Socialise"), + ("Stealth", "Stealth"), + ("Survival", "Survival"), ), ), ( "Wisdom", ( - ("BUREAUCRACY", "Bureaucracy"), - ("INVESTIGATION", "Investigation"), - ("LORE", "Lore"), - ("MEDICINE", "Medicine"), - ("OCCULT", "Occult"), + ("Bureaucracy", "Bureaucracy"), + ("Investigation", "Investigation"), + ("Lore", "Lore"), + ("Medicine", "Medicine"), + ("Occult", "Occult"), ), ), ] STATICS = [ - ("SOAK NATURAL", "Natural Soak"), - ("SOAK ARMORED", "Armored Soak"), - ("SOAK TOTAL", "Total Soak"), - ("HARDNESS", "Hardness"), - ("PARRY", "Parry"), - ("EVASION", "Evasion"), - ("RESOLVE", "Resolve"), - ("GUILE", "Guile"), - ("RUSH", "Rush"), - ("DISENGAGE", "Disengage"), - ("JOIN BATTLE", "Join Battle"), + ("Natural Soak", "Natural Soak"), + ("Armored Soak", "Armored Soak"), + ("Total Soak", "Total Soak"), + ("Hardness", "Hardness"), + ("Parry", "Parry"), + ("Evasion", "Evasion"), + ("Resolve", "Resolve"), + ("Guile", "Guile"), + ("Rush", "Rush"), + ("Disengage", "Disengage"), + ("Join Battle", "Join Battle"), ] CATEGORIES = [ - ("L", "Light"), - ("M", "Medium"), - ("H", "Heavy"), + ("Light", "Light"), + ("Medium", "Medium"), + ("Heavy", "Heavy"), ] TAGS_WEAPONS = [ ( "General", ( - ("ONE HANDED", "One Handed"), - ("TWO HANDED", "Two Handed"), - ("BASHING", "Bashing"), - ("CONCEALABLE", "Concealable"), - ("LETHAL", "Lethal"), - ("MOUNTED", "Mounted"), - ("PIERCING", "Piercing"), - ("SPECIAL", "Special"), + ("One Handed", "One Handed"), + ("Two Handed", "Two Handed"), + ("Bashing", "Bashing"), + ("Concealable", "Concealable"), + ("Lethal", "Lethal"), + ("Mounted", "Mounted"), + ("Piercing", "Piercing"), + ("Special", "Special"), ), ), ( "Melee", ( - ("MELEE", "Melee"), - ("BALANCED", "Balanced"), - ("BRAWL", "Brawl"), - ("CHOPPING", "Chopping"), - ("DISARMING", "Disarming"), - ("FLEXIBLE", "Flexible"), - ("IMPROVISED", "Improvised"), - ("GRAPPLING", "Grappling"), - ("MARTIAL ARTS", "Martial Arts"), - ("NATURAL", "Natural"), - ("REACHING", "Reaching"), - ("SHIELD", "Shield"), - ("SMASHING", "Smashing"), - ("WORN", "Worn"), + ("Melee", "Melee"), + ("Balanced", "Balanced"), + ("Brawl", "Brawl"), + ("Chopping", "Chopping"), + ("Disarming", "Disarming"), + ("Flexible", "Flexible"), + ("Improvised", "Improvised"), + ("Grappling", "Grappling"), + ("Martial Arts", "Martial Arts"), + ("Natural", "Natural"), + ("Reaching", "Reaching"), + ("Shield", "Shield"), + ("Smashing", "Smashing"), + ("Worn", "Worn"), ), ), ( "Thrown", ( - ("THROWN", "Occult"), - ("CUTTING", "Cutting"), - ("POISONABLE", "Poisonable"), - ("SUBTLE", "Subtle"), + ("Occult", "Occult"), + ("Cutting", "Cutting"), + ("Poisonable", "Poisonable"), + ("Subtle", "Subtle"), ), ), ( "Archery", ( - ("ARCHERY", "Archery"), - ("CROSSBOW", "Crossbow"), - ("FLAME", "Flame"), - ("POWERFUL", "Powerful"), - ("SLOW", "Slow"), + ("Archery", "Archery"), + ("Crossbow", "Crossbow"), + ("Flame", "Flame"), + ("Powerful", "Powerful"), + ("Slow", "Slow"), ), ), ] TAGS_ARMOR = [ - ("BUOYANT", "Buoyant"), - ("CONCEALABLE", "Concealable"), - ("SILENT", "Silent"), + ("Buoyant", "Buoyant"), + ("Concealable", "Concealable"), + ("Silent", "Silent"), ] INTENSITIES = [ - ("MINOR", "Minor"), - ("MAJOR", "Major"), - ("DEFINING", "Defining"), + ("Minor", "Minor"), + ("Major", "Major"), + ("Defining", "Defining"), ] DIE_TYPES = [ - ("NONE", "None"), - ("SUCCESS", "Success"), - ("DOUBLE", "Double"), - ("EXPLODING_DISAPPEARING", "Exploding / Disappearing"), - ("SUBTRACTING", "Subtracting") + ("None", "None"), + ("Success", "Success"), + ("Double", "Double"), + ("Exploding / Disappearing", "Exploding / Disappearing"), + ("Subtracting", "Subtracting") +] + +CHARM_TYPES = [ + ("Permanent", "Permanent"), + ("Simple", "Simple"), + ("Reflexive", "Reflexive"), + ("Suplemental", "Suplemental"), +] + +CHARM_DURATIONS = [ + ("", ""), + ("One Round", "One Round"), + ("One Scene", "One Scene"), + ("Indefinite", "Indefinite"), +] + +CHARM_KEYWORDS = [ + ( + "Charms", ( + ("Advantage", "Advantage"), + ("Attack-Action", "Attack-Action"), + ("Counterattack", "Counterattack"), + ("Form", "Form"), + ("Group", "Group"), + ("Mute", "Mute"), + ("Perilous", "Perilous"), + ("Once Per Scene", "Once Per Scene"), + ("Once Per Day", "Once Per Day"), + ("Once Per Story", "Once Per Story"), + ("Once Per Season", "Once Per Season"), + ("Pilot", "Pilot"), + ("Post-Roll", "Post-Roll"), + ("Psyche", "Psyche"), + ("Quickshot", "Quickshot"), + ) + ), + ( + "Evocations", ( + ("Dissonant", "Dissonant"), + ("Resonant", "Resonant"), + ) + ), +] + +CASTES_SOLAR = [ + ("Dawn", "Dawn"), + ("Zenith", "Zenith"), + ("Twilight", "Twilight"), + ("Night", "Night"), + ("Eclipse", "Eclipse"), +] + +CASTES_LUNAR = [ + ("Full Moon", "Full Moon"), + ("Changing Moon", "Changing Moon"), + ("No Moon", "No Moon"), + ("Castless", "Castless") ] #==============================================================================# @@ -262,7 +320,7 @@ class NamedOneToOneField(models.OneToOneField): #==============================================================================# #-------------------------------- DICE ROLLING --------------------------------# #==============================================================================# -class rollConfiguration(models.Model): +class rollConfiguration(PolymorphicModel): def __str__(self): return self.name name = NameField() @@ -329,192 +387,430 @@ class rollConfiguration(models.Model): #==============================================================================# #--------------------------------- MODIFIERS ----------------------------------# #==============================================================================# -class modifierBase(models.Model): - class Meta: - abstract = True +class modifierBase(PolymorphicModel): value = NamedIntegerField("Modifier Value") class modifierAttribute(modifierBase): def __str__(self): - return "{} [{}]".format(self.attribute, self.value) + return "{} [{}]".format(self.keyword, self.value) - attribute = SingleChoiceField("Attribute", ATTRIBUTES) + keyword = SingleChoiceField("Attribute", ATTRIBUTES) class modifierAbility(modifierBase): def __str__(self): - return "{} [{}]".format(self.ability, self.value) + return "{} [{}]".format(self.keyword, self.value) - ability = SingleChoiceField("Ability", ABILITIES) + keyword = SingleChoiceField("Ability", ABILITIES) class modifierStatic(modifierBase): def __str__(self): - return "{} [{}]".format(self.static, self.value) + return "{} [{}]".format(self.keyword, self.value) - static = SingleChoiceField("Static", STATICS) + keyword = SingleChoiceField("Static", STATICS) #==============================================================================# #--------------------------------- CHARACTERS ---------------------------------# #==============================================================================# -class characterBase(models.Model): +class characterBase(PolymorphicModel): def __str__(self): return self.name #======== MODIFIER METHODS ========# - def modifierCharm(self, keyword): - charms = None + def effectModifier(self, keyword): modifier = 0 try: - charms = self.charmLunar_set.filter(active=True) + ownerships = self.ownershipBase_set.filter(active=True) + for ownership in ownerships: + try: + modifier += ownership.target.modifier(keyword) + except: + pass except: pass - try: - charms = self.charmSolar_set.filter(active=True) - except: - pass - if charms: - for charm in charms: - modifier += charm.modifier(keyword) return modifier - def modifierMerit(self, keyword): - merits = None - modifier = 0 - try: - merits = self.merit_set.filter(active=True) - except: - pass - if merits: - for merit in merits: - modifier += merit.modifier(keyword) - return modifier - def modifierSpeciality(self, keyword): - specialities = None - modifier = 0 - try: - specialities = self.speciality_set.filter(active=True) - except: - pass - if specialities: - for speciality in specialities: - modifier += speciality.modifier(keyword) - return modifier - def modifierTotal(self, keyword): - return self.modifierCharm(keyword) + self.modifierMerit(keyword) + self.modifierSpeciality(keyword) #============ GENERAL =============# name = NameField() + player = models.CharField(verbose_name="Player", max_length=100, blank=True) + concept = models.TextField(blank=True) #=========== ATTRIBUTES ===========# strength = DotField("Strength") def attributeStrength(self): - return self.strength + self.modifierTotal("STRENGTH") + return self.strength + self.effectModifier("STRENGTH") + def dotsStrength(self): + output = [] + for i in range(self.strength): + output.append(True) + for i in range(5 - self.strength): + output.append(False) + return output dexterity = DotField("Dexterity") def attributeDexterity(self): - return self.dexterity + self.modifierTotal("DEXTERITY") + return self.dexterity + self.effectModifier("DEXTERITY") + def dotsDexterity(self): + output = [] + for i in range(self.dexterity): + output.append(True) + for i in range(5 - self.dexterity): + output.append(False) + return output stamina = DotField("Stamina") def attributeStamina(self): - return self.stamina + self.modifierTotal("STAMINA") + return self.stamina + self.effectModifier("STAMINA") + def dotsStamina(self): + output = [] + for i in range(self.stamina): + output.append(True) + for i in range(5 - self.stamina): + output.append(False) + return output charisma = DotField("Charisma") def attributeCharisma(self): - return self.charisma + self.modifierTotal("CHARISMA") + return self.charisma + self.effectModifier("CHARISMA") + def dotsCharisma(self): + output = [] + for i in range(self.charisma): + output.append(True) + for i in range(5 - self.charisma): + output.append(False) + return output manipulation = DotField("Manipulation") def attributeManipulation(self): - return self.manipulation + self.modifierTotal("MANIPULATION") + return self.manipulation + self.effectModifier("MANIPULATION") + def dotsManipulation(self): + output = [] + for i in range(self.manipulation): + output.append(True) + for i in range(5 - self.manipulation): + output.append(False) + return output appearance = DotField("Apperance") def attributeAppearance(self): - return self.appearance + self.modifierTotal("APPEARANCE") + return self.appearance + self.effectModifier("APPEARANCE") + def dotsAppearance(self): + output = [] + for i in range(self.appearance): + output.append(True) + for i in range(5 - self.appearance): + output.append(False) + return output perception = DotField("Perception") def attributePerception(self): - return self.perception + self.modifierTotal("PERCEPTION") + return self.perception + self.effectModifier("PERCEPTION") + def dotsPerception(self): + output = [] + for i in range(self.perception): + output.append(True) + for i in range(5 - self.perception): + output.append(False) + return output intelligence = DotField("Intelligence") def attributeIntelligence(self): - return self.intelligence + self.modifierTotal("INTELLIGENCE") + return self.intelligence + self.effectModifier("INTELLIGENCE") + def dotsIntelligence(self): + output = [] + for i in range(self.intelligence): + output.append(True) + for i in range(5 - self.intelligence): + output.append(False) + return output wits = DotField("Wits") def attributeWits(self): - return self.wits + self.modifierTotal("WITS") + return self.wits + self.effectModifier("WITS") + def dotsWits(self): + output = [] + for i in range(self.wits): + output.append(True) + for i in range(5 - self.wits): + output.append(False) + return output #=========== ABILITIES ============# archery = DotField("Archery") def abilityArchery(self): - return self.archery + self.modifierTotal("ARCHERY") + return self.archery + self.effectModifier("ARCHERY") + def dotsArchery(self): + output = [] + for i in range(self.archery): + output.append(True) + for i in range(5 - self.archery): + output.append(False) + return output athletics = DotField("Athletics") def abilityAthletics(self): - return self.athletics + self.modifierTotal("ATHLETICS") + return self.athletics + self.effectModifier("ATHLETICS") + def dotsAthletics(self): + output = [] + for i in range(self.athletics): + output.append(True) + for i in range(5 - self.athletics): + output.append(False) + return output awareness = DotField("Awareness") def abilityAwareness(self): - return self.awareness + self.modifierTotal("AWARENESS") + return self.awareness + self.effectModifier("AWARENESS") + def dotsAwareness(self): + output = [] + for i in range(self.awareness): + output.append(True) + for i in range(5 - self.awareness): + output.append(False) + return output brawl = DotField("Brawl") def abilityBrawl(self): - return self.brawl + self.modifierTotal("BRAWL") + return self.brawl + self.effectModifier("BRAWL") + def dotsBrawl(self): + output = [] + for i in range(self.brawl): + output.append(True) + for i in range(5 - self.brawl): + output.append(False) + return output bureaucracy = DotField("Bureaucracy") def abilityBureaucracy(self): - return self.bureaucracy + self.modifierTotal("BUREAUCRACY") + return self.bureaucracy + self.effectModifier("BUREAUCRACY") + def dotsBureaucracy(self): + output = [] + for i in range(self.bureaucracy): + output.append(True) + for i in range(5 - self.bureaucracy): + output.append(False) + return output craft = DotField("Craft") def abilityCraft(self): - return self.craft + self.modifierTotal("CRAFT") + return self.craft + self.effectModifier("CRAFT") + def dotsCraft(self): + output = [] + for i in range(self.craft): + output.append(True) + for i in range(5 - self.craft): + output.append(False) + return output dodge = DotField("Dodge") def abilityDodge(self): - return self.dodge + self.modifierTotal("DODGE") + return self.dodge + self.effectModifier("DODGE") + def dotsDodge(self): + output = [] + for i in range(self.dodge): + output.append(True) + for i in range(5 - self.dodge): + output.append(False) + return output integrity = DotField("Integrity") def abilityIntegrity(self): - return self.integrity + self.modifierTotal("INTEGRITY") + return self.integrity + self.effectModifier("INTEGRITY") + def dotsIntegrity(self): + output = [] + for i in range(self.integrity): + output.append(True) + for i in range(5 - self.integrity): + output.append(False) + return output investigation = DotField("Investigation") def abilityInvestigation(self): - return self.investigation + self.modifierTotal("INVESTIGATION") + return self.investigation + self.effectModifier("INVESTIGATION") + def dotsInvestigation(self): + output = [] + for i in range(self.investigation): + output.append(True) + for i in range(5 - self.investigation): + output.append(False) + return output larceny = DotField("Larceny") def abilityLarceny(self): - return self.larceny + self.modifierTotal("LARCENY") + return self.larceny + self.effectModifier("LARCENY") + def dotsLarceny(self): + output = [] + for i in range(self.larceny): + output.append(True) + for i in range(5 - self.larceny): + output.append(False) + return output linguistics = DotField("Linguistics") def abilityLinguistics(self): - return self.linguistics + self.modifierTotal("LINGUISTICS") + return self.linguistics + self.effectModifier("LINGUISTICS") + def dotsLinguistics(self): + output = [] + for i in range(self.linguistics): + output.append(True) + for i in range(5 - self.linguistics): + output.append(False) + return output lore = DotField("Lore") def abilityLore(self): - return self.lore + self.modifierTotal("LORE") + return self.lore + self.effectModifier("LORE") + def dotsLore(self): + output = [] + for i in range(self.lore): + output.append(True) + for i in range(5 - self.lore): + output.append(False) + return output martialArts = DotField("MartialArts") def abilityMartialArts(self): - return self.martialArts + self.modifierTotal("MARTIAL ARTS") + return self.martialArts + self.effectModifier("MARTIAL ARTS") + def dotsMartialArts(self): + output = [] + for i in range(self.martialArts): + output.append(True) + for i in range(5 - self.martialArts): + output.append(False) + return output medicine = DotField("Medicine") def abilityMedicine(self): - return self.medicine + self.modifierTotal("MEDICINE") + return self.medicine + self.effectModifier("MEDICINE") + def dotsMedicine(self): + output = [] + for i in range(self.medicine): + output.append(True) + for i in range(5 - self.medicine): + output.append(False) + return output melee = DotField("Melee") def abilityMelee(self): - return self.melee + self.modifierTotal("MELEE") + return self.melee + self.effectModifier("MELEE") + def dotsMelee(self): + output = [] + for i in range(self.melee): + output.append(True) + for i in range(5 - self.melee): + output.append(False) + return output occult = DotField("Occult") def abilityOccult(self): - return self.occult + self.modifierTotal("OCCULT") + return self.occult + self.effectModifier("OCCULT") + def dotsOccult(self): + output = [] + for i in range(self.occult): + output.append(True) + for i in range(5 - self.occult): + output.append(False) + return output performance = DotField("Performance") def abilityPerformance(self): - return self.performance + self.modifierTotal("PERFORMANCE") + return self.performance + self.effectModifier("PERFORMANCE") + def dotsPerformance(self): + output = [] + for i in range(self.performance): + output.append(True) + for i in range(5 - self.performance): + output.append(False) + return output presence = DotField("Presence") def abilityPresence(self): - return self.presence + self.modifierTotal("PRESENCE") + return self.presence + self.effectModifier("PRESENCE") + def dotsPresence(self): + output = [] + for i in range(self.presence): + output.append(True) + for i in range(5 - self.presence): + output.append(False) + return output resistance = DotField("Resistance") def abilityResistance(self): - return self.resistance + self.modifierTotal("RESISTANCE") + return self.resistance + self.effectModifier("RESISTANCE") + def dotsResistance(self): + output = [] + for i in range(self.resistance): + output.append(True) + for i in range(5 - self.resistance): + output.append(False) + return output ride = DotField("Ride") def abilityRide(self): - return self.ride + self.modifierTotal("RIDE") + return self.ride + self.effectModifier("RIDE") + def dotsRide(self): + output = [] + for i in range(self.ride): + output.append(True) + for i in range(5 - self.ride): + output.append(False) + return output sail = DotField("Sail") def abilitySail(self): - return self.sail + self.modifierTotal("SAIL") + return self.sail + self.effectModifier("SAIL") + def dotsSail(self): + output = [] + for i in range(self.sail): + output.append(True) + for i in range(5 - self.sail): + output.append(False) + return output socialize = DotField("Socialize") def abilitySocialize(self): - return self.socialize + self.modifierTotal("SOCIALIZE") + return self.socialize + self.effectModifier("SOCIALIZE") + def dotsSocialize(self): + output = [] + for i in range(self.socialize): + output.append(True) + for i in range(5 - self.socialize): + output.append(False) + return output stealth = DotField("Stealth") def abilityStealth(self): - return self.stealth + self.modifierTotal("STEALTH") + return self.stealth + self.effectModifier("STEALTH") + def dotsStealth(self): + output = [] + for i in range(self.stealth): + output.append(True) + for i in range(5 - self.stealth): + output.append(False) + return output survival = DotField("Survival") def abilitySurvival(self): - return self.survival + self.modifierTotal("SURVIVAL") + return self.survival + self.effectModifier("SURVIVAL") + def dotsSurvival(self): + output = [] + for i in range(self.survival): + output.append(True) + for i in range(5 - self.survival): + output.append(False) + return output thrown = DotField("Thrown") def abilityThrown(self): - return self.thrown + self.modifierTotal("THROWN") + return self.thrown + self.effectModifier("THROWN") + def dotsThrown(self): + output = [] + for i in range(self.thrown): + output.append(True) + for i in range(5 - self.thrown): + output.append(False) + return output war = DotField("War") def abilityWar(self): - return self.war + self.modifierTotal("WAR") + return self.war + self.effectModifier("WAR") + def dotsWar(self): + output = [] + for i in range(self.war): + output.append(True) + for i in range(5 - self.war): + output.append(False) + return output #============= MERITS =============# # Reverse relation - # .merit_set.all() + def meritSet(self): + output = [] + try: + ownerships = self.ownershipMerit_set.all() + for ownership in ownerships: + output.append(ownership.target) + except: + pass + return output + + #========== SPECIALITIES ==========# + # Reverse relation + def specialitySet(self): + output = [] + try: + ownerships = self.ownershipSpeciality_set.all() + for ownership in ownerships: + output.append(ownership.target) + except: + pass + return output #=========== WILLPOWER ============# willpowerCap = 10 @@ -527,17 +823,32 @@ class characterBase(models.Model): #============ WEAPONS =============# # Reverse relation - # .itemWeaponMelee_set.all() - # .itemWeaponRanged_set.all() + def itemWeaponSet(self): + output = [] + try: + ownerships = self.ownershipItemWeapon_set.all() + for ownership in ownerships: + output.append(ownership.target) + except: + pass + return output #============= ARMOR ==============# # Reverse relation - # .itemArmor_set.all() + def itemArmorSet(self): + output = [] + try: + ownerships = self.ownershipItemArmor_set.all() + for ownership in ownerships: + output.append(ownership.target) + except: + pass + return output def armorSoak(self): armor = None modifier = 0 try: - armor = self.itemArmor_set.filter(equipped=True) + armor = self.itemArmorSet().filter(equipped=True) except: pass if armor: @@ -548,7 +859,7 @@ class characterBase(models.Model): armor = None modifier = 0 try: - armor = self.itemArmor_set.filter(equipped=True) + armor = self.itemArmorSet().filter(equipped=True) except: pass if armor: @@ -559,7 +870,7 @@ class characterBase(models.Model): armor = None modifier = 0 try: - armor = self.itemArmor_set.filter(equipped=True) + armor = self.itemArmorSet().filter(equipped=True) except: pass if armor: @@ -569,7 +880,15 @@ class characterBase(models.Model): #============= ITEMS ==============# # Reverse relation - # .item_set.all() + def itemSet(self): + output = [] + try: + ownerships = self.ownershipItem_set.all() + for ownership in ownerships: + output.append(ownership.target) + except: + pass + return output #============ ESSENCE =============# essence = NamedIntegerField("Essence") @@ -586,13 +905,13 @@ class characterBase(models.Model): #============ STATICS =============# def resolve(self, speciality=None, mod=0): - return mod + ceil((self.attributeWits() + self.abilityIntegrity()) / 2) + self.modifierTotal("RESOLVE") + return mod + ceil((self.attributeWits() + self.abilityIntegrity()) / 2) + self.effectModifier("RESOLVE") def guile(self, speciality=None, mod=0): - return mod + ceil((self.attributeManipulation() + self.abilitySocialize()) / 2) + self.modifierTotal("GUILE") + return mod + ceil((self.attributeManipulation() + self.abilitySocialize()) / 2) + self.effectModifier("GUILE") def soakNatural(self, mod=0): - return mod + self.attributeStamina() + self.modifierTotal("SOAK NATURAL") + return mod + self.attributeStamina() + self.effectModifier("SOAK NATURAL") def soakArmored(self, mod=0): return mod + self.armorSoak() @@ -601,23 +920,22 @@ class characterBase(models.Model): return mod + self.soakNatural() + self.soakArmored() def hardness(self, mod=0): - return mod + self.armorHardness() + self.modifierTotal("HARDNESS") + return mod + self.armorHardness() + self.effectModifier("HARDNESS") def joinBattle(self, mod=0): - return mod + self.attributeWits() + self.abilityAwareness() + 3 + self.modifierTotal("JOIN BATTLE") + return mod + self.attributeWits() + self.abilityAwareness() + 3 + self.effectModifier("JOIN BATTLE") def evasion(self, mod=0): - return mod + ceil((self.attributeDexterity() + self.abilityDodge()) / 2) - self.armorMobilityPenalty() + self.modifierTotal("EVASION") + return mod + ceil((self.attributeDexterity() + self.abilityDodge()) / 2) - self.armorMobilityPenalty() + self.effectModifier("EVASION") def rush(self, mod=0): - return mod + self.attributeDexterity() + self.abilityAthletics() + self.modifierTotal("RUSH") + return mod + self.attributeDexterity() + self.abilityAthletics() + self.effectModifier("RUSH") def disengage(self, mod=0): - return mod + self.attributeDexterity() + self.abilityDodge() + self.modifierTotal("DISENGAGE") + return mod + self.attributeDexterity() + self.abilityDodge() + self.effectModifier("DISENGAGE") class characterExaltBase(characterBase): - class Meta: - abstract = True + anima = models.CharField(verbose_name="Anima", max_length=100) #============= MOTES ==============# motesPersonalMax = NamedIntegerField("Maximum Personal Motes") @@ -630,45 +948,100 @@ class characterExaltBase(characterBase): limitBreak = NamedIntegerField("Limit Break") #======= EXALTED EXPERIENCE =======# - experienceExaltedTotal = NamedIntegerField("Total Experience") - experienceExalted = NamedIntegerField("Current Experience") + experienceExaltedTotal = NamedIntegerField("Total Exalted Experience") + experienceExalted = NamedIntegerField("Current Exalted Experience") + + #========== MARTIAL ARTS ==========# + # Reverse relation + def martialArtSet(self): + output = [] + try: + ownerships = self.ownershipCharmMartialArt_set.all() + for ownership in ownerships: + output.append(ownership.target) + except: + pass + return output + + #=========== EVOCATIONS ===========# + # Reverse relation + def evocationSet(self): + output = [] + try: + ownerships = self.ownershipCharmEvocation_set.all() + for ownership in ownerships: + output.append(ownership.target) + except: + pass + return output + +class characterMortal(characterBase): + def type(self): + return "Mortal" class characterExaltSolar(characterExaltBase): + def type(self): + return "Solar Exalt" + + caste = SingleChoiceField("Solar Caste", CASTES_SOLAR) + #============= CHARMS =============# + # Reverse relation + def charmSet(self): + output = [] + try: + ownerships = self.ownershipCharmSolar_set.all() + for ownership in ownerships: + output.append(ownership.target) + except: + pass + return output #======= SUPERNAL & FAVORED =======# abilitySupernal = SingleChoiceField("Supernal Ability", ABILITIES) abilityFavored = MultiChoiceField("Favoured Abilities", ABILITIES) +class characterExaltLunar(characterExaltBase): + def type(self): + return "Lunar Exalt" + + caste = SingleChoiceField("Lunar Caste", CASTES_LUNAR) + #========= SHAPESHIFTING ==========# + spiritShape = models.CharField(verbose_name="Spirit Shape", max_length=100) + # Reverse relation + def shapeSet(self): + output = [] + try: + ownerships = self.ownershipCharmLunarShape_set.all() + for ownership in ownerships: + output.append(ownership.target) + except: + pass + return output + #============= CHARMS =============# # Reverse relation - # .charmSolar_set.all() - -class characterExaltLunar(characterExaltBase): + def charmSet(self): + output = [] + try: + ownerships = self.ownershipCharmLunar_set.all() + for ownership in ownerships: + output.append(ownership.target) + except: + pass + return output #============ FAVORED =============# attributeFavored = MultiChoiceField("Favoured Attributes", ATTRIBUTES) - #========= SHAPESHIFTING ==========# - # Reverse relation - # .charmLunarShape_set.all() - - #============= CHARMS =============# - # Reverse relation - # .charmLunar_set.all() - #==============================================================================# #----------------------------------- ITEMS ------------------------------------# #==============================================================================# -class itemBase(models.Model): - class Meta: - abstract = True - +class itemBase(PolymorphicModel): def __str__(self): return self.name name = NameField() description = DescriptionField() - character = NamedForeignKeyField("Character", characterBase) class item(itemBase): pass @@ -677,10 +1050,6 @@ class item(itemBase): #---------------------------------- WEAPONS -----------------------------------# #==============================================================================# class itemWeaponBase(itemBase): - class Meta: - abstract = True - - equipped = NamedBooleanField("Equipped?") category = SingleChoiceField("Category", CATEGORIES) tags = MultiChoiceField("Tags", TAGS_WEAPONS) accuracy = NamedIntegerField("Accuracy") @@ -729,7 +1098,6 @@ class itemWeaponRanged(itemWeaponBase): #----------------------------------- ARMOR ------------------------------------# #==============================================================================# class itemArmor(itemBase): - equipped = NamedBooleanField("Equipped?") category = SingleChoiceField("Category", CATEGORIES) tags = MultiChoiceField("Tags", TAGS_ARMOR) soak = NamedIntegerField("Soak") @@ -738,113 +1106,73 @@ class itemArmor(itemBase): attunement = NamedIntegerField("Attunement") #==============================================================================# -#----------------------------------- CHARMS -----------------------------------# +#---------------------------------- EFFECTS -----------------------------------# #==============================================================================# -class charmBase(models.Model): - class Meta: - abstract = True +class effectBase(PolymorphicModel): def __str__(self): return self.name name = NameField() description = DescriptionField() - levelEssence = NamedIntegerField("Essence Level") - levelKey = NamedIntegerField("Key Level") - active = NamedBooleanField("Active?") rollConfiguration = NamedManyToManyField("Roll Configurations", rollConfiguration) - modifierAttribute = NamedManyToManyField("Attribute Modifiers", modifierAttribute) - modifierAbility = NamedManyToManyField("Abilities Modifiers", modifierAbility) - modifierStatic = NamedManyToManyField("Statics Modifiers", modifierStatic) + modifiers = NamedManyToManyField("Modifiers", modifierBase) def modifier(self, keyword): output = 0 - for modifierAttribute in self.modifierAttribute.all(): - if keyword == modifierAttribute.attribute: - output += modifierAttribute.value - for modifierAbility in self.modifierAbility.all(): - if keyword == modifierAbility.ability: - output += modifierAbility.value - for modifierStatic in self.modifierStatic.all(): - if keyword == modifierStatic.static: - output += modifierStatic.value + for modifier in self.modifiers.all(): + if keyword == modifier.keyword: + output += modifier.value return output +#==============================================================================# +#----------------------------------- CHARMS -----------------------------------# +#==============================================================================# +class charmBase(effectBase): + levelEssence = NamedIntegerField("Essence Level") + charmType = SingleChoiceField("Charm Type", CHARM_TYPES) + duration = SingleChoiceField("Charm Duration", CHARM_DURATIONS) + keywords = MultiChoiceField("Charm Keywords", CHARM_KEYWORDS) + +class charmMartialArt(charmBase): + levelKey = NamedIntegerField("Martial Arts Level") + key = None + +class charmEvocation(charmBase): + levelKey = 0 + key = NamedForeignKeyField("Artifact", itemBase) + class charmSolar(charmBase): - ability = SingleChoiceField("Key Ability", ABILITIES) - character = NamedForeignKeyField("Character", characterExaltSolar) + levelKey = NamedIntegerField("Ability Level") + key = SingleChoiceField("Key Ability", ABILITIES) class charmLunar(charmBase): - attribute = SingleChoiceField("Key Attribute", ATTRIBUTES) - character = NamedForeignKeyField("Character", characterExaltLunar) + levelKey = NamedIntegerField("Attribute Level") + key = SingleChoiceField("Key Attribute", ATTRIBUTES) class charmLunarShape(charmBase): - description = DescriptionField() - character = NamedForeignKeyField("Character", characterExaltLunar) + levelKey = 0 + key = None #==============================================================================# #----------------------------------- MERITS -----------------------------------# #==============================================================================# -class merit(models.Model): - def __str__(self): - return self.name - - name = NameField() - description = DescriptionField() +class merit(effectBase): dots = DotField("Dots") - character = NamedForeignKeyField("Character", characterBase) - active = NamedBooleanField("Active?") - rollConfiguration = NamedManyToManyField("Roll Configurations", rollConfiguration) - modifierAttribute = NamedManyToManyField("Attribute Modifiers", modifierAttribute) - modifierAbility = NamedManyToManyField("Abilities Modifiers", modifierAbility) - modifierStatic = NamedManyToManyField("Statics Modifiers", modifierStatic) - def modifier(self, keyword): - output = 0 - for modifierAttribute in self.modifierAttribute.all(): - if keyword == modifierAttribute.attribute: - output += modifierAttribute.value - for modifierAbility in self.modifierAbility.all(): - if keyword == modifierAbility.ability: - output += modifierAbility.value - for modifierStatic in self.modifierStatic.all(): - if keyword == modifierStatic.static: - output += modifierStatic.value - return output #==============================================================================# #-------------------------------- SPECIALITIES --------------------------------# #==============================================================================# -class speciality(models.Model): - def __str__(self): - return self.name - - name = NameField() - character = NamedForeignKeyField("Character", characterBase) - active = NamedBooleanField("Active?") - modifierAbility = NamedManyToManyField("Abilities Modifiers", modifierAbility) - modifierStatic = NamedManyToManyField("Statics Modifiers", modifierStatic) - def modifier(self, keyword): - output = 0 - for modifierAbility in self.modifierAbility.all(): - if keyword == modifierAbility.ability: - output += modifierAbility.value - for modifierStatic in self.modifierStatic.all(): - if keyword == modifierStatic.static: - output += modifierStatic.value - return output - +class speciality(effectBase): + pass #==============================================================================# #--------------------------------- INTIMACIES ---------------------------------# #==============================================================================# -class intimacyBase(models.Model): - class Meta: - abstract = True - +class intimacyBase(PolymorphicModel): def __str__(self): return "[{}] {}".format(self.description, self.intensity) description = DescriptionField() intensity = SingleChoiceField("Intensity", INTENSITIES) - character = NamedForeignKeyField("Character", characterBase) class intimacyTie(intimacyBase): target = NamedCharField("Target") @@ -852,3 +1180,47 @@ class intimacyTie(intimacyBase): class intimacyPrincipal(intimacyBase): pass +#==============================================================================# +#--------------------------------- OWNERSHIP ----------------------------------# +#==============================================================================# +class ownershipBase(PolymorphicModel): + notes = models.TextField(verbose_name="Notes", blank=True) + active = NamedBooleanField("Active/Equipped?") + +class ownershipCharacterBase(ownershipBase): + owner = NamedForeignKeyField("Owner", characterBase) +class ownershipCharacterExaltBase(ownershipBase): + owner = NamedForeignKeyField("Exalted Owner", characterExaltBase) +class ownershipCharacterExaltSolarBase(ownershipBase): + owner = NamedForeignKeyField("Solar Exalted Owner", characterExaltSolar) +class ownershipCharacterExaltLunarBase(ownershipBase): + owner = NamedForeignKeyField("Lunar Exalted Owner", characterExaltLunar) + +class ownershipItem(ownershipCharacterBase): + target = NamedForeignKeyField("Item", item) +class ownershipItemWeapon(ownershipCharacterBase): + target = NamedForeignKeyField("Weapon", itemWeaponBase) +class ownershipItemArmor(ownershipCharacterBase): + target = NamedForeignKeyField("Armor", itemArmor) + +class ownershipCharmMartialArt(ownershipCharacterExaltBase): + target = NamedForeignKeyField("Martial Arts Charm", characterExaltBase) +class ownershipCharmEvocation(ownershipCharacterExaltBase): + target = NamedForeignKeyField("Evocation", characterExaltBase) +class ownershipCharmSolar(ownershipCharacterExaltSolarBase): + target = NamedForeignKeyField("Solar Charm", characterExaltSolar) +class ownershipCharmLunar(ownershipCharacterExaltLunarBase): + target = NamedForeignKeyField("Lunar Charm", characterExaltLunar) +class ownershipCharmLunarShape(ownershipCharacterExaltLunarBase): + target = NamedForeignKeyField("Lunar Shape", characterExaltLunar) + +class ownershipMerit(ownershipCharacterBase): + target = NamedForeignKeyField("Merit", merit) + +class ownershipSpeciality(ownershipCharacterBase): + target = NamedForeignKeyField("Speciality", speciality) + +class ownershipIntimacyTie(ownershipCharacterBase): + target = NamedForeignKeyField("Tie", intimacyTie) +class ownershipIntimacyPrincipal(ownershipCharacterBase): + target = NamedForeignKeyField("Principal", intimacyPrincipal) diff --git a/app/views.py b/app/views.py index 91ea44a..dd39f76 100644 --- a/app/views.py +++ b/app/views.py @@ -1,3 +1,11 @@ from django.shortcuts import render +from django.views.generic.base import TemplateView +from django.views.generic.detail import DetailView +from .models import * -# Create your views here. +class HomePageView(TemplateView): + template_name = "home.html" + +class CharacterDetailView(DetailView): + model = characterBase + template_name = "characterDetail.html" diff --git a/exalted/__pycache__/settings.cpython-38.pyc b/exalted/__pycache__/settings.cpython-38.pyc index 3ef6081..7d4e035 100644 Binary files a/exalted/__pycache__/settings.cpython-38.pyc and b/exalted/__pycache__/settings.cpython-38.pyc differ diff --git a/exalted/__pycache__/urls.cpython-38.pyc b/exalted/__pycache__/urls.cpython-38.pyc index bf957e7..4a53c72 100644 Binary files a/exalted/__pycache__/urls.cpython-38.pyc and b/exalted/__pycache__/urls.cpython-38.pyc differ diff --git a/exalted/settings.py b/exalted/settings.py index 3b621c9..420580d 100644 --- a/exalted/settings.py +++ b/exalted/settings.py @@ -55,7 +55,7 @@ ROOT_URLCONF = 'exalted.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], + 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ @@ -122,3 +122,6 @@ USE_TZ = True # https://docs.djangoproject.com/en/3.0/howto/static-files/ STATIC_URL = '/static/' +STATICFILES_DIRS = [ + os.path.join(BASE_DIR, "static"), +] diff --git a/exalted/urls.py b/exalted/urls.py index 7e4daa7..475d349 100644 --- a/exalted/urls.py +++ b/exalted/urls.py @@ -1,21 +1,9 @@ -"""exalted URL Configuration - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/3.0/topics/http/urls/ -Examples: -Function views - 1. Add an import: from my_app import views - 2. Add a URL to urlpatterns: path('', views.home, name='home') -Class-based views - 1. Add an import: from other_app.views import Home - 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') -Including another URLconf - 1. Import the include() function: from django.urls import include, path - 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) -""" from django.contrib import admin from django.urls import path +from app.views import * urlpatterns = [ path('admin/', admin.site.urls), + path('', HomePageView.as_view(), name="homePageView"), + path('character/', CharacterDetailView.as_view(), name="characterDetailView"), ]