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'])
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()