using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { [XLua.Hotfix] 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(); } } 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); m_ContainerVip.gameObject.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.gameObject.SetActive(index < model.alreadySignInCount); m_ContainerKeepSignIn.gameObject.SetActive(index == model.alreadySignInCount && model.todaySignIn && model.keepSignInCount > 0); bool requireEffect = false; m_Effect.StopImediatly(); m_Effect.gameObject.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.gameObject.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(); } } }); 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]; } ItemAttrData attrData = new ItemAttrData(itemId, true, (ulong)itemCount); ModelCenter.Instance.GetModel().SetItemTipsModel(attrData); } } }