Big prog
This commit is contained in:
parent
5f07ab1bf9
commit
ba03fd80b4
@ -16,6 +16,7 @@ admin.site.register(charmSolar)
|
|||||||
admin.site.register(charmLunar)
|
admin.site.register(charmLunar)
|
||||||
admin.site.register(charmLunarShape)
|
admin.site.register(charmLunarShape)
|
||||||
admin.site.register(charmEvocation)
|
admin.site.register(charmEvocation)
|
||||||
|
admin.site.register(charmMartialArt)
|
||||||
|
|
||||||
admin.site.register(merit)
|
admin.site.register(merit)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Generated by Django 3.0.5 on 2020-04-13 00:12
|
# Generated by Django 3.0.5 on 2020-04-15 20:45
|
||||||
|
|
||||||
import app.models
|
import app.models
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
@ -90,6 +90,7 @@ class Migration(migrations.Migration):
|
|||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('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')),
|
('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')),
|
('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, related_name='intimacy_set', 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')),
|
('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={
|
options={
|
||||||
@ -144,6 +145,7 @@ class Migration(migrations.Migration):
|
|||||||
('motesPersonal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current 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')),
|
('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')),
|
('motesPeripheral', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Peripheral Motes')),
|
||||||
|
('motesCommitted', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Committed Motes')),
|
||||||
('limitTrigger', models.TextField(blank='False', max_length=1000, verbose_name='Limit Trigger')),
|
('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')),
|
('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 Exalted Experience')),
|
('experienceExaltedTotal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Exalted Experience')),
|
||||||
@ -375,6 +377,18 @@ class Migration(migrations.Migration):
|
|||||||
},
|
},
|
||||||
bases=('app.characterexaltbase',),
|
bases=('app.characterexaltbase',),
|
||||||
),
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='charmEvocation',
|
||||||
|
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')),
|
||||||
|
('key', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.itemBase', verbose_name='Artifact')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'abstract': False,
|
||||||
|
'base_manager_name': 'objects',
|
||||||
|
},
|
||||||
|
bases=('app.charmbase',),
|
||||||
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='charmLunar',
|
name='charmLunar',
|
||||||
fields=[
|
fields=[
|
||||||
@ -517,24 +531,11 @@ class Migration(migrations.Migration):
|
|||||||
bases=('app.ownershipbase',),
|
bases=('app.ownershipbase',),
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='ownershipIntimacyTie',
|
name='ownershipCharmSolar',
|
||||||
fields=[
|
fields=[
|
||||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipIntimacyTie_set', to='app.characterBase', verbose_name='Owner')),
|
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmSolar_set', to='app.characterExaltSolar', verbose_name='Solar Exalted Owner')),
|
||||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipIntimacyTieTarget_set', to='app.intimacyTie', verbose_name='Tie')),
|
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmSolarTarget_set', to='app.charmSolar', verbose_name='Solar Charm')),
|
||||||
],
|
|
||||||
options={
|
|
||||||
'abstract': False,
|
|
||||||
'base_manager_name': 'objects',
|
|
||||||
},
|
|
||||||
bases=('app.ownershipbase',),
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='ownershipIntimacyPrincipal',
|
|
||||||
fields=[
|
|
||||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
|
||||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipIntimacyPrincipal_set', to='app.characterBase', verbose_name='Owner')),
|
|
||||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipIntimacyPrincipalTarget_set', to='app.intimacyPrincipal', verbose_name='Principal')),
|
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'abstract': False,
|
'abstract': False,
|
||||||
@ -547,33 +548,7 @@ class Migration(migrations.Migration):
|
|||||||
fields=[
|
fields=[
|
||||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmMartialArt_set', to='app.characterExaltBase', verbose_name='Exalted Owner')),
|
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmMartialArt_set', to='app.characterExaltBase', verbose_name='Exalted Owner')),
|
||||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmMartialArtTarget_set', to='app.characterExaltBase', verbose_name='Martial Arts Charm')),
|
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmMartialArtTarget_set', to='app.charmMartialArt', verbose_name='Martial Arts Charm')),
|
||||||
],
|
|
||||||
options={
|
|
||||||
'abstract': False,
|
|
||||||
'base_manager_name': 'objects',
|
|
||||||
},
|
|
||||||
bases=('app.ownershipbase',),
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='ownershipCharmEvocation',
|
|
||||||
fields=[
|
|
||||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
|
||||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmEvocation_set', to='app.characterExaltBase', verbose_name='Exalted Owner')),
|
|
||||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmEvocationTarget_set', to='app.characterExaltBase', verbose_name='Evocation')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'abstract': False,
|
|
||||||
'base_manager_name': 'objects',
|
|
||||||
},
|
|
||||||
bases=('app.ownershipbase',),
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='ownershipCharmSolar',
|
|
||||||
fields=[
|
|
||||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
|
||||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmSolar_set', to='app.characterExaltSolar', verbose_name='Solar Exalted Owner')),
|
|
||||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmSolarTarget_set', to='app.characterExaltSolar', verbose_name='Solar Charm')),
|
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'abstract': False,
|
'abstract': False,
|
||||||
@ -586,7 +561,7 @@ class Migration(migrations.Migration):
|
|||||||
fields=[
|
fields=[
|
||||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarShape_set', to='app.characterExaltLunar', verbose_name='Lunar Exalted Owner')),
|
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarShape_set', to='app.characterExaltLunar', verbose_name='Lunar Exalted Owner')),
|
||||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarShapeTarget_set', to='app.characterExaltLunar', verbose_name='Lunar Shape')),
|
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarShapeTarget_set', to='app.charmLunarShape', verbose_name='Lunar Shape')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'abstract': False,
|
'abstract': False,
|
||||||
@ -599,7 +574,7 @@ class Migration(migrations.Migration):
|
|||||||
fields=[
|
fields=[
|
||||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunar_set', to='app.characterExaltLunar', verbose_name='Lunar Exalted Owner')),
|
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunar_set', to='app.characterExaltLunar', verbose_name='Lunar Exalted Owner')),
|
||||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarTarget_set', to='app.characterExaltLunar', verbose_name='Lunar Charm')),
|
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarTarget_set', to='app.charmLunar', verbose_name='Lunar Charm')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'abstract': False,
|
'abstract': False,
|
||||||
@ -608,15 +583,16 @@ class Migration(migrations.Migration):
|
|||||||
bases=('app.ownershipbase',),
|
bases=('app.ownershipbase',),
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='charmEvocation',
|
name='ownershipCharmEvocation',
|
||||||
fields=[
|
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')),
|
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||||
('key', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.itemBase', verbose_name='Artifact')),
|
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmEvocation_set', to='app.characterExaltBase', verbose_name='Exalted Owner')),
|
||||||
|
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmEvocationTarget_set', to='app.charmEvocation', verbose_name='Evocation')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'abstract': False,
|
'abstract': False,
|
||||||
'base_manager_name': 'objects',
|
'base_manager_name': 'objects',
|
||||||
},
|
},
|
||||||
bases=('app.charmbase',),
|
bases=('app.ownershipbase',),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
24
app/migrations/0002_auto_20200415_2109.py
Normal file
24
app/migrations/0002_auto_20200415_2109.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Generated by Django 3.0.5 on 2020-04-15 21:09
|
||||||
|
|
||||||
|
import app.models
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('app', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='charmlunarshape',
|
||||||
|
name='shapeType',
|
||||||
|
field=app.models.SingleChoiceField(blank=True, choices=[('Human', 'Human'), ('Animal', 'Animal')], max_length=100, verbose_name='Shape Type'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='charmlunarshape',
|
||||||
|
name='size',
|
||||||
|
field=app.models.SingleChoiceField(blank=True, choices=[('Normal', 'Normal')], max_length=100, verbose_name='Size'),
|
||||||
|
),
|
||||||
|
]
|
@ -1,19 +0,0 @@
|
|||||||
# Generated by Django 3.0.5 on 2020-04-13 13:15
|
|
||||||
|
|
||||||
import app.models
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('app', '0001_initial'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='characterexaltbase',
|
|
||||||
name='motesCommitted',
|
|
||||||
field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Committed Motes'),
|
|
||||||
),
|
|
||||||
]
|
|
@ -1,38 +0,0 @@
|
|||||||
# Generated by Django 3.0.5 on 2020-04-15 19:29
|
|
||||||
|
|
||||||
import app.models
|
|
||||||
from django.db import migrations
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('app', '0002_characterexaltbase_motescommitted'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='ownershipintimacytie',
|
|
||||||
name='owner',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='ownershipintimacytie',
|
|
||||||
name='ownershipbase_ptr',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='ownershipintimacytie',
|
|
||||||
name='target',
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='intimacybase',
|
|
||||||
name='character',
|
|
||||||
field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character'),
|
|
||||||
),
|
|
||||||
migrations.DeleteModel(
|
|
||||||
name='ownershipIntimacyPrincipal',
|
|
||||||
),
|
|
||||||
migrations.DeleteModel(
|
|
||||||
name='ownershipIntimacyTie',
|
|
||||||
),
|
|
||||||
]
|
|
@ -124,6 +124,7 @@ TAGS_WEAPONS = [
|
|||||||
),
|
),
|
||||||
(
|
(
|
||||||
"Thrown", (
|
"Thrown", (
|
||||||
|
("Thrown", "Thrown"),
|
||||||
("Occult", "Occult"),
|
("Occult", "Occult"),
|
||||||
("Cutting", "Cutting"),
|
("Cutting", "Cutting"),
|
||||||
("Poisonable", "Poisonable"),
|
("Poisonable", "Poisonable"),
|
||||||
@ -218,6 +219,15 @@ CASTES_LUNAR = [
|
|||||||
("Castless", "Castless")
|
("Castless", "Castless")
|
||||||
]
|
]
|
||||||
|
|
||||||
|
SHAPE_SIZES = [
|
||||||
|
("Normal", "Normal"),
|
||||||
|
]
|
||||||
|
|
||||||
|
SHAPE_TYPES = [
|
||||||
|
("Human", "Human"),
|
||||||
|
("Animal", "Animal"),
|
||||||
|
]
|
||||||
|
|
||||||
#==============================================================================#
|
#==============================================================================#
|
||||||
#------------------------------- CUSTOM MODELS --------------------------------#
|
#------------------------------- CUSTOM MODELS --------------------------------#
|
||||||
#==============================================================================#
|
#==============================================================================#
|
||||||
@ -923,6 +933,11 @@ class characterBase(PolymorphicModel):
|
|||||||
return ["Healthy"] + ["-0" for i in range(self.health0)] + ["-1" for i in range(self.health1)] + ["-1" for i in range(self.health1)] + ["-4", "i"]
|
return ["Healthy"] + ["-0" for i in range(self.health0)] + ["-1" for i in range(self.health1)] + ["-1" for i in range(self.health1)] + ["-4", "i"]
|
||||||
def healthLevel(self):
|
def healthLevel(self):
|
||||||
return self.healthTrack()[self.healthIndex]
|
return self.healthTrack()[self.healthIndex]
|
||||||
|
def healthDots(self):
|
||||||
|
output = []
|
||||||
|
for i in range(len(self.healthTrack()) - 1):
|
||||||
|
output.append((self.healthTrack()[i+1], i < self.healthIndex))
|
||||||
|
return output
|
||||||
|
|
||||||
#============ STATICS =============#
|
#============ STATICS =============#
|
||||||
def resolve(self, speciality=None, mod=0):
|
def resolve(self, speciality=None, mod=0):
|
||||||
@ -1035,7 +1050,7 @@ class characterExaltLunar(characterExaltBase):
|
|||||||
#========= SHAPESHIFTING ==========#
|
#========= SHAPESHIFTING ==========#
|
||||||
spiritShape = models.CharField(verbose_name="Spirit Shape", max_length=100)
|
spiritShape = models.CharField(verbose_name="Spirit Shape", max_length=100)
|
||||||
# Reverse relation
|
# Reverse relation
|
||||||
def shapeSet(self):
|
def lunarShapeSet(self):
|
||||||
output = []
|
output = []
|
||||||
try:
|
try:
|
||||||
ownerships = self.ownershipCharmLunarShape_set.all()
|
ownerships = self.ownershipCharmLunarShape_set.all()
|
||||||
@ -1161,30 +1176,49 @@ class charmBase(effectBase):
|
|||||||
keywords = MultiChoiceField("Charm Keywords", CHARM_KEYWORDS)
|
keywords = MultiChoiceField("Charm Keywords", CHARM_KEYWORDS)
|
||||||
|
|
||||||
class charmMartialArt(charmBase):
|
class charmMartialArt(charmBase):
|
||||||
|
def type(self):
|
||||||
|
return "Martial Art"
|
||||||
levelKey = NamedIntegerField("Martial Arts Level")
|
levelKey = NamedIntegerField("Martial Arts Level")
|
||||||
key = None
|
key = None
|
||||||
|
|
||||||
class charmEvocation(charmBase):
|
class charmEvocation(charmBase):
|
||||||
|
def type(self):
|
||||||
|
return "Evocation"
|
||||||
levelKey = 0
|
levelKey = 0
|
||||||
key = NamedForeignKeyField("Artifact", itemBase)
|
key = NamedForeignKeyField("Artifact", itemBase)
|
||||||
|
|
||||||
class charmSolar(charmBase):
|
class charmSolar(charmBase):
|
||||||
|
def type(self):
|
||||||
|
return "Solar"
|
||||||
levelKey = NamedIntegerField("Ability Level")
|
levelKey = NamedIntegerField("Ability Level")
|
||||||
key = SingleChoiceField("Key Ability", ABILITIES)
|
key = SingleChoiceField("Key Ability", ABILITIES)
|
||||||
|
|
||||||
class charmLunar(charmBase):
|
class charmLunar(charmBase):
|
||||||
|
def type(self):
|
||||||
|
return "Lunar"
|
||||||
levelKey = NamedIntegerField("Attribute Level")
|
levelKey = NamedIntegerField("Attribute Level")
|
||||||
key = SingleChoiceField("Key Attribute", ATTRIBUTES)
|
key = SingleChoiceField("Key Attribute", ATTRIBUTES)
|
||||||
|
|
||||||
class charmLunarShape(charmBase):
|
class charmLunarShape(charmBase):
|
||||||
levelKey = 0
|
levelKey = 0
|
||||||
|
def type(self):
|
||||||
|
return "Lunar Shape"
|
||||||
key = None
|
key = None
|
||||||
|
size = SingleChoiceField("Size", SHAPE_SIZES)
|
||||||
|
shapeType = SingleChoiceField("Shape Type", SHAPE_TYPES)
|
||||||
|
|
||||||
#==============================================================================#
|
#==============================================================================#
|
||||||
#----------------------------------- MERITS -----------------------------------#
|
#----------------------------------- MERITS -----------------------------------#
|
||||||
#==============================================================================#
|
#==============================================================================#
|
||||||
class merit(effectBase):
|
class merit(effectBase):
|
||||||
dots = DotField("Dots")
|
dots = DotField("Dots")
|
||||||
|
def dotsDisplay(self):
|
||||||
|
output = []
|
||||||
|
for i in range(self.dots):
|
||||||
|
output.append(True)
|
||||||
|
for i in range(5 - self.dots):
|
||||||
|
output.append(False)
|
||||||
|
return output
|
||||||
|
|
||||||
#==============================================================================#
|
#==============================================================================#
|
||||||
#-------------------------------- SPECIALITIES --------------------------------#
|
#-------------------------------- SPECIALITIES --------------------------------#
|
||||||
@ -1200,7 +1234,7 @@ class intimacyBase(PolymorphicModel):
|
|||||||
|
|
||||||
description = DescriptionField()
|
description = DescriptionField()
|
||||||
intensity = SingleChoiceField("Intensity", INTENSITIES)
|
intensity = SingleChoiceField("Intensity", INTENSITIES)
|
||||||
character = NamedForeignKeyField("Character", characterBase)
|
character = NamedForeignKeyField("Character", characterBase, related_name="intimacy_set")
|
||||||
|
|
||||||
class intimacyTie(intimacyBase):
|
class intimacyTie(intimacyBase):
|
||||||
target = NamedCharField("Target")
|
target = NamedCharField("Target")
|
||||||
@ -1226,19 +1260,19 @@ class ownershipItemArmor(ownershipBase):
|
|||||||
owner = NamedForeignKeyField("Owner", characterBase, related_name="ownershipItemArmor_set")
|
owner = NamedForeignKeyField("Owner", characterBase, related_name="ownershipItemArmor_set")
|
||||||
|
|
||||||
class ownershipCharmMartialArt(ownershipBase):
|
class ownershipCharmMartialArt(ownershipBase):
|
||||||
target = NamedForeignKeyField("Martial Arts Charm", characterExaltBase, related_name="ownershipCharmMartialArtTarget_set")
|
target = NamedForeignKeyField("Martial Arts Charm", charmMartialArt, related_name="ownershipCharmMartialArtTarget_set")
|
||||||
owner = NamedForeignKeyField("Exalted Owner", characterExaltBase, related_name="ownershipCharmMartialArt_set")
|
owner = NamedForeignKeyField("Exalted Owner", characterExaltBase, related_name="ownershipCharmMartialArt_set")
|
||||||
class ownershipCharmEvocation(ownershipBase):
|
class ownershipCharmEvocation(ownershipBase):
|
||||||
target = NamedForeignKeyField("Evocation", characterExaltBase, related_name="ownershipCharmEvocationTarget_set")
|
target = NamedForeignKeyField("Evocation", charmEvocation, related_name="ownershipCharmEvocationTarget_set")
|
||||||
owner = NamedForeignKeyField("Exalted Owner", characterExaltBase, related_name="ownershipCharmEvocation_set")
|
owner = NamedForeignKeyField("Exalted Owner", characterExaltBase, related_name="ownershipCharmEvocation_set")
|
||||||
class ownershipCharmSolar(ownershipBase):
|
class ownershipCharmSolar(ownershipBase):
|
||||||
target = NamedForeignKeyField("Solar Charm", characterExaltSolar, related_name="ownershipCharmSolarTarget_set")
|
target = NamedForeignKeyField("Solar Charm", charmSolar, related_name="ownershipCharmSolarTarget_set")
|
||||||
owner = NamedForeignKeyField("Solar Exalted Owner", characterExaltSolar, related_name="ownershipCharmSolar_set")
|
owner = NamedForeignKeyField("Solar Exalted Owner", characterExaltSolar, related_name="ownershipCharmSolar_set")
|
||||||
class ownershipCharmLunar(ownershipBase):
|
class ownershipCharmLunar(ownershipBase):
|
||||||
target = NamedForeignKeyField("Lunar Charm", characterExaltLunar, related_name="ownershipCharmLunarTarget_set")
|
target = NamedForeignKeyField("Lunar Charm", charmLunar, related_name="ownershipCharmLunarTarget_set")
|
||||||
owner = NamedForeignKeyField("Lunar Exalted Owner", characterExaltLunar, related_name="ownershipCharmLunar_set")
|
owner = NamedForeignKeyField("Lunar Exalted Owner", characterExaltLunar, related_name="ownershipCharmLunar_set")
|
||||||
class ownershipCharmLunarShape(ownershipBase):
|
class ownershipCharmLunarShape(ownershipBase):
|
||||||
target = NamedForeignKeyField("Lunar Shape", characterExaltLunar, related_name="ownershipCharmLunarShapeTarget_set")
|
target = NamedForeignKeyField("Lunar Shape", charmLunarShape, related_name="ownershipCharmLunarShapeTarget_set")
|
||||||
owner = NamedForeignKeyField("Lunar Exalted Owner", characterExaltLunar, related_name="ownershipCharmLunarShape_set")
|
owner = NamedForeignKeyField("Lunar Exalted Owner", characterExaltLunar, related_name="ownershipCharmLunarShape_set")
|
||||||
|
|
||||||
class ownershipMerit(ownershipBase):
|
class ownershipMerit(ownershipBase):
|
||||||
|
@ -25,7 +25,7 @@ SECRET_KEY = '1ry9e5wz$6(c-)btw70c41woraos)5nzqfbw2^kvpzpi)gy#6v'
|
|||||||
# SECURITY WARNING: don't run with debug turned on in production!
|
# SECURITY WARNING: don't run with debug turned on in production!
|
||||||
DEBUG = True
|
DEBUG = True
|
||||||
|
|
||||||
ALLOWED_HOSTS = ["192.168.1.205", "localhost", "127.0.0.1"]
|
ALLOWED_HOSTS = ["192.168.1.205", "localhost", "127.0.0.1", "tcaxle.ddns.net", "xle.sh"]
|
||||||
|
|
||||||
|
|
||||||
# Application definition
|
# Application definition
|
||||||
|
@ -546,13 +546,12 @@
|
|||||||
</p>
|
</p>
|
||||||
{% if object.specialitySet %}
|
{% if object.specialitySet %}
|
||||||
{% for speciality in object.specialitySet %}
|
{% for speciality in object.specialitySet %}
|
||||||
<p style="margin:0">
|
<p style="margin:0" class="w3-row-padding custom-hover-grey custom-hover-text-orange">
|
||||||
<span>{{ speciality }}</span>
|
<span>{{ speciality }}</span>
|
||||||
<span class="w3-right custom-hover-text-orange"><i class="fas fa-pen-square"></i></span>
|
</p>
|
||||||
<p>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<p style="margin:0">No specialities found.<p>
|
<p style="margin:0">No specialities found.</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@ -622,10 +621,22 @@
|
|||||||
</p>
|
</p>
|
||||||
{% if object.meritSet %}
|
{% if object.meritSet %}
|
||||||
{% for merit in object.meritSet %}
|
{% for merit in object.meritSet %}
|
||||||
<p style="margin:0">{{ merit }}<p>
|
<p style="margin:0" class="w3-row-padding custom-hover-grey custom-hover-text-orange w3-display-container">
|
||||||
|
<span>{{ merit }}</span>
|
||||||
|
<span class="w3-display-right">
|
||||||
|
{% for dot in merit.dotsDisplay %}
|
||||||
|
{% if dot %}
|
||||||
|
<i class="fas fa-circle"></i>
|
||||||
|
{% else %}
|
||||||
|
<i class="far fa-circle"></i>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
 
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<p style="margin:0">No merits found.<p>
|
<p>No merits found.</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@ -646,7 +657,9 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
{{ object.limitTrigger }}
|
<p class="w3-center">
|
||||||
|
{{ object.limitTrigger }}
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
@ -700,7 +713,7 @@
|
|||||||
<p style="margin:3px" class="fancy w3-center w3-xlarge">
|
<p style="margin:3px" class="fancy w3-center w3-xlarge">
|
||||||
<span class="w3-center"><b>Weapons & Armor</b></span>
|
<span class="w3-center"><b>Weapons & Armor</b></span>
|
||||||
</p>
|
</p>
|
||||||
<table class="w3-table" style="line-height:15px">
|
<table class="w3-table" style="line-height:11px">
|
||||||
<tr class="w3-border-bottom custom-border-grey">
|
<tr class="w3-border-bottom custom-border-grey">
|
||||||
<th><b>Weapon</b></th>
|
<th><b>Weapon</b></th>
|
||||||
<th>ACC</th>
|
<th>ACC</th>
|
||||||
@ -708,29 +721,28 @@
|
|||||||
<th>DEF</th>
|
<th>DEF</th>
|
||||||
<th>OVW</th>
|
<th>OVW</th>
|
||||||
<th>ATT</th>
|
<th>ATT</th>
|
||||||
<th>Range/Parry</th>
|
|
||||||
</tr>
|
</tr>
|
||||||
{% if object.itemWeaponSet %}
|
{% if object.itemWeaponSet %}
|
||||||
{% for weapon in object.itemWeaponSet %}
|
{% for weapon in object.itemWeaponSet %}
|
||||||
<tr class="custom-hover-grey custom-hover-text-orange">
|
<tr class="custom-hover-grey custom-hover-text-orange">
|
||||||
<td>{{ weapon.name }}</td>
|
<td>{{ weapon.name }}</td>
|
||||||
|
{% if weapon.rangeClose %}
|
||||||
|
<td>{{ weapon.rangeClose }}/{{ weapon.rangeShort }}/{{ weapon.rangeMedium }}/{{ weapon.rangeLong }}/{{ weapon.rangeExtreme }}</td>
|
||||||
|
{% else %}
|
||||||
<td>{{ weapon.accuracy }}</td>
|
<td>{{ weapon.accuracy }}</td>
|
||||||
|
{% endif %}
|
||||||
<td>{{ weapon.damage }}</td>
|
<td>{{ weapon.damage }}</td>
|
||||||
<td>{{ weapon.defense }}</td>
|
<td>{{ weapon.defense }}</td>
|
||||||
<td>{{ weapon.overwhelming }}</td>
|
<td>{{ weapon.overwhelming }}</td>
|
||||||
<td>{{ weapon.attunement }}</td>
|
<td>{{ weapon.attunement }}</td>
|
||||||
{% if weapon.rangeClose %}
|
|
||||||
<td>{{ weapon.rangeClose }}/{{ weapon.rangeShort }}/{{ weapon.rangeMedium }}/{{ weapon.rangeLong }}/{{ weapon.rangeExtreme }}</td>
|
|
||||||
{% else %}
|
|
||||||
<td></td>
|
|
||||||
{% endif %}
|
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr><td>No weapons found.</td></tr>
|
<tr><td>No weapons found.</td></tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</table>
|
</table>
|
||||||
<table class="w3-table" style="line-height:15px">
|
<br>
|
||||||
|
<table class="w3-table" style="line-height:11px">
|
||||||
<tr class="w3-border-bottom custom-border-grey">
|
<tr class="w3-border-bottom custom-border-grey">
|
||||||
<th><b>Armor</b></th>
|
<th><b>Armor</b></th>
|
||||||
<th>SOAK</th>
|
<th>SOAK</th>
|
||||||
@ -808,6 +820,34 @@
|
|||||||
<span class="w3-right">{{ object.joinBattle }}</span>
|
<span class="w3-right">{{ object.joinBattle }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="w3-display-container w3-margin-top">
|
||||||
|
<div class="w3-display-topmiddle">
|
||||||
|
<div class="w3-row">
|
||||||
|
{% for level,dot in object.healthDots %}
|
||||||
|
<div class="w3-cell">
|
||||||
|
<p style="margin:0">
|
||||||
|
{% if dot %}
|
||||||
|
 
|
||||||
|
<i class="fas fa-circle"></i>
|
||||||
|
 
|
||||||
|
{% else %}
|
||||||
|
 
|
||||||
|
<i class="far fa-circle"></i>
|
||||||
|
 
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; text-align:center;">
|
||||||
|
 
|
||||||
|
{{ level }}
|
||||||
|
 
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
@ -816,30 +856,14 @@
|
|||||||
<p style="margin:3px" class="fancy w3-center w3-xlarge">
|
<p style="margin:3px" class="fancy w3-center w3-xlarge">
|
||||||
<span class="w3-center"><b>Intimacies</b></span>
|
<span class="w3-center"><b>Intimacies</b></span>
|
||||||
</p>
|
</p>
|
||||||
<table class="w3-table" style="line-height:15px">
|
<table class="w3-table" style="line-height:11px">
|
||||||
<tr class="w3-border-bottom custom-border-grey">
|
<tr class="w3-border-bottom custom-border-grey">
|
||||||
<th>Principal</th>
|
<th>Intimacy</th>
|
||||||
<th>Intensity</th>
|
|
||||||
</tr>
|
|
||||||
{% if object.intimacyPrincipal_set.all %}
|
|
||||||
{% for tie in object.intimacyPrincipal_set.all %}
|
|
||||||
<tr class="custom-hover-grey custom-hover-text-orange">
|
|
||||||
<td>{{ tie.description }}</td>
|
|
||||||
<td>{{ tie.intensity }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
{% else %}
|
|
||||||
<tr><td>No principals found.</td></tr>
|
|
||||||
{% endif %}
|
|
||||||
</table>
|
|
||||||
<table class="w3-table" style="line-height:15px">
|
|
||||||
<tr class="w3-border-bottom custom-border-grey">
|
|
||||||
<th>Tie</th>
|
|
||||||
<th>Target</th>
|
<th>Target</th>
|
||||||
<th>Intensity</th>
|
<th>Intensity</th>
|
||||||
</tr>
|
</tr>
|
||||||
{% if object.intimacyTie_set.all %}
|
{% if object.intimacy_set.all %}
|
||||||
{% for tie in object.intimacyTie_set.all %}
|
{% for tie in object.intimacy_set.all %}
|
||||||
<tr class="custom-hover-grey custom-hover-text-orange">
|
<tr class="custom-hover-grey custom-hover-text-orange">
|
||||||
<td>{{ tie.description }}</td>
|
<td>{{ tie.description }}</td>
|
||||||
<td>{{ tie.target }}</td>
|
<td>{{ tie.target }}</td>
|
||||||
@ -847,7 +871,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr><td>No ties found.</td></tr>
|
<tr><td>No intimacies found.</td></tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@ -858,13 +882,112 @@
|
|||||||
<p style="margin:3px" class="fancy w3-center w3-xlarge">
|
<p style="margin:3px" class="fancy w3-center w3-xlarge">
|
||||||
<span class="w3-center"><b>Charms</b></span>
|
<span class="w3-center"><b>Charms</b></span>
|
||||||
</p>
|
</p>
|
||||||
|
<table class="w3-table" style="line-height:11px">
|
||||||
|
<tr class="w3-border-bottom custom-border-grey">
|
||||||
|
<th>Charm</th>
|
||||||
|
<th>Type</th>
|
||||||
|
<th>Duration</th>
|
||||||
|
<th>Keywords</th>
|
||||||
|
<th>Description</th>
|
||||||
|
</tr>
|
||||||
|
{% if object.charmSet %}
|
||||||
|
{% for charm in object.charmSet %}
|
||||||
|
<tr class="custom-hover-grey custom-hover-text-orange">
|
||||||
|
<td>{{ charm.name }}</td>
|
||||||
|
<td>{{ charm.charmType }}</td>
|
||||||
|
<td>{{ charm.duration }}</td>
|
||||||
|
<td>{{ charm.keywords }}</td>
|
||||||
|
<td>{{ charm.description }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
<tr><td>No charms found.</td><tr>
|
||||||
|
{% endif %}
|
||||||
|
</table>
|
||||||
|
{% if object.lunarShapeSet %}
|
||||||
|
<br>
|
||||||
|
<table class="w3-table" style="line-height:11px">
|
||||||
|
<tr class="w3-border-bottom custom-border-grey">
|
||||||
|
<th>Shape</th>
|
||||||
|
<th>Type</th>
|
||||||
|
<th>Size</th>
|
||||||
|
<th>Description</th>
|
||||||
|
</tr>
|
||||||
|
{% for charm in object.lunarShapeSet %}
|
||||||
|
<tr class="custom-hover-grey custom-hover-text-orange">
|
||||||
|
<td>{{ charm.name }}</td>
|
||||||
|
<td>{{ charm.shapeType }}</td>
|
||||||
|
<td>{{ charm.size }}</td>
|
||||||
|
<td>{{ charm.description }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
|
{% if object.evocationSet %}
|
||||||
|
<br>
|
||||||
|
<table class="w3-table" style="line-height:11px">
|
||||||
|
<tr class="w3-border-bottom custom-border-grey">
|
||||||
|
<th>Evocation</th>
|
||||||
|
<th>Type</th>
|
||||||
|
<th>Duration</th>
|
||||||
|
<th>Keywords</th>
|
||||||
|
<th>Description</th>
|
||||||
|
</tr>
|
||||||
|
{% for charm in object.evocationSet %}
|
||||||
|
<tr class="custom-hover-grey custom-hover-text-orange">
|
||||||
|
<td>{{ charm.name }}</td>
|
||||||
|
<td>{{ charm.charmType }}</td>
|
||||||
|
<td>{{ charm.duration }}</td>
|
||||||
|
<td>{{ charm.keywords }}</td>
|
||||||
|
<td>{{ charm.description }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
|
{% if object.martialArtSet %}
|
||||||
|
<br>
|
||||||
|
<table class="w3-table" style="line-height:11px">
|
||||||
|
<tr class="w3-border-bottom custom-border-grey">
|
||||||
|
<th>Charm</th>
|
||||||
|
<th>Type</th>
|
||||||
|
<th>Duration</th>
|
||||||
|
<th>Keywords</th>
|
||||||
|
<th>Description</th>
|
||||||
|
</tr>
|
||||||
|
{% for charm in object.martialArtSet %}
|
||||||
|
<tr class="custom-hover-grey custom-hover-text-orange">
|
||||||
|
<td>{{ charm.name }}</td>
|
||||||
|
<td>{{ charm.charmType }}</td>
|
||||||
|
<td>{{ charm.duration }}</td>
|
||||||
|
<td>{{ charm.keywords }}</td>
|
||||||
|
<td>{{ charm.description }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block items %}
|
{% block items %}
|
||||||
<div class="w3-large w3-margin-bottom w3-margin-top">
|
<div class="w3-large w3-margin-bottom w3-margin-top">
|
||||||
<p style="margin:3px" class="fancy w3-center w3-xlarge">
|
<p style="margin:3px" class="fancy w3-center w3-xlarge">
|
||||||
<span class="w3-center"><b>Items</b></span>
|
<span class="w3-center"><b>Inventory</b></span>
|
||||||
</p>
|
</p>
|
||||||
|
<table class="w3-table" style="line-height:11px">
|
||||||
|
<tr class="w3-border-bottom custom-border-grey">
|
||||||
|
<th>Item</th>
|
||||||
|
<th>Description</th>
|
||||||
|
</tr>
|
||||||
|
{% if object.itemSet %}
|
||||||
|
{% for item in object.itemSet %}
|
||||||
|
<tr class="custom-hover-grey custom-hover-text-orange">
|
||||||
|
<td>{{ item.name }}</td>
|
||||||
|
<td>{{ item.description }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
<tr><td>No items found.</td><tr>
|
||||||
|
{% endif %}
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
Loading…
Reference in New Issue
Block a user