mirror of
https://github.com/bryanthaboi/gen1recomp
synced 2026-10-06 17:10:55 -04:00
72f2294d8d
CLOSES #2649, CLOSES #2650, CLOSES #2652, CLOSES #2653, CLOSES #2654, CLOSES #2657, CLOSES #2658, CLOSES #2659, CLOSES #2660, CLOSES #2662, CLOSES #2664, CLOSES #2665, CLOSES #2666, CLOSES #2669, CLOSES #2671, CLOSES #2672, CLOSES #2674, CLOSES #2676, CLOSES #2682, CLOSES #2683, CLOSES #2684, CLOSES #2685, CLOSES #2686, CLOSES #2687, CLOSES #2688, CLOSES #2689
54 lines
2.6 KiB
Lua
54 lines
2.6 KiB
Lua
-- scripts/Route23.asm:153
|
|
local M = {}
|
|
|
|
-- scripts/Route23.asm:195
|
|
local function badgeGuard(badge, passFlag)
|
|
return function(game, ow, npc, done)
|
|
ow:route23BadgeCheck(badge, passFlag, done)
|
|
end
|
|
end
|
|
|
|
-- Route23SetVictoryRoadBoulders (pokered scripts/Route23.asm:8): every entry
|
|
-- to Route 23 resets the Victory Road boulder puzzle behind you. The 2F/3F
|
|
-- switch events clear (so those barriers are closed again on the next floor
|
|
-- load) and the boulder that fell through 3F's hole goes back upstairs:
|
|
-- ShowObject TOGGLE_VICTORY_ROAD_3F_BOULDER / HideObject
|
|
-- TOGGLE_VICTORY_ROAD_2F_BOULDER, which are VICTORYROAD3F_BOULDER4 and
|
|
-- VICTORYROAD2F_BOULDER3 (data/maps/toggleable_objects.asm). 1F's event is
|
|
-- reset by the Indigo Plateau lobby and by Victory Road 2F, not here. This
|
|
-- is what makes the puzzle "completely reset" on a return trip (#258).
|
|
-- onEnter is the port's BIT_CUR_MAP_LOADED_2 equivalent: setMap runs it on
|
|
-- every map entry, connection crossings included, like EnterMap.
|
|
M.ROUTE_23 = {
|
|
onEnter = function(game, ow)
|
|
local f = game.save.flags
|
|
f.EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1 = nil
|
|
f.EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2 = nil
|
|
f.EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1 = nil
|
|
f.EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2 = nil
|
|
local Commands = require("src.script.Commands")
|
|
local ctx = { save = game.save, overworld = ow, game = game }
|
|
Commands.show_object(ctx, "VICTORY_ROAD_3F", "VICTORYROAD3F_BOULDER4")
|
|
Commands.hide_object(ctx, "VICTORY_ROAD_2F", "VICTORYROAD2F_BOULDER3")
|
|
end,
|
|
talk = {
|
|
-- Route23Guard1Text: EventFlagBit ..., EVENT_PASSED_EARTHBADGE_CHECK
|
|
-- -> wWhichBadge = EARTHBADGE
|
|
TEXT_ROUTE23_GUARD1 = badgeGuard("EARTHBADGE", "EVENT_PASSED_EARTHBADGE_CHECK"),
|
|
-- Route23Guard2Text: EVENT_PASSED_VOLCANOBADGE_CHECK
|
|
TEXT_ROUTE23_GUARD2 = badgeGuard("VOLCANOBADGE", "EVENT_PASSED_VOLCANOBADGE_CHECK"),
|
|
-- Route23Guard3Text: EVENT_PASSED_RAINBOWBADGE_CHECK
|
|
TEXT_ROUTE23_GUARD3 = badgeGuard("RAINBOWBADGE", "EVENT_PASSED_RAINBOWBADGE_CHECK"),
|
|
-- Route23Guard4Text: EVENT_PASSED_THUNDERBADGE_CHECK
|
|
TEXT_ROUTE23_GUARD4 = badgeGuard("THUNDERBADGE", "EVENT_PASSED_THUNDERBADGE_CHECK"),
|
|
-- Route23Guard5Text: EVENT_PASSED_CASCADEBADGE_CHECK
|
|
TEXT_ROUTE23_GUARD5 = badgeGuard("CASCADEBADGE", "EVENT_PASSED_CASCADEBADGE_CHECK"),
|
|
-- Route23Swimmer1Text: EVENT_PASSED_MARSHBADGE_CHECK
|
|
TEXT_ROUTE23_SWIMMER1 = badgeGuard("MARSHBADGE", "EVENT_PASSED_MARSHBADGE_CHECK"),
|
|
-- Route23Swimmer2Text: EVENT_PASSED_SOULBADGE_CHECK
|
|
TEXT_ROUTE23_SWIMMER2 = badgeGuard("SOULBADGE", "EVENT_PASSED_SOULBADGE_CHECK"),
|
|
},
|
|
}
|
|
|
|
return M
|