예제 #1
0
        public void SetupView(Goods goods, bool isSelected, int ticketID, bool isMultiCurrency = false)
        {
            ShopGoodsMetaData shopGoodsMetaDataByKey;

            this._goods           = goods;
            this._ticketID        = ticketID;
            this._isMultiCurrency = isMultiCurrency;
            this.SetItemDefaultColor();
            base.transform.Find("BG/Selected").gameObject.SetActive(isSelected);
            base.transform.Find("BG/Unselected").gameObject.SetActive(!isSelected);
            if (this._ticketID > 0)
            {
                int hCoinCost = Singleton <PlayerModule> .Instance.playerData.gachaTicketPriceDict[this._ticketID];
                shopGoodsMetaDataByKey = new ShopGoodsMetaData(this._ticketID, this._ticketID, 1, 1, hCoinCost, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7fffffff, 1, 0x2710, false);
                if (Singleton <PlayerModule> .Instance.playerData.gachaTicketPriceDict.ContainsKey(this._ticketID / 10))
                {
                    hCoinCost = Singleton <PlayerModule> .Instance.playerData.gachaTicketPriceDict[this._ticketID / 10];
                    shopGoodsMetaDataByKey = new ShopGoodsMetaData(this._ticketID, this._ticketID / 10, 1, 10, hCoinCost * 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7fffffff, 1, 0x2710, false);
                }
            }
            else
            {
                shopGoodsMetaDataByKey = ShopGoodsMetaDataReader.GetShopGoodsMetaDataByKey((int)goods.get_goods_id());
            }
            StorageDataItemBase dummyStorageDataItem = Singleton <StorageModule> .Instance.GetDummyStorageDataItem(shopGoodsMetaDataByKey.ItemID, shopGoodsMetaDataByKey.ItemLevel);

            dummyStorageDataItem.number = shopGoodsMetaDataByKey.ItemNum;
            this.SetupSaleLabel(shopGoodsMetaDataByKey);
            base.transform.Find("FragmentIcon").gameObject.SetActive(dummyStorageDataItem is AvatarFragmentDataItem);
            Sprite spriteByPrefab = Miscs.GetSpriteByPrefab(dummyStorageDataItem.GetIconPath());

            base.transform.Find("ItemIcon/Icon").GetComponent <Image>().sprite       = spriteByPrefab;
            base.transform.Find("ItemIcon/FrameBg").GetComponent <Image>().sprite    = Miscs.GetSpriteByPrefab(MiscData.Config.ItemRarityBGImgPath[dummyStorageDataItem.rarity]);
            base.transform.Find("ItemIcon/FrameLight").GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab(MiscData.Config.ItemRarityLightImgPath[dummyStorageDataItem.rarity]);
            base.transform.Find("ItemIcon/FrameBg").gameObject.SetActive(true);
            base.transform.Find("ItemIcon/FrameLight").gameObject.SetActive(true);
            this.SetupDesc(dummyStorageDataItem);
            this.SetupRarityView(dummyStorageDataItem);
            this.SetupStigmataTypeIcon(dummyStorageDataItem);
            this.SetupPrice(shopGoodsMetaDataByKey);
            if (goods.get_buy_times() >= shopGoodsMetaDataByKey.MaxBuyTimes)
            {
                this.SetItemGrey();
            }
            else
            {
                base.transform.Find("BG/Unselected/NowPrize").gameObject.SetActive(true);
                base.transform.Find("BG/Unselected/Empty").gameObject.SetActive(false);
                Color color = base.transform.Find("BG/Unselected/Image").GetComponent <Image>().color;
                color.a = 1f;
                base.transform.Find("BG/Unselected/Image").GetComponent <Image>().color = color;
                base.transform.Find("BG/Selected/NowPrize").gameObject.SetActive(true);
                base.transform.Find("BG/Selected/Empty").gameObject.SetActive(false);
                color   = base.transform.Find("BG/Unselected/Image").GetComponent <Image>().color;
                color.a = 1f;
                base.transform.Find("BG/Unselected/Image").GetComponent <Image>().color = color;
                base.transform.Find("ItemIcon/SellOut").gameObject.SetActive(false);
            }
        }
