ref: 1e593d8f8cd07e1072992dc1fc962b6de7508aad
dir: /scripts/FightingDojo.asm/
FightingDojo_Script: call EnableAutoTextBoxDrawing ld hl, FightingDojoTrainerHeader0 ld de, FightingDojo_ScriptPointers ld a, [wFightingDojoCurScript] call ExecuteCurMapScriptInTable ld [wFightingDojoCurScript], a ret FightingDojoScript_5cd70: xor a ld [wJoyIgnore], a ld [wFightingDojoCurScript], a ld [wCurMapScript], a ret FightingDojo_ScriptPointers: dw FightingDojoScript1 dw DisplayEnemyTrainerTextAndStartBattle dw EndTrainerBattle dw FightingDojoScript3 FightingDojoScript1: CheckEvent EVENT_DEFEATED_FIGHTING_DOJO ret nz call CheckFightingMapTrainers ld a, [wTrainerHeaderFlagBit] and a ret nz CheckEvent EVENT_BEAT_KARATE_MASTER ret nz xor a ldh [hJoyHeld], a ld [wcf0d], a ld a, [wYCoord] cp $3 ret nz ld a, [wXCoord] cp $4 ret nz ld a, $1 ld [wcf0d], a ld a, PLAYER_DIR_RIGHT ld [wPlayerMovingDirection], a ld a, $1 ldh [hSpriteIndex], a ld a, SPRITE_FACING_LEFT ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $1 ldh [hSpriteIndexOrTextID], a call DisplayTextID ret FightingDojoScript3: ld a, [wIsInBattle] cp $ff jp z, FightingDojoScript_5cd70 ld a, [wcf0d] and a jr z, .asm_5cde4 ld a, PLAYER_DIR_RIGHT ld [wPlayerMovingDirection], a ld a, $1 ldh [hSpriteIndex], a ld a, SPRITE_FACING_LEFT ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay .asm_5cde4 ld a, $f0 ld [wJoyIgnore], a SetEventRange EVENT_BEAT_KARATE_MASTER, EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 ld a, $8 ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a ld [wFightingDojoCurScript], a ld [wCurMapScript], a ret FightingDojo_TextPointers: dw FightingDojoText1 dw FightingDojoText2 dw FightingDojoText3 dw FightingDojoText4 dw FightingDojoText5 dw FightingDojoText6 dw FightingDojoText7 dw FightingDojoText8 FightingDojoTrainerHeader0: dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_0 db ($4 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_0 dw FightingDojoBattleText1 ; TextBeforeBattle dw FightingDojoAfterBattleText1 ; TextAfterBattle dw FightingDojoEndBattleText1 ; TextEndBattle dw FightingDojoEndBattleText1 ; TextEndBattle FightingDojoTrainerHeader1: dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_1 db ($4 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_1 dw FightingDojoBattleText2 ; TextBeforeBattle dw FightingDojoAfterBattleText2 ; TextAfterBattle dw FightingDojoEndBattleText2 ; TextEndBattle dw FightingDojoEndBattleText2 ; TextEndBattle FightingDojoTrainerHeader2: dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_2 db ($3 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_2 dw FightingDojoBattleText3 ; TextBeforeBattle dw FightingDojoAfterBattleText3 ; TextAfterBattle dw FightingDojoEndBattleText3 ; TextEndBattle dw FightingDojoEndBattleText3 ; TextEndBattle FightingDojoTrainerHeader3: dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 db ($3 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 dw FightingDojoBattleText4 ; TextBeforeBattle dw FightingDojoAfterBattleText4 ; TextAfterBattle dw FightingDojoEndBattleText4 ; TextEndBattle dw FightingDojoEndBattleText4 ; TextEndBattle db $ff FightingDojoText1: text_asm CheckEvent EVENT_DEFEATED_FIGHTING_DOJO jp nz, .continue1 CheckEventReuseA EVENT_BEAT_KARATE_MASTER jp nz, .continue2 ld hl, FightingDojoText_5ce8e call PrintText ld hl, wd72d set 6, [hl] set 7, [hl] ld hl, FightingDojoText_5ce93 ld de, FightingDojoText_5ce93 call SaveEndBattleTextPointers ldh a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters ld a, $3 ld [wFightingDojoCurScript], a ld [wCurMapScript], a jr .asm_9dba4 .continue1 ld hl, FightingDojoText_5ce9d call PrintText jr .asm_9dba4 .continue2 ld hl, FightingDojoText8 call PrintText .asm_9dba4 jp TextScriptEnd FightingDojoText_5ce8e: text_far _FightingDojoText_5ce8e text_end FightingDojoText_5ce93: text_far _FightingDojoText_5ce93 text_end FightingDojoText8: text_far _FightingDojoText_5ce98 text_end FightingDojoText_5ce9d: text_far _FightingDojoText_5ce9d text_end FightingDojoText2: text_asm ld hl, FightingDojoTrainerHeader0 call TalkToTrainer jp TextScriptEnd FightingDojoBattleText1: text_far _FightingDojoBattleText1 text_end FightingDojoEndBattleText1: text_far _FightingDojoEndBattleText1 text_end FightingDojoAfterBattleText1: text_far _FightingDojoAfterBattleText1 text_end FightingDojoText3: text_asm ld hl, FightingDojoTrainerHeader1 call TalkToTrainer jp TextScriptEnd FightingDojoBattleText2: text_far _FightingDojoBattleText2 text_end FightingDojoEndBattleText2: text_far _FightingDojoEndBattleText2 text_end FightingDojoAfterBattleText2: text_far _FightingDojoAfterBattleText2 text_end FightingDojoText4: text_asm ld hl, FightingDojoTrainerHeader2 call TalkToTrainer jp TextScriptEnd FightingDojoBattleText3: text_far _FightingDojoBattleText3 text_end FightingDojoEndBattleText3: text_far _FightingDojoEndBattleText3 text_end FightingDojoAfterBattleText3: text_far _FightingDojoAfterBattleText3 text_end FightingDojoText5: text_asm ld hl, FightingDojoTrainerHeader3 call TalkToTrainer jp TextScriptEnd FightingDojoBattleText4: text_far _FightingDojoBattleText4 text_end FightingDojoEndBattleText4: text_far _FightingDojoEndBattleText4 text_end FightingDojoAfterBattleText4: text_far _FightingDojoAfterBattleText4 text_end FightingDojoText6: ; Hitmonlee Poké Ball text_asm CheckEitherEventSet EVENT_GOT_HITMONLEE, EVENT_GOT_HITMONCHAN jr z, .GetMon ld hl, OtherHitmonText call PrintText jr .done .GetMon ld a, HITMONLEE call DisplayPokedex ld hl, WantHitmonleeText call PrintText call YesNoChoice ld a, [wCurrentMenuItem] and a jr nz, .done ld a, [wcf91] ld b, a ld c, 30 call GivePokemon jr nc, .done ; once Poké Ball is taken, hide sprite ld a, HS_FIGHTING_DOJO_GIFT_1 ld [wMissableObjectIndex], a predef HideObject SetEvents EVENT_GOT_HITMONLEE, EVENT_DEFEATED_FIGHTING_DOJO .done jp TextScriptEnd WantHitmonleeText: text_far _WantHitmonleeText text_end FightingDojoText7: ; Hitmonchan Poké Ball text_asm CheckEitherEventSet EVENT_GOT_HITMONLEE, EVENT_GOT_HITMONCHAN jr z, .GetMon ld hl, OtherHitmonText call PrintText jr .done .GetMon ld a, HITMONCHAN call DisplayPokedex ld hl, WantHitmonchanText call PrintText call YesNoChoice ld a, [wCurrentMenuItem] and a jr nz, .done ld a, [wcf91] ld b, a ld c, 30 call GivePokemon jr nc, .done SetEvents EVENT_GOT_HITMONCHAN, EVENT_DEFEATED_FIGHTING_DOJO ; once Poké Ball is taken, hide sprite ld a, HS_FIGHTING_DOJO_GIFT_2 ld [wMissableObjectIndex], a predef HideObject .done jp TextScriptEnd WantHitmonchanText: text_far _WantHitmonchanText text_end OtherHitmonText: text_far _OtherHitmonText text_end