private static Dictionary <Guid, Item> ConvertItemsForPlaying(SaveData.SerializableItemDictionary itemSdos) { var items = new Dictionary <Guid, Item>(); foreach (var sdo in itemSdos) { Item item; switch (sdo.Value.ItemCategory.ToLower()) { case "armor": item = ArmorSdo.ConvertToArmor((ArmorSdo)sdo.Value); break; case "weapon": item = WeaponSdo.ConvertToWeapon((WeaponSdo)sdo.Value); break; case "consumable": throw new NotImplementedException(); default: Debug.Log($@"Item Category {sdo.Value.ItemCategory.ToLower()} not found. Converting to Item."); item = ItemSdo.ConvertToItem(sdo.Value); break; } items.Add(item.Id, item); } return(items); }
public static Item ConvertToItem(ItemSdo sdo) { var item = new Item { Rarity = sdo.Rarity, EquipmentSlotType = sdo.EquipmentSlotType, EquipmentSlots = sdo.EquipmentSlots, ItemType = sdo.ItemType, ItemCategory = sdo.ItemCategory, Id = sdo.Id, ItemDice = sdo.ItemDice, WorldPrefab = ItemStore.Instance.GetWorldPrefabForItemByType(sdo.ItemType), ItemName = sdo.ItemName, Properties = sdo.Properties }; return(item); }
private static SaveData.SerializableItemDictionary ConvertItemsForSaving(Dictionary <Guid, Item> items) { if (items == null) { return(null); } var sdos = new SaveData.SerializableItemDictionary(); foreach (var item in items) { try { ItemSdo sdo; switch (item.Value.ItemCategory.ToLower()) { case "armor": sdo = ArmorSdo.ConvertToArmorSdo((Armor)item.Value); break; case "weapon": sdo = WeaponSdo.ConvertToWeaponSdo((Weapon)item.Value); break; case "consumable": throw new NotImplementedException(); default: Debug.Log($@"Item Category {item.Value.ItemCategory.ToLower()} not found. Converting to ItemSdo."); sdo = ItemSdo.ConvertToItemSdo(item.Value); break; } sdos.Add(sdo.Id, sdo); } catch (Exception e) { Debug.Log($"Error converting {item.Value.ItemName}: {e.Message}"); } } return(sdos); }