using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class SignInItemBehaviour : MonoBehaviour
|
{
|
[SerializeField] Image m_Icon;
|
[SerializeField] Image m_ItemBG;
|
[SerializeField] RectTransform m_ContainerVip;
|
[SerializeField] Text m_VipLevel;
|
[SerializeField] Text m_Day;
|
[SerializeField] Text m_Count;
|
[SerializeField] RectTransform m_AlreadySignIn;
|
[SerializeField] RectTransform m_ContainerKeepSignIn;
|
[SerializeField] Button m_SignIn;
|
[SerializeField] UIEffect m_Effect;
|
|
SignInModel model { get { return ModelCenter.Instance.GetModel<SignInModel>(); } }
|
|
public void Display(int index)
|
{
|
m_SignIn.onClick.RemoveAllListeners();
|
var configs = SignInConfig.GetValues();
|
if (index >= configs.Count)
|
{
|
return;
|
}
|
var config = configs[index];
|
var ring = model.IsFirstMonth ? 0 : (config.ItemID.Length > 1 ? 1 : 0);
|
var itemConfig = ItemConfig.Get(config.ItemID[ring]);
|
m_Icon.SetSprite(itemConfig.IconKey);
|
m_ItemBG.SetItemBackGround(itemConfig.ItemColor, itemConfig.QualityEchoType);
|
m_ContainerVip.SetActive(config.VipLv > 0);
|
m_VipLevel.text = StringUtility.Contact("V", config.VipLv,
|
Language.Get(StringUtility.Contact("Num_CHS_", config.VipMultiple)), Language.Get("SignInTimes"));
|
m_Count.text = config.OrdinaryNum[ring] <= 1 ? string.Empty : config.OrdinaryNum[ring].ToString();
|
m_Day.text = Language.Get("SignIn_4", index + 1);
|
m_AlreadySignIn.SetActive(index < model.alreadySignInCount);
|
m_ContainerKeepSignIn.SetActive(index == model.alreadySignInCount && model.todaySignIn
|
&& model.keepSignInCount > 0);
|
|
bool requireEffect = false;
|
m_Effect.StopImediatly();
|
m_Effect.SetActive(false);
|
if (!model.todaySignIn)
|
{
|
requireEffect = index == model.alreadySignInCount;
|
m_Effect.effect = 1081;
|
}
|
else
|
{
|
requireEffect = index == model.alreadySignInCount && model.keepSignInCount > 0;
|
m_Effect.effect = 1170;
|
}
|
|
m_Effect.SetActive(requireEffect);
|
|
m_SignIn.onClick.AddListener(() =>
|
{
|
SignIn(index);
|
});
|
}
|
|
private void SignIn(int index)
|
{
|
if (index == model.alreadySignInCount)
|
{
|
AchievementGoto.achievementType = 0;
|
if (!model.todaySignIn)
|
{
|
CA509_tagCMDaySign pak = new CA509_tagCMDaySign();
|
pak.Day = 0;
|
GameNetSystem.Instance.SendInfo(pak);
|
return;
|
}
|
else if (model.keepSignInCount > 0)
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("SinInReplenish", model.keepSignInCost), (bool isOk) =>
|
{
|
if (isOk)
|
{
|
if (PlayerDatas.Instance.baseData.diamond >= model.keepSignInCost)
|
{
|
CA509_tagCMDaySign pak = new CA509_tagCMDaySign();
|
pak.Day = 1;
|
GameNetSystem.Instance.SendInfo(pak);
|
}
|
else
|
{
|
if (VersionConfig.Get().isBanShu)
|
{
|
SysNotifyMgr.Instance.ShowTip("GoldErr");
|
return;
|
}
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
}
|
}
|
});
|
return;
|
}
|
}
|
var configs = SignInConfig.GetValues();
|
var config = configs[index];
|
int itemId = 0;
|
int itemCount = 0;
|
if (!model.IsFirstMonth)
|
{
|
itemId = config.ItemID.Length > 1 ? config.ItemID[1] : config.ItemID[0];
|
itemCount = config.OrdinaryNum.Length > 1 ? config.OrdinaryNum[1] : config.OrdinaryNum[0];
|
}
|
else
|
{
|
itemId = config.ItemID[0];
|
itemCount = config.OrdinaryNum[0];
|
}
|
|
ItemTipUtility.Show(itemId);
|
}
|
}
|
}
|
|