少年修仙传客户端代码仓库
hch
2019-10-07 15a5fc8a8b9bfdb5b8ec5fe917ea9eb726e21a17
0312 开服排行迁移,免费商品红点
7个文件已修改
2个文件已添加
558 ■■■■ 已修改文件
System/MainInterfacePanel/TopRightTip.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/ImpactBillRankWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/ImpactRankAwardCell.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/ImpactRankModel.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/ImpactRankWin.cs 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenActivityRankTypeCell.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServerActivityRankWin.cs 321 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServerActivityRankWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Store/StoreModel.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TopRightTip.cs
@@ -18,6 +18,7 @@
        public Image m_MapImage;
        public Image m_MapHero;
        public Text m_MapName;
        public Button m_ServerRank;
        LocalMap mapMatrix;
        Vector3 heroPrePosition = new Vector3(-999, -8888, 0);
@@ -30,6 +31,8 @@
            m_Map.SetListener(OpenMapWin);
            m_Daily.SetListener(OpenDailyQuestWin);
            m_BackPack.SetListener(OpenBackpack);
            m_ServerRank.SetListener(OpenRank);
            OpenServerActivityCenter.Instance.openServerActivityStateChange += OpenServerActivityStateChange;
        }
        public void UnInit()
@@ -37,6 +40,18 @@
            m_Map.RemoveAllListeners();
            m_Daily.RemoveAllListeners();
            m_BackPack.RemoveAllListeners();
            m_ServerRank.RemoveAllListeners();
            OpenServerActivityCenter.Instance.openServerActivityStateChange -= OpenServerActivityStateChange;
        }
        private void OpenServerActivityStateChange()
        {
            m_ServerRank.gameObject.SetActive(OpenServerActivityCenter.Instance.IsActivityOpen(0));
        }
        private void OpenRank()
        {
            WindowCenter.Instance.Open<OpenServerActivityRankWin>();
        }
        private void OpenMapWin()
System/OpenServerActivity/ImpactBillRankWin.cs
@@ -95,11 +95,12 @@
                    }
                }
                m_RankCtrl.Restart();
                m_RankCtrl.JumpIndex(model.viewRankStartIndex);
            }
            else
            {
                m_RankCtrl.m_Scorller.RefreshActiveCellViews();
                m_RankCtrl.JumpIndex(0);
                m_RankCtrl.JumpIndex(model.viewRankStartIndex);
            }
            var rank = 0;
            if (!rankModel.TryGetMyRank(type, out rank))
System/OpenServerActivity/ImpactRankAwardCell.cs
@@ -19,6 +19,26 @@
        public Image hasGetImg { get { return m_HasGetImg; } }
        [SerializeField] UIEffect m_GetEffect;
        public UIEffect effect { get { return m_GetEffect; } }
        [SerializeField] Image m_RankImg;
        public Image rankImg { get { return m_RankImg; } }
        [SerializeField] Text m_NameText;
        public Text nameText { get { return m_NameText; } }
        [SerializeField] Text m_CountText;
        public Text countText { get { return m_CountText; } }
        [SerializeField] Text m_NowText;
        public Text nowText { get { return m_NowText; } }
        [SerializeField] GameObject m_ObjTop3;
        public GameObject objTop3 { get { return m_ObjTop3; } }
        [SerializeField] GameObject m_RankIndexs;
        public GameObject objRankIndex { get { return m_RankIndexs; } }
        [SerializeField] GameObject m_ObjTarget;
        public GameObject objTarget { get { return m_ObjTarget; } }
        [SerializeField] Text m_RankIndexsText;
        public Text rankIndexsText { get { return m_RankIndexsText; } }
        [SerializeField] Button m_BtnBill;
        public Button btnBill { get { return m_BtnBill; } }
    }
}
System/OpenServerActivity/ImpactRankModel.cs
@@ -114,7 +114,7 @@
        public int openServerActivityDays { get; private set; }
        public int openServerRankDays { get; private set; }
        public int gotoImpactRankType { get; set; }
        public int viewRankStartIndex;
        public List<Int2> GetBillRankPromotePaths(int type)
        {
@@ -336,6 +336,12 @@
            return _condition.start - TimeUtility.OpenDay - 1;
        }
        public int GetOpenStartDay(int _type)
        {
            var _condition = impactRankTypeOpenDict[_type];
            return _condition.start;
        }
        public int GetSurplusDay(int _type)
        {
            if (!impactRankTypeOpenDict.ContainsKey(_type))
@@ -453,16 +459,16 @@
            get { return m_PresentSelectType; }
            set {
                m_PresentSelectType = value;
                if (OnSelectRankTypeEvent != null)
                {
                    OnSelectRankTypeEvent();
                }
                var _order = m_PresentSelectType / 100;
                var _type = m_PresentSelectType % 100;
                if (_order == 0)
                {
                    presentBillRankType = GetRankType(_type);
                }
                if (OnSelectRankTypeEvent != null)
                {
                    OnSelectRankTypeEvent();
                }
            }
        }
