Skip to content

Commit 8f0d2a7

Browse files
committed
Change Boss Item Pool
- Pick from all major items when placing boss rewards instead of starting with triforce shards/swords/bows - Allow Old Man Ho Ho's triforce hints to hint boss items since they no longer prioritize shards
1 parent b42d062 commit 8f0d2a7

4 files changed

Lines changed: 4 additions & 16 deletions

File tree

gui/desktop/option_descriptions.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ static std::unordered_map<std::string, std::string> optionDescriptions = {
125125
},
126126
{
127127
"required_boss_items",
128-
"Required dungeon bosses will drop required items (e.g. Triforce Shards). Applies to \"Standard\" and \"Race Mode\" dungeons.",
128+
"Required dungeon bosses will drop major items. Applies to \"Standard\" and \"Race Mode\" dungeons.",
129129
},
130130
{
131131
"randomize_charts",

gui/wiiu/OptionActions.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1359,7 +1359,7 @@ std::pair<std::string, std::string> getNameDesc(const Option& option) {
13591359

13601360
{RemoveSwords, {"Remove Swords", "Controls whether swords will be placed throughout the game."}},
13611361
{NumRequiredDungeons, {"Number of Required Bosses", "Select the number of randomly-chosen bosses that are required. The door to Puppet Ganon will not unlock until you've defeated all of these bosses. Sectors with required bosses will be marked on the map. Applies to \"Standard\" and \"Race Mode\" dungeons."}},
1362-
{RequiredBossItems, {"Require Boss Items", "Required dungeon bosses will drop required items (e.g. Triforce Shards). Applies to \"Standard\" and \"Race Mode\" dungeons."}},
1362+
{RequiredBossItems, {"Require Boss Items", "Required dungeon bosses will drop major items. Applies to \"Standard\" and \"Race Mode\" dungeons."}},
13631363
{RandomCharts, {"Randomize Charts", "Randomizes which sector is drawn on each Triforce/Treasure Chart."}},
13641364
{CTMC, {"Chest Type Matches Contents", "Changes the chest type to reflect its contents. A metal chest has a progress item, a key chest has a dungeon key, and a wooden chest has a non-progress item or a consumable.\nKey chests are dark wood chests that use a custom texture based on Big Key Chests. Keys for non-required dungeons in race mode will be in wooden chests."}},
13651365

logic/Fill.cpp

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -622,19 +622,7 @@ static FillError placeRaceModeItems(WorldPool& worlds, ItemPool& itemPool, Locat
622622
}
623623
}
624624

625-
// Build up the list of race mode items starting with triforce shards...
626-
auto triforceShards = filterAndEraseFromPool(itemPool, [](const Item& item){return item.isTriforceShard();});
627-
generateRaceModeItems(raceModeLocations, raceModeItems, triforceShards, itemPool);
628-
629-
// Then swords...
630-
auto swords = filterAndEraseFromPool(itemPool, [](const Item& item){return item.getGameItemId() == GameItem::ProgressiveSword;});
631-
generateRaceModeItems(raceModeLocations, raceModeItems, swords, itemPool);
632-
633-
// Then bows...
634-
auto bows = filterAndEraseFromPool(itemPool, [](const Item& item){return item.getGameItemId() == GameItem::ProgressiveBow;});
635-
generateRaceModeItems(raceModeLocations, raceModeItems, bows, itemPool);
636-
637-
// Then the rest of the major items if necessary.
625+
// Build up the list of boss items with major items.
638626
auto majorItems = filterAndEraseFromPool(itemPool, [](const Item& item){return item.isMajorItem();});
639627
generateRaceModeItems(raceModeLocations, raceModeItems, majorItems, itemPool);
640628

logic/Hints.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -683,7 +683,7 @@ static HintError assignHoHoHints(World& world, WorldPool& worlds, std::list<Hint
683683
{
684684
for (auto location : world.getLocations(/*onlyProgression =*/ true))
685685
{
686-
if (location->currentItem.isTriforceShard() && !(world.getSettings().required_boss_items && location->isRaceModeLocation))
686+
if (location->currentItem.isTriforceShard())
687687
{
688688
LOG_AND_RETURN_IF_ERR(generateItemHintMessage(location, hints));
689689
}

0 commit comments

Comments
 (0)