Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 27 additions & 12 deletions mm/2s2h/Rando/Logic/Regions/StoneTowerTemple.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,10 @@ static RegisterShipInitFunc initFunc([]() {
Regions[RR_STONE_TOWER_TEMPLE_SHALLOW_POOL_ROOM] = RandoRegion{ .name = "Shallow Pool Room", .sceneId = SCENE_INISIE_N,
.checks = {
// IF you get this check you must be Zora to leave, but you could in theory get this as Human too without the Zora mask...kinda iffy to me
CHECK(RC_STONE_TOWER_TEMPLE_CENTER_ACROSS_WATER_CHEST, CAN_BE_ZORA),
CHECK(RC_STONE_TOWER_TEMPLE_CENTER_SUN_BLOCK_CHEST, CAN_BE_ZORA && CAN_USE_MAGIC_ARROW(LIGHT)),
CHECK(RC_STONE_TOWER_TEMPLE_CENTER_ACROSS_WATER_CHEST, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)),
CHECK(RC_STONE_TOWER_TEMPLE_CENTER_SUN_BLOCK_CHEST, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM) && CAN_USE_MAGIC_ARROW(LIGHT)),
CHECK(RC_STONE_TOWER_TEMPLE_CENTER_FREESTANDING_RUPEE_01, CAN_USE_MAGIC_ARROW(LIGHT)),
CHECK(RC_STONE_TOWER_TEMPLE_CENTER_FREESTANDING_RUPEE_02, CAN_USE_MAGIC_ARROW(LIGHT) && CAN_BE_ZORA),
CHECK(RC_STONE_TOWER_TEMPLE_CENTER_FREESTANDING_RUPEE_02, CAN_USE_MAGIC_ARROW(LIGHT) && CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)),
CHECK(RC_STONE_TOWER_TEMPLE_CENTER_SMALL_CRATE_01, true),
CHECK(RC_STONE_TOWER_TEMPLE_CENTER_SMALL_CRATE_02, true),
CHECK(RC_STONE_TOWER_TEMPLE_CENTER_SMALL_CRATE_03, true),
Expand All @@ -90,7 +90,7 @@ static RegisterShipInitFunc initFunc([]() {
},
.connections = {
CONNECTION(RR_STONE_TOWER_TEMPLE_OUTSIDE_SWITCH_ROOM, KEY_COUNT(STONE_TOWER_TEMPLE) >= 1),
CONNECTION(RR_STONE_TOWER_TEMPLE_DEEP_POOL_ROOM, CAN_BE_ZORA)
CONNECTION(RR_STONE_TOWER_TEMPLE_DEEP_POOL_ROOM_UNDERWATER, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM))
},
};
Regions[RR_STONE_TOWER_TEMPLE_DEEP_POOL_ROOM] = RandoRegion{ .name = "Deep Pool Room", .sceneId = SCENE_INISIE_N,
Expand All @@ -99,19 +99,31 @@ static RegisterShipInitFunc initFunc([]() {
CHECK(RC_STONE_TOWER_TEMPLE_COMPASS_CHEST, (GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SHIELD) >= EQUIP_VALUE_SHIELD_MIRROR) || CAN_USE_MAGIC_ARROW(LIGHT)),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_ROOM_BRIDGE_POT_01, true),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_ROOM_BRIDGE_POT_02, true),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_ROOM_UNDERWATER_LOWER_POT_01, CAN_BE_ZORA),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_ROOM_UNDERWATER_LOWER_POT_02, CAN_BE_ZORA),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_ROOM_UNDERWATER_LOWER_POT_03, CAN_BE_ZORA),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_ROOM_UNDERWATER_UPPER_POT_01, CAN_BE_ZORA),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_ROOM_UNDERWATER_UPPER_POT_02, CAN_BE_ZORA),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_SUN_SWITCH_CHEST, CAN_BE_ZORA),
CHECK(RC_ENEMY_DROP_BIO_DEKU_BABA, CanKillEnemy(ACTOR_BOSS_05)),
},
.connections = {
CONNECTION(RR_STONE_TOWER_TEMPLE_SHALLOW_POOL_ROOM, CAN_BE_ZORA),
CONNECTION(RR_STONE_TOWER_TEMPLE_DEEP_POOL_ROOM_UNDERWATER, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)),
CONNECTION(RR_STONE_TOWER_TEMPLE_ENTRANCE, (GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SHIELD) >= EQUIP_VALUE_SHIELD_MIRROR) || CAN_USE_MAGIC_ARROW(LIGHT)),
CONNECTION(RR_STONE_TOWER_TEMPLE_MIRROR_PILLAR_ROOM, KEY_COUNT(STONE_TOWER_TEMPLE) >= 2),
},
.events = {
// Can only be shot at an angle from the water, and can only use arrows there if standing on ice platform
EVENT(RE_STONE_TOWER_TEMPLE_DEEP_POOL_SUN_SWITCH, CAN_USE_MAGIC_ARROW(LIGHT) && CAN_USE_MAGIC_ARROW(ICE)),
},
};
Regions[RR_STONE_TOWER_TEMPLE_DEEP_POOL_ROOM_UNDERWATER] = RandoRegion{ .name = "Deep Pool Room Underwater", .sceneId = SCENE_INISIE_N,
.checks = {
CHECK(RC_STONE_TOWER_TEMPLE_WATER_ROOM_UNDERWATER_LOWER_POT_01, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_ROOM_UNDERWATER_LOWER_POT_02, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_ROOM_UNDERWATER_LOWER_POT_03, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_ROOM_UNDERWATER_UPPER_POT_01, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_ROOM_UNDERWATER_UPPER_POT_02, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)),
CHECK(RC_STONE_TOWER_TEMPLE_WATER_SUN_SWITCH_CHEST, RANDO_EVENTS[RE_STONE_TOWER_TEMPLE_DEEP_POOL_SUN_SWITCH] && CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)),
CHECK(RC_ENEMY_DROP_BIO_DEKU_BABA, CanKillEnemy(ACTOR_BOSS_05)),
},
.connections = {
CONNECTION(RR_STONE_TOWER_TEMPLE_SHALLOW_POOL_ROOM, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)),
CONNECTION(RR_STONE_TOWER_TEMPLE_DEEP_POOL_ROOM, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)),
},
};
Regions[RR_STONE_TOWER_TEMPLE_MIRROR_PILLAR_ROOM] = RandoRegion{ .name = "Mirror Pillar Room", .sceneId = SCENE_INISIE_N,
.checks = {
Expand Down Expand Up @@ -246,6 +258,9 @@ static RegisterShipInitFunc initFunc([]() {
CONNECTION(RR_STONE_TOWER_TEMPLE_INVERTED_ENTRANCE, true),
CONNECTION(RR_STONE_TOWER_TEMPLE_INVERTED_LAVA_FLIP_ROOM, KEY_COUNT(STONE_TOWER_TEMPLE) >= 3 && CAN_BE_DEKU),
},
.events = {
EVENT(RE_STONE_TOWER_TEMPLE_DEEP_POOL_SUN_SWITCH, CAN_USE_MAGIC_ARROW(LIGHT)),
},
};
Regions[RR_STONE_TOWER_TEMPLE_INVERTED_LAVA_FLIP_ROOM] = RandoRegion{ .name = "Flipped Lava Room", .sceneId = SCENE_INISIE_R,
.connections = {
Expand Down
2 changes: 2 additions & 0 deletions mm/2s2h/Rando/Types.h
Original file line number Diff line number Diff line change
Expand Up @@ -2858,6 +2858,7 @@ typedef enum {
RR_STONE_TOWER_TEMPLE_BOSS_ROOM,
RR_STONE_TOWER_TEMPLE_BRIDGE,
RR_STONE_TOWER_TEMPLE_DEEP_POOL_ROOM,
RR_STONE_TOWER_TEMPLE_DEEP_POOL_ROOM_UNDERWATER,
RR_STONE_TOWER_TEMPLE_ENTRANCE,
RR_STONE_TOWER_TEMPLE_GARO_MASTER_ROOM,
RR_STONE_TOWER_TEMPLE_INVERTED,
Expand Down Expand Up @@ -3176,6 +3177,7 @@ typedef enum {
RE_GREAT_BAY_RED_SWITCH_1,
RE_GREAT_BAY_RED_SWITCH_2,
RE_STONE_TOWER_STRAY_FAIRY_INVERTED_ENTRANCE,
RE_STONE_TOWER_TEMPLE_DEEP_POOL_SUN_SWITCH,
RE_STONE_TOWER_TEMPLE_ENTRANCE_SWITCH_CHEST,
RE_TERMINA_FIELD_SCRUB_ENTERED_GROTTO,
RE_ACCESS_FROG_CYAN,
Expand Down
Loading