Improve ganon tower logic (#4526)

* Improve ganon tower logic

* Fix build and address review

* Update locacc_ganons_castle.cpp

* Update locacc_ganons_castle.cpp

* Update locacc_ganons_castle.cpp

* Update logic.cpp

* Update randomizerTypes.h

---------

Co-authored-by: Malkierian <malkierian@gmail.com>
Co-authored-by: Malkierian <malkierian@live.com>
This commit is contained in:
Pepe20129 2024-11-09 17:34:05 +01:00 committed by GitHub
commit c8815a26f7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 72 additions and 11 deletions

View file

@ -587,8 +587,19 @@ namespace Rando {
case RE_BIG_OCTO:
//If chasing octo is annoying but with rolls you can catch him, and you need rang to get into this room without shenanigains anyway. Bunny makes it free
return CanUse(RG_KOKIRI_SWORD) || CanUse(RG_STICKS) || CanUse(RG_MASTER_SWORD);
case RE_GANONDORF:
// RANDOTODO: Trick to use hammer (no jumpslash) or stick (only jumpslash) instead of a sword to reflect the energy ball
// and either of them regardless of jumpslashing to damage and kill ganondorf
// Bottle is not taken into account since a sword, hammer or stick are required
// for killing ganondorf and all of those can reflect the energy ball
// This will not be the case once ammo logic in taken into account as
// sticks are limited and using a bottle might become a requirement in that case
return HasBossSoul(RG_GANON_SOUL) && CanUse(RG_LIGHT_ARROWS) && (CanUse(RG_KOKIRI_SWORD) || CanUse(RG_MASTER_SWORD) || CanUse(RG_BIGGORON_SWORD));
case RE_GANON:
return HasBossSoul(RG_GANON_SOUL) && CanUse(RG_MASTER_SWORD);
case RE_DARK_LINK:
//RNADOTODO Dark link is buggy right now, retest when he is not
//RANDOTODO Dark link is buggy right now, retest when he is not
return CanJumpslash() || CanUse(RG_FAIRY_BOW);
default:
SPDLOG_ERROR("CanKillEnemy reached `default`.");