mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-20 13:23:45 -07:00
remove bombchu edge case
This commit is contained in:
parent
e24ccdc6dd
commit
d17bd06683
2 changed files with 11 additions and 15 deletions
|
@ -116,15 +116,13 @@ enum class EntranceType;
|
||||||
} // namespace Rando
|
} // namespace Rando
|
||||||
|
|
||||||
struct SpiritLogicData {
|
struct SpiritLogicData {
|
||||||
uint8_t childKeys; // the number of keys that guarantees Child can reach this region
|
// the minimum number of keys that guarantees Child can reach this region
|
||||||
// The number of keys that guarantees Child can reach this region if they have reverse access
|
uint8_t childKeys;
|
||||||
// 9 means MQ broken wall room, as the first child lock can only be opened by Child
|
// The minimum number of keys that guarantees Child can reach this region if they have reverse access
|
||||||
// without opening the lock to Statue room, guaranteeing access with 6 keys if you can hit a switch
|
|
||||||
uint8_t childRevKeys;
|
uint8_t childRevKeys;
|
||||||
// the number of keys that guarantees Adult can reach this region
|
// the minimum number of keys that guarantees Adult can reach this region
|
||||||
// if it is 9, that means the bombchu edge case is to be checked.
|
|
||||||
uint8_t adultKeys;
|
uint8_t adultKeys;
|
||||||
// the number of keys that guarantees Adult can reach this region with reverse entry
|
// the minimum number of keys that guarantees Adult can reach this region with reverse entry
|
||||||
uint8_t adultRevKeys;
|
uint8_t adultRevKeys;
|
||||||
// The area access condition to reach this region as Child, from the first lock,
|
// The area access condition to reach this region as Child, from the first lock,
|
||||||
// including the minimum number of keys for ambiguous access
|
// including the minimum number of keys for ambiguous access
|
||||||
|
|
|
@ -2386,9 +2386,7 @@ bool Logic::SpiritSunOnFloorToStatue() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Logic::SpiritExplosiveKeyLogic() {
|
bool Logic::SpiritExplosiveKeyLogic() {
|
||||||
return SmallKeys(RR_SPIRIT_TEMPLE, HasExplosives() ? 1
|
return SmallKeys(RR_SPIRIT_TEMPLE, HasExplosives() ? 1 : 2);
|
||||||
: ctx->GetOption(RSK_BOMBCHU_BAG) && BombchuRefill() ? 2
|
|
||||||
: 3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Logic::SpiritWestToSkull() {
|
bool Logic::SpiritWestToSkull() {
|
||||||
|
@ -2410,7 +2408,6 @@ bool Logic::SpiritEastToSwitch() {
|
||||||
(CanUse(RG_ZELDAS_LULLABY) && CanUse(RG_HOOKSHOT));
|
(CanUse(RG_ZELDAS_LULLABY) && CanUse(RG_HOOKSHOT));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Combines crossing the ledge directly and the jump from the hand
|
// Combines crossing the ledge directly and the jump from the hand
|
||||||
bool Logic::MQSpiritWestToPots() {
|
bool Logic::MQSpiritWestToPots() {
|
||||||
return (IsAdult && ctx->GetTrickOption(RT_SPIRIT_STATUE_JUMP)) || CanUse(RG_HOVER_BOOTS) || CanUse(RG_SONG_OF_TIME);
|
return (IsAdult && ctx->GetTrickOption(RT_SPIRIT_STATUE_JUMP)) || CanUse(RG_HOVER_BOOTS) || CanUse(RG_SONG_OF_TIME);
|
||||||
|
@ -2428,9 +2425,9 @@ bool Logic::MQSpiritStatueSouthDoor() {
|
||||||
|
|
||||||
bool Logic::MQSpirit4KeyColossus() {
|
bool Logic::MQSpirit4KeyColossus() {
|
||||||
// !QUANTUM LOGIC!
|
// !QUANTUM LOGIC!
|
||||||
// We only need 4 keys and the ability to reach both hands for adult to logically be able to drop down onto Desert Colossus
|
// We only need 4 keys and the ability to reach both hands for adult to logically be able to drop down onto Desert
|
||||||
// This is because there are only 3 keys that can be wasted without opening up either this lock to East hand, or the West Hand lock through Sun Block Room
|
// Colossus This is because there are only 3 keys that can be wasted without opening up either this lock to East
|
||||||
// and both directions allow you to drop onto colossus
|
// hand, or the West Hand lock through Sun Block Room and both directions allow you to drop onto colossus
|
||||||
// logic->CanKillEnemy(RE_FLOORMASTER) is implied
|
// logic->CanKillEnemy(RE_FLOORMASTER) is implied
|
||||||
return CanAvoidEnemy(RE_BEAMOS, true, 4) && CanUse(RG_SONG_OF_TIME) &&
|
return CanAvoidEnemy(RE_BEAMOS, true, 4) && CanUse(RG_SONG_OF_TIME) &&
|
||||||
CanJumpslash() && /*(str0 || SunlightArrows) &&*/
|
CanJumpslash() && /*(str0 || SunlightArrows) &&*/
|
||||||
|
@ -2440,7 +2437,8 @@ bool Logic::MQSpirit4KeyColossus() {
|
||||||
|
|
||||||
bool Logic::MQSpirit4KeyWestHand() {
|
bool Logic::MQSpirit4KeyWestHand() {
|
||||||
// !QUANTUM LOGIC!
|
// !QUANTUM LOGIC!
|
||||||
// Continuing from MQSpirit4KeyColossus, if we also have a longshot, we can go from the East hand to the West hand, meaning we always have access to East Hand
|
// Continuing from MQSpirit4KeyColossus, if we also have a longshot, we can go from the East hand to the West hand,
|
||||||
|
// meaning we always have access to East Hand
|
||||||
return CanUse(RG_LONGSHOT) && MQSpirit4KeyColossus();
|
return CanUse(RG_LONGSHOT) && MQSpirit4KeyColossus();
|
||||||
}
|
}
|
||||||
// This version of the function handles Shared Access for child, based on what adult could do if they existed
|
// This version of the function handles Shared Access for child, based on what adult could do if they existed
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue