mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 11:37:40 +01:00
More battle_dome.c doc
This commit is contained in:
parent
bb692a03eb
commit
fb5bea98ce
@ -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.$"
|
||||
|
||||
|
@ -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$"
|
||||
|
Before Width: | Height: | Size: 576 B After Width: | Height: | Size: 576 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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[];
|
||||
|
4170
src/battle_dome.c
4170
src/battle_dome.c
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++)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user