//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, December 10, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace vnxbqy.UI { public class EntryInformationCell : MonoBehaviour { [SerializeField] ItemCell m_ItemCell; [SerializeField] Text m_Text1; [SerializeField] Text m_Text2; [SerializeField] Button m_Btn; [SerializeField] Text m_BtnText; [SerializeField] GameObject m_Miss;//错过 [SerializeField] GameObject m_Reach;//未达成 [SerializeField] GameObject m_Draw;//已领取 LoginRewardModel m_LoginRewardModel; LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel()); } } public void GetDisplayInformation(int id) { var config = LoginRewardConfig.Get(id); if (config == null) { DebugEx.LogError("登录奖励表没有此ID" + id); return; } if (!loginRewardModel.LoginAwardDic.ContainsKey(id)) { DebugEx.LogError("登录条目字典查无次ID" + id); return; } m_Text1.text = config.Description; var LoginAward = loginRewardModel.LoginAwardDic[id]; int rewardNum = loginRewardModel.GetRewardNumber(loginRewardModel.SelectedNow, id);//已领奖次数 int carryOutNum = loginRewardModel.GetCarryOutNum(loginRewardModel.SelectedNow, id);//已完成次数 int number = LoginAward.TotalTimes / LoginAward.SingleTimes; var RemainingNum = 0; if (LoginAward.TotalTimes - rewardNum > 0) { RemainingNum = (LoginAward.TotalTimes - rewardNum) / LoginAward.SingleTimes; } if (rewardNum != 0 && rewardNum >= number) { m_Text2.text = Language.Get("OSA_4"); } else { m_Text2.text = SetText(id); } var weekPartyItemClass = loginRewardModel.GetLoginrewardItemList(loginRewardModel.SelectedNow, LoginAward.ItemJson); if (weekPartyItemClass.Length >= 0) { var Item = weekPartyItemClass[0]; ItemCellModel cellModel = new ItemCellModel(Item.ItemID, true, (ulong)Item.ItemCnt); m_ItemCell.Init(cellModel); m_ItemCell.button.SetListener(() => { ItemTipUtility.Show(Item.ItemID); }); } bool IsOpenPreviewTime = OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.LoginReward); if (loginRewardModel.SelectedNow != loginRewardModel.DayNow || IsOpenPreviewTime) { if (loginRewardModel.SelectedNow > loginRewardModel.DayNow || IsOpenPreviewTime)//还未到达的天数 { m_Btn.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) / LoginAward.SingleTimes; } if (TaypeNumber > 0)//可领 { 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 = loginRewardModel.IsOpenFeatures(); if (_bool) { loginRewardModel.SendLoginAwardInfo(loginRewardModel.SelectedNow, id); } else { SysNotifyMgr.Instance.ShowTip("SevenDayOver2"); } }); } else { if (rewardNum !=0&& rewardNum >= number)//已经领完 { m_Btn.SetActive(false); m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(true); } else//未到达 { 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) / LoginAward.SingleTimes; } if (TaypeNumber > 0)//可领 { 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 = loginRewardModel.IsOpenFeatures(); if (_bool) { loginRewardModel.SendLoginAwardInfo(loginRewardModel.SelectedNow, id); } else { SysNotifyMgr.Instance.ShowTip("SevenDayOver2"); } }); } else { if (rewardNum >= LoginAward.TotalTimes)//已经领完 { m_Btn.SetActive(false); m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(true); } else//未到达(前往) { 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 loginAward = loginRewardModel.LoginAwardDic[ID]; int rewardNum = loginRewardModel.GetRewardNumber(loginRewardModel.SelectedNow, ID);//已领奖次数 int carryOutNum = loginRewardModel.GetCarryOutNum(loginRewardModel.SelectedNow, ID);//已完成次数 var config = LoginRewardConfig.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) / loginAward.SingleTimes; } if (TaypeNumber > 0) { str = loginAward.SingleTimes + "/" + loginAward.SingleTimes; return str; } else { int type = carryOutNum % loginAward.SingleTimes; str = type + "/" + loginAward.SingleTimes; } return str; } } }