ref: 122d715484b79aba71d79caf148bac4a2ec441a5
parent: c57c93d2b2fb06cadafefda37c0974ba1ec9e6c0
parent: 43e0e40d5a4af369661fd6c7aa44d7265b9f6e59
author: Rangi <35663410+Rangi42@users.noreply.github.com>
date: Mon Jul 6 07:52:24 EDT 2020
Merge pull request #261 from Rangi42/master Port pokecrystal's base data and tmhm structure
--- a/constants.asm
+++ b/constants.asm
@@ -16,12 +16,12 @@
INCLUDE "constants/pokedex_constants.asm"
INCLUDE "constants/pokemon_data_constants.asm"
INCLUDE "constants/trainer_constants.asm"
-INCLUDE "constants/item_constants.asm"
INCLUDE "constants/type_constants.asm"
INCLUDE "constants/move_constants.asm"
INCLUDE "constants/move_animation_constants.asm"
INCLUDE "constants/move_effect_constants.asm"
INCLUDE "constants/battle_constants.asm"
+INCLUDE "constants/item_constants.asm"
INCLUDE "constants/icon_constants.asm"
INCLUDE "constants/sprite_constants.asm"
INCLUDE "constants/sprite_data_constants.asm"
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -102,58 +102,115 @@
const_value = $C4
- const HM_01 ; $C4
- const HM_02 ; $C5
- const HM_03 ; $C6
- const HM_04 ; $C7
- const HM_05 ; $C8
- const TM_01 ; $C9
- const TM_02 ; $CA
- const TM_03 ; $CB
- const TM_04 ; $CC
- const TM_05 ; $CD
- const TM_06 ; $CE
- const TM_07 ; $CF
- const TM_08 ; $D0
- const TM_09 ; $D1
- const TM_10 ; $D2
- const TM_11 ; $D3
- const TM_12 ; $D4
- const TM_13 ; $D5
- const TM_14 ; $D6
- const TM_15 ; $D7
- const TM_16 ; $D8
- const TM_17 ; $D9
- const TM_18 ; $DA
- const TM_19 ; $DB
- const TM_20 ; $DC
- const TM_21 ; $DD
- const TM_22 ; $DE
- const TM_23 ; $DF
- const TM_24 ; $E0
- const TM_25 ; $E1
- const TM_26 ; $E2
- const TM_27 ; $E3
- const TM_28 ; $E4
- const TM_29 ; $E5
- const TM_30 ; $E6
- const TM_31 ; $E7
- const TM_32 ; $E8
- const TM_33 ; $E9
- const TM_34 ; $EA
- const TM_35 ; $EB
- const TM_36 ; $EC
- const TM_37 ; $ED
- const TM_38 ; $EE
- const TM_39 ; $EF
- const TM_40 ; $F0
- const TM_41 ; $F1
- const TM_42 ; $F2
- const TM_43 ; $F3
- const TM_44 ; $F4
- const TM_45 ; $F5
- const TM_46 ; $F6
- const TM_47 ; $F7
- const TM_48 ; $F8
- const TM_49 ; $F9
- const TM_50 ; $FA
+; HMs are defined before TMs, so the actual number of TM definitions
+; is not yet available. The TM quantity is hard-coded here and must
+; match the actual number below.
+NUM_TMS EQU 50
+
+add_hm: MACRO
+; Defines three constants:
+; - HM_\1: the item id, starting at $C4
+; - \1_TMNUM: the learnable TM/HM flag, starting at 51
+; - HM##_MOVE: alias for the move id, equal to the value of \1
+; The first usage also defines HM01 as the first HM item id.
+IF !DEF(HM01)
+HM01 EQU const_value
+ enum_start NUM_TMS + 1
+ENDC
+HM_VALUE EQU __enum__ - NUM_TMS
+IF HM_VALUE < 10
+MOVE_FOR_HM EQUS "HM0{d:HM_VALUE}_MOVE"
+ELSE
+MOVE_FOR_HM EQUS "HM{d:HM_VALUE}_MOVE"
+ENDC
+MOVE_FOR_HM = \1
+PURGE MOVE_FOR_HM
+PURGE HM_VALUE
+ const HM_\1
+ enum \1_TMNUM
+ENDM
+
+ add_hm CUT ; $C4
+ add_hm FLY ; $C5
+ add_hm SURF ; $C6
+ add_hm STRENGTH ; $C7
+ add_hm FLASH ; $C8
+NUM_HMS EQU const_value - HM01
+
+add_tm: MACRO
+; Defines three constants:
+; - TM_\1: the item id, starting at $C9
+; - \1_TMNUM: the learnable TM/HM flag, starting at 1
+; - TM##_MOVE: alias for the move id, equal to the value of \1
+; The first usage also defines TM01 as the first TM item id.
+IF !DEF(TM01)
+TM01 EQU const_value
+ enum_start 1
+ENDC
+IF __enum__ < 10
+MOVE_FOR_TM EQUS "TM0{d:__enum__}_MOVE"
+ELSE
+MOVE_FOR_TM EQUS "TM{d:__enum__}_MOVE"
+ENDC
+MOVE_FOR_TM = \1
+PURGE MOVE_FOR_TM
+ const TM_\1
+ enum \1_TMNUM
+ENDM
+
+ add_tm MEGA_PUNCH ; $C9
+ add_tm RAZOR_WIND ; $CA
+ add_tm SWORDS_DANCE ; $CB
+ add_tm WHIRLWIND ; $CC
+ add_tm MEGA_KICK ; $CD
+ add_tm TOXIC ; $CE
+ add_tm HORN_DRILL ; $CF
+ add_tm BODY_SLAM ; $D0
+ add_tm TAKE_DOWN ; $D1
+ add_tm DOUBLE_EDGE ; $D2
+ add_tm BUBBLEBEAM ; $D3
+ add_tm WATER_GUN ; $D4
+ add_tm ICE_BEAM ; $D5
+ add_tm BLIZZARD ; $D6
+ add_tm HYPER_BEAM ; $D7
+ add_tm PAY_DAY ; $D8
+ add_tm SUBMISSION ; $D9
+ add_tm COUNTER ; $DA
+ add_tm SEISMIC_TOSS ; $DB
+ add_tm RAGE ; $DC
+ add_tm MEGA_DRAIN ; $DD
+ add_tm SOLARBEAM ; $DE
+ add_tm DRAGON_RAGE ; $DF
+ add_tm THUNDERBOLT ; $E0
+ add_tm THUNDER ; $E1
+ add_tm EARTHQUAKE ; $E2
+ add_tm FISSURE ; $E3
+ add_tm DIG ; $E4
+ add_tm PSYCHIC_M ; $E5
+ add_tm TELEPORT ; $E6
+ add_tm MIMIC ; $E7
+ add_tm DOUBLE_TEAM ; $E8
+ add_tm REFLECT ; $E9
+ add_tm BIDE ; $EA
+ add_tm METRONOME ; $EB
+ add_tm SELFDESTRUCT ; $EC
+ add_tm EGG_BOMB ; $ED
+ add_tm FIRE_BLAST ; $EE
+ add_tm SWIFT ; $EF
+ add_tm SKULL_BASH ; $F0
+ add_tm SOFTBOILED ; $F1
+ add_tm DREAM_EATER ; $F2
+ add_tm SKY_ATTACK ; $F3
+ add_tm REST ; $F4
+ add_tm THUNDER_WAVE ; $F5
+ add_tm PSYWAVE ; $F6
+ add_tm EXPLOSION ; $F7
+ add_tm ROCK_SLIDE ; $F8
+ add_tm TRI_ATTACK ; $F9
+ add_tm SUBSTITUTE ; $FA
+assert NUM_TMS == const_value - TM01, "NUM_TMS ({d:NUM_TMS}) does not match the number of add_tm definitions"
+
+; 50 TMs + 5 HMs = 55 learnable TM/HM flags per Pokémon.
+; These fit in 7 bytes, with one unused bit left over.
+ enum_start NUM_TMS + NUM_HMS + 1
+ enum UNUSED_TMNUM
--- a/data/events/prizes.asm
+++ b/data/events/prizes.asm
@@ -60,9 +60,9 @@
db "@"
PrizeMenuTMsEntries:
- db TM_23
- db TM_15
- db TM_50
+ db TM_DRAGON_RAGE
+ db TM_HYPER_BEAM
+ db TM_SUBSTITUTE
db "@"
PrizeMenuTMsCost:
--- a/data/items/marts.asm
+++ b/data/items/marts.asm
@@ -30,7 +30,7 @@
; Celadon Dept. Store 2F (2)
CeladonMart2Clerk2Text::
- script_mart TM_32, TM_33, TM_02, TM_07, TM_37, TM_01, TM_05, TM_09, TM_17
+ script_mart TM_DOUBLE_TEAM, TM_REFLECT, TM_RAZOR_WIND, TM_HORN_DRILL, TM_EGG_BOMB, TM_MEGA_PUNCH, TM_MEGA_KICK, TM_TAKE_DOWN, TM_SUBMISSION
; Celadon Dept. Store 4F
CeladonMart4ClerkText::
--- a/data/items/tm_prices.asm
+++ b/data/items/tm_prices.asm
@@ -1,27 +1,27 @@
TechnicalMachinePrices:
; In thousands (nybbles).
- dn 3, 2 ; TM_01, TM_02
- dn 2, 1 ; TM_03, TM_04
- dn 3, 4 ; TM_05, TM_06
- dn 2, 4 ; TM_07, TM_08
- dn 3, 4 ; TM_09, TM_10
- dn 2, 1 ; TM_11, TM_12
- dn 4, 5 ; TM_13, TM_14
- dn 5, 5 ; TM_15, TM_16
- dn 3, 2 ; TM_17, TM_18
- dn 3, 2 ; TM_19, TM_20
- dn 5, 5 ; TM_21, TM_22
- dn 5, 2 ; TM_23, TM_24
- dn 5, 4 ; TM_25, TM_26
- dn 5, 2 ; TM_27, TM_28
- dn 4, 1 ; TM_29, TM_30
- dn 2, 1 ; TM_31, TM_32
- dn 1, 2 ; TM_33, TM_34
- dn 4, 2 ; TM_35, TM_36
- dn 2, 5 ; TM_37, TM_38
- dn 2, 4 ; TM_39, TM_40
- dn 2, 2 ; TM_41, TM_42
- dn 5, 2 ; TM_43, TM_44
- dn 2, 4 ; TM_45, TM_46
- dn 3, 4 ; TM_47, TM_48
- dn 4, 2 ; TM_49, TM_50
+ dn 3, 2 ; TM01, TM02
+ dn 2, 1 ; TM03, TM04
+ dn 3, 4 ; TM05, TM06
+ dn 2, 4 ; TM07, TM08
+ dn 3, 4 ; TM09, TM10
+ dn 2, 1 ; TM11, TM12
+ dn 4, 5 ; TM13, TM14
+ dn 5, 5 ; TM15, TM16
+ dn 3, 2 ; TM17, TM18
+ dn 3, 2 ; TM19, TM20
+ dn 5, 5 ; TM21, TM22
+ dn 5, 2 ; TM23, TM24
+ dn 5, 4 ; TM25, TM26
+ dn 5, 2 ; TM27, TM28
+ dn 4, 1 ; TM29, TM30
+ dn 2, 1 ; TM31, TM32
+ dn 1, 2 ; TM33, TM34
+ dn 4, 2 ; TM35, TM36
+ dn 2, 5 ; TM37, TM38
+ dn 2, 4 ; TM39, TM40
+ dn 2, 2 ; TM41, TM42
+ dn 5, 2 ; TM43, TM44
+ dn 2, 4 ; TM45, TM46
+ dn 3, 4 ; TM47, TM48
+ dn 4, 2 ; TM49, TM50
--- a/data/maps/objects/MtMoon1F.asm
+++ b/data/maps/objects/MtMoon1F.asm
@@ -24,7 +24,7 @@
object SPRITE_BALL, 35, 31, STAY, NONE, 10, RARE_CANDY
object SPRITE_BALL, 36, 23, STAY, NONE, 11, ESCAPE_ROPE
object SPRITE_BALL, 20, 33, STAY, NONE, 12, POTION
- object SPRITE_BALL, 5, 32, STAY, NONE, 13, TM_12
+ object SPRITE_BALL, 5, 32, STAY, NONE, 13, TM_WATER_GUN
; warp-to
warp_to 14, 35, MT_MOON_1F_WIDTH
--- a/data/maps/objects/MtMoonB2F.asm
+++ b/data/maps/objects/MtMoonB2F.asm
@@ -18,7 +18,7 @@
object SPRITE_OMANYTE, 12, 6, STAY, NONE, 6 ; person
object SPRITE_OMANYTE, 13, 6, STAY, NONE, 7 ; person
object SPRITE_BALL, 25, 21, STAY, NONE, 8, HP_UP
- object SPRITE_BALL, 29, 5, STAY, NONE, 9, TM_01
+ object SPRITE_BALL, 29, 5, STAY, NONE, 9, TM_MEGA_PUNCH
; warp-to
warp_to 25, 9, MT_MOON_B2F_WIDTH ; MT_MOON_B1F
--- a/data/maps/objects/PokemonMansionB1F.asm
+++ b/data/maps/objects/PokemonMansionB1F.asm
@@ -11,8 +11,8 @@
object SPRITE_OAK_AIDE, 27, 11, STAY, DOWN, 2, OPP_SCIENTIST, 13
object SPRITE_BALL, 10, 2, STAY, NONE, 3, RARE_CANDY
object SPRITE_BALL, 1, 22, STAY, NONE, 4, FULL_RESTORE
- object SPRITE_BALL, 19, 25, STAY, NONE, 5, TM_14
- object SPRITE_BALL, 5, 4, STAY, NONE, 6, TM_22
+ object SPRITE_BALL, 19, 25, STAY, NONE, 5, TM_BLIZZARD
+ object SPRITE_BALL, 5, 4, STAY, NONE, 6, TM_SOLARBEAM
object SPRITE_BOOK_MAP_DEX, 16, 20, STAY, NONE, 7 ; person
object SPRITE_BALL, 5, 13, STAY, NONE, 8, SECRET_KEY
--- a/data/maps/objects/PowerPlant.asm
+++ b/data/maps/objects/PowerPlant.asm
@@ -21,8 +21,8 @@
object SPRITE_BALL, 7, 25, STAY, NONE, 10, CARBOS
object SPRITE_BALL, 28, 3, STAY, NONE, 11, HP_UP
object SPRITE_BALL, 34, 3, STAY, NONE, 12, RARE_CANDY
- object SPRITE_BALL, 26, 32, STAY, NONE, 13, TM_25
- object SPRITE_BALL, 20, 32, STAY, NONE, 14, TM_33
+ object SPRITE_BALL, 26, 32, STAY, NONE, 13, TM_THUNDER
+ object SPRITE_BALL, 20, 32, STAY, NONE, 14, TM_REFLECT
; warp-to
warp_to 4, 35, POWER_PLANT_WIDTH
--- a/data/maps/objects/RocketHideoutB2F.asm
+++ b/data/maps/objects/RocketHideoutB2F.asm
@@ -14,7 +14,7 @@
object SPRITE_ROCKET, 20, 12, STAY, DOWN, 1, OPP_ROCKET, 13
object SPRITE_BALL, 1, 11, STAY, NONE, 2, MOON_STONE
object SPRITE_BALL, 16, 8, STAY, NONE, 3, NUGGET
- object SPRITE_BALL, 6, 12, STAY, NONE, 4, TM_07
+ object SPRITE_BALL, 6, 12, STAY, NONE, 4, TM_HORN_DRILL
object SPRITE_BALL, 3, 21, STAY, NONE, 5, SUPER_POTION
; warp-to
--- a/data/maps/objects/RocketHideoutB3F.asm
+++ b/data/maps/objects/RocketHideoutB3F.asm
@@ -10,7 +10,7 @@
db 4 ; objects
object SPRITE_ROCKET, 10, 22, STAY, RIGHT, 1, OPP_ROCKET, 14
object SPRITE_ROCKET, 26, 12, STAY, UP, 2, OPP_ROCKET, 15
- object SPRITE_BALL, 26, 17, STAY, NONE, 3, TM_10
+ object SPRITE_BALL, 26, 17, STAY, NONE, 3, TM_DOUBLE_EDGE
object SPRITE_BALL, 20, 14, STAY, NONE, 4, RARE_CANDY
; warp-to
--- a/data/maps/objects/RocketHideoutB4F.asm
+++ b/data/maps/objects/RocketHideoutB4F.asm
@@ -14,7 +14,7 @@
object SPRITE_ROCKET, 26, 12, STAY, DOWN, 3, OPP_ROCKET, 17
object SPRITE_ROCKET, 11, 2, STAY, DOWN, 4, OPP_ROCKET, 18
object SPRITE_BALL, 10, 12, STAY, NONE, 5, HP_UP
- object SPRITE_BALL, 9, 4, STAY, NONE, 6, TM_02
+ object SPRITE_BALL, 9, 4, STAY, NONE, 6, TM_RAZOR_WIND
object SPRITE_BALL, 12, 20, STAY, NONE, 7, IRON
object SPRITE_BALL, 25, 2, STAY, NONE, 8, SILPH_SCOPE
object SPRITE_BALL, 10, 2, STAY, NONE, 9, LIFT_KEY
--- a/data/maps/objects/Route12.asm
+++ b/data/maps/objects/Route12.asm
@@ -20,7 +20,7 @@
object SPRITE_FISHER2, 12, 40, STAY, LEFT, 6, OPP_FISHER, 5
object SPRITE_FISHER2, 9, 52, STAY, RIGHT, 7, OPP_FISHER, 6
object SPRITE_FISHER2, 6, 87, STAY, DOWN, 8, OPP_FISHER, 11
- object SPRITE_BALL, 14, 35, STAY, NONE, 9, TM_16
+ object SPRITE_BALL, 14, 35, STAY, NONE, 9, TM_PAY_DAY
object SPRITE_BALL, 5, 89, STAY, NONE, 10, IRON
; warp-to
--- a/data/maps/objects/Route15.asm
+++ b/data/maps/objects/Route15.asm
@@ -21,7 +21,7 @@
object SPRITE_BIKER, 46, 10, STAY, DOWN, 8, OPP_BIKER, 4
object SPRITE_LASS, 37, 5, STAY, RIGHT, 9, OPP_JR_TRAINER_F, 22
object SPRITE_LASS, 18, 13, STAY, UP, 10, OPP_JR_TRAINER_F, 23
- object SPRITE_BALL, 18, 5, STAY, NONE, 11, TM_20
+ object SPRITE_BALL, 18, 5, STAY, NONE, 11, TM_RAGE
; warp-to
warp_to 7, 8, ROUTE_15_WIDTH ; ROUTE_15_GATE_1F
--- a/data/maps/objects/Route24.asm
+++ b/data/maps/objects/Route24.asm
@@ -13,4 +13,4 @@
object SPRITE_BUG_CATCHER, 11, 25, STAY, LEFT, 5, OPP_YOUNGSTER, 4
object SPRITE_LASS, 10, 28, STAY, RIGHT, 6, OPP_LASS, 8
object SPRITE_BUG_CATCHER, 11, 31, STAY, LEFT, 7, OPP_BUG_CATCHER, 9
- object SPRITE_BALL, 10, 5, STAY, NONE, 8, TM_45
+ object SPRITE_BALL, 10, 5, STAY, NONE, 8, TM_THUNDER_WAVE
--- a/data/maps/objects/Route25.asm
+++ b/data/maps/objects/Route25.asm
@@ -17,7 +17,7 @@
object SPRITE_HIKER, 8, 4, STAY, RIGHT, 7, OPP_HIKER, 2
object SPRITE_HIKER, 23, 9, STAY, UP, 8, OPP_HIKER, 3
object SPRITE_HIKER, 13, 7, STAY, RIGHT, 9, OPP_HIKER, 4
- object SPRITE_BALL, 22, 2, STAY, NONE, 10, TM_19
+ object SPRITE_BALL, 22, 2, STAY, NONE, 10, TM_SEISMIC_TOSS
; warp-to
warp_to 45, 3, ROUTE_25_WIDTH ; BILLS_HOUSE
--- a/data/maps/objects/Route4.asm
+++ b/data/maps/objects/Route4.asm
@@ -14,7 +14,7 @@
db 3 ; objects
object SPRITE_LASS, 9, 8, WALK, 0, 1 ; person
object SPRITE_LASS, 63, 3, STAY, RIGHT, 2, OPP_LASS, 4
- object SPRITE_BALL, 57, 3, STAY, NONE, 3, TM_04
+ object SPRITE_BALL, 57, 3, STAY, NONE, 3, TM_WHIRLWIND
; warp-to
warp_to 11, 5, ROUTE_4_WIDTH ; MT_MOON_POKECENTER
--- a/data/maps/objects/Route9.asm
+++ b/data/maps/objects/Route9.asm
@@ -16,4 +16,4 @@
object SPRITE_BUG_CATCHER, 22, 2, STAY, DOWN, 7, OPP_BUG_CATCHER, 13
object SPRITE_HIKER, 45, 15, STAY, RIGHT, 8, OPP_HIKER, 5
object SPRITE_BUG_CATCHER, 40, 8, STAY, RIGHT, 9, OPP_BUG_CATCHER, 14
- object SPRITE_BALL, 10, 15, STAY, NONE, 10, TM_30
+ object SPRITE_BALL, 10, 15, STAY, NONE, 10, TM_TELEPORT
--- a/data/maps/objects/SSAnne1FRooms.asm
+++ b/data/maps/objects/SSAnne1FRooms.asm
@@ -21,7 +21,7 @@
object SPRITE_LITTLE_GIRL, 2, 11, STAY, DOWN, 7 ; person
object SPRITE_CLEFAIRY, 3, 11, STAY, DOWN, 8 ; person
object SPRITE_GIRL, 10, 13, STAY, RIGHT, 9 ; person
- object SPRITE_BALL, 12, 15, STAY, NONE, 10, TM_08
+ object SPRITE_BALL, 12, 15, STAY, NONE, 10, TM_BODY_SLAM
object SPRITE_GENTLEMAN, 21, 13, WALK, 2, 11 ; person
; warp-to
--- a/data/maps/objects/SSAnneB1FRooms.asm
+++ b/data/maps/objects/SSAnneB1FRooms.asm
@@ -25,7 +25,7 @@
object SPRITE_BLACK_HAIR_BOY_2, 10, 13, STAY, RIGHT, 7 ; person
object SPRITE_SLOWBRO, 11, 12, STAY, NONE, 8 ; person
object SPRITE_BALL, 20, 2, STAY, NONE, 9, ETHER
- object SPRITE_BALL, 10, 2, STAY, NONE, 10, TM_44
+ object SPRITE_BALL, 10, 2, STAY, NONE, 10, TM_REST
object SPRITE_BALL, 12, 11, STAY, NONE, 11, MAX_POTION
; warp-to
--- a/data/maps/objects/SafariZoneEast.asm
+++ b/data/maps/objects/SafariZoneEast.asm
@@ -17,7 +17,7 @@
object SPRITE_BALL, 21, 10, STAY, NONE, 1, FULL_RESTORE
object SPRITE_BALL, 3, 7, STAY, NONE, 2, MAX_POTION
object SPRITE_BALL, 20, 13, STAY, NONE, 3, CARBOS
- object SPRITE_BALL, 15, 12, STAY, NONE, 4, TM_37
+ object SPRITE_BALL, 15, 12, STAY, NONE, 4, TM_EGG_BOMB
; warp-to
warp_to 0, 4, SAFARI_ZONE_EAST_WIDTH ; SAFARI_ZONE_NORTH
--- a/data/maps/objects/SafariZoneNorth.asm
+++ b/data/maps/objects/SafariZoneNorth.asm
@@ -21,7 +21,7 @@
db 2 ; objects
object SPRITE_BALL, 25, 1, STAY, NONE, 1, PROTEIN
- object SPRITE_BALL, 19, 7, STAY, NONE, 2, TM_40
+ object SPRITE_BALL, 19, 7, STAY, NONE, 2, TM_SKULL_BASH
; warp-to
warp_to 2, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_WEST
--- a/data/maps/objects/SafariZoneWest.asm
+++ b/data/maps/objects/SafariZoneWest.asm
@@ -19,7 +19,7 @@
db 4 ; objects
object SPRITE_BALL, 8, 20, STAY, NONE, 1, MAX_POTION
- object SPRITE_BALL, 9, 7, STAY, NONE, 2, TM_32
+ object SPRITE_BALL, 9, 7, STAY, NONE, 2, TM_DOUBLE_TEAM
object SPRITE_BALL, 18, 18, STAY, NONE, 3, MAX_REVIVE
object SPRITE_BALL, 19, 7, STAY, NONE, 4, GOLD_TEETH
--- a/data/maps/objects/SilphCo10F.asm
+++ b/data/maps/objects/SilphCo10F.asm
@@ -15,7 +15,7 @@
object SPRITE_ROCKET, 1, 9, STAY, RIGHT, 1, OPP_ROCKET, 39
object SPRITE_OAK_AIDE, 10, 2, STAY, LEFT, 2, OPP_SCIENTIST, 11
object SPRITE_ERIKA, 9, 15, WALK, 0, 3 ; person
- object SPRITE_BALL, 2, 12, STAY, NONE, 4, TM_26
+ object SPRITE_BALL, 2, 12, STAY, NONE, 4, TM_EARTHQUAKE
object SPRITE_BALL, 4, 14, STAY, NONE, 5, RARE_CANDY
object SPRITE_BALL, 5, 11, STAY, NONE, 6, CARBOS
--- a/data/maps/objects/SilphCo5F.asm
+++ b/data/maps/objects/SilphCo5F.asm
@@ -18,7 +18,7 @@
object SPRITE_OAK_AIDE, 8, 3, STAY, RIGHT, 3, OPP_SCIENTIST, 6
object SPRITE_ROCKER, 18, 10, STAY, UP, 4, OPP_JUGGLER, 1
object SPRITE_ROCKET, 28, 4, STAY, UP, 5, OPP_ROCKET, 29
- object SPRITE_BALL, 2, 13, STAY, NONE, 6, TM_09
+ object SPRITE_BALL, 2, 13, STAY, NONE, 6, TM_TAKE_DOWN
object SPRITE_BALL, 4, 6, STAY, NONE, 7, PROTEIN
object SPRITE_BALL, 21, 16, STAY, NONE, 8, CARD_KEY
object SPRITE_CLIPBOARD, 22, 12, STAY, NONE, 9 ; person
--- a/data/maps/objects/SilphCo7F.asm
+++ b/data/maps/objects/SilphCo7F.asm
@@ -22,7 +22,7 @@
object SPRITE_ROCKET, 19, 14, STAY, RIGHT, 8, OPP_ROCKET, 34
object SPRITE_BLUE, 3, 7, STAY, UP, 9 ; person
object SPRITE_BALL, 1, 9, STAY, NONE, 10, CALCIUM
- object SPRITE_BALL, 24, 11, STAY, NONE, 11, TM_03
+ object SPRITE_BALL, 24, 11, STAY, NONE, 11, TM_SWORDS_DANCE
; warp-to
warp_to 16, 0, SILPH_CO_7F_WIDTH ; SILPH_CO_8F
--- a/data/maps/objects/VictoryRoad1F.asm
+++ b/data/maps/objects/VictoryRoad1F.asm
@@ -11,7 +11,7 @@
db 7 ; objects
object SPRITE_LASS, 7, 5, STAY, RIGHT, 1, OPP_COOLTRAINER_F, 5
object SPRITE_BLACK_HAIR_BOY_1, 3, 2, STAY, DOWN, 2, OPP_COOLTRAINER_M, 5
- object SPRITE_BALL, 11, 0, STAY, NONE, 3, TM_43
+ object SPRITE_BALL, 11, 0, STAY, NONE, 3, TM_SKY_ATTACK
object SPRITE_BALL, 9, 2, STAY, NONE, 4, RARE_CANDY
object SPRITE_BOULDER, 5, 15, STAY, BOULDER_MOVEMENT_BYTE_2, 5 ; person
object SPRITE_BOULDER, 14, 2, STAY, BOULDER_MOVEMENT_BYTE_2, 6 ; person
--- a/data/maps/objects/VictoryRoad2F.asm
+++ b/data/maps/objects/VictoryRoad2F.asm
@@ -19,9 +19,9 @@
object SPRITE_BLACK_HAIR_BOY_2, 4, 2, STAY, DOWN, 4, OPP_POKEMANIAC, 6
object SPRITE_BLACK_HAIR_BOY_2, 26, 3, STAY, LEFT, 5, OPP_JUGGLER, 5
object SPRITE_BIRD, 11, 5, STAY, UP, 6, MOLTRES, 50
- object SPRITE_BALL, 27, 5, STAY, NONE, 7, TM_17
+ object SPRITE_BALL, 27, 5, STAY, NONE, 7, TM_SUBMISSION
object SPRITE_BALL, 18, 9, STAY, NONE, 8, FULL_HEAL
- object SPRITE_BALL, 9, 11, STAY, NONE, 9, TM_05
+ object SPRITE_BALL, 9, 11, STAY, NONE, 9, TM_MEGA_KICK
object SPRITE_BALL, 11, 0, STAY, NONE, 10, GUARD_SPEC
object SPRITE_BOULDER, 4, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 11 ; person
object SPRITE_BOULDER, 5, 5, STAY, BOULDER_MOVEMENT_BYTE_2, 12 ; person
--- a/data/maps/objects/VictoryRoad3F.asm
+++ b/data/maps/objects/VictoryRoad3F.asm
@@ -15,7 +15,7 @@
object SPRITE_BLACK_HAIR_BOY_1, 6, 14, STAY, LEFT, 3, OPP_COOLTRAINER_M, 3
object SPRITE_LASS, 13, 3, STAY, RIGHT, 4, OPP_COOLTRAINER_F, 3
object SPRITE_BALL, 26, 5, STAY, NONE, 5, MAX_REVIVE
- object SPRITE_BALL, 7, 7, STAY, NONE, 6, TM_47
+ object SPRITE_BALL, 7, 7, STAY, NONE, 6, TM_EXPLOSION
object SPRITE_BOULDER, 22, 3, STAY, BOULDER_MOVEMENT_BYTE_2, 7 ; person
object SPRITE_BOULDER, 13, 12, STAY, BOULDER_MOVEMENT_BYTE_2, 8 ; person
object SPRITE_BOULDER, 24, 10, STAY, BOULDER_MOVEMENT_BYTE_2, 9 ; person
--- a/data/moves/tmhm_moves.asm
+++ b/data/moves/tmhm_moves.asm
@@ -1,56 +1,59 @@
+; The add_hm and add_tm macros in constants/item_constants.asm simultaneously
+; define constants for the item IDs and for the corresponding move values.
+
TechnicalMachines:
- db MEGA_PUNCH
- db RAZOR_WIND
- db SWORDS_DANCE
- db WHIRLWIND
- db MEGA_KICK
- db TOXIC
- db HORN_DRILL
- db BODY_SLAM
- db TAKE_DOWN
- db DOUBLE_EDGE
- db BUBBLEBEAM
- db WATER_GUN
- db ICE_BEAM
- db BLIZZARD
- db HYPER_BEAM
- db PAY_DAY
- db SUBMISSION
- db COUNTER
- db SEISMIC_TOSS
- db RAGE
- db MEGA_DRAIN
- db SOLARBEAM
- db DRAGON_RAGE
- db THUNDERBOLT
- db THUNDER
- db EARTHQUAKE
- db FISSURE
- db DIG
- db PSYCHIC_M
- db TELEPORT
- db MIMIC
- db DOUBLE_TEAM
- db REFLECT
- db BIDE
- db METRONOME
- db SELFDESTRUCT
- db EGG_BOMB
- db FIRE_BLAST
- db SWIFT
- db SKULL_BASH
- db SOFTBOILED
- db DREAM_EATER
- db SKY_ATTACK
- db REST
- db THUNDER_WAVE
- db PSYWAVE
- db EXPLOSION
- db ROCK_SLIDE
- db TRI_ATTACK
- db SUBSTITUTE
- db CUT
- db FLY
- db SURF
- db STRENGTH
- db FLASH
+ db TM01_MOVE
+ db TM02_MOVE
+ db TM03_MOVE
+ db TM04_MOVE
+ db TM05_MOVE
+ db TM06_MOVE
+ db TM07_MOVE
+ db TM08_MOVE
+ db TM09_MOVE
+ db TM10_MOVE
+ db TM11_MOVE
+ db TM12_MOVE
+ db TM13_MOVE
+ db TM14_MOVE
+ db TM15_MOVE
+ db TM16_MOVE
+ db TM17_MOVE
+ db TM18_MOVE
+ db TM19_MOVE
+ db TM20_MOVE
+ db TM21_MOVE
+ db TM22_MOVE
+ db TM23_MOVE
+ db TM24_MOVE
+ db TM25_MOVE
+ db TM26_MOVE
+ db TM27_MOVE
+ db TM28_MOVE
+ db TM29_MOVE
+ db TM30_MOVE
+ db TM31_MOVE
+ db TM32_MOVE
+ db TM33_MOVE
+ db TM34_MOVE
+ db TM35_MOVE
+ db TM36_MOVE
+ db TM37_MOVE
+ db TM38_MOVE
+ db TM39_MOVE
+ db TM40_MOVE
+ db TM41_MOVE
+ db TM42_MOVE
+ db TM43_MOVE
+ db TM44_MOVE
+ db TM45_MOVE
+ db TM46_MOVE
+ db TM47_MOVE
+ db TM48_MOVE
+ db TM49_MOVE
+ db TM50_MOVE
+ db HM01_MOVE
+ db HM02_MOVE
+ db HM03_MOVE
+ db HM04_MOVE
+ db HM05_MOVE
--- a/data/pokemon/base_stats/abra.asm
+++ b/data/pokemon/base_stats/abra.asm
@@ -1,28 +1,24 @@
-db DEX_ABRA ; pokedex id
-db 25 ; base hp
-db 20 ; base attack
-db 15 ; base defense
-db 90 ; base speed
-db 105 ; base special
-db PSYCHIC ; species type 1
-db PSYCHIC ; species type 2
-db 200 ; catch rate
-db 73 ; base exp yield
-INCBIN "gfx/pokemon/front/abra.pic",0,1 ; 55, sprite dimensions
-dw AbraPicFront
-dw AbraPicBack
-; attacks known at lvl 0
-db TELEPORT
-db 0
-db 0
-db 0
-db 3 ; growth rate
-; learnset
- tmlearn 1,5,6,8
- tmlearn 9,10
- tmlearn 17,18,19,20
- tmlearn 29,30,31,32
- tmlearn 33,34,35,40
- tmlearn 44,45,46
- tmlearn 49,50,55
-db 0 ; padding
+ db DEX_ABRA ; pokedex id
+
+ db 25, 20, 15, 90, 105
+ ; hp atk def spd spc
+
+ db PSYCHIC, PSYCHIC ; type
+ db 200 ; catch rate
+ db 73 ; base exp
+
+ INCBIN "gfx/pokemon/front/abra.pic", 0, 1 ; sprite dimensions
+ dw AbraPicFront, AbraPicBack
+
+ db TELEPORT, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+ db 3 ; growth rate
+
+ ; tm/hm learnset
+ tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \
+ DOUBLE_EDGE, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \
+ PSYCHIC_M, TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, \
+ BIDE, METRONOME, SKULL_BASH, REST, THUNDER_WAVE, \
+ PSYWAVE, TRI_ATTACK, SUBSTITUTE, FLASH
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/aerodactyl.asm
+++ b/data/pokemon/base_stats/aerodactyl.asm
@@ -1,28 +1,23 @@
-db DEX_AERODACTYL ; pokedex id
-db 80 ; base hp
-db 105 ; base attack
-db 65 ; base defense
-db 130 ; base speed
-db 60 ; base special
-db ROCK ; species type 1
-db FLYING ; species type 2
-db 45 ; catch rate
-db 202 ; base exp yield
-INCBIN "gfx/pokemon/front/aerodactyl.pic",0,1 ; 77, sprite dimensions
-dw AerodactylPicFront
-dw AerodactylPicBack
-; attacks known at lvl 0
-db WING_ATTACK
-db AGILITY
-db 0
-db 0
-db 5 ; growth rate
-; learnset
- tmlearn 2,4,6
- tmlearn 9,10,15
- tmlearn 20,23
- tmlearn 31,32
- tmlearn 33,34,38,39
- tmlearn 43,44
- tmlearn 50,52
-db 0 ; padding
+ db DEX_AERODACTYL ; pokedex id
+
+ db 80, 105, 65, 130, 60
+ ; hp atk def spd spc
+
+ db ROCK, FLYING ; type
+ db 45 ; catch rate
+ db 202 ; base exp
+
+ INCBIN "gfx/pokemon/front/aerodactyl.pic", 0, 1 ; sprite dimensions
+ dw AerodactylPicFront, AerodactylPicBack
+
+ db WING_ATTACK, AGILITY, NO_MOVE, NO_MOVE ; level 1 learnset
+ db 5 ; growth rate
+
+ ; tm/hm learnset
+ tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \
+ HYPER_BEAM, RAGE, DRAGON_RAGE, MIMIC, DOUBLE_TEAM, \
+ REFLECT, BIDE, FIRE_BLAST, SWIFT, SKY_ATTACK, \
+ REST, SUBSTITUTE, FLY
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/alakazam.asm
+++ b/data/pokemon/base_stats/alakazam.asm
@@ -1,28 +1,25 @@
-db DEX_ALAKAZAM ; pokedex id
-db 55 ; base hp
-db 50 ; base attack
-db 45 ; base defense
-db 120 ; base speed
-db 135 ; base special
-db PSYCHIC ; species type 1
-db PSYCHIC ; species type 2
-db 50 ; catch rate
-db 186 ; base exp yield
-INCBIN "gfx/pokemon/front/alakazam.pic",0,1 ; 77, sprite dimensions
-dw AlakazamPicFront
-dw AlakazamPicBack
-; attacks known at lvl 0
-db TELEPORT
-db CONFUSION
-db DISABLE
-db 0
-db 3 ; growth rate
-; learnset
- tmlearn 1,5,6,8
- tmlearn 9,10,15
- tmlearn 17,18,19,20
- tmlearn 28,29,30,31,32
- tmlearn 33,34,35,40
- tmlearn 44,45,46
- tmlearn 49,50,55
-db 0 ; padding
+ db DEX_ALAKAZAM ; pokedex id
+
+ db 55, 50, 45, 120, 135
+ ; hp atk def spd spc
+
+ db PSYCHIC, PSYCHIC ; type
+ db 50 ; catch rate
+ db 186 ; base exp
+
+ INCBIN "gfx/pokemon/front/alakazam.pic", 0, 1 ; sprite dimensions
+ dw AlakazamPicFront, AlakazamPicBack
+
+ db TELEPORT, CONFUSION, DISABLE, NO_MOVE ; level 1 learnset
+ db 3 ; growth rate
+
+ ; tm/hm learnset
+ tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \
+ DOUBLE_EDGE, HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, \
+ RAGE, DIG, PSYCHIC_M, TELEPORT, MIMIC, \
+ DOUBLE_TEAM, REFLECT, BIDE, METRONOME, SKULL_BASH, \
+ REST, THUNDER_WAVE, PSYWAVE, TRI_ATTACK, SUBSTITUTE, \
+ FLASH
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/arbok.asm
+++ b/data/pokemon/base_stats/arbok.asm
@@ -1,28 +1,23 @@
-db DEX_ARBOK ; pokedex id
-db 60 ; base hp
-db 85 ; base attack
-db 69 ; base defense
-db 80 ; base speed
-db 65 ; base special
-db POISON ; species type 1
-db POISON ; species type 2
-db 90 ; catch rate
-db 147 ; base exp yield
-INCBIN "gfx/pokemon/front/arbok.pic",0,1 ; 77, sprite dimensions
-dw ArbokPicFront
-dw ArbokPicBack
-; attacks known at lvl 0
-db WRAP
-db LEER
-db POISON_STING
-db 0
-db 0 ; growth rate
-; learnset
- tmlearn 6,8
- tmlearn 9,10,15
- tmlearn 20,21
- tmlearn 26,27,28,31,32
- tmlearn 34,40
- tmlearn 44,48
- tmlearn 50,54
-db 0 ; padding
+ db DEX_ARBOK ; pokedex id
+
+ db 60, 85, 69, 80, 65
+ ; hp atk def spd spc
+
+ db POISON, POISON ; type
+ db 90 ; catch rate
+ db 147 ; base exp
+
+ INCBIN "gfx/pokemon/front/arbok.pic", 0, 1 ; sprite dimensions
+ dw ArbokPicFront, ArbokPicBack
+
+ db WRAP, LEER, POISON_STING, NO_MOVE ; level 1 learnset
+ db 0 ; growth rate
+
+ ; tm/hm learnset
+ tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, \
+ RAGE, MEGA_DRAIN, EARTHQUAKE, FISSURE, DIG, \
+ MIMIC, DOUBLE_TEAM, BIDE, SKULL_BASH, REST, \
+ ROCK_SLIDE, SUBSTITUTE, STRENGTH
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/arcanine.asm
+++ b/data/pokemon/base_stats/arcanine.asm
@@ -1,28 +1,23 @@
-db DEX_ARCANINE ; pokedex id
-db 90 ; base hp
-db 110 ; base attack
-db 80 ; base defense
-db 95 ; base speed
-db 80 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 75 ; catch rate
-db 213 ; base exp yield
-INCBIN "gfx/pokemon/front/arcanine.pic",0,1 ; 77, sprite dimensions
-dw ArcaninePicFront
-dw ArcaninePicBack
-; attacks known at lvl 0
-db ROAR
-db EMBER
-db LEER
-db TAKE_DOWN
-db 5 ; growth rate
-; learnset
- tmlearn 6,8
- tmlearn 9,10,15
- tmlearn 20,23
- tmlearn 28,30,31,32
- tmlearn 33,34,38,39,40
- tmlearn 44
- tmlearn 50
-db 0 ; padding
+ db DEX_ARCANINE ; pokedex id
+
+ db 90, 110, 80, 95, 80
+ ; hp atk def spd spc
+
+ db FIRE, FIRE ; type
+ db 75 ; catch rate
+ db 213 ; base exp
+
+ INCBIN "gfx/pokemon/front/arcanine.pic", 0, 1 ; sprite dimensions
+ dw ArcaninePicFront, ArcaninePicBack
+
+ db ROAR, EMBER, LEER, TAKE_DOWN ; level 1 learnset
+ db 5 ; growth rate
+
+ ; tm/hm learnset
+ tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, \
+ RAGE, DRAGON_RAGE, DIG, TELEPORT, MIMIC, \
+ DOUBLE_TEAM, REFLECT, BIDE, FIRE_BLAST, SWIFT, \
+ SKULL_BASH, REST, SUBSTITUTE
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/articuno.asm
+++ b/data/pokemon/base_stats/articuno.asm
@@ -1,28 +1,23 @@
-db DEX_ARTICUNO ; pokedex id
-db 90 ; base hp
-db 85 ; base attack
-db 100 ; base defense
-db 85 ; base speed
-db 125 ; base special
-db ICE ; species type 1
-db FLYING ; species type 2
-db 3 ; catch rate
-db 215 ; base exp yield
-INCBIN "gfx/pokemon/front/articuno.pic",0,1 ; 77, sprite dimensions
-dw ArticunoPicFront
-dw ArticunoPicBack
-; attacks known at lvl 0
-db PECK
-db ICE_BEAM
-db 0
-db 0
-db 5 ; growth rate
-; learnset
- tmlearn 2,4,6
- tmlearn 9,10,11,12,13,14,15
- tmlearn 20
- tmlearn 31,32
- tmlearn 33,34,39
- tmlearn 43,44
- tmlearn 50,52
-db 0 ; padding
+ db DEX_ARTICUNO ; pokedex id
+
+ db 90, 85, 100, 85, 125
+ ; hp atk def spd spc
+
+ db ICE, FLYING ; type
+ db 3 ; catch rate
+ db 215 ; base exp
+
+ INCBIN "gfx/pokemon/front/articuno.pic", 0, 1 ; sprite dimensions
+ dw ArticunoPicFront, ArticunoPicBack
+
+ db PECK, ICE_BEAM, NO_MOVE, NO_MOVE ; level 1 learnset
+ db 5 ; growth rate
+
+ ; tm/hm learnset
+ tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \
+ BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, HYPER_BEAM, \
+ RAGE, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \
+ SWIFT, SKY_ATTACK, REST, SUBSTITUTE, FLY
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/beedrill.asm
+++ b/data/pokemon/base_stats/beedrill.asm
@@ -1,28 +1,23 @@
-db DEX_BEEDRILL ; pokedex id
-db 65 ; base hp
-db 80 ; base attack
-db 40 ; base defense
-db 75 ; base speed
-db 45 ; base special
-db BUG ; species type 1
-db POISON ; species type 2
-db 45 ; catch rate
-db 159 ; base exp yield
-INCBIN "gfx/pokemon/front/beedrill.pic",0,1 ; 77, sprite dimensions
-dw BeedrillPicFront
-dw BeedrillPicBack
-; attacks known at lvl 0
-db FURY_ATTACK
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
- tmlearn 3,6
- tmlearn 9,10,15
- tmlearn 20,21
- tmlearn 31,32
- tmlearn 33,34,39,40
- tmlearn 44
- tmlearn 50,51
-db 0 ; padding
+ db DEX_BEEDRILL ; pokedex id
+
+ db 65, 80, 40, 75, 45
+ ; hp atk def spd spc
+
+ db BUG, POISON ; type
+ db 45 ; catch rate
+ db 159 ; base exp
+
+ INCBIN "gfx/pokemon/front/beedrill.pic", 0, 1 ; sprite dimensions
+ dw BeedrillPicFront, BeedrillPicBack
+
+ db FURY_ATTACK, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+ db 0 ; growth rate
+
+ ; tm/hm learnset
+ tmhm SWORDS_DANCE, TOXIC, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, \
+ RAGE, MEGA_DRAIN, MIMIC, DOUBLE_TEAM, REFLECT, \
+ BIDE, SWIFT, SKULL_BASH, REST, SUBSTITUTE, \
+ CUT
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/bellsprout.asm
+++ b/data/pokemon/base_stats/bellsprout.asm
@@ -1,28 +1,22 @@
-db DEX_BELLSPROUT ; pokedex id
-db 50 ; base hp
-db 75 ; base attack
-db 35 ; base defense
-db 40 ; base speed
-db 70 ; base special
-db GRASS ; species type 1
-db POISON ; species type 2
-db 255 ; catch rate
-db 84 ; base exp yield
-INCBIN "gfx/pokemon/front/bellsprout.pic",0,1 ; 55, sprite dimensions
-dw BellsproutPicFront
-dw BellsproutPicBack
-; attacks known at lvl 0
-db VINE_WHIP
-db GROWTH
-db 0
-db 0
-db 3 ; growth rate
-; learnset
- tmlearn 3,6
- tmlearn 9,10
- tmlearn 20,21,22
- tmlearn 31,32
- tmlearn 33,34
- tmlearn 44
- tmlearn 50,51
-db 0 ; padding
+ db DEX_BELLSPROUT ; pokedex id
+
+ db 50, 75, 35, 40, 70
+ ; hp atk def spd spc
+
+ db GRASS, POISON ; type
+ db 255 ; catch rate
+ db 84 ; base exp
+
+ INCBIN "gfx/pokemon/front/bellsprout.pic", 0, 1 ; sprite dimensions
+ dw BellsproutPicFront, BellsproutPicBack
+
+ db VINE_WHIP, GROWTH, NO_MOVE, NO_MOVE ; level 1 learnset
+ db 3 ; growth rate
+
+ ; tm/hm learnset
+ tmhm SWORDS_DANCE, TOXIC, TAKE_DOWN, DOUBLE_EDGE, RAGE, \
+ MEGA_DRAIN, SOLARBEAM, MIMIC, DOUBLE_TEAM, REFLECT, \
+ BIDE, REST, SUBSTITUTE, CUT
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/blastoise.asm
+++ b/data/pokemon/base_stats/blastoise.asm
@@ -1,28 +1,25 @@
-db DEX_BLASTOISE ; pokedex id
-db 79 ; base hp
-db 83 ; base attack
-db 100 ; base defense
-db 78 ; base speed
-db 85 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 45 ; catch rate
-db 210 ; base exp yield
-INCBIN "gfx/pokemon/front/blastoise.pic",0,1 ; 77, sprite dimensions
-dw BlastoisePicFront
-dw BlastoisePicBack
-; attacks known at lvl 0
-db TACKLE
-db TAIL_WHIP
-db BUBBLE
-db WATER_GUN
-db 3 ; growth rate
-; learnset
- tmlearn 1,5,6,8
- tmlearn 9,10,11,12,13,14,15
- tmlearn 17,18,19,20
- tmlearn 26,27,28,31,32
- tmlearn 33,34,40
- tmlearn 44
- tmlearn 50,53,54
-db 0 ; padding
+ db DEX_BLASTOISE ; pokedex id
+
+ db 79, 83, 100, 78, 85
+ ; hp atk def spd spc
+
+ db WATER, WATER ; type
+ db 45 ; catch rate
+ db 210 ; base exp
+
+ INCBIN "gfx/pokemon/front/blastoise.pic", 0, 1 ; sprite dimensions
+ dw BlastoisePicFront, BlastoisePicBack
+
+ db TACKLE, TAIL_WHIP, BUBBLE, WATER_GUN ; level 1 learnset
+ db 3 ; growth rate
+
+ ; tm/hm learnset
+ tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \
+ DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \
+ HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \
+ EARTHQUAKE, FISSURE, DIG, MIMIC, DOUBLE_TEAM, \
+ REFLECT, BIDE, SKULL_BASH, REST, SUBSTITUTE, \
+ SURF, STRENGTH
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/bulbasaur.asm
+++ b/data/pokemon/base_stats/bulbasaur.asm
@@ -1,28 +1,22 @@
-db DEX_BULBASAUR ; pokedex id
-db 45 ; base hp
-db 49 ; base attack
-db 49 ; base defense
-db 45 ; base speed
-db 65 ; base special
-db GRASS ; species type 1
-db POISON ; species type 2
-db 45 ; catch rate
-db 64 ; base exp yield
-INCBIN "gfx/pokemon/front/bulbasaur.pic",0,1 ; 55, sprite dimensions
-dw BulbasaurPicFront
-dw BulbasaurPicBack
-; attacks known at lvl 0
-db TACKLE
-db GROWL
-db 0
-db 0
-db 3 ; growth rate
-; learnset
- tmlearn 3,6,8
- tmlearn 9,10
- tmlearn 20,21,22
- tmlearn 31,32
- tmlearn 33,34
- tmlearn 44
- tmlearn 50,51
-db 0 ; padding
+ db DEX_BULBASAUR ; pokedex id
+
+ db 45, 49, 49, 45, 65
+ ; hp atk def spd spc
+
+ db GRASS, POISON ; type
+ db 45 ; catch rate
+ db 64 ; base exp
+
+ INCBIN "gfx/pokemon/front/bulbasaur.pic", 0, 1 ; sprite dimensions
+ dw BulbasaurPicFront, BulbasaurPicBack
+
+ db TACKLE, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset
+ db 3 ; growth rate
+
+ ; tm/hm learnset
+ tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \
+ RAGE, MEGA_DRAIN, SOLARBEAM, MIMIC, DOUBLE_TEAM, \
+ REFLECT, BIDE, REST, SUBSTITUTE, CUT
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/butterfree.asm
+++ b/data/pokemon/base_stats/butterfree.asm
@@ -1,28 +1,23 @@
-db DEX_BUTTERFREE ; pokedex id
-db 60 ; base hp
-db 45 ; base attack
-db 50 ; base defense
-db 70 ; base speed
-db 80 ; base special
-db BUG ; species type 1
-db FLYING ; species type 2
-db 45 ; catch rate
-db 160 ; base exp yield
-INCBIN "gfx/pokemon/front/butterfree.pic",0,1 ; 77, sprite dimensions
-dw ButterfreePicFront
-dw ButterfreePicBack
-; attacks known at lvl 0
-db CONFUSION
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
- tmlearn 2,4,6
- tmlearn 9,10,15
- tmlearn 20,21,22
- tmlearn 29,30,31,32
- tmlearn 33,34,39
- tmlearn 44,46
- tmlearn 50
-db 0 ; padding
+ db DEX_BUTTERFREE ; pokedex id
+
+ db 60, 45, 50, 70, 80
+ ; hp atk def spd spc
+
+ db BUG, FLYING ; type
+ db 45 ; catch rate
+ db 160 ; base exp
+
+ INCBIN "gfx/pokemon/front/butterfree.pic", 0, 1 ; sprite dimensions
+ dw ButterfreePicFront, ButterfreePicBack
+
+ db CONFUSION, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+ db 0 ; growth rate
+
+ ; tm/hm learnset
+ tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \
+ HYPER_BEAM, RAGE, MEGA_DRAIN, SOLARBEAM, PSYCHIC_M, \
+ TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \
+ SWIFT, REST, PSYWAVE, SUBSTITUTE
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/caterpie.asm
+++ b/data/pokemon/base_stats/caterpie.asm
@@ -1,28 +1,20 @@
-db DEX_CATERPIE ; pokedex id
-db 45 ; base hp
-db 30 ; base attack
-db 35 ; base defense
-db 45 ; base speed
-db 20 ; base special
-db BUG ; species type 1
-db BUG ; species type 2
-db 255 ; catch rate
-db 53 ; base exp yield
-INCBIN "gfx/pokemon/front/caterpie.pic",0,1 ; 55, sprite dimensions
-dw CaterpiePicFront
-dw CaterpiePicBack
-; attacks known at lvl 0
-db TACKLE
-db STRING_SHOT
-db 0
-db 0
-db 0 ; growth rate
-; learnset
- tmlearn 0
- tmlearn 0
- tmlearn 0
- tmlearn 0
- tmlearn 0
- tmlearn 0
- tmlearn 0
-db 0 ; padding
+ db DEX_CATERPIE ; pokedex id
+
+ db 45, 30, 35, 45, 20
+ ; hp atk def spd spc
+
+ db BUG, BUG ; type
+ db 255 ; catch rate
+ db 53 ; base exp
+
+ INCBIN "gfx/pokemon/front/caterpie.pic", 0, 1 ; sprite dimensions
+ dw CaterpiePicFront, CaterpiePicBack
+
+ db TACKLE, STRING_SHOT, NO_MOVE, NO_MOVE ; level 1 learnset
+ db 0 ; growth rate
+
+ ; tm/hm learnset
+ tmhm
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/chansey.asm
+++ b/data/pokemon/base_stats/chansey.asm
@@ -1,28 +1,27 @@
-db DEX_CHANSEY ; pokedex id
-db 250 ; base hp
-db 5 ; base attack
-db 5 ; base defense
-db 50 ; base speed
-db 105 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 30 ; catch rate
-db 255 ; base exp yield
-INCBIN "gfx/pokemon/front/chansey.pic",0,1 ; 66, sprite dimensions
-dw ChanseyPicFront
-dw ChanseyPicBack
-; attacks known at lvl 0
-db POUND
-db DOUBLESLAP
-db 0
-db 0
-db 4 ; growth rate
-; learnset
- tmlearn 1,5,6,8
- tmlearn 9,10,11,12,13,14,15
- tmlearn 17,18,19,20,22,24
- tmlearn 25,29,30,31,32
- tmlearn 33,34,35,37,38,40
- tmlearn 41,44,45,46
- tmlearn 49,50,54,55
-db 0 ; padding
+ db DEX_CHANSEY ; pokedex id
+
+ db 250, 5, 5, 50, 105
+ ; hp atk def spd spc
+
+ db NORMAL, NORMAL ; type
+ db 30 ; catch rate
+ db 255 ; base exp
+
+ INCBIN "gfx/pokemon/front/chansey.pic", 0, 1 ; sprite dimensions
+ dw ChanseyPicFront, ChanseyPicBack
+
+ db POUND, DOUBLESLAP, NO_MOVE, NO_MOVE ; level 1 learnset
+ db 4 ; growth rate
+
+ ; tm/hm learnset
+ tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \
+ DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \
+ HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \
+ SOLARBEAM, THUNDERBOLT, THUNDER, PSYCHIC_M, TELEPORT, \
+ MIMIC, DOUBLE_TEAM, REFLECT, BIDE, METRONOME, \
+ EGG_BOMB, FIRE_BLAST, SKULL_BASH, SOFTBOILED, REST, \
+ THUNDER_WAVE, PSYWAVE, TRI_ATTACK, SUBSTITUTE, STRENGTH, \
+ FLASH
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/charizard.asm
+++ b/data/pokemon/base_stats/charizard.asm
@@ -1,28 +1,25 @@
-db DEX_CHARIZARD ; pokedex id
-db 78 ; base hp
-db 84 ; base attack
-db 78 ; base defense
-db 100 ; base speed
-db 85 ; base special
-db FIRE ; species type 1
-db FLYING ; species type 2
-db 45 ; catch rate
-db 209 ; base exp yield
-INCBIN "gfx/pokemon/front/charizard.pic",0,1 ; 77, sprite dimensions
-dw CharizardPicFront
-dw CharizardPicBack
-; attacks known at lvl 0
-db SCRATCH
-db GROWL
-db EMBER
-db LEER
-db 3 ; growth rate
-; learnset
- tmlearn 1,3,5,6,8
- tmlearn 9,10,15
- tmlearn 17,18,19,20,23
- tmlearn 26,27,28,31,32
- tmlearn 33,34,38,39,40
- tmlearn 44
- tmlearn 50,51,54
-db 0 ; padding
+ db DEX_CHARIZARD ; pokedex id
+
+ db 78, 84, 78, 100, 85
+ ; hp atk def spd spc
+
+ db FIRE, FLYING ; type
+ db 45 ; catch rate
+ db 209 ; base exp
+
+ INCBIN "gfx/pokemon/front/charizard.pic", 0, 1 ; sprite dimensions
+ dw CharizardPicFront, CharizardPicBack
+
+ db SCRATCH, GROWL, EMBER, LEER ; level 1 learnset
+ db 3 ; growth rate
+
+ ; tm/hm learnset
+ tmhm MEGA_PUNCH, SWORDS_DANCE, MEGA_KICK, TOXIC, BODY_SLAM, \
+ TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, SUBMISSION, COUNTER, \
+ SEISMIC_TOSS, RAGE, DRAGON_RAGE, EARTHQUAKE, FISSURE, \
+ DIG, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \
+ FIRE_BLAST, SWIFT, SKULL_BASH, REST, SUBSTITUTE, \
+ CUT, STRENGTH
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/charmander.asm
+++ b/data/pokemon/base_stats/charmander.asm
@@ -1,28 +1,24 @@
-db DEX_CHARMANDER ; pokedex id
-db 39 ; base hp
-db 52 ; base attack
-db 43 ; base defense
-db 65 ; base speed
-db 50 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 45 ; catch rate
-db 65 ; base exp yield
-INCBIN "gfx/pokemon/front/charmander.pic",0,1 ; 55, sprite dimensions
-dw CharmanderPicFront
-dw CharmanderPicBack
-; attacks known at lvl 0
-db SCRATCH
-db GROWL
-db 0
-db 0
-db 3 ; growth rate
-; learnset
- tmlearn 1,3,5,6,8
- tmlearn 9,10
- tmlearn 17,18,19,20,23
- tmlearn 28,31,32
- tmlearn 33,34,38,39,40
- tmlearn 44
- tmlearn 50,51,54
-db 0 ; padding
+ db DEX_CHARMANDER ; pokedex id
+
+ db 39, 52, 43, 65, 50
+ ; hp atk def spd spc
+
+ db FIRE, FIRE ; type
+ db 45 ; catch rate
+ db 65 ; base exp
+
+ INCBIN "gfx/pokemon/front/charmander.pic", 0, 1 ; sprite dimensions
+ dw CharmanderPicFront, CharmanderPicBack
+
+ db SCRATCH, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset
+ db 3 ; growth rate
+
+ ; tm/hm learnset
+ tmhm MEGA_PUNCH, SWORDS_DANCE, MEGA_KICK, TOXIC, BODY_SLAM, \
+ TAKE_DOWN, DOUBLE_EDGE, SUBMISSION, COUNTER, SEISMIC_TOSS, \
+ RAGE, DRAGON_RAGE, DIG, MIMIC, DOUBLE_TEAM, \
+ REFLECT, BIDE, FIRE_BLAST, SWIFT, SKULL_BASH, \
+ REST, SUBSTITUTE, CUT, STRENGTH
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/charmeleon.asm
+++ b/data/pokemon/base_stats/charmeleon.asm
@@ -1,28 +1,24 @@
-db DEX_CHARMELEON ; pokedex id
-db 58 ; base hp
-db 64 ; base attack
-db 58 ; base defense
-db 80 ; base speed
-db 65 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 45 ; catch rate
-db 142 ; base exp yield
-INCBIN "gfx/pokemon/front/charmeleon.pic",0,1 ; 66, sprite dimensions
-dw CharmeleonPicFront
-dw CharmeleonPicBack
-; attacks known at lvl 0
-db SCRATCH
-db GROWL
-db EMBER
-db 0
-db 3 ; growth rate
-; learnset
- tmlearn 1,3,5,6,8
- tmlearn 9,10
- tmlearn 17,18,19,20,23
- tmlearn 28,31,32
- tmlearn 33,34,38,39,40
- tmlearn 44
- tmlearn 50,51,54
-db 0 ; padding
+ db DEX_CHARMELEON ; pokedex id
+
+ db 58, 64, 58, 80, 65
+ ; hp atk def spd spc
+
+ db FIRE, FIRE ; type
+ db 45 ; catch rate
+ db 142 ; base exp
+
+ INCBIN "gfx/pokemon/front/charmeleon.pic", 0, 1 ; sprite dimensions
+ dw CharmeleonPicFront, CharmeleonPicBack
+
+ db SCRATCH, GROWL, EMBER, NO_MOVE ; level 1 learnset
+ db 3 ; growth rate
+
+ ; tm/hm learnset
+ tmhm MEGA_PUNCH, SWORDS_DANCE, MEGA_KICK, TOXIC, BODY_SLAM, \
+ TAKE_DOWN, DOUBLE_EDGE, SUBMISSION, COUNTER, SEISMIC_TOSS, \
+ RAGE, DRAGON_RAGE, DIG, MIMIC, DOUBLE_TEAM, \
+ REFLECT, BIDE, FIRE_BLAST, SWIFT, SKULL_BASH, \
+ REST, SUBSTITUTE, CUT, STRENGTH
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/clefable.asm
+++ b/data/pokemon/base_stats/clefable.asm
@@ -1,28 +1,26 @@
-db DEX_CLEFABLE ; pokedex id
-db 95 ; base hp
-db 70 ; base attack
-db 73 ; base defense
-db 60 ; base speed
-db 85 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 25 ; catch rate
-db 129 ; base exp yield
-INCBIN "gfx/pokemon/front/clefable.pic",0,1 ; 66, sprite dimensions
-dw ClefablePicFront
-dw ClefablePicBack
-; attacks known at lvl 0
-db SING
-db DOUBLESLAP
-db MINIMIZE
-db METRONOME
-db 4 ; growth rate
-; learnset
- tmlearn 1,5,6,8
- tmlearn 9,10,11,12,13,14,15
- tmlearn 17,18,19,20,22,24
- tmlearn 25,29,30,31,32
- tmlearn 33,34,35,38,40
- tmlearn 44,45,46
- tmlearn 49,50,54,55
-db 0 ; padding
+ db DEX_CLEFABLE ; pokedex id
+
+ db 95, 70, 73, 60, 85
+ ; hp atk def spd spc
+
+ db NORMAL, NORMAL ; type
+ db 25 ; catch rate
+ db 129 ; base exp
+
+ INCBIN "gfx/pokemon/front/clefable.pic", 0, 1 ; sprite dimensions
+ dw ClefablePicFront, ClefablePicBack
+
+ db SING, DOUBLESLAP, MINIMIZE, METRONOME ; level 1 learnset
+ db 4 ; growth rate
+
+ ; tm/hm learnset
+ tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \
+ DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \
+ HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \
+ SOLARBEAM, THUNDERBOLT, THUNDER, PSYCHIC_M, TELEPORT, \
+ MIMIC, DOUBLE_TEAM, REFLECT, BIDE, METRONOME, \
+ FIRE_BLAST, SKULL_BASH, REST, THUNDER_WAVE, PSYWAVE, \
+ TRI_ATTACK, SUBSTITUTE, STRENGTH, FLASH
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/clefairy.asm
+++ b/data/pokemon/base_stats/clefairy.asm
@@ -1,28 +1,26 @@
-db DEX_CLEFAIRY ; pokedex id
-db 70 ; base hp
-db 45 ; base attack
-db 48 ; base defense
-db 35 ; base speed
-db 60 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 150 ; catch rate
-db 68 ; base exp yield
-INCBIN "gfx/pokemon/front/clefairy.pic",0,1 ; 55, sprite dimensions
-dw ClefairyPicFront
-dw ClefairyPicBack
-; attacks known at lvl 0
-db POUND
-db GROWL
-db 0
-db 0
-db 4 ; growth rate
-; learnset
- tmlearn 1,5,6,8
- tmlearn 9,10,11,12,13,14
- tmlearn 17,18,19,20,22,24
- tmlearn 25,29,30,31,32
- tmlearn 33,34,35,38,40
- tmlearn 44,45,46
- tmlearn 49,50,54,55
-db 0 ; padding
+ db DEX_CLEFAIRY ; pokedex id
+
+ db 70, 45, 48, 35, 60
+ ; hp atk def spd spc
+
+ db NORMAL, NORMAL ; type
+ db 150 ; catch rate
+ db 68 ; base exp
+
+ INCBIN "gfx/pokemon/front/clefairy.pic", 0, 1 ; sprite dimensions
+ dw ClefairyPicFront, ClefairyPicBack
+
+ db POUND, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset
+ db 4 ; growth rate
+
+ ; tm/hm learnset
+ tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \
+ DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \
+ SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, SOLARBEAM, \
+ THUNDERBOLT, THUNDER, PSYCHIC_M, TELEPORT, MIMIC, \
+ DOUBLE_TEAM, REFLECT, BIDE, METRONOME, FIRE_BLAST, \
+ SKULL_BASH, REST, THUNDER_WAVE, PSYWAVE, TRI_ATTACK, \
+ SUBSTITUTE, STRENGTH, FLASH
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/cloyster.asm
+++ b/data/pokemon/base_stats/cloyster.asm
@@ -1,28 +1,24 @@
-db DEX_CLOYSTER ; pokedex id
-db 50 ; base hp
-db 95 ; base attack
-db 180 ; base defense
-db 70 ; base speed
-db 85 ; base special
-db WATER ; species type 1
-db ICE ; species type 2
-db 60 ; catch rate
-db 203 ; base exp yield
-INCBIN "gfx/pokemon/front/cloyster.pic",0,1 ; 77, sprite dimensions
-dw CloysterPicFront
-dw CloysterPicBack
-; attacks known at lvl 0
-db WITHDRAW
-db SUPERSONIC
-db CLAMP
-db AURORA_BEAM
-db 5 ; growth rate
-; learnset
- tmlearn 6
- tmlearn 9,10,11,12,13,14,15
- tmlearn 20
- tmlearn 30,31,32
- tmlearn 33,34,36,39
- tmlearn 44,47
- tmlearn 49,50,53
-db 0 ; padding
+ db DEX_CLOYSTER ; pokedex id
+
+ db 50, 95, 180, 70, 85
+ ; hp atk def spd spc
+
+ db WATER, ICE ; type
+ db 60 ; catch rate
+ db 203 ; base exp
+
+ INCBIN "gfx/pokemon/front/cloyster.pic", 0, 1 ; sprite dimensions
+ dw CloysterPicFront, CloysterPicBack
+
+ db WITHDRAW, SUPERSONIC, CLAMP, AURORA_BEAM ; level 1 learnset
+ db 5 ; growth rate
+
+ ; tm/hm learnset
+ tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, \
+ ICE_BEAM, BLIZZARD, HYPER_BEAM, RAGE, TELEPORT, \
+ MIMIC, DOUBLE_TEAM, REFLECT, BIDE, SELFDESTRUCT, \
+ SWIFT, REST, EXPLOSION, TRI_ATTACK, SUBSTITUTE, \
+ SURF
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/cubone.asm
+++ b/data/pokemon/base_stats/cubone.asm
@@ -1,28 +1,24 @@
-db DEX_CUBONE ; pokedex id
-db 50 ; base hp
-db 50 ; base attack
-db 95 ; base defense
-db 35 ; base speed
-db 40 ; base special
-db GROUND ; species type 1
-db GROUND ; species type 2
-db 190 ; catch rate
-db 87 ; base exp yield
-INCBIN "gfx/pokemon/front/cubone.pic",0,1 ; 55, sprite dimensions
-dw CubonePicFront
-dw CubonePicBack
-; attacks known at lvl 0
-db BONE_CLUB
-db GROWL
-db 0
-db 0
-db 0 ; growth rate
-; learnset
- tmlearn 1,5,6,8
- tmlearn 9,10,11,12,13,14
- tmlearn 17,18,19,20
- tmlearn 26,27,28,31,32
- tmlearn 34,38,40
- tmlearn 44
- tmlearn 50,54
-db 0 ; padding
+ db DEX_CUBONE ; pokedex id
+
+ db 50, 50, 95, 35, 40
+ ; hp atk def spd spc
+
+ db GROUND, GROUND ; type
+ db 190 ; catch rate
+ db 87 ; base exp
+
+ INCBIN "gfx/pokemon/front/cubone.pic", 0, 1 ; sprite dimensions
+ dw CubonePicFront, CubonePicBack
+
+ db BONE_CLUB, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset
+ db 0 ; growth rate
+
+ ; tm/hm learnset
+ tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \
+ DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \
+ SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, EARTHQUAKE, \
+ FISSURE, DIG, MIMIC, DOUBLE_TEAM, BIDE, \
+ FIRE_BLAST, SKULL_BASH, REST, SUBSTITUTE, STRENGTH
+ ; end
+
+ db 0 ; padding
--- a/data/pokemon/base_stats/dewgong.asm
+++ b/data/pokemon/base_stats/dewgong.asm
@@ -1,28 +1,23 @@
-db DEX_DEWGONG ; pokedex id
-db 90 ; base hp
-db 70 ; base attack
-db 80 ; base defense
-db 70 ; base speed
-db 95 ; base special
-db WATER ; species type 1
-db ICE ; species type 2
-db 75 ; catch rate
-db 176 ; base exp yield
-INCBIN "gfx/pokemon/front/dewgong.pic",0,1 ; 66, sprite dimensions
-dw DewgongPicFront
-dw DewgongPicBack
-; attacks known at lvl 0
-db HEADBUTT
-db GROWL
-db AURORA_BEAM
-db 0
-db 0 ; growth rate
-; learnset
- tmlearn 6,7,8
- tmlearn 9,10,11,12,13,14,15,16
- tmlearn 20
- tmlearn 31,32
- tmlearn 34,40
- tmlearn 44
- tmlearn 50,53,54
-db 0 ; padding
+ db DEX_DEWGONG ; pokedex id
+
+ db 90, 70, 80, 70, 95
+ ; hp atk def spd spc
+
+ db WATER, ICE ; type
+ db 75 ; catch rate
+ db 176 ; base exp
+
+ INCBIN "gfx/pokemon/front/dewgong.pic", 0, 1 ; sprite dimensions
+ dw DewgongPicFront, DewgongPicBack
+
+ db HEADBUTT, GROWL, AURORA_BEAM, NO_MOVE ; level 1 learnset
+ db 0 ; growth rate
+
+ ; tm/hm learnset
+ tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \