예제 #1
0
 def __init__(self, arg):
     if type(arg) is int:
         self.data = DataHolder.get("https://pokeapi.co/api/v2/move/%d/" %
                                    arg)
     elif type(arg) is str:
         self.data = DataHolder.get(arg)
     self.type = Type(self.data["type"]["url"])
     self.pp = self.data["pp"]
예제 #2
0
    def __init__(self, arg):
        """
            initializes the constructor

            :param arg: an url or an id
        """
        if type(arg) is int:
            self.data = DataHolder.get("https://pokeapi.co/api/v2/item/%d/" % arg)
        elif type(arg) is str:
            self.data = DataHolder.get(arg)

        for item in self.data["attributes"]:
            self.attributes.append(item["name"])
예제 #3
0
    def getDisplayName(self):
        """
            Returns the name of the pokemon according to language.

            return type: string.
        """
        speciesData = DataHolder.get(self.pokemonData["species"]["url"])
        for name in speciesData["names"]:
            if name["language"]["name"] == Env().loc:
                return name["name"]
예제 #4
0
    def __init__(self, url):
        """
            initializes the constructor

            :param data: an url of the specie
        """
        # self.pokemonData = DataHolder.get(url)
        # self.speciesData = DataHolder.get(url)
        # pknmUrl = next(var for var in self.speciesData["varieties"] if var["is_default"])[
        #    "pokemon"]["url"]
        self.pokemonData = DataHolder.get(url)
예제 #5
0
    def __init__(self):
        pokemonGen1Data = DataHolder.get(
            "https://pokeapi.co/api/v2/generation/1/")

        for spiece in pokemonGen1Data["pokemon_species"]:
            pokemon = PokemonInfo(spiece["url"])
            self.pokemons[str(pokemon.getPokedexId())] = {
                "discover": False,
                "caught": False,
                "pokemon": pokemon
            }
예제 #6
0
    def getDisplayAbilities(self):
        """
            returns A list of abilities this Pokémon could potentially have depending on the language of the System.

            return type : list.
        """
        for abilitie in self.pokemonData["abilities"]:
            self.abilitiesData.append(
                DataHolder.get(abilitie["ability"]["url"])["names"])

        for name in self.abilitiesData:
            for i in range(0, 10):
                if name[i]["language"]["name"] == Env().loc:
                    self.abilities.append(name[i]["name"])
        return self.abilities
예제 #7
0
    def __init__(self, arg):
        if type(arg) is int:
            self.pokemonData = DataHolder.get(
                "https://pokeapi.co/api/v2/pokemon/%d/" % arg)
            self.speciesData = DataHolder.get(
                "https://pokeapi.co/api/v2/pokemon-species/%d/" % arg)
        elif type(arg) is str:
            self.pokemonData = DataHolder.get(arg)
            self.speciesData = DataHolder.get(
                self.pokemonData["species"]["url"])

        self.level = GameCtx.getRandomPokemonLevel()
        self.captureRate = self.speciesData["capture_rate"]
        self.level = GameCtx.getRandomPokemonLevel()
        self.gender = Pokemon.NOSEX if self.speciesData[
            "gender_rate"] == -1 else Pokemon.FEMALE if random.randint(
                0, 8) < self.speciesData["gender_rate"] else Pokemon.MALE
        self.iv = GameCtx.genRadomIV()
        self.moves = []
        moveCursor = 0
        for move in self.pokemonData["moves"]:
            gen = next((g for g in move["version_group_details"]
                        if g["version_group"]["name"] == "red-blue"), False)
            if gen and gen["move_learn_method"]["name"] == "level-up" and gen[
                    "level_learned_at"] <= self.level:
                if len(self.moves) < 4:
                    self.moves.append(Move(move["move"]["url"]))
                else:
                    self.moves[moveCursor] = Move(move["move"]["url"])
                moveCursor = (moveCursor + 1) % 4

        self.levels = DataHolder.get(
            self.speciesData["growth_rate"]["url"])["levels"]
        self.experience = next(level for level in self.levels
                               if level["level"] == self.level)["experience"]
        self.type1 = Type(
            next(t for t in self.pokemonData["types"]
                 if t["slot"] == 1)["type"]["url"])
        type2 = next((t for t in self.pokemonData["types"] if t["slot"] == 2),
                     None)
        self.type2 = Type(type2["type"]["url"]) if type2 != None else None
        self.stats = {
            "speed":
            next(stat for stat in self.pokemonData["stats"]
                 if stat["stat"]["name"] == "speed"),
            "special-defense":
            next(stat for stat in self.pokemonData["stats"]
                 if stat["stat"]["name"] == "special-defense"),
            "special-attack":
            next(stat for stat in self.pokemonData["stats"]
                 if stat["stat"]["name"] == "special-attack"),
            "defense":
            next(stat for stat in self.pokemonData["stats"]
                 if stat["stat"]["name"] == "defense"),
            "attack":
            next(stat for stat in self.pokemonData["stats"]
                 if stat["stat"]["name"] == "attack"),
            "hp":
            next(stat for stat in self.pokemonData["stats"]
                 if stat["stat"]["name"] == "hp")
        }
        self.fightStats = {
            "speed": 6,
            "special-defense": 6,
            "special-attack": 6,
            "defense": 6,
            "attack": 6,
            "accuracy": 6,
            "dodge": 6
        }
        self.updateStats()
        self.hp = self.maxHp
예제 #8
0
 def __init__(self, arg):
     if type(arg) is int:
         self.data = DataHolder.get(
             "https://pokeapi.co/api/v2/type/%d/" % id)
     elif type(arg) is str:
         self.data = DataHolder.get(arg)