using Snxxz.UI;
|
using System.Collections;
|
using System.Collections.Generic;
|
using TableConfig;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using System;
|
|
namespace EnhancedUI.EnhancedScroller
|
{
|
public class SignInCell : ScrollerUI
|
{
|
[SerializeField] List<RectTransform> m_SignIns;
|
[SerializeField] List<Image> m_ItemIcons;
|
[SerializeField] List<Image> m_ItemBgs;
|
[SerializeField] List<Image> m_VipImgs;
|
[SerializeField] List<Text> m_VipTxts;
|
[SerializeField] List<Image> m_BindImgs;
|
[SerializeField] List<Text> m_DayTxts;
|
[SerializeField] List<Text> m_ItemCntTxts;
|
[SerializeField] List<Image> m_HasSignImgs;
|
[SerializeField] List<Image> m_RetroactiveImgs;
|
[SerializeField] List<Button> m_SignBtns;
|
[SerializeField] List<RectTransform> m_PresentEffects;
|
|
SignInModel m_Model;
|
SignInModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<SignInModel>());
|
}
|
}
|
|
public List<RectTransform> SignIns
|
{
|
get
|
{
|
return m_SignIns;
|
}
|
}
|
|
ItemTipsModel _itemTipsModel;
|
ItemTipsModel itemTipsModel
|
{
|
get
|
{
|
return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>());
|
}
|
}
|
|
AchievementGuideEffect[] _achieveEffects = new AchievementGuideEffect[5];
|
|
public override void Refresh(CellView cell)
|
{
|
var _page = cell.index;
|
for (int i = 0; i < 5; i++)
|
{
|
var _index = _page * 5 + i;
|
if (_index >= model.signAwardList.Count)
|
{
|
m_SignIns[i].gameObject.SetActive(false);
|
continue;
|
}
|
var _signInCfg = model.signAwardList[_index];
|
var _ring = model.isFirst ? 0 : (_signInCfg.ItemID.Length > 1 ? 1 : 0);
|
var _itemCfg = Config.Instance.Get<ItemConfig>(_signInCfg.ItemID[_ring]);
|
m_ItemIcons[i].SetSprite(_itemCfg.IconKey);
|
m_ItemBgs[i].SetItemBackGround(_itemCfg.ItemColor);
|
m_VipImgs[i].gameObject.SetActive(_signInCfg.VipLv > 0);
|
m_VipTxts[i].text = StringUtility.Contact("V", _signInCfg.VipLv, Language.Get(StringUtility.Contact("Num_CHS_", _signInCfg.VipMultiple)), Language.Get("SignInTimes"));
|
m_ItemCntTxts[i].text = _signInCfg.OrdinaryNum[_ring] <= 1 ? string.Empty : _signInCfg.OrdinaryNum[_ring].ToString();
|
m_DayTxts[i].text = Language.Get("SignIn_4", _index + 1);
|
m_BindImgs[i].gameObject.SetActive(_signInCfg.IsBind == 1);
|
m_HasSignImgs[i].gameObject.SetActive(_index < model.signNum);
|
m_RetroactiveImgs[i].gameObject.SetActive(_index == model.signNum && model.todaySign
|
&& model.surSignNum > 0);
|
m_PresentEffects[i].gameObject.SetActive(_index == model.signNum && !model.todaySign);
|
if (AchievementGoto.achievementType == AchievementGoto.SignInAchievement && _page == model.signNum / 5
|
&& _index == model.signNum && model.surSignNum > 0 && model.todaySign)
|
{
|
if (_achieveEffects[i] == null)
|
{
|
_achieveEffects[i] = AchievementGuideEffectPool.Require(2);
|
_achieveEffects[i].transform.SetParentEx(m_SignIns[i], Vector3.zero, Vector3.zero, Vector3.one);
|
(_achieveEffects[i].transform as RectTransform).anchoredPosition = Vector3.zero;
|
if (_achieveEffects[i].effect != null)
|
{
|
_achieveEffects[i].effect.SetMask();
|
}
|
}
|
}
|
else if (_achieveEffects[i] != null)
|
{
|
AchievementGuideEffectPool.Recycle(_achieveEffects[i]);
|
_achieveEffects[i] = null;
|
}
|
m_SignBtns[i].onClick.RemoveAllListeners();
|
m_SignBtns[i].onClick.AddListener(() =>
|
{
|
OnClickSign(_index);
|
});
|
}
|
}
|
|
private void OnClickSign(int _day)
|
{
|
if (_day == model.signNum)
|
{
|
AchievementGoto.achievementType = 0;
|
if (!model.todaySign)
|
{
|
CA509_tagCMDaySign signpack = new CA509_tagCMDaySign();
|
signpack.Day = 0;
|
GameNetSystem.Instance.SendInfo(signpack);
|
return;
|
}
|
else if (model.surSignNum > 0)
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("SinInReplenish", model.ctnSignJade), (bool isOk) =>
|
{
|
if (isOk)
|
{
|
if (PlayerDatas.Instance.baseData.Gold >= model.ctnSignJade)
|
{
|
CA509_tagCMDaySign signpack = new CA509_tagCMDaySign();
|
signpack.Day = 1;
|
GameNetSystem.Instance.SendInfo(signpack);
|
}
|
else
|
{
|
if (VersionConfig.Get().isBanShu)
|
{
|
SysNotifyMgr.Instance.ShowTip("GoldErr");
|
return;
|
}
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
}
|
}
|
});
|
return;
|
}
|
}
|
var _signInCfg = model.signAwardList[_day];
|
int itemId = 0;
|
int itemCount = 0;
|
if (!model.isFirst)
|
{
|
itemId = _signInCfg.ItemID.Length > 1 ? _signInCfg.ItemID[1] : _signInCfg.ItemID[0];
|
itemCount = _signInCfg.OrdinaryNum.Length > 1 ? _signInCfg.OrdinaryNum[1] : _signInCfg.OrdinaryNum[0];
|
}
|
else
|
{
|
itemId = _signInCfg.ItemID[0];
|
itemCount = _signInCfg.OrdinaryNum[0];
|
}
|
ItemAttrData attrData = new ItemAttrData(itemId, false, (ulong)itemCount, -1, 1);
|
itemTipsModel.SetItemTipsModel(attrData);
|
}
|
}
|
}
|
|