public void SortShop() { List <InventoryItemObject> items = new List <InventoryItemObject> (); foreach (Transform slot in shopInventory.slots) { InventoryItemObject item = GetItemObjectInSlot(slot); if (item != null) { items.Add(item); item.Take(); item.transform.parent = null; } } List <InventoryItemObject> sortedItems; //sortedItems = items.OrderByDescending(go=>go.info.uiInfo.size.x*go.info.uiInfo.size.y).ToList(); //sortedItems = items.OrderBy(go=>go.info.name).ToList(); sortedItems = items.OrderBy(go => go.info.costInfo.timePrice).ToList(); //sortedItems.Reverse(); foreach (InventoryItemObject itemObj in sortedItems) { itemObj.Place(FindEmptySlot(itemObj, SlotType.Shop)); //InventoryItem item = ItemDatabase.reference.FindByIndex(itemObj.info.databaseIndex); //InitItem (item, SlotType.Shop); // need to be initialized in shop inventory, not player inventory } }