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);
    }
示例#2
0
    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);
    }