少年修仙传客户端代码仓库
client_Zxw
2018-09-21 bc8eefc82f2b1862fc0c417f9813e22fee809b26
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
14个文件已修改
675 ■■■■ 已修改文件
Core/GameEngine/Model/Config/DogzConfig.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/DogzConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Plugins/Trails/SmoothTrail.cs 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestData.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzActiveWin.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzCell.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzModel.cs 383 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzPackWin.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TrialDungeonModel.cs 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TrialExchangeWin.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasurePotentialPanel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/WindowCenter.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WorldMap/WorldMapWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/DogzConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Friday, August 17, 2018
//    [  Date ]:           Friday, September 21, 2018
//--------------------------------------------------------
using UnityEngine;
@@ -17,6 +17,7 @@
        public int[] BaseAttrTypes;
        public int[] BaseAttrValues;
        public int[] HelpBattleSkills;
        public int FightPowerEx { get ; private set ; }
        public int[] EquipPlaceColorList;
        public override string getKey()
@@ -54,7 +55,9 @@
                     int.TryParse(HelpBattleSkillsStringArray[i],out HelpBattleSkills[i]);
                }
            
                string[] EquipPlaceColorListStringArray = rawContents[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                FightPowerEx=IsNumeric(rawContents[6]) ? int.Parse(rawContents[6]):0;
                string[] EquipPlaceColorListStringArray = rawContents[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                EquipPlaceColorList = new int[EquipPlaceColorListStringArray.Length];
                for (int i=0;i<EquipPlaceColorListStringArray.Length;i++)
                {
Core/GameEngine/Model/Config/DogzConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 940b0f1e335cf3749bb18fbee7090526
timeCreated: 1534489434
timeCreated: 1537530330
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Plugins/Trails/SmoothTrail.cs
@@ -28,7 +28,6 @@
        protected override void Update()
        {
            if (_emit)
            {
                _distanceMoved += Vector3.Distance(_t.position, _lastPosition);
@@ -56,71 +55,6 @@
            base.Update();
        }
        /*
        void OnDrawGizmos()
        {
            if (Application.isPlaying && _controlPoints != null)
            {
                for (int i = 0; i < _controlPoints.Count; i++)
                {
                    Gizmos.color = Color.red;
                    Gizmos.DrawSphere(_controlPoints[i].p, 0.01f);
                    if (i < _controlPoints.Count - 1)
                    {
                        Vector3 Handle1, Handle2;
                        float distanceBetween = Vector3.Distance(_controlPoints[i].p, _controlPoints[i + 1].p) / 2;
                        if (i == 0)
                        {
                            Handle1 = _controlPoints[i].p + (_controlPoints[i + 1].p - _controlPoints[i].p).normalized * distanceBetween;
                        }
                        else
                        {
                            Handle1 = _controlPoints[i].p + (_controlPoints[i + 1].p - _controlPoints[i - 1].p).normalized * distanceBetween;
                        }
                        int nextI = i + 1;
                        if (nextI == _controlPoints.Count - 1)
                        {
                            Handle2 = _controlPoints[nextI].p + (_controlPoints[nextI - 1].p - _controlPoints[nextI].p).normalized * distanceBetween;
                        }
                        else
                        {
                            Handle2 = _controlPoints[nextI].p + (_controlPoints[nextI - 1].p - _controlPoints[nextI + 1].p).normalized * distanceBetween;
                        }
                        Gizmos.color = Color.green;
                        Gizmos.DrawSphere(Handle1, 0.01f);
                        Gizmos.DrawLine(_controlPoints[i].p, Handle1);
                        Gizmos.color = Color.blue;
                        Gizmos.DrawSphere(Handle2, 0.01f);
                        Gizmos.DrawLine(_controlPoints[nextI].p, Handle2);
                        Vector3 current = _controlPoints[i].p;
                        for (int pointBetween = 0; pointBetween < PointsBetweenControlPoints; pointBetween++)
                        {
                            Vector3 next = GetPointAlongCurve(_controlPoints[i].p, Handle1, _controlPoints[i + 1].p, Handle2, ((pointBetween + 1) / ((float)PointsBetweenControlPoints + 1f)), 0.3f);
                            Gizmos.DrawLine(current, next);
                            Gizmos.color = Color.yellow;
                            Gizmos.DrawSphere(next, 0.01f);
                            current = next;
                        }
                        Gizmos.color = Color.blue;
                        Gizmos.DrawLine(current, _controlPoints[i + 1].p);
                    }
                }
            }
        }
        */
        protected override void OnStartEmit()
        {
@@ -210,40 +144,6 @@
            int lastControlPointPointIndex = ((_controlPoints.Count - 1) + ((_controlPoints.Count - 1) * PointsBetweenControlPoints));
            int prevControlPointPointIndex = lastControlPointPointIndex - PointsBetweenControlPoints - 1;
            int activePointCount = lastControlPointPointIndex + 1;
            /*
             *
             * This is that optimisation mentioned above..sort of works, but smoothing isn't working right so i am leaving it out for now
             *
             *
            int lastControlPointIndex = _controlPoints.Count - 1;
            int prevControlPointIndex = _controlPoints.Count - 2;
            Vector3 Handle1, Handle2;
            float distanceBetween = Vector3.Distance(_controlPoints[lastControlPointIndex].p, _controlPoints[prevControlPointIndex].p) / 2;
            if (prevControlPointIndex == 0)
                Handle1 = _controlPoints[prevControlPointIndex].p + (_controlPoints[lastControlPointIndex].p - _controlPoints[prevControlPointIndex].p).normalized * distanceBetween;
            else
                Handle1 = _controlPoints[prevControlPointIndex].p + (_controlPoints[lastControlPointIndex].p - _controlPoints[prevControlPointIndex - 1].p).normalized * distanceBetween;
            Handle2 = _controlPoints[lastControlPointIndex].p + (_controlPoints[prevControlPointIndex].p - _controlPoints[lastControlPointIndex].p).normalized * distanceBetween;
            float timeActiveLastControlPoint = trail.Points[lastControlPointPointIndex].TimeActive();
            float timeActivePrevControlPoint = trail.Points[prevControlPointPointIndex].TimeActive();
            for (int pointBetween = 0; pointBetween < PointsBetweenControlPoints; pointBetween++)
            {
                float t= (((float)pointBetween + 1f) / ((float)PointsBetweenControlPoints + 1f));
                trail.Points[prevControlPointPointIndex + pointBetween + 1].Position = GetPointAlongCurve(_controlPoints[prevControlPointIndex].p, Handle1, _controlPoints[lastControlPointIndex].p, Handle2, t, 0.3f);
                trail.Points[prevControlPointPointIndex + pointBetween + 1].SetTimeActive(Mathf.Lerp(timeActivePrevControlPoint, timeActiveLastControlPoint, t));
            }
            trail.Points[lastControlPointPointIndex].Position = _controlPoints[lastControlPointIndex].p;
            */
            float distanceFromStart = trail.Points[prevControlPointPointIndex].GetDistanceFromStart();
            for (int i = prevControlPointPointIndex + 1; i < activePointCount; i++)
System/DailyQuest/DailyQuestData.cs
@@ -231,7 +231,7 @@
        var isSpecialDay = TimeUtility.OpenWeekCnt <= 1;
        var openDayWeek = (int)TimeUtility.openServerTime.DayOfWeek;
        var dayIndex = TimeUtility.OpenDay + 1;
        if (isSpecialDay && specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
        if (isSpecialDay)
        {
            if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
            {
System/Dogz/DogzActiveWin.cs
@@ -16,7 +16,7 @@
        [SerializeField] ScrollerController m_Controller;
        [SerializeField] List<DogzSkillData> m_DogzSkills;
        [SerializeField] List<DogzEquip> m_DogzEquips;
        [SerializeField] List<Button> m_DogzUnEquipBtns;
        [SerializeField] List<DogzUnEquip> m_DogzUnEquipBtns;
        [SerializeField] List<Text> m_PropertyTypes;
        [SerializeField] List<Text> m_PropertyValues;
        [SerializeField] Image m_DogzHeadIcon;
@@ -25,6 +25,7 @@
        [SerializeField] Button m_TakeOffEquipBtn;
        [SerializeField] Button m_EquipPackBtn;
        [SerializeField] Button m_CallBackBtn;
        [SerializeField] RedpointBehaviour assistBtnRedBehav;
        [SerializeField] Text m_CallBackBtnTxt;
        DogzModel m_Model;
        DogzModel model
@@ -51,7 +52,7 @@
            for (int i = 0; i < m_DogzUnEquipBtns.Count; i++)
            {
                var _index = i;
                m_DogzUnEquipBtns[i].onClick.AddListener(() =>
                m_DogzUnEquipBtns[i].DogzUnEquipBtn.AddListener(() =>
                {
                    OpenDogzEquip(_index);
                });
@@ -106,6 +107,7 @@
            UpdateDogzEquip();
            UpdateDogzProperty();
            UpdateDogzBtn();
            assistBtnRedBehav.redpointId = model.GetDogzAssistRedpointById(model.presentSelectDogz).id;
        }
        private void UpdateDogzSkill()
        {
@@ -144,9 +146,12 @@
        private void RefreshDogzEquipEvent(int dogzId)
        {
            if (dogzId != model.presentSelectDogz) return;
            m_Controller.m_Scorller.RefreshActiveCellViews();
            UpdateDogzEquip();
            UpdateDogzProperty();
            UpdateDogzBtn();
        }
        private void UpdateDogzEquip()
@@ -158,7 +163,8 @@
            {
                ItemModel _data;
                bool _equiped = model.TryGetDogzEquip(model.presentSelectDogz, i+101, out _data);
                m_DogzUnEquipBtns[i].gameObject.SetActive(!_equiped);
                m_DogzUnEquipBtns[i].DogzUnEquipBtn.gameObject.SetActive(!_equiped);
                m_DogzUnEquipBtns[i].RedpointBeh.redpointId = model.GetDogzEquipPlaceRedpointById(model.presentSelectDogz,i).id;
                m_DogzEquips[i].gameObject.SetActive(_equiped);
                if (_equiped)
                {
@@ -302,6 +308,15 @@
            [SerializeField] Button m_SkillBtn;
            public Button SkillBtn { get { return m_SkillBtn; } }
        }
        [Serializable]
        public class DogzUnEquip
        {
            [SerializeField] Button m_DogzUnEquipBtn;
            public Button DogzUnEquipBtn { get { return m_DogzUnEquipBtn; } }
            [SerializeField] RedpointBehaviour m_RedpointBeh;
            public RedpointBehaviour RedpointBeh { get { return m_RedpointBeh; } }
        }
    }
}
System/Dogz/DogzCell.cs
@@ -14,6 +14,7 @@
        [SerializeField] Text m_DogzName;
        [SerializeField] Text m_DogzGrade;
        [SerializeField] Button m_DogzBtn;
        [SerializeField] RedpointBehaviour redpointBehav;
        DogzModel m_Model;
        DogzModel model
@@ -34,6 +35,7 @@
            bool isActive = (_dogzEquips == null || _dogzEquips.Count < 5) ? false : true;
            m_DogzName.text = _dogzCfg.Name;
            m_DogzGrade.text = StringUtility.Contact("评分:", 100);
            redpointBehav.redpointId = model.GetSingleDogzRedpointById(_dogzCfg.ID).id;
            if (isActive)
            {
                m_DogzIcon.material = MaterialUtility.GetUIDefaultGraphicMaterial();
System/Dogz/DogzModel.cs
@@ -14,6 +14,7 @@
        public override void Init()
        {
            ParseConfig();
            SetDogzAndEquipPlaceRedKey();
        }
        public void OnBeforePlayerDataInitialize()
@@ -37,6 +38,9 @@
            SetDogzEquipInfo();
            playerPack.RefreshItemCountAct -= RefreshDogzEquipInfo;
            playerPack.RefreshItemCountAct += RefreshDogzEquipInfo;
            UpdateDogzAssistRed();
            UpdateDogzEquipPlaceRed();
            UpdateAssistNumRed();
        }
        public override void UnInit()
@@ -164,6 +168,16 @@
            }
        }
        public bool CheckIsAddAssistNum()
        {
            var _itemConfig = Config.Instance.Get<ItemConfig>(AddAssistItem);
            if(GetAssistItemCnt() <= playerPack.GetItemCountByID(PackType.rptItem, AddAssistItem))
            {
                return true;
            }
            return false;
        }
        #region 协议
        public int addAssistCnt { get; private set; } //额外购买的助战数
@@ -175,6 +189,8 @@
            {
                UpdateAssistDogzEvent();
            }
            UpdateDogzAssistRed();
            UpdateDogzEquipPlaceRed();
        }
        public event Action UpdateAssistDogzEvent;
@@ -194,6 +210,9 @@
            {
                UpdateAssistDogzEvent();
            }
            UpdateDogzAssistRed();
            UpdateDogzEquipPlaceRed();
        }
        public int GetAssistDogzCount()
@@ -218,7 +237,7 @@
        public void SetDogzEquipInfo()
        {
            m_DogzEquipDict = new Dictionary<int, List<ItemModel>>();
            m_DogzEquipDict.Clear();
            SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptDogzEquip);
            if (singlePack == null) return;
@@ -244,63 +263,75 @@
        public Action<int> RefreshDogzEquipAct;
        private void RefreshDogzEquipInfo(PackType type, int index, int id)
        {
            if (type != PackType.rptDogzEquip) return;
            ItemModel itemModel = playerPack.GetItemModelByIndex(type, index);
            int dogzId = GetDogzIDByIndex(index);
            List<ItemModel> modellist = GetDogzEquips(dogzId);
            if(modellist != null)
            if(type == PackType.rptItem && id == AddAssistItem)
            {
                if (itemModel != null)
                UpdateAssistNumRed();
            }
            else if(type == PackType.rptDogzItem)
            {
                UpdateDogzAssistRed();
                UpdateDogzEquipPlaceRed();
            }
            else if(type == PackType.rptDogzEquip)
            {
                ItemModel itemModel = playerPack.GetItemModelByIndex(type, index);
                int dogzId = GetDogzIDByIndex(index);
                List<ItemModel> modellist = GetDogzEquips(dogzId);
                if (modellist != null)
                {
                    bool isAdd = true;
                    for (int i = 0; i < modellist.Count; i++)
                    if (itemModel != null)
                    {
                        if (modellist[i].itemInfo.ItemPlace == index)
                        bool isAdd = true;
                        for (int i = 0; i < modellist.Count; i++)
                        {
                            isAdd = false;
                            modellist[i] = itemModel;
                            break;
                            if (modellist[i].itemInfo.ItemPlace == index)
                            {
                                isAdd = false;
                                modellist[i] = itemModel;
                                break;
                            }
                        }
                        if (isAdd)
                        {
                            modellist.Add(itemModel);
                        }
                    }
                    if(isAdd)
                    else
                    {
                       modellist.Add(itemModel);
                        for (int i = 0; i < modellist.Count; i++)
                        {
                            if (modellist[i].itemInfo.ItemPlace == index)
                            {
                                modellist.RemoveAt(i);
                                break;
                            }
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < modellist.Count; i++)
                    if (itemModel != null)
                    {
                        if (modellist[i].itemInfo.ItemPlace == index)
                        {
                            modellist.RemoveAt(i);
                            break;
                        }
                        List<ItemModel> equipDatas = new List<ItemModel>();
                        equipDatas.Add(itemModel);
                        m_DogzEquipDict.Add(dogzId, equipDatas);
                    }
                }
            }
            else
            {
                if(itemModel != null)
                {
                    List<ItemModel> equipDatas = new List<ItemModel>();
                    equipDatas.Add(itemModel);
                    m_DogzEquipDict.Add(dogzId,equipDatas);
                }
            }
            if(RefreshDogzEquipAct != null)
            {
                RefreshDogzEquipAct(dogzId);
                if (RefreshDogzEquipAct != null)
                {
                    RefreshDogzEquipAct(dogzId);
                }
                UpdateDogzAssistRed();
                UpdateDogzEquipPlaceRed();
            }
        }
        /// <summary>
        /// 获得神兽穿戴的装备数据
        /// </summary>
        public Dictionary<int, List<ItemModel>> m_DogzEquipDict { get; private set; }
        private Dictionary<int, List<ItemModel>> m_DogzEquipDict = new Dictionary<int, List<ItemModel>>();
        public List<ItemModel> GetDogzEquips(int _dogzId)
        {
@@ -547,27 +578,6 @@
        }
        #endregion
        #region 装备详细信息
        public DogzEquipData viewDetailData { get; private set; }
        public bool viewDetailCompare { get; private set; }
        public void ViewDetail(int _itemId, bool compare = false)
        {
            //viewDetailData = new DogzEquipData(_itemId);
            //viewDetailCompare = compare;
            //if (!WindowCenter.Instance.CheckOpen<DogzDetailsWin>())
            //{
            //    WindowCenter.Instance.Open<DogzDetailsWin>();
            //}
        }
        public int DogzEquipScore(DogzEquipData data)
        {
            return 0;
        }
        #endregion
        #region 默认选择逻辑处理
        public void SetDefaultSelectDogz()
        {
@@ -585,6 +595,263 @@
            }
        }
        #endregion
        #region 红点逻辑处理
        public const int MAINDOGZ_REDKEY = 112;
        public const int DOGZFUNC_REDKEY = 11201;
        public const int ADDASSISTDOGZ_REDKEY = 1120100002;
        public Redpoint mainDogzRedpoint = new Redpoint(MainRedDot.RedPoint_key, MAINDOGZ_REDKEY);
        public Redpoint dogzFuncRedpoint = new Redpoint(MAINDOGZ_REDKEY,DOGZFUNC_REDKEY);
        public Redpoint addAssistDogzRedpoint = new Redpoint(DOGZFUNC_REDKEY,ADDASSISTDOGZ_REDKEY);
        private Dictionary<int, Redpoint> singleDogzRedDict = new Dictionary<int, Redpoint>();
        private Dictionary<int, Redpoint> dogzAssistRedDict = new Dictionary<int, Redpoint>();
        private Dictionary<int, Dictionary<int, Redpoint>> dogzEquipPlaceRedDict = new Dictionary<int, Dictionary<int, Redpoint>>();
        public void SetDogzAndEquipPlaceRedKey()
        {
            singleDogzRedDict.Clear();
            dogzEquipPlaceRedDict.Clear();
            dogzAssistRedDict.Clear();
            int i = 0;
            foreach(var dogzId in m_DogzEquipLimit.Keys)
            {
                i += 1;
                int dogzRedKey = DOGZFUNC_REDKEY * 100 + i;
                Redpoint dogzRedPoint = new Redpoint(DOGZFUNC_REDKEY,dogzRedKey);
                singleDogzRedDict.Add(dogzId, dogzRedPoint);
                int dogzAssistRedKey = dogzRedKey * 100 + i;
                Redpoint dogzAssistRedPoint = new Redpoint(dogzRedKey, dogzAssistRedKey);
                dogzAssistRedDict.Add(dogzId,dogzAssistRedPoint);
                Dictionary<int, Redpoint> equipPlaceRedDict = new Dictionary<int, Redpoint>();
                dogzEquipPlaceRedDict.Add(dogzId,equipPlaceRedDict);
                int equipPlaceNum = m_DogzEquipLimit[dogzId].Count;
                for (int j = 0; j < equipPlaceNum; j++)
                {
                    int equipPlaceRedKey = dogzRedKey * 10 + j;
                    Redpoint equipPlaceRedpoint = new Redpoint(dogzRedKey,equipPlaceRedKey);
                    equipPlaceRedDict.Add(j, equipPlaceRedpoint);
                }
            }
        }
        public Redpoint GetSingleDogzRedpointById(int dogzId)
        {
            Redpoint redpoint = null;
            singleDogzRedDict.TryGetValue(dogzId, out redpoint);
            return redpoint;
        }
        public Redpoint GetDogzAssistRedpointById(int dogzId)
        {
            Redpoint redpoint = null;
            dogzAssistRedDict.TryGetValue(dogzId,out redpoint);
            return redpoint;
        }
        public Redpoint GetDogzEquipPlaceRedpointById(int dogzId,int index)
        {
            Redpoint redpoint = null;
            if(dogzEquipPlaceRedDict.ContainsKey(dogzId))
            {
                dogzEquipPlaceRedDict[dogzId].TryGetValue(index, out redpoint);
            }
            return redpoint;
        }
        public void UpdateDogzAssistRed()
        {
            foreach(var value in dogzAssistRedDict.Values)
            {
                value.state = RedPointState.None;
            }
            bool isMaxAssistNum = GetAssistDogzCount() >= DogzAssistDefaultCnt ? true : false;
            if(!isMaxAssistNum)
            {
                int maxDogzId = 0;
                foreach(var dogzId in m_DogzEquipLimit.Keys)
                {
                    var equips = GetDogzEquips(dogzId);
                    int equipNum = equips == null ? 0 : equips.Count;
                    if(equipNum >= 5 && maxDogzId < dogzId
                        && !TryGetAssistDogzState(dogzId))
                    {
                        maxDogzId = dogzId;
                    }
                }
                if(maxDogzId > 0)
                {
                    Redpoint assistRedpoint = GetDogzAssistRedpointById(maxDogzId);
                    if(assistRedpoint.state == RedPointState.None)
                    {
                        assistRedpoint.state = RedPointState.Simple;
                    }
                }
            }
            else
            {
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                {
                    var equips = GetDogzEquips(dogzId);
                    int equipNum = equips == null ? 0 : equips.Count;
                    if(!TryGetAssistDogzState(dogzId) && equipNum == 5)
                    {
                        Redpoint assistRedpoint = GetDogzAssistRedpointById(dogzId);
                        if (assistRedpoint.state == RedPointState.None)
                        {
                            assistRedpoint.state = RedPointState.Simple;
                        }
                        break;
                    }
                }
            }
        }
        public void UpdateDogzEquipPlaceRed()
        {
            foreach(var value in dogzEquipPlaceRedDict.Values)
            {
                foreach(var value2 in value.Values)
                {
                    value2.state = RedPointState.None;
                }
            }
            foreach(var value in dogzAssistRedDict.Values)
            {
                if(value.state == RedPointState.Simple)
                {
                    return;
                }
            }
            bool isMaxAssistNum = GetAssistDogzCount() >= DogzAssistDefaultCnt ? true : false;
            if (!isMaxAssistNum)
            {
                int maxEquipNum = 0;
                int spaceDogzId = 0;
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                {
                    var equips = GetDogzEquips(dogzId);
                    int equipNum = equips == null ? 0 : equips.Count;
                    if (equipNum < 5)
                    {
                        if (spaceDogzId == 0)
                        {
                            if (maxEquipNum <= equipNum)
                            {
                                maxEquipNum = equipNum;
                                spaceDogzId = dogzId;
                            }
                        }
                        else
                        {
                            if (maxEquipNum < equipNum)
                            {
                                maxEquipNum = equipNum;
                                spaceDogzId = dogzId;
                            }
                        }
                    }
                }
                if(spaceDogzId != 0)
                {
                    for(int i = 0; i < 5; i++)
                    {
                        ItemModel _data;
                        bool _equiped = TryGetDogzEquip(spaceDogzId, i + 101, out _data);
                        if(!_equiped)
                        {
                            GetDogzItemListByIndex(i);
                            if (selectEquipPlacelist.Count > 0)
                            {
                                Redpoint equipPlaceRedpoint = GetDogzEquipPlaceRedpointById(spaceDogzId,i);
                                if(equipPlaceRedpoint.state == RedPointState.None)
                                {
                                    equipPlaceRedpoint.state = RedPointState.Simple;
                                }
                                break;
                            }
                        }
                    }
                }
            }
            else
            {
                int minAlreadyAssistId = 0;
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                {
                    if(TryGetAssistDogzState(dogzId)
                        && minAlreadyAssistId != 0
                        && minAlreadyAssistId < dogzId)
                    {
                        minAlreadyAssistId = dogzId;
                    }
                }
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                {
                    var equips = GetDogzEquips(dogzId);
                    int equipNum = equips == null ? 0 : equips.Count;
                    bool isBetterDogz = true;
                    if(!TryGetAssistDogzState(dogzId) && dogzId > minAlreadyAssistId && equipNum < 5)
                    {
                        for (int i = 0; i < 5; i++)
                        {
                            ItemModel _data;
                            bool _equiped = TryGetDogzEquip(dogzId, i + 101, out _data);
                            if (!_equiped)
                            {
                                GetDogzItemListByIndex(i);
                                if (selectEquipPlacelist.Count < 1)
                                {
                                    isBetterDogz = false;
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        isBetterDogz = false;
                    }
                    if(isBetterDogz)
                    {
                        for (int i = 0; i < 5; i++)
                        {
                            ItemModel _data;
                            bool _equiped = TryGetDogzEquip(dogzId, i + 101, out _data);
                            if (!_equiped)
                            {
                                Redpoint equipPlaceRedpoint = GetDogzEquipPlaceRedpointById(dogzId, i);
                                if (equipPlaceRedpoint.state == RedPointState.None)
                                {
                                    equipPlaceRedpoint.state = RedPointState.Simple;
                                    break;
                                }
                            }
                        }
                        break;
                    }
                }
            }
        }
        public void UpdateAssistNumRed()
        {
          if(CheckIsAddAssistNum())
           {
                if(addAssistDogzRedpoint.state == RedPointState.None)
                {
                    addAssistDogzRedpoint.state = RedPointState.Simple;
                }
            }
          else
            {
                addAssistDogzRedpoint.state = RedPointState.None;
            }
        }
        #endregion
    }
}
System/Dogz/DogzPackWin.cs
@@ -16,7 +16,7 @@
    public class DogzPackWin : Window
    {
        [SerializeField] List<DogzEquip> m_DogzEquips;
        [SerializeField] List<Button> m_DogzUnEquipBtns;
        [SerializeField] List<DogzUnEquip> m_DogzUnEquipBtns;
        [SerializeField] List<Text> m_DogzUnEquipContents;
        [SerializeField] Image m_DogzHeadIcon;
        [SerializeField] Button m_CloseBtn;
@@ -106,7 +106,8 @@
                ItemModel _data;
                int index = i;
                bool _equiped = dogzModel.TryGetDogzEquip(dogzModel.presentSelectDogz, i+101, out _data);
                m_DogzUnEquipBtns[i].gameObject.SetActive(!_equiped);
                m_DogzUnEquipBtns[i].DogzUnEquipBtn.gameObject.SetActive(!_equiped);
                m_DogzUnEquipBtns[i].RedpointBeh.redpointId = dogzModel.GetDogzEquipPlaceRedpointById(dogzModel.presentSelectDogz,i).id;
                m_DogzEquips[i].gameObject.SetActive(_equiped);
                if (_equiped)
                {
@@ -118,8 +119,8 @@
                    m_DogzUnEquipContents[i].text = StringUtility.Contact(DogzModel.GetItemColorName(_itemColor),
                        DogzModel.GetDogzPartNameByIndex(i));
                    m_DogzUnEquipContents[i].color = UIHelper.GetUIColor(_itemColor);
                    m_DogzUnEquipBtns[i].RemoveAllListeners();
                    m_DogzUnEquipBtns[i].AddListener(() => { ClickEquipIndex(index); });
                    m_DogzUnEquipBtns[i].DogzUnEquipBtn.RemoveAllListeners();
                    m_DogzUnEquipBtns[i].DogzUnEquipBtn.AddListener(() => { ClickEquipIndex(index); });
                }
            }
        }
@@ -177,6 +178,7 @@
        private void GetEquipBtn()
        {
            //--界面跳转
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.DogzDungeon);
        }
        private void ClickStarSelect()
@@ -188,6 +190,15 @@
        {
            qualitySort.gameObject.SetActive(!qualitySort.gameObject.activeInHierarchy);
        }
        [Serializable]
        public class DogzUnEquip
        {
            [SerializeField] Button m_DogzUnEquipBtn;
            public Button DogzUnEquipBtn { get { return m_DogzUnEquipBtn; } }
            [SerializeField] RedpointBehaviour m_RedpointBeh;
            public RedpointBehaviour RedpointBeh { get { return m_RedpointBeh; } }
        }
    }
}
System/Dungeon/TrialDungeonModel.cs
@@ -113,9 +113,17 @@
        private void RefreshItemCountAct(PackType packType, int arg2, int itemId)
        {
            if (packType == PackType.rptItem && trialTokens.Contains(itemId))
            var config = Config.Instance.Get<ItemConfig>(itemId);
            if (config == null)
            {
                UpdateRedpoint();
                return;
            }
            if (packType == PackType.rptItem)
            {
                if (trialTokens.Contains(itemId) || config.EquipPlace > 0)
                {
                    UpdateRedpoint();
                }
            }
            else if (packType == PackType.rptEquip)
            {
@@ -263,8 +271,29 @@
            {
                return 0;
            }
            var singlepack = packModel.GetSinglePackModel(PackType.rptEquip);
            if (singlepack == null)
            var singlepack = packModel.GetSinglePackModel(PackType.rptItem);
            if (singlepack != null)
            {
                var dict = singlepack.GetPackModelIndexDict();
                if (dict != null)
                {
                    foreach (var itemModel in dict.Values)
                    {
                        if (itemModel.chinItemModel.EquipPlace == config.EquipPlace
                            && (itemModel.chinItemModel.JobLimit / 100 == PlayerDatas.Instance.baseData.Job
                            || itemModel.chinItemModel.JobLimit == 0))
                        {
                            var compare = EquipCompare(itemModel, config);
                            if (compare == -1 || compare == 0)
                            {
                                return compare;
                            }
                        }
                    }
                }
            }
            singlepack = packModel.GetSinglePackModel(PackType.rptEquip);
            if (singlepack != null)
            {
                return 1;
            }
@@ -273,7 +302,12 @@
            {
                return 1;
            }
            var compareConfig = Config.Instance.Get<ItemConfig>(equipItem.itemId);
            return EquipCompare(equipItem, config);
        }
        int EquipCompare(ItemModel compareItem, ItemConfig config)
        {
            var compareConfig = Config.Instance.Get<ItemConfig>(compareItem.itemId);
            if (compareConfig == null)
            {
                return 1;
System/Dungeon/TrialExchangeWin.cs
@@ -82,6 +82,7 @@
            model.SelectEquipClassEvent += SelectEquipClassEvent;
            packModel.RefreshItemCountAct += RefreshItemCountAct;
            Display();
            JumpToRedpoint();
        }
        protected override void OnAfterOpen()
@@ -170,10 +171,18 @@
        private void RefreshItemCountAct(PackType packtype, int arg2, int itemId)
        {
            if (packtype == PackType.rptItem && model.trialTokens.Contains(itemId))
            var config = Config.Instance.Get<ItemConfig>(itemId);
            if (config == null)
            {
                m_Controller.m_Scorller.RefreshActiveCellViews();
                DisplayTokens();
                return;
            }
            if (packtype == PackType.rptItem)
            {
                if (model.trialTokens.Contains(itemId) || config.EquipPlace > 0)
                {
                    m_Controller.m_Scorller.RefreshActiveCellViews();
                    DisplayTokens();
                }
            }
            else if (packtype == PackType.rptEquip)
            {
@@ -215,6 +224,62 @@
            DisplayTokens();
            bool _up = m_SelectClassBehaviour.gameObject.activeSelf;
            m_SelectClassUp.transform.localEulerAngles = Vector3.zero.SetZ(_up ? 0 : 180);
            JumpToRedpoint();
        }
        private void JumpToRedpoint()
        {
            if (model.selectEquipClass == 1)
            {
                var trialClasses = model.GetTotalClass();
                var index = 0;
                for (int i = 0; i < trialClasses.Count; i++)
                {
                    var line = 0;
                    index += 1;
                    if (JumpToRedpoint(trialClasses[i], out line))
                    {
                        m_Controller.JumpIndex(index + line);
                        return;
                    }
                    else
                    {
                        List<TrialExchangeConfig> list;
                        if (model.TryGetTrialExchanges(trialClasses[i], out list))
                        {
                            index += Mathf.CeilToInt((float)list.Count / 3);
                        }
                    }
                }
            }
            else
            {
                var line = 0;
                JumpToRedpoint(model.selectEquipClass, out line);
                m_Controller.JumpIndex(line);
            }
        }
        private bool JumpToRedpoint(int _class, out int line)
        {
            var itemId = 0;
            line = 0;
            if (model.IsAnySatisfyExchangeBetterEquip(_class, out itemId))
            {
                List<TrialExchangeConfig> list;
                if (model.TryGetTrialExchanges(_class, out list))
                {
                    for (int i = 0; i < list.Count; i++)
                    {
                        if (list[i].id == itemId)
                        {
                            line = i / 3;
                            return true;
                        }
                    }
                }
            }
            return false;
        }
    }
System/Treasure/TreasurePotentialPanel.cs
@@ -599,6 +599,7 @@
            m_SuccessRatio.color = UIHelper.GetUIColor(model.selectedPotentialBook != 0 && levelUpConfig.rate > 0
                ? TextColType.DarkGreen : TextColType.LightYellow);
            m_UpgradeImage.gray = levelUpConfig.rate == 0 && model.selectedPotentialBook == 0;
            m_Upgrade.interactable = levelUpConfig.rate != 0 || model.selectedPotentialBook != 0;
        }
        private void DisplayAddBookRedpoint()
System/WindowBase/WindowCenter.cs
@@ -72,7 +72,7 @@
                }
                else
                {
                    DebugEx.Log(string.Format("{0} 窗口已经打开!", typeof(T)));
                    DebugEx.LogFormat("{0} 窗口已经打开!", typeof(T));
                }
            }
            else
@@ -146,7 +146,7 @@
                }
                else
                {
                    DebugEx.Log(string.Format("{0} 窗口已经打开!", typeof(T)));
                    DebugEx.LogFormat("{0} 窗口已经打开!", typeof(T));
                }
                return (T)win;
@@ -201,13 +201,13 @@
                }
                else
                {
                    DebugEx.Log(string.Format("{0} 窗口已经关闭!", typeof(T)));
                    DebugEx.LogFormat("{0} 窗口已经关闭!", typeof(T));
                }
            }
            else
            {
                asyncLoad.StopTask(typeof(T).Name);
                DebugEx.Log(string.Format("{0} 窗口无法获得!", typeof(T)));
                DebugEx.LogFormat("{0} 窗口无法获得!", typeof(T));
            }
            return win;
@@ -224,13 +224,13 @@
                }
                else
                {
                    DebugEx.Log(string.Format("{0} 窗口已经关闭!", typeof(T)));
                    DebugEx.LogFormat("{0} 窗口已经关闭!", typeof(T));
                }
            }
            else
            {
                asyncLoad.StopTask(typeof(T).Name);
                DebugEx.Log(string.Format("{0} 窗口无法获得!", typeof(T)));
                DebugEx.LogFormat("{0} 窗口无法获得!", typeof(T));
            }
            return win;
@@ -385,7 +385,7 @@
            }
            else
            {
                DebugEx.Log(string.Format("{0} 窗口无法获得!", typeof(T)));
                DebugEx.LogFormat("{0} 窗口无法获得!", typeof(T));
            }
        }
@@ -544,7 +544,7 @@
                }
                else
                {
                    DebugEx.Log(string.Format("{0} 窗口已经打开!", typeof(T)));
                    DebugEx.LogFormat("{0} 窗口已经打开!", typeof(T));
                }
                return (T)win;
@@ -577,7 +577,7 @@
                            }
                            else
                            {
                                DebugEx.Log(string.Format("{0} 窗口已经打开!", typeof(T)));
                                DebugEx.LogFormat("{0} 窗口已经打开!", typeof(T));
                            }
                        }
                    }
System/WindowJump/WindowJumpMgr.cs
@@ -558,6 +558,7 @@
                SetJumpLogic<FindPreciousFrameWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.LootPreciousFrameFunc1:
            case JumpUIType.DogzDungeon:
                SetJumpLogic<LootPreciousFrameWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.LootPreciousFrameSpec:
@@ -1180,6 +1181,7 @@
    WelfareFunc1 = 102, //签到
    WelfareFunc2 = 103,  //祈愿
    LootPreciousFrameFunc1 = 104, //封魔坛
    DogzDungeon = 242, //异兽之地
    SystemSettingFunc1 = 109,//挂机设置
    RebornOpenBag = 113,//死亡复活打开背包
System/WorldMap/WorldMapWin.cs
@@ -92,7 +92,7 @@
            WorldMapAreaBehaviour playerAtBehaviour = null;
            var currentMapId = PlayerDatas.Instance.baseData.MapID;
            m_ContainerPlayerHead.gameObject.SetActive(false);
            for (int i = 0; i < m_AreaBehaviours.Length; i++)
            {
                var behaviourTable = m_AreaBehaviours[i];
@@ -104,6 +104,7 @@
                    behaviourTable.areaBehaviour.Init(area);
                    if (behaviourTable.id == currentMapId.ToString())
                    {
                        m_ContainerPlayerHead.gameObject.SetActive(true);
                        playerAtBehaviour = behaviourTable.areaBehaviour;
                        m_ContainerPlayerHead.SetParentEx(behaviourTable.areaBehaviour.playerHead, Vector3.zero, Vector3.zero, Vector3.one);
                    }