少年修仙传客户端代码仓库
client_Zxw
2019-02-13 333be95a8c982bfda2c4a41a0a8d78a14f6512ed
System/OpenServerActivity/EntryInformationCell.cs
@@ -5,6 +5,7 @@
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using TableConfig;
namespace Snxxz.UI {
    [XLua.Hotfix]
@@ -12,19 +13,175 @@
        [SerializeField] ItemCell m_ItemCell;
        [SerializeField] Text m_Text1;
        [SerializeField] Text m_Text2;
        [SerializeField] Button m_Button;
        [SerializeField] Text m_ButtonText;
        [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<LoginRewardModel>()); } }
        public Button mButton
        {
            get { return m_Button; }
            set { m_Button = value; }
        }
        LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } }
        ItemTipsModel m_itemTipsModel;
        ItemTipsModel itemTipsModel { get { return m_itemTipsModel ?? (m_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
        public void GetDisplayInformation(int id)
        {
            var config = Config.Instance.Get<LoginRewardConfig>(id);
            if (config == null)
            {
                DebugEx.LogError("登录奖励表没有此ID"+id);
                return;
            }
            if (!loginRewardModel.LoginAwardDic.ContainsKey(id))
            {
                DebugEx.LogError("登录条目字典查无次ID" + id);
                return;
            }
            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 (LoginAward.TotalTimes - carryOutNum > 0 && RemainingNum > 0)
            {
                m_Text2.text = Language.Get("OSA_1", RemainingNum);
            }
            else
            {
                m_Text2.text = Language.Get("OSA_4");
            }
            if (LoginAward.WeekPartyItem.Length >= 0)
            {
                var Item = LoginAward.WeekPartyItem[0];
                ItemCellModel cellModel = new ItemCellModel(Item.ItemID, true, (ulong)Item.ItemCnt, Item.IsBind);
                m_ItemCell.Init(cellModel);
                m_ItemCell.cellBtn.SetListener(() =>
                {
                    ItemAttrData attrData = new ItemAttrData(Item.ItemID, false, (ulong)Item.ItemCnt, -1, Item.IsBind);
                    itemTipsModel.SetItemTipsModel(attrData);
                });
            }
            bool IsOpenPreviewTime = OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.LoginReward);
            if (loginRewardModel.SelectedNow != loginRewardModel.DayNow || IsOpenPreviewTime)
            {
                if (loginRewardModel.SelectedNow > loginRewardModel.DayNow || IsOpenPreviewTime)//还未到达的天数
                {
                    m_Btn.gameObject.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_TextNumber.gameObject.SetActive(true);
                        //m_TextNumber.text = SetText(ID);
                        m_Btn.gameObject.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 = loginRewardModel.IsOpenFeatures();
                            if (_bool)
                            {
                                loginRewardModel.SendLoginAwardInfo(loginRewardModel.SelectedNow, id);
                            }
                            else
                            {
                                SysNotifyMgr.Instance.ShowTip("SevenDayOver2");
                            }
                        });
                    }
                    else
                    {
                        if (rewardNum >= number)//已经领完
                        {
                            m_Btn.gameObject.SetActive(false);
                            m_Miss.SetActive(false);
                            m_Reach.SetActive(false);
                            m_Draw.SetActive(true);
                        }
                        else//未到达
                        {
                            m_Btn.gameObject.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_TextNumber.gameObject.SetActive(true);
                    //m_TextNumber.text = SetText(ID);
                    m_Btn.gameObject.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 = loginRewardModel.IsOpenFeatures();
                        if (_bool)
                        {
                            loginRewardModel.SendLoginAwardInfo(loginRewardModel.SelectedNow, id);
                        }
                        else
                        {
                            SysNotifyMgr.Instance.ShowTip("SevenDayOver2");
                        }
                    });
                }
                else
                {
                    if (rewardNum >= LoginAward.TotalTimes)//已经领完
                    {
                        m_Btn.gameObject.SetActive(false);
                        m_Miss.SetActive(false);
                        m_Reach.SetActive(false);
                        m_Draw.SetActive(true);
                    }
                    else//未到达(前往)
                    {
                        //m_TextNumber.gameObject.SetActive(true);
                        //m_TextNumber.text = SetText(ID);
                        m_Btn.gameObject.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);
                        });
                    }
                }
            }
        }
    }