예제 #2
0
        private void SetupSaleLabel(ShopGoodsMetaData goodsItem)
        {
            if (goodsItem.IsSuperWorth)
            {
                base.transform.Find("SaleLabel").gameObject.SetActive(true);
                base.transform.Find("SaleLabel/Bg").GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab("SpriteOutput/ShopIcons/SalePatternSuperWorth");
                base.transform.Find("SaleLabel/Text").GetComponent <Text>().text  = LocalizationGeneralLogic.GetText("Menu_ShopStoreDiscountSuperWorth", new object[0]);
            }
            else if (goodsItem.Discount < 0x2710)
            {
                base.transform.Find("SaleLabel").gameObject.SetActive(true);
                base.transform.Find("SaleLabel/Bg").GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab("SpriteOutput/ShopIcons/SalePatternDiscount");
                int num = Mathf.RoundToInt((float)(goodsItem.Discount / 0x3e8));
                switch (num)
                {
                case 1:
                    base.transform.Find("SaleLabel/Text").GetComponent <Text>().text = LocalizationGeneralLogic.GetText("Menu_ShopStoreDiscountOne", new object[0]);
                    return;

                case 2:
                    base.transform.Find("SaleLabel/Text").GetComponent <Text>().text = LocalizationGeneralLogic.GetText("Menu_ShopStoreDiscountTwo", new object[0]);
                    return;

                case 3:
                    base.transform.Find("SaleLabel/Text").GetComponent <Text>().text = LocalizationGeneralLogic.GetText("Menu_ShopStoreDiscountThree", new object[0]);
                    return;

                case 4:
                    base.transform.Find("SaleLabel/Text").GetComponent <Text>().text = LocalizationGeneralLogic.GetText("Menu_ShopStoreDiscountFour", new object[0]);
                    return;

                case 5:
                    base.transform.Find("SaleLabel/Text").GetComponent <Text>().text = LocalizationGeneralLogic.GetText("Menu_ShopStoreDiscountFive", new object[0]);
                    return;

                case 6:
                    base.transform.Find("SaleLabel/Text").GetComponent <Text>().text = LocalizationGeneralLogic.GetText("Menu_ShopStoreDiscountSix", new object[0]);
                    return;

                case 7:
                    base.transform.Find("SaleLabel/Text").GetComponent <Text>().text = LocalizationGeneralLogic.GetText("Menu_ShopStoreDiscountSeven", new object[0]);
                    return;

                case 8:
                    base.transform.Find("SaleLabel/Text").GetComponent <Text>().text = LocalizationGeneralLogic.GetText("Menu_ShopStoreDiscountEight", new object[0]);
                    return;
                }
                if (num == 9)
                {
                    base.transform.Find("SaleLabel/Text").GetComponent <Text>().text = LocalizationGeneralLogic.GetText("Menu_ShopStoreDiscountNine", new object[0]);
                }
            }
            else
            {
                base.transform.Find("SaleLabel").gameObject.SetActive(false);
            }
        }
예제 #3
0
        public static List <int> GetGoodsRealPrice(Goods goods)
        {
            ShopGoodsMetaData shopGoodsMetaDataByKey = ShopGoodsMetaDataReader.GetShopGoodsMetaDataByKey((int)goods.get_goods_id());
            List <int>        goodsOriginPrice       = GetGoodsOriginPrice(goods);

            for (int i = 0; i < goodsOriginPrice.Count; i++)
            {
                goodsOriginPrice[i] = (int)Mathf.Floor((((float)goodsOriginPrice[i]) * shopGoodsMetaDataByKey.Discount) / 10000f);
            }
            return(goodsOriginPrice);
        }
예제 #4
0
        public override string ToString()
        {
            object[] args = new object[] { this.shopID, this.isOpen, this.shopNameTextID, this.nextAutoRefreshTime, this.manualRefreshTimes, this.nextRefreshCost, this.maxManualRefreshTimes };
            string   str  = string.Format("<StoreDataItem>\nID: {0}\nisOpen: {1}\nnameID: {2}\nnextAutoRefreshTime: {3}\nmanualRefreshTimes: {4}\nnextRefreshHCoinCost: {5}\nmaxManualRefreshTimes: {6}", args) + "\ngoodsList: " + this.goodsList.Count.ToString() + "\n";

            foreach (Goods goods in this.goodsList)
            {
                ShopGoodsMetaData   shopGoodsMetaDataByKey = ShopGoodsMetaDataReader.GetShopGoodsMetaDataByKey((int)goods.get_goods_id());
                StorageDataItemBase dummyStorageDataItem   = Singleton <StorageModule> .Instance.GetDummyStorageDataItem(shopGoodsMetaDataByKey.ItemID, shopGoodsMetaDataByKey.ItemLevel);

                dummyStorageDataItem.number = shopGoodsMetaDataByKey.ItemNum;
                string   str2      = str;
                object[] objArray2 = new object[] {
                    str2, "ID: ", goods.get_goods_id(), " name: ", dummyStorageDataItem.GetDisplayTitle(), " level: ", shopGoodsMetaDataByKey.ItemLevel.ToString(), " number: ", shopGoodsMetaDataByKey.ItemNum.ToString(), " hcoinCost: ", shopGoodsMetaDataByKey.HCoinCost.ToString(), " scoinCost: ", shopGoodsMetaDataByKey.SCoinCost.ToString(), " maxBuyTimes: ", shopGoodsMetaDataByKey.MaxBuyTimes.ToString(), " buyTimes: ",
                    goods.get_buy_times().ToString(), "\n"
                };
                str = string.Concat(objArray2);
            }
            return(str);
        }
