From e031fbc94301280601e39a38d9ff162146e99b20 Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Sun, 8 May 2016 08:36:45 -0400 Subject: [PATCH] Implement Physical/Special split --- README.md | 3 +- battle/ai/scoring.asm | 22 +- battle/effect_commands.asm | 22 +- battle/hidden_power.asm | 5 - battle/moves/moves.asm | 509 +++++++++++++++++---------------- constants/battle_constants.asm | 1 + constants/type_constants.asm | 54 ++-- home/map.asm | 2 +- macros/wram.asm | 1 + text/types.asm | 4 +- wram.asm | 2 +- 11 files changed, 308 insertions(+), 317 deletions(-) diff --git a/README.md b/README.md index 63ed7e8dfe..77526dba44 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ To set up the repository, see [**INSTALL.md**](INSTALL.md). * Medium-Slow growth rate experience underflow at level 1 * HP bar lowering glitch * Modern game mechanics: + * Physical/Special split * Hold B to run * Steel does not resist Ghost or Dark * Type-enhancing items raise by 20%, not 10% @@ -73,7 +74,6 @@ To set up the repository, see [**INSTALL.md**](INSTALL.md). * Replace Cleffa and Igglybuff with Togekiss and Weavile * Mechanics: * Update base stats, learnt moves, and move and item mechanics to Gen VI - * Physical/Special split from Gen IV * Gen III critical hit mechanics (ignore -Atk and +Def stat changes, don't ignore burn) * Catch rate formula from Gen III * Money loss formula from Gen III when whiting out @@ -93,6 +93,7 @@ To set up the repository, see [**INSTALL.md**](INSTALL.md). * Rock-type Pokémon get Sp.Def boosted by 50% in a sandstorm * Convenience: * Better default settings (fast text, stereo sound, set battle style, etc) + * Show Phys/Spcl/Stat category for moves * Settings for 12/24-hour clock, and imperial/metric units * Even faster text * Continuous Repel system from Gen V diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 71567f6d4f..52d3ac5d9f 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -1186,17 +1186,10 @@ AI_Smart_SpDefenseUp2: ; 38aed jr nc, .asm_38b10 ; 80% chance to greatly encourage this move if -; enemy's Special Defense level is lower than +2, and the player is of a special type. +; enemy's Special Defense level is lower than +2. cp $9 ret nc - ld a, [BattleMonType1] - cp SPECIAL - jr nc, .asm_38b09 - ld a, [BattleMonType2] - cp SPECIAL - ret c - .asm_38b09 call AI_80_20 ret c @@ -1438,7 +1431,7 @@ AI_Smart_Counter: ; 38bf1 and a jr z, .asm_38c0e - ld a, [wEnemyMoveStruct + MOVE_TYPE] + ld a, [wEnemyMoveStruct + MOVE_CATEGORY] cp SPECIAL jr nc, .asm_38c0e @@ -1466,7 +1459,7 @@ AI_Smart_Counter: ; 38bf1 and a jr z, .asm_38c38 - ld a, [wEnemyMoveStruct + MOVE_TYPE] + ld a, [wEnemyMoveStruct + MOVE_CATEGORY] cp SPECIAL jr nc, .asm_38c38 @@ -2000,11 +1993,6 @@ AI_Smart_Curse: ; 38e5c ld a, [BattleMonType1] cp GHOST jr z, .asm_38e92 - cp SPECIAL - ret nc - ld a, [BattleMonType2] - cp SPECIAL - ret nc call AI_80_20 ret c rept 2 @@ -2757,7 +2745,7 @@ AI_Smart_MirrorCoat: ; 3918b and a jr z, .asm_391a8 - ld a, [wEnemyMoveStruct + MOVE_TYPE] + ld a, [wEnemyMoveStruct + MOVE_CATEGORY] cp SPECIAL jr c, .asm_391a8 @@ -2785,7 +2773,7 @@ AI_Smart_MirrorCoat: ; 3918b and a jr z, .asm_391d2 - ld a, [wEnemyMoveStruct + MOVE_TYPE] + ld a, [wEnemyMoveStruct + MOVE_CATEGORY] cp SPECIAL jr c, .asm_391d2 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 74ed55f3e7..e6fef4b1ad 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -2805,11 +2805,12 @@ PlayerAttackDamage: ; 352e2 call ResetDamage ld hl, wPlayerMoveStructPower - ld a, [hli] + ld a, [hl] and a ld d, a ret z + ld hl, wPlayerMoveStructCategory ld a, [hl] cp SPECIAL jr nc, .special @@ -2953,7 +2954,7 @@ GetDamageStats: ; 3537e ld a, [hBattleTurn] and a jr nz, .enemy - ld a, [wPlayerMoveStructType] + ld a, [wPlayerMoveStructCategory] cp SPECIAL ; special ld a, [PlayerSAtkLevel] @@ -2967,7 +2968,7 @@ GetDamageStats: ; 3537e jr .end .enemy - ld a, [wEnemyMoveStructType] + ld a, [wEnemyMoveStructCategory] cp SPECIAL ; special ld a, [EnemySAtkLevel] @@ -3071,11 +3072,12 @@ EnemyAttackDamage: ; 353f6 ; No damage dealt with 0 power. ld hl, wEnemyMoveStructPower - ld a, [hli] ; hl = wEnemyMoveStructType + ld a, [hl] ld d, a and a ret z + ld hl, wEnemyMoveStructCategory ld a, [hl] cp SPECIAL jr nc, .Special @@ -3875,11 +3877,11 @@ BattleCommand_Counter: ; 35813 ld de, StringBuffer1 call GetMoveData - ld a, [StringBuffer1 + 2] + ld a, [StringBuffer1 + MOVE_POWER] and a ret z - ld a, [StringBuffer1 + 3] + ld a, [StringBuffer1 + MOVE_CATEGORY] cp SPECIAL ret nc @@ -4175,10 +4177,6 @@ BattleCommand_Conversion2: ; 359e6 .loop call BattleRandom and $1f - cp UNUSED_TYPES - jr c, .okay - cp UNUSED_TYPES_END - jr c, .loop cp TYPES_END jr nc, .loop .okay @@ -9554,11 +9552,11 @@ BattleCommand_MirrorCoat: ; 37c95 ld de, StringBuffer1 call GetMoveData - ld a, [StringBuffer1 + 2] + ld a, [StringBuffer1 + MOVE_POWER] and a ret z - ld a, [StringBuffer1 + 3] + ld a, [StringBuffer1 + MOVE_CATEGORY] cp SPECIAL ret c diff --git a/battle/hidden_power.asm b/battle/hidden_power.asm index 3754433f16..cbd77db0b1 100644 --- a/battle/hidden_power.asm +++ b/battle/hidden_power.asm @@ -83,11 +83,6 @@ endr ; Skip Normal inc a -; Skip unused types - cp UNUSED_TYPES - jr c, .done - add SPECIAL - UNUSED_TYPES - .done ; Overwrite the current move type. diff --git a/battle/moves/moves.asm b/battle/moves/moves.asm index ee6b5bfa16..208df1367a 100644 --- a/battle/moves/moves.asm +++ b/battle/moves/moves.asm @@ -9,259 +9,260 @@ move: MACRO db \5 percent ; accuracy db \6 ; pp db \7 percent ; effect chance + db \8 ; category ENDM - move POUND, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0 - move KARATE_CHOP, EFFECT_NORMAL_HIT, 50, FIGHTING, 100, 25, 0 - move DOUBLESLAP, EFFECT_MULTI_HIT, 15, NORMAL, 85, 10, 0 - move COMET_PUNCH, EFFECT_MULTI_HIT, 18, NORMAL, 85, 15, 0 - move MEGA_PUNCH, EFFECT_NORMAL_HIT, 80, NORMAL, 85, 20, 0 - move PAY_DAY, EFFECT_PAY_DAY, 40, NORMAL, 100, 20, 0 - move FIRE_PUNCH, EFFECT_BURN_HIT, 75, FIRE, 100, 15, 10 - move ICE_PUNCH, EFFECT_FREEZE_HIT, 75, ICE, 100, 15, 10 - move THUNDERPUNCH, EFFECT_PARALYZE_HIT, 75, ELECTRIC, 100, 15, 10 - move SCRATCH, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0 - move VICEGRIP, EFFECT_NORMAL_HIT, 55, NORMAL, 100, 30, 0 - move GUILLOTINE, EFFECT_OHKO, 0, NORMAL, 30, 5, 0 - move RAZOR_WIND, EFFECT_RAZOR_WIND, 80, NORMAL, 75, 10, 0 - move SWORDS_DANCE, EFFECT_ATTACK_UP_2, 0, NORMAL, 100, 30, 0 - move CUT, EFFECT_NORMAL_HIT, 50, NORMAL, 95, 30, 0 - move GUST, EFFECT_GUST, 40, FLYING, 100, 35, 0 - move WING_ATTACK, EFFECT_NORMAL_HIT, 60, FLYING, 100, 35, 0 - move WHIRLWIND, EFFECT_WHIRLWIND, 0, NORMAL, 100, 20, 0 - move FLY, EFFECT_FLY, 70, FLYING, 95, 15, 0 - move BIND, EFFECT_BIND, 15, NORMAL, 75, 20, 0 - move SLAM, EFFECT_NORMAL_HIT, 80, NORMAL, 75, 20, 0 - move VINE_WHIP, EFFECT_NORMAL_HIT, 35, GRASS, 100, 10, 0 - move STOMP, EFFECT_STOMP, 65, NORMAL, 100, 20, 30 - move DOUBLE_KICK, EFFECT_DOUBLE_HIT, 30, FIGHTING, 100, 30, 0 - move MEGA_KICK, EFFECT_NORMAL_HIT, 120, NORMAL, 75, 5, 0 - move JUMP_KICK, EFFECT_JUMP_KICK, 70, FIGHTING, 95, 25, 0 - move ROLLING_KICK, EFFECT_FLINCH_HIT, 60, FIGHTING, 85, 15, 30 - move SAND_ATTACK, EFFECT_ACCURACY_DOWN, 0, GROUND, 100, 15, 0 - move HEADBUTT, EFFECT_FLINCH_HIT, 70, NORMAL, 100, 15, 30 - move HORN_ATTACK, EFFECT_NORMAL_HIT, 65, NORMAL, 100, 25, 0 - move FURY_ATTACK, EFFECT_MULTI_HIT, 15, NORMAL, 85, 20, 0 - move HORN_DRILL, EFFECT_OHKO, 1, NORMAL, 30, 5, 0 - move TACKLE, EFFECT_NORMAL_HIT, 35, NORMAL, 95, 35, 0 - move BODY_SLAM, EFFECT_PARALYZE_HIT, 85, NORMAL, 100, 15, 30 - move WRAP, EFFECT_BIND, 15, NORMAL, 85, 20, 0 - move TAKE_DOWN, EFFECT_RECOIL_HIT, 90, NORMAL, 85, 20, 0 - move THRASH, EFFECT_RAMPAGE, 90, NORMAL, 100, 20, 0 - move DOUBLE_EDGE, EFFECT_RECOIL_HIT, 120, NORMAL, 100, 15, 0 - move TAIL_WHIP, EFFECT_DEFENSE_DOWN, 0, NORMAL, 100, 30, 0 - move POISON_STING, EFFECT_POISON_HIT, 15, POISON, 100, 35, 30 - move TWINEEDLE, EFFECT_TWINEEDLE, 25, BUG, 100, 20, 20 - move PIN_MISSILE, EFFECT_MULTI_HIT, 14, BUG, 85, 20, 0 - move LEER, EFFECT_DEFENSE_DOWN, 0, NORMAL, 100, 30, 0 - move BITE, EFFECT_FLINCH_HIT, 60, DARK, 100, 25, 30 - move GROWL, EFFECT_ATTACK_DOWN, 0, NORMAL, 100, 40, 0 - move ROAR, EFFECT_WHIRLWIND, 0, NORMAL, 100, 20, 0 - move SING, EFFECT_SLEEP, 0, NORMAL, 55, 15, 0 - move SUPERSONIC, EFFECT_CONFUSE, 0, NORMAL, 55, 20, 0 - move SONICBOOM, EFFECT_STATIC_DAMAGE, 20, NORMAL, 90, 20, 0 - move DISABLE, EFFECT_DISABLE, 0, NORMAL, 55, 20, 0 - move ACID, EFFECT_DEFENSE_DOWN_HIT, 40, POISON, 100, 30, 10 - move EMBER, EFFECT_BURN_HIT, 40, FIRE, 100, 25, 10 - move FLAMETHROWER, EFFECT_BURN_HIT, 95, FIRE, 100, 15, 10 - move MIST, EFFECT_MIST, 0, ICE, 100, 30, 0 - move WATER_GUN, EFFECT_NORMAL_HIT, 40, WATER, 100, 25, 0 - move HYDRO_PUMP, EFFECT_NORMAL_HIT, 120, WATER, 80, 5, 0 - move SURF, EFFECT_NORMAL_HIT, 95, WATER, 100, 15, 0 - move ICE_BEAM, EFFECT_FREEZE_HIT, 95, ICE, 100, 10, 10 - move BLIZZARD, EFFECT_FREEZE_HIT, 120, ICE, 70, 5, 10 - move PSYBEAM, EFFECT_CONFUSE_HIT, 65, PSYCHIC, 100, 20, 10 - move BUBBLEBEAM, EFFECT_SPEED_DOWN_HIT, 65, WATER, 100, 20, 10 - move AURORA_BEAM, EFFECT_ATTACK_DOWN_HIT, 65, ICE, 100, 20, 10 - move HYPER_BEAM, EFFECT_HYPER_BEAM, 150, NORMAL, 90, 5, 0 - move PECK, EFFECT_NORMAL_HIT, 35, FLYING, 100, 35, 0 - move DRILL_PECK, EFFECT_NORMAL_HIT, 80, FLYING, 100, 20, 0 - move SUBMISSION, EFFECT_RECOIL_HIT, 80, FIGHTING, 80, 25, 0 - move LOW_KICK, EFFECT_FLINCH_HIT, 50, FIGHTING, 90, 20, 30 - move COUNTER, EFFECT_COUNTER, 1, FIGHTING, 100, 20, 0 - move SEISMIC_TOSS, EFFECT_LEVEL_DAMAGE, 1, FIGHTING, 100, 20, 0 - move STRENGTH, EFFECT_NORMAL_HIT, 80, NORMAL, 100, 15, 0 - move ABSORB, EFFECT_LEECH_HIT, 20, GRASS, 100, 20, 0 - move MEGA_DRAIN, EFFECT_LEECH_HIT, 40, GRASS, 100, 10, 0 - move LEECH_SEED, EFFECT_LEECH_SEED, 0, GRASS, 90, 10, 0 - move GROWTH, EFFECT_SP_ATK_UP, 0, NORMAL, 100, 40, 0 - move RAZOR_LEAF, EFFECT_NORMAL_HIT, 55, GRASS, 95, 25, 0 - move SOLARBEAM, EFFECT_SOLARBEAM, 120, GRASS, 100, 10, 0 - move POISONPOWDER, EFFECT_POISON, 0, POISON, 75, 35, 0 - move STUN_SPORE, EFFECT_PARALYZE, 0, GRASS, 75, 30, 0 - move SLEEP_POWDER, EFFECT_SLEEP, 0, GRASS, 75, 15, 0 - move PETAL_DANCE, EFFECT_RAMPAGE, 70, GRASS, 100, 20, 0 - move STRING_SHOT, EFFECT_SPEED_DOWN, 0, BUG, 95, 40, 0 - move DRAGON_RAGE, EFFECT_STATIC_DAMAGE, 40, DRAGON, 100, 10, 0 - move FIRE_SPIN, EFFECT_BIND, 15, FIRE, 70, 15, 0 - move THUNDERSHOCK, EFFECT_PARALYZE_HIT, 40, ELECTRIC, 100, 30, 10 - move THUNDERBOLT, EFFECT_PARALYZE_HIT, 95, ELECTRIC, 100, 15, 10 - move THUNDER_WAVE, EFFECT_PARALYZE, 0, ELECTRIC, 100, 20, 0 - move THUNDER, EFFECT_THUNDER, 120, ELECTRIC, 70, 10, 30 - move ROCK_THROW, EFFECT_NORMAL_HIT, 50, ROCK, 90, 15, 0 - move EARTHQUAKE, EFFECT_EARTHQUAKE, 100, GROUND, 100, 10, 0 - move FISSURE, EFFECT_OHKO, 1, GROUND, 30, 5, 0 - move DIG, EFFECT_FLY, 60, GROUND, 100, 10, 0 - move TOXIC, EFFECT_TOXIC, 0, POISON, 85, 10, 0 - move CONFUSION, EFFECT_CONFUSE_HIT, 50, PSYCHIC, 100, 25, 10 - move PSYCHIC_M, EFFECT_SP_DEF_DOWN_HIT, 90, PSYCHIC, 100, 10, 10 - move HYPNOSIS, EFFECT_SLEEP, 0, PSYCHIC, 60, 20, 0 - move MEDITATE, EFFECT_ATTACK_UP, 0, PSYCHIC, 100, 40, 0 - move AGILITY, EFFECT_SPEED_UP_2, 0, PSYCHIC, 100, 30, 0 - move QUICK_ATTACK, EFFECT_PRIORITY_HIT, 40, NORMAL, 100, 30, 0 - move RAGE, EFFECT_RAGE, 20, NORMAL, 100, 20, 0 - move TELEPORT, EFFECT_TELEPORT, 0, PSYCHIC, 100, 20, 0 - move NIGHT_SHADE, EFFECT_LEVEL_DAMAGE, 1, GHOST, 100, 15, 0 - move MIMIC, EFFECT_MIMIC, 0, NORMAL, 100, 10, 0 - move SCREECH, EFFECT_DEFENSE_DOWN_2, 0, NORMAL, 85, 40, 0 - move DOUBLE_TEAM, EFFECT_EVASION_UP, 0, NORMAL, 100, 15, 0 - move RECOVER, EFFECT_HEAL, 0, NORMAL, 100, 20, 0 - move HARDEN, EFFECT_DEFENSE_UP, 0, NORMAL, 100, 30, 0 - move MINIMIZE, EFFECT_EVASION_UP, 0, NORMAL, 100, 20, 0 - move SMOKESCREEN, EFFECT_ACCURACY_DOWN, 0, NORMAL, 100, 20, 0 - move CONFUSE_RAY, EFFECT_CONFUSE, 0, GHOST, 100, 10, 0 - move WITHDRAW, EFFECT_DEFENSE_UP, 0, WATER, 100, 40, 0 - move DEFENSE_CURL, EFFECT_DEFENSE_CURL, 0, NORMAL, 100, 40, 0 - move BARRIER, EFFECT_DEFENSE_UP_2, 0, PSYCHIC, 100, 30, 0 - move LIGHT_SCREEN, EFFECT_LIGHT_SCREEN, 0, PSYCHIC, 100, 30, 0 - move HAZE, EFFECT_HAZE, 0, ICE, 100, 30, 0 - move REFLECT, EFFECT_REFLECT, 0, PSYCHIC, 100, 20, 0 - move FOCUS_ENERGY, EFFECT_FOCUS_ENERGY, 0, NORMAL, 100, 30, 0 - move BIDE, EFFECT_BIDE, 0, NORMAL, 100, 10, 0 - move METRONOME, EFFECT_METRONOME, 0, NORMAL, 100, 10, 0 - move MIRROR_MOVE, EFFECT_MIRROR_MOVE, 0, FLYING, 100, 20, 0 - move SELFDESTRUCT, EFFECT_EXPLOSION, 200, NORMAL, 100, 5, 0 - move EGG_BOMB, EFFECT_NORMAL_HIT, 100, NORMAL, 75, 10, 0 - move LICK, EFFECT_PARALYZE_HIT, 20, GHOST, 100, 30, 30 - move SMOG, EFFECT_POISON_HIT, 20, POISON, 70, 20, 40 - move SLUDGE, EFFECT_POISON_HIT, 65, POISON, 100, 20, 30 - move BONE_CLUB, EFFECT_FLINCH_HIT, 65, GROUND, 85, 20, 10 - move FIRE_BLAST, EFFECT_BURN_HIT, 120, FIRE, 85, 5, 10 - move WATERFALL, EFFECT_NORMAL_HIT, 80, WATER, 100, 15, 0 - move CLAMP, EFFECT_BIND, 35, WATER, 75, 10, 0 - move SWIFT, EFFECT_ALWAYS_HIT, 60, NORMAL, 100, 20, 0 - move SKULL_BASH, EFFECT_SKULL_BASH, 100, NORMAL, 100, 15, 0 - move SPIKE_CANNON, EFFECT_MULTI_HIT, 20, NORMAL, 100, 15, 0 - move CONSTRICT, EFFECT_SPEED_DOWN_HIT, 10, NORMAL, 100, 35, 10 - move AMNESIA, EFFECT_SP_DEF_UP_2, 0, PSYCHIC, 100, 20, 0 - move KINESIS, EFFECT_ACCURACY_DOWN, 0, PSYCHIC, 80, 15, 0 - move SOFTBOILED, EFFECT_HEAL, 0, NORMAL, 100, 10, 0 - move HI_JUMP_KICK, EFFECT_JUMP_KICK, 85, FIGHTING, 90, 20, 0 - move GLARE, EFFECT_PARALYZE, 0, NORMAL, 75, 30, 0 - move DREAM_EATER, EFFECT_DREAM_EATER, 100, PSYCHIC, 100, 15, 0 - move POISON_GAS, EFFECT_POISON, 0, POISON, 55, 40, 0 - move BARRAGE, EFFECT_MULTI_HIT, 15, NORMAL, 85, 20, 0 - move LEECH_LIFE, EFFECT_LEECH_HIT, 20, BUG, 100, 15, 0 - move LOVELY_KISS, EFFECT_SLEEP, 0, NORMAL, 75, 10, 0 - move SKY_ATTACK, EFFECT_SKY_ATTACK, 140, FLYING, 90, 5, 0 - move TRANSFORM, EFFECT_TRANSFORM, 0, NORMAL, 100, 10, 0 - move BUBBLE, EFFECT_SPEED_DOWN_HIT, 20, WATER, 100, 30, 10 - move DIZZY_PUNCH, EFFECT_CONFUSE_HIT, 70, NORMAL, 100, 10, 20 - move SPORE, EFFECT_SLEEP, 0, GRASS, 100, 15, 0 - move FLASH, EFFECT_ACCURACY_DOWN, 0, NORMAL, 70, 20, 0 - move PSYWAVE, EFFECT_PSYWAVE, 1, PSYCHIC, 80, 15, 0 - move SPLASH, EFFECT_SPLASH, 0, NORMAL, 100, 40, 0 - move ACID_ARMOR, EFFECT_DEFENSE_UP_2, 0, POISON, 100, 40, 0 - move CRABHAMMER, EFFECT_NORMAL_HIT, 90, WATER, 85, 10, 0 - move EXPLOSION, EFFECT_EXPLOSION, 250, NORMAL, 100, 5, 0 - move FURY_SWIPES, EFFECT_MULTI_HIT, 18, NORMAL, 80, 15, 0 - move BONEMERANG, EFFECT_DOUBLE_HIT, 50, GROUND, 90, 10, 0 - move REST, EFFECT_HEAL, 0, PSYCHIC, 100, 10, 0 - move ROCK_SLIDE, EFFECT_FLINCH_HIT, 75, ROCK, 90, 10, 30 - move HYPER_FANG, EFFECT_FLINCH_HIT, 80, NORMAL, 90, 15, 10 - move SHARPEN, EFFECT_ATTACK_UP, 0, NORMAL, 100, 30, 0 - move CONVERSION, EFFECT_CONVERSION, 0, NORMAL, 100, 30, 0 - move TRI_ATTACK, EFFECT_TRI_ATTACK, 80, NORMAL, 100, 10, 20 - move SUPER_FANG, EFFECT_SUPER_FANG, 1, NORMAL, 90, 10, 0 - move SLASH, EFFECT_NORMAL_HIT, 70, NORMAL, 100, 20, 0 - move SUBSTITUTE, EFFECT_SUBSTITUTE, 0, NORMAL, 100, 10, 0 - move STRUGGLE, EFFECT_RECOIL_HIT, 50, NORMAL, 100, 1, 0 - move SKETCH, EFFECT_SKETCH, 0, NORMAL, 100, 1, 0 - move TRIPLE_KICK, EFFECT_TRIPLE_KICK, 10, FIGHTING, 90, 10, 0 - move THIEF, EFFECT_THIEF, 40, DARK, 100, 10, 100 - move SPIDER_WEB, EFFECT_MEAN_LOOK, 0, BUG, 100, 10, 0 - move MIND_READER, EFFECT_LOCK_ON, 0, NORMAL, 100, 5, 0 - move NIGHTMARE, EFFECT_NIGHTMARE, 0, GHOST, 100, 15, 0 - move FLAME_WHEEL, EFFECT_FLAME_WHEEL, 60, FIRE, 100, 25, 10 - move SNORE, EFFECT_SNORE, 40, NORMAL, 100, 15, 30 - move CURSE, EFFECT_CURSE, 0, CURSE_T, 100, 10, 0 - move FLAIL, EFFECT_REVERSAL, 1, NORMAL, 100, 15, 0 - move CONVERSION2, EFFECT_CONVERSION2, 0, NORMAL, 100, 30, 0 - move AEROBLAST, EFFECT_NORMAL_HIT, 100, FLYING, 95, 5, 0 - move COTTON_SPORE, EFFECT_SPEED_DOWN_2, 0, GRASS, 85, 40, 0 - move REVERSAL, EFFECT_REVERSAL, 1, FIGHTING, 100, 15, 0 - move SPITE, EFFECT_SPITE, 0, GHOST, 100, 10, 0 - move POWDER_SNOW, EFFECT_FREEZE_HIT, 40, ICE, 100, 25, 10 - move PROTECT, EFFECT_PROTECT, 0, NORMAL, 100, 10, 0 - move MACH_PUNCH, EFFECT_PRIORITY_HIT, 40, FIGHTING, 100, 30, 0 - move SCARY_FACE, EFFECT_SPEED_DOWN_2, 0, NORMAL, 90, 10, 0 - move FAINT_ATTACK, EFFECT_ALWAYS_HIT, 60, DARK, 100, 20, 0 - move SWEET_KISS, EFFECT_CONFUSE, 0, FAIRY, 75, 10, 0 - move BELLY_DRUM, EFFECT_BELLY_DRUM, 0, NORMAL, 100, 10, 0 - move SLUDGE_BOMB, EFFECT_POISON_HIT, 90, POISON, 100, 10, 30 - move MUD_SLAP, EFFECT_ACCURACY_DOWN_HIT, 20, GROUND, 100, 10, 100 - move OCTAZOOKA, EFFECT_ACCURACY_DOWN_HIT, 65, WATER, 85, 10, 50 - move SPIKES, EFFECT_SPIKES, 0, GROUND, 100, 20, 0 - move ZAP_CANNON, EFFECT_PARALYZE_HIT, 100, ELECTRIC, 50, 5, 100 - move FORESIGHT, EFFECT_FORESIGHT, 0, NORMAL, 100, 40, 0 - move DESTINY_BOND, EFFECT_DESTINY_BOND, 0, GHOST, 100, 5, 0 - move PERISH_SONG, EFFECT_PERISH_SONG, 0, NORMAL, 100, 5, 0 - move ICY_WIND, EFFECT_SPEED_DOWN_HIT, 55, ICE, 95, 15, 100 - move DETECT, EFFECT_PROTECT, 0, FIGHTING, 100, 5, 0 - move BONE_RUSH, EFFECT_MULTI_HIT, 25, GROUND, 80, 10, 0 - move LOCK_ON, EFFECT_LOCK_ON, 0, NORMAL, 100, 5, 0 - move OUTRAGE, EFFECT_RAMPAGE, 90, DRAGON, 100, 15, 0 - move SANDSTORM, EFFECT_SANDSTORM, 0, ROCK, 100, 10, 0 - move GIGA_DRAIN, EFFECT_LEECH_HIT, 60, GRASS, 100, 5, 0 - move ENDURE, EFFECT_ENDURE, 0, NORMAL, 100, 10, 0 - move CHARM, EFFECT_ATTACK_DOWN_2, 0, FAIRY, 100, 20, 0 - move ROLLOUT, EFFECT_ROLLOUT, 30, ROCK, 90, 20, 0 - move FALSE_SWIPE, EFFECT_FALSE_SWIPE, 40, NORMAL, 100, 40, 0 - move SWAGGER, EFFECT_SWAGGER, 0, NORMAL, 90, 15, 100 - move MILK_DRINK, EFFECT_HEAL, 0, NORMAL, 100, 10, 0 - move SPARK, EFFECT_PARALYZE_HIT, 65, ELECTRIC, 100, 20, 30 - move FURY_CUTTER, EFFECT_FURY_CUTTER, 10, BUG, 95, 20, 0 - move STEEL_WING, EFFECT_STEEL_WING, 70, STEEL, 90, 25, 10 - move MEAN_LOOK, EFFECT_MEAN_LOOK, 0, NORMAL, 100, 5, 0 - move ATTRACT, EFFECT_ATTRACT, 0, NORMAL, 100, 15, 0 - move SLEEP_TALK, EFFECT_SLEEP_TALK, 0, NORMAL, 100, 10, 0 - move HEAL_BELL, EFFECT_HEAL_BELL, 0, NORMAL, 100, 5, 0 - move RETURN, EFFECT_RETURN, 1, NORMAL, 100, 20, 0 - move PRESENT, EFFECT_PRESENT, 1, NORMAL, 90, 15, 0 - move FRUSTRATION, EFFECT_FRUSTRATION, 1, NORMAL, 100, 20, 0 - move SAFEGUARD, EFFECT_SAFEGUARD, 0, NORMAL, 100, 25, 0 - move PAIN_SPLIT, EFFECT_PAIN_SPLIT, 0, NORMAL, 100, 20, 0 - move SACRED_FIRE, EFFECT_SACRED_FIRE, 100, FIRE, 95, 5, 50 - move MAGNITUDE, EFFECT_MAGNITUDE, 1, GROUND, 100, 30, 0 - move DYNAMICPUNCH, EFFECT_CONFUSE_HIT, 100, FIGHTING, 50, 5, 100 - move MEGAHORN, EFFECT_NORMAL_HIT, 120, BUG, 85, 10, 0 - move DRAGONBREATH, EFFECT_PARALYZE_HIT, 60, DRAGON, 100, 20, 30 - move BATON_PASS, EFFECT_BATON_PASS, 0, NORMAL, 100, 40, 0 - move ENCORE, EFFECT_ENCORE, 0, NORMAL, 100, 5, 0 - move PURSUIT, EFFECT_PURSUIT, 40, DARK, 100, 20, 0 - move RAPID_SPIN, EFFECT_RAPID_SPIN, 20, NORMAL, 100, 40, 0 - move SWEET_SCENT, EFFECT_EVASION_DOWN, 0, NORMAL, 100, 20, 0 - move IRON_TAIL, EFFECT_DEFENSE_DOWN_HIT, 100, STEEL, 75, 15, 30 - move METAL_CLAW, EFFECT_METAL_CLAW, 50, STEEL, 95, 35, 10 - move VITAL_THROW, EFFECT_ALWAYS_HIT, 70, FIGHTING, 100, 10, 0 - move MORNING_SUN, EFFECT_MORNING_SUN, 0, NORMAL, 100, 5, 0 - move SYNTHESIS, EFFECT_SYNTHESIS, 0, GRASS, 100, 5, 0 - move MOONLIGHT, EFFECT_MOONLIGHT, 0, FAIRY, 100, 5, 0 - move HIDDEN_POWER, EFFECT_HIDDEN_POWER, 1, NORMAL, 100, 15, 0 - move CROSS_CHOP, EFFECT_NORMAL_HIT, 100, FIGHTING, 80, 5, 0 - move TWISTER, EFFECT_TWISTER, 40, DRAGON, 100, 20, 20 - move RAIN_DANCE, EFFECT_RAIN_DANCE, 0, WATER, 90, 5, 0 - move SUNNY_DAY, EFFECT_SUNNY_DAY, 0, FIRE, 90, 5, 0 - move CRUNCH, EFFECT_SP_DEF_DOWN_HIT, 80, DARK, 100, 15, 20 - move MIRROR_COAT, EFFECT_MIRROR_COAT, 1, PSYCHIC, 100, 20, 0 - move PSYCH_UP, EFFECT_PSYCH_UP, 0, NORMAL, 100, 10, 0 - move EXTREMESPEED, EFFECT_PRIORITY_HIT, 80, NORMAL, 100, 5, 0 - move ANCIENTPOWER, EFFECT_ANCIENTPOWER, 60, ROCK, 100, 5, 10 - move SHADOW_BALL, EFFECT_SP_DEF_DOWN_HIT, 80, GHOST, 100, 15, 20 - move FUTURE_SIGHT, EFFECT_FUTURE_SIGHT, 80, PSYCHIC, 90, 15, 0 - move ROCK_SMASH, EFFECT_DEFENSE_DOWN_HIT, 20, FIGHTING, 100, 15, 50 - move WHIRLPOOL, EFFECT_BIND, 15, WATER, 70, 15, 0 - move BEAT_UP, EFFECT_BEAT_UP, 10, DARK, 100, 10, 0 - move MOONBLAST, EFFECT_SP_ATK_DOWN_HIT, 95, FAIRY, 100, 15, 30 - move PLAY_ROUGH, EFFECT_ATTACK_DOWN_HIT, 90, FAIRY, 90, 10, 10 - move DISARM_VOICE, EFFECT_ALWAYS_HIT, 40, FAIRY, 100, 15, 0 + move POUND, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0, PHYSICAL + move KARATE_CHOP, EFFECT_NORMAL_HIT, 50, FIGHTING, 100, 25, 0, PHYSICAL + move DOUBLESLAP, EFFECT_MULTI_HIT, 15, NORMAL, 85, 10, 0, PHYSICAL + move COMET_PUNCH, EFFECT_MULTI_HIT, 18, NORMAL, 85, 15, 0, PHYSICAL + move MEGA_PUNCH, EFFECT_NORMAL_HIT, 80, NORMAL, 85, 20, 0, PHYSICAL + move PAY_DAY, EFFECT_PAY_DAY, 40, NORMAL, 100, 20, 0, PHYSICAL + move FIRE_PUNCH, EFFECT_BURN_HIT, 75, FIRE, 100, 15, 10, PHYSICAL + move ICE_PUNCH, EFFECT_FREEZE_HIT, 75, ICE, 100, 15, 10, PHYSICAL + move THUNDERPUNCH, EFFECT_PARALYZE_HIT, 75, ELECTRIC, 100, 15, 10, PHYSICAL + move SCRATCH, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0, PHYSICAL + move VICEGRIP, EFFECT_NORMAL_HIT, 55, NORMAL, 100, 30, 0, PHYSICAL + move GUILLOTINE, EFFECT_OHKO, 1, NORMAL, 30, 5, 0, PHYSICAL + move RAZOR_WIND, EFFECT_RAZOR_WIND, 80, NORMAL, 75, 10, 0, SPECIAL + move SWORDS_DANCE, EFFECT_ATTACK_UP_2, 0, NORMAL, 100, 30, 0, STATUS + move CUT, EFFECT_NORMAL_HIT, 50, NORMAL, 95, 30, 0, PHYSICAL + move GUST, EFFECT_GUST, 40, FLYING, 100, 35, 0, SPECIAL + move WING_ATTACK, EFFECT_NORMAL_HIT, 60, FLYING, 100, 35, 0, PHYSICAL + move WHIRLWIND, EFFECT_WHIRLWIND, 0, NORMAL, 100, 20, 0, STATUS + move FLY, EFFECT_FLY, 70, FLYING, 95, 15, 0, PHYSICAL + move BIND, EFFECT_BIND, 15, NORMAL, 75, 20, 0, PHYSICAL + move SLAM, EFFECT_NORMAL_HIT, 80, NORMAL, 75, 20, 0, PHYSICAL + move VINE_WHIP, EFFECT_NORMAL_HIT, 35, GRASS, 100, 10, 0, PHYSICAL + move STOMP, EFFECT_STOMP, 65, NORMAL, 100, 20, 30, PHYSICAL + move DOUBLE_KICK, EFFECT_DOUBLE_HIT, 30, FIGHTING, 100, 30, 0, PHYSICAL + move MEGA_KICK, EFFECT_NORMAL_HIT, 120, NORMAL, 75, 5, 0, PHYSICAL + move JUMP_KICK, EFFECT_JUMP_KICK, 70, FIGHTING, 95, 25, 0, PHYSICAL + move ROLLING_KICK, EFFECT_FLINCH_HIT, 60, FIGHTING, 85, 15, 30, PHYSICAL + move SAND_ATTACK, EFFECT_ACCURACY_DOWN, 0, GROUND, 100, 15, 0, STATUS + move HEADBUTT, EFFECT_FLINCH_HIT, 70, NORMAL, 100, 15, 30, PHYSICAL + move HORN_ATTACK, EFFECT_NORMAL_HIT, 65, NORMAL, 100, 25, 0, PHYSICAL + move FURY_ATTACK, EFFECT_MULTI_HIT, 15, NORMAL, 85, 20, 0, PHYSICAL + move HORN_DRILL, EFFECT_OHKO, 1, NORMAL, 30, 5, 0, PHYSICAL + move TACKLE, EFFECT_NORMAL_HIT, 35, NORMAL, 95, 35, 0, PHYSICAL + move BODY_SLAM, EFFECT_PARALYZE_HIT, 85, NORMAL, 100, 15, 30, PHYSICAL + move WRAP, EFFECT_BIND, 15, NORMAL, 85, 20, 0, PHYSICAL + move TAKE_DOWN, EFFECT_RECOIL_HIT, 90, NORMAL, 85, 20, 0, PHYSICAL + move THRASH, EFFECT_RAMPAGE, 90, NORMAL, 100, 20, 0, PHYSICAL + move DOUBLE_EDGE, EFFECT_RECOIL_HIT, 120, NORMAL, 100, 15, 0, PHYSICAL + move TAIL_WHIP, EFFECT_DEFENSE_DOWN, 0, NORMAL, 100, 30, 0, STATUS + move POISON_STING, EFFECT_POISON_HIT, 15, POISON, 100, 35, 30, PHYSICAL + move TWINEEDLE, EFFECT_TWINEEDLE, 25, BUG, 100, 20, 20, PHYSICAL + move PIN_MISSILE, EFFECT_MULTI_HIT, 14, BUG, 85, 20, 0, PHYSICAL + move LEER, EFFECT_DEFENSE_DOWN, 0, NORMAL, 100, 30, 0, STATUS + move BITE, EFFECT_FLINCH_HIT, 60, DARK, 100, 25, 30, PHYSICAL + move GROWL, EFFECT_ATTACK_DOWN, 0, NORMAL, 100, 40, 0, STATUS + move ROAR, EFFECT_WHIRLWIND, 0, NORMAL, 100, 20, 0, STATUS + move SING, EFFECT_SLEEP, 0, NORMAL, 55, 15, 0, STATUS + move SUPERSONIC, EFFECT_CONFUSE, 0, NORMAL, 55, 20, 0, STATUS + move SONICBOOM, EFFECT_STATIC_DAMAGE, 20, NORMAL, 90, 20, 0, SPECIAL + move DISABLE, EFFECT_DISABLE, 0, NORMAL, 55, 20, 0, STATUS + move ACID, EFFECT_DEFENSE_DOWN_HIT, 40, POISON, 100, 30, 10, SPECIAL + move EMBER, EFFECT_BURN_HIT, 40, FIRE, 100, 25, 10, SPECIAL + move FLAMETHROWER, EFFECT_BURN_HIT, 95, FIRE, 100, 15, 10, SPECIAL + move MIST, EFFECT_MIST, 0, ICE, 100, 30, 0, STATUS + move WATER_GUN, EFFECT_NORMAL_HIT, 40, WATER, 100, 25, 0, SPECIAL + move HYDRO_PUMP, EFFECT_NORMAL_HIT, 120, WATER, 80, 5, 0, SPECIAL + move SURF, EFFECT_NORMAL_HIT, 95, WATER, 100, 15, 0, SPECIAL + move ICE_BEAM, EFFECT_FREEZE_HIT, 95, ICE, 100, 10, 10, SPECIAL + move BLIZZARD, EFFECT_FREEZE_HIT, 120, ICE, 70, 5, 10, SPECIAL + move PSYBEAM, EFFECT_CONFUSE_HIT, 65, PSYCHIC, 100, 20, 10, SPECIAL + move BUBBLEBEAM, EFFECT_SPEED_DOWN_HIT, 65, WATER, 100, 20, 10, SPECIAL + move AURORA_BEAM, EFFECT_ATTACK_DOWN_HIT, 65, ICE, 100, 20, 10, SPECIAL + move HYPER_BEAM, EFFECT_HYPER_BEAM, 150, NORMAL, 90, 5, 0, SPECIAL + move PECK, EFFECT_NORMAL_HIT, 35, FLYING, 100, 35, 0, PHYSICAL + move DRILL_PECK, EFFECT_NORMAL_HIT, 80, FLYING, 100, 20, 0, PHYSICAL + move SUBMISSION, EFFECT_RECOIL_HIT, 80, FIGHTING, 80, 25, 0, PHYSICAL + move LOW_KICK, EFFECT_FLINCH_HIT, 50, FIGHTING, 90, 20, 30, PHYSICAL + move COUNTER, EFFECT_COUNTER, 1, FIGHTING, 100, 20, 0, PHYSICAL + move SEISMIC_TOSS, EFFECT_LEVEL_DAMAGE, 1, FIGHTING, 100, 20, 0, PHYSICAL + move STRENGTH, EFFECT_NORMAL_HIT, 80, NORMAL, 100, 15, 0, PHYSICAL + move ABSORB, EFFECT_LEECH_HIT, 20, GRASS, 100, 20, 0, SPECIAL + move MEGA_DRAIN, EFFECT_LEECH_HIT, 40, GRASS, 100, 10, 0, SPECIAL + move LEECH_SEED, EFFECT_LEECH_SEED, 0, GRASS, 90, 10, 0, STATUS + move GROWTH, EFFECT_SP_ATK_UP, 0, NORMAL, 100, 40, 0, STATUS + move RAZOR_LEAF, EFFECT_NORMAL_HIT, 55, GRASS, 95, 25, 0, PHYSICAL + move SOLARBEAM, EFFECT_SOLARBEAM, 120, GRASS, 100, 10, 0, SPECIAL + move POISONPOWDER, EFFECT_POISON, 0, POISON, 75, 35, 0, STATUS + move STUN_SPORE, EFFECT_PARALYZE, 0, GRASS, 75, 30, 0, STATUS + move SLEEP_POWDER, EFFECT_SLEEP, 0, GRASS, 75, 15, 0, STATUS + move PETAL_DANCE, EFFECT_RAMPAGE, 70, GRASS, 100, 20, 0, SPECIAL + move STRING_SHOT, EFFECT_SPEED_DOWN, 0, BUG, 95, 40, 0, STATUS + move DRAGON_RAGE, EFFECT_STATIC_DAMAGE, 40, DRAGON, 100, 10, 0, SPECIAL + move FIRE_SPIN, EFFECT_BIND, 15, FIRE, 70, 15, 0, SPECIAL + move THUNDERSHOCK, EFFECT_PARALYZE_HIT, 40, ELECTRIC, 100, 30, 10, SPECIAL + move THUNDERBOLT, EFFECT_PARALYZE_HIT, 95, ELECTRIC, 100, 15, 10, SPECIAL + move THUNDER_WAVE, EFFECT_PARALYZE, 0, ELECTRIC, 100, 20, 0, STATUS + move THUNDER, EFFECT_THUNDER, 120, ELECTRIC, 70, 10, 30, SPECIAL + move ROCK_THROW, EFFECT_NORMAL_HIT, 50, ROCK, 90, 15, 0, PHYSICAL + move EARTHQUAKE, EFFECT_EARTHQUAKE, 100, GROUND, 100, 10, 0, PHYSICAL + move FISSURE, EFFECT_OHKO, 1, GROUND, 30, 5, 0, PHYSICAL + move DIG, EFFECT_FLY, 60, GROUND, 100, 10, 0, PHYSICAL + move TOXIC, EFFECT_TOXIC, 0, POISON, 85, 10, 0, STATUS + move CONFUSION, EFFECT_CONFUSE_HIT, 50, PSYCHIC, 100, 25, 10, SPECIAL + move PSYCHIC_M, EFFECT_SP_DEF_DOWN_HIT, 90, PSYCHIC, 100, 10, 10, SPECIAL + move HYPNOSIS, EFFECT_SLEEP, 0, PSYCHIC, 60, 20, 0, STATUS + move MEDITATE, EFFECT_ATTACK_UP, 0, PSYCHIC, 100, 40, 0, STATUS + move AGILITY, EFFECT_SPEED_UP_2, 0, PSYCHIC, 100, 30, 0, STATUS + move QUICK_ATTACK, EFFECT_PRIORITY_HIT, 40, NORMAL, 100, 30, 0, PHYSICAL + move RAGE, EFFECT_RAGE, 20, NORMAL, 100, 20, 0, PHYSICAL + move TELEPORT, EFFECT_TELEPORT, 0, PSYCHIC, 100, 20, 0, STATUS + move NIGHT_SHADE, EFFECT_LEVEL_DAMAGE, 1, GHOST, 100, 15, 0, SPECIAL + move MIMIC, EFFECT_MIMIC, 0, NORMAL, 100, 10, 0, STATUS + move SCREECH, EFFECT_DEFENSE_DOWN_2, 0, NORMAL, 85, 40, 0, STATUS + move DOUBLE_TEAM, EFFECT_EVASION_UP, 0, NORMAL, 100, 15, 0, STATUS + move RECOVER, EFFECT_HEAL, 0, NORMAL, 100, 20, 0, STATUS + move HARDEN, EFFECT_DEFENSE_UP, 0, NORMAL, 100, 30, 0, STATUS + move MINIMIZE, EFFECT_EVASION_UP, 0, NORMAL, 100, 20, 0, STATUS + move SMOKESCREEN, EFFECT_ACCURACY_DOWN, 0, NORMAL, 100, 20, 0, STATUS + move CONFUSE_RAY, EFFECT_CONFUSE, 0, GHOST, 100, 10, 0, STATUS + move WITHDRAW, EFFECT_DEFENSE_UP, 0, WATER, 100, 40, 0, STATUS + move DEFENSE_CURL, EFFECT_DEFENSE_CURL, 0, NORMAL, 100, 40, 0, STATUS + move BARRIER, EFFECT_DEFENSE_UP_2, 0, PSYCHIC, 100, 30, 0, STATUS + move LIGHT_SCREEN, EFFECT_LIGHT_SCREEN, 0, PSYCHIC, 100, 30, 0, STATUS + move HAZE, EFFECT_HAZE, 0, ICE, 100, 30, 0, STATUS + move REFLECT, EFFECT_REFLECT, 0, PSYCHIC, 100, 20, 0, STATUS + move FOCUS_ENERGY, EFFECT_FOCUS_ENERGY, 0, NORMAL, 100, 30, 0, STATUS + move BIDE, EFFECT_BIDE, 0, NORMAL, 100, 10, 0, PHYSICAL + move METRONOME, EFFECT_METRONOME, 0, NORMAL, 100, 10, 0, STATUS + move MIRROR_MOVE, EFFECT_MIRROR_MOVE, 0, FLYING, 100, 20, 0, STATUS + move SELFDESTRUCT, EFFECT_EXPLOSION, 200, NORMAL, 100, 5, 0, PHYSICAL + move EGG_BOMB, EFFECT_NORMAL_HIT, 100, NORMAL, 75, 10, 0, PHYSICAL + move LICK, EFFECT_PARALYZE_HIT, 20, GHOST, 100, 30, 30, PHYSICAL + move SMOG, EFFECT_POISON_HIT, 20, POISON, 70, 20, 40, SPECIAL + move SLUDGE, EFFECT_POISON_HIT, 65, POISON, 100, 20, 30, SPECIAL + move BONE_CLUB, EFFECT_FLINCH_HIT, 65, GROUND, 85, 20, 10, PHYSICAL + move FIRE_BLAST, EFFECT_BURN_HIT, 120, FIRE, 85, 5, 10, SPECIAL + move WATERFALL, EFFECT_NORMAL_HIT, 80, WATER, 100, 15, 0, PHYSICAL + move CLAMP, EFFECT_BIND, 35, WATER, 75, 10, 0, PHYSICAL + move SWIFT, EFFECT_ALWAYS_HIT, 60, NORMAL, 100, 20, 0, SPECIAL + move SKULL_BASH, EFFECT_SKULL_BASH, 100, NORMAL, 100, 15, 0, PHYSICAL + move SPIKE_CANNON, EFFECT_MULTI_HIT, 20, NORMAL, 100, 15, 0, PHYSICAL + move CONSTRICT, EFFECT_SPEED_DOWN_HIT, 10, NORMAL, 100, 35, 10, PHYSICAL + move AMNESIA, EFFECT_SP_DEF_UP_2, 0, PSYCHIC, 100, 20, 0, STATUS + move KINESIS, EFFECT_ACCURACY_DOWN, 0, PSYCHIC, 80, 15, 0, STATUS + move SOFTBOILED, EFFECT_HEAL, 0, NORMAL, 100, 10, 0, STATUS + move HI_JUMP_KICK, EFFECT_JUMP_KICK, 85, FIGHTING, 90, 20, 0, PHYSICAL + move GLARE, EFFECT_PARALYZE, 0, NORMAL, 75, 30, 0, STATUS + move DREAM_EATER, EFFECT_DREAM_EATER, 100, PSYCHIC, 100, 15, 0, SPECIAL + move POISON_GAS, EFFECT_POISON, 0, POISON, 55, 40, 0, STATUS + move BARRAGE, EFFECT_MULTI_HIT, 15, NORMAL, 85, 20, 0, PHYSICAL + move LEECH_LIFE, EFFECT_LEECH_HIT, 20, BUG, 100, 15, 0, PHYSICAL + move LOVELY_KISS, EFFECT_SLEEP, 0, NORMAL, 75, 10, 0, STATUS + move SKY_ATTACK, EFFECT_SKY_ATTACK, 140, FLYING, 90, 5, 0, PHYSICAL + move TRANSFORM, EFFECT_TRANSFORM, 0, NORMAL, 100, 10, 0, STATUS + move BUBBLE, EFFECT_SPEED_DOWN_HIT, 20, WATER, 100, 30, 10, SPECIAL + move DIZZY_PUNCH, EFFECT_CONFUSE_HIT, 70, NORMAL, 100, 10, 20, PHYSICAL + move SPORE, EFFECT_SLEEP, 0, GRASS, 100, 15, 0, STATUS + move FLASH, EFFECT_ACCURACY_DOWN, 0, NORMAL, 70, 20, 0, STATUS + move PSYWAVE, EFFECT_PSYWAVE, 1, PSYCHIC, 80, 15, 0, SPECIAL + move SPLASH, EFFECT_SPLASH, 0, NORMAL, 100, 40, 0, STATUS + move ACID_ARMOR, EFFECT_DEFENSE_UP_2, 0, POISON, 100, 40, 0, STATUS + move CRABHAMMER, EFFECT_NORMAL_HIT, 90, WATER, 85, 10, 0, PHYSICAL + move EXPLOSION, EFFECT_EXPLOSION, 250, NORMAL, 100, 5, 0, PHYSICAL + move FURY_SWIPES, EFFECT_MULTI_HIT, 18, NORMAL, 80, 15, 0, PHYSICAL + move BONEMERANG, EFFECT_DOUBLE_HIT, 50, GROUND, 90, 10, 0, PHYSICAL + move REST, EFFECT_HEAL, 0, PSYCHIC, 100, 10, 0, STATUS + move ROCK_SLIDE, EFFECT_FLINCH_HIT, 75, ROCK, 90, 10, 30, PHYSICAL + move HYPER_FANG, EFFECT_FLINCH_HIT, 80, NORMAL, 90, 15, 10, PHYSICAL + move SHARPEN, EFFECT_ATTACK_UP, 0, NORMAL, 100, 30, 0, STATUS + move CONVERSION, EFFECT_CONVERSION, 0, NORMAL, 100, 30, 0, STATUS + move TRI_ATTACK, EFFECT_TRI_ATTACK, 80, NORMAL, 100, 10, 20, SPECIAL + move SUPER_FANG, EFFECT_SUPER_FANG, 1, NORMAL, 90, 10, 0, PHYSICAL + move SLASH, EFFECT_NORMAL_HIT, 70, NORMAL, 100, 20, 0, PHYSICAL + move SUBSTITUTE, EFFECT_SUBSTITUTE, 0, NORMAL, 100, 10, 0, STATUS + move STRUGGLE, EFFECT_RECOIL_HIT, 50, NORMAL, 100, 1, 0, PHYSICAL + move SKETCH, EFFECT_SKETCH, 0, NORMAL, 100, 1, 0, STATUS + move TRIPLE_KICK, EFFECT_TRIPLE_KICK, 10, FIGHTING, 90, 10, 0, PHYSICAL + move THIEF, EFFECT_THIEF, 40, DARK, 100, 10, 100, PHYSICAL + move SPIDER_WEB, EFFECT_MEAN_LOOK, 0, BUG, 100, 10, 0, STATUS + move MIND_READER, EFFECT_LOCK_ON, 0, NORMAL, 100, 5, 0, STATUS + move NIGHTMARE, EFFECT_NIGHTMARE, 0, GHOST, 100, 15, 0, STATUS + move FLAME_WHEEL, EFFECT_FLAME_WHEEL, 60, FIRE, 100, 25, 10, PHYSICAL + move SNORE, EFFECT_SNORE, 40, NORMAL, 100, 15, 30, SPECIAL + move CURSE, EFFECT_CURSE, 0, CURSE_T, 100, 10, 0, STATUS + move FLAIL, EFFECT_REVERSAL, 1, NORMAL, 100, 15, 0, PHYSICAL + move CONVERSION2, EFFECT_CONVERSION2, 0, NORMAL, 100, 30, 0, STATUS + move AEROBLAST, EFFECT_NORMAL_HIT, 100, FLYING, 95, 5, 0, SPECIAL + move COTTON_SPORE, EFFECT_SPEED_DOWN_2, 0, GRASS, 85, 40, 0, STATUS + move REVERSAL, EFFECT_REVERSAL, 1, FIGHTING, 100, 15, 0, PHYSICAL + move SPITE, EFFECT_SPITE, 0, GHOST, 100, 10, 0, STATUS + move POWDER_SNOW, EFFECT_FREEZE_HIT, 40, ICE, 100, 25, 10, SPECIAL + move PROTECT, EFFECT_PROTECT, 0, NORMAL, 100, 10, 0, STATUS + move MACH_PUNCH, EFFECT_PRIORITY_HIT, 40, FIGHTING, 100, 30, 0, PHYSICAL + move SCARY_FACE, EFFECT_SPEED_DOWN_2, 0, NORMAL, 90, 10, 0, STATUS + move FAINT_ATTACK, EFFECT_ALWAYS_HIT, 60, DARK, 100, 20, 0, PHYSICAL + move SWEET_KISS, EFFECT_CONFUSE, 0, FAIRY, 75, 10, 0, STATUS + move BELLY_DRUM, EFFECT_BELLY_DRUM, 0, NORMAL, 100, 10, 0, STATUS + move SLUDGE_BOMB, EFFECT_POISON_HIT, 90, POISON, 100, 10, 30, SPECIAL + move MUD_SLAP, EFFECT_ACCURACY_DOWN_HIT, 20, GROUND, 100, 10, 100, SPECIAL + move OCTAZOOKA, EFFECT_ACCURACY_DOWN_HIT, 65, WATER, 85, 10, 50, SPECIAL + move SPIKES, EFFECT_SPIKES, 0, GROUND, 100, 20, 0, STATUS + move ZAP_CANNON, EFFECT_PARALYZE_HIT, 100, ELECTRIC, 50, 5, 100, SPECIAL + move FORESIGHT, EFFECT_FORESIGHT, 0, NORMAL, 100, 40, 0, STATUS + move DESTINY_BOND, EFFECT_DESTINY_BOND, 0, GHOST, 100, 5, 0, STATUS + move PERISH_SONG, EFFECT_PERISH_SONG, 0, NORMAL, 100, 5, 0, STATUS + move ICY_WIND, EFFECT_SPEED_DOWN_HIT, 55, ICE, 95, 15, 100, SPECIAL + move DETECT, EFFECT_PROTECT, 0, FIGHTING, 100, 5, 0, STATUS + move BONE_RUSH, EFFECT_MULTI_HIT, 25, GROUND, 80, 10, 0, PHYSICAL + move LOCK_ON, EFFECT_LOCK_ON, 0, NORMAL, 100, 5, 0, STATUS + move OUTRAGE, EFFECT_RAMPAGE, 90, DRAGON, 100, 15, 0, PHYSICAL + move SANDSTORM, EFFECT_SANDSTORM, 0, ROCK, 100, 10, 0, STATUS + move GIGA_DRAIN, EFFECT_LEECH_HIT, 60, GRASS, 100, 5, 0, SPECIAL + move ENDURE, EFFECT_ENDURE, 0, NORMAL, 100, 10, 0, STATUS + move CHARM, EFFECT_ATTACK_DOWN_2, 0, FAIRY, 100, 20, 0, STATUS + move ROLLOUT, EFFECT_ROLLOUT, 30, ROCK, 90, 20, 0, PHYSICAL + move FALSE_SWIPE, EFFECT_FALSE_SWIPE, 40, NORMAL, 100, 40, 0, PHYSICAL + move SWAGGER, EFFECT_SWAGGER, 0, NORMAL, 90, 15, 100, STATUS + move MILK_DRINK, EFFECT_HEAL, 0, NORMAL, 100, 10, 0, STATUS + move SPARK, EFFECT_PARALYZE_HIT, 65, ELECTRIC, 100, 20, 30, PHYSICAL + move FURY_CUTTER, EFFECT_FURY_CUTTER, 10, BUG, 95, 20, 0, PHYSICAL + move STEEL_WING, EFFECT_STEEL_WING, 70, STEEL, 90, 25, 10, PHYSICAL + move MEAN_LOOK, EFFECT_MEAN_LOOK, 0, NORMAL, 100, 5, 0, STATUS + move ATTRACT, EFFECT_ATTRACT, 0, NORMAL, 100, 15, 0, STATUS + move SLEEP_TALK, EFFECT_SLEEP_TALK, 0, NORMAL, 100, 10, 0, STATUS + move HEAL_BELL, EFFECT_HEAL_BELL, 0, NORMAL, 100, 5, 0, STATUS + move RETURN, EFFECT_RETURN, 1, NORMAL, 100, 20, 0, PHYSICAL + move PRESENT, EFFECT_PRESENT, 1, NORMAL, 90, 15, 0, PHYSICAL + move FRUSTRATION, EFFECT_FRUSTRATION, 1, NORMAL, 100, 20, 0, PHYSICAL + move SAFEGUARD, EFFECT_SAFEGUARD, 0, NORMAL, 100, 25, 0, STATUS + move PAIN_SPLIT, EFFECT_PAIN_SPLIT, 0, NORMAL, 100, 20, 0, STATUS + move SACRED_FIRE, EFFECT_SACRED_FIRE, 100, FIRE, 95, 5, 50, PHYSICAL + move MAGNITUDE, EFFECT_MAGNITUDE, 1, GROUND, 100, 30, 0, PHYSICAL + move DYNAMICPUNCH, EFFECT_CONFUSE_HIT, 100, FIGHTING, 50, 5, 100, PHYSICAL + move MEGAHORN, EFFECT_NORMAL_HIT, 120, BUG, 85, 10, 0, PHYSICAL + move DRAGONBREATH, EFFECT_PARALYZE_HIT, 60, DRAGON, 100, 20, 30, SPECIAL + move BATON_PASS, EFFECT_BATON_PASS, 0, NORMAL, 100, 40, 0, STATUS + move ENCORE, EFFECT_ENCORE, 0, NORMAL, 100, 5, 0, STATUS + move PURSUIT, EFFECT_PURSUIT, 40, DARK, 100, 20, 0, PHYSICAL + move RAPID_SPIN, EFFECT_RAPID_SPIN, 20, NORMAL, 100, 40, 0, PHYSICAL + move SWEET_SCENT, EFFECT_EVASION_DOWN, 0, NORMAL, 100, 20, 0, STATUS + move IRON_TAIL, EFFECT_DEFENSE_DOWN_HIT, 100, STEEL, 75, 15, 30, PHYSICAL + move METAL_CLAW, EFFECT_METAL_CLAW, 50, STEEL, 95, 35, 10, PHYSICAL + move VITAL_THROW, EFFECT_ALWAYS_HIT, 70, FIGHTING, 100, 10, 0, PHYSICAL + move MORNING_SUN, EFFECT_MORNING_SUN, 0, NORMAL, 100, 5, 0, STATUS + move SYNTHESIS, EFFECT_SYNTHESIS, 0, GRASS, 100, 5, 0, STATUS + move MOONLIGHT, EFFECT_MOONLIGHT, 0, FAIRY, 100, 5, 0, STATUS + move HIDDEN_POWER, EFFECT_HIDDEN_POWER, 1, NORMAL, 100, 15, 0, SPECIAL + move CROSS_CHOP, EFFECT_NORMAL_HIT, 100, FIGHTING, 80, 5, 0, PHYSICAL + move TWISTER, EFFECT_TWISTER, 40, DRAGON, 100, 20, 20, SPECIAL + move RAIN_DANCE, EFFECT_RAIN_DANCE, 0, WATER, 90, 5, 0, STATUS + move SUNNY_DAY, EFFECT_SUNNY_DAY, 0, FIRE, 90, 5, 0, STATUS + move CRUNCH, EFFECT_SP_DEF_DOWN_HIT, 80, DARK, 100, 15, 20, PHYSICAL + move MIRROR_COAT, EFFECT_MIRROR_COAT, 1, PSYCHIC, 100, 20, 0, SPECIAL + move PSYCH_UP, EFFECT_PSYCH_UP, 0, NORMAL, 100, 10, 0, STATUS + move EXTREMESPEED, EFFECT_PRIORITY_HIT, 80, NORMAL, 100, 5, 0, PHYSICAL + move ANCIENTPOWER, EFFECT_ANCIENTPOWER, 60, ROCK, 100, 5, 10, SPECIAL + move SHADOW_BALL, EFFECT_SP_DEF_DOWN_HIT, 80, GHOST, 100, 15, 20, SPECIAL + move FUTURE_SIGHT, EFFECT_FUTURE_SIGHT, 80, PSYCHIC, 90, 15, 0, SPECIAL + move ROCK_SMASH, EFFECT_DEFENSE_DOWN_HIT, 20, FIGHTING, 100, 15, 50, PHYSICAL + move WHIRLPOOL, EFFECT_BIND, 15, WATER, 70, 15, 0, SPECIAL + move BEAT_UP, EFFECT_BEAT_UP, 10, DARK, 100, 10, 0, PHYSICAL + move MOONBLAST, EFFECT_SP_ATK_DOWN_HIT, 95, FAIRY, 100, 15, 30, SPECIAL + move PLAY_ROUGH, EFFECT_ATTACK_DOWN_HIT, 90, FAIRY, 90, 10, 10, PHYSICAL + move DISARM_VOICE, EFFECT_ALWAYS_HIT, 40, FAIRY, 100, 15, 0, SPECIAL diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index 480ea10c10..2078bf015b 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.asm @@ -27,6 +27,7 @@ NUM_LEVEL_STATS EQU const_value const MOVE_ACC const MOVE_PP const MOVE_CHANCE + const MOVE_CATEGORY const MOVE_LENGTH ; stat constants diff --git a/constants/type_constants.asm b/constants/type_constants.asm index a32555d002..dc655cdf62 100644 --- a/constants/type_constants.asm +++ b/constants/type_constants.asm @@ -1,29 +1,35 @@ const_def -PHYSICAL EQU const_value - const NORMAL - const FIGHTING - const FLYING - const POISON - const GROUND - const ROCK - const BUG - const GHOST - const STEEL +MOVE_TYPES EQU const_value + ; Type order matters for Hidden Power + const NORMAL ; 0 + const FIGHTING ; 1 + const FLYING ; 2 + const POISON ; 3 + const GROUND ; 4 + const ROCK ; 5 + const BUG ; 6 + const GHOST ; 7 + const STEEL ; 8 + const FIRE ; 9 + const WATER ; 10 + const GRASS ; 11 + const ELECTRIC ; 12 + const PSYCHIC ; 13 + const ICE ; 14 + const DRAGON ; 15 + const DARK ; 16 + const FAIRY ; 17 + const CURSE_T ; 18 -UNUSED_TYPES EQU const_value - const CURSE_T -UNUSED_TYPES_END EQU const_value +TYPES_END EQU const_value -SPECIAL EQU const_value - const FIRE - const WATER - const GRASS - const ELECTRIC - const PSYCHIC - const ICE - const DRAGON - const DARK - const FAIRY -TYPES_END EQU const_value + const_def + +MOVE_CATEGORIES EQU const_value + const PHYSICAL + const SPECIAL + const STATUS + +CATEGORIES_END EQU const_value diff --git a/home/map.asm b/home/map.asm index 96eae7d37b..ce80e6fcf2 100644 --- a/home/map.asm +++ b/home/map.asm @@ -2,7 +2,7 @@ Clearwc7e8:: ; 210f ld hl, wc7e8 - ld bc, 24 + ld bc, 22 ld a, $0 call ByteFill ret diff --git a/macros/wram.asm b/macros/wram.asm index 1b296bb04c..c66103b559 100755 --- a/macros/wram.asm +++ b/macros/wram.asm @@ -231,6 +231,7 @@ move_struct: MACRO \1Accuracy:: ds 1 \1PP:: ds 1 \1EffectChance:: ds 1 +\1Category:: ds 1 endm slot_reel: MACRO diff --git a/text/types.asm b/text/types.asm index 31b2351beb..a7fe6e0a4f 100644 --- a/text/types.asm +++ b/text/types.asm @@ -107,7 +107,6 @@ TypeNames: ; 5097b dw Bug dw Ghost dw Steel - dw CurseType dw Fire dw Water dw Grass @@ -117,6 +116,7 @@ TypeNames: ; 5097b dw Dragon dw Dark dw Fairy + dw CurseType Normal: db "Normal@" Fighting: db "Fighting@" @@ -127,7 +127,6 @@ Rock: db "Rock@" Bug: db "Bug@" Ghost: db "Ghost@" Steel: db "Steel@" -CurseType: db "???@" Fire: db "Fire@" Water: db "Water@" Grass: db "Grass@" @@ -137,5 +136,6 @@ Ice: db "Ice@" Dragon: db "Dragon@" Dark: db "Dark@" Fairy: db "Fairy@" +CurseType: db "???@" ; 50a28 diff --git a/wram.asm b/wram.asm index 50ebd90696..a275401ef4 100644 --- a/wram.asm +++ b/wram.asm @@ -900,7 +900,7 @@ wPokedexDataEnd:: wMiscEnd:: -wc7e8:: ds 24 +wc7e8:: ds 22 SECTION "Overworld Map", WRAM0 [$c800]