public static List <int> RemoveInvalidIDListEntries(this List <int> starterList, bool checkPlayerInventories = true, bool checkUnlocked = true)
        {
            List <int> returnList = new List <int>();

            returnList.AddRange(starterList);
            for (int i = returnList.Count; i > 0; i--)
            {
                int ID = returnList[i - 1];
                if (checkPlayerInventories)
                {
                    if (GameManager.Instance.PrimaryPlayer && GameManager.Instance.PrimaryPlayer.HasPickupID(ID))
                    {
                        returnList.RemoveAt(i - 1);
                    }
                    else if (GameManager.Instance.SecondaryPlayer && GameManager.Instance.SecondaryPlayer.HasPickupID(ID))
                    {
                        returnList.RemoveAt(i - 1);
                    }
                }
                if (checkUnlocked)
                {
                    PickupObject itemByID = PickupObjectDatabase.GetById(ID);
                    if (!itemByID.PrerequisitesMet())
                    {
                        returnList.RemoveAt(i - 1);
                    }
                }
            }
            return(returnList);
        }