In Pokelike, understanding the combat engine is the key to winning hard modes and scaling into high endless stages. This guide breaks down the exact math, ticks, and state triggers extracted directly from the game's source code.
⚔️ The Physical/Special Split
Unlike main series Pokémon games where moves are pre-classified as Physical or Special, Pokelike determines this dynamically per Pokémon based on its base stats:
[!IMPORTANT]
- Special Attacker Check: If a Pokémon's base
Specialstat is greater than or equal to (>=) its baseAtkstat, it is classified as a Special Attacker.
- All moves used by a Special Attacker automatically execute as special moves, calculations will use the attacker's
Specialstat (scaled by level) against the defender'sSp.Defstat. - Physical Attacker: If
Atk>Special, it is a Physical Attacker, attacking withAtkagainst the defender'sDefstat. - Gen 1 Fallback: For Kanto Mode teams where
Sp.Defis missing, the game falls back to the rawSpecialstat for defense.
📈 The Damage Equation
When an attack lands, the damage dealt is computed using the following equation:
Damage = overtimeMult * Math.floor(((2 * Lvl / 5 + 2) * Power * Atk / Def / 50 + 2) * STAB * TypeEff * Modifiers * Crit * Variance)Multipliers Breakdown
- STAB (Same Type Attack Bonus): If the type of the move matches one of the attacker's types, damage is multiplied by 1.5.
- Type Effectiveness (
TypeEff):- Super Effective: 2.0x (or 4.0x for double weaknesses).
- Not Very Effective: 0.5x (or 0.25x).
- Ineffective: 0.0x (deals 0 damage).
- Type-Boosting Items: If holding an item matching the move's type (e.g. Charcoal for Fire, Mystic Water for Water), damage is multiplied by 1.5.
- Held Item Modifiers:
- Life Orb: +30% damage (1.3x).
- Wide Lens: +20% damage (1.2x).
- Metronome: +20% damage (1.2x).
- Choice Specs (Special Attacker only): +30% damage (1.3x).
- Choice Band (Physical Attacker only): +40% damage (1.4x).
- Lagging Tail: Always moves last, but multiplies damage by 2.0 (2.0x).
- Expert Belt: Multiplies damage by 2.0 (2.0x) but only on super-effective hits.
- Defensive Modifiers:
- Red Card: Halves damage (0.5x) from incoming super-effective attacks.
- Battle Tower Steel Trait: Reduces incoming damage by 15% / 30% / 45% / 60% / 75% depending on synergy level.
- Critical Hits:
- Base critical hit rate is 6.25% (triggers 1.5x damage).
- Holding a Scope Lens increases the critical rate to 20%.
- Variance: A random multiplier between 0.85 and 1.0 is applied to prevent identical damage ticks.
- Overtime Multiplier (
overtimeMult): If a battle exceeds 100 rounds, Overtime is activated. The overtime multiplier immediately scales to 3.0x for all attacks.
☠️ Status Ailments
Two status conditions can be inflicted during combat, either through move side-effects or Battle Tower traits:
1. Poison
- Infliction: Poison-type moves or the Poison Tower trait.
- Effect: At the end of each round, the poisoned Pokémon loses 12.5% (1/8th) of its maximum HP.
- Fatality: Poison tick damage can faint a Pokémon.
2. Freeze
- Infliction: Ice-type moves or the Ice Tower trait.
- Effect: A frozen Pokémon skips its attack turn entirely.
- Thaw: At the end of each round, a frozen Pokémon has a 20% chance to thaw (recovers from freeze status).
🥊 Stalemate Struggle
To prevent infinite battles between Pokémon with no offensive moves (or where types are immune):
- Struggle Stats: 50 PWR, physical, typeless (ignores immunity and type effectiveness).
🎯 Move Selection & Type Prioritization Rules
Every Pokémon's active attack type is decided dynamically according to its species traits, hardcoded priority lists, and equipped items:
1. Default Type Priority (No Held Items)
- Single-Type Pokémon: Uses their only type (if a move pool exists for it).
- Dual-Type Pokémon: Automatically defaults to their Primary (First) Type.
- Normal-Type Bypass: If the Primary Type is Normal (e.g., Normal/Flying, Normal/Fairy), the engine automatically bypasses Normal and defaults to their Secondary (Second) Type (e.g., Flying, Fairy) to maximize offensive coverage.
- Species Exceptions:
- Rock Priority: Geodude (74), Graveler (75), Golem (76), and Onix (95) always force Rock as their default attack type, bypassing their first type defaults.
- Electric Priority: Chinchou (170) and Lanturn (171) always force Electric as their default attack type.
2. Metronome Type Swapping
Equipping a Metronome modifies move selection:
- For Dual-Type Pokémon, it forces the Pokémon to attack using its other type (e.g., a Steel/Ground Steelix will swap from Steel to Ground attacks).
- In addition to the type swap, it grants a flat +20% damage (1.2x) boost to all moves.
- Single-Type Pokémon do not swap types (since they have no other type), but still receive the flat +20% damage boost.
💿 The 18-Type Move Pool Database
Every Pokémon's move is determined dynamically based on its Type (prioritizing the first type that has a move pool, or its secondary type when holding a Metronome) and its Classification (Physical or Special). Moves scale through 3 tiers, which can be upgraded manually using TMs (Technical Machines):
| Element | Class | Tier 0 Move (PWR) | Tier 1 Move (PWR) | Tier 2 Move (PWR) |
|---|---|---|---|---|
| Normal | Physical | Tackle (40) | Body Slam (85) | Giga Impact (150) |
| Special | Swift (60) | Hyper Voice (90) | Boomburst (140) | |
| Fire | Physical | Ember (60) | Fire Punch (75) | Flare Blitz (120) |
| Special | Incinerate (60) | Flamethrower (90) | Fire Blast (110) | |
| Water | Physical | Water Gun (50) | Waterfall (80) | Aqua Tail (110) |
| Special | Bubble (50) | Surf (80) | Hydro Pump (110) | |
| Electric | Physical | Spark (40) | Thunder Punch (75) | Bolt Strike (130) |
| Special | Thunder Shock (40) | Thunderbolt (90) | Thunder (110) | |
| Grass | Physical | Vine Whip (40) | Razor Leaf (65) | Power Whip (120) |
| Special | Magical Leaf (40) | Energy Ball (90) | Solar Beam (120) | |
| Ice | Physical | Powder Snow (40) | Ice Punch (75) | Icicle Crash (110) |
| Special | Icy Wind (40) | Ice Beam (90) | Blizzard (110) | |
| Fighting | Physical | Karate Chop (50) | Cross Chop (100) | Close Combat (120) |
| Special | Force Palm (60) | Aura Sphere (80) | Focus Blast (120) | |
| Poison | Physical | Poison Sting (40) | Poison Jab (90) | Gunk Shot (130) |
| Special | Acid (40) | Sludge Bomb (100) | Acid Spray (120) | |
| Ground | Physical | Mud Shot (55) | Earthquake (100) | Precipice Blades (120) |
| Special | Bulldoze (60) | Earth Power (90) | Land's Wrath (110) | |
| Flying | Physical | Peck (50) | Aerial Ace (60) | Sky Attack (140) |
| Special | Gust (40) | Air Slash (75) | Hurricane (110) | |
| Psychic | Physical | Confusion (50) | Zen Headbutt (80) | Psycho Boost (140) |
| Special | Psybeam (65) | Psychic (90) | Psystrike (100) | |
| Bug | Physical | Bug Bite (60) | X-Scissor (80) | Megahorn (120) |
| Special | Struggle Bug (50) | Bug Buzz (90) | Pollen Puff (110) | |
| Rock | Physical | Rock Throw (50) | Rock Slide (75) | Stone Edge (100) |
| Special | Smack Down (50) | Power Gem (80) | Rock Wrecker (150) | |
| Ghost | Physical | Astonish (40) | Shadow Claw (70) | Phantom Force (90) |
| Special | Lick (40) | Shadow Ball (80) | Shadow Force (100) | |
| Dragon | Physical | Twister (40) | Dragon Claw (80) | Outrage (120) |
| Special | Dragon Breath (60) | Dragon Pulse (85) | Draco Meteor (130) | |
| Dark | Physical | Bite (40) | Crunch (80) | Knock Off (120) |
| Special | Snarl (40) | Dark Pulse (80) | Night Daze (110) | |
| Steel | Physical | Metal Claw (50) | Iron Tail (100) | Heavy Slam (130) |
| Special | Steel Wing (60) | Flash Cannon (90) | Doom Desire (140) | |
| Fairy | Physical | Fairy Wind (40) | Play Rough (90) | Spirit Break (130) |
| Special | Disarming Voice (40) | Dazzling Gleam (80) | Moonblast (130) |
[!NOTE] Exceptions: Magikarp (ID 129) is locked to the move Splash (0 PWR, Normal, Physical), and Abra (ID 63) is locked to Teleport (0 PWR, Normal, Special), regardless of their level or move tier.