| //-------------------------------------------------------- | 
| //    [Author]:           第二世界 | 
| //    [  Date ]:           Friday, March 02, 2018 | 
| //-------------------------------------------------------- | 
|   | 
| using System; | 
| using System.Collections; | 
| using System.Collections.Generic; | 
| using UnityEngine; | 
| using UnityEngine.UI; | 
|   | 
| //开服七天登入礼包 | 
| namespace vnxbqy.UI | 
| { | 
|   | 
|     public class InSevenDayWin : Window | 
|     { | 
|   | 
|         #region Built-in | 
|         InSevenDayModel m_InSevenDayModel; | 
|         InSevenDayModel inSevenDay { get { return m_InSevenDayModel ?? (m_InSevenDayModel = ModelCenter.Instance.GetModel<InSevenDayModel>()); } } | 
|         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() | 
|         { | 
|             if (inSevenDay.RewardForDic.ContainsKey(SelectedDay) | 
|                 && inSevenDay.RewardForDic[SelectedDay] == 1 | 
|                 && SelectedDay < 7) | 
|             { | 
|                 SelectedDay += 1; | 
|             } | 
|             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<FeaturesType>(); | 
|             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.SetActive(false);             | 
|                 m_ImageShowCH.SetActive(true); | 
|                 m_ImageShowCH.SetSprite(InsevenConfig.Image); | 
|                 m_ImageShowCH.SetNativeSize(); | 
|             } | 
|             else | 
|             { | 
|                 m_ImageShowCH.SetActive(false); | 
|                 m_ImageShow.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.SetActive(true); | 
|                     m_UIEffect2.SetActive(false); | 
|                     m_UIEffect3.SetActive(false); | 
|                     break; | 
|                 case 2: | 
|                 case 3: | 
|                     m_UIEffect1.SetActive(false); | 
|                     m_UIEffect2.SetActive(true); | 
|                     m_UIEffect3.SetActive(false); | 
|                     break; | 
|                 case 5: | 
|                 case 7: | 
|                     m_UIEffect1.SetActive(false); | 
|                     m_UIEffect2.SetActive(false); | 
|                     m_UIEffect3.SetActive(true); | 
|                     break; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|     } | 
|   | 
| } |