public void PlaceItem(string item, string location) { if (shopItems.ContainsKey(location)) { shopItems[location].Add(item); } else { nonShopItems.Add(location, item); } UpdateOrder(location); unplacedLocations.Remove(location); if (LogicManager.GetItemDef(item).progression) { unplacedProgression.Remove(item); UpdateReachableLocations(item); } else { unplacedItems.Remove(item); } if (LogicManager.GetItemDef(item).pool == "Grub") { pm.AddGrubLocation(location); } else if (LogicManager.GetItemDef(item).pool == "Essence_Boss" || LogicManager.GetItemDef(item).pool == "Root") { pm.AddEssenceLocation(location, LogicManager.GetItemDef(item).geo); } else if (LogicManager.GetItemDef(item).pool == "Flame") { pm.AddFlameLocation(location); } }