Silph Gauntlet reset-on-victory

This functionally turns the Silph Gauntlet into a battle tower of sorts.

I did notice some weirdness post-event-reset so definitely do some tests. It should be fine, though.
This commit is contained in:
Llinos Evans 2023-12-24 18:13:41 +00:00
parent 355661350e
commit 6678af8722
7 changed files with 12 additions and 7 deletions

View file

@ -9,6 +9,7 @@ SilphCo1F_ScriptPointers:
dw SilphCo1FScript1
SilphCo1FScript0:
ResetEvent EVENT_BEAT_CHIEF ; Used so you can rematch Chief and later the gauntlet, without him being reset alongside everything else. An absolutely tragic way to fix a bug, but it works. If you enter his room, you have to fight him, so this all works under the hood without infringing on design.
ld b, SILPHLETTER
call IsItemInBag
ret nz

View file

@ -71,7 +71,7 @@ ChiefScript3:
xor a
ld [wIsTrainerBattle], a
call UpdateSprites
SetEvent EVENT_BEAT_CHIEF
SetEvent EVENT_BEAT_CHIEF ; Ensures Chief cannot be rematched in the room.
ld a, $f0
ld [wJoyIgnore], a
ld a, $1
@ -95,7 +95,7 @@ ChiefScript4:
ld a, HS_CERULEAN_CAVE_GUY
ld [wMissableObjectIndex], a
predef HideObject
; ResetEventRange SILPH_GAUNTLET_EVENTS_START, SILPH_GAUNTLET_EVENTS_END, 1 ; I want this to reset the trainers so you can refight them, but I'm very unsure how this works...
ResetEventRange SILPH_GAUNTLET_EVENTS_START, SILPH_GAUNTLET_EVENTS_END, 1
ld a, $0
ld [wSilphGauntlet7FCurScript], a