Ejemplo n.º 1
0
def display_crossover_sheet(request, slug=None):
    if request.is_ajax:
        chronicle = get_current_chronicle()
        if slug is None:
            slug = 'julius_von_blow'
        c = Creature.objects.get(rid=slug)

        if chronicle.acronym == 'BAV':
            scenario = "Bayerische Nächte"
            pre_title = 'Munich'
            post_title = "Oktoberfest, 2019"
        else:
            pre_title = 'World of Darkness'
            scenario = "NEW YORK CITY"
            post_title = "feat. Julius Von Blow"
        spe = c.get_specialities()
        shc = c.get_shortcuts()
        settings = {
            'version': 1.0,
            'labels': STATS_NAMES[c.creature],
            'pre_title': pre_title,
            'scenario': scenario,
            'post_title': post_title,
            'fontset': FONTSET,
            'specialities': spe,
            'shortcuts': shc
        }
        crossover_sheet_context = {
            'settings': json.dumps(settings, sort_keys=True, indent=4),
            'data': c.toJSON()
        }
        return JsonResponse(crossover_sheet_context)
Ejemplo n.º 2
0
def update_creature(sender, instance, **kwargs):
    if instance.name == '':
        chronicle = get_current_chronicle()
        instance.name = 'new ' + datetime.timestamp()
        instance.chronicle == chronicle.acronym
    instance.update_rid()
    if instance.need_fix:
        instance.fix()
Ejemplo n.º 3
0
def add_creature(request):
    if request.is_ajax:
        slug = request.POST['creature']
        chronicle = get_current_chronicle()
        item = Creature()
        item.name = " ".join(slug.split("-"))
        item.chronicle = chronicle.acronym
        item.creature = chronicle.main_creature
        item.source = 'zaffarelli'
        item.ghost = False
        item.need_fix = True
        item.save()
        context = {'answer': 'creature added'}
        return JsonResponse(context)
    else:
        return HttpResponse(status=204)
Ejemplo n.º 4
0
def build_gaia_wheel():
    chronicle = get_current_chronicle()
    creatures = Creature.objects.filter(chronicle=chronicle.acronym).exclude(
        mythic=True).exclude(ghost=True).order_by('-faction', 'display_pole')
    for creature in creatures:
        creature.need_fix = True
        creature.save()
    wyrm_list = []
    weaver_list = []
    wyld_list = []
    for c in creatures:
        creature_dict = {
            'name': c.name,
            'player': c.player,
            'creature': c.creature,
            'family': c.family,
            'group': c.group,
            'groupspec': c.groupspec,
            'display_gauge': c.display_gauge,
            'display_pole': c.display_pole,
            'freebies': c.freebies,
            'auspice': c.auspice,
            'breed': c.breed,
            'rank': c.rank,
            'rid': c.rid,
            'position': c.position,
            'status': c.status
        }
        if (c.faction == 'Camarilla') or (c.faction == 'Sabbat') or (
                c.faction == 'Independant') or (c.faction == 'Anarchs') or (
                    c.faction == 'Inconnu') or (c.faction == 'Pentex'):
            wyrm_list.append(creature_dict)
        elif (c.faction == 'Gaia'):
            wyld_list.append(creature_dict)
        else:
            weaver_list.append(creature_dict)
    d3js_data = {'weaver': weaver_list, 'wyrm': wyrm_list, 'wyld': wyld_list}
    all = json.dumps(d3js_data, indent=4, sort_keys=False)
    return all
Ejemplo n.º 5
0
def commons(request):
  chronicle = wod_reference.get_current_chronicle()
  context = { 'chronicle': chronicle.acronym,'chronicle_name':chronicle.name,'chronicle_logo': "collector/"+chronicle.image_logo}
  return context
Ejemplo n.º 6
0
from django.http import HttpResponse, Http404, JsonResponse
from django.shortcuts import render, get_object_or_404
from collector.models.creatures import Creature
from django.core.paginator import Paginator
from django.template.loader import get_template
from django.views.decorators.csrf import csrf_exempt
from collector.templatetags.wod_filters import as_bullets
from collector.utils.kindred_stuff import build_per_primogen, build_gaia_wheel
from collector.utils.wod_reference import get_current_chronicle
from collector.models.chronicles import Chronicle
from collector.utils.wod_reference import STATS_NAMES
import json
from collector.utils.wod_reference import FONTSET

chronicle = get_current_chronicle()


def prepare_index(request):
    chronicles = []
    players = []
    plist = Creature.objects.filter(chronicle=chronicle.acronym).exclude(
        player='')
    for p in plist:
        players.append({'name': p.name, 'rid': p.rid, 'player': p.player})
    print(players)
    for c in Chronicle.objects.all():
        chronicles.append({
            'name': c.name,
            'acronym': c.acronym,
            'active': c == chronicle
        })
Ejemplo n.º 7
0
def build_per_primogen(param=None):
    chronicle = get_current_chronicle()
    cainites = create_mythics()
    if param is None:
        kindreds = Creature.objects.filter(
            creature='kindred',
            ghost=False,
            mythic=False,
            chronicle=chronicle.acronym).order_by('family')
    else:
        kindreds = Creature.objects.filter(
            creature='kindred',
            faction=param,
            ghost=False,
            mythic=False,
            chronicle=chronicle.acronym).order_by('family')
    # Improvise empty sires
    for kindred in kindreds:
        gen = 13 - kindred.background3
        k = kindred.json_str()
        if kindred.sire == '':
            k['sire'] = f'temporary_{improvise_id()}_{gen-1}_{k["name"]}_{k["clan"]}'
        else:
            k['sire'] = kindred.sire
        cainites[f'{gen}'].append(k)

    # Try to fill empty lineages
    for gen in range(13, 0, -1):
        for k in cainites[f'{gen}']:
            if gen > 1:
                if k['sire'].startswith('temporary_'):
                    sire = None
                    for item in cainites[f'{gen-1}']:
                        if item.get('sire') == k['sire']:
                            sire = item
                    if sire is None:
                        words = k["sire"].split('_')
                        sire = blank_str(words[1], words[2], "TBD", words[4])
                        sire['children'].append(k)
                        k['sire'] = sire['name']
                        cainites[f'{gen-1}'].append(sire)
                else:
                    if k["sire"] == "TBD":
                        # We need here to find a matchingsire according to clan
                        found = None
                        for s in cainites[f'{gen-1}']:
                            if s["family"] == k["family"]:
                                k["sire"] = s["name"]
                                s["children"].append(k)
                                found = s
                                break
                        if found is None:
                            sire = blank_str(improvise_id(), gen - 1, "TBD",
                                             k['clan'])
                            sire['children'].append(k)
                            k['sire'] = sire['name']
                            cainites[f'{gen - 1}'].append(sire)
                    else:
                        sire = None
                        for item in cainites[f'{gen-1}']:
                            if item['name'] == k["sire"]:
                                sire = item
                                sire['children'].append(k)
                        if sire is None:
                            sire = blank_str(k['sire'], gen - 1, "TBD",
                                             k['clan'])
                            sire['children'].append(k)
                            k['sire'] = sire['name']
                            cainites[f'{gen - 1}'].append(sire)
    str = json.dumps(cainites['1'], indent=4, sort_keys=False)
    print(str)
    return str
Ejemplo n.º 8
0
 def test_creature_default_chronicle(self):
     chronicle = get_current_chronicle()
     c = BlankCreatureFactory.build()
     self.assertTrue(c.chronicle == chronicle.acronym)