| //--------------------------------------------------------  | 
| //    [Author]:           第二世界  | 
| //    [  Date ]:           Tuesday, January 22, 2019  | 
| //--------------------------------------------------------  | 
| using EnhancedUI.EnhancedScroller;  | 
| using System.Collections;  | 
| using System.Collections.Generic;  | 
|   | 
| using UnityEngine;  | 
| using UnityEngine.UI;  | 
| using System;  | 
|   | 
| namespace vnxbqy.UI  | 
| {  | 
|       | 
|     public class SpringFestivalCell : ScrollerUI  | 
|     {  | 
|         [SerializeField] Text m_TextA;  | 
|         [SerializeField] Text m_TextB;  | 
|         [SerializeField] Text m_TextC;  | 
|         [SerializeField] Transform m_ItemList;  | 
|         [SerializeField] Button m_Btn;  | 
|         [SerializeField] Text m_BtnText;  | 
|         [SerializeField] GameObject m_Miss;//错过  | 
|         [SerializeField] GameObject m_Reach;//未达成  | 
|         [SerializeField] GameObject m_Draw;//已领取  | 
|         [SerializeField] Text m_TextNumber;//已领取次数  | 
|         SpringFestivalModel model { get { return ModelCenter.Instance.GetModel<SpringFestivalModel>(); } }  | 
|           | 
|         public override void Refresh(CellView cell)  | 
|         {  | 
|             int ID = cell.index;  | 
|             var config = HolidayHomingConfig.Get(ID);  | 
|             if (config == null || !model.SpringFestivalDic.ContainsKey(ID))  | 
|             {  | 
|                 return;  | 
|             }  | 
|             var SpringFestival = model.SpringFestivalDic[ID];  | 
|             int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数  | 
|             int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数  | 
|             int number = SpringFestival.TotalTimes / SpringFestival.SingleTimes;  | 
|             var RemainingNum = 0;  | 
|             if (SpringFestival.TotalTimes - rewardNum > 0)  | 
|             {  | 
|                 RemainingNum = (SpringFestival.TotalTimes - rewardNum) / SpringFestival.SingleTimes;  | 
|             }  | 
|             if (SpringFestival.TotalTimes - carryOutNum > 0 && RemainingNum > 0)  | 
|             {  | 
|                 m_TextA.text = Language.Get("OSA_1", RemainingNum);  | 
|             }  | 
|             else  | 
|             {  | 
|                 m_TextA.text = Language.Get("OSA_4");  | 
|             }  | 
|   | 
|             if (config.ActionType == 20)  | 
|             {  | 
|                 m_TextB.text = string.Format(config.Description, (model.SelectedNow + 1));  | 
|             }  | 
|             else  | 
|             {  | 
|                 m_TextB.text = string.Format(config.Description, SpringFestival.SingleTimes);  | 
|             }  | 
|             m_TextC.text = Language.Get("OSA_2", SpringFestival.Point);  | 
|             for (int i = 0; i < m_ItemList.childCount; i++)  | 
|             {  | 
|                 GameObject Obj = m_ItemList.GetChild(i).gameObject;  | 
|                 ItemCell itemCell = Obj.GetComponent<ItemCell>();  | 
|                 if (i < SpringFestival.WeekPartyItem.Length)  | 
|                 {  | 
|                     Obj.SetActive(true);  | 
|                     var Item = SpringFestival.WeekPartyItem[i];  | 
|                     ItemCellModel cellModel = new ItemCellModel(Item.ItemID, true, (ulong)Item.ItemCnt);  | 
|                     itemCell.Init(cellModel);  | 
|                     itemCell.button.SetListener(() =>  | 
|                     {  | 
|                         ItemTipUtility.Show(Item.ItemID);  | 
|                     });  | 
|                 }  | 
|                 else  | 
|                 {  | 
|                     Obj.SetActive(false);  | 
|                 }  | 
|             }  | 
|             bool IsOpenPreviewTime = OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.SpringFestival);  | 
|             if (model.SelectedNow != model.DayNow || IsOpenPreviewTime)  | 
|             {  | 
|                 if (model.SelectedNow > model.DayNow || IsOpenPreviewTime)//还未到达的天数  | 
|                 {  | 
|                     m_Btn.SetActive(false);  | 
|                     m_TextNumber.SetActive(false);  | 
|                     m_Miss.SetActive(false);  | 
|                     m_Reach.SetActive(false);  | 
|                     m_Draw.SetActive(false);  | 
|                 }  | 
|                 else//已过的天数  | 
|                 {  | 
|   | 
|                     int TaypeNumber = 0;  | 
|                     if (carryOutNum - rewardNum > 0)  | 
|                     {  | 
|                         TaypeNumber = (carryOutNum - rewardNum) / SpringFestival.SingleTimes;  | 
|                     }  | 
|                     if (TaypeNumber > 0)//可领  | 
|                     {  | 
|   | 
|                         m_TextNumber.SetActive(true);  | 
|                         m_TextNumber.text = SetText(ID);  | 
|                         m_Btn.SetActive(true);  | 
|                         UIEffect uieffect = m_Btn.GetComponent<UIEffect>();  | 
|                         uieffect.Play();  | 
|                         m_BtnText.text = Language.Get("RealmPractice109");//领取  | 
|                         m_Miss.SetActive(false);  | 
|                         m_Reach.SetActive(false);  | 
|                         m_Draw.SetActive(false);  | 
|                         m_Btn.SetListener(() =>  | 
|                         {  | 
|                             bool _bool = model.IsOpenFeatures();  | 
|                             if (_bool)  | 
|                             {  | 
|                                 model.SendGetSpringFestival(model.SelectedNow, ID);  | 
|                             }  | 
|                             else  | 
|                             {  | 
|                                 SysNotifyMgr.Instance.ShowTip("SevenDayOver2");  | 
|                             }  | 
|                         });  | 
|                     }  | 
|                     else  | 
|                     {  | 
|                         if (rewardNum >= number)//已经领完  | 
|                         {  | 
|                             m_TextNumber.SetActive(false);  | 
|                             m_Btn.SetActive(false);  | 
|                             m_Miss.SetActive(false);  | 
|                             m_Reach.SetActive(false);  | 
|                             m_Draw.SetActive(true);  | 
|                         }  | 
|                         else//未到达  | 
|                         {  | 
|                             m_TextNumber.SetActive(false);  | 
|                             m_Btn.SetActive(false);  | 
|                             m_Miss.SetActive(false);  | 
|                             m_Reach.SetActive(true);  | 
|                             m_Draw.SetActive(false);  | 
|   | 
|                         }  | 
|   | 
|                     }  | 
|                 }  | 
|             }  | 
|             else//当前天  | 
|             {  | 
|                 int TaypeNumber = 0;  | 
|                 if (carryOutNum - rewardNum > 0)  | 
|                 {  | 
|                     TaypeNumber = (carryOutNum - rewardNum) / SpringFestival.SingleTimes;  | 
|                 }  | 
|                 if (TaypeNumber > 0)//可领  | 
|                 {  | 
|                     m_TextNumber.SetActive(true);  | 
|                     m_TextNumber.text = SetText(ID);  | 
|                     m_Btn.SetActive(true);  | 
|                     UIEffect uieffect = m_Btn.GetComponent<UIEffect>();  | 
|                     uieffect.Play();  | 
|                     m_BtnText.text = Language.Get("RealmPractice109");//领取  | 
|                     m_Miss.SetActive(false);  | 
|                     m_Reach.SetActive(false);  | 
|                     m_Draw.SetActive(false);  | 
|                     m_Btn.SetListener(() =>  | 
|                     {  | 
|                         bool _bool = model.IsOpenFeatures();  | 
|                         if (_bool)  | 
|                         {  | 
|                             model.SendGetSpringFestival(model.SelectedNow, ID);  | 
|                         }  | 
|                         else  | 
|                         {  | 
|                             SysNotifyMgr.Instance.ShowTip("SevenDayOver2");  | 
|                         }  | 
|                     });  | 
|                 }  | 
|                 else  | 
|                 {  | 
|                     if (rewardNum >= SpringFestival.TotalTimes)//已经领完  | 
|                     {  | 
|                         m_TextNumber.SetActive(false);  | 
|                         m_Btn.SetActive(false);  | 
|                         m_Miss.SetActive(false);  | 
|                         m_Reach.SetActive(false);  | 
|                         m_Draw.SetActive(true);  | 
|                     }  | 
|                     else//未到达(前往)  | 
|                     {  | 
|                         m_TextNumber.SetActive(true);  | 
|                         m_TextNumber.text = SetText(ID);  | 
|                         m_Btn.SetActive(true);  | 
|                         m_BtnText.text = Language.Get("RealmPractice108");//前往  | 
|                         UIEffect uieffect = m_Btn.GetComponent<UIEffect>();  | 
|                         uieffect.Stop();  | 
|                         m_Miss.SetActive(false);  | 
|                         m_Reach.SetActive(false);  | 
|                         m_Draw.SetActive(false);  | 
|                         m_Btn.SetListener(() =>  | 
|                         {  | 
|                             WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.jump);  | 
|                         });  | 
|                     }  | 
|                 }  | 
|             }  | 
|         }  | 
|         string SetText(int ID)  | 
|         {  | 
|             string str = string.Empty;  | 
|             var SpringFestival = model.SpringFestivalDic[ID];  | 
|             int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数  | 
|             int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数  | 
|             var config = HolidayHomingConfig.Get(ID);  | 
|             if (config != null && config.SpecialDisplayType == 1)  | 
|             {  | 
|   | 
|                 if (carryOutNum > 0)  | 
|                 {  | 
|                     str = "1/1";  | 
|                 }  | 
|                 else  | 
|                 {  | 
|                     str = "0/1";  | 
|                 }  | 
|                 return str;  | 
|             }  | 
|             int TaypeNumber = 0;  | 
|             if (carryOutNum - rewardNum > 0)  | 
|             {  | 
|                 TaypeNumber = (carryOutNum - rewardNum) / SpringFestival.SingleTimes;  | 
|             }  | 
|             if (TaypeNumber > 0)  | 
|             {  | 
|                 str = SpringFestival.SingleTimes + "/" + SpringFestival.SingleTimes;  | 
|                 return str;  | 
|             }  | 
|             else  | 
|             {  | 
|                 int type = carryOutNum % SpringFestival.SingleTimes;  | 
|                 str = type + "/" + SpringFestival.SingleTimes;  | 
|             }  | 
|             return str;  | 
|         }  | 
|   | 
|     }  | 
|   | 
| }  | 
|   | 
|   | 
|   |