SootopolisCity_Gym_1F_MapScripts:: map_script MAP_SCRIPT_ON_FRAME_TABLE, SootopolisCity_Gym_1F_OnFrame map_script MAP_SCRIPT_ON_RESUME, SootopolisCity_Gym_1F_OnResume map_script MAP_SCRIPT_ON_LOAD, SootopolisCity_Gym_1F_OnLoad map_script MAP_SCRIPT_ON_TRANSITION, SootopolisCity_Gym_1F_OnTransition .byte 0 SootopolisCity_Gym_1F_OnTransition: setvar VAR_ICE_STEP_COUNT, 1 end SootopolisCity_Gym_1F_OnResume: setstepcallback STEP_CB_SOOTOPOLIS_ICE end SootopolisCity_Gym_1F_OnLoad: call SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles special SetSootopolisGymCrackedIceMetatiles end SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles:: compare VAR_ICE_STEP_COUNT, 8 goto_if_lt SootopolisCity_Gym_1F_EventScript_StopCheckingStairs @ All stairs ice compare VAR_ICE_STEP_COUNT, 28 goto_if_lt SootopolisCity_Gym_1F_EventScript_OpenFirstStairs compare VAR_ICE_STEP_COUNT, 67 goto_if_lt SootopolisCity_Gym_1F_EventScript_OpenFirstAndSecondStairs setmetatile 8, 4, METATILE_SootopolisGym_Stairs, 0 setmetatile 8, 5, METATILE_SootopolisGym_Stairs, 0 SootopolisCity_Gym_1F_EventScript_OpenFirstAndSecondStairs:: setmetatile 8, 10, METATILE_SootopolisGym_Stairs, 0 setmetatile 8, 11, METATILE_SootopolisGym_Stairs, 0 SootopolisCity_Gym_1F_EventScript_OpenFirstStairs:: setmetatile 8, 15, METATILE_SootopolisGym_Stairs, 0 setmetatile 8, 16, METATILE_SootopolisGym_Stairs, 0 SootopolisCity_Gym_1F_EventScript_StopCheckingStairs:: return SootopolisCity_Gym_1F_OnFrame: map_script_2 VAR_ICE_STEP_COUNT, 8, SootopolisCity_Gym_1F_EventScript_UnlockFirstStairs map_script_2 VAR_ICE_STEP_COUNT, 28, SootopolisCity_Gym_1F_EventScript_UnlockSecondStairs map_script_2 VAR_ICE_STEP_COUNT, 67, SootopolisCity_Gym_1F_EventScript_UnlockThirdStairs map_script_2 VAR_ICE_STEP_COUNT, 0, SootopolisCity_Gym_1F_EventScript_FallThroughIce .2byte 0 SootopolisCity_Gym_1F_EventScript_UnlockFirstStairs:: addvar VAR_ICE_STEP_COUNT, 1 delay 40 playse SE_ICE_STAIRS call SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles special DrawWholeMapView end SootopolisCity_Gym_1F_EventScript_UnlockSecondStairs:: addvar VAR_ICE_STEP_COUNT, 1 delay 40 playse SE_ICE_STAIRS call SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles special DrawWholeMapView end SootopolisCity_Gym_1F_EventScript_UnlockThirdStairs:: addvar VAR_ICE_STEP_COUNT, 1 delay 40 playse SE_ICE_STAIRS call SootopolisCity_Gym_1F_EventScript_CheckSetStairMetatiles special DrawWholeMapView end SootopolisCity_Gym_1F_EventScript_FallThroughIce:: lockall delay 20 applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_Gym_1F_Movement_FallThroughIce waitmovement 0 playse SE_FALL delay 60 warphole MAP_SOOTOPOLIS_CITY_GYM_B1F waitstate end SootopolisCity_Gym_1F_Movement_FallThroughIce: set_invisible step_end SootopolisCity_Gym_1F_EventScript_Juan:: trainerbattle_single TRAINER_JUAN_1, SootopolisCity_Gym_1F_Text_JuanIntro, SootopolisCity_Gym_1F_Text_JuanDefeat, SootopolisCity_Gym_1F_EventScript_JuanDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE goto_if_eq SootopolisCity_Gym_1F_EventScript_JuanRematch goto_if_unset FLAG_RECEIVED_TM03, SootopolisCity_Gym_1F_EventScript_GiveWaterPulse2 goto_if_unset FLAG_BADGE06_GET, SootopolisCity_Gym_1F_EventScript_GoGetFortreeBadge msgbox SootopolisCity_Gym_1F_Text_JuanPostBattle, MSGBOX_DEFAULT release end SootopolisCity_Gym_1F_EventScript_JuanDefeated:: message SootopolisCity_Gym_1F_Text_ReceivedRainBadge waitmessage call Common_EventScript_PlayGymBadgeFanfare msgbox SootopolisCity_Gym_1F_Text_ExplainRainBadgeTakeThis, MSGBOX_DEFAULT setflag FLAG_DEFEATED_SOOTOPOLIS_GYM setflag FLAG_BADGE08_GET setflag FLAG_HIDE_SOOTOPOLIS_CITY_RESIDENTS setflag FLAG_HIDE_SOOTOPOLIS_CITY_STEVEN setflag FLAG_HIDE_SOOTOPOLIS_CITY_WALLACE setvar VAR_SOOTOPOLIS_CITY_STATE, 6 clearflag FLAG_HIDE_SOOTOPOLIS_CITY_MAN_1 setvar VAR_0x8008, 8 call Common_EventScript_SetGymTrainers call SootopolisCity_Gym_1F_EventScript_GiveWaterPulse closemessage delay 30 playfanfare MUS_REGISTER_MATCH_CALL msgbox SootopolisCity_Gym_1F_Text_RegisteredJuan, MSGBOX_DEFAULT waitfanfare closemessage delay 30 setflag FLAG_ENABLE_JUAN_MATCH_CALL release end SootopolisCity_Gym_1F_EventScript_GiveWaterPulse:: giveitem ITEM_TM03 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_BagIsFull msgbox SootopolisCity_Gym_1F_Text_ExplainWaterPulse, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM03 return SootopolisCity_Gym_1F_EventScript_GiveWaterPulse2:: giveitem ITEM_TM03 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull msgbox SootopolisCity_Gym_1F_Text_ExplainWaterPulse, MSGBOX_DEFAULT setflag FLAG_RECEIVED_TM03 release end SootopolisCity_Gym_1F_EventScript_GoGetFortreeBadge:: msgbox SootopolisCity_Gym_1F_Text_GoGetFortreeBadge, MSGBOX_DEFAULT release end SootopolisCity_Gym_1F_EventScript_JuanRematch:: trainerbattle_rematch_double TRAINER_JUAN_1, SootopolisCity_Gym_1F_Text_JuanPreRematch, SootopolisCity_Gym_1F_Text_JuanRematchDefeat, SootopolisCity_Gym_1F_Text_JuanRematchNeedTwoMons msgbox SootopolisCity_Gym_1F_Text_JuanPostRematch, MSGBOX_AUTOCLOSE end SootopolisCity_Gym_1F_EventScript_GymGuide:: lock faceplayer goto_if_set FLAG_DEFEATED_SOOTOPOLIS_GYM, SootopolisCity_Gym_1F_EventScript_GymGuidePostVictory msgbox SootopolisCity_Gym_1F_Text_GymGuideAdvice, MSGBOX_DEFAULT release end SootopolisCity_Gym_1F_EventScript_GymGuidePostVictory:: msgbox SootopolisCity_Gym_1F_Text_GymGuidePostVictory, MSGBOX_DEFAULT release end SootopolisCity_Gym_1F_EventScript_LeftGymStatue:: lockall goto_if_set FLAG_BADGE08_GET, SootopolisCity_Gym_1F_EventScript_GymStatueCertified goto SootopolisCity_Gym_1F_EventScript_GymStatue end SootopolisCity_Gym_1F_EventScript_RightGymStatue:: lockall goto_if_set FLAG_BADGE08_GET, SootopolisCity_Gym_1F_EventScript_GymStatueCertified goto SootopolisCity_Gym_1F_EventScript_GymStatue end SootopolisCity_Gym_1F_EventScript_GymStatueCertified:: msgbox SootopolisCity_Gym_1F_Text_GymStatueCertified, MSGBOX_DEFAULT releaseall end SootopolisCity_Gym_1F_EventScript_GymStatue:: msgbox SootopolisCity_Gym_1F_Text_GymStatue, MSGBOX_DEFAULT releaseall end SootopolisCity_Gym_1F_Text_GymGuideAdvice: .string "Yo! How's it going, CHAMPION-\n" .string "bound {PLAYER}?\p" .string "SOOTOPOLIS's GYM LEADER JUAN is\n" .string "a master of WATER-type POKéMON.\p" .string "And, to get to JUAN, an icy floor\n" .string "will hamper your progress…\p" .string "Listen, I'm sorry, but that's all the\n" .string "advice that I have for you.\p" .string "The rest of the way, you have to\n" .string "go for it yourself!$" SootopolisCity_Gym_1F_Text_GymGuidePostVictory: .string "Yow! You've beaten even JUAN, who\n" .string "was supposedly the best in all HOENN!\p" .string "Okay! Check out your TRAINER CARD.\p" .string "If you've gotten all the BADGES, you're\n" .string "set for the POKéMON LEAGUE challenge!$" SootopolisCity_Gym_1F_Text_JuanIntro: .string "Let me ask you.\n" .string "Did you know?\l" .string "Ah, I should not be so coy.\p" .string "It was I who taught WALLACE everything\n" .string "there is to know about POKéMON.\p" .string "Once, I had given up my position as\n" .string "the GYM LEADER.\p" .string "In my place, I had entrusted WALLACE\n" .string "with the GYM.\p" .string "However, a compelling reason arose for\n" .string "me to make a comeback.\p" .string "Ah, but enough chatter.\n" .string "Let us begin our match, shall we?\p" .string "Please, you shall bear witness to\n" .string "our artistry.\p" .string "A grand illusion of water sculpted\n" .string "by POKéMON and myself!$" @ NOTE: This defeat text actually causes a buffer overflow. It's about 50 bytes too long for @ the gDisplayedStringBattle buffer that it's put into, and it stomps all over the gBattleTextBuffs @ after, as well as the otherwise unused array after that. One wonders if that's the reason for @ the existence of that unused array of ints. SootopolisCity_Gym_1F_Text_JuanDefeat: .string "Ahahaha, excellent!\n" .string "Very well, you are the winner.\p" .string "From you, I sense the brilliant shine\n" .string "of skill that will overcome all.\p" .string "However, compared with me or even\n" .string "WALLACE, you are lacking in elegance.\p" .string "Perhaps I should make you a loan\n" .string "of my outfit?\p" .string "… … … … … …\n" .string "… … … … … …\p" .string "Hahaha, I merely jest!\p" .string "Rather than my clothes, I shall reward\n" .string "you with this, the RAIN BADGE!$" SootopolisCity_Gym_1F_Text_ReceivedRainBadge: .string "{PLAYER} received the RAIN BADGE\n" .string "from JUAN.$" SootopolisCity_Gym_1F_Text_ExplainRainBadgeTakeThis: .string "Having the RAIN BADGE shall assure you\n" .string "the full obedience of all your POKéMON\l" .string "to your every command.\p" .string "The RAIN BADGE also allows the use\n" .string "of the HM move WATERFALL to scale\l" .string "walls of cascading water.\p" .string "And, so that you never forget the\n" .string "battle we shared, take this…$" SootopolisCity_Gym_1F_Text_ExplainWaterPulse: .string "The TECHNICAL MACHINE I handed you\n" .string "contains WATER PULSE.\p" .string "In use, it will occasionally confuse\n" .string "the target with ultrasonic waves.\p" .string "… … … … … …$" SootopolisCity_Gym_1F_Text_RegisteredJuan: .string "Registered GYM LEADER JUAN\n" .string "in the POKéNAV.$" SootopolisCity_Gym_1F_Text_JuanPostBattle: .string "The TRAINERS who have gathered all\n" .string "the GYM BADGES of HOENN should make\l" .string "way to the ultimate destination.\p" .string "The POKéMON LEAGUE.\p" .string "Travel to the easternmost reaches\n" .string "of HOENN, to the island EVER GRANDE.\p" .string "There, you shall find the POKéMON\n" .string "LEAGUE.$" SootopolisCity_Gym_1F_Text_GoGetFortreeBadge: .string "There remains but one BADGE to\n" .string "obtain in HOENN.\p" .string "If you wish to challenge the POKéMON\n" .string "LEAGUE, you must obtain the last\l" .string "BADGE from the GYM in FORTREE.$" SootopolisCity_Gym_1F_Text_GymStatue: .string "SOOTOPOLIS CITY POKéMON GYM$" SootopolisCity_Gym_1F_Text_GymStatueCertified: .string "SOOTOPOLIS CITY POKéMON GYM\p" .string "JUAN'S CERTIFIED TRAINERS:\n" .string "{PLAYER}$" SootopolisCity_Gym_1F_Text_JuanPreRematch: .string "JUAN: Ah, this GYM had returned to its\n" .string "usual state of serenity…\p" .string "But our young typhoon has returned\n" .string "to put us to the test again!\p" .string "Well, my friend, most certainly!\p" .string "I shall be delighted to dance with you\n" .string "as often as you wish!$" SootopolisCity_Gym_1F_Text_JuanRematchDefeat: .string "Ahahaha, you are the winner!\n" .string "You have defeated me again!$" SootopolisCity_Gym_1F_Text_JuanPostRematch: .string "JUAN: If I told you to become my\n" .string "apprentice, you will refuse, I am sure.\p" .string "I would like to make a gift of my coat\n" .string "to you.\p" .string "But again, you will refuse.\n" .string "I imagine that to be so.\p" .string "And that, my friend, is a certain sign\n" .string "of nobility!$" SootopolisCity_Gym_1F_Text_JuanRematchNeedTwoMons: .string "JUAN: Ah, this GYM had returned to its\n" .string "usual state of serenity…\p" .string "But our young typhoon has returned\n" .string "to put us to the test again!\p" .string "Well, my friend, most certainly!\n" .string "I shall be delighted to dance with you…\p" .string "Ah, no, no, no.\n" .string "You have with you but one POKéMON.\p" .string "I wish that you would return with\n" .string "two, perhaps more, POKéMON, please.$"