Fix Mt Moon Square NPCs, new Battle Tent system

This fixes the issue with Mt Moon Square's NPC text and changes the Battle Tent to a continuous system.

The Battle Tent's new system circumvents the issue with wBTStreakCnt while providing the player with more agency. They'll get constant prize money after each battle and can abandon the challenge at any time. It may feel more grindy but in my opinion works just as well.
This commit is contained in:
Llinos Evans 2023-05-20 04:57:46 +01:00
parent 4262a0de0d
commit 48b25069f8
5 changed files with 80 additions and 33 deletions

View file

@ -8,11 +8,11 @@ MtMoonSquare_Object:
warp_event 11, 5, MT_MOON_SQUARE_HOUSE, 2
def_bg_events
bg_event 15, 5, 2 ; Sign
bg_event 15, 5, 4 ; Sign
def_object_events
object_event 7, 5, SPRITE_FAIRY, WALK, ANY_DIR, 1 ; person
object_event 5, 4, SPRITE_FAIRY, WALK, ANY_DIR, 1 ; person
object_event 4, 6, SPRITE_FAIRY, WALK, ANY_DIR, 1 ; person
object_event 5, 4, SPRITE_FAIRY, WALK, ANY_DIR, 2 ; person
object_event 4, 6, SPRITE_FAIRY, WALK, ANY_DIR, 3 ; person
def_warps_to MT_MOON_SQUARE

View file

@ -5,7 +5,9 @@ RedsHouse2F_Object:
warp_event 7, 1, REDS_HOUSE_1F, 3
;warp_event 5, 1, SILPH_GAUNTLET_7F, 1 ; - Test Chief
;warp_event 5, 1, SILPH_CO_11F, 1 ; - Test Omega & Giovanni
warp_event 5, 1, ROCKET_HIDEOUT_B4F, 2 ; - Test Giovanni 1
;warp_event 5, 1, ROCKET_HIDEOUT_B4F, 2 ; - Test Giovanni 1
;warp_event 5, 1, MT_MOON_SQUARE, 1 ; - Test Shop, NPCs, and Crater
warp_event 5, 1, CELESTE_HILL, 1 ; - Test Birds
def_bg_events

View file

@ -970,8 +970,8 @@ TrainerBattleVictory:
call DelayFrames
call PrintEndBattleText
ld a, [wCurMap]
cp BATTLE_TENT
ret z ; We will give it later ;)
; cp BATTLE_TENT - originally the battle tent would not do this, but with the new system, it does.
; ret z ; We will give it later ;)
; win money
ld hl, MoneyForWinningText
call PrintText

View file

@ -597,22 +597,51 @@ BattleTentGuy_After:
ld hl, BattleTentSeeYouAgain
call PrintText
jp TextScriptEnd
; The Battle Tent has a new progression system for two reasons:
; 1) The battles are all trainer-based now, so money is given after battle.
; 2) wBTStreakCnt would not increment properly for unknown reasons, making it infinite.
; Thus, now the player can constantly battle and abandon the challenge when they want.
; Arguably a better system, but I do wish the counter incremented...
BattleTentGuy2:
db $8
ld a, [wBTStreakCnt]
ld a, [wBTStreakCnt] ; The streak counter is still used for message continuity.
and a
ld hl, BattleTentGuy2_Streak
jr nz, .skip
inc a
ld [wBTStreakCnt], a
ld hl, BattleTentGuy2_Init
jr .skip2
.skip
cp 11
jr nz, .skip2
; Old System
; ld hl, BattleTentGuy2_Streak
; jr nz, .skip
; inc a
; ld [wBTStreakCnt], a
; ld hl, BattleTentGuy2_Init
; jr .skip2
;.skip
; cp 11
; jr nz, .skip2
; New System
ld hl, BattleTentGuy2_Streak ; The message has been changed appropriately down below.
jr z, .skip2
xor a ; The D-Pad is locked at this point, so blank out wJoyIgnore to allow manual option selection.
ld [wJoyIgnore], a
ld hl, BattleTentGuy2_Continue ; Continue prompt.
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .refused ; If 0, move to refused.
jr .cont ; Otherwise, continue as if nothing happened.
.refused
ld hl, BattleTentGuy2_Win
.skip2
call PrintText
ld a, 9 ; Load BattleTent_PlayerWalkBack, which takes it from here.
ld [wBattleTentCurScript], a
jp TextScriptEnd
.cont
ld hl, BattleTentGuy2_Init ; Load the next battle.
jr .skip2
.skip2 ; This handles BattleTentGuy2_Streak and BattleTentGuy2_Init at once.
call PrintText
jp TextScriptEnd
@ -692,12 +721,14 @@ BattleTentWelcome:
para "Here, TRAINERs"
line "from far and"
cont "wide come to"
cont "face a gauntlet"
cont "of 10 TRAINERs!"
;cont "face a gauntlet"
;cont "of 10 TRAINERs!"
cont "spar against"
cont "one another!"
para "If you win them"
line "all, you win"
cont "a prize!"
;para "If you win them"
;line "all, you win"
;cont "a prize!"
para "Would you like"
line "to participate?"
@ -778,20 +809,32 @@ BattleTentGuy2_Init:
para "Good luck!"
done
; Cut in favour of a different system.
BattleTentGuy2_Streak:
text "Opponent No.@" ; could be a №?
text_decimal wBTStreakCnt, 1, 2
text_start
line "is up next."
para "Good luck!"
; text "Opponent No.@" ; could be a №?
; text_decimal wBTStreakCnt, 1, 2
; text_start
; line "is up next."
; para "Good luck!"
; done
text "Here comes a"
line "new challenger!" ; I really like fighting games.
done
BattleTentGuy2_Win:
BattleTentGuy2_Continue:
text "Congratulations!"
para "You have defeated"
line "all 10 opponents!"
para "Do you want to"
line "continue?"
prompt
BattleTentGuy2_Win:
;text "Congratulations!"
text "Well done!"
;para "You have defeated"
;line "all 10 opponents!"
para "Please go back to"
line "the counter to"

View file

@ -2,6 +2,8 @@ MtMoonSquare_Script:
jp EnableAutoTextBoxDrawing
MtMoonSquare_TextPointers:
dw MtMoonSquareClefairy
dw MtMoonSquareClefairy
dw MtMoonSquareClefairy
dw MtMoonSquareSign