Example #1
0
        private static void AdjustCandidateItems(List <InventoryItemType> candidateItemList, List <InventoryItemType> haveItems, IRomLocations romLocations)
        {
            // require Boots before Titan's Mitt
            if (candidateItemList.Contains(InventoryItemType.TitansMitt) && !haveItems.Contains(InventoryItemType.PegasusBoots))
            {
                candidateItemList.Remove(InventoryItemType.TitansMitt);
            }

            // stop double-item-needed deadlocks
            if (candidateItemList.Count == 0)
            {
                var trockMedallion = romLocations.GetItemAtLocation <InventoryItem>(romLocations.SpecialLocations, "Required Medallion - Turtle Rock").Type;
                AddUnownedItem(candidateItemList, haveItems, trockMedallion);
                AddUnownedItem(candidateItemList, haveItems, InventoryItemType.FireRod);
            }
        }