예제 #5
0
        public void OnIconClick()
        {
            ShopGoodsMetaData shopGoodsMetaDataByKey;

            if (this._ticketID > 0)
            {
                int hCoinCost = Singleton <PlayerModule> .Instance.playerData.gachaTicketPriceDict[this._ticketID];
                shopGoodsMetaDataByKey = new ShopGoodsMetaData(this._ticketID, this._ticketID, 1, 1, hCoinCost, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7fffffff, 1, 0x2710, false);
                if (Singleton <PlayerModule> .Instance.playerData.gachaTicketPriceDict.ContainsKey(this._ticketID / 10))
                {
                    hCoinCost = Singleton <PlayerModule> .Instance.playerData.gachaTicketPriceDict[this._ticketID / 10];
                    shopGoodsMetaDataByKey = new ShopGoodsMetaData(this._ticketID, this._ticketID / 10, 1, 10, hCoinCost * 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7fffffff, 1, 0x2710, false);
                }
            }
            else
            {
                shopGoodsMetaDataByKey = ShopGoodsMetaDataReader.GetShopGoodsMetaDataByKey((int)this._goods.get_goods_id());
            }
            StorageDataItemBase dummyStorageDataItem = Singleton <StorageModule> .Instance.GetDummyStorageDataItem(shopGoodsMetaDataByKey.ItemID, shopGoodsMetaDataByKey.ItemLevel);

            dummyStorageDataItem.number = shopGoodsMetaDataByKey.ItemNum;
            UIUtil.ShowItemDetail(dummyStorageDataItem, true, true);
            this.OnClick();
        }
예제 #6
0
        public void OnSelectGoods(Goods goods)
        {
            ShopGoodsMetaData shopGoodsMetaDataByKey;

            if (this._shopType == UIShopType.SHOP_GACHATICKET)
            {
                int iD        = (int)goods.get_goods_id();
                int hCoinCost = Singleton <PlayerModule> .Instance.playerData.gachaTicketPriceDict[(int)goods.get_goods_id()];
                shopGoodsMetaDataByKey = new ShopGoodsMetaData((int)goods.get_goods_id(), (int)goods.get_goods_id(), 1, 1, hCoinCost, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7fffffff, 1, 0x2710, false);
                if (Singleton <PlayerModule> .Instance.playerData.gachaTicketPriceDict.ContainsKey(iD / 10))
                {
                    hCoinCost = Singleton <PlayerModule> .Instance.playerData.gachaTicketPriceDict[(int)(goods.get_goods_id() / 10)];
                    shopGoodsMetaDataByKey = new ShopGoodsMetaData(iD, iD / 10, 1, 10, hCoinCost * 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7fffffff, 1, 0x2710, false);
                }
            }
            else
            {
                shopGoodsMetaDataByKey = ShopGoodsMetaDataReader.GetShopGoodsMetaDataByKey((int)goods.get_goods_id());
            }
            if (shopGoodsMetaDataByKey != null)
            {
                this._currentSelectedGoodsID = (int)goods.get_goods_id();
                if (this._shopType == UIShopType.SHOP_ACTIVITY)
                {
                    this.RefreshActivityScroller();
                }
                else
                {
                    this._scrollViewTrans.GetComponent <MonoGridScroller>().RefreshCurrent();
                }
                base.transform.parent.Find("CartInfoPanel/Info").gameObject.SetActive(true);
                StorageDataItemBase dummyStorageDataItem = Singleton <StorageModule> .Instance.GetDummyStorageDataItem(shopGoodsMetaDataByKey.ItemID, shopGoodsMetaDataByKey.ItemLevel);

                string text = string.Empty;
                if (goods.get_buy_times() >= shopGoodsMetaDataByKey.MaxBuyTimes)
                {
                    text = LocalizationGeneralLogic.GetText("Menu_ShopStoreBuyCostLackMoney", new object[0]);
                    base.transform.parent.Find("CartInfoPanel/BuyBtn").GetComponent <Button>().interactable = false;
                }
                else
                {
                    base.transform.parent.Find("CartInfoPanel/BuyBtn").GetComponent <Button>().interactable = true;
                    if (shopGoodsMetaDataByKey.ItemNum > 1)
                    {
                        object[] replaceParams = new object[] { dummyStorageDataItem.GetDisplayTitle(), shopGoodsMetaDataByKey.ItemNum };
                        text = LocalizationGeneralLogic.GetText("Menu_ShopStoreBuyCostDescMulti", replaceParams);
                    }
                    else
                    {
                        object[] objArray2 = new object[] { dummyStorageDataItem.GetDisplayTitle() };
                        text = LocalizationGeneralLogic.GetText("Menu_ShopStoreBuyCostDescOne", objArray2);
                    }
                    if (this._shopType != UIShopType.SHOP_GACHATICKET)
                    {
                        int num3 = shopGoodsMetaDataByKey.MaxBuyTimes - ((int)goods.get_buy_times());
                        if (goods.get_can_be_refreshSpecified() && goods.get_can_be_refresh())
                        {
                            object[] objArray3 = new object[] { num3 };
                            text = text + LocalizationGeneralLogic.GetText("Menu_ShopStoreBuyCostRemainToday", objArray3);
                        }
                        else
                        {
                            object[] objArray4 = new object[] { num3 };
                            text = text + LocalizationGeneralLogic.GetText("Menu_ShopStoreBuyCostRemainTotal", objArray4);
                        }
                    }
                }
                base.transform.parent.Find("CartInfoPanel/Info/Desc").GetComponent <Text>().text = text;
            }
        }
