private static Item GetItem(int id)
        {
            if (id > ModdedHelper.LastUnmoddedItemId)
            {
                return(ModdedHelper.GetModdedItem(id));
            }

            if (Items.RebirthItems.ContainsKey(id))
            {
                return(Items.RebirthItems[id]);
            }
            if (Items.AfterbirthItems.ContainsKey(id))
            {
                return(Items.AfterbirthItems[id]);
            }
            return(Items.AfterbirthPlusItems.ContainsKey(id) ? Items.AfterbirthPlusItems[id] : null);
        }
        public List <Item> GetSmeltedTrinkets()
        {
            var smeltedTrinketsOffset = GetPlayerInfo(SmeltedTrinketsPointerOffset);
            var trinketsCount         = ModdedHelper.LastUnmoddedTrinketId + ModdedHelper.ModdedTrinketsCount();
            var smeltedTrinkets       = Read(smeltedTrinketsOffset + 1, trinketsCount);

            var currentSmeltedTrinkets = new List <Item>();

            for (var i = 0; i < smeltedTrinkets.Length; i++)
            {
                if (smeltedTrinkets[i] != 1)
                {
                    continue;
                }

                var trinket = i < ModdedHelper.LastUnmoddedTrinketId ? Trinkets.AllTrinkets[i + 1] : ModdedHelper.GetModdedTrinket(i + 1);
                currentSmeltedTrinkets.Add(trinket);
            }

            currentSmeltedTrinkets.Sort((trinketA, trinketB) => string.CompareOrdinal(trinketA.I18N, trinketB.I18N));
            return(currentSmeltedTrinkets);
        }
        public override List <Item> GetPillPool()
        {
            var pillPool = new List <Item>();
            var playermanagetInstruct = GetPlayerManagetInstruct();
            var numberOfPlayers       = GetNumberOfPlayers(playermanagetInstruct);

            if (playermanagetInstruct == 0 || numberOfPlayers == 0)
            {
                return(pillPool);
            }
            var pillPoolArray = Read(playermanagetInstruct + PillsOffset, 13 * 4);

            for (var i = 0; i < 13; i++)
            {
                var pillId = MemoryReaderUtils.ConvertLittleEndian(pillPoolArray, i * 4, 4);
                if (pillId < 0)
                {
                    pillPool.Add(null);
                    continue;
                }
                pillPool.Add(pillId < ModdedHelper.UnmoddedPillsCount ? Pills.AllPills[pillId] : ModdedHelper.GetModdedPill(pillId));
            }
            return(pillPool);
        }