//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, January 08, 2019 //-------------------------------------------------------- using EnhancedUI.EnhancedScroller; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System; namespace vnxbqy.UI { public class OpenServiceAchievementCell : 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;//已领取次数 OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel(); } } public override void Refresh(CellView cell) { int ID = cell.index; var config = WeekPartyConfig.Get(ID); if (config==null||/*!model.WeekPartyDayInfoDic.ContainsKey(model.SelectedNow) ||*/ !model.WeekPartyActionDic.ContainsKey(ID)) { return; } var WeekPartyAction = model.WeekPartyActionDic[ID]; int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数 int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数 int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes; var RemainingNum = 0; if (WeekPartyAction.TotalTimes - rewardNum > 0) { RemainingNum = (WeekPartyAction.TotalTimes - rewardNum) / WeekPartyAction.SingleTimes; } if (WeekPartyAction.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, WeekPartyAction.SingleTimes); } m_TextC.text = Language.Get("OSA_2", WeekPartyAction.Point); for (int i = 0; i < m_ItemList.childCount; i++) { GameObject Obj = m_ItemList.GetChild(i).gameObject; ItemCell itemCell = Obj.GetComponent(); if (i < WeekPartyAction.WeekPartyItem.Length) { Obj.SetActive(true); var Item = WeekPartyAction.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 = model.IsPreviewTime(); 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) / WeekPartyAction.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(() => { if (model.IsOpen) { model.SendGetWeekParty(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//未到达 { if (config.ActionType == 20) { m_TextNumber.SetActive(false); m_Btn.SetActive(false); m_Miss.SetActive(false); m_Reach.SetActive(true); m_Draw.SetActive(false); } 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); }); } } } } } else//当前天 { int TaypeNumber = 0; if (carryOutNum - rewardNum > 0) { TaypeNumber = (carryOutNum - rewardNum) / WeekPartyAction.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(() => { if (model.IsOpen) { model.SendGetWeekParty(model.SelectedNow, ID); } else { SysNotifyMgr.Instance.ShowTip("SevenDayOver2"); } }); } else { if (rewardNum >= WeekPartyAction.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 WeekPartyAction = model.WeekPartyActionDic[ID]; int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数 int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数 var config = WeekPartyConfig.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) / WeekPartyAction.SingleTimes; } if (TaypeNumber > 0) { str = WeekPartyAction.SingleTimes + "/" + WeekPartyAction.SingleTimes; return str; } else { int type = carryOutNum % WeekPartyAction.SingleTimes; str = type + "/" + WeekPartyAction.SingleTimes; } return str; } } }