Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # generic hero functions
- class HeroController(models.Model):
- """ holds generic hero functions like
- - Randomize a new hero
- - Convert one to a player or shop hero
- - etc
- """
- class Meta:
- abstract =True
- def __unicode__(self):
- return "Class Template"
- #return a random StatsPerLevel object based on attribute
- @staticmethod
- def random_quality(attribute):
- attribute = StatPerLevel.objects.filter(attribute=attribute).order_by("?")[0]
- return attribute
- #Generate a random hero template
- #These will be used as buyable objects in a tavern. And will be the source of player actions
- @staticmethod
- def create_random_hero(hero_klass):
- #get fieldnames and create empty object
- new_hero = hero_klass.objects.create()
- field_names = hero_klass._meta.get_all_field_names()
- remove_fields = ['id', 'name', 'gender'] #remove non needed fields (name/gender will be added in tavern
- for field in remove_fields:
- field_names.remove(field)
- #fill all fields with random attribute qualities
- for field in field_names:
- setattr(new_hero, field, new_hero.random_quality(field))
- return new_hero
- class WarriorTemplate(HeroController):
- """ Warrior Hero Template. Here a Warrior is kept till a player buys it or the tavern refreshes """
- strength = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- hitpoints = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- critical = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- power = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- armor = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- dodge = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- hit_chance = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- class TraderTemplate(HeroController):
- """ Trader Hero Template. Here a Trader is kept till a player buys it or the tavern refreshes """
- charisma = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- movement_speed = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- cargo = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- weight = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- trade_orders = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- tax_reduction = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- contracts = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- class CrafterTemplate(HeroController):
- """ Crafter Hero Template. Here a Crafter is kept till a player buys it or the tavern refreshes """
- wisdom = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- crafting_speed = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- efficiency = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- multitasking = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- gathering_speed = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- endurance = models.ForeignKey(StatPerLevel, null=True, related_name="+")
- luck = models.ForeignKey(StatPerLevel, null=True, related_name="+")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement