split up lava room, fix logic

This commit is contained in:
Demur Rumed 2025-07-10 04:56:14 +00:00
commit 87a7e9ddf6
2 changed files with 21 additions and 8 deletions

View file

@ -63,11 +63,13 @@ void RegionTable_Init_GerudoTrainingGround() {
LOCATION(RC_GERUDO_TRAINING_GROUND_FREESTANDING_KEY, true), LOCATION(RC_GERUDO_TRAINING_GROUND_FREESTANDING_KEY, true),
}, { }, {
//Exits //Exits
Entrance(RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM, []{return logic->CanUse(RG_HOOKSHOT);}),
Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return true;}), Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return true;}),
Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM_NORTH_LEDGE, []{return logic->CanUse(RG_HOOKSHOT);}),
Entrance(RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE, []{return logic->SmallKeys(RR_GERUDO_TRAINING_GROUND, 9);}),
}); });
areaTable[RR_GERUDO_TRAINING_GROUND_DINALFOS] = Region("Gerudo Training Dinalfos", SCENE_GERUDO_TRAINING_GROUND, {}, { areaTable[RR_GERUDO_TRAINING_GROUND_DINALFOS] = Region("Gerudo Training Dinalfos", SCENE_GERUDO_TRAINING_GROUND, {}, {
//Locations
LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST, logic->CanKillEnemy(RE_BEAMOS) && logic->CanKillEnemy(RE_DINOLFOS, ED_CLOSE, true, 2, true)), LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST, logic->CanKillEnemy(RE_BEAMOS) && logic->CanKillEnemy(RE_DINOLFOS, ED_CLOSE, true, 2, true)),
LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_SOUTH_HEART, true), LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_SOUTH_HEART, true),
LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_EAST_HEART, true), LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_EAST_HEART, true),
@ -77,19 +79,29 @@ void RegionTable_Init_GerudoTrainingGround() {
Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return Here(RR_GERUDO_TRAINING_GROUND_DINALFOS, []{return logic->CanKillEnemy(RE_BEAMOS) && logic->CanKillEnemy(RE_DINOLFOS, ED_CLOSE, true, 2, true);});}), Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return Here(RR_GERUDO_TRAINING_GROUND_DINALFOS, []{return logic->CanKillEnemy(RE_BEAMOS) && logic->CanKillEnemy(RE_DINOLFOS, ED_CLOSE, true, 2, true);});}),
}); });
areaTable[RR_GERUDO_TRAINING_GROUND_LAVA_ROOM] = Region("Gerudo Training Ground Lava Room", SCENE_GERUDO_TRAINING_GROUND, {}, { areaTable[RR_GERUDO_TRAINING_GROUND_LAVA_ROOM] = Region("Gerudo Training Ground Lava Room", SCENE_GERUDO_TRAINING_GROUND, {
}, { EventAccess(&logic->GTGPlatformSilverRupees, []{return logic->CanUse(RG_LONGSHOT) || (logic->CanUse(RG_HOOKSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_SONG_OF_TIME)));}),
}, {}, {
//Exits //Exits
Entrance(RR_GERUDO_TRAINING_GROUND_DINALFOS, []{return logic->CanUse(RG_HOOKSHOT);}), Entrance(RR_GERUDO_TRAINING_GROUND_DINALFOS, []{return true;}),
Entrance(RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT, []{return logic->CanUse(RG_SONG_OF_TIME) || logic->IsChild;}), Entrance(RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT, []{return logic->CanUse(RG_SONG_OF_TIME) || logic->IsChild;}),
Entrance(RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM, []{return logic->CanUse(RG_LONGSHOT) || (logic->CanUse(RG_HOVER_BOOTS) && logic->CanUse(RG_HOOKSHOT));}), // possible to make across with adult's rolling jump, only requiring hookshot
Entrance(RR_GERUDO_TRAINING_GROUND_UNDERWATER, []{return logic->CanUse(RG_HOOKSHOT);}), Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM_NORTH_LEDGE, []{return logic->CanUse(RG_LONGSHOT) || (logic->CanUse(RG_HOOKSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_SONG_OF_TIME)));}),
Entrance(RR_GERUDO_TRAINING_GROUND_UNDERWATER, []{return logic->GTGPlatformSilverRupees;}),
});
areaTable[RR_GERUDO_TRAINING_GROUND_LAVA_ROOM_NORTH_LEDGE] = Region("Gerudo Training Ground Lava Room", SCENE_GERUDO_TRAINING_GROUND, {}, {}, {
//Exits
// possible to make across with as adult's rolling jump, no hookshot necessary
Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return logic->CanUse(RG_HOOKSHOT);}),
Entrance(RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM, []{return true;}),
}); });
areaTable[RR_GERUDO_TRAINING_GROUND_UNDERWATER] = Region("Gerudo Training Dinalfos", SCENE_GERUDO_TRAINING_GROUND, {}, { areaTable[RR_GERUDO_TRAINING_GROUND_UNDERWATER] = Region("Gerudo Training Dinalfos", SCENE_GERUDO_TRAINING_GROUND, {}, {
//Locations //Locations
LOCATION(RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST, logic->CanUse(RG_SONG_OF_TIME) && logic->CanUse(RG_IRON_BOOTS) && (logic->CanUse(RG_HOOKSHOT) || logic->HasItem(RG_BRONZE_SCALE)) && logic->WaterTimer() >= 24), LOCATION(RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST, logic->CanUse(RG_SONG_OF_TIME) && logic->CanUse(RG_IRON_BOOTS) && (logic->CanUse(RG_HOOKSHOT) || logic->HasItem(RG_BRONZE_SCALE)) && logic->WaterTimer() >= 24),
}, { }, {
//Exits
Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return true;}), Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return true;}),
}); });

View file

@ -1007,6 +1007,7 @@ typedef enum {
RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT, RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT,
RR_GERUDO_TRAINING_GROUND_DINALFOS, RR_GERUDO_TRAINING_GROUND_DINALFOS,
RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, RR_GERUDO_TRAINING_GROUND_LAVA_ROOM,
RR_GERUDO_TRAINING_GROUND_LAVA_ROOM_NORTH_LEDGE,
RR_GERUDO_TRAINING_GROUND_UNDERWATER, RR_GERUDO_TRAINING_GROUND_UNDERWATER,
RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM, RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM,
RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER, RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER,