| System/Welfare/SignInCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Welfare/SignInItemBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Welfare/SignInItemBehaviour.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Welfare/SignInWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/Welfare/SignInCell.cs
@@ -10,18 +10,7 @@ { 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 @@ -32,24 +21,7 @@ } } 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) { @@ -63,101 +35,28 @@ 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); } } } System/Welfare/SignInItemBehaviour.cs
New file @@ -0,0 +1,113 @@ using System; using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class SignInItemBehaviour : MonoBehaviour { [SerializeField] Image m_Icon; [SerializeField] Image m_ItemBG; [SerializeField] RectTransform m_ContainerVip; [SerializeField] Text m_VipLevel; [SerializeField] Image m_Bind; [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 = Config.Instance.GetAllValues<SignInConfig>(); if (index >= configs.Count) { return; } var config = configs[index]; var ring = model.IsFirstMonth ? 0 : (config.ItemID.Length > 1 ? 1 : 0); var itemConfig = Config.Instance.Get<ItemConfig>(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_Bind.gameObject.SetActive(config.IsBind == 1); m_AlreadySignIn.gameObject.SetActive(index < model.alreadySignInCount); m_ContainerKeepSignIn.gameObject.SetActive(index == model.alreadySignInCount && model.todaySignIn && model.keepSignInCount > 0); m_Effect.gameObject.SetActive(index == model.alreadySignInCount && !model.todaySignIn); 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.Gold >= 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 = Config.Instance.GetAllValues<SignInConfig>(); 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, false, (ulong)itemCount, -1, 1); ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(attrData); } } } System/Welfare/SignInItemBehaviour.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 488a1cbbd54fda14faae1b2207ad3939 timeCreated: 1542941563 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Welfare/SignInWin.cs
@@ -16,12 +16,9 @@ public class SignInWin : Window { [SerializeField] ScrollerController signInCtrl; [SerializeField] ScrollerController ctnSignCtrl; [SerializeField] Text signInfo; [SerializeField] ScrollerController m_SignInController; [SerializeField] ScrollerController m_KeepSignInController; [SerializeField] Text m_SignInRemind; SignInModel m_Model; SignInModel model @@ -35,8 +32,8 @@ #region Built-in protected override void BindController() { ctnSignCtrl.lockType = EnhanceLockType.KeepVertical; signInCtrl.lockType = EnhanceLockType.KeepVertical; m_KeepSignInController.lockType = EnhanceLockType.KeepVertical; m_SignInController.lockType = EnhanceLockType.KeepVertical; } protected override void AddListeners() @@ -45,11 +42,8 @@ protected override void OnPreOpen() { InitSignIn(); InitCtnSign(); ctnSignCtrl.mScrollRect.verticalNormalizedPosition = 1; DisplaySignIn(); DisplayKeepSignIn(); model.OnSignRefresh += OnSignRefresh; } @@ -77,8 +71,8 @@ #endregion private void OnSignRefresh() { InitSignIn(); InitCtnSign(); DisplaySignIn(); DisplayKeepSignIn(); } private void HandleAchievement() @@ -90,7 +84,7 @@ { var _num = Mathf.Max(0, model.alreadySignInCount); var _line = _num / 5; signInCtrl.JumpIndex(_line); m_SignInController.JumpIndex(_line); } else { @@ -98,45 +92,45 @@ AchievementGoto.achievementType = 0; } } signInCtrl.m_Scorller.RefreshActiveCellViews(); m_SignInController.m_Scorller.RefreshActiveCellViews(); } private void InitSignIn() private void DisplaySignIn() { var configs = Config.Instance.GetAllValues<SignInConfig>(); if (signInCtrl.GetNumberOfCells(signInCtrl.m_Scorller) == 0) if (m_SignInController.GetNumberOfCells(m_SignInController.m_Scorller) == 0) { signInCtrl.Refresh(); m_SignInController.Refresh(); int page = Mathf.CeilToInt((float)configs.Count / 5); for (int i = 0; i < page; i++) { signInCtrl.AddCell(ScrollerDataType.Header, i); m_SignInController.AddCell(ScrollerDataType.Header, i); } signInCtrl.Restart(); m_SignInController.Restart(); } else { signInCtrl.m_Scorller.RefreshActiveCellViews(); m_SignInController.m_Scorller.RefreshActiveCellViews(); } signInfo.text = Language.Get("SignIn_3", model.alreadySignInCount, model.keepSignInCount); m_SignInRemind.text = Language.Get("SignIn_3", model.alreadySignInCount, model.keepSignInCount); } private void InitCtnSign() private void DisplayKeepSignIn() { var configs = Config.Instance.GetAllValues<ContinueSignInConfig>(); if (ctnSignCtrl.GetNumberOfCells(ctnSignCtrl.m_Scorller) == 0) if (m_KeepSignInController.GetNumberOfCells(m_KeepSignInController.m_Scorller) == 0) { ctnSignCtrl.Refresh(); m_KeepSignInController.Refresh(); for (int i = 0; i < configs.Count; i++) { ctnSignCtrl.AddCell(ScrollerDataType.Header, i); m_KeepSignInController.AddCell(ScrollerDataType.Header, i); } ctnSignCtrl.Restart(); m_KeepSignInController.Restart(); } else { ctnSignCtrl.m_Scorller.RefreshActiveCellViews(); m_KeepSignInController.m_Scorller.RefreshActiveCellViews(); } } @@ -144,7 +138,7 @@ { var _num = Mathf.Max(0, model.alreadySignInCount); var _line = _num / 5; signInCtrl.JumpIndex(_line); m_SignInController.JumpIndex(_line); } }