amyodov

Dynortice - Searport models

Jul 4th, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.39 KB | None | 0 0
  1. class Building(models.Model):
  2.   # id = models.AutoField(primary_key=True)  # auto-generated actually, not needed
  3.   name = models.CharField(max_length=100)
  4.  
  5.  
  6. class BuildingLevel(models.Model):
  7.   building = models.ForeignKey(Building)
  8.   req_level = models.IntegerField(validators=[MinValueValidator(1)])
  9.  
  10.   townhall_level = models.IntegerField(validators=[MinValueValidator(1)])
  11.  
  12.   gem_price = models.IntegerField(validators=[MinValueValidator(1)])
  13.   gem_upgrade_time = models.DurationField()
  14.   upgrade_time = models.DurationField()
  15.   xp = models.IntegerField(validators=[MinValueValidator(1)])
  16.  
  17.   class Meta:
  18.     unique_together = [['building', 'req_level']]
  19.  
  20.  
  21. class BuildingLevelUpgradeReq(models.Model):
  22.   """
  23.  Stores single requirements like "To upgrade a House to level 5, you need 1500 Stone".
  24.  Multiple requirements ("To upgrade a House to level 5, you need 1500 Stone and 250 Iron") stored in multiple records.
  25.  """
  26.   building_level = models.ForeignKey(BuildingLevel)
  27.   material = models.ForeignKey(Material)
  28.  
  29.   amount =  models.IntegerField(validators=[MinValueValidator(1)])
  30.  
  31.   class Meta:
  32.     unique_together = [['building_level', 'amount']]
  33.  
  34.  
  35. # Building level, per-building-specific
  36.  
  37.  
  38. class HouseLevel(BuildingLevel):
  39.   sailors_regen = models.IntegerField(validators=[MinValueValidator(1)])
  40.   sailors_cap = models.IntegerField(validators=[MinValueValidator(1)])
Add Comment
Please, Sign In to add comment