def chargenerate(self, race, clas, feats, player):
     self.name = [web_namegen(5, 12, 2).replace('\n', ' '), player]
     self.level = [0, 1]
     self.raceclass = [race, clas]
     self.loot["gp"] = 0
     for i in range(0, 6):
         statroll = random.choice([random.randint(1, 4) \
             for j in range(0, 6)])
         self.stats[i] = statroll + \
             pq_classes[self.raceclass[1]]['stat'][i] + \
             pq_races[self.raceclass[0]]['stat'][i]
     self.feats = feats
     for i in feats:
         for j in pq_feats.keys():
             if i.lower() == 'improvedinitiative': 
                 self.combat['initiative'] += 2
             elif i.lower() == j.lower():
                 self.stats[pq_feats[j]] += 2
                 break
     self.hitpoints = [self.stats[3], self.stats[3]]
     self.skillpoints = [self.stats[5], self.stats[5]]
     self.gear['armor']['name'] = pq_gear['rarmor'][random.choice \
         (pq_gear['rarmor'].keys())]['0']
     self.gear['armor']['rating'] = 0
     self.gear['weapon']['name'] = pq_gear['rweapon'][random.choice \
         (pq_gear['rweapon'].keys())]['0']
     self.gear['weapon']['rating'] = 0
     self.gear['ring'] = ''
     self.combat['atk'] = [self.gear['weapon']['rating'], self.stats[0]]
     self.combat['dfn'] = [self.gear['armor']['rating'], self.stats[1]]
     self.skill = []
     self.skill.append(pq_classes[self.raceclass[1]]['skill'])
Example #2
0
 def chargenerate(self, race, clas, feats, player):
     self.name = [web_namegen(5, 12, 2).replace('\n', ' '), player]
     self.level = [0, 1]
     self.raceclass = [race, clas]
     self.loot["gp"] = 0
     for i in range(0, 6):
         statroll = random.choice([random.randint(1, 4) \
             for j in range(0, 6)])
         self.stats[i] = statroll + \
             pq_classes[self.raceclass[1]]['stat'][i] + \
             pq_races[self.raceclass[0]]['stat'][i]
     self.feats = feats
     for i in feats:
         for j in pq_feats.keys():
             if i.lower() == 'improvedinitiative':
                 self.combat['initiative'] += 2
             elif i.lower() == j.lower():
                 self.stats[pq_feats[j]] += 2
                 break
     self.hitpoints = [self.stats[3], self.stats[3]]
     self.skillpoints = [self.stats[5], self.stats[5]]
     self.gear['armor']['name'] = dict_return(pq_gear['rarmor'])
     # pq_gear['rarmor'][random.choice (pq_gear['rarmor'].keys())]['0']
     self.gear['armor']['rating'] = 0
     self.gear['weapon']['name'] = dict_return(pq_gear['rweapon'])
     # pq_gear['rweapon'][random.choice (pq_gear['rweapon'].keys())]['0']
     self.gear['weapon']['rating'] = 0
     self.gear['ring'] = ''
     self.combat['atk'] = [self.gear['weapon']['rating'], self.stats[0]]
     self.combat['dfn'] = [self.gear['armor']['rating'], self.stats[1]]
     self.skill = []
     self.skill.append(pq_classes[self.raceclass[1]]['skill'])
 def chargen(self, player):
     """
     Generate a new character using (possibly random) race, class, 
     and feat choices.
     """
     import json
     print textwrap.fill("It's time to generate a character! At any " \
         "of the prompts below, enter 'random' (no quotes) to use " \
         "a random choice.")
     self.name = [color.GREEN + web_namegen(5, 12, 2).replace('\n', ' ') \
         + color.END, player]
     self.level = [0, 1]
     with open('data/pq_classes.json') as f:
         pq_classes = json.load(f)
     with open('data/pq_races.json') as f:
         pq_races = json.load(f)
     print "Available races: " + ", ".join(sorted(pq_races.keys()))
     race = choose_from_list("Race> ", pq_races.keys(), rand=True, \
         character=self, allowed=['sheet', 'help'])
     print "Available classes: " + ", ".join(sorted(pq_classes.keys()))
     clas = choose_from_list("Class> ", pq_classes.keys(), rand=True, \
         character=self, allowed=['sheet', 'help'])
     nfeat = 2 if race.lower() == "human" else 1
     print "Available feats: " + ", ".join(sorted(pq_feats.keys()))
     feats = []
     for i in range(nfeat):
         feat = choose_from_list("Feat> ", pq_feats.keys(), rand=True, \
             character=self, allowed=['sheet', 'help'])
         feats.append(feat)
     self.raceclass = [race, clas]
     self.loot["gp"] = 0
     for i in range(0, 6):
         statroll = random.choice([random.randint(1, 4) \
             for j in range(0, 6)])
         self.stats[i] = statroll + \
             pq_classes[self.raceclass[1]]['stat'][i] + \
             pq_races[self.raceclass[0]]['stat'][i]
     self.feats = feats
     for i in feats:
         for j in pq_feats.keys():
             if i.lower() == 'improvedinitiative': 
                 self.combat['initiative'] += 2
             elif i.lower() == j.lower():
                 self.stats[pq_feats[j]] += 2
                 break
     self.hitpoints = [self.stats[3], self.stats[3]]
     self.skillpoints = [self.stats[5], self.stats[5]]
     self.gear['armor']['name'] = pq_gear['rarmor'][random.choice \
         (pq_gear['rarmor'].keys())]['0']
     self.gear['armor']['rating'] = 0
     self.gear['weapon']['name'] = pq_gear['rweapon'][random.choice \
         (pq_gear['rweapon'].keys())]['0']
     self.gear['weapon']['rating'] = 0
     self.gear['ring'] = ''
     self.combat['atk'] = [self.gear['weapon']['rating'], self.stats[0]]
     self.combat['dfn'] = [self.gear['armor']['rating'], self.stats[1]]
     self.skill = []
     self.skill.append(pq_classes[self.raceclass[1]]['skill'])
     self.tellchar()