예제 #1
0
    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 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);
    }
예제 #3
0
    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);
    }