예제 #7
0
        private bool CanBuyGoods()
        {
            ShopGoodsMetaData shopGoodsMetaDataByKey;

            if (this._currentSelectedGoodsID == 0)
            {
                Singleton <MainUIManager> .Instance.ShowDialog(new GeneralHintDialogContext(LocalizationGeneralLogic.GetText("Menu_ShopNoSelect", new object[0]), 2f), UIType.Any);

                return(false);
            }
            Goods goodsByID = this.GetGoodsByID(this._currentSelectedGoodsID);

            if (goodsByID == null)
            {
                return(false);
            }
            if (this._shopType == UIShopType.SHOP_GACHATICKET)
            {
                int hCoinCost = Singleton <PlayerModule> .Instance.playerData.gachaTicketPriceDict[(int)goodsByID.get_goods_id()];
                shopGoodsMetaDataByKey = new ShopGoodsMetaData((int)goodsByID.get_goods_id(), (int)goodsByID.get_goods_id(), 1, 1, hCoinCost, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x7fffffff, 1, 0x2710, false);
            }
            else
            {
                shopGoodsMetaDataByKey = ShopGoodsMetaDataReader.GetShopGoodsMetaDataByKey((int)goodsByID.get_goods_id());
            }
            if (goodsByID.get_buy_times() >= shopGoodsMetaDataByKey.MaxBuyTimes)
            {
                return(false);
            }
            List <int> list = (this._shopType != UIShopType.SHOP_GACHATICKET) ? UIUtil.GetGoodsRealPrice(goodsByID) : new List <int> {
                Singleton <PlayerModule> .Instance.playerData.gachaTicketPriceDict[(int)goodsByID.get_goods_id()]
            };
            int num2 = 0;

            if (shopGoodsMetaDataByKey.HCoinCost > 0)
            {
                if (list[num2] > Singleton <PlayerModule> .Instance.playerData.hcoin)
                {
                    Singleton <MainUIManager> .Instance.ShowDialog(new GeneralHintDialogContext(LocalizationGeneralLogic.GetText("Menu_ShopBuyGoodsLackHCoin", new object[0]), 2f), UIType.Any);

                    return(false);
                }
                num2++;
            }
            if (shopGoodsMetaDataByKey.SCoinCost > 0)
            {
                if (list[num2] > Singleton <PlayerModule> .Instance.playerData.scoin)
                {
                    Singleton <MainUIManager> .Instance.ShowDialog(new GeneralHintDialogContext(LocalizationGeneralLogic.GetText("Menu_ShopBuyGoodsLackSCoin", new object[0]), 2f), UIType.Any);

                    return(false);
                }
                num2++;
            }
            if (shopGoodsMetaDataByKey.CostItemNum > 0)
            {
                StorageDataItemBase storageItemByTypeAndID = Singleton <StorageModule> .Instance.GetStorageItemByTypeAndID(typeof(MaterialDataItem), shopGoodsMetaDataByKey.CostItemId);

                if ((storageItemByTypeAndID == null) || (list[num2] > storageItemByTypeAndID.number))
                {
                    Singleton <MainUIManager> .Instance.ShowDialog(new GeneralHintDialogContext(LocalizationGeneralLogic.GetText("Menu_ShopBuyGoodsLackSCoin", new object[0]), 2f), UIType.Any);

                    return(false);
                }
                num2++;
            }
            if (shopGoodsMetaDataByKey.CostItemNum2 > 0)
            {
                StorageDataItemBase base3 = Singleton <StorageModule> .Instance.GetStorageItemByTypeAndID(typeof(MaterialDataItem), shopGoodsMetaDataByKey.CostItemId2);

                if ((base3 == null) || (list[num2] > base3.number))
                {
                    Singleton <MainUIManager> .Instance.ShowDialog(new GeneralHintDialogContext(LocalizationGeneralLogic.GetText("Menu_ShopBuyGoodsLackSCoin", new object[0]), 2f), UIType.Any);

                    return(false);
                }
                num2++;
            }
            if (shopGoodsMetaDataByKey.CostItemNum3 > 0)
            {
                StorageDataItemBase base4 = Singleton <StorageModule> .Instance.GetStorageItemByTypeAndID(typeof(MaterialDataItem), shopGoodsMetaDataByKey.CostItemId3);

                if ((base4 == null) || (list[num2] > base4.number))
                {
                    Singleton <MainUIManager> .Instance.ShowDialog(new GeneralHintDialogContext(LocalizationGeneralLogic.GetText("Menu_ShopBuyGoodsLackSCoin", new object[0]), 2f), UIType.Any);

                    return(false);
                }
                num2++;
            }
            if (shopGoodsMetaDataByKey.CostItemNum4 > 0)
            {
                StorageDataItemBase base5 = Singleton <StorageModule> .Instance.GetStorageItemByTypeAndID(typeof(MaterialDataItem), shopGoodsMetaDataByKey.CostItemId4);

                if ((base5 == null) || (list[num2] > base5.number))
                {
                    Singleton <MainUIManager> .Instance.ShowDialog(new GeneralHintDialogContext(LocalizationGeneralLogic.GetText("Menu_ShopBuyGoodsLackSCoin", new object[0]), 2f), UIType.Any);

                    return(false);
                }
                num2++;
            }
            if (shopGoodsMetaDataByKey.CostItemNum5 > 0)
            {
                StorageDataItemBase base6 = Singleton <StorageModule> .Instance.GetStorageItemByTypeAndID(typeof(MaterialDataItem), shopGoodsMetaDataByKey.CostItemId5);

                if ((base6 == null) || (list[num2] > base6.number))
                {
                    Singleton <MainUIManager> .Instance.ShowDialog(new GeneralHintDialogContext(LocalizationGeneralLogic.GetText("Menu_ShopBuyGoodsLackSCoin", new object[0]), 2f), UIType.Any);

                    return(false);
                }
                num2++;
            }
            if (Singleton <StorageModule> .Instance.IsFull())
            {
                GeneralDialogContext dialogContext = new GeneralDialogContext {
                    type  = GeneralDialogContext.ButtonType.SingleButton,
                    title = LocalizationGeneralLogic.GetText("Menu_Title_Tips", new object[0]),
                    desc  = LocalizationGeneralLogic.GetText("Menu_ShopBuyGoodsBagFull", new object[0])
                };
                Singleton <MainUIManager> .Instance.ShowDialog(dialogContext, UIType.Any);

                return(false);
            }
            return(true);
        }
