public ShopPurchaseMessageHandler(IShopItemDataStore shopItemDataStore, IItemPartDataStore itemPartDataStore, ICharacterBuilder characterBuilder, IUnitOfWorkFactory unitOfWorkFactory)
 {
     _shopItemDataStore = shopItemDataStore;
     _itemPartDataStore = itemPartDataStore;
     _characterBuilder  = characterBuilder;
     _unitOfWorkFactory = unitOfWorkFactory;
 }
        public ShopItemDataStore(IResourceManager resourceManager,
                                 IItemPartDataStore itemPartDataStore,
                                 IItemHouseDecorationDataStore houseDecorationDataStore,
                                 IItemEnchantDataStore enchantDataStore,
                                 IItemRecipeDataStore recipeDataStore,
                                 ILogger <ShopItemDataStore> logger)
        {
            logger.LogInformation("loading...");
            var resource = XmlSlurper.ParseText(resourceManager.ReadResource(Resource));

            var tmp = new Dictionary <int, ShopItem>();

            foreach (dynamic itemRes in resource.ProductList)
            {
                var shopItem = new ShopItem();
                shopItem.Display      = itemRes.DISPLAY;
                shopItem.Index        = itemRes.Index;
                shopItem.Enable       = itemRes.Enable == 1;
                shopItem.Free         = itemRes.Free == 1;
                shopItem.Sale         = itemRes.Sale == 1;
                shopItem.Event        = itemRes.Event == 1;
                shopItem.Couple       = itemRes.Couple == 1;
                shopItem.Nobuy        = itemRes.Nobuy == 1;
                shopItem.Rand         = itemRes.Rand != "No";
                shopItem.UseType      = ItemUseType.Parse(itemRes.UseType);
                shopItem.Use0         = itemRes.Use0;
                shopItem.Use1         = itemRes.Use1;
                shopItem.Use2         = itemRes.Use2;
                shopItem.PriceType    = ShopPriceType.Parse(itemRes.PriceType);
                shopItem.Price0       = itemRes.Price0;
                shopItem.Price1       = itemRes.Price1;
                shopItem.Price2       = itemRes.Price2;
                shopItem.OldPrice0    = itemRes.OldPrice0;
                shopItem.OldPrice1    = itemRes.OldPrice1;
                shopItem.OldPrice2    = itemRes.OldPrice2;
                shopItem.CouplePrice  = itemRes.CouplePrice;
                shopItem.CategoryType = ShopCategoryType.Parse(itemRes.Category);
                shopItem.Name         = itemRes.Name;
                shopItem.GoldBack     = itemRes.GoldBack;
                shopItem.EnableParcel = itemRes.EnableParcel == 1;
                shopItem.Hero         = (int)itemRes.Char;
                shopItem.Items        = new[] { itemRes.Item0, itemRes.Item1, itemRes.Item2, itemRes.Item3, itemRes.Item4, itemRes.Item5, itemRes.Item6, itemRes.Item7, itemRes.Item8, itemRes.Item9 }
                .Select(p => (int)p).Where(p => p != 0).ToArray();
                tmp.Add(shopItem.Index, shopItem);
            }

            foreach (var kvp in tmp.OrderBy(p => p.Key))
            {
                Add(kvp.Key, kvp.Value);
            }

            _itemPartDataStore        = itemPartDataStore;
            _houseDecorationDataStore = houseDecorationDataStore;
            _enchantDataStore         = enchantDataStore;
            _recipeDataStore          = recipeDataStore;
            logger.LogInformation("loaded.");
        }
Beispiel #3
0
 public CharacterEquipmentBuilder(IShopItemDataStore shopItemDataStore, IItemPartDataStore itemPartDataStore)
 {
     _shopItemDataStore = shopItemDataStore;
     _itemPartDataStore = itemPartDataStore;
 }