123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- AgathaScript:
- call AgathaShowOrHideExitBlock
- call EnableAutoTextBoxDrawing
- ld hl, AgathaTrainerHeader0
- ld de, AgathaScriptPointers
- ld a, [wAgathaCurScript]
- call ExecuteCurMapScriptInTable
- ld [wAgathaCurScript], a
- ret
- AgathaShowOrHideExitBlock:
- ; Blocks or clears the exit to the next room.
- ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
- ret z
- CheckEvent EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
- jr z, .blockExitToNextRoom
- ld a, $e
- jp .setExitBlock
- .blockExitToNextRoom
- ld a, $3b
- .setExitBlock:
- ld [wNewTileBlockID], a
- lb bc, 0, 2
- predef_jump ReplaceTileBlock
- ResetAgathaScript:
- xor a
- ld [wAgathaCurScript], a
- ret
- AgathaScriptPointers:
- dw AgathaScript0
- dw DisplayEnemyTrainerTextAndStartBattle
- dw AgathaScript2
- dw AgathaScript3
- dw AgathaScript4
- AgathaScript4:
- ret
- AgathaScriptWalkIntoRoom:
- ; Walk six steps upward.
- ld hl, wSimulatedJoypadStatesEnd
- ld a, D_UP
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld a, $6
- ld [wSimulatedJoypadStatesIndex], a
- call StartSimulatingJoypadStates
- ld a, $3
- ld [wAgathaCurScript], a
- ld [wCurMapScript], a
- ret
- AgathaScript0:
- ld hl, AgathaEntranceCoords
- call ArePlayerCoordsInArray
- jp nc, CheckFightingMapTrainers
- xor a
- ld [hJoyPressed], a
- ld [hJoyHeld], a
- ld [wSimulatedJoypadStatesEnd], a
- ld [wSimulatedJoypadStatesIndex], a
- ld a, [wCoordIndex]
- cp $3 ; Is player standing one tile above the exit?
- jr c, .stopPlayerFromLeaving
- CheckAndSetEvent EVENT_AUTOWALKED_INTO_AGATHAS_ROOM
- jr z, AgathaScriptWalkIntoRoom
- .stopPlayerFromLeaving
- ld a, $2
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID ; "Don't run away!"
- ld a, D_UP
- ld [wSimulatedJoypadStatesEnd], a
- ld a, $1
- ld [wSimulatedJoypadStatesIndex], a
- call StartSimulatingJoypadStates
- ld a, $3
- ld [wAgathaCurScript], a
- ld [wCurMapScript], a
- ret
- AgathaEntranceCoords:
- db $0A,$04
- db $0A,$05
- db $0B,$04
- db $0B,$05
- db $FF
- AgathaScript3:
- ld a, [wSimulatedJoypadStatesIndex]
- and a
- ret nz
- call Delay3
- xor a
- ld [wJoyIgnore], a
- ld [wAgathaCurScript], a
- ld [wCurMapScript], a
- ret
- AgathaScript2:
- call EndTrainerBattle
- ld a, [wIsInBattle]
- cp $ff
- jp z, ResetAgathaScript
- ld a, $1
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- ld a, $1
- ld [wGaryCurScript], a
- ret
- AgathaTextPointers:
- dw AgathaText1
- dw AgathaDontRunAwayText
- AgathaTrainerHeader0:
- dbEventFlagBit EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
- db ($0 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
- dw AgathaBeforeBattleText ; TextBeforeBattle
- dw AgathaAfterBattleText ; TextAfterBattle
- dw AgathaEndBattleText ; TextEndBattle
- dw AgathaEndBattleText ; TextEndBattle
- db $ff
- AgathaText1:
- TX_ASM
- ld hl, AgathaTrainerHeader0
- call TalkToTrainer
- jp TextScriptEnd
- AgathaBeforeBattleText:
- TX_FAR _AgathaBeforeBattleText
- db "@"
- AgathaEndBattleText:
- TX_FAR _AgathaEndBattleText
- db "@"
- AgathaAfterBattleText:
- TX_FAR _AgathaAfterBattleText
- db "@"
- AgathaDontRunAwayText:
- TX_FAR _AgathaDontRunAwayText
- db "@"
|