def _moved(self, move): self._must_recharge = False self._preparing = False id_ = Move.retrieve_id(move) if Move.should_be_stored(id_): if id_ not in self._moves: self._moves[id_] = Move(id_) self.moves[id_].use()
def _add_move(self, move_id: str, use: bool = False) -> None: """Store the move if applicable.""" id_ = Move.retrieve_id(move_id) if Move.should_be_stored(id_): move = Move(id_) if move.id not in self._moves: if len(self._moves) >= 4: self._moves = {} self._moves[id_] = Move(id_) if use: self.moves[id_].use()
def _add_move(self, move_id: str, use: bool = False) -> None: """Store the move if applicable.""" id_ = Move.retrieve_id(move_id) if not Move.should_be_stored(id_): return if id_ not in self._moves: move = Move(move_id=id_) self._moves[id_] = move if use: self._moves[id_].use()
def _update_from_request(self, request_pokemon: Dict[str, Any]) -> None: self._ability = request_pokemon["ability"] self._active = request_pokemon["active"] self._base_ability = request_pokemon["baseAbility"] condition = request_pokemon["condition"] if condition == "0 fnt": self._current_hp = 0 self.status = Status.FNT else: if " " in condition: hps, status = condition.split(" ") self.status = status else: hps = condition self.status = None self._current_hp, self._max_hp = hps.split("/") self._current_hp = int(self._current_hp) self._max_hp = int(self._max_hp) self._item = request_pokemon["item"] details = request_pokemon["details"] if ", shiny" in details: self._shiny = True details = details.replace(", shiny", "") else: self._shiny = False details = details.split(", ") gender = PokemonGender.NEUTRAL level = 100 if len(details) == 3: species, level, gender = details elif len(details) == 2: if details[1].startswith("L"): species, level = details else: species, gender = details else: species = details[0] if not isinstance(gender, PokemonGender): gender = PokemonGender.from_request_details(gender) if not isinstance(level, int): level = int(level[1:]) if species != self._species: self._update_from_pokedex(species) self._gender = gender self._level = int(level) for move in request_pokemon["moves"]: move_id = Move.retrieve_id(move) if move_id not in self._moves: self._moves[move_id] = Move(move_id=move_id) ident = request_pokemon["ident"].split(": ") if len(ident) == 2: self._species = ident[1] elif len(ident) == 3: self._species = ": ".join(ident[1:]) else: raise NotImplementedError("Unmanaged pokemon ident: %s" % ident) self._pokeball = request_pokemon["pokeball"] self._stats = request_pokemon["stats"]