blob: 641d04b18565c65419fa55285b0e1bca3b5d030d (
plain)
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
|
NONE EQU $0
; sCardCollection constants
CARD_COLLECTION_SIZE EQU $100 ; cards
MAX_AMOUNT_OF_CARD EQU 99
CARD_NOT_OWNED_F EQU 7
CARD_NOT_OWNED EQU 1 << CARD_NOT_OWNED_F
CARD_COUNT_MASK EQU $7f
; sDeck* and generic deck constants
NUM_DECKS EQU 4
DECK_NAME_SIZE EQU 24
DECK_SIZE EQU 60
; card data offsets (data/cards.asm and card_data_struct)
; all card types
CARD_DATA_TYPE EQU $00
CARD_DATA_GFX EQU $01
CARD_DATA_NAME EQU $03
CARD_DATA_RARITY EQU $05
CARD_DATA_SET EQU $06
CARD_DATA_ID EQU $07
CARD_DATA_EFFECT_COMMANDS EQU $08 ; !TYPE_PKMN
CARD_DATA_HP EQU $08 ; TYPE_PKMN
CARD_DATA_STAGE EQU $09 ; TYPE_PKMN
CARD_DATA_NONPKMN_DESCRIPTION EQU $0a ; !TYPE_PKMN
CARD_DATA_PREEVO_NAME EQU $0a ; TYPE_PKMN
TRN_CARD_DATA_LENGTH EQU $0e
ENERGY_CARD_DATA_LENGTH EQU $0e
; TYPE_PKMN card only
CARD_DATA_MOVE1 EQU $0c
CARD_DATA_MOVE1_ENERGY_COST EQU $0c
CARD_DATA_MOVE1_NAME EQU $10
CARD_DATA_MOVE1_DESCRIPTION EQU $12
CARD_DATA_MOVE1_DAMAGE EQU $16
CARD_DATA_MOVE1_CATEGORY EQU $17
CARD_DATA_MOVE1_EFFECT_COMMANDS EQU $18
CARD_DATA_MOVE1_FLAG1 EQU $1a
CARD_DATA_MOVE1_FLAG2 EQU $1b
CARD_DATA_MOVE1_FLAG3 EQU $1c
CARD_DATA_MOVE1_UNKNOWN1 EQU $1d
CARD_DATA_MOVE1_ANIMATION EQU $1e
; TYPE_PKMN card only
CARD_DATA_MOVE2 EQU $1f
CARD_DATA_MOVE2_ENERGY_COST EQU $1f
CARD_DATA_MOVE2_NAME EQU $23
CARD_DATA_MOVE2_DESCRIPTION EQU $25
CARD_DATA_MOVE2_DAMAGE EQU $29
CARD_DATA_MOVE2_CATEGORY EQU $2a
CARD_DATA_MOVE2_EFFECT_COMMANDS EQU $2b
CARD_DATA_MOVE2_FLAG1 EQU $2d
CARD_DATA_MOVE2_FLAG2 EQU $2e
CARD_DATA_MOVE2_FLAG3 EQU $2f
CARD_DATA_MOVE2_UNKNOWN1 EQU $30
CARD_DATA_MOVE2_ANIMATION EQU $31
; TYPE_PKMN card only
CARD_DATA_RETREAT_COST EQU $32
CARD_DATA_WEAKNESS EQU $33
CARD_DATA_RESISTANCE EQU $34
CARD_DATA_CATEGORY EQU $35
CARD_DATA_POKEDEX_NUMBER EQU $37
CARD_DATA_UNKNOWN1 EQU $38
CARD_DATA_LEVEL EQU $39
CARD_DATA_LENGTH EQU $3a
CARD_DATA_WEIGHT EQU $3c
CARD_DATA_PKMN_DESCRIPTION EQU $3e
CARD_DATA_UNKNOWN2 EQU $40
PKMN_CARD_DATA_LENGTH EQU $41
; generic type (color) constants
const_def
const FIRE ; $00
const GRASS ; $01
const LIGHTNING ; $02
const WATER ; $03
const FIGHTING ; $04
const PSYCHIC ; $05
NUM_COLORED_TYPES EQU const_value
const COLORLESS ; $06
const UNUSED_TYPE ; $07
NUM_TYPES EQU const_value
; generic type (color) flag constants
FIRE_F EQU $1 << FIRE ; $01
GRASS_F EQU $1 << GRASS ; $02
LIGHTNING_F EQU $1 << LIGHTNING ; $04
WATER_F EQU $1 << WATER ; $08
FIGHTING_F EQU $1 << FIGHTING ; $10
PSYCHIC_F EQU $1 << PSYCHIC ; $20
COLORLESS_F EQU $1 << COLORLESS ; $40
; CARD_DATA_TYPE constants
TYPE_PKMN_FIRE EQU FIRE
TYPE_PKMN_GRASS EQU GRASS
TYPE_PKMN_LIGHTNING EQU LIGHTNING
TYPE_PKMN_WATER EQU WATER
TYPE_PKMN_FIGHTING EQU FIGHTING
TYPE_PKMN_PSYCHIC EQU PSYCHIC
TYPE_PKMN_COLORLESS EQU COLORLESS
TYPE_PKMN_UNUSED EQU UNUSED_TYPE
const_def TYPE_PKMN_UNUSED + 1 - TYPE_PKMN_FIRE
TYPE_ENERGY EQU const_value
const TYPE_ENERGY_FIRE ; $08
const TYPE_ENERGY_GRASS ; $09
const TYPE_ENERGY_LIGHTNING ; $0a
const TYPE_ENERGY_WATER ; $0b
const TYPE_ENERGY_FIGHTING ; $0c
const TYPE_ENERGY_PSYCHIC ; $0d
const TYPE_ENERGY_DOUBLE_COLORLESS ; $0e
const TYPE_ENERGY_UNUSED ; $0f
const TYPE_TRAINER ; $10
const TYPE_TRAINER_UNUSED ; $11
NUM_CARD_TYPES EQU const_value + -1
TYPE_PKMN EQU %111
TYPE_ENERGY_F EQU 3
TYPE_TRAINER_F EQU 4
; CARD_DATA_RARITY constants
CIRCLE EQU $0
DIAMOND EQU $1
STAR EQU $2
PROMOSTAR EQU $ff
; CARD_DATA_SET constants (set 1)
COLOSSEUM EQU $0 << 4
EVOLUTION EQU $1 << 4
MYSTERY EQU $2 << 4
LABORATORY EQU $3 << 4
PROMOTIONAL EQU $4 << 4
ENERGY EQU $5 << 4
; CARD_DATA_SET constants (set 2)
JUNGLE EQU $1
FOSSIL EQU $2
GB EQU $7
PRO EQU $8
; CARD_DATA_STAGE constants
BASIC EQU $00
STAGE1 EQU $01
STAGE2 EQU $02
; CARD_DATA_WEAKNESS and CARD_DATA_RESISTANCE constants
WR_FIRE EQU $80
WR_GRASS EQU $40
WR_LIGHTNING EQU $20
WR_WATER EQU $10
WR_FIGHTING EQU $08
WR_PSYCHIC EQU $04
; CARD_DATA_MOVE*_CATEGORY constants
DAMAGE_NORMAL EQU $00
DAMAGE_PLUS EQU $01
DAMAGE_MINUS EQU $02
DAMAGE_X EQU $03
POKEMON_POWER EQU $04
RESIDUAL_F EQU 7
RESIDUAL EQU 1 << RESIDUAL_F
; CARD_DATA_MOVE*_FLAG1 constants
INFLICT_POISON EQU %00000001
INFLICT_SLEEP EQU %00000010
INFLICT_PARALYSIS EQU %00000100
INFLICT_CONFUSION EQU %00001000
LOW_RECOIL EQU %00010000
DAMAGE_TO_OPPONENT_BENCH EQU %00100000
HIGH_RECOIL EQU %01000000
DRAW_CARD EQU %10000000
; CARD_DATA_MOVE*_FLAG2 constants
; bits 5, 6 and 7 cover a wide variety of effects
SWITCH_OPPONENT_POKEMON EQU %00000001
HEAL_USER EQU %00000010
NULLIFY_OR_WEAKEN_ATTACK EQU %00000100
DISCARD_ENERGY EQU %00001000
ATTACHED_ENERGY_BOOST EQU %00010000
FLAG_2_BIT_5 EQU %00100000
FLAG_2_BIT_6 EQU %01000000
FLAG_2_BIT_7 EQU %10000000
; CARD_DATA_MOVE*_FLAG3 constants
; bit 1 covers a wide variety of effects
; bits 2-7 are unused
BOOST_IF_TAKEN_DAMAGE EQU %00000001
FLAG_3_BIT_1 EQU %00000010
; special CARD_DATA_RETREAT_COST values
UNABLE_RETREAT EQU $64
|