diff options
| author | Eblo <7004497+Eblo@users.noreply.github.com> | 2026-02-22 08:10:51 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-22 07:10:51 -0600 |
| commit | ab95bc38b5cc65533f601567c8bd03699b1a475e (patch) | |
| tree | 208a0eb419a65a20f3c6e79c77a7a6d518f26a87 | |
| parent | f62f5735b90878ad97556e47341b881c9c81f78b (diff) | |
Merge pull request #1550 from Eblo/southern-swamp-octorok-drop
[Rando] Revise kill/drop logic for some enemies
| -rw-r--r-- | mm/2s2h/Rando/Logic/Logic.h | 5 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/East.cpp | 2 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/GreatBayTemple.cpp | 2 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/South.cpp | 4 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/WoodfallTemple.cpp | 4 |
5 files changed, 8 insertions, 9 deletions
diff --git a/mm/2s2h/Rando/Logic/Logic.h b/mm/2s2h/Rando/Logic/Logic.h index 92df13e64..313442607 100644 --- a/mm/2s2h/Rando/Logic/Logic.h +++ b/mm/2s2h/Rando/Logic/Logic.h @@ -723,8 +723,6 @@ inline bool CanKillEnemy(ActorId EnemyId) { return (CAN_BE_ZORA && HAS_MAGIC); case ACTOR_EN_KAME: // Snapper (non Gekko Miniboss) return (CAN_USE_EXPLOSIVE || CAN_BE_GORON); - case ACTOR_EN_SB: // Shellblade - return (CAN_BE_ZORA && HAS_MAGIC); case ACTOR_EN_OKUTA: // Octorok case ACTOR_EN_EGOL: // Eyegore return (CAN_USE_PROJECTILE); @@ -738,7 +736,8 @@ inline bool CanKillEnemy(ActorId EnemyId) { HAS_ITEM(ITEM_DEKU_STICK) || HAS_ITEM(ITEM_HOOKSHOT)); case ACTOR_EN_PR: // Desbreko case ACTOR_EN_PR2: // Skull fish - return (CAN_BE_ZORA && HAS_MAGIC); + case ACTOR_EN_SB: // Shellblade + return (CAN_BE_ZORA && HAS_MAGIC && CAN_USE_ABILITY(SWIM)); case ACTOR_BOSS_05: // Bio Deku Baba return CAN_BE_ZORA && CAN_USE_ABILITY(SWIM); case ACTOR_EN_BEE: // Giant Bee diff --git a/mm/2s2h/Rando/Logic/Regions/East.cpp b/mm/2s2h/Rando/Logic/Regions/East.cpp index bff5e8d3a..f4f975715 100644 --- a/mm/2s2h/Rando/Logic/Regions/East.cpp +++ b/mm/2s2h/Rando/Logic/Regions/East.cpp @@ -143,7 +143,7 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_IKANA_CANYON_SCRUB_PIECE_OF_HEART, Flags_GetRandoInf(RANDO_INF_OBTAINED_DEED_OCEAN) && CAN_BE_ZORA && CAN_BE_DEKU), CHECK(RC_IKANA_CANYON_SCRUB_HUGE_RUPEE, Flags_GetRandoInf(RANDO_INF_OBTAINED_DEED_OCEAN) && CAN_BE_ZORA), CHECK(RC_IKANA_CANYON_SCRUB_POTION_REFILL, CUR_UPG_VALUE(UPG_WALLET) >= 1), - CHECK(RC_ENEMY_DROP_OCTOROK, CanKillEnemy(ACTOR_EN_OKUTA)), + CHECK(RC_ENEMY_DROP_OCTOROK, CanKillEnemy(ACTOR_EN_OKUTA) && CAN_USE_ABILITY(SWIM)), CHECK(RC_ENEMY_DROP_GARO, CanKillEnemy(ACTOR_EN_JSO)), }, .exits = { // TO FROM diff --git a/mm/2s2h/Rando/Logic/Regions/GreatBayTemple.cpp b/mm/2s2h/Rando/Logic/Regions/GreatBayTemple.cpp index 59bc244c3..bcfb1a109 100644 --- a/mm/2s2h/Rando/Logic/Regions/GreatBayTemple.cpp +++ b/mm/2s2h/Rando/Logic/Regions/GreatBayTemple.cpp @@ -286,7 +286,7 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_GREAT_BAY_TEMPLE_RED_PIPE_BEFORE_WART_POT_03, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)), CHECK(RC_GREAT_BAY_TEMPLE_RED_PIPE_BEFORE_WART_POT_04, CAN_BE_ZORA && CAN_USE_ABILITY(SWIM)), CHECK(RC_ENEMY_DROP_SHELLBLADE, CanKillEnemy(ACTOR_EN_SB)), - CHECK(RC_ENEMY_DROP_OCTOROK, CanKillEnemy(ACTOR_EN_OKUTA)), + CHECK(RC_ENEMY_DROP_OCTOROK, CanKillEnemy(ACTOR_EN_OKUTA) && CAN_USE_ABILITY(SWIM) && CAN_BE_ZORA), CHECK(RC_ENEMY_DROP_SKULLFISH, CanKillEnemy(ACTOR_EN_PR2)), }, .connections = { diff --git a/mm/2s2h/Rando/Logic/Regions/South.cpp b/mm/2s2h/Rando/Logic/Regions/South.cpp index c4916c721..5e9a25499 100644 --- a/mm/2s2h/Rando/Logic/Regions/South.cpp +++ b/mm/2s2h/Rando/Logic/Regions/South.cpp @@ -354,7 +354,7 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_SOUTHERN_SWAMP_FROG, HAS_ITEM(ITEM_MASK_DON_GERO)), CHECK(RC_SOUTHERN_SWAMP_FREESTANDING_RUPEE_01, CAN_BE_DEKU || CAN_BE_ZORA), CHECK(RC_SOUTHERN_SWAMP_FREESTANDING_RUPEE_02, CAN_BE_DEKU || CAN_BE_ZORA), - CHECK(RC_ENEMY_DROP_OCTOROK, CanKillEnemy(ACTOR_EN_OKUTA) && CAN_TRAVERSE_WAIST_DEEP_WATER), + CHECK(RC_ENEMY_DROP_OCTOROK, CanKillEnemy(ACTOR_EN_OKUTA) && (CAN_USE_ABILITY(SWIM) || CAN_BE_ZORA || CAN_BE_GORON)), }, .connections = { CONNECTION(RR_SOUTHERN_SWAMP_SOUTH, CanGetPastBigOctoWithoutBoat()), @@ -586,7 +586,7 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_WOODS_OF_MYSTERY_GRASS_21, SECOND_DAY()), CHECK(RC_WOODS_OF_MYSTERY_GRASS_22, FINAL_DAY()), CHECK(RC_WOODS_OF_MYSTERY_GRASS_23, FINAL_DAY()), - CHECK(RC_ENEMY_DROP_SNAPPER, CAN_BE_DEKU || CanKillEnemy(ACTOR_EN_KAME)), + CHECK(RC_ENEMY_DROP_SNAPPER, CAN_BE_DEKU && CanKillEnemy(ACTOR_EN_KAME)), }, .exits = { // TO FROM EXIT(ENTRANCE(SOUTHERN_SWAMP_POISONED, 7), ENTRANCE(WOODS_OF_MYSTERY, 0), true), diff --git a/mm/2s2h/Rando/Logic/Regions/WoodfallTemple.cpp b/mm/2s2h/Rando/Logic/Regions/WoodfallTemple.cpp index 7495286b0..87fc7b7ed 100644 --- a/mm/2s2h/Rando/Logic/Regions/WoodfallTemple.cpp +++ b/mm/2s2h/Rando/Logic/Regions/WoodfallTemple.cpp @@ -132,8 +132,8 @@ static RegisterShipInitFunc initFunc([]() { }; Regions[RR_WOODFALL_TEMPLE_MAP_ROOM] = RandoRegion{ .name = "Map Room", .sceneId = SCENE_MITURIN, .checks = { - CHECK(RC_WOODFALL_TEMPLE_MAP_CHEST, CAN_BE_DEKU || CanKillEnemy(ACTOR_EN_KAME)), - CHECK(RC_ENEMY_DROP_SNAPPER, CAN_BE_DEKU || CanKillEnemy(ACTOR_EN_KAME)), + CHECK(RC_WOODFALL_TEMPLE_MAP_CHEST, CAN_BE_DEKU && CanKillEnemy(ACTOR_EN_KAME)), + CHECK(RC_ENEMY_DROP_SNAPPER, CAN_BE_DEKU && CanKillEnemy(ACTOR_EN_KAME)), }, .connections = { CONNECTION(RR_WOODFALL_TEMPLE_WATER_ROOM, true), |
