def setup(self, csv_row): self.name = csv_row[self.header.index("Name")] self.output_data["Type"] = util.ensure_string( csv_row[self.header.index("Type")]) self.output_data["Move Power"] = util.ensure_list( csv_row[self.header.index("Move Power")], "/") self.output_data["Move Time"] = util.ensure_string( csv_row[self.header.index("Move Time")]) pp = csv_row[self.header.index("PP")] if pp == "Unlimited": self.output_data["PP"] = pp else: self.output_data["PP"] = util.ensure_int(pp) self.output_data["Duration"] = util.ensure_string( csv_row[self.header.index("Duration")]) self.output_data["Range"] = util.ensure_string( csv_row[self.header.index("Range")]) self.output_data["Description"] = util.ensure_string( csv_row[self.header.index("Description")]) self.setup_extra(csv_row) self.setup_damage(csv_row) if self.name in util.MERGE_MOVE_DATA: util.merge(self.output_data, util.MERGE_MOVE_DATA[self.name]) util.clean_object(self.output_data["Move Power"]) if not self.output_data["Move Power"]: del self.output_data["Move Power"] remove_dice_in_description.remove_dice(self.output_data)
def __convert(_input, file_name, key): json_data = {} with open(_input, "r", encoding="utf-8") as fp: reader = csv.reader(fp, delimiter=",", quotechar='"') next(reader) for row in reader: if row: name = row[0] json_data[name] = {key: row[1].strip()} if file_name in MERGE_DATA and name in MERGE_DATA[file_name]: util.merge(json_data[name], MERGE_DATA[file_name][name]) with open(util.Paths.OUTPUT / (file_name + ".json"), "w", encoding="utf-8") as f: json.dump(json_data, f, indent=" ", ensure_ascii=False, sort_keys=True)
def add(self, csv_row, poke_data): species = poke_data.name self.output_data[species] = {} self.output_data[species]["into"] = [] self.output_data[species]["current_stage"] = util.ensure_int( csv_row[self.header.index("Evo Stages with Eviolite")]) self.output_data[species]["total_stages"] = util.ensure_int( csv_row[self.header.index("Evo Stages w/o Eviolite")]) evolve_text = csv_row[self.header.index("Evolution for sheet")] # Iterate all Pokemon names and see if they are in the description for _, poke in self.pokemon_by_name.items(): if poke.valid and not poke.name == species and " {} ".format( poke.name) in evolve_text: self.output_data[species]["into"].append(poke.name) match = self.RE_POINTS.search(evolve_text) if match: self.output_data[species]["points"] = int(match.group(1)) match = self.RE_LEVEL.search(evolve_text) if match: self.output_data[species]["level"] = int(match.group(1)) else: self.output_data[species]["level"] = 0 match = self.RE_MOVE.search(evolve_text) if match: self.output_data[species]["move"] = match.group(1) # else: # match = self.RE_HOLDING.search(evolve_text) # if match: # self.output_data[species]["holding"] = match.group(1) if self.output_data[species]["current_stage"] == 1 and self.output_data[ species]["total_stages"] == 1 and not self.output_data[ species]["level"]: del self.output_data[species] if species in self.output_data: if not self.output_data[species]["level"]: del self.output_data[species]["level"] if not self.output_data[species]["into"]: del self.output_data[species]["into"] if species in util.MERGE_EVOLVE_DATA: util.merge(self.output_data[species], util.MERGE_EVOLVE_DATA[species])
def add(self, csv_row): species = fix_species_name(csv_row[self.header.index(POKEMON)]) if species not in self.output_data: self.output_data[species] = {} self.output_data[species]["index"] = util.ensure_int( csv_row[self.header.index("Index Number")]) self.output_data[species]["Type"] = util.ensure_list( csv_row[self.header.index("Type")], "/") self.output_data[species]["SR"] = util.ensure_float( csv_row[self.header.index("SR")]) self.output_data[species]["MIN LVL FD"] = util.ensure_int( csv_row[self.header.index("MIN LVL FD")]) if species in util.MERGE_FILTER_DATA: util.merge(self.output_data[species], util.MERGE_FILTER_DATA[species])
def setup(self, csv_row): self.name = fix_species_name(csv_row[self.header.index(POKEMON)]) self.setup_abilities(csv_row) self.setup_attributes(csv_row) self.setup_basic_stats(csv_row) self.setup_moves(csv_row) self.setup_saving_throws(csv_row) self.setup_senses(csv_row) self.setup_skill(csv_row) self.setup_speed(csv_row) self.setup_type(csv_row) self.setup_size(csv_row) if self.name in util.MERGE_POKEMON_DATA: util.merge(self.output_data, util.MERGE_POKEMON_DATA[self.name]) self.cleanup()
def setup(self, csv_row): self.name = fix_species_name(csv_row[self.header.index(POKEMON)]) if "Average" in self.name or "Large" in self.name or "Supersize" in self.name: # This is to filter out Pokemon that have size variants self.valid = False return self.setup_abilities(csv_row) self.setup_attributes(csv_row) self.setup_basic_stats(csv_row) self.setup_moves(csv_row) self.setup_saving_throws(csv_row) self.setup_senses(csv_row) self.setup_skill(csv_row) self.setup_speed(csv_row) self.setup_type(csv_row) self.setup_size(csv_row) if self.name in util.MERGE_POKEMON_DATA: util.merge(self.output_data, util.MERGE_POKEMON_DATA[self.name]) self.cleanup()