mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-25 10:52:19 -05:00
fix bombchu logic bugs (#3720)
This commit is contained in:
parent
63cf3610e5
commit
cb82e77e40
@ -536,7 +536,7 @@ namespace Logic {
|
|||||||
Fish = HasBottle && FishAccess;
|
Fish = HasBottle && FishAccess;
|
||||||
Fairy = HasBottle && FairyAccess;
|
Fairy = HasBottle && FairyAccess;
|
||||||
|
|
||||||
FoundBombchus = (BombchuDrop || Bombchus || Bombchus5 || Bombchus10 || Bombchus20);
|
FoundBombchus = (BombchuDrop || Bombchus || Bombchus5 || Bombchus10 || Bombchus20) && (BombBag || BombchusInLogic);
|
||||||
CanPlayBowling = (BombchusInLogic && FoundBombchus) || (!BombchusInLogic && BombBag);
|
CanPlayBowling = (BombchusInLogic && FoundBombchus) || (!BombchusInLogic && BombBag);
|
||||||
HasBombchus = (BuyBombchus10 || BuyBombchus20 || (AmmoDrops.Is(AMMODROPS_BOMBCHU) && FoundBombchus));
|
HasBombchus = (BuyBombchus10 || BuyBombchus20 || (AmmoDrops.Is(AMMODROPS_BOMBCHU) && FoundBombchus));
|
||||||
|
|
||||||
|
@ -2487,8 +2487,7 @@ extern "C" int CustomMessage_RetrieveIfExists(PlayState* play) {
|
|||||||
randoInf = RAND_INF_MERCHANTS_CARPET_SALESMAN;
|
randoInf = RAND_INF_MERCHANTS_CARPET_SALESMAN;
|
||||||
}
|
}
|
||||||
messageEntry = OTRGlobals::Instance->gRandomizer->GetMerchantMessage(randoInf, textId, Randomizer_GetSettingValue(RSK_SHUFFLE_MERCHANTS) != RO_SHUFFLE_MERCHANTS_ON_HINT);
|
messageEntry = OTRGlobals::Instance->gRandomizer->GetMerchantMessage(randoInf, textId, Randomizer_GetSettingValue(RSK_SHUFFLE_MERCHANTS) != RO_SHUFFLE_MERCHANTS_ON_HINT);
|
||||||
} else if (Randomizer_GetSettingValue(RSK_BOMBCHUS_IN_LOGIC) &&
|
} else if (textId == TEXT_BUY_BOMBCHU_10_DESC || textId == TEXT_BUY_BOMBCHU_10_PROMPT) {
|
||||||
(textId == TEXT_BUY_BOMBCHU_10_DESC || textId == TEXT_BUY_BOMBCHU_10_PROMPT)) {
|
|
||||||
messageEntry = CustomMessageManager::Instance->RetrieveMessage(customMessageTableID, textId);
|
messageEntry = CustomMessageManager::Instance->RetrieveMessage(customMessageTableID, textId);
|
||||||
} else if (textId == TEXT_CURSED_SKULLTULA_PEOPLE) {
|
} else if (textId == TEXT_CURSED_SKULLTULA_PEOPLE) {
|
||||||
actorParams = GET_PLAYER(play)->targetActor->params;
|
actorParams = GET_PLAYER(play)->targetActor->params;
|
||||||
|
@ -1027,8 +1027,8 @@ void EnGirlA_BuyEvent_ObtainBombchuPack(PlayState* play, EnGirlA* this) {
|
|||||||
Rupees_ChangeBy(-this->basePrice);
|
Rupees_ChangeBy(-this->basePrice);
|
||||||
|
|
||||||
// Normally, buying a bombchu pack sets a flag indicating the pack is now sold out
|
// Normally, buying a bombchu pack sets a flag indicating the pack is now sold out
|
||||||
// If they're in logic for rando, skip setting that flag so they can be purchased repeatedly
|
// If we're in rando, skip setting that flag so they can be purchased repeatedly
|
||||||
if (IS_RANDO && Randomizer_GetSettingValue(RSK_BOMBCHUS_IN_LOGIC)) {
|
if (IS_RANDO) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1255,8 +1255,7 @@ void EnGirlA_InitializeItemAction(EnGirlA* this, PlayState* play) {
|
|||||||
this->itemGiveFunc = itemEntry->itemGiveFunc;
|
this->itemGiveFunc = itemEntry->itemGiveFunc;
|
||||||
this->buyEventFunc = itemEntry->buyEventFunc;
|
this->buyEventFunc = itemEntry->buyEventFunc;
|
||||||
// If chus are in logic, make the 10 pack affordable without a wallet upgrade
|
// If chus are in logic, make the 10 pack affordable without a wallet upgrade
|
||||||
if (IS_RANDO && Randomizer_GetSettingValue(RSK_BOMBCHUS_IN_LOGIC) &&
|
if (IS_RANDO && this->getItemId == GI_BOMBCHUS_10) {
|
||||||
this->getItemId == GI_BOMBCHUS_10) {
|
|
||||||
this->basePrice = 99;
|
this->basePrice = 99;
|
||||||
} else {
|
} else {
|
||||||
this->basePrice = itemEntry->price;
|
this->basePrice = itemEntry->price;
|
||||||
|
Loading…
Reference in New Issue
Block a user