Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expand the Plentiful Item Pool #90

Merged
merged 6 commits into from
Apr 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Z3DR
CharadeNut marked this conversation as resolved.
Show resolved Hide resolved
Submodule Z3DR updated 0 files
4 changes: 2 additions & 2 deletions source/item_list.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,8 @@ void ItemTable_Init() { //repeatable denotes that an item in a vanilla playth
itemTable[PURPLE_RUPEE] = Item(false, true, &noVariable, Text{"Purple Rupee", "Rubis pourpre", "Rupia morada"}, PURPLE_RUPEE, (u32)GetItemID::GI_RUPEE_PURPLE, ITEMTYPE_ITEM);
itemTable[HUGE_RUPEE] = Item(false, true, &noVariable, Text{"Huge Rupee", "Énorme rubis", "Rupia gigante"}, HUGE_RUPEE, (u32)GetItemID::GI_RUPEE_GOLD, ITEMTYPE_ITEM);
itemTable[SILVER_RUPEE] = Item(false, true, &noVariable, Text{"Silver Rupee", "rubis d'argent", "Rupia de plata"}, SILVER_RUPEE, (u32)GetItemID::GI_RUPEE_SILVER, ITEMTYPE_ITEM);
itemTable[PIECE_OF_HEART] = Item(false, false, &PiecesOfHeart, Text{"Piece of Heart", "Quart de cœur", "Pieza de corazón"}, PIECE_OF_HEART, (u32)GetItemID::GI_HEART_PIECE, ITEMTYPE_ITEM);
itemTable[HEART_CONTAINER] = Item(false, false, &HeartContainers, Text{"Heart Container", "Réceptacle de cœur", "Contenedor de corazón"}, HEART_CONTAINER, (u32)GetItemID::GI_HEART_CONTAINER, ITEMTYPE_ITEM);
itemTable[PIECE_OF_HEART] = Item(true, false, &PiecesOfHeart, Text{"Piece of Heart", "Quart de cœur", "Pieza de corazón"}, PIECE_OF_HEART, (u32)GetItemID::GI_HEART_PIECE, ITEMTYPE_ITEM);
itemTable[HEART_CONTAINER] = Item(true, false, &HeartContainers, Text{"Heart Container", "Réceptacle de cœur", "Contenedor de corazón"}, HEART_CONTAINER, (u32)GetItemID::GI_HEART_CONTAINER, ITEMTYPE_ITEM);
itemTable[ICE_TRAP] = Item(false, true, &noVariable, Text{"Ice Trap", "Piège de glace", "Trampa de hielo"}, ICE_TRAP, 0x12, ITEMTYPE_ITEM);
itemTable[MILK] = Item(false, true, &HasBottle, Text{"Milk", "Lait", "Leche Lon Lon"}, NONE, 0x92, ITEMTYPE_ITEM);

Expand Down
28 changes: 25 additions & 3 deletions source/item_pool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1054,11 +1054,13 @@ void GenerateItemPool() {
}

//PIECEOFHEART SHUFFLE
if(ShufflePiecesOfHeart){
AddItemToMainPool(PIECE_OF_HEART,48);//52Total-4MoonHearts
if(ShufflePiecesOfHeart) {
if(ItemPoolValue.IsNot(ItemPoolSetting::ITEMPOOL_PLENTIFUL)) {
AddItemToMainPool(PIECE_OF_HEART,48);//52Total-4MoonHearts}
}
}

else{
else {
PlaceVanillaHeartPieces();
}

Expand Down Expand Up @@ -1252,6 +1254,26 @@ void GenerateItemPool() {
}

if (ItemPoolValue.Is(ItemPoolSetting::ITEMPOOL_PLENTIFUL)) {
AddItemsToPool(ItemPool, maskList);
AddItemToMainPool(DEKU_MASK);
AddItemToMainPool(GORON_MASK);
AddItemToMainPool(ZORA_MASK);
AddItemToMainPool(FIERCE_DEITY_MASK);
AddItemToMainPool(PROGRESSIVE_BOW);
AddItemToMainPool(FIRE_ARROWS);
AddItemToMainPool(ICE_ARROWS);
AddItemToMainPool(LIGHT_ARROWS);
AddItemToMainPool(LENS_OF_TRUTH);
AddItemToMainPool(HOOKSHOT);
AddItemToMainPool(PICTOGRAPH_BOX);
AddItemToMainPool(MIRROR_SHIELD);
AddItemToMainPool(GREAT_FAIRYS_SWORD);
AddItemToMainPool(PROGRESSIVE_SWORD);
AddItemToMainPool(PROGRESSIVE_WALLET);
AddItemToMainPool(PROGRESSIVE_MAGIC_METER);
AddItemToMainPool(SPIN_ATTACK);
AddItemToMainPool(DOUBLE_DEFENSE);
AddItemToMainPool(HEART_CONTAINER, 12);

//Plentiful small keys
if (Keysanity.Is(KeysanitySetting::KEYSANITY_ANYWHERE)) {
Expand Down
7 changes: 6 additions & 1 deletion source/setting_descriptions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,12 @@ string_view advancedTrapDmgDesc = "**OPTION CURRENTLY WIP**\n"
/*------------------------------ //
| ITEM POOL | //
------------------------------*/ //
string_view itemPoolPlentiful = "Extra major items are added to the pool."; //
string_view itemPoolPlentiful = "In addition to the regular pool:\n" //
"- A duplicate for each major item and upgrade;\n" //
"- A duplicate for each mask;\n" //
"- A duplicate for each key;\n" //
"- Heart Containers replace most Pieces of Heart.\n\n"
"This will force enable Shuffle Piece of Heart."; //
string_view itemPoolBalanced = "Original item pool."; //
string_view itemPoolScarce = "Some excess items are removed, including health\n"//
"upgrades."; //
Expand Down
8 changes: 8 additions & 0 deletions source/settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1343,6 +1343,14 @@ namespace Settings {
//will force Starting Age to Child).
void ForceChange(u32 kDown, Option* currentSetting) {

//Lock Shuffle Heart Pieces if the item pool is set to Plentiful, since heart piece locations are used to extra items
if (ItemPoolValue.Is(ItemPoolSetting::ITEMPOOL_PLENTIFUL)) {
ShufflePiecesOfHeart.SetSelectedIndex(1);
ShufflePiecesOfHeart.Lock();
} else {
ShufflePiecesOfHeart.Unlock();
}

//Groups the item categories; bottles are handled separately because the proper item is Empty Bottle (1)
CollapseCategory(StartingInventoryToggle, 3, 25);
CollapseCategory(StartingMaskToggle, 26, 50);
Expand Down
Loading