summaryrefslogtreecommitdiff
path: root/src/constants/duel_constants.asm
blob: eaa9a65640c42a96a3542f0c6c1abb25695a4a95 (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
MAX_BENCH_POKEMON     EQU 5
MAX_PLAY_AREA_POKEMON EQU 6 ; arena + bench
MAX_HP                EQU 120
HP_BAR_LENGTH         EQU MAX_HP / 10

; hWhoseTurn constants
PLAYER_TURN   EQUS "HIGH(wPlayerDuelVariables)"
OPPONENT_TURN EQUS "HIGH(wOpponentDuelVariables)"

; wDuelType constants
DUELTYPE_LINK     EQU $1
DUELTYPE_PRACTICE EQU $80
; for normal duels (vs AI), wDuelType is $80 + [wOpponentDeckID]

; wDuelFinished constants
TURN_PLAYER_WON  EQU $1
TURN_PLAYER_LOST EQU $2
TURN_PLAYER_TIED EQU $3

; wDuelResult constants
DUEL_WIN  EQU $0
DUEL_LOSS EQU $1

; Box message id's
	const_def
	const BOXMSG_PLAYERS_TURN
	const BOXMSG_OPPONENTS_TURN
	const BOXMSG_BETWEEN_TURNS
	const BOXMSG_DECISION
	const BOXMSG_BENCH_POKEMON
	const BOXMSG_ARENA_POKEMON
	const BOXMSG_COIN_TOSS

; wPlayerDuelVariables or wOpponentDuelVariables constants
DUELVARS_CARD_LOCATIONS                  EQUS "LOW(wPlayerCardLocations)"               ; 00
DUELVARS_HAND                            EQUS "LOW(wPlayerHand)"                        ; 42
DUELVARS_DECK_CARDS                      EQUS "LOW(wPlayerDeckCards)"                   ; 7e
DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK     EQUS "LOW(wPlayerNumberOfCardsNotInDeck)"      ; ba
DUELVARS_ARENA_CARD                      EQUS "LOW(wPlayerArenaCard)"                   ; bb
DUELVARS_BENCH                           EQUS "LOW(wPlayerBench)"                       ; bc
DUELVARS_ARENA_CARD_FLAGS_C2             EQU                                             $c2
DUELVARS_ARENA_CARD_HP                   EQUS "LOW(wPlayerArenaCardHP)"                 ; c8
DUELVARS_BENCH1_CARD_HP                  EQUS "LOW(wPlayerBench1CardHP)"                ; c9
DUELVARS_BENCH2_CARD_HP                  EQUS "LOW(wPlayerBench2CardHP)"                ; ca
DUELVARS_BENCH3_CARD_HP                  EQUS "LOW(wPlayerBench3CardHP)"                ; cb
DUELVARS_BENCH4_CARD_HP                  EQUS "LOW(wPlayerBench4CardHP)"                ; cc
DUELVARS_BENCH5_CARD_HP                  EQUS "LOW(wPlayerBench5CardHP)"                ; cd
DUELVARS_ARENA_CARD_STAGE                EQUS "LOW(wPlayerArenaCardStage)"              ; ce
DUELVARS_BENCH1_CARD_STAGE               EQUS "LOW(wPlayerBench1CardStage)"             ; cf
DUELVARS_BENCH2_CARD_STAGE               EQUS "LOW(wPlayerBench2CardStage)"             ; d0
DUELVARS_BENCH3_CARD_STAGE               EQUS "LOW(wPlayerBench3CardStage)"             ; d1
DUELVARS_BENCH4_CARD_STAGE               EQUS "LOW(wPlayerBench4CardStage)"             ; d2
DUELVARS_BENCH5_CARD_STAGE               EQUS "LOW(wPlayerBench5CardStage)"             ; d3
DUELVARS_ARENA_CARD_CHANGED_TYPE         EQUS "LOW(wPlayerArenaCardChangedType)"        ; d4
DUELVARS_BENCH1_CARD_CHANGED_TYPE        EQUS "LOW(wPlayerBench1CardChangedType)"       ; d5
DUELVARS_BENCH2_CARD_CHANGED_TYPE        EQUS "LOW(wPlayerBench2CardChangedType)"       ; d6
DUELVARS_BENCH3_CARD_CHANGED_TYPE        EQUS "LOW(wPlayerBench3CardChangedType)"       ; d7
DUELVARS_BENCH4_CARD_CHANGED_TYPE        EQUS "LOW(wPlayerBench4CardChangedType)"       ; d8
DUELVARS_BENCH5_CARD_CHANGED_TYPE        EQUS "LOW(wPlayerBench5CardChangedType)"       ; d9
DUELVARS_ARENA_CARD_ATTACHED_DEFENDER    EQUS "LOW(wPlayerArenaCardAttachedDefender)"   ; da
DUELVARS_BENCH1_CARD_ATTACHED_DEFENDER   EQUS "LOW(wPlayerBench1CardAttachedDefender)"  ; db
DUELVARS_BENCH2_CARD_ATTACHED_DEFENDER   EQUS "LOW(wPlayerBench2CardAttachedDefender)"  ; dc
DUELVARS_BENCH3_CARD_ATTACHED_DEFENDER   EQUS "LOW(wPlayerBench3CardAttachedDefender)"  ; dd
DUELVARS_BENCH4_CARD_ATTACHED_DEFENDER   EQUS "LOW(wPlayerBench4CardAttachedDefender)"  ; de
DUELVARS_BENCH5_CARD_ATTACHED_DEFENDER   EQUS "LOW(wPlayerBench5CardAttachedDefender)"  ; df
DUELVARS_ARENA_CARD_ATTACHED_PLUSPOWER   EQUS "LOW(wPlayerArenaCardAttachedPluspower)"  ; e0
DUELVARS_BENCH1_CARD_ATTACHED_PLUSPOWER  EQUS "LOW(wPlayerBench1CardAttachedPluspower)" ; e1
DUELVARS_BENCH2_CARD_ATTACHED_PLUSPOWER  EQUS "LOW(wPlayerBench2CardAttachedPluspower)" ; e2
DUELVARS_BENCH3_CARD_ATTACHED_PLUSPOWER  EQUS "LOW(wPlayerBench3CardAttachedPluspower)" ; e3
DUELVARS_BENCH4_CARD_ATTACHED_PLUSPOWER  EQUS "LOW(wPlayerBench4CardAttachedPluspower)" ; e4
DUELVARS_BENCH5_CARD_ATTACHED_PLUSPOWER  EQUS "LOW(wPlayerBench5CardAttachedPluspower)" ; e5
DUELVARS_ARENA_CARD_SUBSTATUS1           EQUS "LOW(wPlayerArenaCardSubstatus1)"         ; e7
DUELVARS_ARENA_CARD_SUBSTATUS2           EQUS "LOW(wPlayerArenaCardSubstatus2)"         ; e8
DUELVARS_ARENA_CARD_CHANGED_WEAKNESS     EQUS "LOW(wPlayerArenaCardChangedWeakness)"    ; e9
DUELVARS_ARENA_CARD_CHANGED_RESISTANCE   EQUS "LOW(wPlayerArenaCardChangedResistance)"  ; ea
DUELVARS_ARENA_CARD_SUBSTATUS3           EQUS "LOW(wPlayerArenaCardSubstatus3)"         ; eb
DUELVARS_PRIZES                          EQUS "LOW(wPlayerPrizes)"                      ; ec
DUELVARS_NUMBER_OF_CARDS_IN_DISCARD_PILE EQUS "LOW(wPlayerNumberOfCardsInDiscardPile)"  ; ed
DUELVARS_NUMBER_OF_CARDS_IN_HAND         EQUS "LOW(wPlayerNumberOfCardsInHand)"         ; ee
DUELVARS_NUMBER_OF_POKEMON_IN_PLAY_AREA  EQUS "LOW(wPlayerNumberOfPokemonInPlayArea)"   ; ef
DUELVARS_ARENA_CARD_STATUS               EQUS "LOW(wPlayerArenaCardStatus)"             ; f0
DUELVARS_DUELIST_TYPE                    EQUS "LOW(wPlayerDuelistType)"                 ; f1
DUELVARS_ARENA_CARD_DISABLED_MOVE_INDEX  EQUS "LOW(wPlayerArenaCardDisabledMoveIndex)"  ; f2

; card location constants (DUELVARS_CARD_LOCATIONS)
CARD_LOCATION_DECK         EQU $00
CARD_LOCATION_HAND         EQU $01
CARD_LOCATION_DISCARD_PILE EQU $02
CARD_LOCATION_PRIZE        EQU $08
CARD_LOCATION_ARENA        EQU $10
CARD_LOCATION_BENCH_1      EQU $11
CARD_LOCATION_BENCH_2      EQU $12
CARD_LOCATION_BENCH_3      EQU $13
CARD_LOCATION_BENCH_4      EQU $14
CARD_LOCATION_BENCH_5      EQU $15

; card location flags (DUELVARS_CARD_LOCATIONS)
CARD_LOCATION_PLAY_AREA_F  EQU 4 ; includes arena and bench
CARD_LOCATION_PLAY_AREA    EQU 1 << CARD_LOCATION_PLAY_AREA_F
CARD_LOCATION_JUST_DRAWN_F EQU 6
CARD_LOCATION_JUST_DRAWN   EQU 1 << CARD_LOCATION_JUST_DRAWN_F

; play area location offsets (CARD_LOCATION_* - CARD_LOCATION_PLAY_AREA)
PLAY_AREA_ARENA   EQU $0
PLAY_AREA_BENCH_1 EQU $1
PLAY_AREA_BENCH_2 EQU $2
PLAY_AREA_BENCH_3 EQU $3
PLAY_AREA_BENCH_4 EQU $4
PLAY_AREA_BENCH_5 EQU $5

; duelist types (DUELVARS_DUELIST_TYPE)
DUELIST_TYPE_PLAYER   EQU $00
DUELIST_TYPE_LINK_OPP EQU $01
DUELIST_TYPE_AI_OPP   EQU $80 ; $80 + [wOpponentDeckID]

; status conditions (DUELVARS_ARENA_CARD_STATUS)
; two statuses can be combined if they are identified by a different nybble
NO_STATUS       EQU $00
CONFUSED        EQU $01
ASLEEP          EQU $02
PARALYZED       EQU $03
POISONED        EQU $80
DOUBLE_POISONED EQU $c0

CNF_SLP_PRZ  EQU $0f ; confused, asleep or paralyzed

; substatus conditions (DUELVARS_ARENA_CARD_SUBSTATUS*)
SUBSTATUS1_AGILITY      EQU $0c
SUBSTATUS1_FLY          EQU $0d
SUBSTATUS1_HARDEN       EQU $0e
SUBSTATUS1_NO_DAMAGE_STIFFEN  EQU $0f
SUBSTATUS1_NO_DAMAGE_10 EQU $10
SUBSTATUS1_NO_DAMAGE_11 EQU $11
SUBSTATUS1_REDUCE_BY_20 EQU $13
SUBSTATUS1_BARRIER      EQU $14
SUBSTATUS1_HALVE_DAMAGE EQU $15
SUBSTATUS1_DESTINY_BOND EQU $16
SUBSTATUS1_NO_DAMAGE_17 EQU $17
SUBSTATUS1_NEXT_TURN_DOUBLE_DAMAGE EQU $19
SUBSTATUS1_REDUCE_BY_10 EQU $1e

SUBSTATUS2_SMOKESCREEN    EQU $01
SUBSTATUS2_SAND_ATTACK    EQU $02
SUBSTATUS2_REDUCE_BY_20   EQU $03
SUBSTATUS2_AMNESIA        EQU $04
SUBSTATUS2_TAIL_WAG       EQU $05
SUBSTATUS2_LEER           EQU $06
SUBSTATUS2_POUNCE         EQU $07
SUBSTATUS2_UNABLE_RETREAT EQU $09
SUBSTATUS2_BONE_ATTACK    EQU $0b
SUBSTATUS2_GROWL          EQU $12

SUBSTATUS3_THIS_TURN_DOUBLE_DAMAGE EQU 0
SUBSTATUS3_HEADACHE                EQU 1

; DUELVARS_ARENA_CARD_FLAGS_C2 constants
CAN_EVOLVE_THIS_TURN_F EQU 7
CAN_EVOLVE_THIS_TURN   EQU 1 << CAN_EVOLVE_THIS_TURN_F

; wNoDamageOrEffect constants
NO_DAMAGE_OR_EFFECT_AGILITY      EQU $01
NO_DAMAGE_OR_EFFECT_BARRIER      EQU $02
NO_DAMAGE_OR_EFFECT_FLY          EQU $03
NO_DAMAGE_OR_EFFECT_TRANSPARENCY EQU $04
NO_DAMAGE_OR_EFFECT_NSHIELD      EQU $05

; wDamageEffectiveness constants
WEAKNESS   EQU 1
RESISTANCE EQU 2