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(charmLunarShape)
|
||||
admin.site.register(charmEvocation)
|
||||
admin.site.register(charmMartialArt)
|
||||
|
||||
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
|
||||
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')),
|
||||
('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, 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')),
|
||||
],
|
||||
options={
|
||||
@ -144,6 +145,7 @@ class Migration(migrations.Migration):
|
||||
('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')),
|
||||
('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')),
|
||||
('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')),
|
||||
@ -375,6 +377,18 @@ class Migration(migrations.Migration):
|
||||
},
|
||||
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(
|
||||
name='charmLunar',
|
||||
fields=[
|
||||
@ -517,24 +531,11 @@ class Migration(migrations.Migration):
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ownershipIntimacyTie',
|
||||
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='ownershipIntimacyTie_set', to='app.characterBase', verbose_name='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')),
|
||||
],
|
||||
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')),
|
||||
('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.charmSolar', verbose_name='Solar Charm')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
@ -547,33 +548,7 @@ class Migration(migrations.Migration):
|
||||
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='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')),
|
||||
],
|
||||
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')),
|
||||
('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,
|
||||
@ -586,7 +561,7 @@ class Migration(migrations.Migration):
|
||||
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='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={
|
||||
'abstract': False,
|
||||
@ -599,7 +574,7 @@ class Migration(migrations.Migration):
|
||||
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='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={
|
||||
'abstract': False,
|
||||
@ -608,15 +583,16 @@ class Migration(migrations.Migration):
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='charmEvocation',
|
||||
name='ownershipCharmEvocation',
|
||||
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')),
|
||||
('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.charmEvocation', verbose_name='Evocation')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'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"),
|
||||
("Occult", "Occult"),
|
||||
("Cutting", "Cutting"),
|
||||
("Poisonable", "Poisonable"),
|
||||
@ -218,6 +219,15 @@ CASTES_LUNAR = [
|
||||
("Castless", "Castless")
|
||||
]
|
||||
|
||||
SHAPE_SIZES = [
|
||||
("Normal", "Normal"),
|
||||
]
|
||||
|
||||
SHAPE_TYPES = [
|
||||
("Human", "Human"),
|
||||
("Animal", "Animal"),
|
||||
]
|
||||
|
||||
#==============================================================================#
|
||||
#------------------------------- 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"]
|
||||
def healthLevel(self):
|
||||
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 =============#
|
||||
def resolve(self, speciality=None, mod=0):
|
||||
@ -1035,7 +1050,7 @@ class characterExaltLunar(characterExaltBase):
|
||||
#========= SHAPESHIFTING ==========#
|
||||
spiritShape = models.CharField(verbose_name="Spirit Shape", max_length=100)
|
||||
# Reverse relation
|
||||
def shapeSet(self):
|
||||
def lunarShapeSet(self):
|
||||
output = []
|
||||
try:
|
||||
ownerships = self.ownershipCharmLunarShape_set.all()
|
||||
@ -1161,30 +1176,49 @@ class charmBase(effectBase):
|
||||
keywords = MultiChoiceField("Charm Keywords", CHARM_KEYWORDS)
|
||||
|
||||
class charmMartialArt(charmBase):
|
||||
def type(self):
|
||||
return "Martial Art"
|
||||
levelKey = NamedIntegerField("Martial Arts Level")
|
||||
key = None
|
||||
|
||||
class charmEvocation(charmBase):
|
||||
def type(self):
|
||||
return "Evocation"
|
||||
levelKey = 0
|
||||
key = NamedForeignKeyField("Artifact", itemBase)
|
||||
|
||||
class charmSolar(charmBase):
|
||||
def type(self):
|
||||
return "Solar"
|
||||
levelKey = NamedIntegerField("Ability Level")
|
||||
key = SingleChoiceField("Key Ability", ABILITIES)
|
||||
|
||||
class charmLunar(charmBase):
|
||||
def type(self):
|
||||
return "Lunar"
|
||||
levelKey = NamedIntegerField("Attribute Level")
|
||||
key = SingleChoiceField("Key Attribute", ATTRIBUTES)
|
||||
|
||||
class charmLunarShape(charmBase):
|
||||
levelKey = 0
|
||||
def type(self):
|
||||
return "Lunar Shape"
|
||||
key = None
|
||||
size = SingleChoiceField("Size", SHAPE_SIZES)
|
||||
shapeType = SingleChoiceField("Shape Type", SHAPE_TYPES)
|
||||
|
||||
#==============================================================================#
|
||||
#----------------------------------- MERITS -----------------------------------#
|
||||
#==============================================================================#
|
||||
class merit(effectBase):
|
||||
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 --------------------------------#
|
||||
@ -1200,7 +1234,7 @@ class intimacyBase(PolymorphicModel):
|
||||
|
||||
description = DescriptionField()
|
||||
intensity = SingleChoiceField("Intensity", INTENSITIES)
|
||||
character = NamedForeignKeyField("Character", characterBase)
|
||||
character = NamedForeignKeyField("Character", characterBase, related_name="intimacy_set")
|
||||
|
||||
class intimacyTie(intimacyBase):
|
||||
target = NamedCharField("Target")
|
||||
@ -1226,19 +1260,19 @@ class ownershipItemArmor(ownershipBase):
|
||||
owner = NamedForeignKeyField("Owner", characterBase, related_name="ownershipItemArmor_set")
|
||||
|
||||
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")
|
||||
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")
|
||||
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")
|
||||
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")
|
||||
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")
|
||||
|
||||
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!
|
||||
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
|
||||
|
@ -546,13 +546,12 @@
|
||||
</p>
|
||||
{% if 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 class="w3-right custom-hover-text-orange"><i class="fas fa-pen-square"></i></span>
|
||||
<p>
|
||||
</p>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<p style="margin:0">No specialities found.<p>
|
||||
<p style="margin:0">No specialities found.</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
@ -622,10 +621,22 @@
|
||||
</p>
|
||||
{% if 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 %}
|
||||
{% else %}
|
||||
<p style="margin:0">No merits found.<p>
|
||||
<p>No merits found.</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
@ -646,7 +657,9 @@
|
||||
{% endfor %}
|
||||
</span>
|
||||
</p>
|
||||
<p class="w3-center">
|
||||
{{ object.limitTrigger }}
|
||||
</p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@ -700,7 +713,7 @@
|
||||
<p style="margin:3px" class="fancy w3-center w3-xlarge">
|
||||
<span class="w3-center"><b>Weapons & Armor</b></span>
|
||||
</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">
|
||||
<th><b>Weapon</b></th>
|
||||
<th>ACC</th>
|
||||
@ -708,29 +721,28 @@
|
||||
<th>DEF</th>
|
||||
<th>OVW</th>
|
||||
<th>ATT</th>
|
||||
<th>Range/Parry</th>
|
||||
</tr>
|
||||
{% if object.itemWeaponSet %}
|
||||
{% for weapon in object.itemWeaponSet %}
|
||||
<tr class="custom-hover-grey custom-hover-text-orange">
|
||||
<td>{{ weapon.name }}</td>
|
||||
{% if weapon.rangeClose %}
|
||||
<td>{{ weapon.rangeClose }}/{{ weapon.rangeShort }}/{{ weapon.rangeMedium }}/{{ weapon.rangeLong }}/{{ weapon.rangeExtreme }}</td>
|
||||
{% else %}
|
||||
<td>{{ weapon.accuracy }}</td>
|
||||
{% endif %}
|
||||
<td>{{ weapon.damage }}</td>
|
||||
<td>{{ weapon.defense }}</td>
|
||||
<td>{{ weapon.overwhelming }}</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>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr><td>No weapons found.</td></tr>
|
||||
{% endif %}
|
||||
</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">
|
||||
<th><b>Armor</b></th>
|
||||
<th>SOAK</th>
|
||||
@ -808,6 +820,34 @@
|
||||
<span class="w3-right">{{ object.joinBattle }}</span>
|
||||
</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>
|
||||
{% endblock %}
|
||||
|
||||
@ -816,30 +856,14 @@
|
||||
<p style="margin:3px" class="fancy w3-center w3-xlarge">
|
||||
<span class="w3-center"><b>Intimacies</b></span>
|
||||
</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">
|
||||
<th>Principal</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>Intimacy</th>
|
||||
<th>Target</th>
|
||||
<th>Intensity</th>
|
||||
</tr>
|
||||
{% if object.intimacyTie_set.all %}
|
||||
{% for tie in object.intimacyTie_set.all %}
|
||||
{% if object.intimacy_set.all %}
|
||||
{% for tie in object.intimacy_set.all %}
|
||||
<tr class="custom-hover-grey custom-hover-text-orange">
|
||||
<td>{{ tie.description }}</td>
|
||||
<td>{{ tie.target }}</td>
|
||||
@ -847,7 +871,7 @@
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr><td>No ties found.</td></tr>
|
||||
<tr><td>No intimacies found.</td></tr>
|
||||
{% endif %}
|
||||
</table>
|
||||
</div>
|
||||
@ -858,13 +882,112 @@
|
||||
<p style="margin:3px" class="fancy w3-center w3-xlarge">
|
||||
<span class="w3-center"><b>Charms</b></span>
|
||||
</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>
|
||||
{% endblock %}
|
||||
|
||||
{% block items %}
|
||||
<div class="w3-large w3-margin-bottom w3-margin-top">
|
||||
<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>
|
||||
<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>
|
||||
{% endblock %}
|
||||
|
Loading…
Reference in New Issue
Block a user