少年修仙传客户端代码仓库
client_Wu Xijin
2018-12-20 4a7f3eeccece535973459f8ab8eff885edde0a66
Merge branch 'Cross_Server' of http://192.168.0.87:10010/r/snxxz_scripts into Cross_Server
3个文件已修改
185 ■■■■ 已修改文件
System/CrossServerOneVsOne/SeasonRewardWin.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/SegmentRewardCell.cs 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/SegmentRewardWin.cs 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/SeasonRewardWin.cs
@@ -36,15 +36,29 @@
        protected override void OnAfterOpen()
        {
            crossServerRewardModel.CrossRealmPKAwardStateUpdate += CrossRealmPKAwardStateUpdate;
            CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfoEvent;
        }
        protected override void OnPreClose()
        {
        }
        {
            crossServerRewardModel.CrossRealmPKAwardStateUpdate -= CrossRealmPKAwardStateUpdate;
            CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfoEvent;
        }
        protected override void OnAfterClose()
        {
        }
        private void CrossRealmPKAwardStateUpdate()
        {
            m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
        }
        private void UpdatePlayerInfoEvent()
        {
            m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
        }
        #endregion
        void OnCreateGridLineCell(ScrollerController gridCtrl)
        {
@@ -60,12 +74,7 @@
        {
            int Index = cell.index;
            SeasonRewardCell seasonRewardCell = cell.GetComponent<SeasonRewardCell>();
            seasonRewardCell.SetReceive(Index);
            seasonRewardCell.ReceiveBtn.SetListener(()=>
            {
                m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
            });
            seasonRewardCell.SetReceive(Index);
        }
    }
