//-------------------------------------------------------- // [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(); } } 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(); 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.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.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.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; } } }