mergemilitary/Assets/MMOModule/Scripts/MMOUIs/CustomControls/MMOSkinList/MMOSkinCell.cs

73 lines
2.3 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace MMO
{
public class MMOSkinCell : MMOListCell
{
public Action<int> DelRedeem;
public Action<int> DelWatchRV;
[SerializeField] Image mImgIcon;
[SerializeField] Text mTxtName;
[SerializeField] Image mImgProgress;
[SerializeField] Text mTxtProgress;
[SerializeField] GameObject mGobNoAd;
[SerializeField] GameObject mGobComplete;
[SerializeField] Button mBtnWatchAd;
[SerializeField] Button mBtnRedeem;
private MMODataSkin mData;
private void Awake()
{
mBtnRedeem.onClick.AddListener(OnClickRedeem);
mBtnWatchAd.onClick.AddListener(OnClickWatchAd);
}
public void ConfigSkin(MMODataSkin pData)
{
mData = pData;
mImgIcon.sprite = MMOResourceManager.Instance.LoadRes<Sprite>(string.Format("MMOImage/SkinIcon/Skin{0:D3}", mData.SkinID));
mTxtName.text = mData.SkinName;
int tOwnedCount = MMOUserData.Instance.GetSkinPieceCount(pData.SkinID);
mImgProgress.fillAmount = tOwnedCount / (float)mData.TotalCount;
mTxtProgress.text = string.Format("{0}/{1}", tOwnedCount, mData.TotalCount);
if (!MMOUserData.Instance.IsSkinRedeemed(mData.SkinID))
{
bool tIsSkinADAvailable = MMOUserData.Instance.IsSkinAdAvailable(mData.SkinID);
mBtnRedeem.gameObject.SetActive(tOwnedCount >= mData.TotalCount);
mBtnWatchAd.gameObject.SetActive(tOwnedCount < mData.TotalCount && tIsSkinADAvailable);
mGobNoAd.SetActive(tOwnedCount < mData.TotalCount && !tIsSkinADAvailable);
mGobComplete.SetActive(false);
}
else
{
mBtnRedeem.gameObject.SetActive(false);
mBtnWatchAd.gameObject.SetActive(false);
mGobNoAd.SetActive(false);
mGobComplete.SetActive(true);
}
}
private void OnClickRedeem()
{
DelRedeem?.Invoke(mIndex);
}
private void OnClickWatchAd()
{
DelWatchRV?.Invoke(mIndex);
}
}
}