jep-hack/maps/LakeOfRage.asm
Llinos Evans ac0d055474 Readme update, Lake of Rage changes, and must be 8-bit fixes
A slapdash of various little bits and pieces.
- Lake of Rage has a small culture entry at the top to illustrate what we're setting out to do. I mentioned the shell middens and canonised it alongside GSC.
- Move constants now have their 16-bit IDs set up
- Palfixed Feradactyl and Pupperon, fixed former's credit with confirmation from pokeoctober
- Wiped out the must be 8-bit errors on various Pokemon's `base_stats.asm` files.
- Fixed some aspects of Strong Arm and Water Sport calling garbage data; this was due to them using 8-bit comparison systems where there needed to be 16-bits. This fixes a good bit of their HM usage. Battle bugs need resolving (presumably due to a lack of gfx?)
- Fixed AI scoring with Water Sport (hopefully)
- Updated the readme with some of our progress over the past 5 months.
2025-01-03 13:19:09 +00:00

615 lines
14 KiB
NASM

; The Lake of Rage has had its original layout restored and edited to work with JEP.
; It's based on Lake Biwa, a 4 million year old lake known for its natural beauty and humongous catfish.
; The catfish are said to know when earthquakes will occur through detecting unusual vibrations or water chemistry. In Japanese mythology, Onamazu 大鯰 (lit. giant amur catfish) is said to cause earthquakes underground.
; What does this mean? Gyarados is a flying catfish. Also, this inspired Whiscash. In pracice? Absolutely nothing.
; *ahem* anyway, this context is what's informing the changes made to the Lake of Rage.
; Given the forced evolution, we've themed the new town around evolution. Evolution stones, the trader NPC, and so on, all found here.
object_const_def
const LAKEOFRAGE_LANCE
const LAKEOFRAGE_GRAMPS
const LAKEOFRAGE_SUPER_NERD1
const LAKEOFRAGE_COOLTRAINER_F1
const LAKEOFRAGE_FISHER1
const LAKEOFRAGE_FISHER2
const LAKEOFRAGE_COOLTRAINER_M
const LAKEOFRAGE_COOLTRAINER_F2
const LAKEOFRAGE_GYARADOS
const LAKEOFRAGE_WESLEY
const LAKEOFRAGE_POKE_BALL1
const LAKEOFRAGE_POKE_BALL2
const LAKEOFRAGE_CAMERAMAN
LakeOfRage_MapScripts:
def_scene_scripts
scene_script LakeOfRageNoop1Scene ; unusable
scene_script LakeOfRageNoop2Scene ; unusable
def_callbacks
callback MAPCALLBACK_NEWMAP, LakeOfRageFlypointCallback
callback MAPCALLBACK_OBJECTS, LakeOfRageWesleyCallback
LakeOfRageNoop1Scene:
end
LakeOfRageNoop2Scene:
end
LakeOfRageFlypointCallback:
setflag ENGINE_FLYPOINT_LAKE_OF_RAGE
endcallback
LakeOfRageWesleyCallback:
readvar VAR_WEEKDAY
ifequal WEDNESDAY, .WesleyAppears
disappear LAKEOFRAGE_WESLEY
endcallback
.WesleyAppears:
appear LAKEOFRAGE_WESLEY
endcallback
LakeOfRageLanceScript:
checkevent EVENT_REFUSED_TO_HELP_LANCE_AT_LAKE_OF_RAGE
iftrue .AskAgainForHelp
opentext
writetext LakeOfRageLanceForcedToEvolveText
promptbutton
faceplayer
writetext LakeOfRageLanceIntroText
yesorno
iffalse .RefusedToHelp
.AgreedToHelp:
writetext LakeOfRageLanceRadioSignalText
waitbutton
closetext
playsound SFX_WARP_TO
applymovement LAKEOFRAGE_LANCE, LakeOfRageLanceTeleportIntoSkyMovement
disappear LAKEOFRAGE_LANCE
clearevent EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
setevent EVENT_DECIDED_TO_HELP_LANCE
setmapscene MAHOGANY_MART_1F, SCENE_MAHOGANYMART1F_LANCE_UNCOVERS_STAIRS
end
.RefusedToHelp:
writetext LakeOfRageLanceRefusedText
waitbutton
closetext
setevent EVENT_REFUSED_TO_HELP_LANCE_AT_LAKE_OF_RAGE
end
.AskAgainForHelp:
faceplayer
opentext
writetext LakeOfRageLanceAskHelpText
yesorno
iffalse .RefusedToHelp
sjump .AgreedToHelp
RedGyarados:
opentext
writetext LakeOfRageGyaradosCryText
pause 15
cry GYARADOS
closetext
loadwildmon GYARADOS, 30
loadvar VAR_BATTLETYPE, BATTLETYPE_SHINY
startbattle
ifequal LOSE, .NotBeaten
disappear LAKEOFRAGE_GYARADOS
.NotBeaten:
reloadmapafterbattle
opentext
giveitem RED_SCALE
waitsfx
writetext LakeOfRageGotRedScaleText
playsound SFX_ITEM
waitsfx
itemnotify
closetext
setscene 0 ; Lake of Rage does not have a scene variable
appear LAKEOFRAGE_LANCE
end
LakeOfRageGrampsScript:
faceplayer
opentext
checkevent EVENT_CLEARED_ROCKET_HIDEOUT
iftrue .ClearedRocketHideout
writetext LakeOfRageGrampsText
waitbutton
closetext
end
.ClearedRocketHideout:
writetext LakeOfRageGrampsText_ClearedRocketHideout
waitbutton
closetext
end
LakeOfRageSuperNerdScript:
jumptextfaceplayer LakeOfRageSuperNerdText
LakeOfRageCooltrainerFScript:
jumptextfaceplayer LakeOfRageCooltrainerFText
; Did you know DPP canonically takes place at the same time as GSC?
; Let's canonise that in JEP.
; This will technically be two individuals.
; The first is the guy from the Battle Zone, who gets there first. A happy larrikin for sure.
; The second is the exploration team from the DP intro. They got here too late, so...oops.
LakeOfRageCameramanScript:
faceplayer
opentext
checkevent EVENT_LAKE_OF_RAGE_RED_GYARADOS
iftrue .GyaradosDefeated
writetext LakeOfRageCameramanText
waitbutton
closetext
end
.GyaradosDefeated:
writetext LakeOfRageCameramanText_GyaradosDefeated
waitbutton
closetext
end
LakeOfRageCameramanText: ; Reference to the Battle Zone
text "Hohoho!"
para "Am I lucky to"
line "have been here"
cont "when that MAGIKARP"
cont "evolved!"
para "This film is"
line "gonna make me"
cont "rich!"
done
; Slightly doctored for the poor innocent Game Boy screen...
LakeOfRageCameramanText_GyaradosDefeated:
text "Despite the team's"
line "best efforts, the"
cont "red GYARADOS has"
cont "eluded detection."
para "It has failed to"
line "appear, even fl-"
cont "eetingly, to our"
cont "crestfallen team!"
done
LakeOfRageSign:
jumptext LakeOfRageSignText
LakeOfRageSign2:
jumptext LakeOfRageSignText2
MagikarpHouseSignScript:
opentext
writetext FishingGurusHouseSignText
checkevent EVENT_CLEARED_ROCKET_HIDEOUT
iftrue .MagikarpLengthRecord
waitbutton
closetext
end
.MagikarpLengthRecord:
promptbutton
special MagikarpHouseSign
closetext
end
TrainerFisherAndre:
trainer FISHER, ANDRE, EVENT_BEAT_FISHER_ANDRE, FisherAndreSeenText, FisherAndreBeatenText, 0, .Script
.Script:
endifjustbattled
opentext
writetext FisherAndreAfterBattleText
waitbutton
closetext
end
TrainerFisherRaymond:
trainer FISHER, RAYMOND, EVENT_BEAT_FISHER_RAYMOND, FisherRaymondSeenText, FisherRaymondBeatenText, 0, .Script
.Script:
endifjustbattled
opentext
writetext FisherRaymondAfterBattleText
waitbutton
closetext
end
TrainerCooltrainermAaron:
trainer COOLTRAINERM, AARON, EVENT_BEAT_COOLTRAINERM_AARON, CooltrainermAaronSeenText, CooltrainermAaronBeatenText, 0, .Script
.Script:
endifjustbattled
opentext
writetext CooltrainermAaronAfterBattleText
waitbutton
closetext
end
TrainerCooltrainerfLois:
trainer COOLTRAINERF, LOIS, EVENT_BEAT_COOLTRAINERF_LOIS, CooltrainerfLoisSeenText, CooltrainerfLoisBeatenText, 0, .Script
.Script:
endifjustbattled
opentext
writetext CooltrainerfLoisAfterBattleText
waitbutton
closetext
end
WesleyScript:
faceplayer
opentext
checkevent EVENT_GOT_BLACKBELT_FROM_WESLEY
iftrue WesleyWednesdayScript
readvar VAR_WEEKDAY
ifnotequal WEDNESDAY, WesleyNotWednesdayScript
checkevent EVENT_MET_WESLEY_OF_WEDNESDAY
iftrue .MetWesley
writetext MeetWesleyText
promptbutton
setevent EVENT_MET_WESLEY_OF_WEDNESDAY
.MetWesley:
writetext WesleyGivesGiftText
promptbutton
verbosegiveitem BLACKBELT_I
iffalse WesleyDoneScript
setevent EVENT_GOT_BLACKBELT_FROM_WESLEY
writetext WesleyGaveGiftText
waitbutton
closetext
end
WesleyWednesdayScript:
writetext WesleyWednesdayText
waitbutton
WesleyDoneScript:
closetext
end
WesleyNotWednesdayScript:
writetext WesleyNotWednesdayText
waitbutton
closetext
end
LakeOfRageElixer:
itemball ELIXER
LakeOfRageTMDetect:
itemball TM_DETECT
LakeOfRageHiddenFullRestore:
hiddenitem FULL_RESTORE, EVENT_LAKE_OF_RAGE_HIDDEN_FULL_RESTORE
LakeOfRageHiddenRareCandy:
hiddenitem RARE_CANDY, EVENT_LAKE_OF_RAGE_HIDDEN_RARE_CANDY
LakeOfRageHiddenMaxPotion:
hiddenitem MAX_POTION, EVENT_LAKE_OF_RAGE_HIDDEN_MAX_POTION
LakeOfRageLanceTeleportIntoSkyMovement:
teleport_from
step_end
LakeOfRagePokecenterSign:
jumpstd PokecenterSignScript
LakeOfRageMartSign:
jumpstd MartSignScript
LakeOfRageLanceForcedToEvolveText:
text "This lake is full"
line "of GYARADOS but"
cont "nothing else…"
para "So the MAGIKARP"
line "are being forced"
cont "to evolve…"
done
LakeOfRageLanceIntroText:
text "Did you come here"
line "because of the"
cont "rumors?"
para "You're <PLAYER>?"
line "I'm LANCE, a"
cont "trainer like you."
para "I heard some ru-"
line "mors, so I came to"
cont "investigate…"
para "I saw the way you"
line "battled earlier,"
cont "<PLAY_G>."
para "I can tell that"
line "you're a trainer"
para "with considerable"
line "skill."
para "If you don't mind,"
line "could you help me"
cont "investigate?"
done
LakeOfRageLanceRadioSignalText:
text "LANCE: Excellent!"
para "It seems that the"
line "LAKE's MAGIKARP"
para "are being forced"
line "to evolve."
para "A mysterious radio"
line "broadcast coming"
para "from MAHOGANY is"
line "the cause."
para "I'll be waiting"
line "for you, <PLAY_G>."
done
LakeOfRageLanceRefusedText:
text "Oh… Well, if you"
line "change your mind,"
cont "please help me."
done
LakeOfRageLanceAskHelpText:
text "LANCE: Hm? Are you"
line "going to help me?"
done
LakeOfRageGyaradosCryText:
text "GYARADOS: Gyashaa!"
done
LakeOfRageGotRedScaleText:
text "<PLAYER> obtained a"
line "RED SCALE."
done
LakeOfRageGrampsText:
text "The GYARADOS are"
line "angry!"
para "It's a bad omen!"
done
LakeOfRageGrampsText_ClearedRocketHideout:
text "Hahah! The MAGI-"
line "KARP are biting!"
done
LakeOfRageSuperNerdText:
text "I heard this lake"
line "was made by ram-"
cont "paging GYARADOS."
para "I wonder if there"
line "is any connection"
para "to their mass out-"
line "break now?"
done
LakeOfRageCooltrainerFText:
text "Did my eyes de-"
line "ceive me? I saw a"
para "red GYARADOS in"
line "the LAKE…"
para "But I thought"
line "GYARADOS were"
cont "usually blue?"
done
FisherAndreSeenText:
text "Let me battle with"
line "the #MON I just"
cont "caught!"
done
FisherAndreBeatenText:
text "I might be an ex-"
line "pert angler, but"
para "I stink as a #-"
line "MON trainer…"
done
FisherAndreAfterBattleText:
text "I won't lose as an"
line "angler! I catch"
cont "#MON all day."
done
FisherRaymondSeenText:
text "No matter what I"
line "do, all I catch"
para "are the same #-"
line "MON…"
done
FisherRaymondBeatenText:
text "My line's all"
line "tangled up…"
done
FisherRaymondAfterBattleText:
text "Why can't I catch"
line "any good #MON?"
done
CooltrainermAaronSeenText:
text "If a trainer spots"
line "another trainer,"
para "he has to make a"
line "challenge."
para "That is our"
line "destiny."
done
CooltrainermAaronBeatenText:
text "Whew…"
line "Good battle."
done
CooltrainermAaronAfterBattleText:
text "#MON and their"
line "trainer become"
para "powerful through"
line "constant battling."
done
CooltrainerfLoisSeenText:
text "What happened to"
line "the red GYARADOS?"
para "It's gone?"
para "Oh, darn. I came"
line "here for nothing?"
para "I know--let's"
line "battle!"
done
CooltrainerfLoisBeatenText:
text "Good going!"
done
CooltrainerfLoisAfterBattleText:
text "Come to think of"
line "it, I've seen a"
cont "pink BUTTERFREE."
done
MeetWesleyText:
text "WESLEY: Well, how"
line "do you do?"
para "Seeing as how it's"
line "Wednesday today,"
para "I'm WESLEY of"
line "Wednesday."
done
WesleyGivesGiftText:
text "Pleased to meet"
line "you. Please take a"
cont "souvenir."
done
WesleyGaveGiftText:
text "WESLEY: BLACKBELT"
line "beefs up the power"
cont "of fighting moves."
done
WesleyWednesdayText:
text "WESLEY: Since you"
line "found me, you must"
para "have met my broth-"
line "ers and sisters."
para "Or did you just"
line "get lucky?"
done
WesleyNotWednesdayText:
text "WESLEY: Today's"
line "not Wednesday."
cont "That's too bad."
done
LakeOfRageSignText:
text "LAKE OF RAGE,"
line "also known as"
cont "GYARADOS LAKE."
done
LakeOfRageSignText2:
text "Take care when"
line "fishing!"
para "GYARADOS will"
line "attack!"
done
; This guy is called the Fishing Master つりめいじん in Japanese, unrelated to the Fishing Gurus つりおやじ.
; This fixes a translation error on the part of the devs.
; See Vermilion house for other bits on that.
FishingGurusHouseSignText:
text "FISHING MASTER'S"
line "HOUSE"
done
LakeOfRagePryceSign:
jumptext LakeOfRagePryceSignText
LakeOfRagePryceSignText:
text "PRYCE'S HOUSE"
done
LakeOfRage_MapEvents:
db 0, 0 ; filler
def_warp_events
warp_event 21, 5, LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 1
warp_event 35, 29, LAKE_OF_RAGE_MAGIKARP_HOUSE, 1
warp_event 3, 9, LAKE_OF_RAGE_MART, 1
warp_event 5, 19, LAKE_OF_RAGE_POKECENTER_1F, 1
warp_event 17, 13, LAKE_OF_RAGE_TRADER_HOUSE, 1
warp_event 10, 5, LAKE_OF_RAGE_PRYCES_HOUSE, 1
def_coord_events
def_bg_events
bg_event 11, 11, BGEVENT_READ, LakeOfRageSign
bg_event 33, 29, BGEVENT_READ, MagikarpHouseSignScript
bg_event 3, 31, BGEVENT_ITEM, LakeOfRageHiddenFullRestore
bg_event 9, 11, BGEVENT_ITEM, LakeOfRageHiddenRareCandy
bg_event 19, 5, BGEVENT_ITEM, LakeOfRageHiddenMaxPotion
bg_event 19, 31, BGEVENT_READ, LakeOfRageSign2
bg_event 6, 19, BGEVENT_READ, LakeOfRagePokecenterSign
bg_event 4, 9, BGEVENT_READ, LakeOfRageMartSign
bg_event 7, 5, BGEVENT_READ, LakeOfRagePryceSign
def_object_events
object_event 19, 32, SPRITE_LANCE, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageLanceScript, EVENT_LAKE_OF_RAGE_LANCE
object_event 20, 30, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageGrampsScript, -1
object_event 36, 13, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageSuperNerdScript, -1
object_event 9, 9, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageCooltrainerFScript, -1
object_event 21, 15, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 1, TrainerFisherAndre, EVENT_LAKE_OF_RAGE_CIVILIANS
object_event 31, 22, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS
object_event 2, 25, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS
object_event 36, 7, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 0, TrainerCooltrainerfLois, EVENT_LAKE_OF_RAGE_CIVILIANS
object_event 19, 26, SPRITE_GYARADOS, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, RedGyarados, EVENT_LAKE_OF_RAGE_RED_GYARADOS
object_event 9, 11, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, WesleyScript, EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY
object_event 7, 27, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, LakeOfRageElixer, EVENT_LAKE_OF_RAGE_ELIXER
object_event 27, 8, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, LakeOfRageTMDetect, EVENT_LAKE_OF_RAGE_TM_DETECT
object_event 11, 18, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageCameramanScript, -1