mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-10 19:45:09 -05:00
Add Big Skulltula logic to adult kokiri forest and fix a small bug in forest temple logic (#3938)
* Add Big Skulltula logic to adult kokiri forest and fix a small bug in forest temple logic * fix spelling
This commit is contained in:
parent
fe9dcf1fc3
commit
a7726653e5
@ -170,7 +170,7 @@ void AreaTable_Init_ForestTemple() {
|
||||
Entrance(RR_FOREST_TEMPLE_WEST_CORRIDOR, {[]{return true;}}),
|
||||
Entrance(RR_FOREST_TEMPLE_NW_OUTDOORS_UPPER, {[]{return logic->CanUse(RG_HOVER_BOOTS) || (randoCtx->GetTrickOption(RT_FOREST_OUTSIDE_BACKDOOR) && logic->CanJumpslash && logic->GoronBracelet);}}),
|
||||
Entrance(RR_FOREST_TEMPLE_NW_CORRIDOR_TWISTED, {[]{return logic->IsAdult && logic->GoronBracelet && logic->SmallKeys(RR_FOREST_TEMPLE, 2);}}),
|
||||
Entrance(RR_FOREST_TEMPLE_NW_CORRIDOR_STRAIGHTENED, {[]{return (logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_FAIRY_SLINGSHOT)) && logic->GoronBracelet && logic->SmallKeys(RR_FOREST_TEMPLE, 2);}}),
|
||||
Entrance(RR_FOREST_TEMPLE_NW_CORRIDOR_STRAIGHTENED, {[]{return logic->IsAdult && (logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_FAIRY_SLINGSHOT)) && logic->GoronBracelet && logic->SmallKeys(RR_FOREST_TEMPLE, 2);}}),
|
||||
});
|
||||
|
||||
areaTable[RR_FOREST_TEMPLE_NW_CORRIDOR_TWISTED] = Area("Forest Temple NW Corridor Twisted", "Forest Temple", RA_FOREST_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||
|
@ -24,7 +24,7 @@ void AreaTable_Init_LostWoods() {
|
||||
Entrance(RR_KF_HOUSE_OF_TWINS, {[]{return true;}}),
|
||||
Entrance(RR_KF_KNOW_IT_ALL_HOUSE, {[]{return true;}}),
|
||||
Entrance(RR_KF_KOKIRI_SHOP, {[]{return true;}}),
|
||||
Entrance(RR_KF_OUTSIDE_DEKU_TREE, {[]{return logic->IsAdult || randoCtx->GetOption(RSK_FOREST).Is(RO_FOREST_OPEN) || logic->ShowedMidoSwordAndShield;}}),
|
||||
Entrance(RR_KF_OUTSIDE_DEKU_TREE, {[]{return (logic->IsAdult && (logic->CanPassEnemy("Big Skulltula") || logic->ForestTempleClear)) || randoCtx->GetOption(RSK_FOREST).Is(RO_FOREST_OPEN) || logic->ShowedMidoSwordAndShield;}}),
|
||||
Entrance(RR_THE_LOST_WOODS, {[]{return true;}}),
|
||||
Entrance(RR_LW_BRIDGE_FROM_FOREST, {[]{return logic->IsAdult || randoCtx->GetOption(RSK_FOREST).IsNot(RO_FOREST_CLOSED) || logic->DekuTreeClear;}}),
|
||||
Entrance(RR_KF_STORMS_GROTTO, {[]{return logic->CanOpenStormGrotto;}}),
|
||||
@ -42,7 +42,7 @@ void AreaTable_Init_LostWoods() {
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_DEKU_TREE_ENTRYWAY, {[]{return logic->IsChild || (randoCtx->GetOption(RSK_SHUFFLE_DUNGEON_ENTRANCES).IsNot(RO_DUNGEON_ENTRANCE_SHUFFLE_OFF) && (randoCtx->GetOption(RSK_FOREST).Is(RO_FOREST_OPEN) || logic->ShowedMidoSwordAndShield));}}),
|
||||
Entrance(RR_KOKIRI_FOREST, {[]{return logic->IsAdult || randoCtx->GetOption(RSK_FOREST).Is(RO_FOREST_OPEN) || logic->ShowedMidoSwordAndShield;}}),
|
||||
Entrance(RR_KOKIRI_FOREST, {[]{return (logic->IsAdult && (logic->CanPassEnemy("Big Skulltula") || logic->ForestTempleClear)) || randoCtx->GetOption(RSK_FOREST).Is(RO_FOREST_OPEN) || logic->ShowedMidoSwordAndShield;}}),
|
||||
});
|
||||
|
||||
areaTable[RR_KF_LINKS_HOUSE] = Area("KF Link's House", "KF Link's House", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, {
|
||||
|
@ -230,6 +230,26 @@ namespace Rando {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Logic::CanKillEnemy(std::string enemy) {
|
||||
//switch(enemy) {} RANDOTODO implement enemies enum
|
||||
if (enemy == "Big Skulltula"){
|
||||
return CanUse(RG_FAIRY_BOW) || CanUse(RG_FAIRY_SLINGSHOT) || CanJumpslash || CanUse(RG_MEGATON_HAMMER) || CanUse(RG_HOOKSHOT) || CanUse(RG_DINS_FIRE) || HasExplosives;
|
||||
}
|
||||
//Shouldn't be reached
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Logic::CanPassEnemy(std::string enemy) {
|
||||
//switch(enemy) {} RANDOTODO implement enemies enum
|
||||
if (CanKillEnemy(enemy)){
|
||||
return true;
|
||||
}
|
||||
if (enemy == "Big Skulltula"){
|
||||
return Nuts || CanUse(RG_BOOMERANG);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Logic::Logic() {
|
||||
|
||||
}
|
||||
|
@ -422,6 +422,8 @@ class Logic {
|
||||
bool SmallKeys(RandomizerRegion dungeon, uint8_t requiredAmountGlitchless, uint8_t requiredAmountGlitched);
|
||||
bool CanDoGlitch(GlitchType glitch);
|
||||
bool CanEquipSwap(RandomizerGet itemName);
|
||||
bool CanKillEnemy(std::string enemy);
|
||||
bool CanPassEnemy(std::string enemy);
|
||||
bool EventsUpdated();
|
||||
void Reset();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user