Haunted House groundwork

Adds the Haunted House with wild data, warps, and most of the house itself done.

Gengar Doll is set to be a boss fight, needs walking sprites among other things.

BG events need a bit more fleshing out.

Needs integration for the loose board mechanic.

Otherwise extremely fleshed-out.
This commit is contained in:
Llinos Evans 2024-08-15 20:49:25 +01:00
parent 4905e4246f
commit 6e832f06d8
25 changed files with 587 additions and 53 deletions

View file

@ -403,7 +403,7 @@ DebugRoom_MapEvents:
warp_event 5, 35, LAVENDER_TOWN, 1 ; southwest warp
warp_event 19, 34, SAFARI_ZONE_FUCHSIA_GATE_BETA, 3 ; southern warp
warp_event 33, 33, TWO_ISLAND, 1 ; southeast warp
warp_event 5, 3, AZALEA_TOWN, 1
warp_event 5, 3, HAUNTED_HOUSE_FOYER, 1
warp_event 34, 11, WINNERS_PATH, 3
def_coord_events

BIN
maps/HauntedHouse1F.ablk Normal file

Binary file not shown.

77
maps/HauntedHouse1F.asm Normal file
View file

@ -0,0 +1,77 @@
; Old Chateau-inspired 1 Corridor multi-room map.
object_const_def
HauntedHouse1F_MapScripts:
def_scene_scripts
def_callbacks
HauntedHouse1FGrandPianoScript: ; flashbang sm64 players
jumptext HauntedHouse1FGrandPianoText
HauntedHouse1FGrandPianoText:
text "It's a grand piano!"
line "So big!"
done
HauntedHouse1FGrandPianoRoomBookScript: ; flashbang sm64 players
jumptext HauntedHouse1FGrandPianoRoomBookText
HauntedHouse1FGrandPianoRoomBookText:
text "It's a book filled"
line "with music sheets."
para "There's lots of"
line "angry scrawls in"
cont "the margin…" ; Like many Asians, Jessie hated being forced to learn the piano.
done
; A cool gimmick (and forced Corpse Party reference) is the use of loose boards to get over gaps.
; This is how you access Miyamoto's room.
HauntedHouseLooseBoardPromptText:
text "The floor has been"
line "smashed open!"
para "There has to be"
line "a way to cross…"
done
HauntedHousePlaceTheBoardText:
text "Place the LOOSE"
line "BOARD?"
done
HauntedHouse1F_MapEvents:
db 0, 0 ; filler
def_warp_events
warp_event 14, 15, HAUNTED_HOUSE_1F, 5 ; far right
warp_event 11, 15, HAUNTED_HOUSE_1F, 7 ; right
warp_event 8, 15, HAUNTED_HOUSE_1F, 9 ; left
warp_event 5, 15, HAUNTED_HOUSE_1F, 11 ; far left
warp_event 31, 19, HAUNTED_HOUSE_1F, 1 ; bottom 1
warp_event 32, 19, HAUNTED_HOUSE_1F, 1 ; bottom 2
warp_event 31, 7, HAUNTED_HOUSE_1F, 2 ; top right 1
warp_event 32, 7, HAUNTED_HOUSE_1F, 2 ; top right 2
warp_event 17, 7, HAUNTED_HOUSE_1F, 3 ; top second from left 1
warp_event 18, 7, HAUNTED_HOUSE_1F, 3 ; top second from left 2
warp_event 3, 7, HAUNTED_HOUSE_1F, 4 ; top-right 1
warp_event 4, 7, HAUNTED_HOUSE_1F, 4 ; top-right 2
warp_event 9, 19, HAUNTED_HOUSE_FOYER, 3
warp_event 10, 19, HAUNTED_HOUSE_FOYER, 4
def_coord_events
def_bg_events
bg_event 31, 3, BGEVENT_READ, HauntedHouse1FGrandPianoScript
bg_event 30, 3, BGEVENT_READ, HauntedHouse1FGrandPianoScript
bg_event 33, 2, BGEVENT_READ, HauntedHouse1FGrandPianoRoomBookScript
bg_event 32, 2, BGEVENT_READ, HauntedHouse1FGrandPianoRoomBookScript
def_object_events

BIN
maps/HauntedHouse2F.ablk Normal file

Binary file not shown.

261
maps/HauntedHouse2F.asm Normal file
View file

@ -0,0 +1,261 @@
; Jessie and Miyamoto's rooms.
; This ports over a lot of stuff from the first movie's radio drama.
; Given Jessie is canon - KEP was a Yellow hack, it makes sense to include.
; It also gives this mansion far more purpose.
; Translation source: http://www.rigelatin.net/copycat/saga/origin/dramaep1.php
object_const_def
HauntedHouse2F_MapScripts:
def_scene_scripts
def_callbacks
; At some point this'll be a boss but I'm a bit tired.
; The idea is you defeat it and it gives you something to progress.
HauntedHouse2FGengarDoll:
jumptext HauntedHouse2FGengarDollText
HauntedHouse2FGengarDollText:
text "It's a GENGAR DOLL!"
para "It stares daggers"
line "into your eyes…"
para "Too scary!"
done
HauntedHouse2FTVScript: ; this will false trigger the rotom fan
jumptext HauntedHouse2FTVText ; in actuality, I consider this to be miyamoto's leisure time!
HauntedHouse2FTVText:
text "It's a dusty old"
line "TV."
done
HauntedHouse2FBed1Script:
jumptext HauntedHouse2FBed1Text
HauntedHouse2FBed1Text:
text "This bed hasn't"
line "been slept in"
cont "for a long time."
done
HauntedHouse2FBed2Script:
jumptext HauntedHouse2FBed2Text
HauntedHouse2FBed2Text:
text "This bed hasn't"
line "been slept in"
cont "for a long time."
para "Under the matt-"
line "ress…"
para "Ew! Bed bugs!" ; One bed will note this.
done
; Miyamoto's diary.
; This will prelude her failed mission to capture Mew, referenced in KEP.
; After Miyamoto disappeared, Jessie went into a foster home.
; I conclude that Jessie lived a rich life initially, as in Holiday Hi-Jynx, she is shown to live in a very privileged household. This presumably took place before Miyamoto disappeared, as she is later shown to live a poverty-stricken life.
; I initially considered Madame Boss, but in KEP, Giovanni had the files.
; Smart, right?
HauntedHouseMiyamotoDiary:
opentext
writetext HauntedHouse2FBookPromptText
waitbutton
yesorno
iffalse .end
writetext HauntedHouse2FBookRead1Text
waitbutton
writetext HauntedHouse2FBookKeepGoingText
waitbutton
yesorno
iffalse .end
writetext HauntedHouse2FBookRead2Text
waitbutton
writetext HauntedHouse2FBookKeepGoingText
waitbutton
yesorno
iffalse .end
writetext HauntedHouse2FBookRead3Text
waitbutton
; fallthrough
.end
closetext
end
HauntedHouse2FBookPromptText:
text "It's a diary."
line "Read it?"
done
HauntedHouse2FBookKeepGoingText:
text "Keep reading?"
done
HauntedHouse2FBookRead1Text:
text "5th Mar 1977"
line "I've finally got"
cont "permission to"
cont "capture MEW."
para "It lives in a far"
line "off land. I mana-"
cont "ged to record a"
cont "tape and show the"
cont "boss."
para "She only cares"
line "about money, but"
cont "I just want to"
cont "pay for my girl…"
done
HauntedHouse2FBookRead2Text:
text "18th Aug 1977"
line "I caught a glimpse"
cont "of MEW! It was at"
cont "a famous harbour."
para "I just barely mis-"
line "sed it! I had the"
cont "gas and all!" ; Gassing it seems like a good way to show brutality.
para "Ugh!"
para "The boss is right."
line "She always said" ; Raise some eyebrows.
cont "I'm too kind."
done
HauntedHouse2FBookRead3Text:
text "20th Dec 1977"
line "This #MON is"
cont "harder to catch"
cont "than anticipated."
para "Were my previous"
line "encounters a mere"
cont "fluke?"
para "But! I came across"
line "some useful info…"
para "It seems to like"
line "MT. SILVER." ; Miyamoto is said to have gone to the Andes. We'll change this to Mt. Silver. It also indirectly references that one creepypasta.
para "…"
para "I'll make sure"
line "everyone knows."
cont "My daughter is"
cont "in safe hands."
para "…"
para "The rest of the"
line "pages are blank."
done
; Miyamoto recorded a tape for Madame Boss.
; This puts it in ad lib.
HauntedHouseMiyamotoRadio:
opentext
writetext HauntedHouseMiyamotoRadioPromptText
waitbutton
yesorno
iffalse .end
writetext HauntedHouseMiyamotoRadioText
waitbutton
cry EEVEE
waitsfx
cry MANKEY
waitsfx
cry BUTTERFREE
waitsfx
writetext HauntedHouseMiyamotoRadioTextCries
waitbutton
cry MEW
waitsfx
writetext HauntedHouseMiyamotoRadioTextWhatWasThat
waitbutton
.end
closetext
end
HauntedHouseMiyamotoRadioPromptText:
text "It's an old radio."
para "…there's a tape"
line "inside! Listen?"
done
HauntedHouseMiyamotoRadioText:
text "Crackle… crackle…"
para "This is MIYAMOTO"
line "speaking!"
para "We have embarked"
line "on FARAWAY ISLAND!" ; It's originally the South American jungle, but this was later made Faraway Island in Emerald. We'll make it this to prompt the player to look. This also makes Mr. Fuji's sign much more haunting.
para "Here, we will find"
line "and record the"
cont "phantom #MON,"
cont "MEW!"
para "…"
para "Country music is"
line "playing…" ; Music native to Guyana
para "…"
done
HauntedHouseMiyamotoRadioTextCries:
text "Now there's some"
line "cries…"
done
HauntedHouseMiyamotoRadioTextMyuu:
text "Myuu!"
done
HauntedHouseMiyamotoRadioTextWhatWasThat:
text "Wait, what was"
line "that?!"
para "It cuts off there…"
done
HauntedHouse2F_MapEvents:
db 0, 0 ; filler
def_warp_events
warp_event 4, 7, HAUNTED_HOUSE_FOYER, 5
warp_event 3, 7, HAUNTED_HOUSE_FOYER, 5
warp_event 18, 7, HAUNTED_HOUSE_FOYER, 6
warp_event 17, 7, HAUNTED_HOUSE_FOYER, 6
def_coord_events
def_bg_events
bg_event 4, 2, BGEVENT_READ, HauntedHouseMiyamotoDiary
bg_event 5, 2, BGEVENT_READ, HauntedHouseMiyamotoDiary ; need 2 as it covers to spaces. lots of things here do, it's a bit inefficient.
bg_event 3, 2, BGEVENT_READ, HauntedHouseMiyamotoRadio
bg_event 2, 2, BGEVENT_READ, HauntedHouse2FTVScript
bg_event 0, 5, BGEVENT_READ, HauntedHouse2FBed1Script
bg_event 0, 4, BGEVENT_READ, HauntedHouse2FBed1Script
bg_event 14, 5, BGEVENT_READ, HauntedHouse2FBed2Script
bg_event 14, 4, BGEVENT_READ, HauntedHouse2FBed2Script
def_object_events
object_event 20, 4, SPRITE_OWGENGAR, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_EMOTE, OBJECTTYPE_SCRIPT, 2, HauntedHouse2FGengarDoll, -1

