少年修仙传客户端代码仓库
hch
2019-11-27 010babc56df03b44787c953543157ad5690f461d
8340 强化界面提取装备阶
6个文件已修改
2个文件已添加
262 ■■■■■ 已修改文件
Lua/Gen/SnxxzUIEquipModelWrap.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/EquipFrameWin.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/EquipModel.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/EquipSetSelect.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/EquipSetSelect.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/RealmEquipWin.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/EquipGem/EquipStrengthModel.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/EquipGem/EquipStrengthWin.cs 110 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIEquipModelWrap.cs
@@ -652,7 +652,7 @@
                
                {
                    
                        System.Collections.Generic.List<int> gen_ret = gen_to_be_invoked.GetViewableEquipSets(  );
                        System.Collections.Generic.List<int> gen_ret = gen_to_be_invoked.GetUnLockedEquipSets(  );
                        translator.Push(L, gen_ret);
                    
                    
System/Equip/EquipFrameWin.cs
@@ -13,7 +13,26 @@
{
    public class EquipFrameWin : OneLevelWin
    {
    {
        protected Image m_LeftTop;
        protected override void BindController()
        {
            base.BindController();
            m_LeftTop = this.GetComponent<Image>("Pivot/Container_Decorate/Img_LeftTop");
            m_LeftTop.gameObject.SetActive(false);
            m_Left.SetActive(false);
            m_Right.SetActive(false);
        }
        protected override void OnActived()
        {
            base.OnActived();
            m_Left.gameObject.SetActive(false);
            m_Right.gameObject.SetActive(false);
        }
        protected override void AddListeners()
        {
            base.AddListeners();
System/Equip/EquipModel.cs
@@ -44,7 +44,7 @@
        public event Action appearanceChangeEvent;
        public event Action<int> OnSelectSetEvent;
        public event Action<int> OnSelectFuncSetEvent;  // 装备功能选中阶(如锻造)
        public void OnPlayerLoginOk()
        {
@@ -198,7 +198,15 @@
            return -1;
        }
        public void SelectSet(int level)
        // 装备功能选中阶(如锻造)
        // 20191126 装备阶标签独立提取出来方便操作
        public void SelectFuncSet(int level)
        {
            if (OnSelectFuncSetEvent != null)
                OnSelectFuncSetEvent(level);
        }
            public void SelectSet(int level)
        {
            selectedLevel.value = level;
            if (selectedLevel.dirty)
@@ -406,26 +414,7 @@
            return new List<int>(equipSets.Keys);
        }
        public List<int> GetViewableEquipSets()
        {
            var sets = new List<int>();
            var index = 0;
            for (index = 0; index < sortedLevels.Count; index++)
            {
                var level = sortedLevels[index];
                var set = equipSets[level];
                if (set.unLocked)
                {
                    sets.Add(set.level);
                }
                else
                {
                    break;
                }
            }
            return sets;
        }
        public List<int> GetUnLockedEquipSets()
        {
@@ -451,7 +440,7 @@
        {
            var sets = new List<int>();
            int limitLevel = 0;
            if (EquipLevelFuncID != null)
            if (EquipLevelFuncID != null && EquipLevelFuncID.ContainsKey(funcID))
                limitLevel = EquipLevelFuncID[funcID];
            for (var i = 0; i < sortedLevels.Count; i++)
System/Equip/EquipSetSelect.cs
New file
@@ -0,0 +1,64 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, March 11, 2019
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class EquipSetSelect : MonoBehaviour
    {
        [SerializeField] Text m_EquipHeadName;
        [SerializeField] Transform m_ContainerSelect;
        [SerializeField] Button m_Select;
        [SerializeField] RedpointBehaviour m_Redpoint;
        EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
        int equipLevel = 0;
        public void Display(int level, bool isSelect, int repointID)
        {
            this.equipLevel = level;
            var equipSet = equipModel.GetEquipSet(level);
            if (equipSet != null)
            {
                var realmConfig = RealmConfig.Get(equipSet.realm);
                if (realmConfig != null)
                {
                    m_EquipHeadName.text = realmConfig.Name;
                }
            }
            m_ContainerSelect.gameObject.SetActive(isSelect);
            m_Select.SetListener(OnSelect);
            m_Redpoint.redpointId = repointID;
        }
        private void OnSelect()
        {
            equipModel.SelectFuncSet(equipLevel);
            //if (strengthModel.SelectLevel == equipLevel)
            //{
            //    strengthModel.SelectLevel = -1;
            //}
            //else
            //{
            //    strengthModel.SelectLevel = equipLevel;
            //}
        }
    }
}
System/Equip/EquipSetSelect.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: d37ecc79f6400664bb548ee0085c09c7
timeCreated: 1574756015
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Equip/RealmEquipWin.cs
@@ -76,14 +76,14 @@
        protected void TriggerNext()
        {
            int index = Math.Min(model.selectedLevel.value + 1, model.GetViewableEquipSets().Count);
            int index = Math.Min(model.selectedLevel.value + 1, model.GetUnLockedEquipSets().Count);
            model.SelectSet(index);
            
        }
        protected void ChangeHorizontalPos(int index)
        {
            m_Group.ChangeHorizontalPos((float)(index-1) / model.GetViewableEquipSets().Count);
            m_Group.ChangeHorizontalPos((float)(index-1) / model.GetUnLockedEquipSets().Count);
        }
        protected override void OnPreOpen()
@@ -191,7 +191,7 @@
        private void DisplayLevels()
        {
            var sets = model.GetViewableEquipSets();
            var sets = model.GetUnLockedEquipSets();
            var behaviourCount = sets.Count;
            var behaviourGap = behaviourCount - levelSelectBehaviours.Count;
            for (var i = 0; i < behaviourGap; i++)
System/EquipGem/EquipStrengthModel.cs
@@ -165,6 +165,7 @@
            packModel.refreshItemCountEvent += RefreshItemCountEvent;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
            equipModel.OnSelectFuncSetEvent += OnSelect;
        }
        public void OnBeforePlayerDataInitialize()
@@ -184,6 +185,19 @@
            packModel.refreshItemCountEvent -= RefreshItemCountEvent;
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
            PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent;
            equipModel.OnSelectFuncSetEvent -= OnSelect;
        }
        private void OnSelect(int equipLevel)
        {
            if (SelectLevel == equipLevel)
            {
                return;
            }
            else
            {
                SelectLevel = equipLevel;
            }
        }
        private void PlayerDataRefreshEvent(PlayerDataType dataType)
System/EquipGem/EquipStrengthWin.cs
@@ -15,6 +15,7 @@
    public class EquipStrengthWin : Window
    {
        [SerializeField] ScrollerController m_Controller;
        [SerializeField] RectTransform m_LevelsContainer;
        [SerializeField] Transform m_ContainerStrength;
        [SerializeField] Transform m_ContainerEmpty;
@@ -85,6 +86,8 @@
        List<int> m_Sorts = new List<int>();
        List<EquipSetSelect> EquipSetList = new List<EquipSetSelect>();
        #region Built-in
        protected override void BindController()
        {
@@ -116,7 +119,7 @@
            PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
            mainModel.customDisplayPower += CustomDisplayPower;
            m_Controller.JumpIndex(GetJumpIndex(model.SelectLevel, model.SelectEquipPlace, selectEquip));
            m_Controller.JumpIndex(GetJumpIndex(model.SelectLevel, model.SelectEquipPlace));
        }
@@ -174,44 +177,28 @@
            return IsAutomaticBool || (Time.time - customDelayTime) < customPowerUpDelay;
        }
        int GetJumpIndex(int selectLevel, int selectPlace, bool selectEquip)
        int GetJumpIndex(int selectLevel, int selectPlace)
        {
            var jumpIndex = 0;
            var equipSets = equipModel.GetAllEquipSets();
            foreach (var level in equipSets)
            var equipSet = equipModel.GetEquipSet(selectLevel);
            if (equipSet == null)
            {
                if (level > selectLevel)
                return jumpIndex;
            }
            foreach (var place in m_Sorts)
            {
                if (equipSet.IsSlotUnLocked(place))
                {
                    return jumpIndex;
                }
                var equipSet = equipModel.GetEquipSet(level);
                if (equipSet == null)
                {
                    continue;
                }
                if (equipSet.unLocked)
                {
                    if (selectLevel == level && !selectEquip)
                    if (selectPlace == place)
                    {
                        return jumpIndex;
                    }
                    jumpIndex++;
                    if (model.SelectLevel == level)
                    {
                        foreach (var place in m_Sorts)
                        {
                            if (equipSet.IsSlotUnLocked(place))
                            {
                                if (selectLevel == level && selectPlace == place)
                                {
                                    return jumpIndex;
                                }
                                jumpIndex++;
                            }
                        }
                    }
                }
            }
            return 0;
        }
@@ -263,36 +250,59 @@
                m_Controller.m_Scorller.RefreshActiveCellViews();
            }
        }
        void DisplayEquips()
        private void DisplayEquips()
        {
            m_Controller.Refresh();
            var equipSets = equipModel.GetAllEquipSets();
            foreach (var level in equipSets)
            var sets = equipModel.GetUnLockedEquipSetsByFuncID(-1);
            var behaviourCount = sets.Count;
            var behaviourGap = behaviourCount - EquipSetList.Count;
            for (var i = 0; i < behaviourGap; i++)
            {
                var equipSet = equipModel.GetEquipSet(level);
                if (equipSet == null)
                var instance = UIUtility.CreateWidget("EquipSetSelect", "EquipSetSelect");
                instance.transform.SetParentEx(m_LevelsContainer, Vector3.zero, Quaternion.identity, Vector3.one);
                instance.transform.SetAsFirstSibling();
                EquipSetList.Insert(0, instance.GetComponent<EquipSetSelect>());
            }
            m_Controller.Refresh();
            for (var i = 0; i < EquipSetList.Count; i++)
            {
                var behaviour = EquipSetList[i];
                if (i < behaviourCount)
                {
                    continue;
                    behaviour.gameObject.SetActive(true);
                    Redpoint redpoint;
                    model.TryGetRedpoint(sets[i], out redpoint);
                    behaviour.Display(sets[i], model.SelectLevel== sets[i], redpoint.id);
                }
                if (equipSet.unLocked)
                else
                {
                    m_Controller.AddCell(ScrollerDataType.Header, level);
                    if (model.SelectLevel == level)
                    behaviour.gameObject.SetActive(false);
                }
                if (model.SelectLevel == sets[i])
                {
                    var equipSet = equipModel.GetEquipSet(sets[i]);
                    if (equipSet == null)
                    {
                        m_Sorts.Clear();
                        m_Sorts.AddRange(model.equipPlaces);
                        m_Sorts.Sort(EquipCompare);
                        foreach (var place in m_Sorts)
                        continue;
                    }
                    m_Sorts.Clear();
                    m_Sorts.AddRange(model.equipPlaces);
                    m_Sorts.Sort(EquipCompare);
                    foreach (var place in m_Sorts)
                    {
                        if (equipSet.IsSlotUnLocked(place))
                        {
                            if (equipSet.IsSlotUnLocked(place))
                            {
                                m_Controller.AddCell(ScrollerDataType.Normal, level * 1000 + place);
                            }
                            m_Controller.AddCell(ScrollerDataType.Header, sets[i] * 1000 + place);
                        }
                    }
                }
            }
            m_Controller.Restart();
        }
        private int EquipCompare(int x, int y)
@@ -341,10 +351,6 @@
            switch (type)
            {
                case ScrollerDataType.Header:
                    var equipGemHeadCell = cell as EquipStrengthHeadBehaviour;
                    equipGemHeadCell.Display(cell.index);
                    break;
                case ScrollerDataType.Normal:
                    var level = cell.index / 1000;
                    var place = cell.index % 1000;
                    var equipSelectCell = cell as EquipStrengthSelectBehaviour;
@@ -566,7 +572,7 @@
                                if (!m_Controller.IsDisplay(position.x * 1000 + position.y))
                                {
                                    m_Controller.JumpIndex(GetJumpIndex(model.SelectLevel, model.SelectEquipPlace, true));
                                    m_Controller.JumpIndex(GetJumpIndex(model.SelectLevel, model.SelectEquipPlace));
                                }
                            }
                        }