System/CrossServerOneVsOne/SegmentRewardCell.cs
@@ -22,14 +22,24 @@
        ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
        CrossServerRewardModel m_CrossServerRewardModel;
        CrossServerRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerRewardModel>()); } }
        public Button ReceiveBtn
        private int _Id = 0;
        public void Start()
        {
            get { return m_ReceiveBtn; }
            set { m_ReceiveBtn = value; }
        }
        public void OnEnable()
        {
        }
        private void  OnClickReceive()
        {
            crossServerRewardModel.CrossRealmPKGetAward(CrossRealmPKAwardStateEnum.DanLVAwardState, _Id);
        }
        public void SetReceive(int id)
        {
            m_ReceiveBtn.RemoveAllListeners();
            m_ReceiveBtn.AddListener(OnClickReceive);
            _Id = id;
            if (crossServerRewardModel.SegmentRewardDic.ContainsKey(id))
            {
                var dic = crossServerRewardModel.SegmentRewardDic[id];
@@ -37,11 +47,34 @@
                m_Text_Number.text = dic.Score.ToString();
                ReceiveItem(id);
            }
            if ( CrossServerPlayerInfo.Instance.DanLV>=id)
            {
                bool Bool = crossServerRewardModel.IsAwardState(CrossRealmPKAwardStateEnum.DanLVAwardState, id);
                if (Bool)
                {
                    m_IsReachImage.SetActive(false);
                    m_IsDrawImage.SetActive(true);
                    m_IsMissImage.SetActive(false);
                    m_ReceiveBtn.gameObject.SetActive(false);
                }
                else
                {
                    m_IsReachImage.SetActive(false);
                    m_IsDrawImage.SetActive(false);
                    m_IsMissImage.SetActive(false);
                    m_ReceiveBtn.gameObject.SetActive(true);
                }
            }
            else
            {
                m_IsReachImage.SetActive(true);
                m_IsDrawImage.SetActive(false);
                m_IsMissImage.SetActive(false);
                m_ReceiveBtn.gameObject.SetActive(false);
            }
        }
        private void ReceiveItem(int Id)
        {
            int type = 3;
            var dic = crossServerRewardModel.SegmentRewardDic[Id];
            for (int i = 0; i < m_Itemlist.childCount; i++)
            {
System/CrossServerOneVsOne/SegmentRewardWin.cs
@@ -11,14 +11,16 @@
using TableConfig;
using EnhancedUI.EnhancedScroller;
namespace Snxxz.UI {
namespace Snxxz.UI
{
    //段位奖励
    [XLua.Hotfix]
    public class SegmentRewardWin : Window
    {
        [SerializeField] ScrollerController m_ScrollerController;
        CrossServerRewardModel m_CrossServerRewardModel;
        CrossServerRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerRewardModel>()); } }
        CrossServerRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerRewardModel>()); } }
        List<SeasonAwardClass> ListSort = new List<SeasonAwardClass>();
        #region Built-in
        protected override void BindController()
        {
@@ -31,27 +33,44 @@
        protected override void OnPreOpen()
        {
            OnCreateGridLineCell(m_ScrollerController);
            ToAddSorting();
            OnCreateGridLineCell(m_ScrollerController);
            m_ScrollerController.JumpIndex(JumpIndex());
        }
        protected override void OnAfterOpen()
        {
        {
            crossServerRewardModel.CrossRealmPKAwardStateUpdate += CrossRealmPKAwardStateUpdate;
            CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfoEvent;
        }
        protected override void OnPreClose()
        {
        }
        {
            crossServerRewardModel.CrossRealmPKAwardStateUpdate -= CrossRealmPKAwardStateUpdate;
            CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfoEvent;
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        private void UpdatePlayerInfoEvent()
        {
            m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
        }
        private void CrossRealmPKAwardStateUpdate()
        {
            m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
        }
        void OnCreateGridLineCell(ScrollerController gridCtrl)
        {
            gridCtrl.Refresh();
            foreach (var key in crossServerRewardModel.SegmentRewardDic.Keys)
            for (int i = 0; i < ListSort.Count; i++)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, key);
                gridCtrl.AddCell(ScrollerDataType.Header, ListSort[i].DanLv);
            }
            gridCtrl.Restart();
        }
@@ -60,12 +79,82 @@
            int Index = cell.index;
            SegmentRewardCell segmentRewardCell = cell.GetComponent<SegmentRewardCell>();
            segmentRewardCell.SetReceive(Index);
            segmentRewardCell.ReceiveBtn.SetListener(() =>
        }
        private void ToAddSorting()
        {
            if (ListSort.Count <= 0)
            {
                m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
            });
                foreach (var key in crossServerRewardModel.SegmentRewardDic.Keys)
                {
                    ListSort.Add(crossServerRewardModel.SegmentRewardDic[key]);
                }
            }
            ListSort.Sort(Compare);
        }
        int Compare(SeasonAwardClass x, SeasonAwardClass y)//数组排列
        {
            bool havex1 = IsReceive(x);
            bool havey1 = IsReceive(y);
            if (havex1.CompareTo(havey1) != 0)
            {
                return -havex1.CompareTo(havey1);
            }
            bool havex2 = IsReach(x);
            bool havey2 = IsReach(y);
            if (havex2.CompareTo(havey2) != 0)
            {
                return -havex2.CompareTo(havey2);
            }
            bool havex3 = IsDraw(x);
            bool havey3 = IsDraw(y);
            if (havex3.CompareTo(havey3) != 0)
            {
                return -havex3.CompareTo(havey3);
            }
            if (x.DanLv.CompareTo(y.DanLv) != 0)
            {
                return x.DanLv.CompareTo(y.DanLv);
            }
            return 1;
        }
        private bool IsReceive(SeasonAwardClass _seasonAwardClass)//未领取
        {
            bool Bool = false;
            if (CrossServerPlayerInfo.Instance.DanLV >= _seasonAwardClass.DanLv && !crossServerRewardModel.IsAwardState(CrossRealmPKAwardStateEnum.DanLVAwardState, _seasonAwardClass.DanLv))
            {
                Bool = true;
            }
            return Bool;
        }
        private bool IsReach(SeasonAwardClass _seasonAwardClass)//未达到
        {
            bool Bool = false;
            if (_seasonAwardClass.DanLv > CrossServerPlayerInfo.Instance.DanLV)
            {
                Bool = true;
            }
            return Bool;
        }
        private bool IsDraw(SeasonAwardClass _seasonAwardClass)//已领取
        {
            bool Bool = crossServerRewardModel.IsAwardState(CrossRealmPKAwardStateEnum.DanLVAwardState, _seasonAwardClass.DanLv);
            return Bool;
        }
        private int JumpIndex()
        {
            int Index = 0;
            for (int i = 0; i < ListSort.Count; i++)
            {
                if (IsReceive(ListSort[i]))
                {
                    Index = i;
                    return Index;
                }
            }
            return Index;
        }
    }
}