System/OpenServerActivity/ImpactRankWin.cs
@@ -118,6 +118,7 @@
            if (type == (int)model.presentBillRankType)
            {
                UpdateRanks();
                m_RankAwardCtrl.m_Scorller.RefreshActiveCellViews();
            }
        }
@@ -311,18 +312,30 @@
            }
            var _tip = string.Empty;
            _cell.objTop3.gameObject.SetActive(false);
            _cell.objRankIndex.gameObject.SetActive(false);
            _cell.objTarget.gameObject.SetActive(false);
            _cell.getBtn.gameObject.SetActive(false);
            _cell.unCompleteImg.gameObject.SetActive(false);
            _cell.hasGetImg.gameObject.SetActive(false);
            _cell.effect.gameObject.SetActive(false);
            //_cell.rankImg.gameObject.SetActive(false);
            //_cell.countText.gameObject.SetActive(false);
            //_cell.nameText.gameObject.SetActive(false);
            _cell.nowText.gameObject.SetActive(false);
            _cell.nameText.text = "-";
            _cell.countText.text = "-";
            ImpactRankModel.OpenServerPlayerData _playerData;
            var _hasData = model.TryGetOpenServerPlayerData(model.presentSelectType, out _playerData);
            if (model.IsMissImpactRank(model.presentSelectType) || model.IsLock(model.presentSelectType))
            if (awardType == ImpactRankModel.ImpactRankAwardType.Target)
            {
                _cell.unCompleteImg.gameObject.SetActive(true);
            }
            else if (awardType == ImpactRankModel.ImpactRankAwardType.Target)
            {
                _cell.objTarget.gameObject.SetActive(true);
                _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Target_", model.presentSelectType),
                                    _billTagCfg.Condition);
                _cell.rankTip.text = _tip;
                if (!_hasData)
                {
                    _cell.unCompleteImg.gameObject.SetActive(true);
@@ -343,97 +356,51 @@
                    }
                }
            }
            else if (model.IsActivityClose(model.presentSelectType))
            else if (awardType == ImpactRankModel.ImpactRankAwardType.Rank)
            {
                if (!_hasData)
                if (!model.IsActivityClose(model.presentSelectType))
                    _cell.nowText.gameObject.SetActive(true);
                var _condition = model.impactRankTypeOpenDict[model.presentSelectType];
                if (_billRankCfg.RankA == _billRankCfg.RankB)
                {
                    _cell.unCompleteImg.gameObject.SetActive(true);
                    _cell.objTop3.gameObject.SetActive(true);
                    _cell.rankImg.SetSprite(_billRankCfg.RankA == 1 ? "Rank_First" : _billRankCfg.RankA == 2 ? "Rank_Second" : "Rank_Third");
                    //top3 名字和 数值
                    RankData data = null;
                    List<RankData> rankDatas = null;
                    if (rankModel.TryGetRanks((int)model.presentBillRankType, out rankDatas))
                    {
                        if (_billRankCfg.RankA <= rankDatas.Count)
                        {
                            data = rankDatas[_billRankCfg.RankA-1];
                        }
                        if (data != null)
                        {
                            _cell.nameText.text = data.name1;
                            var billName = Language.Get(StringUtility.Contact("ImpactRankType_", model.presentSelectType));
                            _cell.countText.text = billName.Substring(0, billName.Length / 2) + ":" + data.cmpValue.ToString();
                        }
                    }
                }
                else
                {
                    if (awardType == ImpactRankModel.ImpactRankAwardType.Rank)
                    _cell.objRankIndex.gameObject.SetActive(true);
                    _cell.rankIndexsText.text = _billRankCfg.RankA.ToString() + "-" + _billRankCfg.RankB.ToString();
                    _cell.btnBill.onClick.RemoveAllListeners();
                    _cell.btnBill.onClick.AddListener(() =>
                    {
                        var _start = _billRankCfg.RankA;
                        var _end = _billRankCfg.RankB;
                        var _rank = 0;
                        if (!rankModel.TryGetMyRank((int)model.GetRankType(model.presentSelectType), out _rank))
                        {
                            _rank = -1;
                        }
                        if (_rank == -1 || _rank < _start || _rank > _end)
                        {
                            _cell.unCompleteImg.gameObject.SetActive(!model.InImpactRank(model.presentSelectType));
                        }
                        else
                        {
                            _cell.unCompleteImg.gameObject.SetActive(false);
                            _cell.hasGetImg.gameObject.SetActive(_playerData.billAwardGet);
                            _cell.getBtn.gameObject.SetActive(!_playerData.billAwardGet);
                            _cell.effect.gameObject.SetActive(!_playerData.billAwardGet);
                        }
                    }
                        OnViewRank(_billRankCfg.RankA-1);
                    });
                }
            }
            var _condition = model.impactRankTypeOpenDict[model.presentSelectType];
            switch (model.presentSelectType)
            {
                case 5:
                    switch (awardType)
                    {
                        case ImpactRankModel.ImpactRankAwardType.Rank:
                            {
                                if (_billRankCfg.RankA == _billRankCfg.RankB)
                                {
                                    var _realmCfg = RealmConfig.Get(_condition.limit);
                                    _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Single_", model.presentSelectType),
                                        _billRankCfg.RankA, _realmCfg != null ? _realmCfg.Name : string.Empty);
                                }
                                else
                                {
                                    var _realmCfg = RealmConfig.Get(_condition.limit);
                                    _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Double_", model.presentSelectType),
                                        _billRankCfg.RankA, _billRankCfg.RankB, _realmCfg != null ? _realmCfg.Name : string.Empty);
                                }
                            }
                            break;
                        case ImpactRankModel.ImpactRankAwardType.Target:
                            {
                                var _realmCfg = RealmConfig.Get(_billTagCfg.Condition);
                                _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Target_", model.presentSelectType),
                                    _realmCfg != null ? _realmCfg.Name : string.Empty);
                            }
                            break;
                    }
                    break;
                default:
                    {
                        switch (awardType)
                        {
                            case ImpactRankModel.ImpactRankAwardType.Rank:
                                {
                                    if (_billRankCfg.RankA == _billRankCfg.RankB)
                                    {
                                        _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Single_", model.presentSelectType),
                                            _billRankCfg.RankA, _condition.limit);
                                    }
                                    else
                                    {
                                        _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Double_", model.presentSelectType),
                                            _billRankCfg.RankA, _billRankCfg.RankB, _condition.limit);
                                    }
                                }
                                break;
                            case ImpactRankModel.ImpactRankAwardType.Target:
                                {
                                    _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Target_", model.presentSelectType),
                                        _billTagCfg.Condition);
                                }
                                break;
                        }
                    }
                    break;
            }
            _cell.rankTip.text = _tip;
            _cell.getBtn.onClick.RemoveAllListeners();
            _cell.getBtn.onClick.AddListener(() =>
            {
@@ -446,8 +413,9 @@
                    OnGetClick(_billRankCfg, _cell.index);
                }
            });
        }
        }
        private void OnGetClick(OSCBillRankAwardConfig _cfg, int index)
        {
            var _index = model.GetBillIndex(model.presentSelectType, index);
@@ -467,9 +435,19 @@
                SysNotifyMgr.Instance.ShowTip("FunctionNotOpen", Language.Get(StringUtility.Contact("ImpactRankType_", model.presentSelectType)));
                return;
            }
            model.viewRankStartIndex = 0;
            WindowCenter.Instance.Open<ImpactBillRankWin>();
        }
        private void OnViewRank(int rank)
        {
            if (model.IsLock(model.presentSelectType))
            {
                SysNotifyMgr.Instance.ShowTip("FunctionNotOpen", Language.Get(StringUtility.Contact("ImpactRankType_", model.presentSelectType)));
                return;
            }
            model.viewRankStartIndex = rank;
            WindowCenter.Instance.Open<ImpactBillRankWin>();
        }
        private void OnRuleBtn()
        {
            ModelCenter.Instance.GetModel<HowToPlayModel>().ruleId = GetRuleId();
System/OpenServerActivity/OpenActivityRankTypeCell.cs
@@ -37,6 +37,15 @@
        {
            m_ContainerSelect.gameObject.SetActive(select);
        }
        [SerializeField] Image m_LockImage;
        public Image lockImage
        {
            get
            {
                return m_LockImage;
            }
        }
    }
}
System/OpenServerActivity/OpenServerActivityRankWin.cs
New file
@@ -0,0 +1,321 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
#if UNITY_EDITOR
using UnityEditor;
using UnityEditorInternal;
#endif
namespace Snxxz.UI
{
    //开服活动  独立界面
    public class OpenServerActivityRankWin : Window
    {
        [SerializeField] ScrollerController m_ActivityCtrl;
        [SerializeField] Button m_BtnClose;
        List<int> m_OpenServerActivities = new List<int>();
        ImpactRankModel impactRankModel { get { return ModelCenter.Instance.GetModel<ImpactRankModel>(); } }
        List<int> openActivitys = new List<int>();
        List<int> priorityActivitys = new List<int>();
        List<int> alreadyOpenActivitys = new List<int>();
        protected override void BindController()
        {
            m_OpenServerActivities.Add(0);
        }
        protected override void AddListeners()
        {
            m_ActivityCtrl.OnRefreshCell += OnOpenServerActivityRefresh;
            m_ActivityCtrl.OnGetDynamicSize += OnGetDynamicSize;
            m_ActivityCtrl.lockType = EnhanceLockType.KeepVertical;
            m_BtnClose.onClick.AddListener(TryClose);
        }
        protected override void OnPreOpen()
        {
            TimeUtility.OnServerOpenDayRefresh += OnStepServerDayEvent;
            OpenServerActivityCenter.Instance.openServerActivityStateChange += OpenServerActivityStateChange;
            var impactDefaultType = impactRankModel.GetDefaultSelectType();
            if (impactRankModel.IsLock(impactDefaultType))
            {
                impactDefaultType = impactRankModel.impactRankSorts[0];
            }
            impactRankModel.presentSelectType = impactDefaultType;
            impactRankModel.gotoImpactRankType = 0;
            CheckAlreadyOpen();
            UpdateFunctionBtns();
        }
        protected override void OnActived()
        {
            if (alreadyOpenActivitys.Count == 0)
            {
                CloseImmediately();
                return;
            }
            if (functionOrder == 0 && !WindowJumpMgr.Instance.IsJumpState)
            {
                functionOrder = GetDefaultSelect();
                UpdateFunctionBtns();
            }
            WindowCenter.Instance.Open("ImpactRankWin", true);
            var index = alreadyOpenActivitys.IndexOf(functionOrder);
            m_ActivityCtrl.JumpIndex(index);
        }
        protected override void OnAfterOpen()
        {
            impactRankModel.OSCEffectOpen = false;
        }
        protected override void OnPreClose()
        {
            TimeUtility.OnServerOpenDayRefresh -= OnStepServerDayEvent;
            OpenServerActivityCenter.Instance.openServerActivityStateChange -= OpenServerActivityStateChange;
            impactRankModel.gotoImpactRankType = 0;
            WindowCenter.Instance.Close("ImpactRankWin");
        }
        protected override void OnAfterClose()
        {
            if (!WindowJumpMgr.Instance.IsJumpState)
            {
                WindowCenter.Instance.Open<MainInterfaceWin>();
            }
        }
        private void TryClose()
        {
            CloseClick();
        }
        int GetDefaultSelect()
        {
            openActivitys.Clear();
            priorityActivitys.Clear();
            for (int i = 0; i < m_OpenServerActivities.Count; i++)
            {
                var activityId = m_OpenServerActivities[i];
                if (OpenServerActivityCenter.Instance.IsActivityOpen(activityId))
                {
                    openActivitys.Add(activityId);
                    if (OpenServerActivityCenter.Instance.IsPriorityOpenOpen(activityId))
                    {
                        priorityActivitys.Add(activityId);
                        OpenServerActivityCenter.Instance.SetSelectDefaultChildType(activityId);
                    }
                }
            }
            if (priorityActivitys.Count > 0)
            {
                priorityActivitys.Sort(Compare);
                return priorityActivitys[0];
            }
            else
            {
                openActivitys.Sort(Compare);
                return openActivitys[0];
            }
        }
        void CheckAlreadyOpen()
        {
            alreadyOpenActivitys.Clear();
            for (int i = 0; i < m_OpenServerActivities.Count; i++)
            {
                if (OpenServerActivityCenter.Instance.IsActivityOpen(m_OpenServerActivities[i]))
                {
                    alreadyOpenActivitys.Add(m_OpenServerActivities[i]);
                }
            }
        }
        private void OnOpenServerActivityRefresh(ScrollerDataType type, CellView cell)
        {
            switch (type)
            {
                case ScrollerDataType.Header:
                    RefreshOpenActivityCell(cell as OpenServerActivityCell);
                    break;
                case ScrollerDataType.Normal:
                    RefreshActivityTypeCell(cell as OpenActivityRankTypeCell);
                    break;
            }
        }
        private bool OnGetDynamicSize(ScrollerDataType type, int index, out float height)
        {
            height = 74;
            //var sort = index;
            //if (type == ScrollerDataType.Header)
            //{
            //    if (!m_ActivitySpreadDict.ContainsKey(sort) || !m_ActivitySpreadDict[sort]
            //        || !OpenServerActivityCenter.Instance.ExistChildBookmark(sort))
            //    {
            //        height = 121;
            //        return true;
            //    }
            //}
            return false;
        }
        private void RefreshOpenActivityCell(OpenServerActivityCell _cell)
        {
            var activityType = 0;
            activityType = _cell.index >= 1000 ? _cell.index / 1000 : _cell.index;
            var extraValue = _cell.index % 1000;
            var customActivity = m_OpenServerActivities.Find((x) =>
            {
                return x == activityType;
            });
            _cell.containerTimer.gameObject.SetActive(false);
            _cell.activityType = activityType;
            _cell.redpoint.redpointId = MainRedDot.REDPOINT_OPENSERVER * 100 + activityType;
            _cell.SetSelect(_cell.activityType == functionOrder);
            _cell.icon.SetSprite("OpenServerActivty_QMCB");
            _cell.downArrow.gameObject.SetActive(false);
            _cell.upArrow.gameObject.SetActive(false);
            _cell.funcBtn.onClick.RemoveAllListeners();
        }
        private void OnStepServerDayEvent()
        {
            UpdateFunctionBtns();
        }
        private void RefreshActivityTypeCell(OpenActivityRankTypeCell _cell)
        {
            int _order = _cell.index / 100;
            int _type = _cell.index % 100;
            _cell.redpoint.redpointId = (209 * 100 + _order) * 100 + _type;
            _cell.titleTxt.text = Language.Get(StringUtility.Contact("ImpactRankType_", _type));
            _cell.SetSelect(_type == impactRankModel.presentSelectType);
            _cell.functionBtn.onClick.RemoveAllListeners();
            _cell.functionBtn.onClick.AddListener(() =>
            {
                OnActivityType(_cell.index);
            });
            if (impactRankModel.IsLock(_type))
            {
                _cell.functionBtn.SetColorful(null, false);
                _cell.lockImage.SetActive(true);
            }
            else
            {
                _cell.functionBtn.SetColorful(null, true);
                _cell.lockImage.SetActive(false);
            }
        }
        private void UpdateFunctionBtns()
        {
            m_ActivityCtrl.Refresh();
            for (int i = 0; i < m_OpenServerActivities.Count; i++)
            {
                var activityId = m_OpenServerActivities[i];
                if (!alreadyOpenActivitys.Contains(activityId))
                {
                    continue;
                }
                switch (activityId)
                {
                    case 0:
                        m_ActivityCtrl.AddCell(ScrollerDataType.Header, activityId);
                        foreach (var _type in impactRankModel.impactRankSorts)
                        {
                            //if (impactRankModel.IsLock(_type))
                            //{
                            //    continue;
                            //}
                            m_ActivityCtrl.AddCell(ScrollerDataType.Normal, activityId * 100 + _type);
                        }
                        break;
                    default:
                        break;
                }
            }
            m_ActivityCtrl.Restart();
            m_ActivityCtrl.m_Scorller.RefreshActiveCellViews();
        }
        private void OnActivityType(int _index)
        {
            var _order = _index / 100;
            var _type = _index % 100;
            if (impactRankModel.IsLock(_type))
            {
                SysNotifyMgr.Instance.ShowTip("ImpactRankActivityUnOpen",
                    Language.Get(StringUtility.Contact("ImpactRankType_", _type)),
                    impactRankModel.GetOpenStartDay(_type));
                return;
            }
            impactRankModel.presentSelectType = _type;
            m_ActivityCtrl.m_Scorller.RefreshActiveCellViews();
        }
        private int Compare(int order_x, int order_y)
        {
            var index_x = m_OpenServerActivities.FindIndex((x) =>
            {
                return order_x == x;
            });
            var index_y = m_OpenServerActivities.FindIndex((x) =>
            {
                return order_y == x;
            });
            return index_x.CompareTo(index_y);
        }
        private void OpenServerActivityStateChange()
        {
            bool _update = false;
            for (int i = 0; i < m_OpenServerActivities.Count; i++)
            {
                var activityId = m_OpenServerActivities[i];
                if (OpenServerActivityCenter.Instance.IsActivityOpen(activityId)
                    && !alreadyOpenActivitys.Contains(activityId))
                {
                    alreadyOpenActivitys.Add(activityId);
                    _update = true;
                }
            }
            if (_update)
            {
                UpdateFunctionBtns();
            }
        }
    }
}
System/OpenServerActivity/OpenServerActivityRankWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 4afec3d664d04874d97512f378c061f8
timeCreated: 1570189619
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Store/StoreModel.cs
@@ -1615,6 +1615,10 @@
            shopRedDict[storeConfig.ID].state = RedPointState.None;
            IsMustBuyDay = false;
        }
        else if (type == 1)
        {
            shopRedDict[storeConfig.ID].state = RedPointState.None;
        }
    }
    public bool IsMustBuyDay { get; private set; }