-
Notifications
You must be signed in to change notification settings - Fork 806
/
pokemon_data_constants.asm
233 lines (206 loc) · 6.34 KB
/
pokemon_data_constants.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
; base data struct members (see data/pokemon/base_stats/*.asm)
rsreset
DEF BASE_DEX_NO rb
DEF BASE_STATS rb NUM_STATS
rsset BASE_STATS
DEF BASE_HP rb
DEF BASE_ATK rb
DEF BASE_DEF rb
DEF BASE_SPD rb
DEF BASE_SAT rb
DEF BASE_SDF rb
DEF BASE_TYPES rw
rsset BASE_TYPES
DEF BASE_TYPE_1 rb
DEF BASE_TYPE_2 rb
DEF BASE_CATCH_RATE rb
DEF BASE_EXP rb
DEF BASE_ITEMS rw
rsset BASE_ITEMS
DEF BASE_ITEM_1 rb
DEF BASE_ITEM_2 rb
DEF BASE_GENDER rb
rb_skip
DEF BASE_EGG_STEPS rb
rb_skip
DEF BASE_PIC_SIZE rb
DEF BASE_FRONTPIC rw
DEF BASE_BACKPIC rw
DEF BASE_GROWTH_RATE rb
DEF BASE_EGG_GROUPS rb
DEF BASE_TMHM rb (NUM_TM_HM_TUTOR + 7) / 8
DEF BASE_DATA_SIZE EQU _RS
; gender ratio constants
DEF GENDER_F0 EQU 0 percent
DEF GENDER_F12_5 EQU 12 percent + 1
DEF GENDER_F25 EQU 25 percent
DEF GENDER_F50 EQU 50 percent
DEF GENDER_F75 EQU 75 percent
DEF GENDER_F100 EQU 100 percent - 1
DEF GENDER_UNKNOWN EQU -1
; wBaseGrowthRate values
; GrowthRates indexes (see data/growth_rates.asm)
const_def
const GROWTH_MEDIUM_FAST
const GROWTH_SLIGHTLY_FAST
const GROWTH_SLIGHTLY_SLOW
const GROWTH_MEDIUM_SLOW
const GROWTH_FAST
const GROWTH_SLOW
DEF NUM_GROWTH_RATES EQU const_value
; wBaseEggGroups values
const_def 1
const EGG_MONSTER ; 1
const EGG_WATER_1 ; 2 (Amphibian)
const EGG_BUG ; 3
const EGG_FLYING ; 4
const EGG_GROUND ; 5 (Field)
const EGG_FAIRY ; 6
const EGG_PLANT ; 7 (Grass)
const EGG_HUMANSHAPE ; 8 (Human-Like)
const EGG_WATER_3 ; 9 (Invertebrate)
const EGG_MINERAL ; a
const EGG_INDETERMINATE ; b (Amorphous)
const EGG_WATER_2 ; c (Fish)
const EGG_DITTO ; d
const EGG_DRAGON ; e
const EGG_NONE ; f (Undiscovered)
; pokedex entries (see data/pokemon/dex_entries.asm)
DEF NUM_DEX_ENTRY_BANKS EQU 4
; party_struct members (see macros/ram.asm)
rsreset
DEF MON_SPECIES rb
DEF MON_ITEM rb
DEF MON_MOVES rb NUM_MOVES
DEF MON_OT_ID rw
DEF MON_EXP rb 3
DEF MON_STAT_EXP rw NUM_EXP_STATS
rsset MON_STAT_EXP
DEF MON_HP_EXP rw
DEF MON_ATK_EXP rw
DEF MON_DEF_EXP rw
DEF MON_SPD_EXP rw
DEF MON_SPC_EXP rw
DEF MON_DVS rw
DEF MON_PP rb NUM_MOVES
DEF MON_HAPPINESS rb
DEF MON_POKERUS rb
DEF MON_CAUGHTDATA rw
rsset MON_CAUGHTDATA
DEF MON_CAUGHTTIME rb
DEF MON_CAUGHTGENDER rb
rsset MON_CAUGHTDATA
DEF MON_CAUGHTLEVEL rb
DEF MON_CAUGHTLOCATION rb
DEF MON_LEVEL rb
DEF BOXMON_STRUCT_LENGTH EQU _RS
DEF MON_STATUS rb
rb_skip
DEF MON_HP rw
DEF MON_MAXHP rw
DEF MON_STATS rw NUM_BATTLE_STATS
rsset MON_STATS
DEF MON_ATK rw
DEF MON_DEF rw
DEF MON_SPD rw
DEF MON_SAT rw
DEF MON_SDF rw
DEF PARTYMON_STRUCT_LENGTH EQU _RS
DEF NICKNAMED_MON_STRUCT_LENGTH EQU PARTYMON_STRUCT_LENGTH + MON_NAME_LENGTH
DEF REDMON_STRUCT_LENGTH EQU 44
; caught data
DEF CAUGHT_TIME_MASK EQU %11000000
DEF CAUGHT_LEVEL_MASK EQU %00111111
DEF CAUGHT_GENDER_MASK EQU %10000000
DEF CAUGHT_LOCATION_MASK EQU %01111111
DEF CAUGHT_BY_UNKNOWN EQU 0
DEF CAUGHT_BY_GIRL EQU 1
DEF CAUGHT_BY_BOY EQU 2
DEF CAUGHT_EGG_LEVEL EQU 1
DEF MON_CRY_LENGTH EQU 6
; maximum number of party pokemon
DEF PARTY_LENGTH EQU 6
; boxes
DEF MONS_PER_BOX EQU 20
; box: count, species, mons, OTs, nicknames, padding
DEF BOX_LENGTH EQU 1 + MONS_PER_BOX + 1 + (BOXMON_STRUCT_LENGTH + NAME_LENGTH + MON_NAME_LENGTH) * MONS_PER_BOX + 2 ; $450
DEF NUM_BOXES EQU 14
; hall of fame
; hof_mon: species, id, dvs, level, nicknames
DEF HOF_MON_LENGTH EQU 1 + 2 + 2 + 1 + (MON_NAME_LENGTH - 1) ; $10
; hall_of_fame: win count, party, terminator
DEF HOF_LENGTH EQU 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; $62
DEF NUM_HOF_TEAMS EQU 30
; evolution types (used in data/pokemon/evos_attacks.asm)
const_def 1
const EVOLVE_LEVEL
const EVOLVE_ITEM
const EVOLVE_TRADE
const EVOLVE_HAPPINESS
const EVOLVE_STAT
; EVOLVE_HAPPINESS triggers
const_def 1
const TR_ANYTIME
const TR_MORNDAY
const TR_NITE
; EVOLVE_STAT triggers
const_def 1
const ATK_GT_DEF
const ATK_LT_DEF
const ATK_EQ_DEF
; wild data
DEF NUM_GRASSMON EQU 7 ; data/wild/*_grass.asm table size
DEF NUM_WATERMON EQU 3 ; data/wild/*_water.asm table size
DEF GRASS_WILDDATA_LENGTH EQU 2 + 3 + NUM_GRASSMON * 2 * 3
DEF WATER_WILDDATA_LENGTH EQU 2 + 1 + NUM_WATERMON * 2
DEF FISHGROUP_DATA_LENGTH EQU 1 + 2 * 3
DEF NUM_ROAMMON_MAPS EQU 16 ; RoamMaps table size (see data/wild/roammon_maps.asm)
; treemon sets
; TreeMons indexes (see data/wild/treemons.asm)
const_def
const TREEMON_SET_CITY
const TREEMON_SET_CANYON
const TREEMON_SET_TOWN
const TREEMON_SET_ROUTE
const TREEMON_SET_KANTO
const TREEMON_SET_LAKE
const TREEMON_SET_FOREST
const TREEMON_SET_ROCK
DEF NUM_TREEMON_SETS EQU const_value
; treemon scores
const_def
const TREEMON_SCORE_BAD ; 0
const TREEMON_SCORE_GOOD ; 1
const TREEMON_SCORE_RARE ; 2
; ChangeHappiness arguments (see data/events/happiness_changes.asm)
const_def 1
const HAPPINESS_GAINLEVEL ; 01
const HAPPINESS_USEDITEM ; 02
const HAPPINESS_USEDXITEM ; 03
const HAPPINESS_GYMBATTLE ; 04
const HAPPINESS_LEARNMOVE ; 05
const HAPPINESS_FAINTED ; 06
const HAPPINESS_POISONFAINT ; 07
const HAPPINESS_BEATENBYSTRONGFOE ; 08
const HAPPINESS_OLDERCUT1 ; 09
const HAPPINESS_OLDERCUT2 ; 0a
const HAPPINESS_OLDERCUT3 ; 0b
const HAPPINESS_YOUNGCUT1 ; 0c
const HAPPINESS_YOUNGCUT2 ; 0d
const HAPPINESS_YOUNGCUT3 ; 0e
const HAPPINESS_BITTERPOWDER ; 0f
const HAPPINESS_ENERGYROOT ; 10
const HAPPINESS_REVIVALHERB ; 11
const HAPPINESS_GROOMING ; 12
const HAPPINESS_GAINLEVELATHOME ; 13
DEF NUM_HAPPINESS_CHANGES EQU const_value - 1
; significant happiness values
DEF BASE_HAPPINESS EQU 70
DEF FRIEND_BALL_HAPPINESS EQU 200
DEF HAPPINESS_TO_EVOLVE EQU 220
DEF HAPPINESS_THRESHOLD_1 EQU 100
DEF HAPPINESS_THRESHOLD_2 EQU 200
; PP
DEF PP_UP_MASK EQU %11000000
DEF PP_UP_ONE EQU %01000000
DEF PP_MASK EQU %00111111