Beispiel #1
0
    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)
Beispiel #2
0
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])
Beispiel #4
0
    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()
Beispiel #6
0
    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()