DC MQ: RT_VISIBLE_COLLISION to reach above stairs with hookshot (#6840)

Also RT_DC_ALCOVE_GS

MQ crate is like RT_DC_VINES_GS but without precision
This commit is contained in:
Philip Dubé
2026-07-03 22:21:42 +00:00
committed by GitHub
parent ed4868f62e
commit c76d175526
4 changed files with 11 additions and 2 deletions
+4
View File
@@ -482,6 +482,10 @@
"name": "Deku Tree MQ Roll Under the Spiked Log",
"description": "You can get past the spiked log by rolling to briefly shrink your hitbox. As adult, the timing is a bit more precise."
},
"dc_alcove_gs": {
"name": "Dodongo's Cavern Alcove GS from Below with Longshot",
"description": "The floor blocking Skulltula from below are one-sided collision. You can use the Longshot to get it from below with a precise angle, bypassing the need to lower the staircase."
},
"dc_scarecrow_gs": {
"name": "Dodongo's Cavern Scarecrow GS with Armos Statue",
"description": "You can jump off an Armos Statue to reach the alcove with the Gold Skulltula. It takes quite a long time to pull the statue the entire way. The jump to the alcove can be a bit picky when done as child."
@@ -123,6 +123,7 @@ void RegionTable_Init_DodongosCavern() {
areaTable[RR_DODONGOS_CAVERN_STAIRS_LOWER] = Region("Dodongos Cavern Stairs Lower", SCENE_DODONGOS_CAVERN, {}, {
//Locations
LOCATION(RC_DODONGOS_CAVERN_GS_ALCOVE_ABOVE_STAIRS, ctx->GetTrickOption(RT_DC_ALCOVE_GS) && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_LONGSHOT)),
LOCATION(RC_DODONGOS_CAVERN_GS_VINES_ABOVE_STAIRS, ctx->GetTrickOption(RT_DC_VINES_GS) && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_LONGSHOT)),
}, {
//Exits
@@ -133,6 +134,7 @@ void RegionTable_Init_DodongosCavern() {
areaTable[RR_DODONGOS_CAVERN_STAIRS_UPPER] = Region("Dodongos Cavern Stairs Upper", SCENE_DODONGOS_CAVERN, {}, {
//Locations
//Jump from vines can reach stairs without climb
LOCATION(RC_DODONGOS_CAVERN_GS_ALCOVE_ABOVE_STAIRS, logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, logic->Get(LOGIC_DC_LIFT_PLATFORM) ? ED_BOOMERANG : ED_LONGSHOT)),
LOCATION(RC_DODONGOS_CAVERN_GS_VINES_ABOVE_STAIRS, (logic->HasItem(RG_CLIMB) && logic->HasItem(RG_POWER_BRACELET)) || logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_BOOMERANG)),
LOCATION(RC_DODONGOS_CAVERN_STAIRCASE_POT_1, logic->CanBreakPots()),
@@ -358,7 +360,7 @@ void RegionTable_Init_DodongosCavern() {
//Exits
ENTRANCE(RR_DODONGOS_CAVERN_MQ_LOBBY, true),
//This is possible with sticks and shield, igniting a first flower by "touch" then very quickly crouch stabbing in a way that cuts the corner to light the 3rd bomb on the other side, but that's a trick
ENTRANCE(RR_DODONGOS_CAVERN_MQ_STAIRS_UPPER, AnyAgeTime([]{return logic->HasExplosives() || logic->CanUse(RG_DINS_FIRE) || (ctx->GetTrickOption(RT_DC_STAIRS_WITH_BOW) && logic->CanUse(RG_FAIRY_BOW));})),
ENTRANCE(RR_DODONGOS_CAVERN_MQ_STAIRS_UPPER, AnyAgeTime([]{return logic->HasExplosives() || logic->CanUse(RG_DINS_FIRE) || (ctx->GetTrickOption(RT_DC_STAIRS_WITH_BOW) && logic->CanUse(RG_FAIRY_BOW));}) || (ctx->GetTrickOption(RT_VISIBLE_COLLISION) && logic->CanUse(RG_HOOKSHOT))),
ENTRANCE(RR_DODONGOS_CAVERN_MQ_STAIRS_PAST_MUD_WALL, AnyAgeTime([]{return logic->HasItem(RG_GORONS_BRACELET) || logic->CanBreakMudWalls();})),
});
@@ -379,7 +381,8 @@ void RegionTable_Init_DodongosCavern() {
EVENT_ACCESS(LOGIC_DC_MQ_STAIRS_SILVER_RUPEES, logic->HasItem(RG_CLIMB)),
}, {
//Locations
LOCATION(RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE, logic->CanStunDeku() && logic->HasItem(RG_SPEAK_DEKU) && GetCheckPrice() <= GetWalletCapacity()),
//Jump from vines can reach stairs without climb
LOCATION(RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE, logic->CanStunDeku() && logic->HasItem(RG_SPEAK_DEKU) && GetCheckPrice() <= GetWalletCapacity()),
LOCATION(RC_DODONGOS_CAVERN_MQ_STAIRCASE_UPPER_CRATE_1, logic->CanBreakCrates()),
LOCATION(RC_DODONGOS_CAVERN_MQ_STAIRCASE_UPPER_CRATE_2, logic->CanBreakCrates()),
LOCATION(RC_DODONGOS_CAVERN_MQ_STAIRCASE_UPPER_CRATE_3, logic->CanBreakCrates()),
@@ -97,6 +97,7 @@ RANDO_ENUM_ITEM(RT_DEKU_MQ_COMPASS_GS)
RANDO_ENUM_ITEM(RT_DEKU_MQ_LOG)
RANDO_ENUM_ITEM(RT_DC_SCARECROW_GS)
RANDO_ENUM_ITEM(RT_DC_VINES_GS)
RANDO_ENUM_ITEM(RT_DC_ALCOVE_GS)
RANDO_ENUM_ITEM(RT_DC_STAIRS_WITH_BOW)
RANDO_ENUM_ITEM(RT_DC_SLINGSHOT_SKIP)
RANDO_ENUM_ITEM(RT_DC_SCRUB_ROOM)
@@ -1630,6 +1630,7 @@ void Settings::CreateOptions() {
OPT_TRICK(RT_DEKU_MQ_LOG, RCQUEST_MQ, RA_DEKU_TREE, { Tricks::Tag::NOVICE }, "DTLogRol");
OPT_TRICK(RT_DC_SCARECROW_GS, RCQUEST_VANILLA, RA_DODONGOS_CAVERN, { Tricks::Tag::NOVICE }, "DCArmos");
OPT_TRICK(RT_DC_VINES_GS, RCQUEST_VANILLA, RA_DODONGOS_CAVERN, { Tricks::Tag::NOVICE }, "DCGSLS");
OPT_TRICK(RT_DC_ALCOVE_GS, RCQUEST_VANILLA, RA_DODONGOS_CAVERN, { Tricks::Tag::INTERMEDIATE }, "DCAGSLS");
OPT_TRICK(RT_DC_STAIRS_WITH_BOW, RCQUEST_VANILLA, RA_DODONGOS_CAVERN, { Tricks::Tag::NOVICE }, "DCStaBow");
OPT_TRICK(RT_DC_SLINGSHOT_SKIP, RCQUEST_VANILLA, RA_DODONGOS_CAVERN, { Tricks::Tag::EXPERT }, "DCSliSkp");
OPT_TRICK(RT_DC_SCRUB_ROOM, RCQUEST_VANILLA, RA_DODONGOS_CAVERN, { Tricks::Tag::NOVICE }, "DCSrbStr");