jep-hack/maps/ViridianGym.asm
Zeta_Null 7efbb642d5 Johto Boy and HP Fix
Mildly scuffed implementation of blue checking your gender to be able to call you Johto Boy/Girl/Kid

Also fixed how fucking slow HP drain is when you have a lot. May require a make tidy to go into effect.
2024-12-10 15:57:25 -05:00

216 lines
4 KiB
NASM

object_const_def
const VIRIDIANGYM_BLUE
const VIRIDIANGYM_GYM_GUIDE
ViridianGym_MapScripts:
def_scene_scripts
def_callbacks
ViridianGymBlueScript:
faceplayer
opentext
checkflag ENGINE_EARTHBADGE
iftrue .FightDone
writetext LeaderBlueBeforeText
readvar VAR_PLAYERGENDER
ifequal FEMALE, .PlayerIsFemale
ifequal ENBY, .PlayerIsEnby
writetext LeaderBlueJohtoBoyText
waitbutton
closetext
sjump .cont
.PlayerIsFemale:
writetext LeaderBlueJohtoGirlText
waitbutton
closetext
sjump .cont
.PlayerIsEnby:
writetext LeaderBlueJohtoNBText
waitbutton
closetext
sjump .cont
.cont:
winlosstext LeaderBlueWinText, 0
loadtrainer BLUE, BLUE1
startbattle
reloadmapafterbattle
setevent EVENT_BEAT_BLUE
opentext
writetext Text_ReceivedEarthBadge
playsound SFX_GET_BADGE
waitsfx
setflag ENGINE_EARTHBADGE
writetext LeaderBlueAfterText
waitbutton
closetext
end
.FightDone:
writetext LeaderBlueEpilogueText
waitbutton
closetext
end
ViridianGymGuideScript:
faceplayer
opentext
checkevent EVENT_BEAT_BLUE
iftrue .ViridianGymGuideWinScript
writetext ViridianGymGuideText
waitbutton
closetext
end
.ViridianGymGuideWinScript:
writetext ViridianGymGuideWinText
waitbutton
closetext
end
ViridianGymStatue:
checkflag ENGINE_EARTHBADGE
iftrue .Beaten
jumpstd GymStatue1Script
.Beaten:
gettrainername STRING_BUFFER_4, BLUE, BLUE1
jumpstd GymStatue2Script
LeaderBlueBeforeText:
text "BLUE: Yo! Finally"
line "got here, huh?"
para "I wasn't in the"
line "mood at CINNABAR,"
para "but now I'm ready"
line "to battle you."
para "…"
para "You're telling me"
line "you conquered all"
cont "the GYMS in JOHTO?"
para "Heh! JOHTO's GYMS"
line "must be pretty"
cont "pathetic then."
para "Hey, don't worry"
line "about it."
para "I'll know if you"
line "are good or not by"
para "battling you right"
line "now."
para "" ; This is a stupid workaround because the game immediately overwrites the last bit of text after it's written with how I've coded this.
done ; I /could/ just have three copies of the same script but I hate that and don't want to. It's stupid and annoying.
LeaderBlueJohtoBoyText:
text "Ready, JOHTO boy?"
done
LeaderBlueJohtoGirlText:
text "Ready, JOHTO girl?"
done
LeaderBlueJohtoNBText:
text "Ready, JOHTO kid?"
done
LeaderBlueWinText:
text "BLUE: What?"
para "How the heck did I"
line "lose to you?"
para "…"
para "Tch, all right…"
line "Here, take this--"
cont "it's EARTHBADGE."
done
Text_ReceivedEarthBadge:
text "<PLAYER> received"
line "EARTHBADGE."
done
LeaderBlueAfterText:
text "BLUE: …"
para "All right, I was"
line "wrong. You're the"
para "real deal. You are"
line "a good trainer."
para "But I'm going to"
line "beat you someday."
para "Don't you forget"
line "it!"
done
LeaderBlueEpilogueText:
text "BLUE: Listen, you."
para "You'd better not"
line "lose until I beat"
cont "you. Got it?"
done
ViridianGymGuideText:
text "Yo, CHAMP in"
line "making!"
para "How's it going?"
line "Looks like you're"
cont "on a roll."
para "The GYM LEADER is"
line "a guy who battled"
para "the CHAMPION three"
line "years ago."
para "He's no pushover."
para "Give it everything"
line "you've got!"
done
ViridianGymGuideWinText:
text "Man, you are truly"
line "tough…"
para "That was a heck of"
line "an inspirational"
para "battle. It brought"
line "tears to my eyes."
done
ViridianGym_MapEvents:
db 0, 0 ; filler
def_warp_events
warp_event 4, 17, VIRIDIAN_CITY, 1
warp_event 5, 17, VIRIDIAN_CITY, 1
def_coord_events
def_bg_events
bg_event 3, 13, BGEVENT_READ, ViridianGymStatue
bg_event 6, 13, BGEVENT_READ, ViridianGymStatue
def_object_events
object_event 5, 3, SPRITE_BLUE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ViridianGymBlueScript, EVENT_VIRIDIAN_GYM_BLUE
object_event 7, 13, SPRITE_GYM_GUIDE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ViridianGymGuideScript, EVENT_VIRIDIAN_GYM_BLUE