Damage calculator

Gen 9 Damage Calculator

This module defines a gen9 damage calculator

poke_env.calc.damage_calc_gen9.calculate_atk_mods(attacker_identifier: str, defender_identifier: str, move: Move, battle: Battle | DoubleBattle)
poke_env.calc.damage_calc_gen9.calculate_attack(attacker_identifier: str, defender_identifier: str, move: Move, battle: Battle | DoubleBattle, is_critical: bool = False)
poke_env.calc.damage_calc_gen9.calculate_base_damage(attacker_identifier: str, defender_identifier: str, base_power: float, attack: float, defense: float, move: Move, move_type: PokemonType | None, move_target: Target, battle: Battle | DoubleBattle, is_critical: bool = False)
poke_env.calc.damage_calc_gen9.calculate_base_power(attacker_identifier: str, defender_identifier: str, move: Move, battle: Battle | DoubleBattle, has_ate_ability_type_change: bool)
poke_env.calc.damage_calc_gen9.calculate_base_power_mods(attacker_identifier: str, defender_identifier: str, move: Move, battle: Battle | DoubleBattle, base_power: float, has_ate_ability_type_change: bool, attacker_first: bool)
poke_env.calc.damage_calc_gen9.calculate_damage(attacker_identifier: str, defender_identifier: str, move: Move, battle: Battle | DoubleBattle, is_critical: bool = False)

Return the possible damage range for a move.

Parameters:
  • attacker_identifier (str) – Identifier of the attacking Pokémon.

  • defender_identifier (str) – Identifier of the defending Pokémon.

  • move (Move) – Move being used.

  • battle (Battle or DoubleBattle) – Current battle object containing both Pokémon.

  • is_critical (bool) – Whether to compute damage for a critical hit.

Returns:

Tuple of minimum and maximum damage rolls.

Return type:

Tuple[int, int]

Notes that several edge cases are ignored and behaviour may deviate from the official damage calculator.

poke_env.calc.damage_calc_gen9.calculate_def_mods(attacker_identifier: str, defender_identifier: str, battle: Battle | DoubleBattle, hits_physical: bool = False)
poke_env.calc.damage_calc_gen9.calculate_defense(attacker_identifier: str, defender_identifier: str, move: Move, battle: Battle | DoubleBattle, is_critical: bool = False)
poke_env.calc.damage_calc_gen9.calculate_final_mods(attacker_identifier: str, defender_identifier: str, move: Move, battle: Battle | DoubleBattle, type_effectiveness: float, flags: Dict[str, int], is_critical: bool = False, hit_count: int = 0)
poke_env.calc.damage_calc_gen9.chain_mods(mods: List[int], lb: int, ub: int)
poke_env.calc.damage_calc_gen9.get_berry_resist_type(berry: str) PokemonType | None
poke_env.calc.damage_calc_gen9.get_final_damage(base_amount: int, i: int, effectiveness: float, is_burned: bool, stab_mod: int, final_mod: int) float
poke_env.calc.damage_calc_gen9.get_item_boost_type(item: str) PokemonType | None
poke_env.calc.damage_calc_gen9.get_move_effectiveness(move: Move, move_type: PokemonType, type: PokemonType, is_ghost_revealed: bool | None = False, is_gravity: bool | None = False, is_ring_target: bool | None = False) float
poke_env.calc.damage_calc_gen9.get_stab_mod(pokemon: Pokemon, move: Move, move_type: PokemonType | None)
poke_env.calc.damage_calc_gen9.get_stellar_stab_mod(pokemon: Pokemon, move: Move, stab_mod=1)
poke_env.calc.damage_calc_gen9.poke_round(num: float)

Gen 1-2 Damage Calculator

This module defines a gen1-2 damage calculator

poke_env.calc.damage_calc_gen1_2.calculate_damage_gen12(attacker_identifier: str, defender_identifier: str, move: Move, battle: Battle | DoubleBattle, is_critical: bool = False)

Return the possible damage range for a move.

Parameters:
  • attacker_identifier (str) – Identifier of the attacking Pokémon.

  • defender_identifier (str) – Identifier of the defending Pokémon.

  • move (Move) – Move being used.

  • battle (Battle or DoubleBattle) – Current battle object containing both Pokémon.

  • is_critical (bool) – Whether to compute damage for a critical hit.

Returns:

Tuple of minimum, maximum, and complete list of damage rolls.

Return type:

Tuple[int, int, list]

poke_env.calc.damage_calc_gen1_2.get_item_boost_type(item: str) str | None
poke_env.calc.damage_calc_gen1_2.get_move_effectiveness(gen: int, move: Move, move_type: PokemonType, type: PokemonType, is_ghost_revealed: bool | None = False, is_gravity: bool | None = False, is_ring_target: bool | None = False) float
poke_env.calc.damage_calc_gen1_2.handleFixedDamageMoves(attacker: Pokemon, move: Move)