/** Battle constants under their PRET names (constants/*.asm and * macros/scripts/battle_commands.asm). `npm run check:reference` compares * every entry with the pinned source, so a wrong value cannot ship. */ export const C = { // Move effects (constants/move_effect_constants.asm) EFFECT_NORMAL_HIT: 0, EFFECT_LEECH_HIT: 3, EFFECT_SELFDESTRUCT: 7, EFFECT_DREAM_EATER: 8, EFFECT_ALWAYS_HIT: 17, EFFECT_ATTACK_DOWN: 18, EFFECT_DEFENSE_DOWN: 19, EFFECT_EVASION_DOWN: 24, EFFECT_BIDE: 26, EFFECT_RAMPAGE: 27, EFFECT_MULTI_HIT: 29, EFFECT_CONVERSION: 30, EFFECT_TOXIC: 33, EFFECT_OHKO: 38, EFFECT_RAZOR_WIND: 39, EFFECT_SUPER_FANG: 40, EFFECT_STATIC_DAMAGE: 41, EFFECT_DOUBLE_HIT: 44, EFFECT_JUMP_KICK: 45, EFFECT_ATTACK_DOWN_2: 58, EFFECT_EVASION_DOWN_2: 64, EFFECT_ATTACK_DOWN_HIT: 68, EFFECT_ACCURACY_DOWN_HIT: 73, EFFECT_EVASION_DOWN_HIT: 74, EFFECT_SKY_ATTACK: 75, EFFECT_CONFUSE_HIT: 76, EFFECT_POISON_MULTI_HIT: 77, EFFECT_RAGE: 81, EFFECT_SPLASH: 85, EFFECT_SNORE: 92, EFFECT_PRIORITY_HIT: 103, EFFECT_TRIPLE_KICK: 104, EFFECT_PROTECT: 111, EFFECT_ENDURE: 116, EFFECT_ROLLOUT: 117, EFFECT_SWAGGER: 118, EFFECT_FURY_CUTTER: 119, EFFECT_SKULL_BASH: 145, EFFECT_FUTURE_SIGHT: 148, EFFECT_SOLARBEAM: 151, EFFECT_THUNDER: 152, EFFECT_BEAT_UP: 154, EFFECT_FLY: 155, EFFECT_SLEEP: 1, EFFECT_HEAL: 32, EFFECT_LIGHT_SCREEN: 35, EFFECT_MIST: 46, EFFECT_FOCUS_ENERGY: 47, EFFECT_CONFUSE: 49, EFFECT_TRANSFORM: 57, EFFECT_REFLECT: 65, EFFECT_SUBSTITUTE: 79, EFFECT_LEECH_SEED: 84, EFFECT_DISABLE: 86, EFFECT_LEVEL_DAMAGE: 87, EFFECT_PSYWAVE: 88, EFFECT_ENCORE: 90, EFFECT_SLEEP_TALK: 97, EFFECT_MEAN_LOOK: 106, EFFECT_NIGHTMARE: 107, EFFECT_SPIKES: 112, EFFECT_FORESIGHT: 113, EFFECT_PERISH_SONG: 114, EFFECT_SANDSTORM: 115, EFFECT_ATTRACT: 120, EFFECT_SAFEGUARD: 124, EFFECT_RAIN_DANCE: 136, EFFECT_SUNNY_DAY: 137, EFFECT_TELEPORT: 153, EFFECT_MORNING_SUN: 132, EFFECT_SYNTHESIS: 133, EFFECT_MOONLIGHT: 134, EFFECT_POISON: 66, EFFECT_PARALYZE: 67, EFFECT_ATTACK_UP: 10, EFFECT_EVASION_UP: 16, EFFECT_ATTACK_UP_2: 50, EFFECT_EVASION_UP_2: 56, EFFECT_PURSUIT: 128, EFFECT_HYPER_BEAM: 80, EFFECT_TRAP_TARGET: 42, EFFECT_LOCK_ON: 94, EFFECT_COUNTER: 89, EFFECT_REVERSAL: 99, EFFECT_FALSE_SWIPE: 101, EFFECT_HIDDEN_POWER: 135, EFFECT_FAKE_OUT: 141, EFFECT_MIRROR_COAT: 144, // Moves (constants/move_constants.asm) RAZOR_WIND: 13, GUST: 16, BIND: 20, WRAP: 35, SOLARBEAM: 76, FIRE_SPIN: 83, BIDE: 117, CLAMP: 128, SKULL_BASH: 130, SKY_ATTACK: 143, WHIRLPOOL: 250, ROAR: 46, TRANSFORM: 144, MIRROR_MOVE: 119, REST: 156, ENCORE: 227, FUTURE_SIGHT: 248, WHIRLWIND: 18, FLY: 19, THUNDER: 87, EARTHQUAKE: 89, FISSURE: 90, DIG: 91, MIMIC: 102, MINIMIZE: 107, SUBSTITUTE: 164, STRUGGLE: 165, FLAME_WHEEL: 172, SNORE: 173, SLEEP_TALK: 214, SACRED_FIRE: 221, MAGNITUDE: 222, VITAL_THROW: 233, TWISTER: 239, // Types (constants/type_constants.asm) NORMAL: 0, FLYING: 2, POISON: 3, ROCK: 5, GROUND: 4, STEEL: 9, BIRD: 6, GHOST: 8, GRASS: 22, UNUSED_TYPES: 10, UNUSED_TYPES_END: 20, TYPES_END: 28, CURSE_TYPE: 19, FIRE: 20, SPECIAL: 20, ICE: 25, // Species and items PIKACHU: 25, FARFETCH_D: 83, CUBONE: 104, MAROWAK: 105, CHANSEY: 113, MAGIKARP: 129, DITTO: 132, UNOWN: 201, NO_ITEM: 0, MASTER_BALL: 1, ULTRA_BALL: 2, GREAT_BALL: 4, POKE_BALL: 5, LUCKY_PUNCH: 30, METAL_POWDER: 35, BERSERK_GENE: 0x98, STICK: 105, THICK_CLUB: 118, EXP_SHARE: 57, CLEANSE_TAG: 94, LUCKY_EGG: 126, LIGHT_BALL: 163, // Held item effects (constants/item_data_constants.asm) HELD_BERRY: 1, HELD_LEFTOVERS: 3, HELD_RESTORE_PP: 6, HELD_HEAL_POISON: 10, HELD_HEAL_PARALYZE: 14, HELD_HEAL_STATUS: 15, HELD_HEAL_CONFUSION: 16, HELD_PREVENT_POISON: 20, HELD_PREVENT_BURN: 21, HELD_PREVENT_FREEZE: 22, HELD_PREVENT_SLEEP: 23, HELD_PREVENT_PARALYZE: 24, HELD_PREVENT_CONFUSE: 25, HELD_CATCH_CHANCE: 70, HELD_ESCAPE: 72, HELD_CRITICAL_UP: 73, HELD_QUICK_CLAW: 74, HELD_FLINCH: 75, HELD_ATTACK_UP: 31, HELD_EVASION_UP: 37, HELD_BRIGHTPOWDER: 77, HELD_FOCUS_BAND: 79, // Stats and levels ATTACK: 0, DEFENSE: 1, SPEED: 2, SP_ATTACK: 3, SP_DEFENSE: 4, ACCURACY: 5, EVASION: 6, ABILITY: 7, REST_SLEEP_TURNS: 2, BASE_STAT_LEVEL: 7, MAX_STAT_LEVEL: 13, MAX_LEVEL: 100, PP_MASK: 63, NUM_MOVES: 4, BASE_HAPPINESS: 70, START_MONEY: 3000, MAX_MONEY: 999999, MAX_COINS: 9999, // Status bits and masks SLP_MASK: 7, PSN: 3, BRN: 4, FRZ: 5, PAR: 6, // Substatus bits, by byte: 1 (Nightmare..In Love), 2 (Curled), // 3 (Bide..Confused), 4 (X Accuracy..Leech Seed), 5 (Toxic..Can't Run) SUBSTATUS_NIGHTMARE: 0, SUBSTATUS_CURSE: 1, SUBSTATUS_PROTECT: 2, SUBSTATUS_IDENTIFIED: 3, SUBSTATUS_PERISH: 4, SUBSTATUS_ENDURE: 5, SUBSTATUS_ROLLOUT: 6, SUBSTATUS_IN_LOVE: 7, SUBSTATUS_CURLED: 0, SUBSTATUS_BIDE: 0, SUBSTATUS_RAMPAGE: 1, SUBSTATUS_IN_LOOP: 2, SUBSTATUS_FLINCHED: 3, SUBSTATUS_CHARGED: 4, SUBSTATUS_UNDERGROUND: 5, SUBSTATUS_FLYING: 6, SUBSTATUS_CONFUSED: 7, SUBSTATUS_X_ACCURACY: 0, SUBSTATUS_MIST: 1, SUBSTATUS_FOCUS_ENERGY: 2, SUBSTATUS_SUBSTITUTE: 4, SUBSTATUS_RECHARGE: 5, SUBSTATUS_RAGE: 6, SUBSTATUS_LEECH_SEED: 7, SUBSTATUS_TOXIC: 0, SUBSTATUS_TRANSFORMED: 3, SUBSTATUS_ENCORED: 4, SUBSTATUS_LOCK_ON: 5, SUBSTATUS_DESTINY_BOND: 6, SUBSTATUS_CANT_RUN: 7, // Screens, weather and effectiveness SCREENS_SPIKES: 0, SCREENS_SAFEGUARD: 2, SCREENS_LIGHT_SCREEN: 3, SCREENS_REFLECT: 4, SCREENS_UNUSED: 5, WEATHER_SANDSTORM: 3, WEATHER_NONE: 0, WEATHER_RAIN: 1, WEATHER_SUN: 2, NO_EFFECT: 0, NOT_VERY_EFFECTIVE: 5, EFFECTIVE: 10, SUPER_EFFECTIVE: 20, STAB_DAMAGE: 128, EFFECTIVENESS_MASK: 127, BASE_PRIORITY: 1, // Battle modes, types and results BATTLEPLAYERACTION_USEITEM: 1, BATTLEPLAYERACTION_SWITCH: 2, ITEMMENU_CURRENT: 4, ITEMMENU_PARTY: 5, ITEMMENU_CLOSE: 6, // Trophy dolls from the Normal and Gorgeous Box (constants/deco_constants.asm) DECOFLAG_GOLD_TROPHY_DOLL: 43, DECOFLAG_SILVER_TROPHY_DOLL: 44, // Menus outside battle (constants/menu_constants.asm) MONMENU_FIELD_MOVE: 0, MONMENUITEM_STATS: 15, MONMENUITEM_SWITCH: 16, MONMENUITEM_ITEM: 17, MONMENUITEM_CANCEL: 18, MONMENUITEM_MOVE: 19, MONMENUITEM_MAIL: 20, NUM_MONMENU_ITEMS: 8, PARTYMENUACTION_CHOOSE_POKEMON: 0, PARTYMENUACTION_HEALING_ITEM: 1, PARTYMENUACTION_MOVE: 4, PARTYMENUACTION_GIVE_ITEM: 8, KEY_ITEM_POCKET: 2, TM_HM_POCKET: 3, PP_UP: 0x3e, SOFTBOILED: 0x87, MILK_DRINK: 0xd0, RARE_CANDY: 0x20, HP_UP: 0x1a, PROTEIN: 0x1b, IRON: 0x1c, CARBOS: 0x1d, CALCIUM: 0x1f, EVERSTONE: 0x70, PARTYMENUACTION_EVO_STONE: 5, PARTYMENUTEXT_LEVEL_UP: 0xf8, HAPPINESS_USEDITEM: 0x02, // Evolution (constants/pokemon_data_constants.asm) EVOLVE_LEVEL: 1, EVOLVE_ITEM: 2, EVOLVE_TRADE: 3, EVOLVE_HAPPINESS: 4, EVOLVE_STAT: 5, TR_ANYTIME: 1, TR_MORNDAY: 2, TR_NITE: 3, ATK_GT_DEF: 1, ATK_LT_DEF: 2, ATK_EQ_DEF: 3, HAPPINESS_TO_EVOLVE: 220, SKETCH: 0xa6, PP_UP_MASK: 0xc0, PP_UP_ONE: 0x40, PARTYMENUTEXT_HEAL_HP: 0xf5, PARTYMENUTEXT_HEAL_CONFUSION: 0xf9, PARTYMENUTEXT_REVIVE: 0xf7, HAPPINESS_GAINLEVEL: 0x01, HAPPINESS_USEDXITEM: 0x03, HAPPINESS_FAINTED: 0x06, HAPPINESS_BEATENBYSTRONGFOE: 0x08, HAPPINESS_BITTERPOWDER: 0x0f, HAPPINESS_ENERGYROOT: 0x10, HAPPINESS_REVIVALHERB: 0x11, HAPPINESS_GAINLEVELATHOME: 0x13, REVIVE: 0x27, ELIXER: 0x41, MAX_ELIXER: 0x15, MAX_ETHER: 0x40, MYSTERYBERRY: 0x96, EGG: 0xfd, WILD_BATTLE: 1, TRAINER_BATTLE: 2, HELD_AMULET_COIN: 76, BATTLETYPE_NORMAL: 0, BATTLETYPE_DEBUG: 2, BATTLETYPE_TUTORIAL: 3, BATTLETYPE_FISH: 4, BATTLETYPE_ROAMING: 5, BATTLETYPE_CONTEST: 6, BATTLETYPE_FORCESHINY: 7, BATTLETYPE_TRAP: 9, BATTLETYPE_FORCEITEM: 10, BATTLETYPE_CELEBI: 11, BATTLETYPE_TREE: 8, TREEMON_SLEEP_TURNS: 7, BATTLETYPE_SUICUNE: 12, WIN: 0, LOSE: 1, DRAW: 2, MORN_F: 0, DAY_F: 1, NITE_F: 2, } as const; /** Battle command IDs (macros/scripts/battle_commands.asm). */ export const COMMAND = { checkturn: 1, checkobedience: 2, usedmovetext: 3, doturn: 4, critical: 5, damagestats: 6, stab: 7, damagevariation: 8, checkhit: 9, lowersub: 10, moveanimnosub: 11, raisesub: 12, failuretext: 13, applydamage: 14, criticaltext: 15, supereffectivetext: 16, checkfaint: 17, buildopponentrage: 18, poisontarget: 19, sleeptarget: 20, draintarget: 21, eatdream: 22, burntarget: 23, freezetarget: 24, paralyzetarget: 25, selfdestruct: 26, mirrormove: 27, payday: 30, conversion: 31, resetstats: 32, storeenergy: 33, unleashenergy: 34, forceswitch: 35, endloop: 36, flinchtarget: 37, ohko: 38, recoil: 39, mist: 40, focusenergy: 41, confuse: 42, confusetarget: 43, heal: 44, transform: 45, screen: 46, poison: 47, paralyze: 48, substitute: 49, rechargenextturn: 50, mimic: 51, metronome: 52, leechseed: 53, splash: 54, disable: 55, cleartext: 56, charge: 57, checkcharge: 58, traptarget: 59, rampage: 61, checkrampage: 62, constantdamage: 63, counter: 64, encore: 65, painsplit: 66, snore: 67, conversion2: 68, lockon: 69, sketch: 70, sleeptalk: 72, destinybond: 73, spite: 74, falseswipe: 75, healbell: 76, kingsrock: 77, triplekick: 78, kickcounter: 79, thief: 80, arenatrap: 81, nightmare: 82, defrost: 83, curse: 84, protect: 85, spikes: 86, foresight: 87, perishsong: 88, startsandstorm: 89, endure: 90, checkrollout: 91, rolloutpower: 92, furycutter: 94, attract: 95, happinesspower: 96, present: 97, damagecalc: 98, frustrationpower: 99, safeguard: 100, checksafeguard: 101, getmagnitude: 102, batonpass: 103, pursuit: 104, clearhazards: 105, healmorn: 106, healday: 107, healnite: 108, hiddenpower: 109, startrain: 110, startsun: 111, attackup: 112, defenseup: 113, speedup: 114, specialattackup: 115, specialdefenseup: 116, accuracyup: 117, evasionup: 118, attackup2: 119, defenseup2: 120, speedup2: 121, specialattackup2: 122, specialdefenseup2: 123, accuracyup2: 124, evasionup2: 125, attackdown: 126, defensedown: 127, speeddown: 128, specialattackdown: 129, specialdefensedown: 130, accuracydown: 131, evasiondown: 132, attackdown2: 133, defensedown2: 134, speeddown2: 135, specialattackdown2: 136, specialdefensedown2: 137, accuracydown2: 138, evasiondown2: 139, statupmessage: 140, statdownmessage: 141, statupfailtext: 142, statdownfailtext: 143, effectchance: 144, statdownanim: 145, statupanim: 146, switchturn: 147, fakeout: 148, bellydrum: 149, psychup: 150, rage: 151, doubleflyingdamage: 152, doubleundergrounddamage: 153, mirrorcoat: 154, checkfuturesight: 155, futuresight: 156, doubleminimizedamage: 157, skipsuncharge: 158, thunderaccuracy: 159, teleport: 160, beatup: 161, ragedamage: 162, resettypematchup: 163, allstatsup: 164, bidefailtext: 165, raisesubnoanim: 166, lowersubnoanim: 167, beatupfailtext: 168, clearmissdamage: 169, movedelay: 170, moveanim: 171, tristatuschance: 172, supereffectivelooptext: 173, startloop: 174, curl: 175, endmove: 0xff, endturn: 0xfe, } as const;