diff options
Diffstat (limited to 'mm/2s2h/Rando/Logic/Regions')
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/Central.cpp | 18 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/East.cpp | 14 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/MilkRoad.cpp | 16 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/PiratesFortress.cpp | 9 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/SpiderHouses.cpp | 31 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/TerminaField.cpp | 36 |
6 files changed, 119 insertions, 5 deletions
diff --git a/mm/2s2h/Rando/Logic/Regions/Central.cpp b/mm/2s2h/Rando/Logic/Regions/Central.cpp index 96373840a..c4b811850 100644 --- a/mm/2s2h/Rando/Logic/Regions/Central.cpp +++ b/mm/2s2h/Rando/Logic/Regions/Central.cpp @@ -95,6 +95,15 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_CLOCK_TOWN_EAST_UPPER_CHEST, true), CHECK(RC_CLOCK_TOWN_BOMBERS_NOTEBOOK, RANDO_EVENTS[RE_BOMBER_CODE]), CHECK(RC_CLOCK_TOWN_POSTBOX, HAS_ITEM(ITEM_MASK_POSTMAN)), + CHECK(RC_CLOCK_TOWN_EAST_WONDER_ITEM_01, CAN_USE_SWORD || CAN_USE_PROJECTILE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_CLOCK_TOWN_EAST_WONDER_ITEM_02, CAN_USE_SWORD || CAN_USE_PROJECTILE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_CLOCK_TOWN_EAST_WONDER_ITEM_03, CAN_USE_SWORD || CAN_USE_PROJECTILE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_CLOCK_TOWN_EAST_WONDER_ITEM_04, CAN_USE_SWORD || CAN_USE_PROJECTILE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_CLOCK_TOWN_EAST_WONDER_ITEM_05, CAN_USE_SWORD || CAN_USE_PROJECTILE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_CLOCK_TOWN_EAST_WONDER_ITEM_06, CAN_USE_SWORD || CAN_USE_PROJECTILE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_CLOCK_TOWN_EAST_WONDER_ITEM_07, true), + CHECK(RC_CLOCK_TOWN_EAST_WONDER_ITEM_08, true), + CHECK(RC_CLOCK_TOWN_EAST_WONDER_ITEM_09, true), }, .exits = { // TO FROM EXIT(ENTRANCE(TERMINA_FIELD, 7), ENTRANCE(EAST_CLOCK_TOWN, 0), true), @@ -201,6 +210,9 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_CLOCK_TOWN_SOUTH_CHEST_UPPER, ((CAN_BE_DEKU && Flags_GetRandoInf(RANDO_INF_OBTAINED_MOONS_TEAR)) || HAS_ITEM(ITEM_HOOKSHOT)) && FINAL_DAY()), CHECK(RC_CLOCK_TOWN_SOUTH_CHEST_LOWER, (CAN_BE_DEKU && Flags_GetRandoInf(RANDO_INF_OBTAINED_MOONS_TEAR)) || HAS_ITEM(ITEM_HOOKSHOT)), CHECK(RC_CLOCK_TOWN_SOUTH_OWL_STATUE, CAN_USE_SWORD), + CHECK(RC_CLOCK_TOWN_SOUTH_WONDER_ITEM_01, CAN_USE_PROJECTILE), + CHECK(RC_CLOCK_TOWN_SOUTH_WONDER_ITEM_02, CAN_USE_PROJECTILE), + CHECK(RC_CLOCK_TOWN_SOUTH_WONDER_ITEM_03, CAN_USE_PROJECTILE), }, .exits = { // TO FROM EXIT(ENTRANCE(CLOCK_TOWER_INTERIOR, 1), ENTRANCE(SOUTH_CLOCK_TOWN, 0), true), @@ -298,6 +310,9 @@ static RegisterShipInitFunc initFunc([]() { Flags_GetRandoInf(RANDO_INF_OBTAINED_LETTER_TO_MAMA) || Flags_GetRandoInf(RANDO_INF_OBTAINED_LETTER_TO_KAFEI)) && MIDNIGHT() ), + CHECK(RC_STOCK_POT_INN_WONDER_ITEM_01, CAN_BE_ZORA && HAS_MAGIC), + CHECK(RC_STOCK_POT_INN_WONDER_ITEM_02, CAN_BE_ZORA && HAS_MAGIC), + CHECK(RC_STOCK_POT_INN_WONDER_ITEM_03, CAN_BE_ZORA && HAS_MAGIC), }, .exits = { // TO FROM EXIT(ENTRANCE(EAST_CLOCK_TOWN, 9), ENTRANCE(STOCK_POT_INN, 0), true), // From ground floor @@ -382,6 +397,9 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_SWORDSMAN_SCHOOL_POT_03, CAN_USE_HUMAN_SWORD && AFTER(TIME_NIGHT3_AM_12_00)), CHECK(RC_SWORDSMAN_SCHOOL_POT_04, CAN_USE_HUMAN_SWORD && AFTER(TIME_NIGHT3_AM_12_00)), CHECK(RC_SWORDSMAN_SCHOOL_POT_05, CAN_USE_HUMAN_SWORD && AFTER(TIME_NIGHT3_AM_12_00)), + CHECK(RC_SWORDSMAN_SCHOOL_WONDER_ITEM, (CAN_BE_GORON || CAN_BE_ZORA || CAN_BE_DEKU || CAN_USE_SWORD || + HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_HOOKSHOT) || HAS_ITEM(ITEM_BOW)) && + BEFORE(TIME_NIGHT3_PM_11_00)), }, .exits = { // TO FROM EXIT(ENTRANCE(WEST_CLOCK_TOWN, 3), ENTRANCE(SWORDMANS_SCHOOL, 0), true), diff --git a/mm/2s2h/Rando/Logic/Regions/East.cpp b/mm/2s2h/Rando/Logic/Regions/East.cpp index c0d60438a..541f65420 100644 --- a/mm/2s2h/Rando/Logic/Regions/East.cpp +++ b/mm/2s2h/Rando/Logic/Regions/East.cpp @@ -228,6 +228,16 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_IKANA_GRAVEYARD_GRASS_07, true), CHECK(RC_IKANA_GRAVEYARD_GRASS_08, true), CHECK(RC_IKANA_GRAVEYARD_GRASS_09, true), + // Rocks can be picked up and thrown at these: + CHECK(RC_IKANA_GRAVEYARD_WONDER_ITEM_01, true), + CHECK(RC_IKANA_GRAVEYARD_WONDER_ITEM_02, true), + CHECK(RC_IKANA_GRAVEYARD_WONDER_ITEM_03, true), + CHECK(RC_IKANA_GRAVEYARD_WONDER_ITEM_04, true), + CHECK(RC_IKANA_GRAVEYARD_WONDER_ITEM_05, true), + CHECK(RC_IKANA_GRAVEYARD_WONDER_ITEM_06, true), + CHECK(RC_IKANA_GRAVEYARD_WONDER_ITEM_07, true), + CHECK(RC_IKANA_GRAVEYARD_WONDER_ITEM_08, true), + CHECK(RC_IKANA_GRAVEYARD_WONDER_ITEM_09, true), CHECK(RC_ENEMY_DROP_STALCHILD, CanKillEnemy(ACTOR_EN_SKB) && IS_NIGHT()), // Night only CHECK(RC_ENEMY_DROP_BAD_BAT, CanKillEnemy(ACTOR_EN_BAT) && IS_DAY()), // Day only }, @@ -248,6 +258,10 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_IKANA_GRAVEYARD_UPPER] = RandoRegion{ .name = "Upper", .sceneId = SCENE_BOTI, .checks = { CHECK(RC_IKANA_GRAVEYARD_CAPTAIN_MASK, CanKillEnemy(ACTOR_EN_SKB) && CanKillEnemy(ACTOR_EN_BSB)), + // Rocks can be picked up and thrown at this: + CHECK(RC_IKANA_GRAVEYARD_WONDER_ITEM_10, true), + CHECK(RC_IKANA_GRAVEYARD_WONDER_ITEM_11, true), + CHECK(RC_IKANA_GRAVEYARD_WONDER_ITEM_12, true), CHECK(RC_ENEMY_DROP_STALCHILD, CanKillEnemy(ACTOR_EN_SKB)), CHECK(RC_ENEMY_DROP_BAD_BAT, CanKillEnemy(ACTOR_EN_BAT) && IS_DAY()), // Day only CHECK(RC_ENEMY_DROP_CAPTAIN_KEETA, CanKillEnemy(ACTOR_EN_SKB) && CanKillEnemy(ACTOR_EN_BSB)), diff --git a/mm/2s2h/Rando/Logic/Regions/MilkRoad.cpp b/mm/2s2h/Rando/Logic/Regions/MilkRoad.cpp index 779c6ad73..75b7ae574 100644 --- a/mm/2s2h/Rando/Logic/Regions/MilkRoad.cpp +++ b/mm/2s2h/Rando/Logic/Regions/MilkRoad.cpp @@ -23,6 +23,12 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_CUCCO_SHACK_LARGE_CRATE_02, true), CHECK(RC_CUCCO_SHACK_LARGE_CRATE_03, true), CHECK(RC_CUCCO_SHACK_TREE, true), + CHECK(RC_CUCCO_SHACK_WONDER_ITEM_01, CAN_USE_SWORD || CAN_BE_GORON || CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_CUCCO_SHACK_WONDER_ITEM_02, CAN_USE_SWORD || CAN_BE_GORON || CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_CUCCO_SHACK_WONDER_ITEM_03, CAN_USE_SWORD || CAN_BE_GORON || CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_CUCCO_SHACK_WONDER_ITEM_04, CAN_USE_SWORD || CAN_BE_GORON || CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_CUCCO_SHACK_WONDER_ITEM_05, CAN_USE_SWORD || CAN_BE_GORON || CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_CUCCO_SHACK_WONDER_ITEM_06, CAN_USE_SWORD || CAN_BE_GORON || CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), }, .exits = { // TO FROM EXIT(ENTRANCE(ROMANI_RANCH, 4), ENTRANCE(CUCCO_SHACK, 0), true), @@ -147,7 +153,9 @@ static RegisterShipInitFunc initFunc([]() { .checks = { CHECK(RC_ROMANI_RANCH_BARN_COW_LEFT, CAN_PLAY_SONG(EPONA) && BREAK_BOULDER_BEFORE_OR_BEAT_ALIENS_NIGHT), CHECK(RC_ROMANI_RANCH_BARN_COW_MIDDLE, CAN_PLAY_SONG(EPONA) && BREAK_BOULDER_BEFORE_OR_BEAT_ALIENS_NIGHT), - CHECK(RC_ROMANI_RANCH_BARN_COW_RIGHT, CAN_PLAY_SONG(EPONA) && BREAK_BOULDER_BEFORE_OR_BEAT_ALIENS_NIGHT) + CHECK(RC_ROMANI_RANCH_BARN_COW_RIGHT, CAN_PLAY_SONG(EPONA) && BREAK_BOULDER_BEFORE_OR_BEAT_ALIENS_NIGHT), + CHECK(RC_ROMANI_RANCH_BARN_WONDER_ITEM_01, true), + CHECK(RC_ROMANI_RANCH_BARN_WONDER_ITEM_02, true), }, .exits = { // TO FROM EXIT(ENTRANCE(ROMANI_RANCH, 2), ENTRANCE(RANCH_HOUSE, 0), true), @@ -242,6 +250,12 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_ROMANI_RANCH_TREE_05, true), CHECK(RC_ROMANI_RANCH_TREE_06, true), CHECK(RC_ROMANI_RANCH_TREE_07, true), + CHECK(RC_ROMANI_RANCH_WONDER_ITEM_01, true), + CHECK(RC_ROMANI_RANCH_WONDER_ITEM_02, true), + CHECK(RC_ROMANI_RANCH_WONDER_ITEM_03, true), + CHECK(RC_ROMANI_RANCH_WONDER_ITEM_04, true), + CHECK(RC_ROMANI_RANCH_WONDER_ITEM_05, true), + CHECK(RC_ROMANI_RANCH_WONDER_ITEM_06, true), // TODO: Time logic is wrong for entrance rando CHECK(RC_ENEMY_DROP_ALIEN, CanKillEnemy(ACTOR_EN_INVADEPOH) && IS_NIGHT1() && CAN_BE_GORON && HAS_ITEM(ITEM_POWDER_KEG)), // Night 1 only }, diff --git a/mm/2s2h/Rando/Logic/Regions/PiratesFortress.cpp b/mm/2s2h/Rando/Logic/Regions/PiratesFortress.cpp index f82ca9c75..7f817cca5 100644 --- a/mm/2s2h/Rando/Logic/Regions/PiratesFortress.cpp +++ b/mm/2s2h/Rando/Logic/Regions/PiratesFortress.cpp @@ -27,6 +27,9 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_PIRATE_FORTRESS_CAPTAIN_ROOM_BARREL_01, RANDO_EVENTS[RE_PIRATE_FORTRESS_BEEHIVE_HIT]), CHECK(RC_PIRATE_FORTRESS_CAPTAIN_ROOM_BARREL_02, RANDO_EVENTS[RE_PIRATE_FORTRESS_BEEHIVE_HIT]), CHECK(RC_PIRATE_FORTRESS_INTERIOR_HOOKSHOT_CHEST, RANDO_EVENTS[RE_PIRATE_FORTRESS_BEEHIVE_HIT]), + CHECK(RC_PIRATE_FORTRESS_INTERIOR_WONDER_ITEM_01, RANDO_EVENTS[RE_PIRATE_FORTRESS_BEEHIVE_HIT] && CAN_USE_PROJECTILE), + CHECK(RC_PIRATE_FORTRESS_INTERIOR_WONDER_ITEM_02, RANDO_EVENTS[RE_PIRATE_FORTRESS_BEEHIVE_HIT] && CAN_USE_PROJECTILE), + CHECK(RC_PIRATE_FORTRESS_INTERIOR_WONDER_ITEM_03, RANDO_EVENTS[RE_PIRATE_FORTRESS_BEEHIVE_HIT] && CAN_USE_PROJECTILE), CHECK(RC_ENEMY_DROP_SHELLBLADE, CanKillEnemy(ACTOR_EN_SB)), }, .exits = { // TO FROM @@ -265,6 +268,12 @@ static RegisterShipInitFunc initFunc([]() { .checks = { CHECK(RC_PIRATE_FORTRESS_PLAZA_LARGE_CRATE_01, true), CHECK(RC_PIRATE_FORTRESS_PLAZA_LOWER_CHEST, true), + CHECK(RC_PIRATE_FORTRESS_PLAZA_WONDER_ITEM_01, CAN_USE_PROJECTILE), + CHECK(RC_PIRATE_FORTRESS_PLAZA_WONDER_ITEM_02, CAN_USE_PROJECTILE), + CHECK(RC_PIRATE_FORTRESS_PLAZA_WONDER_ITEM_03, CAN_USE_PROJECTILE), + CHECK(RC_PIRATE_FORTRESS_PLAZA_WONDER_ITEM_04, CAN_USE_PROJECTILE), + CHECK(RC_PIRATE_FORTRESS_PLAZA_WONDER_ITEM_05, CAN_USE_PROJECTILE), + CHECK(RC_PIRATE_FORTRESS_PLAZA_WONDER_ITEM_06, CAN_USE_PROJECTILE), }, .exits = { // TO FROM EXIT(ENTRANCE(PIRATES_FORTRESS_INTERIOR, 0), ENTRANCE(PIRATES_FORTRESS, 1), true), diff --git a/mm/2s2h/Rando/Logic/Regions/SpiderHouses.cpp b/mm/2s2h/Rando/Logic/Regions/SpiderHouses.cpp index ab42d3597..c720ee131 100644 --- a/mm/2s2h/Rando/Logic/Regions/SpiderHouses.cpp +++ b/mm/2s2h/Rando/Logic/Regions/SpiderHouses.cpp @@ -40,7 +40,10 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_OCEAN_SPIDER_HOUSE_ENTRANCE_POT_01, true), CHECK(RC_OCEAN_SPIDER_HOUSE_ENTRANCE_POT_02, true), CHECK(RC_OCEAN_SPIDER_HOUSE_ENTRANCE_POT_03, true), - CHECK(RC_OCEAN_SPIDER_HOUSE_ENTRANCE_POT_04, true) + CHECK(RC_OCEAN_SPIDER_HOUSE_ENTRANCE_POT_04, true), + CHECK(RC_OCEAN_SPIDER_HOUSE_WONDER_ITEM_07, CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_OCEAN_SPIDER_HOUSE_WONDER_ITEM_08, CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_OCEAN_SPIDER_HOUSE_WONDER_ITEM_09, CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE || HAS_ITEM(ITEM_DEKU_NUT)), }, .connections = { CONNECTION(RR_OCEAN_SPIDER_HOUSE_ENTRANCE_UPPER, CAN_BE_GORON), @@ -50,6 +53,12 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_OCEAN_SPIDER_HOUSE_ENTRANCE_UPPER] = RandoRegion{ .name = "Entrance Upper", .sceneId = SCENE_KINDAN2, .checks = { CHECK(RC_OCEAN_SPIDER_HOUSE_WALLET, HAS_ENOUGH_SKULLTULA_TOKENS(SCENE_KINDAN2)), + CHECK(RC_OCEAN_SPIDER_HOUSE_WONDER_ITEM_01, CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE), + CHECK(RC_OCEAN_SPIDER_HOUSE_WONDER_ITEM_02, CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE), + CHECK(RC_OCEAN_SPIDER_HOUSE_WONDER_ITEM_03, CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE), + CHECK(RC_OCEAN_SPIDER_HOUSE_WONDER_ITEM_04, CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE), + CHECK(RC_OCEAN_SPIDER_HOUSE_WONDER_ITEM_05, CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE), + CHECK(RC_OCEAN_SPIDER_HOUSE_WONDER_ITEM_06, CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE), }, .exits = { // TO FROM EXIT(ENTRANCE(GREAT_BAY_COAST, 8), ENTRANCE(OCEANSIDE_SPIDER_HOUSE, 0), true) @@ -140,6 +149,11 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_SWAMP_SKULLTULA_POT_ROOM_WALL, CanKillEnemy(ACTOR_EN_SW)), CHECK(RC_SWAMP_SPIDER_HOUSE_JAR_ROOM_POT_06, true), CHECK(RC_SWAMP_SPIDER_HOUSE_JAR_ROOM_POT_07, true), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_01, true), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_02, true), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_03, true), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_04, true), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_05, true), }, .connections = { CONNECTION(RR_SWAMP_SPIDER_HOUSE_CENTER_ROOM_UPPER, true), @@ -157,9 +171,18 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_SWAMP_SKULLTULA_MAIN_ROOM_LOWER_RIGHT_SOFT_SOIL, HAS_BOTTLE && CAN_ACCESS(BUGS) && CanKillEnemy(ACTOR_EN_SW)), CHECK(RC_SWAMP_SKULLTULA_MAIN_ROOM_PILLAR, CanKillEnemy(ACTOR_EN_SW)), CHECK(RC_SWAMP_SKULLTULA_MAIN_ROOM_WATER, CanKillEnemy(ACTOR_EN_SW)), - CHECK(RC_SWAMP_SPIDER_HOUSE_MAIN_ROOM_LOWER_POT_01, true), - CHECK(RC_SWAMP_SPIDER_HOUSE_MAIN_ROOM_LOWER_POT_02, true), - CHECK(RC_SWAMP_SPIDER_HOUSE_MAIN_ROOM_LOWER_POT_03, true), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_06, CAN_USE_PROJECTILE), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_07, CAN_USE_PROJECTILE), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_08, CAN_USE_PROJECTILE), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_09, CAN_USE_PROJECTILE), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_10, CAN_USE_PROJECTILE), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_11, CAN_USE_PROJECTILE), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_12, CAN_USE_PROJECTILE), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_13, CAN_USE_PROJECTILE), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_14, CAN_USE_PROJECTILE), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_15, CAN_USE_PROJECTILE), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_16, CAN_USE_PROJECTILE), + CHECK(RC_SWAMP_SPIDER_HOUSE_WONDER_ITEM_17, CAN_USE_PROJECTILE), }, .connections = { CONNECTION(RR_SWAMP_SPIDER_HOUSE_ENTRANCE, true), diff --git a/mm/2s2h/Rando/Logic/Regions/TerminaField.cpp b/mm/2s2h/Rando/Logic/Regions/TerminaField.cpp index 0c1df9df8..d9d041433 100644 --- a/mm/2s2h/Rando/Logic/Regions/TerminaField.cpp +++ b/mm/2s2h/Rando/Logic/Regions/TerminaField.cpp @@ -511,6 +511,42 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_TERMINA_FIELD_MAN_IN_THE_TREE_RUPEE_02, true), CHECK(RC_TERMINA_FIELD_TREE_01, true), CHECK(RC_TERMINA_FIELD_TREE_02, true), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_01, true), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_02, true), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_03, true), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_04, true), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_05, true), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_06, CAN_BE_GORON && HAS_MAGIC), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_07, true), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_08, true), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_09, CAN_BE_GORON && HAS_MAGIC), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_10, CAN_BE_GORON && HAS_MAGIC), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_11, CAN_BE_GORON && HAS_MAGIC), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_12, CAN_USE_PROJECTILE || HAS_ITEM(ITEM_BOMBCHU)), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_13, CAN_USE_PROJECTILE || HAS_ITEM(ITEM_BOMBCHU)), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_14, CAN_USE_PROJECTILE || HAS_ITEM(ITEM_BOMBCHU)), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_15, CAN_USE_SWORD || CAN_BE_GORON || CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_16, CAN_USE_SWORD || CAN_BE_GORON || CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_17, CAN_USE_SWORD || CAN_BE_GORON || CAN_USE_PROJECTILE || CAN_USE_EXPLOSIVE || HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_DEKU_NUT)), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_18, true), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_19, true), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_20, true), + CHECK(RC_TERMINA_FIELD_WONDER_ITEM_21, true), + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_01, canPlaySong(OCARINA_SONG_TERMINA_WALL) && IS_DAY()), // Only obtainable 6-7 A.M. + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_02, canPlaySong(OCARINA_SONG_TERMINA_WALL) && IS_DAY()), // Only obtainable 6-7 A.M. + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_03, canPlaySong(OCARINA_SONG_TERMINA_WALL) && IS_DAY()), // Only obtainable 6-7 A.M. + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_04, canPlaySong(OCARINA_SONG_TERMINA_WALL)), + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_05, canPlaySong(OCARINA_SONG_TERMINA_WALL)), + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_06, canPlaySong(OCARINA_SONG_TERMINA_WALL)), + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_07, canPlaySong(OCARINA_SONG_TERMINA_WALL)), + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_08, canPlaySong(OCARINA_SONG_TERMINA_WALL)), + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_09, canPlaySong(OCARINA_SONG_TERMINA_WALL) && IS_NIGHT()), // Only obtainable 8-9 P.M. and 4-5 A.M. + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_10, canPlaySong(OCARINA_SONG_TERMINA_WALL) && IS_NIGHT()), // Only obtainable 8-9 P.M. and 4-5 A.M. + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_11, canPlaySong(OCARINA_SONG_TERMINA_WALL) && IS_NIGHT()), // Only obtainable 8-9 P.M. and 4-5 A.M. + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_12, canPlaySong(OCARINA_SONG_TERMINA_WALL)), + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_13, canPlaySong(OCARINA_SONG_TERMINA_WALL)), + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_14, canPlaySong(OCARINA_SONG_TERMINA_WALL)), + CHECK(RC_TERMINA_FIELD_WALL_WONDER_ITEM_15, canPlaySong(OCARINA_SONG_TERMINA_WALL)), CHECK(RC_ENEMY_DROP_BLUE_BUBBLE, CanKillEnemy(ACTOR_EN_BB) && IS_NIGHT()), // Night only CHECK(RC_ENEMY_DROP_DEKU_BABA, CanKillEnemy(ACTOR_EN_DEKUBABA)), CHECK(RC_ENEMY_DROP_CHUCHU, CanKillEnemy(ACTOR_EN_SLIME) && IS_DAY()), // Day only |
