mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-20 13:23:45 -07:00
feedback
This commit is contained in:
parent
003edd2c7a
commit
c89a5c7dba
5 changed files with 60 additions and 31 deletions
|
@ -66,7 +66,10 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
Entrance(RR_GANONS_CASTLE_FOREST_TRIAL_BEAMOS_ROOM, []{return Here(RR_GANONS_CASTLE_FOREST_TRIAL_WOLFOS_ROOM, []{return logic->CanUse(RG_FIRE_ARROWS) || (logic->CanUse(RG_DINS_FIRE) && (logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_HOOKSHOT)));});}),
|
Entrance(RR_GANONS_CASTLE_FOREST_TRIAL_BEAMOS_ROOM, []{return Here(RR_GANONS_CASTLE_FOREST_TRIAL_WOLFOS_ROOM, []{return logic->CanUse(RG_FIRE_ARROWS) || (logic->CanUse(RG_DINS_FIRE) && (logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_HOOKSHOT)));});}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_FOREST_TRIAL_BEAMOS_ROOM_START] = Region("Ganon's Castle Forest Trial Beamos Room Start", SCENE_INSIDE_GANONS_CASTLE, {}, {}, {
|
areaTable[RR_GANONS_CASTLE_FOREST_TRIAL_BEAMOS_ROOM_START] = Region("Ganon's Castle Forest Trial Beamos Room Start", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
|
//Events
|
||||||
|
EventAccess(&logic->ForestTrialSilverRupees, []{return true;}),
|
||||||
|
}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_FOREST_TRIAL_WOLFOS_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_FOREST_TRIAL_WOLFOS_ROOM, []{return true;}),
|
||||||
Entrance(RR_GANONS_CASTLE_FOREST_TRIAL_BEAMOS_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_FOREST_TRIAL_BEAMOS_ROOM, []{return true;}),
|
||||||
|
@ -74,10 +77,9 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_FOREST_TRIAL_BEAMOS_ROOM] = Region("Ganon's Castle Forest Trial Beamos Room", SCENE_INSIDE_GANONS_CASTLE, {}, {}, {
|
areaTable[RR_GANONS_CASTLE_FOREST_TRIAL_BEAMOS_ROOM] = Region("Ganon's Castle Forest Trial Beamos Room", SCENE_INSIDE_GANONS_CASTLE, {}, {}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_FOREST_TRIAL_BEAMOS_ROOM_START, []{return logic->CanUse(RG_LONGSHOT);}),
|
Entrance(RR_GANONS_CASTLE_FOREST_TRIAL_BEAMOS_ROOM_START, []{return logic->CanUse(RG_LONGSHOT) || logic->CanUse(RG_HOVER_BOOTS);}),
|
||||||
// reaching this as child would fit into an unintuitive jumps trick
|
// reaching this as child would fit into an unintuitive jumps trick
|
||||||
// also getting silver rupees as child without hookshot requires voiding to start, which won't work in reverse
|
Entrance(RR_GANONS_CASTLE_FOREST_TRIAL_FINAL_ROOM, []{return logic->IsAdult && logic->ForestTrialSilverRupees;}),
|
||||||
Entrance(RR_GANONS_CASTLE_FOREST_TRIAL_FINAL_ROOM, []{return logic->IsAdult;}),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_FOREST_TRIAL_FINAL_ROOM] = Region("Ganon's Castle Forest Trial Final Room", SCENE_INSIDE_GANONS_CASTLE, {
|
areaTable[RR_GANONS_CASTLE_FOREST_TRIAL_FINAL_ROOM] = Region("Ganon's Castle Forest Trial Final Room", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
|
@ -126,6 +128,7 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
areaTable[RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM] = Region("Ganon's Castle Water Trial Blue Fire Room", SCENE_INSIDE_GANONS_CASTLE, {
|
areaTable[RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM] = Region("Ganon's Castle Water Trial Blue Fire Room", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->BlueFireAccess, []{return logic->CanJumpslash() || logic->HasExplosives();}),
|
EventAccess(&logic->BlueFireAccess, []{return logic->CanJumpslash() || logic->HasExplosives();}),
|
||||||
|
EventAccess(&logic->WaterTrialBlueFireRoomCleared, []{return logic->CanKillEnemy(RE_FREEZARD);}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST, true),
|
LOCATION(RC_GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST, true),
|
||||||
|
@ -133,19 +136,30 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_MAIN, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_MAIN, []{return true;}),
|
||||||
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM, []{return Here(RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM, []{return logic->BlueFire() && logic->CanKillEnemy(RE_FREEZARD);});}),
|
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM_END, []{return Here(RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM, []{return logic->BlueFire();});}),
|
||||||
|
});
|
||||||
|
|
||||||
|
areaTable[RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM_END] = Region("Ganon's Castle Water Trial Blue Fire Room End", SCENE_INSIDE_GANONS_CASTLE, {}, {}, {
|
||||||
|
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM, []{return ctx->GetTrickOption(RT_VISIBLE_COLLISION) || Here(RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM_END, []{return logic->BlueFire();});}),
|
||||||
|
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM, []{return logic->WaterTrialBlueFireRoomCleared;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM] = Region("Ganon's Castle Water Trial Block Room", SCENE_INSIDE_GANONS_CASTLE, {
|
areaTable[RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM] = Region("Ganon's Castle Water Trial Block Room", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->FairyPot, []{return true;}),
|
EventAccess(&logic->FairyPot, []{return true;}),
|
||||||
|
EventAccess(&logic->WaterTrialRustedSwitch, []{return logic->IsAdult && (ctx->GetTrickOption(RT_RUSTED_SWITCHES) || logic->BlueFire()) && logic->CanUse(RG_MEGATON_HAMMER);}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GANONS_CASTLE_WATER_TRIAL_POT_3, logic->CanBreakPots() && logic->BlueFire() && logic->CanKillEnemy(RE_FREEZARD)),
|
LOCATION(RC_GANONS_CASTLE_WATER_TRIAL_POT_3, logic->CanBreakPots()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM, []{return true;}),
|
||||||
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_FINAL_ROOM, []{return logic->IsAdult && logic->BlueFire() && logic->CanUse(RG_MEGATON_HAMMER);}),
|
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM_END, []{return logic->IsAdult;}),
|
||||||
|
});
|
||||||
|
|
||||||
|
areaTable[RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM_END] = Region("Ganon's Castle Water Trial Block Room End", SCENE_INSIDE_GANONS_CASTLE, {}, {}, {
|
||||||
|
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM, []{return true;}),
|
||||||
|
Entrance(RR_GANONS_CASTLE_WATER_TRIAL_FINAL_ROOM, []{return logic->WaterTrialRustedSwitch;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_WATER_TRIAL_FINAL_ROOM] = Region("Ganon's Castle Water Trial Final Room", SCENE_INSIDE_GANONS_CASTLE, {
|
areaTable[RR_GANONS_CASTLE_WATER_TRIAL_FINAL_ROOM] = Region("Ganon's Castle Water Trial Final Room", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
|
@ -183,7 +197,7 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL_CHEST_PLATFORM] = Region("Ganon's Castle Shadow Chest Platform", SCENE_INSIDE_GANONS_CASTLE, {
|
areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL_CHEST_PLATFORM] = Region("Ganon's Castle Shadow Chest Platform", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
//Events
|
//Events
|
||||||
EventAccess(&logic->ShadowTrialRustedSwitch, []{return (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->CanUse(RG_MEGATON_HAMMER);}),
|
EventAccess(&logic->ShadowTrialRustedSwitch, []{return (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH) || logic->CanUse(RG_HOVER_BOOTS)) && logic->CanUse(RG_MEGATON_HAMMER);}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST, logic->ShadowTrialLowerSwitch),
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST, logic->ShadowTrialLowerSwitch),
|
||||||
|
@ -207,14 +221,12 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL_END] = Region("Ganon's Castle Shadow Trial End", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL_END] = Region("Ganon's Castle Shadow Trial End", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST, logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->HasFireSource())),
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_2, logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_BOOMERANG)),
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_1, logic->CanUse(RG_BOOMERANG)),
|
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_3, logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_BOOMERANG)),
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_2, logic->CanUse(RG_BOOMERANG)),
|
|
||||||
LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_HEART_3, logic->CanUse(RG_BOOMERANG)),
|
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_CHEST_PLATFORM, []{return (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)) || (logic->CanUse(RG_HOVER_BOOTS) && logic->HasFireSource()) || (logic->ShadowTrialLowerSwitch && logic->CanUse(RG_LONGSHOT));}),
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_CHEST_PLATFORM, []{return (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)) || (logic->CanUse(RG_HOVER_BOOTS) && logic->HasFireSource()) || (logic->ShadowTrialLowerSwitch && logic->CanUse(RG_LONGSHOT));}),
|
||||||
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_POTS_PLATFORM, []{return (logic->CanUse(RG_FIRE_ARROWS) && (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH))) || (logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || (logic->CanUse(RG_DINS_FIRE) && (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)))));}),
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_POTS_PLATFORM, []{return logic->CanUse(RG_LONGSHOT) && logic->CanUse(RG_DINS_FIRE) && (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH));}),
|
||||||
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_LOWER_SWITCH, []{return logic->CanUse(RG_HOVER_BOOTS);}),
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_LOWER_SWITCH, []{return logic->CanUse(RG_HOVER_BOOTS);}),
|
||||||
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_FINAL_ROOM, []{return logic->ShadowTrialRustedSwitch;}),
|
Entrance(RR_GANONS_CASTLE_SHADOW_TRIAL_FINAL_ROOM, []{return logic->ShadowTrialRustedSwitch;}),
|
||||||
});
|
});
|
||||||
|
@ -238,26 +250,33 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_MAIN, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_MAIN, []{return true;}),
|
||||||
|
// trick possible as child, but would not be novice trick
|
||||||
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEFORE_SWITCH, []{return Here(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM, []{return logic->CanUse(RG_HOOKSHOT) || (ctx->GetTrickOption(RT_GANON_SPIRIT_TRIAL_HOOKSHOT) && logic->IsAdult && logic->CanJumpslash());});}),
|
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEFORE_SWITCH, []{return Here(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM, []{return logic->CanUse(RG_HOOKSHOT) || (ctx->GetTrickOption(RT_GANON_SPIRIT_TRIAL_HOOKSHOT) && logic->IsAdult && logic->CanJumpslash());});}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_SPIRIT_TRIAL_BEFORE_SWITCH] = Region("Ganon's Castle Spirit Trial Before Switch", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
areaTable[RR_GANONS_CASTLE_SPIRIT_TRIAL_BEFORE_SWITCH] = Region("Ganon's Castle Spirit Trial Before Switch", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
|
//Events
|
||||||
|
EventAccess(&logic->SpiritTrialSwitch, []{return logic->CanUse(RG_BOMBCHU_5);}),
|
||||||
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST, logic->CanJumpslash() || logic->HasExplosives()),
|
LOCATION(RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST, logic->CanJumpslash() || logic->HasExplosives()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEAMOS_ROOM, []{return true;}),
|
||||||
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_AFTER_SWITCH, []{return logic->CanUse(RG_BOMBCHU_5);}),
|
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_AFTER_SWITCH, []{return logic->SpiritTrialSwitch;}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_SPIRIT_TRIAL_AFTER_SWITCH] = Region("Ganon's Castle Spirit Trial After Switch", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
areaTable[RR_GANONS_CASTLE_SPIRIT_TRIAL_AFTER_SWITCH] = Region("Ganon's Castle Spirit Trial After Switch", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
|
//Events
|
||||||
|
EventAccess(&logic->SpiritTrialSwitch, []{return logic->CanHitSwitch();}),
|
||||||
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST, logic->CanHitSwitch()),
|
LOCATION(RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST, logic->SpiritTrialSwitch),
|
||||||
LOCATION(RC_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST, ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)),
|
LOCATION(RC_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST, ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEFORE_SWITCH, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_BEFORE_SWITCH, []{return logic->CanHitSwitch();}),
|
||||||
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_FINAL_ROOM, []{return logic->CanUse(RG_FAIRY_BOW) && (logic->CanUse(RG_MIRROR_SHIELD) || (ctx->GetOption(RSK_SUNLIGHT_ARROWS) && logic->CanUse(RG_LIGHT_ARROWS)));}),
|
Entrance(RR_GANONS_CASTLE_SPIRIT_TRIAL_FINAL_ROOM, []{return Here(RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL_AFTER_SWITCH, []{return (logic->CanUse(RG_FAIRY_BOW) && logic->CanUse(RG_MIRROR_SHIELD));}) || (ctx->GetOption(RSK_SUNLIGHT_ARROWS) && logic->CanUse(RG_LIGHT_ARROWS));}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_SPIRIT_TRIAL_FINAL_ROOM] = Region("Ganon's Castle Spirit Trial Final Room", SCENE_INSIDE_GANONS_CASTLE, {
|
areaTable[RR_GANONS_CASTLE_SPIRIT_TRIAL_FINAL_ROOM] = Region("Ganon's Castle Spirit Trial Final Room", SCENE_INSIDE_GANONS_CASTLE, {
|
||||||
|
@ -275,13 +294,13 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_LIGHT_TRIAL_CHESTS_ROOM] = Region("Ganon's Castle Light Trial Chests Room", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
areaTable[RR_GANONS_CASTLE_LIGHT_TRIAL_CHESTS_ROOM] = Region("Ganon's Castle Light Trial Chests Room", SCENE_INSIDE_GANONS_CASTLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST, true),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST, ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH) || logic->TakeDamage()),
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST, true),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST, true),
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST, true),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST, ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH) || logic->TakeDamage()),
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST, true),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_RIGHT_CHEST, true),
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST, true),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_RIGHT_CHEST, ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH) || logic->TakeDamage()),
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST, true),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST, true),
|
||||||
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST, (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->CanKillEnemy(RE_BIG_SKULLTULA)),
|
LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST, (ctx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->CanKillEnemy(RE_BIG_SKULLTULA) && logic->CanKillEnemy(RE_KEESE)),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GANONS_CASTLE_MAIN, []{return true;}),
|
Entrance(RR_GANONS_CASTLE_MAIN, []{return true;}),
|
||||||
|
@ -692,7 +711,7 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
Entrance(RR_GANONS_TOWER_GANONDORF_LAIR, []{return Here(RR_GANONS_TOWER_BEFORE_GANONDORF_LAIR, []{return logic->HasItem(RG_GANONS_CASTLE_BOSS_KEY);});}),
|
Entrance(RR_GANONS_TOWER_GANONDORF_LAIR, []{return Here(RR_GANONS_TOWER_BEFORE_GANONDORF_LAIR, []{return logic->HasItem(RG_GANONS_CASTLE_BOSS_KEY);});}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_TOWER_GANONDORF_LAIR] = Region("Ganondorf's Lair", SCENE_GANONS_TOWER, {}, {
|
areaTable[RR_GANONS_TOWER_GANONDORF_LAIR] = Region("Ganondorf's Lair", SCENE_GANONDORF_BOSS, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GANONDORF_HINT, logic->HasBossSoul(RG_GANON_SOUL)),
|
LOCATION(RC_GANONDORF_HINT, logic->HasBossSoul(RG_GANON_SOUL)),
|
||||||
}, {
|
}, {
|
||||||
|
@ -700,7 +719,7 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
Entrance(RR_GANONS_CASTLE_ESCAPE, []{return logic->CanKillEnemy(RE_GANONDORF);}),
|
Entrance(RR_GANONS_CASTLE_ESCAPE, []{return logic->CanKillEnemy(RE_GANONDORF);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_ESCAPE] = Region("Ganon's Castle Escape", SCENE_GANONS_TOWER, {}, {
|
areaTable[RR_GANONS_CASTLE_ESCAPE] = Region("Ganon's Castle Escape", SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
//10 pots
|
//10 pots
|
||||||
//RANDOTODO hook potsanity pots up to escape.
|
//RANDOTODO hook potsanity pots up to escape.
|
||||||
|
@ -712,7 +731,7 @@ void RegionTable_Init_GanonsCastle() {
|
||||||
//Entrance(RR_GANONS_CASTLE_GANON_ARENA, []{return logic->CanKillEnemy(RE_STALFOS, ED_CLOSE, true, 2, true);}),
|
//Entrance(RR_GANONS_CASTLE_GANON_ARENA, []{return logic->CanKillEnemy(RE_STALFOS, ED_CLOSE, true, 2, true);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_GANONS_CASTLE_GANON_ARENA] = Region("Ganon's Arena", SCENE_GANONS_TOWER, {}, {
|
areaTable[RR_GANONS_CASTLE_GANON_ARENA] = Region("Ganon's Arena", SCENE_GANON_BOSS, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_GANON, logic->CanKillEnemy(RE_GANON)),
|
LOCATION(RC_GANON, logic->CanKillEnemy(RE_GANON)),
|
||||||
}, {});
|
}, {});
|
||||||
|
|
|
@ -2508,6 +2508,10 @@ void Logic::Reset(bool resetSaveContext /*= true*/) {
|
||||||
ForestCanTwistHallway = false;
|
ForestCanTwistHallway = false;
|
||||||
ForestClearBelowBowChest = false;
|
ForestClearBelowBowChest = false;
|
||||||
ForestOpenBossCorridor = false;
|
ForestOpenBossCorridor = false;
|
||||||
|
ForestTrialSilverRupees = false;
|
||||||
|
WaterTrialBlueFireRoomCleared = false;
|
||||||
|
WaterTrialRustedSwitch = false;
|
||||||
|
SpiritTrialSwitch = false;
|
||||||
ShadowTrialRustedSwitch = false;
|
ShadowTrialRustedSwitch = false;
|
||||||
ShadowTrialLowerSwitch = false;
|
ShadowTrialLowerSwitch = false;
|
||||||
MQShadowTrialFirstChest = false;
|
MQShadowTrialFirstChest = false;
|
||||||
|
|
|
@ -158,6 +158,10 @@ class Logic {
|
||||||
bool ForestCanTwistHallway = false;
|
bool ForestCanTwistHallway = false;
|
||||||
bool ForestClearBelowBowChest = false; // a better name that covers both versions would be nice
|
bool ForestClearBelowBowChest = false; // a better name that covers both versions would be nice
|
||||||
bool ForestOpenBossCorridor = false;
|
bool ForestOpenBossCorridor = false;
|
||||||
|
bool ForestTrialSilverRupees = false;
|
||||||
|
bool WaterTrialBlueFireRoomCleared = false;
|
||||||
|
bool WaterTrialRustedSwitch = false;
|
||||||
|
bool SpiritTrialSwitch = false;
|
||||||
bool ShadowTrialRustedSwitch = false;
|
bool ShadowTrialRustedSwitch = false;
|
||||||
bool ShadowTrialLowerSwitch = false;
|
bool ShadowTrialLowerSwitch = false;
|
||||||
bool MQShadowTrialFirstChest = false;
|
bool MQShadowTrialFirstChest = false;
|
||||||
|
|
|
@ -1042,7 +1042,9 @@ typedef enum {
|
||||||
RR_GANONS_CASTLE_FIRE_TRIAL_MAIN_ROOM_END,
|
RR_GANONS_CASTLE_FIRE_TRIAL_MAIN_ROOM_END,
|
||||||
RR_GANONS_CASTLE_FIRE_TRIAL_FINAL_ROOM,
|
RR_GANONS_CASTLE_FIRE_TRIAL_FINAL_ROOM,
|
||||||
RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM,
|
RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM,
|
||||||
|
RR_GANONS_CASTLE_WATER_TRIAL_BLUE_FIRE_ROOM_END,
|
||||||
RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM,
|
RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM,
|
||||||
|
RR_GANONS_CASTLE_WATER_TRIAL_BLOCK_ROOM_END,
|
||||||
RR_GANONS_CASTLE_WATER_TRIAL_FINAL_ROOM,
|
RR_GANONS_CASTLE_WATER_TRIAL_FINAL_ROOM,
|
||||||
RR_GANONS_CASTLE_SHADOW_TRIAL_START,
|
RR_GANONS_CASTLE_SHADOW_TRIAL_START,
|
||||||
RR_GANONS_CASTLE_SHADOW_TRIAL_POTS_PLATFORM,
|
RR_GANONS_CASTLE_SHADOW_TRIAL_POTS_PLATFORM,
|
||||||
|
@ -3773,7 +3775,6 @@ typedef enum {
|
||||||
RT_OCARINA_ITEMS_BOMB,
|
RT_OCARINA_ITEMS_BOMB,
|
||||||
RT_OCARINA_ITEMS_ESS,
|
RT_OCARINA_ITEMS_ESS,
|
||||||
RT_OCARINA_ITEMS_PUTAWAY,
|
RT_OCARINA_ITEMS_PUTAWAY,
|
||||||
RT_ONE_WAY_CLIPS,
|
|
||||||
RT_QUICKDRAW,
|
RT_QUICKDRAW,
|
||||||
RT_QUICK_PUTAWAY,
|
RT_QUICK_PUTAWAY,
|
||||||
RT_SEEMWALK,
|
RT_SEEMWALK,
|
||||||
|
|
|
@ -382,7 +382,8 @@ void Settings::CreateOptions() {
|
||||||
"Tunic. Applies to MQ also, and includes child access to first floor with dungeon shuffle.");
|
"Tunic. Applies to MQ also, and includes child access to first floor with dungeon shuffle.");
|
||||||
OPT_TRICK(RT_RUSTED_SWITCHES, RCQUEST_BOTH, RA_NONE, { Tricks::Tag::NOVICE },
|
OPT_TRICK(RT_RUSTED_SWITCHES, RCQUEST_BOTH, RA_NONE, { Tricks::Tag::NOVICE },
|
||||||
"Hammer Rusted Switches Through Walls",
|
"Hammer Rusted Switches Through Walls",
|
||||||
"Applies to:\n- Fire Temple Highest Goron Chest.\n- MQ Fire Temple Lizalfos Maze.\n- MQ Spirit Trial.");
|
"Applies to:\n- Fire Temple Highest Goron Chest.\n- Water Trial\n- MQ Fire Temple Lizalfos Maze.\n- MQ "
|
||||||
|
"Spirit Trial.");
|
||||||
OPT_TRICK(RT_FLAMING_CHESTS, RCQUEST_BOTH, RA_NONE, { Tricks::Tag::INTERMEDIATE }, "Flaming Chests",
|
OPT_TRICK(RT_FLAMING_CHESTS, RCQUEST_BOTH, RA_NONE, { Tricks::Tag::INTERMEDIATE }, "Flaming Chests",
|
||||||
"The chests encircled in flames in Gerudo Training Ground and in Spirit Temple can be opened by running "
|
"The chests encircled in flames in Gerudo Training Ground and in Spirit Temple can be opened by running "
|
||||||
"into the flames while Link is invincible after taking damage.");
|
"into the flames while Link is invincible after taking damage.");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue