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 warp_event 11, 5, MT_MOON_SQUARE_HOUSE, 2
def_bg_events def_bg_events
bg_event 15, 5, 2 ; Sign bg_event 15, 5, 4 ; Sign
def_object_events def_object_events
object_event 7, 5, SPRITE_FAIRY, WALK, ANY_DIR, 1 ; person object_event 7, 5, SPRITE_FAIRY, WALK, ANY_DIR, 1 ; person
object_event 5, 4, 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, 1 ; person object_event 4, 6, SPRITE_FAIRY, WALK, ANY_DIR, 3 ; person
def_warps_to MT_MOON_SQUARE def_warps_to MT_MOON_SQUARE

View file

@ -5,7 +5,9 @@ RedsHouse2F_Object:
warp_event 7, 1, REDS_HOUSE_1F, 3 warp_event 7, 1, REDS_HOUSE_1F, 3
;warp_event 5, 1, SILPH_GAUNTLET_7F, 1 ; - Test Chief ;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, 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 def_bg_events

View file

@ -970,8 +970,8 @@ TrainerBattleVictory:
call DelayFrames call DelayFrames
call PrintEndBattleText call PrintEndBattleText
ld a, [wCurMap] ld a, [wCurMap]
cp BATTLE_TENT ; 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 ;) ; ret z ; We will give it later ;)
; win money ; win money
ld hl, MoneyForWinningText ld hl, MoneyForWinningText
call PrintText call PrintText

View file

@ -597,22 +597,51 @@ BattleTentGuy_After:
ld hl, BattleTentSeeYouAgain ld hl, BattleTentSeeYouAgain
call PrintText call PrintText
jp TextScriptEnd 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: BattleTentGuy2:
db $8 db $8
ld a, [wBTStreakCnt] ld a, [wBTStreakCnt] ; The streak counter is still used for message continuity.
and a and a
ld hl, BattleTentGuy2_Streak
jr nz, .skip ; Old System
inc a ; ld hl, BattleTentGuy2_Streak
ld [wBTStreakCnt], a ; jr nz, .skip
ld hl, BattleTentGuy2_Init ; inc a
jr .skip2 ; ld [wBTStreakCnt], a
.skip ; ld hl, BattleTentGuy2_Init
cp 11 ; jr .skip2
jr nz, .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 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 call PrintText
jp TextScriptEnd jp TextScriptEnd
@ -692,12 +721,14 @@ BattleTentWelcome:
para "Here, TRAINERs" para "Here, TRAINERs"
line "from far and" line "from far and"
cont "wide come to" cont "wide come to"
cont "face a gauntlet" ;cont "face a gauntlet"
cont "of 10 TRAINERs!" ;cont "of 10 TRAINERs!"
cont "spar against"
cont "one another!"
para "If you win them" ;para "If you win them"
line "all, you win" ;line "all, you win"
cont "a prize!" ;cont "a prize!"
para "Would you like" para "Would you like"
line "to participate?" line "to participate?"
@ -778,20 +809,32 @@ BattleTentGuy2_Init:
para "Good luck!" para "Good luck!"
done done
; Cut in favour of a different system.
BattleTentGuy2_Streak: BattleTentGuy2_Streak:
text "Opponent No.@" ; could be a №? ; text "Opponent No.@" ; could be a №?
text_decimal wBTStreakCnt, 1, 2 ; text_decimal wBTStreakCnt, 1, 2
text_start ; text_start
line "is up next." ; line "is up next."
para "Good luck!" ; para "Good luck!"
; done
text "Here comes a"
line "new challenger!" ; I really like fighting games.
done done
BattleTentGuy2_Win: BattleTentGuy2_Continue:
text "Congratulations!" text "Congratulations!"
para "You have defeated" para "Do you want to"
line "all 10 opponents!" line "continue?"
prompt
BattleTentGuy2_Win:
;text "Congratulations!"
text "Well done!"
;para "You have defeated"
;line "all 10 opponents!"
para "Please go back to" para "Please go back to"
line "the counter to" line "the counter to"

View file

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