using System;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
//使用货币购买坊市表商品
|
public class BuyItemWin : UIBase
|
{
|
[SerializeField] ItemCell itemCell;
|
[SerializeField] Text nameText;
|
[SerializeField] Text countText;
|
[SerializeField] Text descText;
|
[SerializeField] SliderPanel sliderPanel;
|
[SerializeField] Text limitText;
|
[SerializeField] Image moneyIcon;
|
[SerializeField] Text moneyText;
|
[SerializeField] Button buyButton;
|
|
|
int useCnt;
|
int maxCnt;
|
protected override void InitComponent()
|
{
|
buyButton.AddListener(BuyGoods);
|
}
|
|
|
|
protected override void OnPreOpen()
|
{
|
useCnt = 1;
|
Display();
|
}
|
|
void Display()
|
{
|
var shopConfig = StoreConfig.Get(StoreModel.Instance.buyShopID);
|
var itemID = shopConfig.ItemID;
|
var itemCount = shopConfig.ItemCnt;
|
itemCell.Init(new ItemCellModel(itemID, false, itemCount*useCnt));
|
var itemConfig = ItemConfig.Get(itemID);
|
nameText.text = itemConfig.ItemName;
|
countText.text = Language.Get("storename12", GetItemCount(itemID));
|
descText.text = itemConfig.Description;
|
|
var buyCnt = StoreModel.Instance.GetShopLimitBuyCount(StoreModel.Instance.buyShopID);
|
maxCnt = shopConfig.LimitCnt - buyCnt;
|
if (maxCnt == 0)
|
{
|
//没有限购,用货币可购买数量
|
maxCnt = Math.Max(1, (int)(UIHelper.GetMoneyCnt(shopConfig.MoneyType)/shopConfig.MoneyNum));
|
}
|
|
OnSliderChange(useCnt);
|
sliderPanel.Init((value) => { OnSliderChange(value); }, maxCnt);
|
}
|
|
void OnSliderChange(int value)
|
{
|
var shopConfig = StoreConfig.Get(StoreModel.Instance.buyShopID);
|
useCnt = value;
|
itemCell.countText.text = UIHelper.ReplaceLargeNum(value*shopConfig.ItemCnt);
|
|
string limitStr = "";
|
if (shopConfig.LimitCnt == 0)
|
{
|
limitStr = "";
|
}
|
else if (shopConfig.ResetType == 0)
|
{
|
//限购
|
limitStr = Language.Get("storename8", useCnt, maxCnt);
|
}
|
else if (shopConfig.ResetType == 1)
|
{
|
//每日限购
|
limitStr = Language.Get("storename6", useCnt, maxCnt);
|
}
|
else if (shopConfig.ResetType == 2)
|
{
|
//每周限购
|
limitStr = Language.Get("storename7", useCnt, maxCnt);
|
}
|
limitText.text = limitStr;
|
|
moneyIcon.SetIconWithMoneyType(shopConfig.MoneyType);
|
moneyText.text = UIHelper.ShowUseMoney(shopConfig.MoneyType, shopConfig.MoneyNum * useCnt, false);
|
|
}
|
|
void BuyGoods()
|
{
|
CloseWindow();
|
StoreModel.Instance.SendBuyShopItem(StoreConfig.Get(StoreModel.Instance.buyShopID), useCnt);
|
}
|
|
//如果物品是自动转换货币类型的,则返回货币数量,否则返回物品数量
|
long GetItemCount(int id)
|
{
|
var config = ItemConfig.Get(id);
|
if (config.Effect1 == 264)
|
{
|
return UIHelper.GetMoneyCnt(config.EffectValueB1);
|
}
|
|
var count = PackManager.Instance.GetItemCountByID(GeneralDefine.GetPackTypeByItemType(config.Type), id);
|
if (config.Type == 150)
|
{
|
count = Math.Max(0, count - 1);
|
}
|
|
return count;
|
}
|
}
|