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 Armor ConvertToArmor(ArmorSdo sdo) { var armor = new Armor(); armor.Type = sdo.Type; armor.Defense = sdo.Defense; armor.Rarity = sdo.Rarity; armor.EquipmentSlotType = sdo.EquipmentSlotType; armor.EquipmentSlots = sdo.EquipmentSlots; armor.ItemType = sdo.ItemType; armor.ItemCategory = sdo.ItemCategory; armor.Id = sdo.Id; armor.ItemDice = sdo.ItemDice; armor.ItemName = sdo.ItemName; armor.Properties = sdo.Properties; return(armor); }
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); }