73 lines
2.3 KiB
C#
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);
|
|
}
|
|
}
|
|
} |