BIN
maps/HauntedHouseFoyer.ablk Normal file

Binary file not shown.

View file

@ -0,0 +1,58 @@
; This is based on the unused Haunted House landmark from GSC's source code.
; Nothing is known about it except for the dummied-out name.
; Given the time frame, my idea is it may have been derived from the PC-98 Corpse Party game, which is time-appropriate and was very popular with game junkies.
; Given Game Freak ran game magazines and was basically run by nerds, I imagine they'd have heard of and/or played it. The Game Boy can easily replicate much of the graphics.
; It's not just Heavenly Host, though! It's very different! But expect some cool features a la it. Like, say...the loose boards!
; A lot of inspiration is also taken from the Old Chateau, given GSC has a deep connection with DP.
object_const_def
HauntedHouseFoyer_MapScripts:
def_scene_scripts
def_callbacks
HauntedHouseFoyerTornPosterScript:
jumptext HauntedHouseFoyerTornPosterText
HauntedHouseFoyerTornPosterText:
text "Comment to be"
line "written."
done
HauntedHouseFoyerIntactPosterScript:
jumptext HauntedHouseFoyerIntactPosterText
HauntedHouseFoyerIntactPosterText:
text "Comment to be"
line "written."
done
HauntedHouseFoyerOldBooks:
jumpstd OldBooksScript
HauntedHouseFoyerOldMagazines:
jumpstd OldMagazinesScript
HauntedHouseFoyer_MapEvents:
db 0, 0 ; filler
def_warp_events
warp_event 5, 9, ROUTE_45, 1
warp_event 6, 9, ROUTE_45, 2
warp_event 5, 4, HAUNTED_HOUSE_1F, 13
warp_event 6, 4, HAUNTED_HOUSE_1F, 14
warp_event 3, 1, HAUNTED_HOUSE_2F, 2
warp_event 8, 1, HAUNTED_HOUSE_2F, 4
def_coord_events
def_bg_events
bg_event 4, 1, BGEVENT_READ, HauntedHouseFoyerTornPosterScript
bg_event 7, 1, BGEVENT_READ, HauntedHouseFoyerIntactPosterScript
bg_event 11, 4, BGEVENT_READ, HauntedHouseFoyerOldBooks
bg_event 0, 4, BGEVENT_READ, HauntedHouseFoyerOldBooks
bg_event 1, 4, BGEVENT_READ, HauntedHouseFoyerOldMagazines
def_object_events

View file

@ -11,9 +11,6 @@ PokemonPagoda5FStatue:
PokemonPagoda5FSign:
jumptext PokemonPagoda5FSignText
PokemonPagoda5FButsudan:
jumptext PokemonPagoda5FButsudanText
PokemonPagoda5FStatueText:
text "It's a statue of"
line "ABRA."
@ -33,10 +30,6 @@ PokemonPagoda5FSignText: ; 女娲补天
cont "disaster."
done
PokemonPagoda5FButsudanText:
text "It's a butsudan!"
done
ElderRoenScript:
faceplayer
opentext
@ -61,7 +54,6 @@ PokemonPagoda5F_MapEvents:
def_bg_events
bg_event 4, 1, BGEVENT_READ, PokemonPagoda5FSign
bg_event 2, 0, BGEVENT_READ, PokemonPagoda5FStatue
bg_event 3, 0, BGEVENT_READ, PokemonPagoda5FButsudan
def_object_events
object_event 2, 3, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, ElderRoenScript, -1