Advertisement
Guest User

Hero templates

a guest
Oct 21st, 2014
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.38 KB | None | 0 0
  1. # generic hero functions
  2. class HeroController(models.Model):
  3.     """ holds generic hero functions like
  4.     - Randomize a new hero
  5.     - Convert one to a player or shop hero
  6.     - etc
  7.    """
  8.    
  9.     class Meta:
  10.         abstract =True
  11.    
  12.     def __unicode__(self):
  13.         return "Class Template"
  14.    
  15.    
  16.     #return a random StatsPerLevel object based on attribute
  17.     @staticmethod
  18.     def random_quality(attribute):
  19.         attribute = StatPerLevel.objects.filter(attribute=attribute).order_by("?")[0]
  20.         return attribute
  21.    
  22.    
  23.     #Generate a random hero template
  24.     #These will be used as buyable objects in a tavern. And will be the source of player actions
  25.     @staticmethod
  26.     def create_random_hero(hero_klass):
  27.         #get fieldnames and create empty object
  28.         new_hero = hero_klass.objects.create()
  29.         field_names = hero_klass._meta.get_all_field_names()
  30.         remove_fields = ['id', 'name', 'gender']                    #remove non needed fields (name/gender will be added in tavern
  31.         for field in remove_fields:
  32.             field_names.remove(field)
  33.        
  34.         #fill all fields with random attribute qualities
  35.         for field in field_names:
  36.             setattr(new_hero, field, new_hero.random_quality(field))
  37.        
  38.         return new_hero
  39.            
  40.  
  41. class WarriorTemplate(HeroController):
  42.     """ Warrior Hero Template. Here a Warrior is kept till a player buys it or the tavern refreshes """
  43.    
  44.     strength = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  45.     hitpoints = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  46.     critical = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  47.     power = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  48.     armor = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  49.     dodge = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  50.     hit_chance = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  51.    
  52.  
  53.  
  54. class TraderTemplate(HeroController):
  55.     """ Trader Hero Template. Here a Trader is kept till a player buys it or the tavern refreshes """
  56.    
  57.     charisma = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  58.     movement_speed = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  59.     cargo = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  60.     weight = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  61.     trade_orders = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  62.     tax_reduction = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  63.     contracts = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  64.  
  65.    
  66.  
  67.  
  68. class CrafterTemplate(HeroController):
  69.     """ Crafter Hero Template. Here a Crafter is kept till a player buys it or the tavern refreshes """
  70.    
  71.     wisdom = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  72.     crafting_speed = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  73.     efficiency = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  74.     multitasking = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  75.     gathering_speed = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  76.     endurance = models.ForeignKey(StatPerLevel, null=True, related_name="+")
  77.     luck = models.ForeignKey(StatPerLevel, null=True, related_name="+")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement