diff options
Diffstat (limited to 'scripts/MtMoonB2F.asm')
-rwxr-xr-x | scripts/MtMoonB2F.asm | 406 |
1 files changed, 406 insertions, 0 deletions
diff --git a/scripts/MtMoonB2F.asm b/scripts/MtMoonB2F.asm new file mode 100755 index 00000000..863d9d22 --- /dev/null +++ b/scripts/MtMoonB2F.asm @@ -0,0 +1,406 @@ +MtMoonB2F_Script: + call EnableAutoTextBoxDrawing + ld hl, MtMoon3TrainerHeader0 + ld de, MtMoonB2F_ScriptPointers + ld a, [wMtMoonB2FCurScript] + call ExecuteCurMapScriptInTable + ld [wMtMoonB2FCurScript], a + CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD + ret z + ld hl, CoordsData_49d37 + call ArePlayerCoordsInArray + jr nc, .asm_49d31 + ld hl, wd72e + set 4, [hl] + ret +.asm_49d31 + ld hl, wd72e + res 4, [hl] + ret + +CoordsData_49d37: + db $05,$0B + db $05,$0C + db $05,$0D + db $05,$0E + db $06,$0B + db $06,$0C + db $06,$0D + db $06,$0E + db $07,$0B + db $07,$0C + db $07,$0D + db $07,$0E + db $08,$0B + db $08,$0C + db $08,$0D + db $08,$0E + db $FF + +MtMoon3Script_49d58: + xor a + ld [wJoyIgnore], a + ld [wMtMoonB2FCurScript], a + ld [wCurMapScript], a + ret + +MtMoonB2F_ScriptPointers: + dw MtMoon3Script0 + dw DisplayEnemyTrainerTextAndStartBattle + dw EndTrainerBattle + dw MtMoon3Script3 + dw MtMoon3Script4 + dw MtMoon3Script5 + +MtMoon3Script0: + CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD + jp nz, MtMoon3Script_49d91 + ld a, [wYCoord] + cp $8 + jp nz, MtMoon3Script_49d91 + ld a, [wXCoord] + cp $d + jp nz, MtMoon3Script_49d91 + xor a + ld [hJoyHeld], a + ld a, $1 + ld [hSpriteIndexOrTextID], a + jp DisplayTextID + +MtMoon3Script_49d91: + CheckEitherEventSet EVENT_GOT_DOME_FOSSIL, EVENT_GOT_HELIX_FOSSIL + jp z, CheckFightingMapTrainers + ret + +MtMoon3Script3: + ld a, [wIsInBattle] + cp $ff + jp z, MtMoon3Script_49d58 + call UpdateSprites + call Delay3 + SetEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD + xor a + ld [wJoyIgnore], a + ld a, $0 + ld [wMtMoonB2FCurScript], a + ld [wCurMapScript], a + ret + +MtMoon3Script4: + ld a, $1 + ld [H_SPRITEINDEX], a + call SetSpriteMovementBytesToFF + ld hl, CoordsData_49dea + call ArePlayerCoordsInArray + jr c, .asm_49dd7 + ld hl, CoordsData_49df1 + call ArePlayerCoordsInArray + jp nc, CheckFightingMapTrainers + ld de, MovementData_49df9 + jr .asm_49dda +.asm_49dd7 + ld de, MovementData_49df8 +.asm_49dda + ld a, $1 + ld [H_SPRITEINDEX], a + call MoveSprite + ld a, $5 + ld [wMtMoonB2FCurScript], a + ld [wCurMapScript], a + ret + +CoordsData_49dea: + db $07,$0C + db $06,$0B + db $05,$0C + db $FF + +CoordsData_49df1: + db $07,$0D + db $06,$0E + db $05,$0E + db $FF + +MovementData_49df8: + db NPC_MOVEMENT_RIGHT + +MovementData_49df9: + db NPC_MOVEMENT_UP,$FF + +MtMoon3Script5: + ld a, [wd730] + bit 0, a + ret nz + ld a, $f0 + ld [wJoyIgnore], a + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, $a + ld [hSpriteIndexOrTextID], a + call DisplayTextID + CheckEvent EVENT_GOT_DOME_FOSSIL + jr z, .asm_49e1d + ld a, HS_MT_MOON_B2F_FOSSIL_2 + jr .asm_49e1f +.asm_49e1d + ld a, HS_MT_MOON_B2F_FOSSIL_1 +.asm_49e1f + ld [wMissableObjectIndex], a + predef HideObject + xor a + ld [wJoyIgnore], a + ld a, $0 + ld [wMtMoonB2FCurScript], a + ld [wCurMapScript], a + ret + +MtMoonB2F_TextPointers: + dw MtMoon3Text1 + dw MtMoon3Text2 + dw MtMoon3Text3 + dw MtMoon3Text4 + dw MtMoon3Text5 + dw MtMoon3Text6 + dw MtMoon3Text7 + dw PickUpItemText + dw PickUpItemText + dw MtMoon3Text_49f99 + +MtMoon3TrainerHeader0: + dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_0 + db ($4 << 4) ; trainer's view range + dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_0 + dw MtMoon3BattleText2 ; TextBeforeBattle + dw MtMoon3AfterBattleText2 ; TextAfterBattle + dw MtMoon3EndBattleText2 ; TextEndBattle + dw MtMoon3EndBattleText2 ; TextEndBattle + +MtMoon3TrainerHeader1: + dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_1 + db ($4 << 4) ; trainer's view range + dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_1 + dw MtMoon3BattleText3 ; TextBeforeBattle + dw MtMoon3AfterBattleText3 ; TextAfterBattle + dw MtMoon3EndBattleText3 ; TextEndBattle + dw MtMoon3EndBattleText3 ; TextEndBattle + +MtMoon3TrainerHeader2: + dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_2 + db ($4 << 4) ; trainer's view range + dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_2 + dw MtMoon3BattleText4 ; TextBeforeBattle + dw MtMoon3AfterBattleText4 ; TextAfterBattle + dw MtMoon3EndBattleText4 ; TextEndBattle + dw MtMoon3EndBattleText4 ; TextEndBattle + +MtMoon3TrainerHeader3: + dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_3 + db ($4 << 4) ; trainer's view range + dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_3 + dw MtMoon3BattleText5 ; TextBeforeBattle + dw MtMoon3AfterBattleText5 ; TextAfterBattle + dw MtMoon3EndBattleText5 ; TextEndBattle + dw MtMoon3EndBattleText5 ; TextEndBattle + + db $ff + +MtMoon3Text1: + TX_ASM + CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD + jr z, .asm_49e8d + and $c0 + jr nz, .asm_49eb8 + ld hl, MtMoon3Text_49f8f + call PrintText + jr .asm_49ebe +.asm_49e8d + ld hl, MtMoon3Text_49f85 + call PrintText + ld hl, wd72d + set 6, [hl] + set 7, [hl] + ld hl, MtMoon3Text_49f8a + ld de, MtMoon3Text_49f8a + call SaveEndBattleTextPointers + ld a, [H_SPRITEINDEX] + ld [wSpriteIndex], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $3 + ld [wMtMoonB2FCurScript], a + ld [wCurMapScript], a + jr .asm_49ebe +.asm_49eb8 + ld hl, MtMoon3Text_49f94 + call PrintText +.asm_49ebe + jp TextScriptEnd + +MtMoon3Text2: + TX_ASM + ld hl, MtMoon3TrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +MtMoon3Text3: + TX_ASM + ld hl, MtMoon3TrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +MtMoon3Text4: + TX_ASM + ld hl, MtMoon3TrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +MtMoon3Text5: + TX_ASM + ld hl, MtMoon3TrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +MtMoon3Text6: + TX_ASM + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, MtMoon3Text_49f24 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .asm_49f21 + lb bc, DOME_FOSSIL, 1 + call GiveItem + jp nc, MtMoon3Script_49f76 + call MtMoon3Script_49f69 + ld a, HS_MT_MOON_B2F_FOSSIL_1 + ld [wMissableObjectIndex], a + predef HideObject + SetEvent EVENT_GOT_DOME_FOSSIL + ld a, $4 + ld [wMtMoonB2FCurScript], a + ld [wCurMapScript], a +.asm_49f21 + jp TextScriptEnd + +MtMoon3Text_49f24: + TX_FAR _MtMoon3Text_49f24 + db "@" + +MtMoon3Text7: + TX_ASM + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, MtMoon3Text_49f64 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .asm_49f61 + lb bc, HELIX_FOSSIL, 1 + call GiveItem + jp nc, MtMoon3Script_49f76 + call MtMoon3Script_49f69 + ld a, HS_MT_MOON_B2F_FOSSIL_2 + ld [wMissableObjectIndex], a + predef HideObject + SetEvent EVENT_GOT_HELIX_FOSSIL + ld a, $4 + ld [wMtMoonB2FCurScript], a + ld [wCurMapScript], a +.asm_49f61 + jp TextScriptEnd + +MtMoon3Text_49f64: + TX_FAR _MtMoon3Text_49f64 + db "@" + +MtMoon3Script_49f69: + ld hl, MtMoon3Text_49f6f + jp PrintText + +MtMoon3Text_49f6f: + TX_FAR _MtMoon3Text_49f6f + TX_SFX_KEY_ITEM + TX_WAIT + db "@" + +MtMoon3Script_49f76: + ld hl, MtMoon3Text_49f7f + call PrintText + jp TextScriptEnd + +MtMoon3Text_49f7f: + TX_FAR _MtMoon3Text_49f7f + TX_WAIT + db "@" + +MtMoon3Text_49f85: + TX_FAR _MtMoon3Text_49f85 + db "@" + +MtMoon3Text_49f8a: + TX_FAR _MtMoon3Text_49f8a + db "@" + +MtMoon3Text_49f8f: + TX_FAR _MtMoon3Text_49f8f + db "@" + +MtMoon3Text_49f94: + TX_FAR _MtMoon3Text_49f94 + db "@" + +MtMoon3Text_49f99: + TX_FAR _MtMoon3Text_49f99 + TX_SFX_KEY_ITEM + db "@" + +MtMoon3BattleText2: + TX_FAR _MtMoon3BattleText2 + db "@" + +MtMoon3EndBattleText2: + TX_FAR _MtMoon3EndBattleText2 + db "@" + +MtMoon3AfterBattleText2: + TX_FAR _MtMoon3AfterBattleText2 + db "@" + +MtMoon3BattleText3: + TX_FAR _MtMoon3BattleText3 + db "@" + +MtMoon3EndBattleText3: + TX_FAR _MtMoon3EndBattleText3 + db "@" + +MtMoon3AfterBattleText3: + TX_FAR _MtMoon3AfterBattleText3 + db "@" + +MtMoon3BattleText4: + TX_FAR _MtMoon3BattleText4 + db "@" + +MtMoon3EndBattleText4: + TX_FAR _MtMoon3EndBattleText4 + db "@" + +MtMoon3AfterBattleText4: + TX_FAR _MtMoon3AfterBattleText4 + db "@" + +MtMoon3BattleText5: + TX_FAR _MtMoon3BattleText5 + db "@" + +MtMoon3EndBattleText5: + TX_FAR _MtMoon3EndBattleText5 + db "@" + +MtMoon3AfterBattleText5: + TX_FAR _MtMoon3AfterBattleText5 + db "@" |