Fix: MQ logic for Ganons Castle main area (#3275)

* fix mq logic for ganons castle main area

* update logic to use logic helpers

* add hammer check

* grouping
This commit is contained in:
Adam Bird 2023-11-04 18:08:09 -04:00 committed by GitHub
parent 02afac704e
commit 6d8dfe7933
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 2 deletions

View File

@ -1542,6 +1542,7 @@ typedef enum {
GERUDO_TRAINING_GROUNDS_MQ_CENTRAL_MAZE_RIGHT,
GANONS_CASTLE_LOBBY,
GANONS_CASTLE_MAIN,
GANONS_CASTLE_DEKU_SCRUBS,
GANONS_CASTLE_FOREST_TRIAL,
GANONS_CASTLE_FIRE_TRIAL,
@ -1552,6 +1553,7 @@ typedef enum {
GANONS_CASTLE_TOWER,
GANONS_CASTLE_MQ_LOBBY,
GANONS_CASTLE_MQ_MAIN,
GANONS_CASTLE_MQ_DEKU_SCRUBS,
GANONS_CASTLE_MQ_FOREST_TRIAL,
GANONS_CASTLE_MQ_FIRE_TRIAL,

View File

@ -24,7 +24,13 @@ void AreaTable_Init_GanonsCastle() {
if (Dungeon::GanonsCastle.IsVanilla()) {
areaTable[GANONS_CASTLE_LOBBY] = Area("Ganon's Castle Lobby", "Ganon's Castle", GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, {}, {}, {
//Exits
Entrance(GANONS_CASTLE_ENTRYWAY, {[]{return true;}}),
Entrance(GANONS_CASTLE_ENTRYWAY, {[]{return true;}}),
Entrance(GANONS_CASTLE_MAIN, {[]{return true;}}),
});
areaTable[GANONS_CASTLE_MAIN] = Area("Ganon's Castle Main", "Ganon's Castle", GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, {}, {}, {
//Exits
Entrance(GANONS_CASTLE_LOBBY, {[]{return true;}}),
Entrance(GANONS_CASTLE_FOREST_TRIAL, {[]{return true;}}),
Entrance(GANONS_CASTLE_FIRE_TRIAL, {[]{return true;}}),
Entrance(GANONS_CASTLE_WATER_TRIAL, {[]{return true;}}),
@ -123,7 +129,13 @@ void AreaTable_Init_GanonsCastle() {
if (Dungeon::GanonsCastle.IsMQ()) {
areaTable[GANONS_CASTLE_MQ_LOBBY] = Area("Ganon's Castle MQ Lobby", "Ganons Castle", GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, {}, {}, {
//Exits
Entrance(GANONS_CASTLE_ENTRYWAY, {[]{return (CanUse(MASTER_SWORD) || (HasExplosives || ((Nuts || Boomerang) && (Sticks || KokiriSword))));}}),
Entrance(GANONS_CASTLE_ENTRYWAY, {[]{return true;}}),
Entrance(GANONS_CASTLE_MQ_MAIN, {[]{return (CanUse(MASTER_SWORD) || CanUse(BIGGORON_SWORD) || CanUse(MEGATON_HAMMER)) || ((HasExplosives || Nuts || CanUse(BOOMERANG)) && CanJumpslash);}}),
});
areaTable[GANONS_CASTLE_MQ_MAIN] = Area("Ganon's Castle MQ Main", "Ganons Castle", GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, {}, {}, {
//Exits
Entrance(GANONS_CASTLE_MQ_LOBBY, {[]{return true;}}),
Entrance(GANONS_CASTLE_MQ_FOREST_TRIAL, {[]{return true;}}),
Entrance(GANONS_CASTLE_MQ_FIRE_TRIAL, {[]{return true;}}),
Entrance(GANONS_CASTLE_MQ_WATER_TRIAL, {[]{return true;}}),