Advertisement
Guest User

Untitled

a guest
Nov 20th, 2014
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.57 KB | None | 0 0
  1.        
  2.        
  3. class Item(models.Model):
  4.     """ Data every item has. No matter the shape or size """
  5.    
  6.     name = models.CharField(max_length=63, unique=True)
  7.     description = models.TextField()
  8.     volume = models.FloatField()
  9.    
  10.     #class Meta:
  11.         #abstract = True
  12.  
  13.     def __unicode__(self):
  14.         return self.name
  15.        
  16.  
  17.  
  18. class Equipment(Item):
  19.     """ Items a hero can equip """
  20.    
  21.     HAND = "hand"
  22.     CHEST = "chest"
  23.     TRINKET = "trinket"
  24.     TRANSPORT = "transport"
  25.     CATEGORIES = (
  26.         (HAND, "Hand"),
  27.         (CHEST, "Chest"),
  28.         (TRINKET, "Trinket"),
  29.         (TRANSPORT, "Transport"),
  30.     )
  31.    
  32.    
  33.     category = models.CharField(max_length=15, choices=CATEGORIES)
  34.    
  35.     hitpoints = models.IntegerField(default=0)
  36.     critical = models.IntegerField(default=0)
  37.     power = models.IntegerField(default=0)
  38.     defense = models.IntegerField(default=0)
  39.     block = models.IntegerField(default=0)
  40.     hit_chance = models.IntegerField(default=0)
  41.  
  42.     #Trading/Transport Stats
  43.     speed = models.IntegerField(default=0)
  44.     cargo = models.IntegerField(default=0)
  45.     reputation = models.IntegerField(default=0)
  46.     trade_orders = models.IntegerField(default=0)
  47.     tax_reduction = models.IntegerField(default=0)
  48.     contracts = models.IntegerField(default=0)
  49.  
  50.     #Craftin/Gathering
  51.     crafting = models.IntegerField(default=0)
  52.     efficiency = models.IntegerField(default=0)
  53.     stamina = models.IntegerField(default=0)
  54.     gathering = models.IntegerField(default=0)
  55.     endurance = models.IntegerField(default=0)
  56.     luck = models.IntegerField(default=0)
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. class Resource(Item):
  64.     """ Basic (gatherable) items """
  65.    
  66.     TIER_1 = 1
  67.     TIER_2 = 2
  68.     TIER_3 = 3
  69.     TIER_4 = 4
  70.     TIERS = (
  71.         (TIER_1, "Tier 1"),
  72.         (TIER_2, "Tier 2"),
  73.         (TIER_3, "Tier 3"),
  74.         (TIER_4, "Tier 4"),
  75.     )
  76.    
  77.     METAL = "metal"
  78.     STONE = "stone"
  79.     WOOD = "wood"
  80.     ANIMAL = "animal"
  81.     FOOD = "food"
  82.     CATEGORIES = (
  83.         (METAL, "Metal"),
  84.         (STONE, "Stone"),
  85.         (WOOD, "Wood"),
  86.         (ANIMAL, "Animal"),
  87.         (FOOD, "Food"),
  88.     )
  89.    
  90.     category = models.CharField(max_length=15, choices=CATEGORIES)
  91.     tier = models.IntegerField(choices=TIERS)
  92.     location = models.CharField(max_length=31, unique=True)
  93.     heroes_min = models.IntegerField()
  94.     heroes_max = models.IntegerField()
  95.     gather_speed = models.FloatField()                              #base speed of gathering this resource per hour
  96.     stamina_cost = models.FloatField()                              #hunger costs per hour of gathering
  97.    
  98.    
  99.     def __unicode__(self):
  100.         return "%s(%s)" % (self.location, self.resource.name)
  101.  
  102.    
  103.     #get random amount of heroes on 1 resource
  104.     #TODO: maybe add ways to increase
  105.     def random_heroes_on_resource(self):
  106.         amount = random.randint(self.heroes_min, self.heroes_max)
  107.         return amount
  108.  
  109.  
  110.  
  111. class HeroInventory(models.Model):
  112.     """ hero inventory space. has a max volume  """
  113.    
  114.     hero = models.OneToOneField("heroes.Hero")
  115.     volume_current = models.FloatField()
  116.    
  117.     def __unicode__(self):
  118.         return "Hero Inventory"
  119.        
  120.    
  121.  
  122.  
  123. class HeroInventoryItem(models.Model):
  124.     """ items in a heroes inventory """
  125.    
  126.     heroinventory = models.ForeignKey("heroes.Hero")
  127.     item = models.OneToOneField("elements.Item")
  128.     amount = models.IntegerField()
  129.    
  130.     def __unicode__(self):
  131.         return "%s. Item: %s" % (self.heroinventory.hero.name, self.item.name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement