少年修仙传客户端代码仓库
client_linchunjie
2018-08-20 55822ef7bccbc0fa6bd81637f2d46e9370a624c4
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
3个文件已修改
2个文件已添加
388 ■■■■■ 已修改文件
System/Strengthening/GodBeastChildNodes.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/GodBeastChildNodes.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/GodBeastEntry.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/GodBeastReinforcementWin.cs 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/GodBeastSlidingList.cs 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/GodBeastChildNodes.cs
New file
@@ -0,0 +1,42 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, August 20, 2018
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
namespace Snxxz.UI {
    public class GodBeastChildNodes:MonoBehaviour {
        [SerializeField] ItemCell m_ItemCell;
        [SerializeField] GameObject m_ChoosenImg;
        [SerializeField] Text m_TextNumber;
        [SerializeField] Button m_Button;
        public Button ButtonDown
        {
            get { return m_Button; }
            set { m_Button = value; }
        }
        public GameObject ChoosenImg
        {
            get { return m_ChoosenImg; }
            set { m_ChoosenImg = value; }
        }
        public ItemCell ItemCell
        {
            get { return m_ItemCell; }
            set { m_ItemCell = value; }
        }
        public Text TextNumber
        {
            get { return m_TextNumber; }
            set { m_TextNumber = value; }
        }
    }
}
System/Strengthening/GodBeastChildNodes.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 589b5dafae4252347a827e827ae08ba3
timeCreated: 1534766620
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Strengthening/GodBeastEntry.cs
@@ -16,10 +16,17 @@
        [SerializeField] ItemCell m_itemCell;
        [SerializeField] GameObject m_Selectedbar_Image;
        [SerializeField] Text m_Item_Text;
        //[SerializeField] Button //
        [SerializeField] Button m_GodBeastButton;
        public Button GodBeastButton
        {
            get { return m_GodBeastButton; }
            set { m_GodBeastButton = value; }
        }
        DogzModel Dogz_model;
        DogzModel dogz_model { get { return Dogz_model ?? (Dogz_model = ModelCenter.Instance.GetModel<DogzModel>()); } }
        public void GetGodBeastLocationMarker(int locationMarker)
        public void GetGodBeastLocationMarker(int locationMarker, int currentlySelected)
        {
            int godBeastNumber = locationMarker / 10;
            int godBeastPart = locationMarker % 10;
@@ -43,12 +50,17 @@
                        {
                            m_Item_Text.text = itemConfig.ItemName;
                        }
                        if (locationMarker == currentlySelected)
                        {
                            m_Selectedbar_Image.SetActive(true);
                        }
                        else
                        {
                            m_Selectedbar_Image.SetActive(false);
                        }
                    }
                }
            }
        }
    }
System/Strengthening/GodBeastReinforcementWin.cs
@@ -20,6 +20,7 @@
        public int GodBeastQuality;//神兽品质
        public int GodBeastStar;//神兽星级
        public int LocationMarker;//位置标记
        public int EquipScore;//装备评分
    }
    public class GodBeastReinforcementWin : Window
    {
@@ -30,6 +31,7 @@
        DogzModel Dogz_model;
        DogzModel dogz_model { get { return Dogz_model ?? (Dogz_model = ModelCenter.Instance.GetModel<DogzModel>()); } }
        private List<GodBeastClass> GodBeastList = new List<GodBeastClass>();
        private int CurrentlySelected = 0;
        #region Built-in
        protected override void BindController()
        {
@@ -47,6 +49,7 @@
            OnCreateGridLineCell(m_ScrollerController);
            if (GodBeastList.Count > 0)
            {
                CurrentlySelected = GodBeastList[0].LocationMarker;
                m_ScrollerController.JumpIndex(0);
            }     
            m_GodBeastSlidingList.Init();
@@ -57,8 +60,7 @@
        }
        protected override void OnPreClose()
        {
            m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
        {
            m_ScrollerController.OnRefreshCell -= OnRefreshGridCell;
        }
@@ -85,9 +87,18 @@
                        godBeastClass.GodBeastPart = itemModel[i].EquipPlace;
                        godBeastClass.GodBeastQuality = itemModel[i].chinItemModel.ItemColor;
                        godBeastClass.GodBeastStar = itemModel[i].chinItemModel.StarLevel;
                        godBeastClass.EquipScore = itemModel[i].equipScore;
                        var IudetDogzEquipPlus = itemModel[i].GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus);// 神兽装备强化信息列表 [强化等级, 强化熟练度]
                        godBeastClass.GodBeastLv = IudetDogzEquipPlus[0];
                        godBeastClass.GodBeasProficiency = IudetDogzEquipPlus[1];
                        if (IudetDogzEquipPlus == null)
                        {
                            godBeastClass.GodBeastLv = 0;
                            godBeastClass.GodBeasProficiency = 0;
                        }
                        else
                        {
                            godBeastClass.GodBeastLv = IudetDogzEquipPlus[0];
                            godBeastClass.GodBeasProficiency = IudetDogzEquipPlus[1];
                        }
                        godBeastClass.LocationMarker= key*10+ itemModel[i].EquipPlace;
                        GodBeastList.Add(godBeastClass);
                    }
@@ -117,6 +128,10 @@
            {
                return -x.GodBeasProficiency.CompareTo(y.GodBeasProficiency);
            }
            if (x.EquipScore.CompareTo(y.EquipScore) != 0)//装备评分
            {
                return -x.EquipScore.CompareTo(y.EquipScore);
            }
            return 1;
        }
        void OnCreateGridLineCell(ScrollerController gridCtrl)
@@ -142,6 +157,16 @@
        {
            GodBeastEntry godBeastEntry = cell.GetComponent<GodBeastEntry>();
            int locationMarker = cell.index;
            godBeastEntry.GetGodBeastLocationMarker(locationMarker, CurrentlySelected);
            godBeastEntry.GodBeastButton.RemoveAllListeners();
            godBeastEntry.GodBeastButton.AddListener(()=>
            {
                if (locationMarker != CurrentlySelected)
                {
                    CurrentlySelected = locationMarker;
                    m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
                }
            });
        }
    }
System/Strengthening/GodBeastSlidingList.cs
@@ -5,10 +5,26 @@
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
//神兽强化右侧材料吸收列表
namespace Snxxz.UI {
using System.Collections.Generic;
using System;
//神兽强化右侧材料吸收列表
namespace Snxxz.UI
{
    public class GodBeastBagClass
    {
        public int ItemId;//ID
        public int Index;//下标
        public int IsEquipment;//是否装备0水晶,1装备
        public int Color;//品质颜色
        public int Star;//星级
        public int LV;//等级
        public int Proficiency;//熟练度
        public int EquipScore;//装备评分
        public int Part;//装备位
    }
    public class GodBeastSlidingList:MonoBehaviour {
    public class GodBeastSlidingList : MonoBehaviour
    {
        [SerializeField] ScrollerController m_ScrollerController;
        [SerializeField] Text m_Label;
@@ -23,27 +39,103 @@
        [SerializeField] Toggle m_ToggleAll;
        public int LINE = 10;
        public static event Action<Dictionary<int, int>> AbsorbEvent;
        private List<GodBeastBagClass> GodBeastBagList = new List<GodBeastBagClass>();
        private List<int> DeleteIndexList = new List<int>();
        private Dictionary<int, int> AbsorptionDic = new Dictionary<int, int>();
        private int Quality = 10;
        PlayerPackModel _playerPack;
        PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } }
        private void Start()
        {
            m_Arrow.AddListener(OnClickArrow);
            m_ButtonAll.AddListener(()=>{ OnClickSwith(10); });
            m_ButtonCrystal.AddListener(() => { OnClickSwith(1);});
            m_ButtonBlue.AddListener(() => { OnClickSwith(2); });
            m_ButtonPurple.AddListener(() => { OnClickSwith(3); });
            m_ButtonOrange.AddListener(() => { OnClickSwith(4); });
            m_ButtonAll.AddListener(() =>
            {
                OnClickSwith(10);
                if (m_ToggleAll.isOn)
                {
                    m_ToggleAll.isOn = false;
                }
                GetGodBeastBag();
                FilterQuality();
                m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
                if (AbsorbEvent != null)
                {
                    AbsorbEvent(AbsorptionDic);
                }
            });
            m_ButtonCrystal.AddListener(() =>
            {
                OnClickSwith(0);
                if (m_ToggleAll.isOn)
                {
                    m_ToggleAll.isOn = false;
                }
                GetGodBeastBag();
                FilterQuality();
                m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
                if (AbsorbEvent != null)
                {
                    AbsorbEvent(AbsorptionDic);
                }
            });
            m_ButtonBlue.AddListener(() =>
            {
                OnClickSwith(2);
                if (m_ToggleAll.isOn)
                {
                    m_ToggleAll.isOn = false;
                }
                GetGodBeastBag();
                FilterQuality();
                m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
                if (AbsorbEvent != null)
                {
                    AbsorbEvent(AbsorptionDic);
                }
            });
            m_ButtonPurple.AddListener(() =>
            {
                OnClickSwith(3);
                if (m_ToggleAll.isOn)
                {
                    m_ToggleAll.isOn = false;
                }
                GetGodBeastBag();
                FilterQuality();
                m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
                if (AbsorbEvent != null)
                {
                    AbsorbEvent(AbsorptionDic);
                }
            });
            m_ButtonOrange.AddListener(() =>
            {
                OnClickSwith(4);
                if (m_ToggleAll.isOn)
                {
                    m_ToggleAll.isOn = false;
                }
                GetGodBeastBag();
                FilterQuality();
                m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
                if (AbsorbEvent != null)
                {
                    AbsorbEvent(AbsorptionDic);
                }
            });
            m_ToggleAll.onValueChanged.AddListener(OnClickToggle);
        }
        private void OnEnable()
        {
        }
        private void OnDisable()
        {
        }
        public void  Init()
        public void Init()
        {
            Quality = 10;
            ContentSelect(Quality);
@@ -55,6 +147,8 @@
            {
                m_ToggleAll.isOn = false;
            }
            GetGodBeastBag();//获取神兽背包数据排序
            FilterQuality();//分类筛选
            m_ScrollerController.OnRefreshCell += OnRefreshGridCell;
            OnCreateGridLineCell(m_ScrollerController);
@@ -65,6 +159,114 @@
            m_ScrollerController.OnRefreshCell -= OnRefreshGridCell;
        }
        private void GetGodBeastBag()//获取神兽背包数据排序
        {
            GodBeastBagList.Clear();
            if (playerPack.GetSinglePackModel(PackType.rptDogzItem) == null)
            {
                return;
            }
            Dictionary<int, ItemModel> BackpackDic = playerPack.GetSinglePackModel(PackType.rptDogzItem).GetPackModelIndexDict();
            foreach (var key in BackpackDic.Keys)
            {
                var itemModel = BackpackDic[key];
                GodBeastBagClass godBeastBagClass = new GodBeastBagClass();
                godBeastBagClass.ItemId = itemModel.itemId;
                godBeastBagClass.Index = key;
                if (itemModel.chinItemModel.Type != 70)
                {
                    godBeastBagClass.IsEquipment = 1;
                }
                else
                {
                    godBeastBagClass.IsEquipment = 0;
                }
                godBeastBagClass.Color = itemModel.chinItemModel.ItemColor;
                godBeastBagClass.Star = itemModel.chinItemModel.StarLevel;
                godBeastBagClass.EquipScore = itemModel.equipScore;
                godBeastBagClass.Part = itemModel.EquipPlace;
                var IudetDogzEquipPlus = itemModel.GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus);// 神兽装备强化信息列表 [强化等级, 强化熟练度]
                if (IudetDogzEquipPlus == null)
                {
                    godBeastBagClass.LV = 0;
                    godBeastBagClass.Proficiency = 0;
                }
                else
                {
                    godBeastBagClass.LV = IudetDogzEquipPlus[0];
                    godBeastBagClass.Proficiency = IudetDogzEquipPlus[1];
                }
                GodBeastBagList.Add(godBeastBagClass);
            }
            GodBeastBagList.Sort(Compare);
        }
        int Compare(GodBeastBagClass x, GodBeastBagClass y)
        {
            if (x.IsEquipment.CompareTo(y.IsEquipment) != 0)//是否强化水晶
            {
                return x.IsEquipment.CompareTo(y.IsEquipment);
            }
            if (x.Proficiency.CompareTo(y.Proficiency) != 0)//强化熟练度
            {
                return -x.Proficiency.CompareTo(y.Proficiency);
            }
            if (x.Color.CompareTo(y.Color) != 0)//品质
            {
                return -x.Color.CompareTo(y.Color);
            }
            if (x.Star.CompareTo(y.Star) != 0)//星级
            {
                return -x.Star.CompareTo(y.Star);
            }
            if (x.Part.CompareTo(y.Part) != 0)//装备位
            {
                return x.Part.CompareTo(y.Part);
            }
            if (x.EquipScore.CompareTo(y.EquipScore) != 0)//装备评分
            {
                return x.EquipScore.CompareTo(y.EquipScore);
            }
            return 1;
        }
        private void FilterQuality()//分类筛选
        {
            DeleteIndexList.Clear();
            AbsorptionDic.Clear();
            for (int i = 0; i < GodBeastBagList.Count; i++)
            {
                if (Quality > 0)//只有水晶
                {
                    if (GodBeastBagList[i].IsEquipment != 0)
                    {
                        int type = i;
                        DeleteIndexList.Add(type);
                    }
                }
                else
                {
                    if (Quality < 10 && (GodBeastBagList[i].IsEquipment == 1 || GodBeastBagList[i].Color > Quality))//过滤掉只剩所选品质装备
                    {
                        int type = i;
                        DeleteIndexList.Add(type);
                    }
                }
            }
            for (int j = 0; j < DeleteIndexList.Count; j++)
            {
                GodBeastBagList.RemoveAt(DeleteIndexList[j]);
            }
            if (m_ToggleAll.isOn)
            {
                for (int k = 0; k < GodBeastBagList.Count; k++)
                {
                    AbsorptionDic.Add(GodBeastBagList[k].Index, 1);
                }
            }
        }
        private void OnClickArrow()
        {
            m_ScrollViewFirst.SetActive(!m_ScrollViewFirst.activeSelf);
@@ -72,7 +274,24 @@
        private void OnClickToggle(bool IsBool)
        {
            if (IsBool)
            {
            }
            else
            {
                if (AbsorptionDic.Count != 0)
                {
                    AbsorptionDic.Clear();
                }
            }
            GetGodBeastBag();
            FilterQuality();
            m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
            if (AbsorbEvent != null)
            {
                AbsorbEvent(AbsorptionDic);
            }
        }
        private void OnClickSwith(int Type)
        {
@@ -87,7 +306,7 @@
        {
            switch (Type)
            {
                case 1:
                case 0:
                    m_Label.text = "强化水晶";
                    break;
                case 2:
@@ -123,14 +342,38 @@
            int childCode = 0;
            for (childCode = 0; childCode < cell.transform.childCount; childCode++)
            {
                ChildNodes _ChildNodes = cell.transform.GetChild(childCode).GetComponent<ChildNodes>();
                _ChildNodes._ItemIcon.SetActive(false);
                _ChildNodes._Elect.SetActive(false);
                GodBeastChildNodes GodBeastChildNodes = cell.transform.GetChild(childCode).GetComponent<GodBeastChildNodes>();
                GodBeastChildNodes.ItemCell.gameObject.SetActive(false);
                GodBeastChildNodes.ChoosenImg.SetActive(false);
                GodBeastChildNodes.TextNumber.gameObject.SetActive(false);
                int cellCount = (cell.transform.childCount) * gridlineIndex + (childCode + 1);
                if (cellCount - 1 < 1)
                GodBeastChildNodes.ButtonDown.RemoveAllListeners();
                if (cellCount - 1 < GodBeastBagList.Count)
                {
                    int index = cellCount - 1;
                    GodBeastChildNodes.ItemCell.gameObject.SetActive(true);
                    GodBeastBagClass godBeastBagClass = GodBeastBagList[index];
                    if (AbsorptionDic.ContainsKey(godBeastBagClass.Index))
                    {
                        GodBeastChildNodes.ChoosenImg.SetActive(true);
                    }
                    GodBeastChildNodes.ButtonDown.AddListener(() =>
                    {
                        if (AbsorptionDic.ContainsKey(godBeastBagClass.Index))
                        {
                            AbsorptionDic.Remove(godBeastBagClass.Index);
                        }
                        else
                        {
                            AbsorptionDic.Add(godBeastBagClass.Index,1);
                        }
                        m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
                        if (AbsorbEvent != null)
                        {
                            AbsorbEvent(AbsorptionDic);
                        }
                    });
                }
            }
        }