blob: 775dcbe62b91d6a879dc78d9eb291dd7c484c01b (
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
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
|
#ifndef GUARD_CONSTANTS_CONTEST_H
#define GUARD_CONSTANTS_CONTEST_H
#define APPLAUSE_METER_SIZE 5
#define CONTEST_NUM_APPEALS 5
#define CONTEST_LAST_APPEAL (CONTEST_NUM_APPEALS - 1)
#define MAX_CONTEST_MOVE_HEARTS 8
#define LINK_CONTEST_FLAG_IS_LINK (1 << 0)
#define LINK_CONTEST_FLAG_IS_WIRELESS (1 << 1)
#define LINK_CONTEST_FLAG_HAS_RS_PLAYER (1 << 2)
#define CONTEST_RANK_NORMAL 0
#define CONTEST_RANK_SUPER 1
#define CONTEST_RANK_HYPER 2
#define CONTEST_RANK_MASTER 3
#define CONTEST_RANK_LINK 4
// States for VAR_CONTEST_TYPE
#define CONTEST_TYPE_NPC_NORMAL (CONTEST_RANK_NORMAL + 1)
#define CONTEST_TYPE_NPC_SUPER (CONTEST_RANK_SUPER + 1)
#define CONTEST_TYPE_NPC_HYPER (CONTEST_RANK_HYPER + 1)
#define CONTEST_TYPE_NPC_MASTER (CONTEST_RANK_MASTER + 1)
#define CONTEST_TYPE_LINK (CONTEST_RANK_LINK + 1)
// IDs below - 1 are indexes into gSaveBlock1Ptr->contestWinners[]
// CONTEST_WINNER_ARTIST is for the winner of the most recent contest, and is not saved.
#define CONTEST_WINNER_ARTIST 0
#define CONTEST_WINNER_HALL_1 1
#define CONTEST_WINNER_HALL_2 2
#define CONTEST_WINNER_HALL_3 3
#define CONTEST_WINNER_HALL_4 4
#define CONTEST_WINNER_HALL_5 5
#define CONTEST_WINNER_HALL_6 6
#define NUM_CONTEST_HALL_WINNERS 6
#define CONTEST_WINNER_HALL_UNUSED_1 7 // These two have data for gDefaultContestWinners
#define CONTEST_WINNER_HALL_UNUSED_2 8 // but there are only 6 paintings in the Contest Hall
#define CONTEST_WINNER_MUSEUM_COOL 9
#define CONTEST_WINNER_MUSEUM_BEAUTY 10
#define CONTEST_WINNER_MUSEUM_CUTE 11
#define CONTEST_WINNER_MUSEUM_SMART 12
#define CONTEST_WINNER_MUSEUM_TOUGH 13
// NUM_CONTEST_WINNERS in constants/global.h
#define MUSEUM_CONTEST_WINNERS_START (CONTEST_WINNER_MUSEUM_COOL - 1)
#define CONTEST_SAVE_FOR_MUSEUM ((u8)-1)
#define CONTEST_SAVE_FOR_ARTIST ((u8)-2)
// The number of possible captions for a Contest painting, per category
#define NUM_PAINTING_CAPTIONS 3
#define CANT_ENTER_CONTEST 0
#define CAN_ENTER_CONTEST_EQUAL_RANK 1
#define CAN_ENTER_CONTEST_HIGH_RANK 2
#define CANT_ENTER_CONTEST_EGG 3
#define CANT_ENTER_CONTEST_FAINTED 4
#define CONTEST_AI_CHECK_BAD_MOVE (1 << 0)
#define CONTEST_AI_CHECK_COMBO (1 << 1)
#define CONTEST_AI_CHECK_BORING (1 << 2)
#define CONTEST_AI_CHECK_EXCITEMENT (1 << 3)
#define CONTEST_AI_CHECK_ORDER (1 << 4)
#define CONTEST_AI_CHECK_GOOD_MOVE (1 << 5)
#define CONTEST_AI_ERRATIC (1 << 6)
#define CONTEST_AI_DUMMY_1 (1 << 7)
#define CONTEST_AI_DUMMY_2 (1 << 8)
#define CONTEST_AI_DUMMY_3 (1 << 9)
#define CONTEST_AI_DUMMY_4 (1 << 10)
#define CONTEST_AI_DUMMY_5 (1 << 11)
#define CONTEST_AI_DUMMY_6 (1 << 12)
#define CONTEST_AI_DUMMY_7 (1 << 13)
#define CONTEST_AI_DUMMY_8 (1 << 14)
#define CONTEST_AI_DUMMY_9 (1 << 15)
#define CONTEST_AI_DUMMY_10 (1 << 16)
#define CONTEST_AI_DUMMY_11 (1 << 17)
#define CONTEST_AI_DUMMY_12 (1 << 18)
#define CONTEST_AI_DUMMY_13 (1 << 19)
#define CONTEST_AI_DUMMY_14 (1 << 20)
#define CONTEST_AI_DUMMY_15 (1 << 21)
#define CONTEST_AI_DUMMY_16 (1 << 22)
#define CONTEST_AI_DUMMY_17 (1 << 23)
#define CONTEST_AI_DUMMY_18 (1 << 24)
#define CONTEST_AI_DUMMY_19 (1 << 25)
#define CONTEST_AI_DUMMY_20 (1 << 26)
#define CONTEST_AI_DUMMY_21 (1 << 27)
#define CONTEST_AI_DUMMY_22 (1 << 28)
#define CONTEST_AI_DUMMY_23 (1 << 29)
#define CONTEST_AI_DUMMY_24 (1 << 30)
#define CONTEST_AI_DUMMY_25 (1 << 31)
// The below scripts are used by every AI contest opponent
// It includes every non-dummy script
#define CONTEST_AI_COMMON (CONTEST_AI_CHECK_BAD_MOVE | CONTEST_AI_CHECK_COMBO | CONTEST_AI_CHECK_BORING | \
CONTEST_AI_CHECK_EXCITEMENT | CONTEST_AI_CHECK_ORDER | CONTEST_AI_CHECK_GOOD_MOVE | CONTEST_AI_ERRATIC | \
CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5)
#define CONTEST_EFFECT_HIGHLY_APPEALING 0
#define CONTEST_EFFECT_USER_MORE_EASILY_STARTLED 1
#define CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES 2
#define CONTEST_EFFECT_REPETITION_NOT_BORING 3
#define CONTEST_EFFECT_AVOID_STARTLE_ONCE 4
#define CONTEST_EFFECT_AVOID_STARTLE 5
#define CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY 6
#define CONTEST_EFFECT_USER_LESS_EASILY_STARTLED 7
#define CONTEST_EFFECT_STARTLE_FRONT_MON 8
#define CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS 9
#define CONTEST_EFFECT_STARTLE_PREV_MON 10
#define CONTEST_EFFECT_STARTLE_PREV_MONS 11
#define CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON 12
#define CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS 13
#define CONTEST_EFFECT_STARTLE_PREV_MON_2 14
#define CONTEST_EFFECT_STARTLE_PREV_MONS_2 15
#define CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION 16
#define CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION 17
#define CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN 18
#define CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL 19
#define CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL 20
#define CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL 21
#define CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL 22
#define CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL 23
#define CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL 24
#define CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS 25
#define CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS 26
#define CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS 27
#define CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION 28
#define CONTEST_EFFECT_BETTER_IF_FIRST 29
#define CONTEST_EFFECT_BETTER_IF_LAST 30
#define CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES 31
#define CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE 32
#define CONTEST_EFFECT_BETTER_WHEN_LATER 33
#define CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING 34
#define CONTEST_EFFECT_BETTER_IF_SAME_TYPE 35
#define CONTEST_EFFECT_BETTER_IF_DIFF_TYPE 36
#define CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL 37
#define CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS 38
#define CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION 39
#define CONTEST_EFFECT_NEXT_APPEAL_EARLIER 40
#define CONTEST_EFFECT_NEXT_APPEAL_LATER 41
#define CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER 42
#define CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER 43
#define CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST 44
#define CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS 45
#define CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED 46
#define CONTEST_EFFECT_DONT_EXCITE_AUDIENCE 47
// Each of the above effects is grouped into one of these effect type categories
// Only a few of these get checked by the AI, the rest go unused
#define CONTEST_EFFECT_TYPE_APPEAL 0
#define CONTEST_EFFECT_TYPE_AVOID_STARTLE 1
#define CONTEST_EFFECT_TYPE_STARTLE_MON 2
#define CONTEST_EFFECT_TYPE_STARTLE_MONS 3
#define CONTEST_EFFECT_TYPE_WORSEN 4
#define CONTEST_EFFECT_TYPE_SPECIAL_APPEAL 5
#define CONTEST_EFFECT_TYPE_TURN_ORDER 6
#define COMBO_STARTER_RAIN_DANCE 1
#define COMBO_STARTER_RAGE 2
#define COMBO_STARTER_FOCUS_ENERGY 3
#define COMBO_STARTER_HYPNOSIS 4
#define COMBO_STARTER_ENDURE 5
#define COMBO_STARTER_HORN_ATTACK 6
#define COMBO_STARTER_SWORDS_DANCE 7
#define COMBO_STARTER_STOCKPILE 8
#define COMBO_STARTER_SUNNY_DAY 9
#define COMBO_STARTER_REST 10
#define COMBO_STARTER_VICE_GRIP 11
#define COMBO_STARTER_DEFENSE_CURL 12
#define COMBO_STARTER_CHARGE 13
#define COMBO_STARTER_ROCK_THROW 14
#define COMBO_STARTER_YAWN 15
#define COMBO_STARTER_SCARY_FACE 16
#define COMBO_STARTER_POWDER_SNOW 17
#define COMBO_STARTER_LOCK_ON 18
#define COMBO_STARTER_SOFT_BOILED 19
#define COMBO_STARTER_MEAN_LOOK 20
#define COMBO_STARTER_SCRATCH 21
#define COMBO_STARTER_GROWTH 22
#define COMBO_STARTER_HAIL 23
#define COMBO_STARTER_SANDSTORM 24
#define COMBO_STARTER_BELLY_DRUM 25
#define COMBO_STARTER_MIND_READER 26
#define COMBO_STARTER_DRAGON_BREATH 27
#define COMBO_STARTER_DRAGON_RAGE 28
#define COMBO_STARTER_DRAGON_DANCE 29
#define COMBO_STARTER_SURF 30
#define COMBO_STARTER_DIVE 31
#define COMBO_STARTER_STRING_SHOT 32
#define COMBO_STARTER_LEER 33
#define COMBO_STARTER_TAUNT 34
#define COMBO_STARTER_CHARM 35
#define COMBO_STARTER_HARDEN 36
#define COMBO_STARTER_SING 37
#define COMBO_STARTER_EARTHQUAKE 38
#define COMBO_STARTER_DOUBLE_TEAM 39
#define COMBO_STARTER_CURSE 40
#define COMBO_STARTER_SWEET_SCENT 41
#define COMBO_STARTER_SLUDGE 42
#define COMBO_STARTER_SLUDGE_BOMB 43
#define COMBO_STARTER_THUNDER_PUNCH 44
#define COMBO_STARTER_FIRE_PUNCH 45
#define COMBO_STARTER_ICE_PUNCH 46
#define COMBO_STARTER_PECK 47
#define COMBO_STARTER_METAL_SOUND 48
#define COMBO_STARTER_MUD_SPORT 49
#define COMBO_STARTER_WATER_SPORT 50
#define COMBO_STARTER_BONE_CLUB 51
#define COMBO_STARTER_BONEMERANG 52
#define COMBO_STARTER_BONE_RUSH 53
#define COMBO_STARTER_SAND_ATTACK 54
#define COMBO_STARTER_MUD_SLAP 55
#define COMBO_STARTER_FAKE_OUT 56
#define COMBO_STARTER_PSYCHIC 57
#define COMBO_STARTER_KINESIS 58
#define COMBO_STARTER_CONFUSION 59
#define COMBO_STARTER_POUND 60
#define COMBO_STARTER_SMOG 61
#define COMBO_STARTER_CALM_MIND 62
#endif // GUARD_CONSTANTS_CONTEST_H
|