예제 #8
0
        public static List <int> GetGoodsOriginPrice(Goods goods)
        {
            ShopGoodsMetaData shopGoodsMetaDataByKey = ShopGoodsMetaDataReader.GetShopGoodsMetaDataByKey((int)goods.get_goods_id());
            List <int>        list = new List <int>();

            if (shopGoodsMetaDataByKey.HCoinCost > 0)
            {
                list.Add(shopGoodsMetaDataByKey.HCoinCost);
            }
            if (shopGoodsMetaDataByKey.SCoinCost > 0)
            {
                list.Add(shopGoodsMetaDataByKey.SCoinCost);
            }
            if (shopGoodsMetaDataByKey.CostItemId > 0)
            {
                list.Add(shopGoodsMetaDataByKey.CostItemNum);
            }
            if (shopGoodsMetaDataByKey.CostItemId2 > 0)
            {
                list.Add(shopGoodsMetaDataByKey.CostItemNum2);
            }
            if (shopGoodsMetaDataByKey.CostItemId3 > 0)
            {
                list.Add(shopGoodsMetaDataByKey.CostItemNum3);
            }
            if (shopGoodsMetaDataByKey.CostItemId4 > 0)
            {
                list.Add(shopGoodsMetaDataByKey.CostItemNum4);
            }
            if (shopGoodsMetaDataByKey.CostItemId5 > 0)
            {
                list.Add(shopGoodsMetaDataByKey.CostItemNum5);
            }
            float num      = 1f;
            int   buyTimes = ((int)goods.get_buy_times()) + 1;
            ShopGoodsPriceRateMetaData shopGoodsPriceRateMetaDataByKey = ShopGoodsPriceRateMetaDataReader.GetShopGoodsPriceRateMetaDataByKey(buyTimes);

            if (shopGoodsMetaDataByKey.PriceRateID == 1)
            {
                num *= shopGoodsPriceRateMetaDataByKey.PriceType1;
            }
            else if (shopGoodsMetaDataByKey.PriceRateID == 2)
            {
                num *= shopGoodsPriceRateMetaDataByKey.PriceType2;
            }
            else if (shopGoodsMetaDataByKey.PriceRateID == 3)
            {
                num *= shopGoodsPriceRateMetaDataByKey.PriceType3;
            }
            else if (shopGoodsMetaDataByKey.PriceRateID == 4)
            {
                num *= shopGoodsPriceRateMetaDataByKey.PriceType4;
            }
            else if (shopGoodsMetaDataByKey.PriceRateID == 5)
            {
                num *= shopGoodsPriceRateMetaDataByKey.PriceType5;
            }
            else if (shopGoodsMetaDataByKey.PriceRateID == 6)
            {
                num *= shopGoodsPriceRateMetaDataByKey.PriceType6;
            }
            else if (shopGoodsMetaDataByKey.PriceRateID == 7)
            {
                num *= shopGoodsPriceRateMetaDataByKey.PriceType7;
            }
            else if (shopGoodsMetaDataByKey.PriceRateID == 8)
            {
                num *= shopGoodsPriceRateMetaDataByKey.PriceType8;
            }
            else if (shopGoodsMetaDataByKey.PriceRateID == 9)
            {
                num *= shopGoodsPriceRateMetaDataByKey.PriceType9;
            }
            else if (shopGoodsMetaDataByKey.PriceRateID == 10)
            {
                num *= shopGoodsPriceRateMetaDataByKey.PriceType10;
            }
            num /= 100f;
            for (int i = 0; i < list.Count; i++)
            {
                list[i] = Mathf.FloorToInt(((float)list[i]) * num);
            }
            return(list);
        }
