//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, March 02, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //开服七天登入礼包 namespace Snxxz.UI { public class InSevenDayWin : Window { #region Built-in InSevenDayModel m_InSevenDayModel; InSevenDayModel inSevenDay { get { return m_InSevenDayModel ?? (m_InSevenDayModel = ModelCenter.Instance.GetModel()); } } private int SelectedDay = 1; [SerializeField] ScrollerController m_ScrollerController; [SerializeField] RewardInformation m_rewardInformation; [SerializeField] Text m_TextName; [SerializeField] Image m_ImageShow; [SerializeField] Image m_ImageShowCH; [SerializeField] UIEffect m_UIEffect1; [SerializeField] UIEffect m_UIEffect2; [SerializeField] UIEffect m_UIEffect3; [SerializeField] Image m_ImageDay; [SerializeField] Image m_ImageTex1; [SerializeField] Image m_ImageTex2; protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { m_ScrollerController.OnRefreshCell += OnRefreshGridCell; InSevenDayModel.AwardMessageUpdate += AwardMessageUpdate; SelectedDays(); ContentAssignment(); OnCreateGridLineCell(m_ScrollerController); m_ScrollerController.JumpIndex(SelectedDay-1); } protected override void OnAfterOpen() { } protected override void OnPreClose() { m_ScrollerController.OnRefreshCell -= OnRefreshGridCell; InSevenDayModel.AwardMessageUpdate -= AwardMessageUpdate; if (inSevenDay.redPointStre1.state == RedPointState.None) { inSevenDay.IsMainGo = false; } } protected override void OnAfterClose() { } private void AwardMessageUpdate() { m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 ContentAssignment(); } void OnCreateGridLineCell(ScrollerController gridCtrl)//预制体创建 { gridCtrl.Refresh(); foreach (int key in inSevenDay.InSevenDayDic.Keys) { gridCtrl.AddCell(ScrollerDataType.Header, key); } gridCtrl.Restart(); } void OnRefreshGridCell(ScrollerDataType type, CellView cell) { FeaturesType featuresType = cell.GetComponent(); int day = cell.index; featuresType.GetIsDays(day); if (day == SelectedDay) { featuresType.ImageSelected.SetActive(true); } else { featuresType.ImageSelected.SetActive(false); } featuresType.Button.SetListener(()=> { SelectedDay = day; m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 ContentAssignment(); }); } private void SelectedDays() { foreach (var key in inSevenDay.RewardForDic.Keys) { if (inSevenDay.RewardForDic[key] == 0 || inSevenDay.RewardForDic[key] ==-1) { SelectedDay = key; return; } } SelectedDay = 1; return ; } private void ContentAssignment() { var InsevenConfig = InSevenDaysConfig.Get(SelectedDay); if (InsevenConfig == null) { return; } SetUIEffect(); m_rewardInformation.GetIsDays(SelectedDay); m_TextName.text = InsevenConfig.RewardName; if (InsevenConfig.IsTitle == 1) { m_ImageShow.gameObject.SetActive(false); m_ImageShowCH.gameObject.SetActive(true); m_ImageShowCH.SetSprite(InsevenConfig.Image); m_ImageShowCH.SetNativeSize(); } else { m_ImageShowCH.gameObject.SetActive(false); m_ImageShow.gameObject.SetActive(true); m_ImageShow.SetSprite(InsevenConfig.Image); m_ImageShow.SetNativeSize(); } m_ImageDay.SetSprite(InsevenConfig.DayIcon); m_ImageDay.SetNativeSize(); m_ImageTex1.SetSprite(InsevenConfig.ImgTxt1); m_ImageTex1.SetNativeSize(); m_ImageTex2.SetSprite(InsevenConfig.ImgTxt2); m_ImageTex2.SetNativeSize(); } private void SetUIEffect() { switch (SelectedDay) { case 1: case 4: case 6: m_UIEffect1.gameObject.SetActive(true); m_UIEffect2.gameObject.SetActive(false); m_UIEffect3.gameObject.SetActive(false); break; case 2: case 3: m_UIEffect1.gameObject.SetActive(false); m_UIEffect2.gameObject.SetActive(true); m_UIEffect3.gameObject.SetActive(false); break; case 5: case 7: m_UIEffect1.gameObject.SetActive(false); m_UIEffect2.gameObject.SetActive(false); m_UIEffect3.gameObject.SetActive(true); break; } } #endregion } }