using UnityEngine;
|
using UnityEngine.UI;
|
|
public class HeroReturnShopCell : MonoBehaviour
|
{
|
[SerializeField] Transform saleRect;
|
[SerializeField] Text saleText;
|
[SerializeField] Text itemName;
|
[SerializeField] ItemCell itemCell;
|
[SerializeField] Text limitText;
|
[SerializeField] Text lockTip;
|
|
[SerializeField] Transform priceRect;
|
[SerializeField] Image priceIcon;
|
[SerializeField] Text priceText;
|
|
[SerializeField] Transform priceRect1;//居中位置的价格
|
[SerializeField] Image priceIcon1;
|
[SerializeField] Text priceText1;
|
|
[SerializeField] Transform salePriceRect;
|
[SerializeField] Text salePriceText;
|
[SerializeField] Button buyButton;
|
[SerializeField] Image freeRedPoint;
|
[SerializeField] Text freeText;
|
[SerializeField] Image exclusiveImage;//专属
|
[SerializeField] Image sellOutImage;//售罄
|
HeroReturnManager manager => HeroReturnManager.Instance;
|
public void Display(int index)
|
{
|
var act = manager.GetOperationHeroAppearInfo();
|
if (act == null) return;
|
|
var config = ActHeroAppearConfig.Get(act.CfgID);
|
if (config == null) return;
|
|
if (!StoreModel.Instance.storeTypeDict.TryGetValue(config.ExShopType, out var list)) return;
|
|
var storeData = list[index];
|
int shopID = storeData.shopId;
|
var itemID = storeData.storeConfig.ItemID;
|
var itemCount = storeData.storeConfig.ItemCnt;
|
exclusiveImage.SetActive(storeData.storeConfig.IsExclusive == 1);
|
itemCell.Init(new ItemCellModel(itemID, false, itemCount));
|
itemCell.button.AddListener(() =>
|
{
|
ItemTipUtility.Show(itemID);
|
});
|
var itemConfig = ItemConfig.Get(itemID);
|
itemName.text = itemConfig.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;
|
buyButton.AddListener(() => { BuyGoods(shopID); });
|
|
|
//0可购买 1已售罄 2免费 3未解锁
|
var state = StoreModel.Instance.GetShopIDState(shopID);
|
sellOutImage.SetActive(state == 1);
|
freeRedPoint.SetActive(state == 2);
|
lockTip.text = state == 2 ? Language.Get("storename10", storeData.storeConfig.UnlockValue) : string.Empty;
|
|
priceRect.SetActive(state != 2 && storeData.storeConfig.MoneyOriginal != 0);
|
priceRect1.SetActive(state != 2 && storeData.storeConfig.MoneyOriginal == 0);
|
freeText.SetActive(state == 2);
|
salePriceRect.SetActive(state != 2 && storeData.storeConfig.MoneyOriginal != 0);
|
|
priceText.text = storeData.storeConfig.MoneyNum.ToString();
|
priceText1.text = storeData.storeConfig.MoneyNum.ToString();
|
|
if (storeData.storeConfig.MoneyType <= 0)
|
{
|
priceIcon.SetItemSprite(storeData.storeConfig.CostItemID);
|
priceIcon1.SetItemSprite(storeData.storeConfig.CostItemID);
|
}
|
else
|
{
|
priceIcon.SetIconWithMoneyType(storeData.storeConfig.MoneyType);
|
priceIcon1.SetIconWithMoneyType(storeData.storeConfig.MoneyType);
|
}
|
|
salePriceText.text = storeData.storeConfig.MoneyOriginal.ToString();
|
}
|
|
void BuyGoods(int shopID)
|
{
|
var state = StoreModel.Instance.GetShopIDState(shopID);
|
if (state == 1) return;
|
|
if (state == 2)
|
{
|
StoreModel.Instance.SendBuyShopItem(StoreConfig.Get(shopID), 1);
|
}
|
else
|
{
|
StoreModel.Instance.buyShopID = shopID;
|
UIManager.Instance.OpenWindow<BuyItemWin>();
|
}
|
}
|
}
|