logic: allow finding big poe in bottle for reward logic (#5075)
* logic: allow finding big poe in bottle for reward logic only applies when big poe count is set to 1 * Allow multiple big poe bottles for when big poe requirement > 1
This commit is contained in:
@@ -39,7 +39,7 @@ void RegionTable_Init_Market() {
|
|||||||
EventAccess(&logic->CanEmptyBigPoes, []{return logic->IsAdult;}),
|
EventAccess(&logic->CanEmptyBigPoes, []{return logic->IsAdult;}),
|
||||||
}, {
|
}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_MARKET_10_BIG_POES, logic->IsAdult && logic->BigPoeKill),
|
LOCATION(RC_MARKET_10_BIG_POES, logic->IsAdult && (logic->BigPoeKill || logic->BigPoes > ctx->GetOption(RSK_BIG_POE_COUNT).Get())),
|
||||||
LOCATION(RC_MARKET_GS_GUARD_HOUSE, logic->IsChild),
|
LOCATION(RC_MARKET_GS_GUARD_HOUSE, logic->IsChild),
|
||||||
LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_1, logic->IsChild && logic->CanBreakPots()),
|
LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_1, logic->IsChild && logic->CanBreakPots()),
|
||||||
LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_2, logic->IsChild && logic->CanBreakPots()),
|
LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_2, logic->IsChild && logic->CanBreakPots()),
|
||||||
|
|||||||
@@ -1694,6 +1694,9 @@ namespace Rando {
|
|||||||
if (BottleRandomizerGetToItemID.contains(randoGet)) {
|
if (BottleRandomizerGetToItemID.contains(randoGet)) {
|
||||||
itemId = BottleRandomizerGetToItemID[randoGet];
|
itemId = BottleRandomizerGetToItemID[randoGet];
|
||||||
}
|
}
|
||||||
|
if (randoGet == RG_BOTTLE_WITH_BIG_POE) {
|
||||||
|
BigPoes++;
|
||||||
|
}
|
||||||
mSaveContext->inventory.items[slot] = itemId;
|
mSaveContext->inventory.items[slot] = itemId;
|
||||||
} break;
|
} break;
|
||||||
case RG_RUTOS_LETTER:
|
case RG_RUTOS_LETTER:
|
||||||
@@ -2256,6 +2259,7 @@ namespace Rando {
|
|||||||
IsAdult = false;
|
IsAdult = false;
|
||||||
//CanPlantBean = false;
|
//CanPlantBean = false;
|
||||||
BigPoeKill = false;
|
BigPoeKill = false;
|
||||||
|
BigPoes = 0;
|
||||||
|
|
||||||
BaseHearts = ctx->GetOption(RSK_STARTING_HEARTS).Get() + 1;
|
BaseHearts = ctx->GetOption(RSK_STARTING_HEARTS).Get() + 1;
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ class Logic {
|
|||||||
|
|
||||||
// Adult logic
|
// Adult logic
|
||||||
bool FreedEpona = false;
|
bool FreedEpona = false;
|
||||||
//bool BigPoe = false; //unused
|
|
||||||
|
|
||||||
// Trade Quest Events
|
// Trade Quest Events
|
||||||
bool WakeUpAdultTalon = false;
|
bool WakeUpAdultTalon = false;
|
||||||
@@ -101,6 +100,7 @@ class Logic {
|
|||||||
bool IsChild = false;
|
bool IsChild = false;
|
||||||
bool IsAdult = false;
|
bool IsAdult = false;
|
||||||
bool BigPoeKill = false;
|
bool BigPoeKill = false;
|
||||||
|
uint8_t BigPoes = 0;
|
||||||
uint8_t BaseHearts = 0;
|
uint8_t BaseHearts = 0;
|
||||||
|
|
||||||
// Bridge and LACS Requirements
|
// Bridge and LACS Requirements
|
||||||
|
|||||||
Reference in New Issue
Block a user