mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-22 22:33:43 -07:00
deku, dc, fire feedback
This commit is contained in:
parent
21ac1c0e49
commit
e9694b7e40
6 changed files with 41 additions and 43 deletions
|
@ -212,7 +212,10 @@ void RegionTable_Init_DekuTree() {
|
|||
//is it possible to recoil from here to the ledge with a trick?
|
||||
});
|
||||
|
||||
areaTable[RR_DEKU_TREE_MQ_2F] = Region("Deku Tree MQ 2F", "Deku Tree", {RA_DEKU_TREE}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||
areaTable[RR_DEKU_TREE_MQ_2F] = Region("Deku Tree MQ 2F", "Deku Tree", {RA_DEKU_TREE}, NO_DAY_NIGHT_CYCLE, {
|
||||
//Events
|
||||
EventAccess(&logic->MQBurnedDeku2FWeb, []{return logic->HasFireSource();}),
|
||||
}, {
|
||||
//Locations
|
||||
LOCATION(RC_DEKU_TREE_MQ_MAP_CHEST, true),
|
||||
LOCATION(RC_DEKU_TREE_MQ_GS_LOBBY, logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA)),
|
||||
|
@ -225,7 +228,7 @@ void RegionTable_Init_DekuTree() {
|
|||
Entrance(RR_DEKU_TREE_MQ_1F, []{return true;}),
|
||||
//Will need canAvoid logic with enemy shuffle
|
||||
Entrance(RR_DEKU_TREE_MQ_3F, []{return true;}),
|
||||
Entrance(RR_DEKU_TREE_MQ_EYE_TARGET_ROOM, []{return Here(RR_DEKU_TREE_MQ_2F, []{return logic->HasFireSource() || (logic->MQDeku3FSwitch && (logic->CanUse(RG_STICKS) || logic->CanUse(RG_FAIRY_BOW)));});}),
|
||||
Entrance(RR_DEKU_TREE_MQ_EYE_TARGET_ROOM, []{return logic->MQBurnedDeku2FWeb;}),
|
||||
});
|
||||
|
||||
areaTable[RR_DEKU_TREE_MQ_3F] = Region("Deku Tree MQ 3F", "Deku Tree", {RA_DEKU_TREE}, NO_DAY_NIGHT_CYCLE, {
|
||||
|
@ -233,7 +236,7 @@ void RegionTable_Init_DekuTree() {
|
|||
EventAccess(&logic->DekuBabaSticks, []{return logic->CanGetDekuBabaSticks();}),
|
||||
EventAccess(&logic->DekuBabaNuts, []{return logic->CanGetDekuBabaNuts();}),
|
||||
EventAccess(&logic->BrokeDeku1FWeb, []{return true;}),
|
||||
EventAccess(&logic->MQDeku3FSwitch, []{return true;}),
|
||||
EventAccess(&logic->MQBurnedDeku2FWeb, []{return logic->CanUse(RG_STICKS) || logic->CanUse(RG_FAIRY_BOW);}),
|
||||
}, {}, {
|
||||
//Exits
|
||||
Entrance(RR_DEKU_TREE_MQ_2F, []{return true;}),
|
||||
|
|
|
@ -325,7 +325,6 @@ void RegionTable_Init_DodongosCavern() {
|
|||
//Exits
|
||||
Entrance(RR_DODONGOS_CAVERN_MQ_LOBBY, []{return 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_LOBBY, []{return true;}),
|
||||
Entrance(RR_DODONGOS_CAVERN_MQ_STAIRS_UPPER, []{return Here(RR_DODONGOS_CAVERN_MQ_STAIRS_LOWER, []{return logic->HasExplosives() || logic->CanUse(RG_DINS_FIRE) || (ctx->GetTrickOption(RT_DC_STAIRCASE) && logic->CanUse(RG_FAIRY_BOW));});}),
|
||||
Entrance(RR_DODONGOS_CAVERN_MQ_STAIRS_PAST_MUD_WALL, []{return Here(RR_DODONGOS_CAVERN_MQ_STAIRS_LOWER, []{return logic->CanBreakMudWalls();});}),
|
||||
});
|
||||
|
@ -499,14 +498,14 @@ void RegionTable_Init_DodongosCavern() {
|
|||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_2, logic->CanBreakPots()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_3, logic->CanBreakPots()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_4, logic->CanBreakPots()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_1, logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_2, logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_3, logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_4, logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_5, logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_6, logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_7, logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_8, logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_1, logic->HasItem(RG_GORONS_BRACELET) || logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_2, logic->HasItem(RG_GORONS_BRACELET) || logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_3, logic->HasItem(RG_GORONS_BRACELET) || logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_4, logic->HasItem(RG_GORONS_BRACELET) || logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_5, logic->HasItem(RG_GORONS_BRACELET) || logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_6, logic->HasItem(RG_GORONS_BRACELET) || logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_7, logic->HasItem(RG_GORONS_BRACELET) || logic->CanBreakCrates()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_POE_ROOM_CRATE_8, logic->HasItem(RG_GORONS_BRACELET) || logic->CanBreakCrates()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_DODONGOS_CAVERN_MQ_OUTSIDE_POES_ROOM, []{return Here(RR_DODONGOS_CAVERN_MQ_POES_ROOM, []{return logic->CanDetonateBombFlowers() || logic->HasItem(RG_GORONS_BRACELET);});}),
|
||||
|
|
|
@ -588,7 +588,7 @@ void RegionTable_Init_FireTemple() {
|
|||
Entrance(RR_FIRE_TEMPLE_MQ_UPPER_MAZE_BOX_CAGE, []{return Here(RR_FIRE_TEMPLE_MQ_UPPER_MAZE, []{return logic->CanJumpslash() || logic->HasExplosives();});}),
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT, []{return logic->HasExplosives();}),
|
||||
//Implies RR_FIRE_TEMPLE_MQ_LOWER_MAZE access
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB_LOWER, []{return logic->HasExplosives() && logic->CanUse(RG_MEGATON_HAMMER) && (logic->CanUse(RG_LONGSHOT) || (logic->CanUse(RG_HOOKSHOT) && logic->CanUse(RG_SONG_OF_TIME)));}),
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB, []{return logic->HasExplosives() && logic->CanUse(RG_MEGATON_HAMMER) && (logic->CanUse(RG_LONGSHOT) || (logic->CanUse(RG_HOOKSHOT) && logic->CanUse(RG_SONG_OF_TIME)));}),
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_HIGH_TORCH_ROOM, []{return logic->SmallKeys(RR_FIRE_TEMPLE, 3) && logic->CanUse(RG_GORON_TUNIC);}),
|
||||
});
|
||||
|
||||
|
@ -610,7 +610,15 @@ void RegionTable_Init_FireTemple() {
|
|||
areaTable[RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT] = Region("Fire Temple MQ Maze Shortcut", "Fire Temple", {RA_FIRE_TEMPLE}, NO_DAY_NIGHT_CYCLE, {
|
||||
//Events
|
||||
EventAccess(&logic->OpenedUpperFireShortcut, []{return logic->CanUse(RG_MEGATON_HAMMER);}),
|
||||
}, {}, {
|
||||
}, {
|
||||
//Locations
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_1, logic->CanBreakCrates()),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_2, logic->CanBreakCrates()),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_3, logic->CanBreakCrates()),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_4, logic->CanBreakCrates()),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_5, logic->CanBreakCrates()),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_6, logic->CanBreakCrates()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_UPPER_MAZE, []{return true;}),
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT_CAGE, []{return logic->OpenedUpperFireShortcut;}),
|
||||
|
@ -618,30 +626,19 @@ void RegionTable_Init_FireTemple() {
|
|||
|
||||
areaTable[RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT_CAGE] = Region("Fire Temple MQ Maze Shortcut Cage", "Fire Temple", {RA_FIRE_TEMPLE}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||
//Locations
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_COMPASS_CHEST, logic->OpenedUpperFireShortcut;),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_1, logic->OpenedUpperFireShortcut && logic->CanBreakCrates()),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_2, logic->OpenedUpperFireShortcut && logic->CanBreakCrates()),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_3, logic->OpenedUpperFireShortcut && logic->CanBreakCrates()),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_4, logic->OpenedUpperFireShortcut && logic->CanBreakCrates()),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_5, logic->OpenedUpperFireShortcut && logic->CanBreakCrates()),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_SHORTCUT_CRATE_6, logic->OpenedUpperFireShortcut && logic->CanBreakCrates()),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_COMPASS_CHEST, true),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT, []{return logic->OpenedUpperFireShortcut;}),
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_BIG_TORCH_ROOM, []{return logic->OpenedUpperFireShortcut;}),
|
||||
});
|
||||
|
||||
areaTable[RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB_LOWER] = Region("Fire Temple MQ Burning Block Climb Lower", "Fire Temple", {RA_FIRE_TEMPLE}, NO_DAY_NIGHT_CYCLE, {
|
||||
areaTable[RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB] = Region("Fire Temple MQ Burning Block Climb", "Fire Temple", {RA_FIRE_TEMPLE}, NO_DAY_NIGHT_CYCLE, {
|
||||
//Events
|
||||
//EventAccess(&WallFairy, []{return logic->CanUse(RG_HOOKSHOT);}),
|
||||
}, {}, {
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_UPPER_MAZE, []{return true;}),
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB_UPPER, []{return logic->CanUse(RG_HOOKSHOT);}),
|
||||
});
|
||||
|
||||
areaTable[RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB_UPPER] = Region("Fire Temple MQ Burning Block Climb Upper", "Fire Temple", {RA_FIRE_TEMPLE}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB_LOWER, []{return true;}),
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_BURNING_BLOCK, []{return true;}),
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_BURNING_BLOCK, []{return logic->CanUse(RG_HOOKSHOT);}),
|
||||
});
|
||||
|
||||
areaTable[RR_FIRE_TEMPLE_MQ_BURNING_BLOCK] = Region("Fire Temple MQ Burning Block", "Fire Temple", {RA_FIRE_TEMPLE}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||
|
@ -650,7 +647,7 @@ void RegionTable_Init_FireTemple() {
|
|||
LOCATION(RC_FIRE_TEMPLE_MQ_GS_SKULL_ON_FIRE, logic->CanUse(RG_HOOKSHOT) && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB_UPPER, []{return true;}),
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB, []{return true;}),
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_NARROW_PATH_ROOM, []{return logic->TakeDamage();}),
|
||||
});
|
||||
|
||||
|
@ -769,7 +766,7 @@ void RegionTable_Init_FireTemple() {
|
|||
LOCATION(RC_FIRE_TEMPLE_MQ_GS_FIRE_WALL_MAZE_SIDE_ROOM, logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_NORTH_FIRE_MAZE, []{return logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA);}),
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_NORTH_FIRE_MAZE, []{return true;}),
|
||||
});
|
||||
|
||||
//this area exists for the pots in case we void warp to the top of fire somehow, because there's no way to get back the way we came
|
||||
|
@ -823,7 +820,7 @@ void RegionTable_Init_FireTemple() {
|
|||
|
||||
areaTable[RR_FIRE_TEMPLE_MQ_ABOVE_FIRE_MAZE] = Region("Fire Temple MQ Above Fire Maze", "Fire Temple", {RA_FIRE_TEMPLE}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||
//Locations
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_GS_ABOVE_FIRE_MAZE, logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA)),
|
||||
LOCATION(RC_FIRE_TEMPLE_MQ_GS_ABOVE_FIRE_MAZE, logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_LONG_JUMPSLASH)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_FIRE_TEMPLE_MQ_FIRE_MAZE_PLATFORMS, []{return Here(RR_FIRE_TEMPLE_MQ_COLLAPSED_STAIRS, []{return logic->CanUse(RG_MEGATON_HAMMER);});}),
|
||||
|
|
|
@ -2440,7 +2440,7 @@ void Logic::Reset() {
|
|||
OpenedWestRoomMQBotw = false;
|
||||
OpenedMiddleHoleMQBotw = false;
|
||||
BrokeDeku1FWeb = false;
|
||||
MQDeku3FSwitch = false;
|
||||
MQBurnedDeku2FWeb = false;
|
||||
ClearedMQDekuSERoom = false;
|
||||
MQDekuWaterRoomTorches = false;
|
||||
PushedDekuBasementBlock = false;
|
||||
|
|
|
@ -146,7 +146,7 @@ class Logic {
|
|||
bool OpenedWestRoomMQBotw = false;
|
||||
bool OpenedMiddleHoleMQBotw = false;
|
||||
bool BrokeDeku1FWeb = false;
|
||||
bool MQDeku3FSwitch = false;
|
||||
bool MQBurnedDeku2FWeb = false;
|
||||
bool ClearedMQDekuSERoom = false;
|
||||
bool MQDekuWaterRoomTorches = false;
|
||||
bool PushedDekuBasementBlock = false;
|
||||
|
|
|
@ -784,8 +784,7 @@ typedef enum {
|
|||
RR_FIRE_TEMPLE_MQ_UPPER_MAZE_BOX_CAGE,
|
||||
RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT,
|
||||
RR_FIRE_TEMPLE_MQ_MAZE_SHORTCUT_CAGE,
|
||||
RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB_LOWER,
|
||||
RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB_UPPER,
|
||||
RR_FIRE_TEMPLE_MQ_BURNING_BLOCK_CLIMB,
|
||||
RR_FIRE_TEMPLE_MQ_BURNING_BLOCK,
|
||||
RR_FIRE_TEMPLE_MQ_NARROW_PATH_ROOM,
|
||||
RR_FIRE_TEMPLE_MQ_HIGH_TORCH_ROOM,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue