using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
public class StoreCell : MonoBehaviour
|
{
|
|
[SerializeField] Transform saleRect;
|
[SerializeField] Text saleText;
|
[SerializeField] Text itemName;
|
[SerializeField] ItemCell itemCell;
|
[SerializeField] Text limitText;
|
[SerializeField] Text lockTip;
|
[SerializeField] Image priceIcon;
|
[SerializeField] Text priceText;
|
[SerializeField] Text salePriceText;
|
[SerializeField] Button buyButton;
|
//免费 和 已售罄的显示 同一个按钮
|
[SerializeField] Button freeButton;
|
[SerializeField] Image freeRedPoint;
|
[SerializeField] Text freeText;
|
|
public void Display(int index)
|
{
|
if (!StoreModel.Instance.storeTypeDict.ContainsKey((int)StoreModel.Instance.selectStoreFuncType))
|
{
|
return;
|
}
|
|
var list = StoreModel.Instance.storeTypeDict[(int)StoreModel.Instance.selectStoreFuncType];
|
var storeData = list[index];
|
int shopID = storeData.shopId;
|
var itemID = storeData.storeConfig.ItemID;
|
var itemCount = storeData.storeConfig.ItemCnt;
|
|
itemCell.Init(new ItemCellModel(itemID, false, itemCount));
|
itemCell.button.AddListener(() =>
|
{
|
ItemTipUtility.Show(itemID);
|
});
|
var config = ItemConfig.Get(itemID);
|
itemName.text = config.ItemName;
|
|
//折扣
|
if (storeData.storeConfig.MoneyOriginal != 0)
|
{
|
saleRect.SetActive(true);
|
saleText.text = Language.Get("storename5", (storeData.storeConfig.MoneyNum*10 / (float)storeData.storeConfig.MoneyOriginal).ToString("0.#"));
|
}
|
else
|
{
|
saleRect.SetActive(false);
|
}
|
|
|
var buyCnt = StoreModel.Instance.GetShopLimitBuyCount(shopID);
|
string limitStr = "";
|
if (storeData.storeConfig.MoneyNum == 0)
|
{
|
//免费
|
limitStr = "";
|
}
|
else if (storeData.storeConfig.ResetType == 0)
|
{
|
//限购
|
limitStr = storeData.storeConfig.LimitCnt > 0 ? Language.Get("storename8", storeData.storeConfig.LimitCnt - buyCnt, storeData.storeConfig.LimitCnt) : "";
|
}
|
else if (storeData.storeConfig.ResetType == 1)
|
{
|
//每日限购
|
limitStr = Language.Get("storename6", storeData.storeConfig.LimitCnt - buyCnt, storeData.storeConfig.LimitCnt);
|
}
|
else if (storeData.storeConfig.ResetType == 2)
|
{
|
//每周限购
|
limitStr = Language.Get("storename7", storeData.storeConfig.LimitCnt - buyCnt, storeData.storeConfig.LimitCnt);
|
}
|
limitText.text = buyCnt >= storeData.storeConfig.LimitCnt ? UIHelper.AppendColor(TextColType.Gray, limitStr) : limitStr;
|
|
//0可购买 1已售罄 2免费 3未解锁
|
var state = StoreModel.Instance.GetShopIDState(shopID);
|
if (state == 0)
|
{
|
buyButton.SetActive(true);
|
freeButton.SetActive(false);
|
lockTip.text = "";
|
|
priceIcon.SetIconWithMoneyType(storeData.storeConfig.MoneyType);
|
priceText.text = storeData.storeConfig.MoneyNum.ToString();
|
|
if (storeData.storeConfig.MoneyOriginal == 0)
|
{
|
salePriceText.SetActive(false);
|
}
|
else
|
{
|
salePriceText.SetActive(true);
|
salePriceText.text = storeData.storeConfig.MoneyOriginal.ToString();
|
}
|
buyButton.AddListener(()=> { BuyGoods(shopID); });
|
}
|
else if (state == 1)
|
{
|
buyButton.SetActive(false);
|
freeButton.SetActive(true);
|
freeText.text = Language.Get("storename11");
|
freeButton.SetInteractable(false);
|
lockTip.text = "";
|
freeRedPoint.SetActive(false);
|
}
|
else if (state == 2)
|
{
|
buyButton.SetActive(false);
|
freeButton.SetActive(true);
|
freeText.text = Language.Get("L1127");
|
freeButton.SetInteractable(true);
|
lockTip.text = "";
|
freeRedPoint.SetActive(true);
|
freeButton.AddListener(()=> { BuyGoods(shopID); });
|
}
|
else if (state == 3)
|
{
|
buyButton.SetActive(false);
|
freeButton.SetActive(false);
|
lockTip.text = Language.Get("storename10", storeData.storeConfig.UnlockValue);
|
}
|
}
|
|
void BuyGoods(int shopID)
|
{
|
var state = StoreModel.Instance.GetShopIDState(shopID);
|
if (state == 2)
|
{
|
StoreModel.Instance.SendBuyShopItem(StoreConfig.Get(shopID), 1);
|
}
|
else
|
{
|
StoreModel.Instance.buyShopID = shopID;
|
UIManager.Instance.OpenWindow<BuyItemWin>();
|
}
|
}
|
}
|