| | |
| | | {
|
| | | 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;
|
| | | [SerializeField] SignInItemBehaviour[] m_SignIns;
|
| | |
|
| | | SignInModel m_Model;
|
| | | SignInModel model
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | 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];
|
| | | AchievementGuideEffect[] achievementEffects = new AchievementGuideEffect[5];
|
| | |
|
| | | public override void Refresh(CellView cell)
|
| | | {
|
| | |
| | | m_SignIns[i].gameObject.SetActive(false);
|
| | | continue;
|
| | | }
|
| | | var _signInCfg = configs[_index];
|
| | | var _ring = model.IsFirstMonth ? 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.alreadySignInCount);
|
| | | m_RetroactiveImgs[i].gameObject.SetActive(_index == model.alreadySignInCount && model.todaySignIn
|
| | | && model.keepSignInCount > 0);
|
| | | m_PresentEffects[i].gameObject.SetActive(_index == model.alreadySignInCount && !model.todaySignIn);
|
| | | m_SignIns[i].gameObject.SetActive(true);
|
| | | m_SignIns[i].Display(_index);
|
| | | if (AchievementGoto.achievementType == AchievementGoto.SignInAchievement && _page == model.alreadySignInCount / 5
|
| | | && _index == model.alreadySignInCount && model.keepSignInCount > 0 && model.todaySignIn)
|
| | | {
|
| | | if (_achieveEffects[i] == null)
|
| | | if (achievementEffects[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)
|
| | | achievementEffects[i] = AchievementGuideEffectPool.Require(2);
|
| | | achievementEffects[i].transform.SetParentEx(m_SignIns[i].transform, Vector3.zero, Vector3.zero, Vector3.one);
|
| | | (achievementEffects[i].transform as RectTransform).anchoredPosition = Vector3.zero;
|
| | | if (achievementEffects[i].effect != null)
|
| | | {
|
| | | _achieveEffects[i].effect.SetMask();
|
| | | achievementEffects[i].effect.SetMask();
|
| | | }
|
| | | }
|
| | | }
|
| | | else if (_achieveEffects[i] != null)
|
| | | else if (achievementEffects[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.alreadySignInCount)
|
| | | {
|
| | | AchievementGoto.achievementType = 0;
|
| | | if (!model.todaySignIn)
|
| | | {
|
| | | CA509_tagCMDaySign signpack = new CA509_tagCMDaySign();
|
| | | signpack.Day = 0;
|
| | | GameNetSystem.Instance.SendInfo(signpack);
|
| | | return;
|
| | | }
|
| | | else if (model.keepSignInCount > 0)
|
| | | {
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("SinInReplenish", model.keepSignInCost), (bool isOk) =>
|
| | | {
|
| | | if (isOk)
|
| | | {
|
| | | if (PlayerDatas.Instance.baseData.Gold >= model.keepSignInCost)
|
| | | {
|
| | | 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;
|
| | | AchievementGuideEffectPool.Recycle(achievementEffects[i]);
|
| | | achievementEffects[i] = null;
|
| | | }
|
| | | }
|
| | | var configs = Config.Instance.GetAllValues<SignInConfig>();
|
| | | var _signInCfg = configs[_day];
|
| | | int itemId = 0;
|
| | | int itemCount = 0;
|
| | | if (!model.IsFirstMonth)
|
| | | {
|
| | | 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);
|
| | | }
|
| | | }
|
| | | }
|