mtg-web/analyzer/models.py

48 lines
1.6 KiB
Python
Raw Normal View History

2010-07-01 19:37:43 +00:00
from django.db import models
2010-09-16 18:11:55 +00:00
from mtgweb.lib.mtg import mtg
2010-07-01 19:37:43 +00:00
# Create your models here.
2010-09-16 18:11:55 +00:00
class CardType(models.Model):
name = models.CharField(max_length=200, unique=True, db_index=True)
def __unicode__(self):
return self.name
2010-08-26 19:19:32 +00:00
class Attribute(models.Model):
name = models.CharField(max_length=200, unique=True, db_index=True)
def __unicode__(self):
return self.name
2010-09-16 18:11:55 +00:00
class Card(models.Model, mtg.Card):
2010-08-26 19:19:32 +00:00
name = models.CharField(max_length=200, unique=True)
2010-09-16 18:11:55 +00:00
type = models.ForeignKey(CardType)
2010-08-26 19:19:32 +00:00
attributes = models.ManyToManyField(Attribute)
cost = models.CharField(max_length=80)
converted_cost = models.IntegerField(default=0)
power = models.CharField(max_length=10)
toughness = models.CharField(max_length=10)
2010-09-21 19:46:28 +00:00
rarity = models.CharField(max_length=1)
2010-08-26 19:19:32 +00:00
text = models.TextField()
def __unicode__(self):
return self.name
class Deck(models.Model):
name = models.CharField(max_length=80)
cards = models.ManyToManyField(Card, through='Included')
def __unicode__(self):
return self.name
2010-09-22 01:37:00 +00:00
def colors(self):
mana = {}
symbols = 0
for card in self.cards.all():
cost = mtg.ManaCost(card.cost)
for color, count in cost.mana.mana.iteritems():
if not color in mana.keys():
mana[color] = 0
mana[color] += count
symbols += count
return mana
class Included(models.Model):
card = models.ForeignKey(Card)
deck = models.ForeignKey(Deck)
count = models.IntegerField(default=0)
def __unicode__(self):
return '{0}x {1}'.format(self.count, self.card)