More battle_dome.c doc
This commit is contained in:
1 parent
bb692a03eb
commit
fb5bea98ce
34 files changed
+2838
-2873
No files matched your search
@@ -1,5 +1,3 @@
|
||||
@ TODO: Add explanatory comments to macros
|
||||
|
||||
@ Initialize the Battle Dome challenge
|
||||
.macro dome_init
|
||||
setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT
|
||||
@@ -35,7 +33,7 @@
|
||||
special CallBattleDomeFunction
|
||||
.endm
|
||||
|
||||
@
|
||||
@ Choose which of the opponents mons to use in battle and load them into the enemy party
|
||||
.macro dome_initopponentparty
|
||||
setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY
|
||||
special CallBattleDomeFunction
|
||||
@@ -47,19 +45,19 @@
|
||||
special CallBattleDomeFunction
|
||||
.endm
|
||||
|
||||
@
|
||||
@ Displays the tourney tree for the current tourney
|
||||
.macro dome_showtourneytree
|
||||
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE
|
||||
special CallBattleDomeFunction
|
||||
.endm
|
||||
|
||||
@
|
||||
.macro dome_showresultstree
|
||||
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE
|
||||
@ Displays the tourney tree for the results of the previous tourney. Before the player enters their first tourney this is a random tourney generated by dome_initresultstree
|
||||
.macro dome_showprevtourneytree
|
||||
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_PREV_TOURNEY_TREE
|
||||
special CallBattleDomeFunction
|
||||
.endm
|
||||
|
||||
@
|
||||
@ Sets gTrainerBattleOpponent_A to the trainer ID of the next opponent
|
||||
.macro dome_setopponent
|
||||
setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_OPPONENT_ID
|
||||
special CallBattleDomeFunction
|
||||
@@ -71,7 +69,7 @@
|
||||
special CallBattleDomeFunction
|
||||
.endm
|
||||
|
||||
@
|
||||
@ A non-interactive version of the tourney tree shown when a round is completed
|
||||
.macro dome_showstatictourneytree
|
||||
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE
|
||||
special CallBattleDomeFunction
|
||||
@@ -121,7 +119,7 @@
|
||||
special CallBattleDomeFunction
|
||||
.endm
|
||||
|
||||
@
|
||||
@ Compares the initial tournament ranking (seed) of the player to opponent A. Returns 1 if the player's seed is better, 2 if the opponent's seed is better.
|
||||
.macro dome_compareseeds
|
||||
setvar VAR_0x8004, BATTLE_DOME_FUNC_COMPARE_SEEDS
|
||||
special CallBattleDomeFunction
|
||||
@@ -139,7 +137,7 @@
|
||||
special CallBattleDomeFunction
|
||||
.endm
|
||||
|
||||
@
|
||||
@ Generates the tourney trainers and their parties, and seeds them in the tourney tree
|
||||
.macro dome_inittrainers
|
||||
setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_TRAINERS
|
||||
special CallBattleDomeFunction
|
||||
|
||||
@@ -116,7 +116,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent:: @ 824BE4F
|
||||
playse SE_W227B
|
||||
call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround
|
||||
delay 60
|
||||
BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D:: @ 824BE8D
|
||||
BattleFrontier_BattleDomeBattleRoom_EventScript_LostTourney:: @ 824BE8D
|
||||
dome_resolvewinners DOME_PLAYER_LOST_MATCH
|
||||
BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobbyLost:: @ 824BE9A
|
||||
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST
|
||||
@@ -452,7 +452,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker:: @ 824C420
|
||||
playse SE_W227B
|
||||
call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround
|
||||
waitse
|
||||
goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D
|
||||
goto BattleFrontier_BattleDomeBattleRoom_EventScript_LostTourney
|
||||
|
||||
BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerDraw:: @ 824C436
|
||||
setvar VAR_TEMP_2, DRAW_TUCKER
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
"y": 10,
|
||||
"elevation": 0,
|
||||
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
|
||||
"script": "BattleFrontier_BattleDomeLobby_EventScript_ShowLastTourneyTree"
|
||||
"script": "BattleFrontier_BattleDomeLobby_EventScript_ShowPrevTourneyTree"
|
||||
},
|
||||
{
|
||||
"type": "sign",
|
||||
|
||||
@@ -352,35 +352,35 @@ BattleFrontier_BattleDomeLobby_EventScript_ShowDoublesResults:: @ 8249D6B
|
||||
releaseall
|
||||
end
|
||||
|
||||
BattleFrontier_BattleDomeLobby_EventScript_ShowLastTourneyTree:: @ 8249D84
|
||||
dome_get DOME_DATA_LAST_TOURNEY_TYPE
|
||||
BattleFrontier_BattleDomeLobby_EventScript_ShowPrevTourneyTree:: @ 8249D84
|
||||
dome_get DOME_DATA_PREV_TOURNEY_TYPE
|
||||
compare VAR_RESULT, 0
|
||||
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsSinglesLv50
|
||||
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLv50
|
||||
compare VAR_RESULT, 1
|
||||
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsDoublesLv50
|
||||
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLv50
|
||||
compare VAR_RESULT, 2
|
||||
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsSinglesLvOpen
|
||||
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLvOpen
|
||||
compare VAR_RESULT, 3
|
||||
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsDoublesLvOpen
|
||||
call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLvOpen
|
||||
fadescreen FADE_TO_BLACK
|
||||
dome_showresultstree
|
||||
dome_showprevtourneytree
|
||||
waitstate
|
||||
end
|
||||
|
||||
BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsSinglesLv50:: @ 8249DC9
|
||||
msgbox BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsSinglesLv50, MSGBOX_SIGN
|
||||
BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLv50:: @ 8249DC9
|
||||
msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLv50, MSGBOX_SIGN
|
||||
return
|
||||
|
||||
BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsDoublesLv50:: @ 8249DD2
|
||||
msgbox BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsDoublesLv50, MSGBOX_SIGN
|
||||
BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLv50:: @ 8249DD2
|
||||
msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLv50, MSGBOX_SIGN
|
||||
return
|
||||
|
||||
BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsSinglesLvOpen:: @ 8249DDB
|
||||
msgbox BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsSinglesLvOpen, MSGBOX_SIGN
|
||||
BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLvOpen:: @ 8249DDB
|
||||
msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLvOpen, MSGBOX_SIGN
|
||||
return
|
||||
|
||||
BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsDoublesLvOpen:: @ 8249DE4
|
||||
msgbox BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsDoublesLvOpen, MSGBOX_SIGN
|
||||
BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLvOpen:: @ 8249DE4
|
||||
msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLvOpen, MSGBOX_SIGN
|
||||
return
|
||||
|
||||
BattleFrontier_BattleDomeLobby_EventScript_Maniac:: @ 8249DED
|
||||
@@ -595,19 +595,19 @@ BattleFrontier_BattleDomeLobby_Text_ExplainDoublesChallenge: @ 824A721
|
||||
.string "If you don't save before interrupting,\n"
|
||||
.string "you will be disqualified.$"
|
||||
|
||||
BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsSinglesLv50: @ 824A966
|
||||
BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLv50: @ 824A966
|
||||
.string "They're the results of the last\n"
|
||||
.string "Level 50 SINGLE BATTLE Tournament.$"
|
||||
|
||||
BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsDoublesLv50: @ 824A9A9
|
||||
BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLv50: @ 824A9A9
|
||||
.string "They're the results of the last\n"
|
||||
.string "Level 50 DOUBLE BATTLE Tournament.$"
|
||||
|
||||
BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsSinglesLvOpen: @ 824A9EC
|
||||
BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLvOpen: @ 824A9EC
|
||||
.string "They're the results of the last\n"
|
||||
.string "Open Level SINGLE BATTLE Tournament.$"
|
||||
|
||||
BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsDoublesLvOpen: @ 824AA31
|
||||
BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLvOpen: @ 824AA31
|
||||
.string "They're the results of the last\n"
|
||||
.string "Open Level DOUBLE BATTLE Tournament.$"
|
||||
|
||||
|
||||
+56
-56
@@ -160,182 +160,182 @@ BattleDome_Text_EmphasizesHPAndSpAtk::
|
||||
BattleDome_Text_EmphasizesHPAndSpDef::
|
||||
.string "Emphasizes HP and SP. DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText6::
|
||||
BattleDome_Text_EmphasizesAtkAndDef::
|
||||
.string "Emphasizes ATTACK and DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText7::
|
||||
BattleDome_Text_EmphasizesAtkAndSpeed::
|
||||
.string "Emphasizes ATTACK and SPEED.$"
|
||||
|
||||
gBattleDomeOpponentStatsText8::
|
||||
BattleDome_Text_EmphasizesAtkAndSpAtk::
|
||||
.string "Emphasizes ATTACK and SP. ATTACK.$"
|
||||
|
||||
gBattleDomeOpponentStatsText9::
|
||||
BattleDome_Text_EmphasizesAtkAndSpDef::
|
||||
.string "Emphasizes ATTACK and SP. DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText10::
|
||||
BattleDome_Text_EmphasizesDefAndSpeed::
|
||||
.string "Emphasizes DEFENSE and SPEED.$"
|
||||
|
||||
gBattleDomeOpponentStatsText11::
|
||||
BattleDome_Text_EmphasizesDefAndSpAtk::
|
||||
.string "Emphasizes DEFENSE and SP. ATTACK.$"
|
||||
|
||||
gBattleDomeOpponentStatsText12::
|
||||
BattleDome_Text_EmphasizesDefAndSpDef::
|
||||
.string "Emphasizes DEFENSE and SP. DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText13::
|
||||
BattleDome_Text_EmphasizesSpeedAndSpAtk::
|
||||
.string "Emphasizes SPEED and SP. ATTACK.$"
|
||||
|
||||
gBattleDomeOpponentStatsText14::
|
||||
BattleDome_Text_EmphasizesSpeedAndSpDef::
|
||||
.string "Emphasizes SPEED and SP. DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText15::
|
||||
BattleDome_Text_EmphasizesSpAtkAndSpDef::
|
||||
.string "Emphasizes SP. ATTACK and SP. DEFENSE.$"
|
||||
|
||||
BattleDome_Text_EmphasizesHP::
|
||||
.string "Emphasizes HP.$"
|
||||
|
||||
gBattleDomeOpponentStatsText17::
|
||||
BattleDome_Text_EmphasizesAtk::
|
||||
.string "Emphasizes ATTACK.$"
|
||||
|
||||
gBattleDomeOpponentStatsText18::
|
||||
BattleDome_Text_EmphasizesDef::
|
||||
.string "Emphasizes DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText19::
|
||||
BattleDome_Text_EmphasizesSpeed::
|
||||
.string "Emphasizes SPEED.$"
|
||||
|
||||
gBattleDomeOpponentStatsText20::
|
||||
BattleDome_Text_EmphasizesSpAtk::
|
||||
.string "Emphasizes SP. ATTACK.$"
|
||||
|
||||
gBattleDomeOpponentStatsText21::
|
||||
BattleDome_Text_EmphasizesSpDef::
|
||||
.string "Emphasizes SP. DEFENSE.$"
|
||||
|
||||
BattleDome_Text_NeglectsHPAndAtk::
|
||||
.string "Neglects HP and ATTACK.$"
|
||||
|
||||
gBattleDomeOpponentStatsText23::
|
||||
BattleDome_Text_NeglectsHPAndDef::
|
||||
.string "Neglects HP and DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText24::
|
||||
BattleDome_Text_NeglectsHPAndSpeed::
|
||||
.string "Neglects HP and SPEED.$"
|
||||
|
||||
gBattleDomeOpponentStatsText25::
|
||||
BattleDome_Text_NeglectsHPAndSpAtk::
|
||||
.string "Neglects HP and SP. ATTACK.$"
|
||||
|
||||
gBattleDomeOpponentStatsText26::
|
||||
BattleDome_Text_NeglectsHPAndSpDef::
|
||||
.string "Neglects HP and SP. DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText27::
|
||||
BattleDome_Text_NeglectsAtkAndDef::
|
||||
.string "Neglects ATTACK and DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText28::
|
||||
BattleDome_Text_NeglectsAtkAndSpeed::
|
||||
.string "Neglects ATTACK and SPEED.$"
|
||||
|
||||
gBattleDomeOpponentStatsText29::
|
||||
BattleDome_Text_NeglectsAtkAndSpAtk::
|
||||
.string "Neglects ATTACK and SP. ATTACK.$"
|
||||
|
||||
gBattleDomeOpponentStatsText30::
|
||||
BattleDome_Text_NeglectsAtkAndSpDef::
|
||||
.string "Neglects ATTACK and SP. DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText31::
|
||||
BattleDome_Text_NeglectsDefAndSpeed::
|
||||
.string "Neglects DEFENSE and SPEED.$"
|
||||
|
||||
gBattleDomeOpponentStatsText32::
|
||||
BattleDome_Text_NeglectsDefAndSpAtk::
|
||||
.string "Neglects DEFENSE and SP. ATTACK.$"
|
||||
|
||||
gBattleDomeOpponentStatsText33::
|
||||
BattleDome_Text_NeglectsDefAndSpDef::
|
||||
.string "Neglects DEFENSE and SP. DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText34::
|
||||
BattleDome_Text_NeglectsSpeedAndSpAtk::
|
||||
.string "Neglects SPEED and SP. ATTACK.$"
|
||||
|
||||
gBattleDomeOpponentStatsText35::
|
||||
BattleDome_Text_NeglectsSpeedAndSpDef::
|
||||
.string "Neglects SPEED and SP. DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText36::
|
||||
BattleDome_Text_NeglectsSpAtkAndSpDef::
|
||||
.string "Neglects SP. ATTACK and SP. DEFENSE.$"
|
||||
|
||||
BattleDome_Text_NeglectsHP::
|
||||
.string "Neglects HP.$"
|
||||
|
||||
gBattleDomeOpponentStatsText38::
|
||||
BattleDome_Text_NeglectsAtk::
|
||||
.string "Neglects ATTACK.$"
|
||||
|
||||
gBattleDomeOpponentStatsText39::
|
||||
BattleDome_Text_NeglectsDef::
|
||||
.string "Neglects DEFENSE.$"
|
||||
|
||||
gBattleDomeOpponentStatsText40::
|
||||
BattleDome_Text_NeglectsSpeed::
|
||||
.string "Neglects SPEED.$"
|
||||
|
||||
gBattleDomeOpponentStatsText41::
|
||||
BattleDome_Text_NeglectsSpAtk::
|
||||
.string "Neglects SP. ATTACK.$"
|
||||
|
||||
gBattleDomeOpponentStatsText42::
|
||||
BattleDome_Text_NeglectsSpDef::
|
||||
.string "Neglects SP. DEFENSE.$"
|
||||
|
||||
BattleDome_Text_RaisesMonsWellBalanced::
|
||||
.string "Raises POKéMON in a well-balanced way.$"
|
||||
|
||||
gBattleDomeWinText1::
|
||||
BattleDome_Text_LetTheBattleBegin::
|
||||
.string "Let the battle begin!$"
|
||||
|
||||
gBattleDomeWinText2::
|
||||
BattleDome_Text_TrainerWonUsingMove::
|
||||
.string "{STR_VAR_1} won using {STR_VAR_2}!$"
|
||||
|
||||
gBattleDomeWinText3::
|
||||
BattleDome_Text_TrainerBecameChamp::
|
||||
.string "{STR_VAR_1} became the champ!$"
|
||||
|
||||
gBattleDomeWinText4::
|
||||
BattleDome_Text_TrainerWonByDefault::
|
||||
.string "{STR_VAR_1} won by default!$"
|
||||
|
||||
gBattleDomeWinText5::
|
||||
BattleDome_Text_TrainerWonOutrightByDefault::
|
||||
.string "{STR_VAR_1} won outright by default!$"
|
||||
|
||||
gBattleDomeWinText6::
|
||||
BattleDome_Text_TrainerWonNoMoves::
|
||||
.string "{STR_VAR_1} won without using a move!$"
|
||||
|
||||
gBattleDomeWinText7::
|
||||
BattleDome_Text_TrainerWonOutrightNoMoves::
|
||||
.string "{STR_VAR_1} won outright with no moves!$"
|
||||
|
||||
gBattleDomeMatchNumberText1::
|
||||
BattleDome_Text_Round1Match1::
|
||||
.string "Round 1, Match 1$"
|
||||
|
||||
gBattleDomeMatchNumberText2::
|
||||
BattleDome_Text_Round1Match2::
|
||||
.string "Round 1, Match 2$"
|
||||
|
||||
gBattleDomeMatchNumberText3::
|
||||
BattleDome_Text_Round1Match3::
|
||||
.string "Round 1, Match 3$"
|
||||
|
||||
gBattleDomeMatchNumberText4::
|
||||
BattleDome_Text_Round1Match4::
|
||||
.string "Round 1, Match 4$"
|
||||
|
||||
gBattleDomeMatchNumberText5::
|
||||
BattleDome_Text_Round1Match5::
|
||||
.string "Round 1, Match 5$"
|
||||
|
||||
gBattleDomeMatchNumberText6::
|
||||
BattleDome_Text_Round1Match6::
|
||||
.string "Round 1, Match 6$"
|
||||
|
||||
gBattleDomeMatchNumberText7::
|
||||
BattleDome_Text_Round1Match7::
|
||||
.string "Round 1, Match 7$"
|
||||
|
||||
gBattleDomeMatchNumberText8::
|
||||
BattleDome_Text_Round1Match8::
|
||||
.string "Round 1, Match 8$"
|
||||
|
||||
gBattleDomeMatchNumberText9::
|
||||
BattleDome_Text_Round2Match1::
|
||||
.string "Round 2, Match 1$"
|
||||
|
||||
gBattleDomeMatchNumberText10::
|
||||
BattleDome_Text_Round2Match2::
|
||||
.string "Round 2, Match 2$"
|
||||
|
||||
gBattleDomeMatchNumberText11::
|
||||
BattleDome_Text_Round2Match3::
|
||||
.string "Round 2, Match 3$"
|
||||
|
||||
gBattleDomeMatchNumberText12::
|
||||
BattleDome_Text_Round2Match4::
|
||||
.string "Round 2, Match 4$"
|
||||
|
||||
gBattleDomeMatchNumberText13::
|
||||
BattleDome_Text_SemifinalMatch1::
|
||||
.string "Semifinal Match 1$"
|
||||
|
||||
gBattleDomeMatchNumberText14::
|
||||
BattleDome_Text_SemifinalMatch2::
|
||||
.string "Semifinal Match 2$"
|
||||
|
||||
gBattleDomeMatchNumberText15::
|
||||
BattleDome_Text_FinalMatch::
|
||||
.string "Final Match$"
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -8,8 +8,8 @@ struct RSBattleTowerRecord
|
||||
/*0x02*/ u16 winStreak;
|
||||
/*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x0C*/ u8 trainerId[TRAINER_ID_LENGTH];
|
||||
/*0x10*/ u16 greeting[6];
|
||||
/*0x1C*/ struct BattleTowerPokemon party[3];
|
||||
/*0x10*/ u16 greeting[EASY_CHAT_BATTLE_WORDS_COUNT];
|
||||
/*0x1C*/ struct BattleTowerPokemon party[FRONTIER_PARTY_SIZE];
|
||||
/*0xA0*/ u32 checksum;
|
||||
};
|
||||
|
||||
@@ -18,10 +18,10 @@ struct BattleFrontierTrainer
|
||||
u8 facilityClass;
|
||||
u8 filler1[3];
|
||||
u8 trainerName[PLAYER_NAME_LENGTH + 1];
|
||||
u16 speechBefore[6];
|
||||
u16 speechWin[6];
|
||||
u16 speechLose[6];
|
||||
const u16 *monSets;
|
||||
u16 speechBefore[EASY_CHAT_BATTLE_WORDS_COUNT];
|
||||
u16 speechWin[EASY_CHAT_BATTLE_WORDS_COUNT];
|
||||
u16 speechLose[EASY_CHAT_BATTLE_WORDS_COUNT];
|
||||
const u16 *monSet;
|
||||
};
|
||||
|
||||
struct FacilityMon
|
||||
@@ -59,7 +59,7 @@ u8 GetFrontierOpponentClass(u16 trainerId);
|
||||
void GetFrontierTrainerName(u8 *dst, u16 trainerId);
|
||||
void FillFrontierTrainerParty(u8 monsCount);
|
||||
void FillFrontierTrainersParties(u8 monsCount);
|
||||
u16 RandomizeFacilityTrainerMonSet(u16 trainerId);
|
||||
u16 GetRandomFrontierMonFromSet(u16 trainerId);
|
||||
void FrontierSpeechToString(const u16 *words);
|
||||
void DoSpecialTrainerBattle(void);
|
||||
void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *record);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#define DOME_FINAL 3
|
||||
#define DOME_ROUNDS_COUNT 4
|
||||
|
||||
//#define DOME_TOURNAMENT_TRAINERS_COUNT 16 : defined in global
|
||||
//#define DOME_TOURNAMENT_TRAINERS_COUNT 16 -- defined in global
|
||||
#define DOME_TOURNAMENT_MATCHES_COUNT DOME_TOURNAMENT_TRAINERS_COUNT - 1
|
||||
|
||||
#define DOME_BATTLE_PARTY_SIZE 2
|
||||
@@ -24,7 +24,7 @@
|
||||
#define BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY 5
|
||||
#define BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO 6
|
||||
#define BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE 7
|
||||
#define BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE 8
|
||||
#define BATTLE_DOME_FUNC_SHOW_PREV_TOURNEY_TREE 8
|
||||
#define BATTLE_DOME_FUNC_SET_OPPONENT_ID 9
|
||||
#define BATTLE_DOME_FUNC_SET_OPPONENT_GFX 10
|
||||
#define BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE 11
|
||||
@@ -49,37 +49,82 @@
|
||||
#define DOME_DATA_ATTEMPTED_CHALLENGE 6
|
||||
#define DOME_DATA_HAS_WON_CHALLENGE 7
|
||||
#define DOME_DATA_SELECTED_MONS 8
|
||||
#define DOME_DATA_LAST_TOURNEY_TYPE 9
|
||||
#define DOME_DATA_PREV_TOURNEY_TYPE 9
|
||||
|
||||
//TODO:
|
||||
#define DOME_WINTEXT_NO_WINNER_YET 0
|
||||
#define DOME_WINTEXT_USED_MOVE 1
|
||||
#define DOME_WINTEXT_CHAMP 2
|
||||
#define DOME_WINTEXT_FORFEIT 3
|
||||
// ID for Exit/Cancel on the tourney tree
|
||||
#define TOURNEY_TREE_CLOSE_BUTTON 31
|
||||
|
||||
#define DOME_STATTEXT_GOOD_DOUBLE_STAT 0
|
||||
#define DOME_STATTEXT_GOOD_SINGLE_STAT 15
|
||||
#define DOME_STATTEXT_WELL_BALANCED 42
|
||||
// Input IDs on the tourney tree
|
||||
#define TOURNEY_TREE_SELECTED_CLOSE 0
|
||||
#define TOURNEY_TREE_NO_SELECTION 1
|
||||
#define TOURNEY_TREE_SELECTED_TRAINER 2
|
||||
#define TOURNEY_TREE_SELECTED_MATCH 3
|
||||
|
||||
// Move quality indexes, to determine Battle Dome trainers battle styles
|
||||
#define MOVE_QUALITY_COMBO 0 // Moves that work well in combination (e.g. Rain Dance + Hydro Pump)
|
||||
#define MOVE_QUALITY_STAT_RAISE 1
|
||||
#define MOVE_QUALITY_STAT_LOWER 2
|
||||
#define MOVE_QUALITY_RARE 3 // Uncommon moves. Mostly arbitrary
|
||||
#define MOVE_QUALITY_HEAL 4
|
||||
#define MOVE_QUALITY_RISKY 5
|
||||
#define MOVE_QUALITY_STATUS 6
|
||||
#define MOVE_QUALITY_DMG 7
|
||||
#define MOVE_QUALITY_DEF 8 // Defensive moves, like Amnesia, Light Screen, or accuracy-lowers
|
||||
#define MOVE_QUALITY_ACCURATE 9
|
||||
#define MOVE_QUALITY_POWERFUL 10 // Most of the moves that are >= 100 power
|
||||
#define MOVE_QUALITY_POPULAR 11 // Group seems arbitrary. All using it are TM/HMs, but its only 11/58
|
||||
#define MOVE_QUALITY_LUCK 12
|
||||
#define MOVE_QUALITY_STRONG 13 // Most of the moves that are >= 90 power
|
||||
#define MOVE_QUALITY_LOW_PP 14
|
||||
#define MOVE_QUALITY_EFFECT 15 // Moves with additional effects
|
||||
#define NUM_MOVE_QUALITIES 16
|
||||
// Modes for showing the tourney tree info card
|
||||
#define INFOCARD_NEXT_OPPONENT 0
|
||||
#define INFOCARD_TRAINER 1
|
||||
#define INFOCARD_MATCH 2
|
||||
|
||||
// Input IDs for the info cards
|
||||
#define INFOCARD_INPUT_NONE 0
|
||||
#define TRAINERCARD_INPUT_UP 1
|
||||
#define TRAINERCARD_INPUT_DOWN 2
|
||||
#define TRAINERCARD_INPUT_LEFT 3
|
||||
#define TRAINERCARD_INPUT_RIGHT 4
|
||||
#define MATCHCARD_INPUT_UP 5
|
||||
#define MATCHCARD_INPUT_DOWN 6
|
||||
#define MATCHCARD_INPUT_LEFT 7
|
||||
#define MATCHCARD_INPUT_RIGHT 8
|
||||
#define INFOCARD_INPUT_AB 9
|
||||
|
||||
#define CARD_ALTERNATE_SLOT (1 << 0) // When set, uses an alternate slot to store the incoming card sprites
|
||||
#define MOVE_CARD_RIGHT (1 << 1)
|
||||
#define MOVE_CARD_DOWN (1 << 2)
|
||||
#define MOVE_CARD_LEFT (1 << 3)
|
||||
#define MOVE_CARD_UP (1 << 4)
|
||||
#define MOVE_CARD (MOVE_CARD_RIGHT | MOVE_CARD_DOWN | MOVE_CARD_LEFT | MOVE_CARD_UP)
|
||||
|
||||
// Text IDs for sBattleDomeWinTexts
|
||||
#define DOME_TEXT_NO_WINNER_YET 0
|
||||
#define DOME_TEXT_WON_USING_MOVE 1
|
||||
#define DOME_TEXT_CHAMP_USING_MOVE 2
|
||||
#define DOME_TEXT_WON_ON_FORFEIT 3
|
||||
#define DOME_TEXT_CHAMP_ON_FORFEIT 4
|
||||
#define DOME_TEXT_WON_NO_MOVES 5
|
||||
#define DOME_TEXT_CHAMP_NO_MOVES 6
|
||||
|
||||
// Offsets/start positions within sBattleDomeOpponentStatsTexts
|
||||
#define DOME_TEXT_TWO_GOOD_STATS 0
|
||||
#define DOME_TEXT_ONE_GOOD_STAT 15
|
||||
#define DOME_TEXT_TWO_BAD_STATS 21
|
||||
#define DOME_TEXT_ONE_BAD_STAT 36
|
||||
#define DOME_TEXT_WELL_BALANCED 42
|
||||
#define DOME_TEXT_HP 0
|
||||
#define DOME_TEXT_ATK 5
|
||||
#define DOME_TEXT_DEF 9
|
||||
#define DOME_TEXT_SPEED 12
|
||||
#define DOME_TEXT_SPATK 14
|
||||
|
||||
// Move point indexes for sBattleStyleMovePoints[][], to determine Battle Dome trainers battle styles
|
||||
#define MOVE_POINTS_COMBO 0 // Moves that work well in combination (e.g. Rain Dance + Hydro Pump)
|
||||
#define MOVE_POINTS_STAT_RAISE 1
|
||||
#define MOVE_POINTS_STAT_LOWER 2
|
||||
#define MOVE_POINTS_RARE 3 // Uncommon moves. Mostly arbitrary
|
||||
#define MOVE_POINTS_HEAL 4
|
||||
#define MOVE_POINTS_RISKY 5
|
||||
#define MOVE_POINTS_STATUS 6
|
||||
#define MOVE_POINTS_DMG 7
|
||||
#define MOVE_POINTS_DEF 8 // Defensive moves, like Amnesia, Light Screen, or accuracy-lowers
|
||||
#define MOVE_POINTS_ACCURATE 9
|
||||
#define MOVE_POINTS_POWERFUL 10 // Most of the moves that are >= 100 power
|
||||
#define MOVE_POINTS_POPULAR 11 // Group seems arbitrary. All using it are TM/HMs, but its only 11/58
|
||||
#define MOVE_POINTS_LUCK 12
|
||||
#define MOVE_POINTS_STRONG 13 // Most of the moves that are >= 90 power
|
||||
#define MOVE_POINTS_LOW_PP 14
|
||||
#define MOVE_POINTS_EFFECT 15 // Moves with additional effects
|
||||
#define NUM_MOVE_POINT_TYPES 16
|
||||
|
||||
// Battle style IDs for sBattleDomeOpponentStyleTexts
|
||||
#define DOME_BATTLE_STYLE_RISKY 0
|
||||
#define DOME_BATTLE_STYLE_STALL 1
|
||||
#define DOME_BATTLE_STYLE_VARIED 2
|
||||
@@ -90,7 +135,7 @@
|
||||
#define DOME_BATTLE_STYLE_STORE_POWER 7
|
||||
#define DOME_BATTLE_STYLE_ENFEEBLE_LOW 8
|
||||
#define DOME_BATTLE_STYLE_LUCK 9
|
||||
#define DOME_BATTLE_STYLE_10 10
|
||||
#define DOME_BATTLE_STYLE_REGAL 10
|
||||
#define DOME_BATTLE_STYLE_LOW_PP 11
|
||||
#define DOME_BATTLE_STYLE_STATUS_ATK 12
|
||||
#define DOME_BATTLE_STYLE_ENDURE 13
|
||||
|
||||
@@ -859,6 +859,8 @@
|
||||
#define FRONTIER_MON_LATIOS_7 848
|
||||
#define FRONTIER_MON_LATIOS_8 849
|
||||
|
||||
#define FRONTIER_MONS_HIGH_TIER 849 // Mons above this point can only appear > level 50
|
||||
|
||||
#define FRONTIER_MON_DRAGONITE_1 850
|
||||
#define FRONTIER_MON_DRAGONITE_2 851
|
||||
#define FRONTIER_MON_DRAGONITE_3 852
|
||||
|
||||
@@ -80,7 +80,8 @@
|
||||
#define STAT_ACC 6 // Only in battles.
|
||||
#define STAT_EVASION 7 // Only in battles.
|
||||
|
||||
#define NUM_BATTLE_STATS 8
|
||||
#define NUM_EV_STATS NUM_STATS - 1 // excludes HP
|
||||
#define NUM_BATTLE_STATS NUM_STATS + 2 // includes Accuracy and Evasion
|
||||
|
||||
// Shiny odds
|
||||
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
|
||||
|
||||
+16
-13
@@ -4117,19 +4117,19 @@ extern const u16 gTitleScreenBgPalettes[];
|
||||
extern const u16 gTitleScreenPressStartPal[];
|
||||
extern const u16 gTitleScreenEmeraldVersionPal[];
|
||||
|
||||
extern const u32 gUnknown_08D83D50[];
|
||||
extern const u32 gUnknown_08D84970[];
|
||||
extern const u32 gUnknown_08D84F00[];
|
||||
extern const u32 gUnknown_08D85444[];
|
||||
extern const u32 gUnknown_08D85358[];
|
||||
extern const u32 gBattleWindowTextPalette[];
|
||||
extern const u32 gUnknown_08D854C8[];
|
||||
extern const u32 gUnknown_08D82F10[];
|
||||
extern const u32 gUnknown_08D834FC[];
|
||||
extern const u32 gUnknown_08D83B2C[];
|
||||
extern const u32 gUnknown_08D83C3C[];
|
||||
extern const u32 gUnknown_08D83900[];
|
||||
extern const u32 gBattleFrontierGfx_DomeOptions[];
|
||||
// Battle Dome
|
||||
extern const u32 gDomeTourneyInfoCard_Gfx[];
|
||||
extern const u32 gDomeTourneyInfoCard_Tilemap[];
|
||||
extern const u32 gDomeTourneyInfoCardBg_Tilemap[];
|
||||
extern const u32 gDomeTourneyTree_Pal[];
|
||||
extern const u32 gDomeTourneyTreeButtons_Pal[];
|
||||
extern const u32 gDomeTourneyMatchCardBg_Pal[];
|
||||
extern const u32 gDomeTourneyBg_Gfx[];
|
||||
extern const u32 gDomeTourneyLine_Gfx[];
|
||||
extern const u32 gDomeTourneyLineDown_Tilemap[];
|
||||
extern const u32 gDomeTourneyLineUp_Tilemap[];
|
||||
extern const u32 gDomeTourneyLineMask_Tilemap[];
|
||||
extern const u32 gDomeTourneyTreeButtons_Gfx[];
|
||||
extern const u16 gTilesetAnims_BattleDomePals0_0[];
|
||||
extern const u16 gTilesetAnims_BattleDomePals0_1[];
|
||||
extern const u16 gTilesetAnims_BattleDomePals0_2[];
|
||||
@@ -4137,6 +4137,9 @@ extern const u16 gTilesetAnims_BattleDomePals0_3[];
|
||||
|
||||
extern const u32 gBattleArenaJudgementSymbolsGfx[];
|
||||
extern const u32 gBattleArenaJudgementSymbolsPalette[];
|
||||
|
||||
extern const u32 gBattleWindowTextPalette[];
|
||||
|
||||
extern const u32 gContest2Pal[];
|
||||
|
||||
extern const u32 gBattleAnimSpriteGfx_Bone[];
|
||||
|
||||
@@ -16,7 +16,7 @@ void LoadMonIconPalette(u16 species);
|
||||
void FreeMonIconPalettes(void);
|
||||
u8 sub_80D2D78(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 extra);
|
||||
void FreeMonIconPalette(u16 species);
|
||||
void sub_80D2EF8(struct Sprite *sprite);
|
||||
void FreeAndDestroyMonIconSprite(struct Sprite *sprite);
|
||||
u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 extra);
|
||||
u8 UpdateMonIconFrame(struct Sprite *sprite);
|
||||
void LoadMonIconPalette(u16 species);
|
||||
|
||||
+56
-58
@@ -1759,66 +1759,66 @@ extern const u8 BattleDome_Text_EmphasizesHPAndDef[];
|
||||
extern const u8 BattleDome_Text_EmphasizesHPAndSpeed[];
|
||||
extern const u8 BattleDome_Text_EmphasizesHPAndSpAtk[];
|
||||
extern const u8 BattleDome_Text_EmphasizesHPAndSpDef[];
|
||||
extern const u8 gBattleDomeOpponentStatsText6[];
|
||||
extern const u8 gBattleDomeOpponentStatsText7[];
|
||||
extern const u8 gBattleDomeOpponentStatsText8[];
|
||||
extern const u8 gBattleDomeOpponentStatsText9[];
|
||||
extern const u8 gBattleDomeOpponentStatsText10[];
|
||||
extern const u8 gBattleDomeOpponentStatsText11[];
|
||||
extern const u8 gBattleDomeOpponentStatsText12[];
|
||||
extern const u8 gBattleDomeOpponentStatsText13[];
|
||||
extern const u8 gBattleDomeOpponentStatsText14[];
|
||||
extern const u8 gBattleDomeOpponentStatsText15[];
|
||||
extern const u8 BattleDome_Text_EmphasizesAtkAndDef[];
|
||||
extern const u8 BattleDome_Text_EmphasizesAtkAndSpeed[];
|
||||
extern const u8 BattleDome_Text_EmphasizesAtkAndSpAtk[];
|
||||
extern const u8 BattleDome_Text_EmphasizesAtkAndSpDef[];
|
||||
extern const u8 BattleDome_Text_EmphasizesDefAndSpeed[];
|
||||
extern const u8 BattleDome_Text_EmphasizesDefAndSpAtk[];
|
||||
extern const u8 BattleDome_Text_EmphasizesDefAndSpDef[];
|
||||
extern const u8 BattleDome_Text_EmphasizesSpeedAndSpAtk[];
|
||||
extern const u8 BattleDome_Text_EmphasizesSpeedAndSpDef[];
|
||||
extern const u8 BattleDome_Text_EmphasizesSpAtkAndSpDef[];
|
||||
extern const u8 BattleDome_Text_EmphasizesHP[];
|
||||
extern const u8 gBattleDomeOpponentStatsText17[];
|
||||
extern const u8 gBattleDomeOpponentStatsText18[];
|
||||
extern const u8 gBattleDomeOpponentStatsText19[];
|
||||
extern const u8 gBattleDomeOpponentStatsText20[];
|
||||
extern const u8 gBattleDomeOpponentStatsText21[];
|
||||
extern const u8 BattleDome_Text_EmphasizesAtk[];
|
||||
extern const u8 BattleDome_Text_EmphasizesDef[];
|
||||
extern const u8 BattleDome_Text_EmphasizesSpeed[];
|
||||
extern const u8 BattleDome_Text_EmphasizesSpAtk[];
|
||||
extern const u8 BattleDome_Text_EmphasizesSpDef[];
|
||||
extern const u8 BattleDome_Text_NeglectsHPAndAtk[];
|
||||
extern const u8 gBattleDomeOpponentStatsText23[];
|
||||
extern const u8 gBattleDomeOpponentStatsText24[];
|
||||
extern const u8 gBattleDomeOpponentStatsText25[];
|
||||
extern const u8 gBattleDomeOpponentStatsText26[];
|
||||
extern const u8 gBattleDomeOpponentStatsText27[];
|
||||
extern const u8 gBattleDomeOpponentStatsText28[];
|
||||
extern const u8 gBattleDomeOpponentStatsText29[];
|
||||
extern const u8 gBattleDomeOpponentStatsText30[];
|
||||
extern const u8 gBattleDomeOpponentStatsText31[];
|
||||
extern const u8 gBattleDomeOpponentStatsText32[];
|
||||
extern const u8 gBattleDomeOpponentStatsText33[];
|
||||
extern const u8 gBattleDomeOpponentStatsText34[];
|
||||
extern const u8 gBattleDomeOpponentStatsText35[];
|
||||
extern const u8 gBattleDomeOpponentStatsText36[];
|
||||
extern const u8 BattleDome_Text_NeglectsHPAndDef[];
|
||||
extern const u8 BattleDome_Text_NeglectsHPAndSpeed[];
|
||||
extern const u8 BattleDome_Text_NeglectsHPAndSpAtk[];
|
||||
extern const u8 BattleDome_Text_NeglectsHPAndSpDef[];
|
||||
extern const u8 BattleDome_Text_NeglectsAtkAndDef[];
|
||||
extern const u8 BattleDome_Text_NeglectsAtkAndSpeed[];
|
||||
extern const u8 BattleDome_Text_NeglectsAtkAndSpAtk[];
|
||||
extern const u8 BattleDome_Text_NeglectsAtkAndSpDef[];
|
||||
extern const u8 BattleDome_Text_NeglectsDefAndSpeed[];
|
||||
extern const u8 BattleDome_Text_NeglectsDefAndSpAtk[];
|
||||
extern const u8 BattleDome_Text_NeglectsDefAndSpDef[];
|
||||
extern const u8 BattleDome_Text_NeglectsSpeedAndSpAtk[];
|
||||
extern const u8 BattleDome_Text_NeglectsSpeedAndSpDef[];
|
||||
extern const u8 BattleDome_Text_NeglectsSpAtkAndSpDef[];
|
||||
extern const u8 BattleDome_Text_NeglectsHP[];
|
||||
extern const u8 gBattleDomeOpponentStatsText38[];
|
||||
extern const u8 gBattleDomeOpponentStatsText39[];
|
||||
extern const u8 gBattleDomeOpponentStatsText40[];
|
||||
extern const u8 gBattleDomeOpponentStatsText41[];
|
||||
extern const u8 gBattleDomeOpponentStatsText42[];
|
||||
extern const u8 BattleDome_Text_NeglectsAtk[];
|
||||
extern const u8 BattleDome_Text_NeglectsDef[];
|
||||
extern const u8 BattleDome_Text_NeglectsSpeed[];
|
||||
extern const u8 BattleDome_Text_NeglectsSpAtk[];
|
||||
extern const u8 BattleDome_Text_NeglectsSpDef[];
|
||||
extern const u8 BattleDome_Text_RaisesMonsWellBalanced[];
|
||||
extern const u8 gBattleDomeMatchNumberText1[];
|
||||
extern const u8 gBattleDomeMatchNumberText2[];
|
||||
extern const u8 gBattleDomeMatchNumberText3[];
|
||||
extern const u8 gBattleDomeMatchNumberText4[];
|
||||
extern const u8 gBattleDomeMatchNumberText5[];
|
||||
extern const u8 gBattleDomeMatchNumberText6[];
|
||||
extern const u8 gBattleDomeMatchNumberText7[];
|
||||
extern const u8 gBattleDomeMatchNumberText8[];
|
||||
extern const u8 gBattleDomeMatchNumberText9[];
|
||||
extern const u8 gBattleDomeMatchNumberText10[];
|
||||
extern const u8 gBattleDomeMatchNumberText11[];
|
||||
extern const u8 gBattleDomeMatchNumberText12[];
|
||||
extern const u8 gBattleDomeMatchNumberText13[];
|
||||
extern const u8 gBattleDomeMatchNumberText14[];
|
||||
extern const u8 gBattleDomeMatchNumberText15[];
|
||||
extern const u8 gBattleDomeWinText1[];
|
||||
extern const u8 gBattleDomeWinText2[];
|
||||
extern const u8 gBattleDomeWinText3[];
|
||||
extern const u8 gBattleDomeWinText4[];
|
||||
extern const u8 gBattleDomeWinText5[];
|
||||
extern const u8 gBattleDomeWinText6[];
|
||||
extern const u8 gBattleDomeWinText7[];
|
||||
extern const u8 BattleDome_Text_Round1Match1[];
|
||||
extern const u8 BattleDome_Text_Round1Match2[];
|
||||
extern const u8 BattleDome_Text_Round1Match3[];
|
||||
extern const u8 BattleDome_Text_Round1Match4[];
|
||||
extern const u8 BattleDome_Text_Round1Match5[];
|
||||
extern const u8 BattleDome_Text_Round1Match6[];
|
||||
extern const u8 BattleDome_Text_Round1Match7[];
|
||||
extern const u8 BattleDome_Text_Round1Match8[];
|
||||
extern const u8 BattleDome_Text_Round2Match1[];
|
||||
extern const u8 BattleDome_Text_Round2Match2[];
|
||||
extern const u8 BattleDome_Text_Round2Match3[];
|
||||
extern const u8 BattleDome_Text_Round2Match4[];
|
||||
extern const u8 BattleDome_Text_SemifinalMatch1[];
|
||||
extern const u8 BattleDome_Text_SemifinalMatch2[];
|
||||
extern const u8 BattleDome_Text_FinalMatch[];
|
||||
extern const u8 BattleDome_Text_LetTheBattleBegin[];
|
||||
extern const u8 BattleDome_Text_TrainerWonUsingMove[];
|
||||
extern const u8 BattleDome_Text_TrainerBecameChamp[];
|
||||
extern const u8 BattleDome_Text_TrainerWonByDefault[];
|
||||
extern const u8 BattleDome_Text_TrainerWonOutrightByDefault[];
|
||||
extern const u8 BattleDome_Text_TrainerWonNoMoves[];
|
||||
extern const u8 BattleDome_Text_TrainerWonOutrightNoMoves[];
|
||||
|
||||
// Battle Pyramid.
|
||||
extern const u8 BattlePyramid_Text_ExitHintUp1[];
|
||||
@@ -1948,8 +1948,6 @@ extern const u8 BattlePyramid_Text_FiveTrainersRemaining6[];
|
||||
extern const u8 BattlePyramid_Text_SixTrainersRemaining6[];
|
||||
extern const u8 BattlePyramid_Text_SevenTrainersRemaining6[];
|
||||
|
||||
|
||||
|
||||
// PC strings
|
||||
extern const u8 gText_ExitFromBox[];
|
||||
extern const u8 gText_WhatDoYouWantToDo[];
|
||||
|
||||
+2032
-2110
File diff suppressed because it is too large.
Load diff
@@ -12,6 +12,7 @@
|
||||
#include "constants/battle_ai.h"
|
||||
#include "constants/battle_factory.h"
|
||||
#include "constants/battle_frontier.h"
|
||||
#include "constants/battle_frontier_mons.h"
|
||||
#include "constants/frontier_util.h"
|
||||
#include "constants/layouts.h"
|
||||
#include "constants/trainers.h"
|
||||
@@ -331,7 +332,7 @@ static void GenerateOpponentMons(void)
|
||||
if (j != 6)
|
||||
continue;
|
||||
|
||||
if (lvlMode == FRONTIER_LVL_50 && monSetId > 849)
|
||||
if (lvlMode == FRONTIER_LVL_50 && monSetId > FRONTIER_MONS_HIGH_TIER)
|
||||
continue;
|
||||
|
||||
for (k = firstMonId; k < firstMonId + i; k++)
|
||||
@@ -727,7 +728,7 @@ void FillFactoryBrainParty(void)
|
||||
|
||||
if (gFacilityTrainerMons[monSetId].species == SPECIES_UNOWN)
|
||||
continue;
|
||||
if (monLevel == 50 && monSetId > 849)
|
||||
if (monLevel == 50 && monSetId > FRONTIER_MONS_HIGH_TIER)
|
||||
continue;
|
||||
|
||||
for (j = 0; j < 6; j++)
|
||||
|
||||
+8
-8
@@ -353,10 +353,10 @@ static void GenerateOpponentMons(void)
|
||||
{
|
||||
u16 trainerId;
|
||||
s32 i, j, k;
|
||||
register const u16 *monSets asm("r9"); // Fix me. Compiler insists on moving that variable into stack.
|
||||
register const u16 *monSet asm("r9"); // Fix me. Compiler insists on moving that variable into stack.
|
||||
u16 species[FRONTIER_PARTY_SIZE];
|
||||
u16 heldItems[FRONTIER_PARTY_SIZE];
|
||||
s32 setsCount = 0;
|
||||
s32 monId = 0;
|
||||
|
||||
gFacilityTrainers = gSlateportBattleTentTrainers;
|
||||
gFacilityTrainerMons = gSlateportBattleTentMons;
|
||||
@@ -374,21 +374,21 @@ static void GenerateOpponentMons(void)
|
||||
} while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum);
|
||||
|
||||
gTrainerBattleOpponent_A = trainerId;
|
||||
while (gFacilityTrainers[gTrainerBattleOpponent_A].monSets[setsCount] != 0xFFFF)
|
||||
setsCount++;
|
||||
if (setsCount > 8)
|
||||
while (gFacilityTrainers[gTrainerBattleOpponent_A].monSet[monId] != 0xFFFF)
|
||||
monId++;
|
||||
if (monId > 8)
|
||||
break;
|
||||
setsCount = 0;
|
||||
monId = 0;
|
||||
}
|
||||
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 2)
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
|
||||
|
||||
monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets;
|
||||
monSet = gFacilityTrainers[gTrainerBattleOpponent_A].monSet;
|
||||
i = 0;
|
||||
while (i != FRONTIER_PARTY_SIZE)
|
||||
{
|
||||
sRandMonSetId = monSets[Random() % setsCount];
|
||||
sRandMonSetId = monSet[Random() % monId];
|
||||
for (j = 0; j < 6; j++)
|
||||
{
|
||||
if (gFacilityTrainerMons[sRandMonSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[j].monId].species)
|
||||
|
||||
+80
-80
@@ -1895,14 +1895,14 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
u8 level = SetFacilityPtrsGetLevel();
|
||||
u8 fixedIV = 0;
|
||||
u8 bfMonCount;
|
||||
const u16 *monSets = NULL;
|
||||
const u16 *monSet = NULL;
|
||||
u32 otID = 0;
|
||||
|
||||
if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
// Normal battle frontier trainer.
|
||||
fixedIV = GetFrontierTrainerFixedIvs(trainerId);
|
||||
monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets;
|
||||
monSet = gFacilityTrainers[gTrainerBattleOpponent_A].monSet;
|
||||
}
|
||||
else if (trainerId == TRAINER_EREADER)
|
||||
{
|
||||
@@ -1940,20 +1940,20 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
// Attempt to fill the trainer's party with random Pokemon until 3 have been
|
||||
// successfully chosen. The trainer's party may not have duplicate pokemon species
|
||||
// or duplicate held items.
|
||||
for (bfMonCount = 0; monSets[bfMonCount] != 0xFFFF; bfMonCount++)
|
||||
for (bfMonCount = 0; monSet[bfMonCount] != 0xFFFF; bfMonCount++)
|
||||
;
|
||||
i = 0;
|
||||
otID = Random32();
|
||||
while (i != monCount)
|
||||
{
|
||||
u16 monSetId = monSets[Random() % bfMonCount];
|
||||
if ((level == 50 || level == 20) && monSetId > 849)
|
||||
u16 monId = monSet[Random() % bfMonCount];
|
||||
if ((level == 50 || level == 20) && monId > FRONTIER_MONS_HIGH_TIER)
|
||||
continue;
|
||||
|
||||
// Ensure this pokemon species isn't a duplicate.
|
||||
for (j = 0; j < i + firstMonId; j++)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monSetId].species)
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monId].species)
|
||||
break;
|
||||
}
|
||||
if (j != i + firstMonId)
|
||||
@@ -1963,7 +1963,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
for (j = 0; j < i + firstMonId; j++)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) != 0
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId])
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId])
|
||||
break;
|
||||
}
|
||||
if (j != i + firstMonId)
|
||||
@@ -1973,34 +1973,34 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
// because the species and held items were already checked directly above.
|
||||
for (j = 0; j < i; j++)
|
||||
{
|
||||
if (chosenMonIndices[j] == monSetId)
|
||||
if (chosenMonIndices[j] == monId)
|
||||
break;
|
||||
}
|
||||
if (j != i)
|
||||
continue;
|
||||
|
||||
chosenMonIndices[i] = monSetId;
|
||||
chosenMonIndices[i] = monId;
|
||||
|
||||
// Place the chosen pokemon into the trainer's party.
|
||||
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[i + firstMonId],
|
||||
gFacilityTrainerMons[monSetId].species,
|
||||
gFacilityTrainerMons[monId].species,
|
||||
level,
|
||||
gFacilityTrainerMons[monSetId].nature,
|
||||
gFacilityTrainerMons[monId].nature,
|
||||
fixedIV,
|
||||
gFacilityTrainerMons[monSetId].evSpread,
|
||||
gFacilityTrainerMons[monId].evSpread,
|
||||
otID);
|
||||
|
||||
friendship = MAX_FRIENDSHIP;
|
||||
// Give the chosen pokemon its specified moves.
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monSetId].moves[j], j);
|
||||
if (gFacilityTrainerMons[monSetId].moves[j] == MOVE_FRUSTRATION)
|
||||
SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monId].moves[j], j);
|
||||
if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION)
|
||||
friendship = 0; // Frustration is more powerful the lower the pokemon's friendship is.
|
||||
}
|
||||
|
||||
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_FRIENDSHIP, &friendship);
|
||||
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
|
||||
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);
|
||||
|
||||
// The pokemon was successfully added to the trainer's party, so it's safe to move on to
|
||||
// the next party slot.
|
||||
@@ -2041,27 +2041,27 @@ static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId)
|
||||
}
|
||||
}
|
||||
|
||||
u16 RandomizeFacilityTrainerMonSet(u16 trainerId)
|
||||
u16 GetRandomFrontierMonFromSet(u16 trainerId)
|
||||
{
|
||||
u8 level = SetFacilityPtrsGetLevel();
|
||||
const u16 *monSets = gFacilityTrainers[trainerId].monSets;
|
||||
u8 numMonSets = 0;
|
||||
u32 monSetId = monSets[numMonSets];
|
||||
const u16 *monSet = gFacilityTrainers[trainerId].monSet;
|
||||
u8 numMons = 0;
|
||||
u32 monId = monSet[numMons];
|
||||
|
||||
while (monSetId != 0xFFFF)
|
||||
while (monId != 0xFFFF)
|
||||
{
|
||||
numMonSets++;
|
||||
monSetId = monSets[numMonSets];
|
||||
if (monSetId == 0xFFFF)
|
||||
numMons++;
|
||||
monId = monSet[numMons];
|
||||
if (monId == 0xFFFF)
|
||||
break;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
monSetId = monSets[Random() % numMonSets];
|
||||
} while((level == 50 || level == 20) && monSetId > 849);
|
||||
monId = monSet[Random() % numMons];
|
||||
} while((level == 50 || level == 20) && monId > FRONTIER_MONS_HIGH_TIER);
|
||||
|
||||
return monSetId;
|
||||
return monId;
|
||||
}
|
||||
|
||||
static void FillFactoryTrainerParty(void)
|
||||
@@ -2111,21 +2111,21 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId)
|
||||
otID = T1_READ_32(gSaveBlock2Ptr->playerTrainerId);
|
||||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
{
|
||||
u16 monSetId = gUnknown_03006298[i];
|
||||
u16 monId = gUnknown_03006298[i];
|
||||
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[firstMonId + i],
|
||||
gFacilityTrainerMons[monSetId].species,
|
||||
gFacilityTrainerMons[monId].species,
|
||||
level,
|
||||
gFacilityTrainerMons[monSetId].nature,
|
||||
gFacilityTrainerMons[monId].nature,
|
||||
fixedIV,
|
||||
gFacilityTrainerMons[monSetId].evSpread,
|
||||
gFacilityTrainerMons[monId].evSpread,
|
||||
otID);
|
||||
|
||||
friendship = 0;
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
SetMonMoveAvoidReturn(&gEnemyParty[firstMonId + i], gFacilityTrainerMons[monSetId].moves[j], j);
|
||||
SetMonMoveAvoidReturn(&gEnemyParty[firstMonId + i], gFacilityTrainerMons[monId].moves[j], j);
|
||||
|
||||
SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_FRIENDSHIP, &friendship);
|
||||
SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
|
||||
SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2139,25 +2139,25 @@ static void FillFactoryTentTrainerParty(u16 trainerId, u8 firstMonId)
|
||||
|
||||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
{
|
||||
u16 monSetId = gUnknown_03006298[i];
|
||||
u16 monId = gUnknown_03006298[i];
|
||||
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[firstMonId + i],
|
||||
gFacilityTrainerMons[monSetId].species,
|
||||
gFacilityTrainerMons[monId].species,
|
||||
level,
|
||||
gFacilityTrainerMons[monSetId].nature,
|
||||
gFacilityTrainerMons[monId].nature,
|
||||
fixedIV,
|
||||
gFacilityTrainerMons[monSetId].evSpread,
|
||||
gFacilityTrainerMons[monId].evSpread,
|
||||
otID);
|
||||
|
||||
friendship = 0;
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
SetMonMoveAvoidReturn(&gEnemyParty[firstMonId + i], gFacilityTrainerMons[monSetId].moves[j], j);
|
||||
if (gFacilityTrainerMons[monSetId].moves[j] == MOVE_FRUSTRATION)
|
||||
SetMonMoveAvoidReturn(&gEnemyParty[firstMonId + i], gFacilityTrainerMons[monId].moves[j], j);
|
||||
if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION)
|
||||
friendship = 0;
|
||||
}
|
||||
|
||||
SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_FRIENDSHIP, &friendship);
|
||||
SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
|
||||
SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2520,7 +2520,7 @@ static void sub_81642A0(void)
|
||||
u32 spArray[5];
|
||||
s32 r10;
|
||||
u16 trainerId;
|
||||
u16 monSetId;
|
||||
u16 monId;
|
||||
u32 lvlMode, battleMode;
|
||||
s32 challengeNum;
|
||||
u32 species1, species2;
|
||||
@@ -2562,24 +2562,24 @@ static void sub_81642A0(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
monSetId = RandomizeFacilityTrainerMonSet(trainerId);
|
||||
if (j % 2 != 0 && gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[r10 - 1]].itemTableId == gFacilityTrainerMons[monSetId].itemTableId)
|
||||
monId = GetRandomFrontierMonFromSet(trainerId);
|
||||
if (j % 2 != 0 && gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[r10 - 1]].itemTableId == gFacilityTrainerMons[monId].itemTableId)
|
||||
continue;
|
||||
|
||||
for (k = 8; k < r10; k++)
|
||||
{
|
||||
if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[k]].species == gFacilityTrainerMons[monSetId].species)
|
||||
if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[k]].species == gFacilityTrainerMons[monId].species)
|
||||
break;
|
||||
if (species1 == gFacilityTrainerMons[monSetId].species)
|
||||
if (species1 == gFacilityTrainerMons[monId].species)
|
||||
break;
|
||||
if (species2 == gFacilityTrainerMons[monSetId].species)
|
||||
if (species2 == gFacilityTrainerMons[monId].species)
|
||||
break;
|
||||
}
|
||||
if (k == r10)
|
||||
break;
|
||||
}
|
||||
|
||||
gSaveBlock2Ptr->frontier.trainerIds[r10] = monSetId;
|
||||
gSaveBlock2Ptr->frontier.trainerIds[r10] = monId;
|
||||
r10++;
|
||||
}
|
||||
}
|
||||
@@ -2660,7 +2660,7 @@ static void sub_81642A0(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81646BC(u16 trainerId, u16 monSetId)
|
||||
static void sub_81646BC(u16 trainerId, u16 monId)
|
||||
{
|
||||
u16 move = 0;
|
||||
u16 species = 0;
|
||||
@@ -2670,8 +2670,8 @@ static void sub_81646BC(u16 trainerId, u16 monSetId)
|
||||
{
|
||||
if (trainerId < FRONTIER_TRAINERS_COUNT)
|
||||
{
|
||||
move = gFacilityTrainerMons[monSetId].moves[0];
|
||||
species = gFacilityTrainerMons[monSetId].species;
|
||||
move = gFacilityTrainerMons[monId].moves[0];
|
||||
species = gFacilityTrainerMons[monId].species;
|
||||
}
|
||||
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
|
||||
{
|
||||
@@ -2698,7 +2698,7 @@ static void sub_81646BC(u16 trainerId, u16 monSetId)
|
||||
static void sub_8164828(void)
|
||||
{
|
||||
s32 i, j, arrId;
|
||||
s32 monSetId;
|
||||
s32 monId;
|
||||
s32 level = SetFacilityPtrsGetLevel();
|
||||
u16 winStreak = GetCurrentFacilityWinStreak();
|
||||
s32 challengeNum = winStreak / 7;
|
||||
@@ -2736,12 +2736,12 @@ static void sub_8164828(void)
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
monSetId = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2];
|
||||
sub_81646BC(trainerId, monSetId);
|
||||
monId = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2];
|
||||
sub_81646BC(trainerId, monId);
|
||||
break;
|
||||
case 2:
|
||||
monSetId = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2];
|
||||
sub_81646BC(trainerId, monSetId);
|
||||
monId = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2];
|
||||
sub_81646BC(trainerId, monId);
|
||||
break;
|
||||
case 3:
|
||||
gPartnerTrainerId = trainerId;
|
||||
@@ -3191,7 +3191,7 @@ static void FillPartnerParty(u16 trainerId)
|
||||
s32 i, j;
|
||||
u32 ivs, level;
|
||||
u32 friendship;
|
||||
u16 monSetId;
|
||||
u16 monId;
|
||||
u32 otID;
|
||||
u8 trainerName[PLAYER_NAME_LENGTH + 1];
|
||||
SetFacilityPtrsGetLevel();
|
||||
@@ -3232,23 +3232,23 @@ static void FillPartnerParty(u16 trainerId)
|
||||
otID = Random32();
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
monSetId = gSaveBlock2Ptr->frontier.trainerIds[i + 18];
|
||||
monId = gSaveBlock2Ptr->frontier.trainerIds[i + 18];
|
||||
CreateMonWithEVSpreadNatureOTID(&gPlayerParty[3 + i],
|
||||
gFacilityTrainerMons[monSetId].species,
|
||||
gFacilityTrainerMons[monId].species,
|
||||
level,
|
||||
gFacilityTrainerMons[monSetId].nature,
|
||||
gFacilityTrainerMons[monId].nature,
|
||||
ivs,
|
||||
gFacilityTrainerMons[monSetId].evSpread,
|
||||
gFacilityTrainerMons[monId].evSpread,
|
||||
otID);
|
||||
friendship = MAX_FRIENDSHIP;
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
SetMonMoveSlot(&gPlayerParty[3 + i], gFacilityTrainerMons[monSetId].moves[j], j);
|
||||
if (gFacilityTrainerMons[monSetId].moves[j] == MOVE_FRUSTRATION)
|
||||
SetMonMoveSlot(&gPlayerParty[3 + i], gFacilityTrainerMons[monId].moves[j], j);
|
||||
if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION)
|
||||
friendship = 0;
|
||||
}
|
||||
SetMonData(&gPlayerParty[3 + i], MON_DATA_FRIENDSHIP, &friendship);
|
||||
SetMonData(&gPlayerParty[3 + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
|
||||
SetMonData(&gPlayerParty[3 + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);
|
||||
for (j = 0; j < PLAYER_NAME_LENGTH + 1; j++)
|
||||
trainerName[j] = gFacilityTrainers[trainerId].trainerName[j];
|
||||
SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_NAME, &trainerName);
|
||||
@@ -3606,19 +3606,19 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
u8 level = SetTentPtrsGetLevel();
|
||||
u8 fixedIV = 0;
|
||||
u8 bfMonCount;
|
||||
const u16 *monSets = NULL;
|
||||
const u16 *monSet = NULL;
|
||||
u32 otID = 0;
|
||||
u16 monSetId;
|
||||
u16 monId;
|
||||
|
||||
monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets;
|
||||
monSet = gFacilityTrainers[gTrainerBattleOpponent_A].monSet;
|
||||
|
||||
bfMonCount = 0;
|
||||
monSetId = monSets[bfMonCount];
|
||||
while (monSetId != 0xFFFF)
|
||||
monId = monSet[bfMonCount];
|
||||
while (monId != 0xFFFF)
|
||||
{
|
||||
bfMonCount++;
|
||||
monSetId = monSets[bfMonCount];
|
||||
if (monSetId == 0xFFFF)
|
||||
monId = monSet[bfMonCount];
|
||||
if (monId == 0xFFFF)
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3626,12 +3626,12 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
otID = Random32();
|
||||
while (i != monCount)
|
||||
{
|
||||
u16 monSetId = monSets[Random() % bfMonCount];
|
||||
u16 monId = monSet[Random() % bfMonCount];
|
||||
|
||||
// Ensure this pokemon species isn't a duplicate.
|
||||
for (j = 0; j < i + firstMonId; j++)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monSetId].species)
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monId].species)
|
||||
break;
|
||||
}
|
||||
if (j != i + firstMonId)
|
||||
@@ -3641,7 +3641,7 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
for (j = 0; j < i + firstMonId; j++)
|
||||
{
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) != 0
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId])
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId])
|
||||
break;
|
||||
}
|
||||
if (j != i + firstMonId)
|
||||
@@ -3651,34 +3651,34 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
// because the species and held items were already checked directly above.
|
||||
for (j = 0; j < i; j++)
|
||||
{
|
||||
if (chosenMonIndices[j] == monSetId)
|
||||
if (chosenMonIndices[j] == monId)
|
||||
break;
|
||||
}
|
||||
if (j != i)
|
||||
continue;
|
||||
|
||||
chosenMonIndices[i] = monSetId;
|
||||
chosenMonIndices[i] = monId;
|
||||
|
||||
// Place the chosen pokemon into the trainer's party.
|
||||
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[i + firstMonId],
|
||||
gFacilityTrainerMons[monSetId].species,
|
||||
gFacilityTrainerMons[monId].species,
|
||||
level,
|
||||
gFacilityTrainerMons[monSetId].nature,
|
||||
gFacilityTrainerMons[monId].nature,
|
||||
fixedIV,
|
||||
gFacilityTrainerMons[monSetId].evSpread,
|
||||
gFacilityTrainerMons[monId].evSpread,
|
||||
otID);
|
||||
|
||||
friendship = MAX_FRIENDSHIP;
|
||||
// Give the chosen pokemon its specified moves.
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monSetId].moves[j], j);
|
||||
if (gFacilityTrainerMons[monSetId].moves[j] == MOVE_FRUSTRATION)
|
||||
SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monId].moves[j], j);
|
||||
if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION)
|
||||
friendship = 0; // Frustration is more powerful the lower the pokemon's friendship is.
|
||||
}
|
||||
|
||||
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_FRIENDSHIP, &friendship);
|
||||
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
|
||||
SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);
|
||||
|
||||
// The pokemon was successfully added to the trainer's party, so it's safe to move on to
|
||||
// the next party slot.
|
||||
|
||||
@@ -3679,6 +3679,65 @@
|
||||
FRONTIER_MON_MACHAMP_8, \
|
||||
-1
|
||||
|
||||
#define FRONTIER_MONS_BATTLE_GIRL_2A \
|
||||
FRONTIER_MON_MEDICHAM_1, \
|
||||
FRONTIER_MON_BRELOOM_1, \
|
||||
FRONTIER_MON_MAROWAK_1, \
|
||||
FRONTIER_MON_HARIYAMA_1, \
|
||||
FRONTIER_MON_GOLEM_1, \
|
||||
FRONTIER_MON_RHYDON_1, \
|
||||
FRONTIER_MON_NIDOQUEEN_1, \
|
||||
FRONTIER_MON_NIDOKING_1, \
|
||||
FRONTIER_MON_HERACROSS_1, \
|
||||
FRONTIER_MON_DONPHAN_1, \
|
||||
FRONTIER_MON_MACHAMP_1, \
|
||||
FRONTIER_MON_STEELIX_1, \
|
||||
FRONTIER_MON_BLAZIKEN_1, \
|
||||
FRONTIER_MON_MEDICHAM_2, \
|
||||
FRONTIER_MON_MAROWAK_2, \
|
||||
FRONTIER_MON_BRELOOM_2, \
|
||||
FRONTIER_MON_HARIYAMA_2, \
|
||||
FRONTIER_MON_GOLEM_2, \
|
||||
FRONTIER_MON_RHYDON_2, \
|
||||
FRONTIER_MON_NIDOQUEEN_2, \
|
||||
FRONTIER_MON_NIDOKING_2, \
|
||||
FRONTIER_MON_HERACROSS_2, \
|
||||
FRONTIER_MON_DONPHAN_2, \
|
||||
FRONTIER_MON_MACHAMP_2, \
|
||||
FRONTIER_MON_STEELIX_2, \
|
||||
FRONTIER_MON_BLAZIKEN_2, \
|
||||
FRONTIER_MON_MEDICHAM_3, \
|
||||
FRONTIER_MON_BRELOOM_3, \
|
||||
FRONTIER_MON_MAROWAK_3, \
|
||||
FRONTIER_MON_HARIYAMA_3, \
|
||||
FRONTIER_MON_GOLEM_3, \
|
||||
FRONTIER_MON_RHYDON_3, \
|
||||
FRONTIER_MON_NIDOQUEEN_3, \
|
||||
FRONTIER_MON_NIDOKING_3, \
|
||||
FRONTIER_MON_HERACROSS_3, \
|
||||
FRONTIER_MON_DONPHAN_3, \
|
||||
FRONTIER_MON_MACHAMP_3, \
|
||||
FRONTIER_MON_STEELIX_3, \
|
||||
FRONTIER_MON_BLAZIKEN_3, \
|
||||
FRONTIER_MON_MEDICHAM_4, \
|
||||
FRONTIER_MON_BRELOOM_4, \
|
||||
FRONTIER_MON_MAROWAK_4, \
|
||||
FRONTIER_MON_HARIYAMA_4, \
|
||||
FRONTIER_MON_GOLEM_4, \
|
||||
FRONTIER_MON_RHYDON_4, \
|
||||
FRONTIER_MON_NIDOQUEEN_4, \
|
||||
FRONTIER_MON_NIDOKING_4, \
|
||||
FRONTIER_MON_HERACROSS_4, \
|
||||
FRONTIER_MON_DONPHAN_4, \
|
||||
FRONTIER_MON_MACHAMP_4, \
|
||||
FRONTIER_MON_STEELIX_4, \
|
||||
FRONTIER_MON_BLAZIKEN_4, \
|
||||
FRONTIER_MON_MACHAMP_5, \
|
||||
FRONTIER_MON_MACHAMP_6, \
|
||||
FRONTIER_MON_MACHAMP_7, \
|
||||
FRONTIER_MON_MACHAMP_8, \
|
||||
-1
|
||||
|
||||
#define FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2B \
|
||||
FRONTIER_MON_MEDICHAM_1, \
|
||||
FRONTIER_MON_BRELOOM_1, \
|
||||
@@ -3801,65 +3860,6 @@
|
||||
FRONTIER_MON_METAGROSS_8, \
|
||||
-1
|
||||
|
||||
#define FRONTIER_MONS_BATTLE_GIRL_2A \
|
||||
FRONTIER_MON_MEDICHAM_1, \
|
||||
FRONTIER_MON_BRELOOM_1, \
|
||||
FRONTIER_MON_MAROWAK_1, \
|
||||
FRONTIER_MON_HARIYAMA_1, \
|
||||
FRONTIER_MON_GOLEM_1, \
|
||||
FRONTIER_MON_RHYDON_1, \
|
||||
FRONTIER_MON_NIDOQUEEN_1, \
|
||||
FRONTIER_MON_NIDOKING_1, \
|
||||
FRONTIER_MON_HERACROSS_1, \
|
||||
FRONTIER_MON_DONPHAN_1, \
|
||||
FRONTIER_MON_MACHAMP_1, \
|
||||
FRONTIER_MON_STEELIX_1, \
|
||||
FRONTIER_MON_BLAZIKEN_1, \
|
||||
FRONTIER_MON_MEDICHAM_2, \
|
||||
FRONTIER_MON_MAROWAK_2, \
|
||||
FRONTIER_MON_BRELOOM_2, \
|
||||
FRONTIER_MON_HARIYAMA_2, \
|
||||
FRONTIER_MON_GOLEM_2, \
|
||||
FRONTIER_MON_RHYDON_2, \
|
||||
FRONTIER_MON_NIDOQUEEN_2, \
|
||||
FRONTIER_MON_NIDOKING_2, \
|
||||
FRONTIER_MON_HERACROSS_2, \
|
||||
FRONTIER_MON_DONPHAN_2, \
|
||||
FRONTIER_MON_MACHAMP_2, \
|
||||
FRONTIER_MON_STEELIX_2, \
|
||||
FRONTIER_MON_BLAZIKEN_2, \
|
||||
FRONTIER_MON_MEDICHAM_3, \
|
||||
FRONTIER_MON_BRELOOM_3, \
|
||||
FRONTIER_MON_MAROWAK_3, \
|
||||
FRONTIER_MON_HARIYAMA_3, \
|
||||
FRONTIER_MON_GOLEM_3, \
|
||||
FRONTIER_MON_RHYDON_3, \
|
||||
FRONTIER_MON_NIDOQUEEN_3, \
|
||||
FRONTIER_MON_NIDOKING_3, \
|
||||
FRONTIER_MON_HERACROSS_3, \
|
||||
FRONTIER_MON_DONPHAN_3, \
|
||||
FRONTIER_MON_MACHAMP_3, \
|
||||
FRONTIER_MON_STEELIX_3, \
|
||||
FRONTIER_MON_BLAZIKEN_3, \
|
||||
FRONTIER_MON_MEDICHAM_4, \
|
||||
FRONTIER_MON_BRELOOM_4, \
|
||||
FRONTIER_MON_MAROWAK_4, \
|
||||
FRONTIER_MON_HARIYAMA_4, \
|
||||
FRONTIER_MON_GOLEM_4, \
|
||||
FRONTIER_MON_RHYDON_4, \
|
||||
FRONTIER_MON_NIDOQUEEN_4, \
|
||||
FRONTIER_MON_NIDOKING_4, \
|
||||
FRONTIER_MON_HERACROSS_4, \
|
||||
FRONTIER_MON_DONPHAN_4, \
|
||||
FRONTIER_MON_MACHAMP_4, \
|
||||
FRONTIER_MON_STEELIX_4, \
|
||||
FRONTIER_MON_BLAZIKEN_4, \
|
||||
FRONTIER_MON_MACHAMP_5, \
|
||||
FRONTIER_MON_MACHAMP_6, \
|
||||
FRONTIER_MON_MACHAMP_7, \
|
||||
FRONTIER_MON_MACHAMP_8, \
|
||||
-1
|
||||
|
||||
// For this group, Expert M uses Tyranitar, Expert F uses Dragonite
|
||||
#define FRONTIER_MONS_EXPERT_2A(lastmon) \
|
||||
FRONTIER_MON_BRELOOM_1, \
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -515,7 +515,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_WHAT, EC_WORD_WILL, EC_WORD_I, EC_WORD_BE, EC_WORD_TOMORROW, EC_WORD_QUES},
|
||||
.speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_LIKE, EC_WORD_IT_S, EC_WORD_FRIDAY, EC_WORD_EXCL},
|
||||
.speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_LIKE, EC_WORD_IT_S, EC_WORD_MONDAY, EC_WORD_ELLIPSIS},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Jolie
|
||||
.monSet = gSlateportBattleTentTrainerMons_Jolie
|
||||
},
|
||||
[1] = {
|
||||
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
|
||||
@@ -523,7 +523,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_BAD, EC_WORD_NEWS, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_A, EC_MOVE(SAND_TOMB)},
|
||||
.speechWin = {EC_WORD_YEEHAW_EXCL, -1, -1, EC_WORD_I_VE, EC_WORD_DONE, EC_WORD_IT},
|
||||
.speechLose = {EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_IN, EC_WORD_THIS, EC_MOVE(SAND_TOMB), EC_WORD_ELLIPSIS},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Malachi
|
||||
.monSet = gSlateportBattleTentTrainerMons_Malachi
|
||||
},
|
||||
[2] = {
|
||||
.facilityClass = FACILITY_CLASS_TUBER_F,
|
||||
@@ -531,7 +531,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_GO, EC_WORD_EXCL_EXCL, EC_WORD_MY, EC_WORD_BATH, EC_WORD_POKEMON, EC_WORD_EXCL_EXCL},
|
||||
.speechWin = {EC_WORD_YAHOO, EC_WORD_EXCL_EXCL, EC_WORD_MY, EC_WORD_BATH, EC_WORD_POKEMON, EC_WORD_EXCL_EXCL},
|
||||
.speechLose = {EC_WORD_GWAH, EC_WORD_EXCL_EXCL, EC_WORD_MY, EC_WORD_BATH, EC_WORD_POKEMON, EC_WORD_EXCL_EXCL},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Kelsie
|
||||
.monSet = gSlateportBattleTentTrainerMons_Kelsie
|
||||
},
|
||||
[3] = {
|
||||
.facilityClass = FACILITY_CLASS_TUBER_M,
|
||||
@@ -539,7 +539,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, -1, EC_WORD_GREAT, EC_MOVE(WHIRLPOOL), EC_WORD_ISN_T_IT_QUES},
|
||||
.speechWin = {EC_WORD_THAT_WAS, EC_WORD_LIKE, EC_WORD_A, EC_MOVE(WHIRLPOOL), EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL},
|
||||
.speechLose = {EC_WORD_DON_T, EC_WORD_GET, EC_MOVE2(BEAT_UP), EC_WORD_IN, EC_WORD_THAT, EC_MOVE(WHIRLPOOL)},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Davon
|
||||
.monSet = gSlateportBattleTentTrainerMons_Davon
|
||||
},
|
||||
[4] = {
|
||||
.facilityClass = FACILITY_CLASS_LADY,
|
||||
@@ -547,7 +547,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_CONVERSATION, EC_WORD_CAN, EC_WORD_WAIT, EC_WORD_UNTIL, EC_WORD_I, EC_WORD_WIN},
|
||||
.speechWin = {EC_WORD_FABULOUS, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_ROCK},
|
||||
.speechLose = {EC_WORD_NO, EC_WORD_EXCL, -1, EC_WORD_I, EC_WORD_WASN_T, EC_WORD_SERIOUS},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Glenda
|
||||
.monSet = gSlateportBattleTentTrainerMons_Glenda
|
||||
},
|
||||
[5] = {
|
||||
.facilityClass = FACILITY_CLASS_BEAUTY,
|
||||
@@ -555,7 +555,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_DOES, EC_WORD_MY, EC_WORD_BEAUTY, EC_WORD_INTIMIDATE, EC_WORD_YOU, EC_WORD_QUES},
|
||||
.speechWin = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, EC_WORD_BUT, EC_WORD_YOU_RE, EC_WORD_BORING},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_DO, EC_WORD_SO, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_EXCL},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Helena
|
||||
.monSet = gSlateportBattleTentTrainerMons_Helena
|
||||
},
|
||||
[6] = {
|
||||
.facilityClass = FACILITY_CLASS_RICH_BOY,
|
||||
@@ -563,7 +563,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_GO, EC_WORD_GET, EC_WORD_A, EC_POKEMON(WHISCASH), EC_WORD_FOR, EC_WORD_ME},
|
||||
.speechWin = {EC_WORD_AWW, EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_HAVE, EC_WORD_A, EC_POKEMON(WHISCASH)},
|
||||
.speechLose = {EC_WORD_PLEASE, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_POKEMON(WHISCASH), EC_WORD_BADLY},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Rodolfo
|
||||
.monSet = gSlateportBattleTentTrainerMons_Rodolfo
|
||||
},
|
||||
[7] = {
|
||||
.facilityClass = FACILITY_CLASS_POKEMANIAC,
|
||||
@@ -571,7 +571,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_GRAAAH, EC_WORD_GRAAAH, EC_WORD_EXCL_EXCL, EC_WORD_GRAAAH, EC_WORD_GRAAAH, EC_WORD_EXCL_EXCL},
|
||||
.speechWin = {EC_MOVE2(ROAR), EC_WORD_EXCL, -1, EC_MOVE2(ROAR), EC_WORD_EXCL_EXCL, -1},
|
||||
.speechLose = {EC_WORD_URGH, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, -1, -1, -1},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Davion
|
||||
.monSet = gSlateportBattleTentTrainerMons_Davion
|
||||
},
|
||||
[8] = {
|
||||
.facilityClass = FACILITY_CLASS_SWIMMER_M,
|
||||
@@ -579,7 +579,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_A_LITTLE, EC_MOVE2(PETAL_DANCE), EC_WORD_TO, EC_WORD_PLEASE, EC_WORD_YOU, EC_WORD_EXCL},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_DO, EC_WORD_THIS, EC_WORD_ONLY, EC_WORD_FOR, EC_WORD_WORK},
|
||||
.speechLose = {EC_WORD_HOW, EC_WORD_COULD, EC_WORD_YOU, EC_MOVE2(POUND), EC_WORD_ME, EC_WORD_QUES},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Kendall
|
||||
.monSet = gSlateportBattleTentTrainerMons_Kendall
|
||||
},
|
||||
[9] = {
|
||||
.facilityClass = FACILITY_CLASS_CAMPER,
|
||||
@@ -587,7 +587,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_RUN, EC_WORD_AROUND},
|
||||
.speechWin = {EC_WORD_YAY, EC_WORD_EXCL, EC_WORD_WANT, EC_WORD_TO, EC_WORD_RUN, EC_WORD_QUES},
|
||||
.speechLose = {EC_WORD_A, EC_WORD_SWIFT_SWIM, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_GOOD, EC_WORD_TOO},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Colten
|
||||
.monSet = gSlateportBattleTentTrainerMons_Colten
|
||||
},
|
||||
[10] = {
|
||||
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
|
||||
@@ -595,7 +595,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_HAVE, EC_WORD_A, EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_MOVE(CONFUSE_RAY)},
|
||||
.speechWin = {EC_WORD_YAHOO, EC_WORD_MY, EC_MOVE(CONFUSE_RAY), EC_WORD_IS, EC_WORD_THE, EC_WORD_BEST},
|
||||
.speechLose = {EC_WORD_GWAH, EC_WORD_EXCL_EXCL, -1, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_EXCL},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Irvin
|
||||
.monSet = gSlateportBattleTentTrainerMons_Irvin
|
||||
},
|
||||
[11] = {
|
||||
.facilityClass = FACILITY_CLASS_GENTLEMAN,
|
||||
@@ -603,7 +603,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_LISTEN, EC_WORD_ELLIPSIS, EC_WORD_YOU, EC_WORD_AREN_T, EC_WORD_VERY, EC_WORD_GOOD},
|
||||
.speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_WAS, EC_WORD_RIGHT},
|
||||
.speechLose = {EC_WORD_YES, EC_WORD_YES, EC_WORD_ELLIPSIS, EC_WORD_YOU_RE, EC_WORD_QUITE, EC_WORD_SOMETHING},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Shaun
|
||||
.monSet = gSlateportBattleTentTrainerMons_Shaun
|
||||
},
|
||||
[12] = {
|
||||
.facilityClass = FACILITY_CLASS_GUITARIST,
|
||||
@@ -611,7 +611,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_QUES},
|
||||
.speechWin = {EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_YAY},
|
||||
.speechLose = {EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_WOW},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Kyler
|
||||
.monSet = gSlateportBattleTentTrainerMons_Kyler
|
||||
},
|
||||
[13] = {
|
||||
.facilityClass = FACILITY_CLASS_SCHOOL_KID_F,
|
||||
@@ -619,7 +619,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_POKEMON(VULPIX), EC_POKEMON(XATU), EC_POKEMON2(UMBREON), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_WORD_ELLIPSIS},
|
||||
.speechWin = {EC_POKEMON(NOSEPASS), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_POKEMON(SEVIPER), EC_WORD_EXCL, -1},
|
||||
.speechLose = {EC_POKEMON(NOSEPASS), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_POKEMON2(SNORLAX), EC_WORD_ELLIPSIS, EC_WORD_UH_OH},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Maggie
|
||||
.monSet = gSlateportBattleTentTrainerMons_Maggie
|
||||
},
|
||||
[14] = {
|
||||
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
|
||||
@@ -627,7 +627,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_ENJOY, EC_WORD_AN, EC_WORD_EGG},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_TASTY, EC_WORD_VICTORY},
|
||||
.speechLose = {EC_WORD_AWFUL, EC_WORD_EXCL_EXCL, -1, EC_WORD_JUST, EC_WORD_AWFUL, EC_WORD_EXCL_EXCL},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Stephon
|
||||
.monSet = gSlateportBattleTentTrainerMons_Stephon
|
||||
},
|
||||
[15] = {
|
||||
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
|
||||
@@ -635,7 +635,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_THAT, EC_WORD_EGG, EC_WORD_HAS, EC_WORD_A, EC_WORD_TASTY, EC_WORD_SHINE},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_EXCL, EC_WORD_SMELL, EC_WORD_THAT, EC_WORD_STENCH},
|
||||
.speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_STOP, EC_WORD_ELLIPSIS},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Rebecca
|
||||
.monSet = gSlateportBattleTentTrainerMons_Rebecca
|
||||
},
|
||||
[16] = {
|
||||
.facilityClass = FACILITY_CLASS_POKEFAN_M,
|
||||
@@ -643,7 +643,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_POKEMON, EC_WORD_COME, EC_WORD_BEFORE, EC_WORD_MONEY, EC_WORD_OR, EC_WORD_FAMILY},
|
||||
.speechWin = {EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_ME, EC_WORD_STRONG},
|
||||
.speechLose = {EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_THICK, EC_WORD_ELLIPSIS},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Reggie
|
||||
.monSet = gSlateportBattleTentTrainerMons_Reggie
|
||||
},
|
||||
[17] = {
|
||||
.facilityClass = FACILITY_CLASS_POKEFAN_F,
|
||||
@@ -651,7 +651,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_JUST, EC_WORD_ADORE, EC_WORD_YOUR, EC_WORD_TOUGH, EC_WORD_LOOK},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_HOW, EC_WORD_YOU, EC_MOVE2(STRUGGLE), -1},
|
||||
.speechLose = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_MEAN, EC_WORD_AND, EC_WORD_AWFUL, EC_WORD_TRAINER},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Janae
|
||||
.monSet = gSlateportBattleTentTrainerMons_Janae
|
||||
},
|
||||
[18] = {
|
||||
.facilityClass = FACILITY_CLASS_EXPERT_M,
|
||||
@@ -659,7 +659,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_MY, EC_MOVE2(CURSE), EC_WORD_WILL, EC_WORD_BREAK, EC_WORD_YOUR, EC_WORD_SPIRIT},
|
||||
.speechWin = {EC_MOVE2(CURSE), EC_WORD_QUES, EC_WORD_IT_S, EC_WORD_A, EC_WORD_LIE, EC_WORD_ELLIPSIS},
|
||||
.speechLose = {EC_WORD_MY, EC_MOVE2(CURSE), EC_WORD_WILL, EC_WORD_LAST, EC_WORD_FOREVER, -1},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Caiden
|
||||
.monSet = gSlateportBattleTentTrainerMons_Caiden
|
||||
},
|
||||
[19] = {
|
||||
.facilityClass = FACILITY_CLASS_EXPERT_F,
|
||||
@@ -667,7 +667,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_HUH_QUES, EC_WORD_A, EC_WORD_BATTLE, EC_WORD_YOU, EC_WORD_SAID, EC_WORD_QUES},
|
||||
.speechWin = {EC_WORD_HUH_QUES, EC_WORD_STRONG, EC_WORD_BUT, EC_WORD_NOT, EC_WORD_STRONG, EC_WORD_ENOUGH},
|
||||
.speechLose = {EC_WORD_HUH_QUES, EC_WORD_I, EC_WORD_SURRENDER, EC_WORD_TO, EC_WORD_YOUR, EC_MOVE(STRENGTH)},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Kirsten
|
||||
.monSet = gSlateportBattleTentTrainerMons_Kirsten
|
||||
},
|
||||
[20] = {
|
||||
.facilityClass = FACILITY_CLASS_YOUNGSTER,
|
||||
@@ -675,7 +675,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_SORRY, EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GET, EC_MOVE2(BEAT_UP)},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_SAID, EC_WORD_WE, EC_WORD_WOULD, EC_MOVE2(POUND), EC_WORD_YOU},
|
||||
.speechLose = {EC_WORD_HOW, EC_WORD_DID, EC_WORD_I, EC_WORD_GET, EC_MOVE2(BEAT_UP), EC_WORD_QUES},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Kurtis
|
||||
.monSet = gSlateportBattleTentTrainerMons_Kurtis
|
||||
},
|
||||
[21] = {
|
||||
.facilityClass = FACILITY_CLASS_FISHERMAN,
|
||||
@@ -683,7 +683,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_WANT, EC_WORD_CUTE, EC_WORD_POKEMON, -1},
|
||||
.speechWin = {EC_WORD_WHAT, EC_WORD_IS, EC_WORD_IT, EC_WORD_TO, EC_WORD_YOU, EC_WORD_QUES},
|
||||
.speechLose = {EC_WORD_YOU_RE, EC_WORD_KIND, EC_WORD_OF, EC_WORD_AWESOME, EC_WORD_ELLIPSIS, -1},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Stefan
|
||||
.monSet = gSlateportBattleTentTrainerMons_Stefan
|
||||
},
|
||||
[22] = {
|
||||
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
|
||||
@@ -691,7 +691,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_TOYS, EC_WORD_EXCL, EC_WORD_I, EC_WORD_NEED, EC_WORD_MORE, EC_WORD_TOYS},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_SOME, EC_WORD_EASY, EC_WORD_MONEY, EC_WORD_FAST},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_WORK, EC_WORD_FOR, EC_WORD_MONEY},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Avery
|
||||
.monSet = gSlateportBattleTentTrainerMons_Avery
|
||||
},
|
||||
[23] = {
|
||||
.facilityClass = FACILITY_CLASS_NINJA_BOY,
|
||||
@@ -699,7 +699,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_MMM, EC_WORD_TASTY, EC_WORD_ELLIPSIS, EC_WORD_WONDER, EC_WORD_WHAT, EC_WORD_QUES},
|
||||
.speechWin = {EC_WORD_MMM, EC_WORD_MMM, EC_WORD_ELLIPSIS, EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_KNOW},
|
||||
.speechLose = {EC_WORD_MMM, EC_WORD_MMM, EC_WORD_ELLIPSIS, EC_WORD_OH_YEAH, EC_WORD_THIS_IS_IT_EXCL, -1},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Dwane
|
||||
.monSet = gSlateportBattleTentTrainerMons_Dwane
|
||||
},
|
||||
[24] = {
|
||||
.facilityClass = FACILITY_CLASS_PARASOL_LADY,
|
||||
@@ -707,7 +707,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_SMALL, EC_WORD_TALK, EC_WORD_LET_S, EC_WORD_GO},
|
||||
.speechWin = {EC_WORD_YUP, EC_WORD_THAT_S, EC_WORD_THAT, -1, -1, -1},
|
||||
.speechLose = {EC_WORD_KTHX_BYE, -1, -1, -1, -1, -1},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Mckenna
|
||||
.monSet = gSlateportBattleTentTrainerMons_Mckenna
|
||||
},
|
||||
[25] = {
|
||||
.facilityClass = FACILITY_CLASS_SWIMMER_F,
|
||||
@@ -715,7 +715,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_MR, EC_WORD_JUDGE, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_OUR, EC_WORD_TRUST},
|
||||
.speechWin = {EC_WORD_YES_SIR_EXCL, EC_WORD_WE_RE, EC_WORD_NO_1, EC_WORD_IN, EC_WORD_THIS, EC_WORD_CONTEST},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_GIVE_UP, EC_WORD_MY, EC_WORD_IDOL, EC_WORD_DREAM},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Camryn
|
||||
.monSet = gSlateportBattleTentTrainerMons_Camryn
|
||||
},
|
||||
[26] = {
|
||||
.facilityClass = FACILITY_CLASS_PICNICKER,
|
||||
@@ -723,7 +723,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_COME_OVER, EC_WORD_TO, EC_WORD_MY, EC_WORD_PLACE, EC_WORD_OK_QUES, -1},
|
||||
.speechWin = {EC_WORD_COME_ON, EC_WORD_OVER, EC_WORD_IT, EC_WORD_WILL, EC_WORD_BE, EC_WORD_GREAT},
|
||||
.speechLose = {EC_WORD_AWW, EC_WORD_WON_T, EC_WORD_YOU, EC_WORD_COME_OVER, EC_WORD_QUES, -1},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Natasha
|
||||
.monSet = gSlateportBattleTentTrainerMons_Natasha
|
||||
},
|
||||
[27] = {
|
||||
.facilityClass = FACILITY_CLASS_SAILOR,
|
||||
@@ -731,7 +731,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_CARE, EC_WORD_HOW, EC_WORD_WE, EC_WORD_MATCH_UP},
|
||||
.speechWin = {EC_WORD_HAH, EC_WORD_BACK, EC_WORD_TO, EC_WORD_SCHOOL, EC_WORD_FOR, EC_WORD_YOU},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MY, EC_WORD_LESSONS},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Austyn
|
||||
.monSet = gSlateportBattleTentTrainerMons_Austyn
|
||||
},
|
||||
[28] = {
|
||||
.facilityClass = FACILITY_CLASS_COLLECTOR,
|
||||
@@ -739,7 +739,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_OH, EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_SLIMY, EC_WORD_ALL, EC_WORD_OVER},
|
||||
.speechWin = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_DOWN, EC_WORD_THE, EC_MOVE2(MEGA_DRAIN), EC_WORD_HAHAHA},
|
||||
.speechLose = {EC_WORD_I_AM, EC_WORD_NATURALLY, EC_WORD_SLIMY, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Donovan
|
||||
.monSet = gSlateportBattleTentTrainerMons_Donovan
|
||||
},
|
||||
[29] = {
|
||||
.facilityClass = FACILITY_CLASS_LASS,
|
||||
@@ -747,7 +747,7 @@ const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I_AM, EC_WORD_ANGRY, EC_WORD_WITH, EC_WORD_MY, EC_WORD_FATHER, EC_WORD_ELLIPSIS},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_DISLIKE, EC_WORD_MY, EC_WORD_FATHER, EC_WORD_EXCL},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_JUST, EC_WORD_SO, EC_WORD_ADORE, EC_WORD_MY, EC_WORD_FATHER},
|
||||
.monSets = gSlateportBattleTentTrainerMons_Tamia
|
||||
.monSet = gSlateportBattleTentTrainerMons_Tamia
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1568,7 +1568,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_NO, EC_WORD_DAYS, EC_WORD_GO, EC_WORD_WITHOUT, EC_WORD_MY, EC_MOVE(FAKE_TEARS)},
|
||||
.speechWin = {EC_WORD_OH, EC_WORD_THAT_WAS, EC_WORD_SO, EC_WORD_REFRESHING, EC_WORD_EXCL, -1},
|
||||
.speechLose = {EC_WORD_ALL, EC_WORD_I, EC_WORD_EVER, EC_WORD_GET, EC_WORD_IS, EC_MOVE(TORMENT)},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Brenna
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Brenna
|
||||
},
|
||||
[1] = {
|
||||
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
|
||||
@@ -1576,7 +1576,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_BORED, EC_WORD_I_AM},
|
||||
.speechWin = {EC_WORD_LOSING, EC_WORD_ISN_T, EC_WORD_EXCITING, EC_WORD_AT, EC_WORD_ALL, EC_WORD_ELLIPSIS},
|
||||
.speechLose = {EC_WORD_EXCITING, EC_WORD_EXCL_EXCL, EC_WORD_BYE_BYE, EC_WORD_TO, EC_WORD_BEING, EC_WORD_BORED},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Dilan
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Dilan
|
||||
},
|
||||
[2] = {
|
||||
.facilityClass = FACILITY_CLASS_TUBER_F,
|
||||
@@ -1584,7 +1584,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_ON, EC_WORD_A, EC_WORD_VACATION, EC_WORD_SOON},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_GET, EC_WORD_SOME, EC_WORD_MONEY},
|
||||
.speechLose = {EC_WORD_NO, EC_WORD_SLEEP, EC_WORD_UNTIL, EC_WORD_I, EC_WORD_GET, EC_WORD_HOME},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Eliana
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Eliana
|
||||
},
|
||||
[3] = {
|
||||
.facilityClass = FACILITY_CLASS_TUBER_M,
|
||||
@@ -1592,7 +1592,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I_AM, EC_WORD_SMART, EC_WORD_EXCL, EC_WORD_IF_I_LOSE, EC_WORD_I, EC_MOVE(SELF_DESTRUCT)},
|
||||
.speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_NON_STOP, EC_MOVE2(EXPLOSION), EC_WORD_OF, EC_WORD_JOY},
|
||||
.speechLose = {EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_ELLIPSIS, EC_WORD_TIME, EC_WORD_TO, EC_MOVE(SELF_DESTRUCT)},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Markus
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Markus
|
||||
},
|
||||
[4] = {
|
||||
.facilityClass = FACILITY_CLASS_LADY,
|
||||
@@ -1600,7 +1600,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I_AM, EC_WORD_BORED, EC_WORD_OF, EC_WORD_BEING, EC_WORD_AN, EC_WORD_IDOL},
|
||||
.speechWin = {EC_WORD_A, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_BEST, EC_WORD_FOR, EC_WORD_HAPPINESS},
|
||||
.speechLose = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_BUG, EC_WORD_ME, EC_WORD_AT, EC_WORD_ALL},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Caitlyn
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Caitlyn
|
||||
},
|
||||
[5] = {
|
||||
.facilityClass = FACILITY_CLASS_BEAUTY,
|
||||
@@ -1608,7 +1608,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_DOESN_T, EC_WORD_MY, EC_WORD_BEAUTY, EC_MOVE(ASTONISH), EC_WORD_YOU, EC_WORD_QUES},
|
||||
.speechWin = {EC_WORD_DID, EC_WORD_I, EC_WORD_INTIMIDATE, EC_WORD_YOU, EC_WORD_QUES, -1},
|
||||
.speechLose = {EC_WORD_MY, EC_WORD_BEAUTY, EC_WORD_DID, EC_WORD_NOTHING, EC_WORD_FOR, EC_WORD_YOU},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Desiree
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Desiree
|
||||
},
|
||||
[6] = {
|
||||
.facilityClass = FACILITY_CLASS_RICH_BOY,
|
||||
@@ -1616,7 +1616,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_COME_ON, EC_WORD_I, EC_WORD_WILL, EC_WORD_BATTLE, EC_WORD_SERIOUSLY, -1},
|
||||
.speechWin = {EC_WORD_GIVE_UP, EC_WORD_QUES, -1, EC_WORD_THAT_S, EC_WORD_REALLY, EC_WORD_WEAK},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_DO, EC_WORD_A, EC_MOVE2(BATON_PASS)},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Ronald
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Ronald
|
||||
},
|
||||
[7] = {
|
||||
.facilityClass = FACILITY_CLASS_POKEMANIAC,
|
||||
@@ -1624,7 +1624,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_OH_YEAH, EC_WORD_ANOTHER, EC_WORD_EXCITING, EC_WORD_BATTLE, EC_WORD_EXCL, -1},
|
||||
.speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_WIMPY, EC_WORD_AND, EC_WORD_BORING},
|
||||
.speechLose = {EC_WORD_THAT_WAS, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_LOSS, EC_WORD_WOW, EC_WORD_EXCL},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Ashten
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Ashten
|
||||
},
|
||||
[8] = {
|
||||
.facilityClass = FACILITY_CLASS_SWIMMER_M,
|
||||
@@ -1632,7 +1632,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_SUPER, EC_MOVE2(TEETER_DANCE), EC_WORD_EXCL},
|
||||
.speechWin = {EC_WORD_THAT_WAS, EC_WORD_HARD, EC_WORD_ELLIPSIS, EC_WORD_AM, EC_WORD_I, EC_WORD_OK_QUES},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_FORGIVE, EC_WORD_YOU, EC_WORD_FOR, EC_WORD_THAT},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Gerard
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Gerard
|
||||
},
|
||||
[9] = {
|
||||
.facilityClass = FACILITY_CLASS_CAMPER,
|
||||
@@ -1640,7 +1640,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_IT_S, EC_WORD_LONESOME, EC_WORD_BUT, EC_WORD_I, EC_WORD_VACATION, EC_WORD_ALONE},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_WILL, EC_MOVE(WITHDRAW), EC_WORD_INSIDE, EC_WORD_MY, EC_WORD_SHELL_ARMOR},
|
||||
.speechLose = {EC_WORD_OH, EC_WORD_ELLIPSIS, -1, EC_WORD_ALONE, EC_WORD_AS, EC_WORD_ALWAYS},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Bradly
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Bradly
|
||||
},
|
||||
[10] = {
|
||||
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
|
||||
@@ -1648,7 +1648,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_STRONG, EC_WORD_QUES, -1},
|
||||
.speechWin = {EC_WORD_WAHAHAHA, EC_WORD_EXCL, -1, EC_WORD_WAHAHAHA, EC_WORD_EXCL_EXCL, -1},
|
||||
.speechLose = {EC_WORD_NICE, EC_WORD_GOING, EC_WORD_EXCL, EC_WORD_I, EC_WORD_WAS, EC_WORD_CHILD_S_PLAY},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Dennis
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Dennis
|
||||
},
|
||||
[11] = {
|
||||
.facilityClass = FACILITY_CLASS_GENTLEMAN,
|
||||
@@ -1656,7 +1656,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_MOVE(NIGHTMARE), EC_WORD_FOR, EC_WORD_YOU},
|
||||
.speechWin = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_A, EC_WORD_DREAM},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_WAKE_UP, EC_WORD_FROM, EC_WORD_THIS},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Prestin
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Prestin
|
||||
},
|
||||
[12] = {
|
||||
.facilityClass = FACILITY_CLASS_GUITARIST,
|
||||
@@ -1664,7 +1664,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_THIS, EC_WORD_PARTY, EC_WORD_GOES, EC_WORD_ON, EC_WORD_FOREVER, EC_WORD_EXCL},
|
||||
.speechWin = {EC_WORD_THE, EC_WORD_MUSIC, EC_WORD_PLAYS, EC_WORD_ON, EC_WORD_WITHOUT, EC_WORD_END},
|
||||
.speechLose = {EC_WORD_NO, EC_WORD_EXCL, EC_WORD_THE, EC_WORD_MUSIC, EC_WORD_CAN_T, EC_WORD_STOP},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Ernesto
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Ernesto
|
||||
},
|
||||
[13] = {
|
||||
.facilityClass = FACILITY_CLASS_SCHOOL_KID_F,
|
||||
@@ -1672,7 +1672,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_THE, EC_WORD_WORLD, EC_WORD_MOVIE, EC_WORD_COLLECTION},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_LIKE, EC_WORD_RADIO, EC_WORD_VERY, EC_WORD_MUCH},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_REFUSE, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_THIS, EC_WORD_EXCL},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Nala
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Nala
|
||||
},
|
||||
[14] = {
|
||||
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
|
||||
@@ -1680,7 +1680,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GO_EASY, EC_WORD_ON, EC_WORD_YOU, -1},
|
||||
.speechWin = {EC_WORD_YOUR, EC_MOVE2(FRUSTRATION), EC_WORD_SHOULD, EC_WORD_BE, EC_WORD_HIDDEN, EC_WORD_AWAY},
|
||||
.speechLose = {EC_WORD_YOU_RE, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_TAKE, EC_WORD_ELLIPSIS},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Darnell
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Darnell
|
||||
},
|
||||
[15] = {
|
||||
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
|
||||
@@ -1688,7 +1688,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_LOOK, EC_WORD_TOUGH, EC_WORD_DO, EC_WORD_I, EC_WORD_QUES},
|
||||
.speechWin = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_OVER, EC_WORD_YOUR, EC_MOVE2(TAUNT), EC_WORD_YET},
|
||||
.speechLose = {EC_WORD_YOU_RE, EC_WORD_MEAN, EC_WORD_EXCL_EXCL, -1, -1, -1},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Ashlyn
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Ashlyn
|
||||
},
|
||||
[16] = {
|
||||
.facilityClass = FACILITY_CLASS_POKEFAN_M,
|
||||
@@ -1696,7 +1696,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_YES, EC_WORD_EXCL, -1, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_EXCL},
|
||||
.speechWin = {EC_WORD_WELL, EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_EASY, EC_WORD_QUES, -1},
|
||||
.speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, -1, EC_WORD_BUT, EC_WORD_WHY, EC_WORD_QUES},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Addison
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Addison
|
||||
},
|
||||
[17] = {
|
||||
.facilityClass = FACILITY_CLASS_POKEFAN_F,
|
||||
@@ -1704,7 +1704,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_YES, EC_WORD_EXCL, -1, EC_WORD_COME_ON, EC_WORD_I_AM, EC_WORD_READY},
|
||||
.speechWin = {EC_WORD_YOU_RE, EC_WORD_JUST, EC_WORD_NOT, EC_WORD_GOOD, EC_WORD_ENOUGH, EC_WORD_EXCL},
|
||||
.speechLose = {EC_WORD_WOWEE, EC_WORD_EXCL_EXCL, -1, -1, -1, -1},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Justine
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Justine
|
||||
},
|
||||
[18] = {
|
||||
.facilityClass = FACILITY_CLASS_EXPERT_M,
|
||||
@@ -1712,7 +1712,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_PRESSURE, EC_WORD_ME, EC_WORD_QUES},
|
||||
.speechWin = {EC_WORD_WHAT, EC_WORD_QUES, EC_WORD_YOU_RE, EC_WORD_MUCH, EC_WORD_TOO_WEAK, EC_WORD_EXCL},
|
||||
.speechLose = {EC_WORD_THIS, EC_WORD_DOESN_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_HAPPY, EC_WORD_EXCL},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Tyson
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Tyson
|
||||
},
|
||||
[19] = {
|
||||
.facilityClass = FACILITY_CLASS_EXPERT_F,
|
||||
@@ -1720,7 +1720,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_A, EC_MOVE2(STRUGGLE), EC_WORD_ISN_T, EC_WORD_VERY, EC_WORD_COOL, -1},
|
||||
.speechWin = {EC_WORD_NOPE, EC_WORD_NOT_VERY, EC_WORD_COOL, EC_WORD_AT, EC_WORD_ALL, EC_WORD_EXCL},
|
||||
.speechLose = {EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_COOL, EC_WORD_BUT, EC_WORD_YOU, EC_WORD_WON},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Laila
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Laila
|
||||
},
|
||||
[20] = {
|
||||
.facilityClass = FACILITY_CLASS_YOUNGSTER,
|
||||
@@ -1728,7 +1728,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_DANGER, EC_WORD_EXCL, -1, EC_WORD_I, EC_WORD_SENSE, EC_WORD_DANGER},
|
||||
.speechWin = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_BELIEVE, EC_WORD_MY, EC_WORD_LIE, EC_WORD_QUES_EXCL},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_DID, EC_WORD_SENSE, EC_WORD_DANGER, EC_WORD_ELLIPSIS},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Waren
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Waren
|
||||
},
|
||||
[21] = {
|
||||
.facilityClass = FACILITY_CLASS_FISHERMAN,
|
||||
@@ -1736,7 +1736,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_MOVE2(BARRIER), EC_WORD_EXCL_EXCL, -1, EC_WORD_NOW, EC_WORD_COME_ON, EC_WORD_EXCL},
|
||||
.speechWin = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_SHOULD, EC_WORD_KNOW, EC_WORD_THAT, EC_WORD_IT_S, EC_WORD_HOPELESS},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Tobias
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Tobias
|
||||
},
|
||||
[22] = {
|
||||
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
|
||||
@@ -1744,7 +1744,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_MOVE(FLY), EC_WORD_IF_I_LOSE, -1},
|
||||
.speechWin = {EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS, -1, EC_WORD_YOU, EC_MOVE(FLY), EC_WORD_INSTEAD},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_MOVE(FLY), EC_WORD_SOMETIME, EC_WORD_SOON},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Josiah
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Josiah
|
||||
},
|
||||
[23] = {
|
||||
.facilityClass = FACILITY_CLASS_NINJA_BOY,
|
||||
@@ -1752,7 +1752,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_IT_S, EC_WORD_TRENDY, EC_WORD_UM, EC_WORD_BATTLE, EC_WORD_SOMETHING, -1},
|
||||
.speechWin = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_BATTLE, EC_WORD_DATE, EC_WORD_QUES},
|
||||
.speechLose = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_BATTLE, EC_WORD_GOURMET, EC_WORD_QUES},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Dion
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Dion
|
||||
},
|
||||
[24] = {
|
||||
.facilityClass = FACILITY_CLASS_PARASOL_LADY,
|
||||
@@ -1760,7 +1760,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_THE, EC_MOVE(MORNING_SUN), EC_WORD_GIVES, EC_WORD_ME, EC_MOVE(STRENGTH), -1},
|
||||
.speechWin = {EC_WORD_BUT, EC_WORD_I, EC_WORD_LIKE, EC_MOVE2(MOONLIGHT), EC_WORD_TOO, -1},
|
||||
.speechLose = {EC_WORD_YOU_RE, EC_WORD_LIKE, EC_WORD_A, EC_WORD_TERRIBLE, EC_MOVE(SANDSTORM), EC_WORD_ELLIPSIS},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Kenzie
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Kenzie
|
||||
},
|
||||
[25] = {
|
||||
.facilityClass = FACILITY_CLASS_SWIMMER_F,
|
||||
@@ -1768,7 +1768,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_DO, EC_WORD_THINGS, EC_WORD_AT, EC_WORD_MY, EC_WORD_OWN_TEMPO},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_QUES, EC_WORD_WHAT, EC_WORD_A, EC_WORD_SURPRISE},
|
||||
.speechLose = {EC_WORD_AWW, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_NAP},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Lillian
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Lillian
|
||||
},
|
||||
[26] = {
|
||||
.facilityClass = FACILITY_CLASS_PICNICKER,
|
||||
@@ -1776,7 +1776,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_BE, EC_WORD_LOLLING, EC_WORD_ABOUT},
|
||||
.speechWin = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_GET, EC_WORD_UP, EC_WORD_EARLIER, -1},
|
||||
.speechLose = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_EXCL},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Lesley
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Lesley
|
||||
},
|
||||
[27] = {
|
||||
.facilityClass = FACILITY_CLASS_SAILOR,
|
||||
@@ -1784,7 +1784,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_NONE, EC_WORD_OF, EC_WORD_THIS, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_SENSE},
|
||||
.speechWin = {EC_WORD_SEE, EC_WORD_QUES, EC_WORD_THIS, EC_WORD_JUST, EC_WORD_ISN_T, EC_WORD_NORMAL},
|
||||
.speechLose = {EC_WORD_SHOULD, EC_WORD_I, EC_WORD_CAUSE, EC_WORD_AN, EC_MOVE(UPROAR), EC_WORD_QUES},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Marquis
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Marquis
|
||||
},
|
||||
[28] = {
|
||||
.facilityClass = FACILITY_CLASS_COLLECTOR,
|
||||
@@ -1792,7 +1792,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_ADORE, EC_WORD_THIS, EC_WORD_CUTE, EC_WORD_TELEVISION, EC_WORD_IDOL},
|
||||
.speechWin = {EC_WORD_YOU_RE, EC_WORD_SO, EC_WORD_FUNNY, EC_WORD_WHEN, EC_WORD_YOU_RE, EC_WORD_ANGRY},
|
||||
.speechLose = {EC_WORD_LATE, EC_WORD_NIGHT, EC_WORD_TELEVISION, EC_WORD_IS, EC_WORD_MY, EC_WORD_LIFE},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Freddy
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Freddy
|
||||
},
|
||||
[29] = {
|
||||
.facilityClass = FACILITY_CLASS_LASS,
|
||||
@@ -1800,7 +1800,7 @@ const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_MY, EC_WORD_FABULOUS, EC_WORD_CUTENESS, EC_WORD_IS, EC_WORD_IN, EC_WORD_FASHION},
|
||||
.speechWin = {EC_WORD_YOU_RE, EC_WORD_NO, EC_WORD_MATCH, EC_WORD_FOR, EC_WORD_MY, EC_WORD_CUTE_CHARM},
|
||||
.speechLose = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_QUES},
|
||||
.monSets = gVerdanturfBattleTentTrainerMons_Cecilia
|
||||
.monSet = gVerdanturfBattleTentTrainerMons_Cecilia
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2449,7 +2449,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_DIET, EC_WORD_EVERY, EC_WORD_DAY},
|
||||
.speechWin = {EC_WORD_A, EC_MOVE(NIGHTMARE), EC_WORD_OF, EC_WORD_SWEETS, EC_WORD_SHOCKED, EC_WORD_ME},
|
||||
.speechLose = {EC_WORD_IF, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_YOU, EC_WORD_WILL, EC_WORD_LOSE},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Amber
|
||||
.monSet = gFallarborBattleTentTrainerMons_Amber
|
||||
},
|
||||
[1] = {
|
||||
.facilityClass = FACILITY_CLASS_RUIN_MANIAC,
|
||||
@@ -2457,7 +2457,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_NEVER, EC_WORD_EVER, EC_WORD_HAVE, EC_WORD_ENOUGH, EC_WORD_MONEY},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I, EC_WORD_NEED, EC_WORD_MONEY},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_MONEY, EC_WORD_FOR, EC_WORD_A, EC_WORD_BIKE},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Javier
|
||||
.monSet = gFallarborBattleTentTrainerMons_Javier
|
||||
},
|
||||
[2] = {
|
||||
.facilityClass = FACILITY_CLASS_TUBER_F,
|
||||
@@ -2465,7 +2465,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_THE, EC_WORD_WAY, EC_WORD_I, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_WEIRD},
|
||||
.speechWin = {EC_WORD_YOU_RE, EC_WORD_MUCH, EC_WORD_TOO_WEAK, EC_WORD_FOR, EC_WORD_THIS, EC_WORD_PLACE},
|
||||
.speechLose = {EC_WORD_GIVE_ME, EC_WORD_AN, EC_WORD_EASY, EC_WORD_MATCH, EC_WORD_NEXT, EC_WORD_TIME},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Natalie
|
||||
.monSet = gFallarborBattleTentTrainerMons_Natalie
|
||||
},
|
||||
[3] = {
|
||||
.facilityClass = FACILITY_CLASS_TUBER_M,
|
||||
@@ -2473,7 +2473,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_MOVE2(METRONOME), EC_WORD_AND, EC_WORD_SLEEP},
|
||||
.speechWin = {EC_WORD_YEAH, EC_WORD_EXCL, EC_MOVE(HYPNOSIS), EC_WORD_IS, EC_WORD_TOTALLY, EC_WORD_GREAT},
|
||||
.speechLose = {EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_ELLIPSIS, -1},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Treve
|
||||
.monSet = gFallarborBattleTentTrainerMons_Treve
|
||||
},
|
||||
[4] = {
|
||||
.facilityClass = FACILITY_CLASS_LADY,
|
||||
@@ -2481,7 +2481,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_IF_I_WIN, EC_WORD_GIVE_ME, EC_WORD_POKEMON, EC_WORD_FOR, EC_WORD_MY, EC_WORD_COLLECTION},
|
||||
.speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_COLLECT},
|
||||
.speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SOMETHING, EC_WORD_ELSE, EC_WORD_ELLIPSIS},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Arianna
|
||||
.monSet = gFallarborBattleTentTrainerMons_Arianna
|
||||
},
|
||||
[5] = {
|
||||
.facilityClass = FACILITY_CLASS_BEAUTY,
|
||||
@@ -2489,7 +2489,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_MY, EC_WORD_NAME, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_A, EC_WORD_MYSTERY},
|
||||
.speechWin = {EC_WORD_MY, EC_WORD_NAME, EC_WORD_GOES, EC_WORD_ON, EC_WORD_A, EC_WORD_MYSTERY},
|
||||
.speechLose = {EC_WORD_MY, EC_WORD_NAME, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_YOUR, EC_WORD_MOTHER},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Jadyn
|
||||
.monSet = gFallarborBattleTentTrainerMons_Jadyn
|
||||
},
|
||||
[6] = {
|
||||
.facilityClass = FACILITY_CLASS_RICH_BOY,
|
||||
@@ -2497,7 +2497,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_BEST, EC_WORD_HERO, EC_WORD_EVER, EC_WORD_EXCL},
|
||||
.speechWin = {EC_WORD_SEE, EC_WORD_WHAT, EC_WORD_I, EC_WORD_MEAN, EC_WORD_QUES, -1},
|
||||
.speechLose = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_WERE, EC_WORD_RIGHT, EC_WORD_QUES, -1},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Gerardo
|
||||
.monSet = gFallarborBattleTentTrainerMons_Gerardo
|
||||
},
|
||||
[7] = {
|
||||
.facilityClass = FACILITY_CLASS_POKEMANIAC,
|
||||
@@ -2505,7 +2505,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_THE, EC_WORD_WORLD, EC_MOVE2(SUPERPOWER), EC_MOVE2(STOMP), EC_WORD_CONTEST, EC_WORD_EXCL_EXCL},
|
||||
.speechWin = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_EXCL_EXCL, EC_WORD_HEAR, EC_WORD_ME, EC_MOVE2(ROAR)},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_GIVE_UP, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_NO_1, EC_WORD_EXCL},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Jonn
|
||||
.monSet = gFallarborBattleTentTrainerMons_Jonn
|
||||
},
|
||||
[8] = {
|
||||
.facilityClass = FACILITY_CLASS_SWIMMER_M,
|
||||
@@ -2513,7 +2513,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_GOOD, EC_WORD_TRAINER, EC_WORD_QUES, EC_WORD_UNBELIEVABLE},
|
||||
.speechWin = {EC_WORD_YOU_RE, EC_WORD_SOME, EC_WORD_PUSHOVER, EC_WORD_OF, EC_WORD_A, EC_WORD_TRAINER},
|
||||
.speechLose = {EC_WORD_YOU_RE, EC_WORD_MUCH, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_FOR, EC_WORD_ME},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Esteban
|
||||
.monSet = gFallarborBattleTentTrainerMons_Esteban
|
||||
},
|
||||
[9] = {
|
||||
.facilityClass = FACILITY_CLASS_CAMPER,
|
||||
@@ -2521,7 +2521,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SILKY, EC_WORD_SMOOTH, EC_WORD_EXCL},
|
||||
.speechWin = {EC_WORD_MY, EC_WORD_SILKY, EC_WORD_SMOOTH, EC_WORD_POKEMON, EC_WORD_RULE, EC_WORD_EXCL},
|
||||
.speechLose = {EC_WORD_MY, EC_WORD_POKEMON, EC_MOVE2(STRUGGLE), EC_WORD_IN, EC_WORD_YOUR, EC_WORD_STICKY_HOLD},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Jameson
|
||||
.monSet = gFallarborBattleTentTrainerMons_Jameson
|
||||
},
|
||||
[10] = {
|
||||
.facilityClass = FACILITY_CLASS_BUG_MANIAC,
|
||||
@@ -2529,7 +2529,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_MOVE2(FORESIGHT), EC_WORD_IS, EC_WORD_A, EC_WORD_POWER, EC_WORD_I, EC_WORD_HAVE},
|
||||
.speechWin = {EC_WORD_YOU_RE, EC_WORD_OBLIVIOUS, EC_WORD_ABOUT, EC_MOVE2(FORESIGHT), EC_WORD_EXCL, -1},
|
||||
.speechLose = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_IS, EC_WORD_ALWAYS, EC_WORD_RIGHT, EC_WORD_EXCL},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Alanzo
|
||||
.monSet = gFallarborBattleTentTrainerMons_Alanzo
|
||||
},
|
||||
[11] = {
|
||||
.facilityClass = FACILITY_CLASS_GENTLEMAN,
|
||||
@@ -2537,7 +2537,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, -1},
|
||||
.speechWin = {EC_WORD_YOU, EC_WORD_COULDN_T, EC_WORD_WIN, EC_WORD_COULD, EC_WORD_YOU, EC_WORD_QUES},
|
||||
.speechLose = {EC_WORD_YOU, EC_WORD_WOULD, EC_WORD_GO, EC_WORD_ALL, EC_WORD_OUT, EC_WORD_ELLIPSIS},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Howard
|
||||
.monSet = gFallarborBattleTentTrainerMons_Howard
|
||||
},
|
||||
[12] = {
|
||||
.facilityClass = FACILITY_CLASS_GUITARIST,
|
||||
@@ -2545,7 +2545,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_PRETTY, EC_WORD_WILD, EC_WORD_EXCL},
|
||||
.speechWin = {EC_WORD_WHOAH, EC_WORD_EXCL_EXCL, -1, EC_WORD_LET_S, EC_WORD_DANCE, EC_WORD_EXCL},
|
||||
.speechLose = {EC_WORD_MY, EC_WORD_MUSIC, EC_WORD_WILL, EC_WORD_PLAY, EC_WORD_ON, EC_WORD_ELLIPSIS},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Conrad
|
||||
.monSet = gFallarborBattleTentTrainerMons_Conrad
|
||||
},
|
||||
[13] = {
|
||||
.facilityClass = FACILITY_CLASS_SCHOOL_KID_F,
|
||||
@@ -2553,7 +2553,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THAT, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_IT},
|
||||
.speechWin = {EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_I, EC_WORD_STUDY, EC_WORD_EVERY, EC_WORD_DAY},
|
||||
.speechLose = {EC_WORD_AWW, EC_WORD_I, EC_WORD_STUDY, EC_WORD_EVERY, EC_WORD_DAY, EC_WORD_TOO},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Makenna
|
||||
.monSet = gFallarborBattleTentTrainerMons_Makenna
|
||||
},
|
||||
[14] = {
|
||||
.facilityClass = FACILITY_CLASS_COOLTRAINER_M,
|
||||
@@ -2561,7 +2561,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_CAN, EC_WORD_YOU, EC_WORD_SEE, EC_WORD_MY, EC_WORD_POWER, EC_WORD_QUES},
|
||||
.speechWin = {EC_WORD_HOW, EC_WORD_BORING, EC_WORD_ELLIPSIS, EC_WORD_THIS, EC_WORD_IS, EC_WORD_GOOD_BYE},
|
||||
.speechLose = {EC_WORD_AM, EC_WORD_I, EC_WORD_THE, EC_WORD_WEAK, EC_WORD_TRAINER, EC_WORD_QUES},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Brayan
|
||||
.monSet = gFallarborBattleTentTrainerMons_Brayan
|
||||
},
|
||||
[15] = {
|
||||
.facilityClass = FACILITY_CLASS_COOLTRAINER_F,
|
||||
@@ -2569,7 +2569,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_A, EC_WORD_LIE, EC_WORD_CAN, EC_WORD_BE, EC_WORD_KIND, EC_WORD_ELLIPSIS},
|
||||
.speechWin = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_LIKE, EC_WORD_THE, EC_WORD_SUNDAY, EC_WORD_COMICS},
|
||||
.speechLose = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_LIKE, EC_WORD_FROM, EC_WORD_A, EC_WORD_MOVIE},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Mariana
|
||||
.monSet = gFallarborBattleTentTrainerMons_Mariana
|
||||
},
|
||||
[16] = {
|
||||
.facilityClass = FACILITY_CLASS_POKEFAN_M,
|
||||
@@ -2577,7 +2577,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_TEACHER, EC_WORD_GETS, EC_WORD_NO, EC_MOVE2(REST)},
|
||||
.speechWin = {EC_WORD_MY, EC_WORD_SMARTNESS, EC_WORD_GETS, EC_WORD_ME, EC_WORD_EASY, EC_WORD_WINS},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_GO, EC_WORD_WORK, EC_WORD_BYE_BYE},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Sheldon
|
||||
.monSet = gFallarborBattleTentTrainerMons_Sheldon
|
||||
},
|
||||
[17] = {
|
||||
.facilityClass = FACILITY_CLASS_POKEFAN_F,
|
||||
@@ -2585,7 +2585,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_AHAHA, EC_WORD_YES, EC_WORD_EXCL, EC_WORD_LOVEY_DOVEY, EC_WORD_POKEMON, EC_WORD_WORLD},
|
||||
.speechWin = {EC_WORD_MY, EC_WORD_SHINE, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_THINGS, EC_WORD_BETTER},
|
||||
.speechLose = {EC_WORD_DO, EC_WORD_YOU, EC_WORD_DISLIKE, EC_WORD_POKEMON, EC_WORD_QUES, -1},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Gianna
|
||||
.monSet = gFallarborBattleTentTrainerMons_Gianna
|
||||
},
|
||||
[18] = {
|
||||
.facilityClass = FACILITY_CLASS_EXPERT_M,
|
||||
@@ -2593,7 +2593,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_YOU, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_COME_ON, EC_WORD_EXCL},
|
||||
.speechWin = {EC_WORD_YOU, EC_WORD_NEED, EC_WORD_TO, EC_WORD_TRAIN, EC_WORD_A_LOT, EC_WORD_MORE},
|
||||
.speechLose = {EC_WORD_NOT, EC_WORD_ENOUGH, EC_WORD_ELLIPSIS, EC_WORD_JUST, EC_WORD_NOT, EC_WORD_ENOUGH},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Yahir
|
||||
.monSet = gFallarborBattleTentTrainerMons_Yahir
|
||||
},
|
||||
[19] = {
|
||||
.facilityClass = FACILITY_CLASS_EXPERT_F,
|
||||
@@ -2601,7 +2601,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_IT, EC_WORD_SEEMS, EC_WORD_THAT, EC_WORD_YOU_RE, EC_WORD_QUITE, EC_WORD_GOOD},
|
||||
.speechWin = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_LUKEWARM, EC_WORD_TALENT, EC_WORD_AT, EC_WORD_BEST},
|
||||
.speechLose = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_COOL, EC_WORD_HERO, EC_WORD_AT, EC_WORD_THIS},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Britney
|
||||
.monSet = gFallarborBattleTentTrainerMons_Britney
|
||||
},
|
||||
[20] = {
|
||||
.facilityClass = FACILITY_CLASS_YOUNGSTER,
|
||||
@@ -2609,7 +2609,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_MY, EC_MOVE2(HIDDEN_POWER), EC_WORD_IS, EC_WORD_EXCITING, EC_WORD_ME, EC_WORD_EXCL},
|
||||
.speechWin = {EC_WORD_YEEHAW_EXCL, EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_A, EC_MOVE2(HIDDEN_POWER), EC_WORD_PARTY},
|
||||
.speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, EC_WORD_DON_T, EC_WORD_YOU, EC_MOVE2(MIMIC), EC_WORD_ME},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Hecter
|
||||
.monSet = gFallarborBattleTentTrainerMons_Hecter
|
||||
},
|
||||
[21] = {
|
||||
.facilityClass = FACILITY_CLASS_FISHERMAN,
|
||||
@@ -2617,7 +2617,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_GOT, EC_WORD_TO, EC_WORD_BE, EC_WORD_JOKING},
|
||||
.speechWin = {EC_WORD_YOU_RE, EC_WORD_THE, EC_WORD_BEST, EC_WORD_AT, EC_WORD_BEING, EC_WORD_FUNNY},
|
||||
.speechLose = {EC_WORD_YOU, EC_WORD_WEREN_T, EC_WORD_BEING, EC_WORD_FUNNY, EC_WORD_AT, EC_WORD_ALL},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Tannor
|
||||
.monSet = gFallarborBattleTentTrainerMons_Tannor
|
||||
},
|
||||
[22] = {
|
||||
.facilityClass = FACILITY_CLASS_BIRD_KEEPER,
|
||||
@@ -2625,7 +2625,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_THINK, EC_WORD_VERY, EC_WORD_FAST, EC_WORD_HUH_QUES},
|
||||
.speechWin = {EC_WORD_SORRY, EC_WORD_EXCL, EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_MEAN, EC_WORD_YOU},
|
||||
.speechLose = {EC_WORD_YOU, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_SAD, EC_WORD_ELLIPSIS},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Benji
|
||||
.monSet = gFallarborBattleTentTrainerMons_Benji
|
||||
},
|
||||
[23] = {
|
||||
.facilityClass = FACILITY_CLASS_NINJA_BOY,
|
||||
@@ -2633,7 +2633,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_DON_T, EC_WORD_CAUSE, EC_WORD_AN, EC_MOVE(UPROAR), EC_WORD_YOU, EC_WORD_EXCL},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_NEED, EC_WORD_AN, EC_MOVE(UPROAR), EC_WORD_EXCL},
|
||||
.speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_CAUSE, EC_WORD_AN, EC_MOVE(UPROAR)},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Rory
|
||||
.monSet = gFallarborBattleTentTrainerMons_Rory
|
||||
},
|
||||
[24] = {
|
||||
.facilityClass = FACILITY_CLASS_PARASOL_LADY,
|
||||
@@ -2641,7 +2641,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_WANT, EC_WORD_TO, EC_WORD_PARTY, -1},
|
||||
.speechWin = {EC_WORD_A, EC_WORD_TRENDY, EC_WORD_PARTY, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_REFRESHING},
|
||||
.speechLose = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_PARTY, EC_WORD_QUES},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Eleanor
|
||||
.monSet = gFallarborBattleTentTrainerMons_Eleanor
|
||||
},
|
||||
[25] = {
|
||||
.facilityClass = FACILITY_CLASS_SWIMMER_F,
|
||||
@@ -2649,7 +2649,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_MY, EC_WORD_PC, EC_WORD_IS, EC_WORD_MY, EC_WORD_SECRET_BASE, EC_WORD_EXCL},
|
||||
.speechWin = {EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_SECRET, EC_WORD_ON, EC_WORD_MY, EC_WORD_PC},
|
||||
.speechLose = {EC_WORD_NO, EC_WORD_EXCL, -1, EC_WORD_I, EC_WORD_REJECT, EC_WORD_THIS},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Evelyn
|
||||
.monSet = gFallarborBattleTentTrainerMons_Evelyn
|
||||
},
|
||||
[26] = {
|
||||
.facilityClass = FACILITY_CLASS_PICNICKER,
|
||||
@@ -2657,7 +2657,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_IT_S, EC_WORD_NOT_VERY, EC_WORD_PRETTY, EC_WORD_BUT, EC_WORD_I, EC_WORD_TRY},
|
||||
.speechWin = {EC_WORD_WE_RE, EC_WORD_NOT_VERY, EC_WORD_PRETTY, EC_WORD_BUT, EC_WORD_WE_RE, EC_WORD_GREAT},
|
||||
.speechLose = {EC_WORD_THAT_WAS, EC_WORD_PRETTY, EC_WORD_MEAN, EC_WORD_OF, EC_WORD_YOU, EC_WORD_EXCL},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Arielle
|
||||
.monSet = gFallarborBattleTentTrainerMons_Arielle
|
||||
},
|
||||
[27] = {
|
||||
.facilityClass = FACILITY_CLASS_SAILOR,
|
||||
@@ -2665,7 +2665,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_STRONG, EC_WORD_ENOUGH, EC_WORD_FOR, EC_WORD_THIS},
|
||||
.speechWin = {EC_WORD_DO, EC_WORD_YOU, EC_WORD_THINK, EC_WORD_YOU_RE, EC_WORD_OK_QUES, -1},
|
||||
.speechLose = {EC_WORD_GOOD_BYE, EC_WORD_AND, EC_WORD_THANK_YOU, -1, -1, -1},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Connar
|
||||
.monSet = gFallarborBattleTentTrainerMons_Connar
|
||||
},
|
||||
[28] = {
|
||||
.facilityClass = FACILITY_CLASS_COLLECTOR,
|
||||
@@ -2673,7 +2673,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NO, EC_WORD_RADIO, EC_WORD_OR, EC_WORD_TELEVISION},
|
||||
.speechWin = {EC_WORD_BUT, EC_WORD_THERE, EC_WORD_IS, EC_WORD_A_LOT, EC_WORD_OF, EC_WORD_POKEMON},
|
||||
.speechLose = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_ENJOY, EC_WORD_MYSELF, EC_WORD_WITHOUT, EC_WORD_MONEY},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Maurice
|
||||
.monSet = gFallarborBattleTentTrainerMons_Maurice
|
||||
},
|
||||
[29] = {
|
||||
.facilityClass = FACILITY_CLASS_LASS,
|
||||
@@ -2681,7 +2681,7 @@ const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] =
|
||||
.speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_DEPT_STORE, EC_WORD_SHOPPING},
|
||||
.speechWin = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_SHOPPING, EC_WORD_ALONE, -1, -1},
|
||||
.speechLose = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_SHOPPING, EC_WORD_TOGETHER, EC_WORD_QUES},
|
||||
.monSets = gFallarborBattleTentTrainerMons_Kianna
|
||||
.monSet = gFallarborBattleTentTrainerMons_Kianna
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+13
-19
@@ -964,25 +964,19 @@ const u32 gVsLettersGfx[] = INCBIN_U32("graphics/battle_transitions/vs.4bpp.lz")
|
||||
|
||||
#include "data/graphics/battle_terrain.h"
|
||||
|
||||
const u32 gUnknown_08D82F10[] = INCBIN_U32("graphics/battle_frontier/tourney_bg.4bpp.lz");
|
||||
const u32 gUnknown_08D834FC[] = INCBIN_U32("graphics/battle_frontier/tourney_line.4bpp.lz"); // the red glow mask for the tourney advancement lines
|
||||
|
||||
const u32 gUnknown_08D83900[] = INCBIN_U32("graphics/battle_frontier/unknown_D83900.bin.lz"); // tilemaps likely
|
||||
|
||||
const u32 gUnknown_08D83B2C[] = INCBIN_U32("graphics/battle_frontier/unknown_D83B2C.bin.lz");
|
||||
|
||||
const u32 gUnknown_08D83C3C[] = INCBIN_U32("graphics/battle_frontier/unknown_D83C3C.bin.lz");
|
||||
|
||||
const u32 gUnknown_08D83D50[] = INCBIN_U32("graphics/battle_frontier/misc1.4bpp.lz");
|
||||
|
||||
const u32 gUnknown_08D84970[] = INCBIN_U32("graphics/battle_frontier/unknown_D84970.bin.lz");
|
||||
|
||||
const u32 gUnknown_08D84F00[] = INCBIN_U32("graphics/battle_frontier/unknown_D84F00.bin.lz");
|
||||
|
||||
const u32 gBattleFrontierGfx_DomeOptions[] = INCBIN_U32("graphics/battle_frontier/options.4bpp.lz");
|
||||
const u32 gUnknown_08D85358[] = INCBIN_U32("graphics/battle_frontier/options_pal1.gbapal.lz");
|
||||
const u32 gUnknown_08D85444[] = INCBIN_U32("graphics/battle_frontier/options_pal2.gbapal.lz"); // pokeball pal
|
||||
const u32 gUnknown_08D854C8[] = INCBIN_U32("graphics/battle_frontier/options_pal3.gbapal.lz"); // arrow pal
|
||||
// Battle Dome
|
||||
const u32 gDomeTourneyBg_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_bg.4bpp.lz");
|
||||
const u32 gDomeTourneyLine_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_line.4bpp.lz"); // the red glow mask for the tourney advancement lines
|
||||
const u32 gDomeTourneyLineMask_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_mask_map.bin.lz");
|
||||
const u32 gDomeTourneyLineDown_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_down_map.bin.lz");
|
||||
const u32 gDomeTourneyLineUp_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_up_map.bin.lz");
|
||||
const u32 gDomeTourneyInfoCard_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card.4bpp.lz");
|
||||
const u32 gDomeTourneyInfoCard_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card_tilemap.bin.lz");
|
||||
const u32 gDomeTourneyInfoCardBg_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card_bg.bin.lz");
|
||||
const u32 gDomeTourneyTreeButtons_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_buttons.4bpp.lz"); // exit/cancel and pokeball buttons
|
||||
const u32 gDomeTourneyTree_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney.gbapal.lz");
|
||||
const u32 gDomeTourneyTreeButtons_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney_buttons.gbapal.lz");
|
||||
const u32 gDomeTourneyMatchCardBg_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney_match_card_bg.gbapal.lz");
|
||||
|
||||
const u32 gBattleArenaJudgementSymbolsGfx[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.4bpp.lz");
|
||||
const u32 gBattleArenaJudgementSymbolsPalette[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.gbapal.lz");
|
||||
|
||||
+1
-1
@@ -542,7 +542,7 @@ static void CB2_ExitMailReadFreeVars(void)
|
||||
case 1:
|
||||
case 2:
|
||||
FreeMonIconPalette(sub_80D2E84(sMailRead->mail->species));
|
||||
sub_80D2EF8(&gSprites[sMailRead->monIconSprite]);
|
||||
FreeAndDestroyMonIconSprite(&gSprites[sMailRead->monIconSprite]);
|
||||
}
|
||||
memset(sMailRead, 0, sizeof(*sMailRead));
|
||||
ResetPaletteFade();
|
||||
|
||||
@@ -445,7 +445,7 @@ void sub_801C61C(void)
|
||||
{
|
||||
u8 r6 = 0;
|
||||
if (sWonderCardData->unk_017C != 0xFF)
|
||||
sub_80D2EF8(&gSprites[sWonderCardData->unk_017C]);
|
||||
FreeAndDestroyMonIconSprite(&gSprites[sWonderCardData->unk_017C]);
|
||||
if (sWonderCardData->unk_0000.unk_09 != 0 && sWonderCardData->unk_0000.unk_08_0 == 1)
|
||||
{
|
||||
for (; r6 < sWonderCardData->unk_0000.unk_09; r6++)
|
||||
@@ -456,7 +456,7 @@ void sub_801C61C(void)
|
||||
}
|
||||
if (sWonderCardData->unk_017D[r6][1] != 0xFF)
|
||||
{
|
||||
sub_80D2EF8(&gSprites[sWonderCardData->unk_017D[r6][1]]);
|
||||
FreeAndDestroyMonIconSprite(&gSprites[sWonderCardData->unk_017D[r6][1]]);
|
||||
}
|
||||
}
|
||||
FreeSpriteTilesByTag(0x8000);
|
||||
|
||||
+3
-2
@@ -1334,7 +1334,7 @@ const struct SpindaSpot gSpindaSpotGraphics[] =
|
||||
|
||||
#include "data/pokemon/item_effects.h"
|
||||
|
||||
const s8 gNatureStatTable[][5] =
|
||||
const s8 gNatureStatTable[][NUM_EV_STATS] =
|
||||
{
|
||||
// Atk Def Spd Sp.Atk Sp.Def
|
||||
{ 0, 0, 0, 0, 0}, // Hardy
|
||||
@@ -5715,7 +5715,8 @@ u8 GetTrainerEncounterMusicId(u16 trainerOpponentId)
|
||||
|
||||
u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex)
|
||||
{
|
||||
if (statIndex < 1 || statIndex > 5)
|
||||
// Dont modify HP, Accuracy, or Evasion by nature
|
||||
if (statIndex <= STAT_HP || statIndex > NUM_EV_STATS)
|
||||
{
|
||||
// Should just be "return n", but it wouldn't match without this.
|
||||
u16 retVal = n;
|
||||
|
||||
+1
-1
@@ -1128,7 +1128,7 @@ const u8 *GetMonIconPtr(u16 species, u32 personality, bool32 handleDeoxys)
|
||||
return GetMonIconTiles(GetIconSpecies(species, personality), handleDeoxys);
|
||||
}
|
||||
|
||||
void sub_80D2EF8(struct Sprite *sprite)
|
||||
void FreeAndDestroyMonIconSprite(struct Sprite *sprite)
|
||||
{
|
||||
sub_80D328C(sprite);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user