예제 #9
0
        private void SetupPrice(ShopGoodsMetaData goodsItem)
        {
            List <int> list = (this._ticketID <= 0) ? UIUtil.GetGoodsRealPrice(this._goods) : new List <int> {
                goodsItem.HCoinCost
            };

            if (this._isMultiCurrency)
            {
                if (list.Count > 3)
                {
                    base.transform.GetComponent <LayoutElement>().preferredWidth = 320f;
                }
                else
                {
                    base.transform.GetComponent <LayoutElement>().preferredWidth = 220f;
                }
            }
            Transform transform  = base.transform.Find("BG/Unselected/NowPrize");
            Transform transform2 = base.transform.Find("BG/Selected/NowPrize");
            int       num        = 1;

            if (goodsItem.HCoinCost > 0)
            {
                if (this._isMultiCurrency)
                {
                    transform.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite  = Miscs.GetSpriteByPrefab("SpriteOutput/RewardIcons/Hcoin");
                    transform2.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab("SpriteOutput/RewardIcons/Hcoin");
                    transform.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text       = list[num - 1].ToString();
                    transform2.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text      = list[num - 1].ToString();
                }
                else
                {
                    transform.Find("Image").GetComponent <Image>().sprite  = Miscs.GetSpriteByPrefab("SpriteOutput/RewardIcons/Hcoin");
                    transform2.Find("Image").GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab("SpriteOutput/RewardIcons/Hcoin");
                    transform.Find("Num").GetComponent <Text>().text       = list[num - 1].ToString();
                    transform2.Find("Num").GetComponent <Text>().text      = list[num - 1].ToString();
                }
                this.SetupCurrencyColor(list[num - 1] <= Singleton <PlayerModule> .Instance.playerData.hcoin, num);
                num++;
            }
            if (goodsItem.SCoinCost > 0)
            {
                if (this._isMultiCurrency)
                {
                    transform.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite  = Miscs.GetSpriteByPrefab("SpriteOutput/RewardIcons/Scoin");
                    transform2.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab("SpriteOutput/RewardIcons/Scoin");
                    transform.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text       = list[num - 1].ToString();
                    transform2.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text      = list[num - 1].ToString();
                }
                else
                {
                    transform.Find("Image").GetComponent <Image>().sprite  = Miscs.GetSpriteByPrefab("SpriteOutput/RewardIcons/Scoin");
                    transform2.Find("Image").GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab("SpriteOutput/RewardIcons/Scoin");
                    transform.Find("Num").GetComponent <Text>().text       = list[num - 1].ToString();
                    transform2.Find("Num").GetComponent <Text>().text      = list[num - 1].ToString();
                }
                this.SetupCurrencyColor(list[num - 1] <= Singleton <PlayerModule> .Instance.playerData.scoin, num);
                num++;
            }
            if (goodsItem.CostItemId > 0)
            {
                StorageDataItemBase dummyStorageDataItem = Singleton <StorageModule> .Instance.GetDummyStorageDataItem(goodsItem.CostItemId, 1);

                string currencyIconPath = MiscData.GetCurrencyIconPath(goodsItem.CostItemId);
                if (string.IsNullOrEmpty(currencyIconPath))
                {
                    currencyIconPath = dummyStorageDataItem.GetIconPath();
                }
                if (this._isMultiCurrency)
                {
                    transform.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite  = Miscs.GetSpriteByPrefab(currencyIconPath);
                    transform2.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab(currencyIconPath);
                    transform.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text       = list[num - 1].ToString();
                    transform2.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text      = list[num - 1].ToString();
                }
                else
                {
                    transform.Find("Image").GetComponent <Image>().sprite  = Miscs.GetSpriteByPrefab(currencyIconPath);
                    transform2.Find("Image").GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab(currencyIconPath);
                    transform.Find("Num").GetComponent <Text>().text       = list[num - 1].ToString();
                    transform2.Find("Num").GetComponent <Text>().text      = list[num - 1].ToString();
                }
                int number = 0;
                StorageDataItemBase base3 = Singleton <StorageModule> .Instance.TryGetMaterialDataByID(goodsItem.CostItemId);

                if (base3 != null)
                {
                    number = base3.number;
                }
                this.SetupCurrencyColor(list[num - 1] <= number, num);
                num++;
            }
            if (goodsItem.CostItemId2 > 0)
            {
                StorageDataItemBase base4 = Singleton <StorageModule> .Instance.GetDummyStorageDataItem(goodsItem.CostItemId2, 1);

                string iconPath = MiscData.GetCurrencyIconPath(goodsItem.CostItemId2);
                if (string.IsNullOrEmpty(iconPath))
                {
                    iconPath = base4.GetIconPath();
                }
                if (this._isMultiCurrency)
                {
                    transform.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite  = Miscs.GetSpriteByPrefab(iconPath);
                    transform2.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab(iconPath);
                    transform.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text       = list[num - 1].ToString();
                    transform2.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text      = list[num - 1].ToString();
                }
                int num3 = 0;
                StorageDataItemBase base5 = Singleton <StorageModule> .Instance.TryGetMaterialDataByID(goodsItem.CostItemId2);

                if (base5 != null)
                {
                    num3 = base5.number;
                }
                this.SetupCurrencyColor(list[num - 1] <= num3, num);
                num++;
            }
            if (goodsItem.CostItemId3 > 0)
            {
                StorageDataItemBase base6 = Singleton <StorageModule> .Instance.GetDummyStorageDataItem(goodsItem.CostItemId3, 1);

                string str3 = MiscData.GetCurrencyIconPath(goodsItem.CostItemId3);
                if (string.IsNullOrEmpty(str3))
                {
                    str3 = base6.GetIconPath();
                }
                if (this._isMultiCurrency)
                {
                    transform.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite  = Miscs.GetSpriteByPrefab(str3);
                    transform2.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab(str3);
                    transform.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text       = list[num - 1].ToString();
                    transform2.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text      = list[num - 1].ToString();
                }
                int num4 = 0;
                StorageDataItemBase base7 = Singleton <StorageModule> .Instance.TryGetMaterialDataByID(goodsItem.CostItemId3);

                if (base7 != null)
                {
                    num4 = base7.number;
                }
                this.SetupCurrencyColor(list[num - 1] <= num4, num);
                num++;
            }
            if (goodsItem.CostItemId4 > 0)
            {
                StorageDataItemBase base8 = Singleton <StorageModule> .Instance.GetDummyStorageDataItem(goodsItem.CostItemId4, 1);

                string str4 = MiscData.GetCurrencyIconPath(goodsItem.CostItemId4);
                if (string.IsNullOrEmpty(str4))
                {
                    str4 = base8.GetIconPath();
                }
                if (this._isMultiCurrency)
                {
                    transform.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite  = Miscs.GetSpriteByPrefab(str4);
                    transform2.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab(str4);
                    transform.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text       = list[num - 1].ToString();
                    transform2.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text      = list[num - 1].ToString();
                }
                int num5 = 0;
                StorageDataItemBase base9 = Singleton <StorageModule> .Instance.TryGetMaterialDataByID(goodsItem.CostItemId4);

                if (base9 != null)
                {
                    num5 = base9.number;
                }
                this.SetupCurrencyColor(list[num - 1] <= num5, num);
                num++;
            }
            if (goodsItem.CostItemId5 > 0)
            {
                StorageDataItemBase base10 = Singleton <StorageModule> .Instance.GetDummyStorageDataItem(goodsItem.CostItemId5, 1);

                string str5 = MiscData.GetCurrencyIconPath(goodsItem.CostItemId5);
                if (string.IsNullOrEmpty(str5))
                {
                    str5 = base10.GetIconPath();
                }
                if (this._isMultiCurrency)
                {
                    transform.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite  = Miscs.GetSpriteByPrefab(str5);
                    transform2.Find(string.Format("{0}/Image", num)).GetComponent <Image>().sprite = Miscs.GetSpriteByPrefab(str5);
                    transform.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text       = list[num - 1].ToString();
                    transform2.Find(string.Format("{0}/Num", num)).GetComponent <Text>().text      = list[num - 1].ToString();
                }
                int num6 = 0;
                StorageDataItemBase base11 = Singleton <StorageModule> .Instance.TryGetMaterialDataByID(goodsItem.CostItemId5);

                if (base11 != null)
                {
                    num6 = base11.number;
                }
                this.SetupCurrencyColor(list[num - 1] <= num6, num);
                num++;
            }
            if (list.Count < transform.childCount)
            {
                for (int i = list.Count; i < transform.childCount; i++)
                {
                    transform.GetChild(i).gameObject.SetActive(false);
                    transform2.GetChild(i).gameObject.SetActive(false);
                }
            }
            if (goodsItem.Discount < 0x2710)
            {
                int num8 = UIUtil.GetGoodsOriginPrice(this._goods)[0];
                base.transform.Find("BG/Unselected/FakePrize").gameObject.SetActive(true);
                base.transform.Find("BG/Selected/FakePrize").gameObject.SetActive(true);
                base.transform.Find("BG/Unselected/FakePrize/Num").GetComponent <Text>().text = num8.ToString();
                base.transform.Find("BG/Selected/FakePrize/Num").GetComponent <Text>().text   = num8.ToString();
            }
            else
            {
                base.transform.Find("BG/Unselected/FakePrize").gameObject.SetActive(false);
                base.transform.Find("BG/Selected/FakePrize").gameObject.SetActive(false);
            }
            if (!this._isMultiCurrency)
            {
                base.transform.Find("BG/Unselected/NowPrize/Image").gameObject.SetActive(true);
                base.transform.Find("BG/Unselected/NowPrize/x").gameObject.SetActive(true);
                base.transform.Find("BG/Unselected/NowPrize/Num").gameObject.SetActive(true);
                base.transform.Find("BG/Selected/NowPrize/Image").gameObject.SetActive(true);
                base.transform.Find("BG/Selected/NowPrize/x").gameObject.SetActive(true);
                base.transform.Find("BG/Selected/NowPrize/Num").gameObject.SetActive(true);
            }
        }