少年修仙传客户端代码仓库
Client_PangDeRong
2018-11-01 60d4ddf440f6efb58686ad94e53da811062af7e5
4511 【前端】【1.2.0】神兽功能优化
3个文件已修改
103 ■■■■ 已修改文件
System/Dogz/DogzActiveWin.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzItemCell.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzModel.cs 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzActiveWin.cs
@@ -333,16 +333,25 @@
                    {
                        assistEffect.Play();
                        assistTextEffect.Play();
                        model.SendChangeDogzAssist(1);
                        model.SendChangeDogzAssist(1,model.presentSelectDogz);
                    }
                    else
                    {
                        SysNotifyMgr.Instance.ShowTip("AssistDogzReachMax");
                        int minAssistDogzId = model.GetMinAssistDogzId();
                        if(model.presentSelectDogz > minAssistDogzId)
                        {
                            model.SendChangeDogzAssist(0,minAssistDogzId);
                            model.SendChangeDogzAssist(1,model.presentSelectDogz);
                        }
                        else
                        {
                            SysNotifyMgr.Instance.ShowTip("AssistDogzReachMax");
                        }
                    }
                }
                else
                {
                    model.SendChangeDogzAssist(0);
                    model.SendChangeDogzAssist(0,model.presentSelectDogz);
                }
              
            }
System/Dogz/DogzItemCell.cs
@@ -44,6 +44,7 @@
            itemBaisc.gameObject.SetActive(true);
            itemBaisc.Init(model,true);
            itemBaisc.stateIcon.gameObject.SetActive(dogzModel.IsReachPutlimit(dogzModel.presentSelectDogz, model.itemId));
            itemBaisc.bindIcon.gameObject.SetActive(false);
            itemBaisc.cellBtn.RemoveAllListeners();
            itemBaisc.cellBtn.AddListener(()=>
System/Dogz/DogzModel.cs
@@ -374,6 +374,20 @@
            return state == 0 ? false : true;
        }
        public int GetMinAssistDogzId()
        {
            int minAssistId = 0;
            foreach (var dogzId in dogzAssistStateDict.Keys)
            {
                if (TryGetAssistDogzState(dogzId)
                    && ((minAssistId > dogzId && minAssistId != 0) || minAssistId == 0))
                {
                    minAssistId = dogzId;
                }
            }
            return minAssistId;
        }
        public void SetDogzEquipInfo()
        {
            m_DogzEquipDict.Clear();
@@ -535,6 +549,11 @@
            return (index % 5) + 101;
        }
        public int GetDogzIndexByPlace(int place)
        {
            return (place / 100) - 1;
        }
        public int GetDogzIDByIndex(int index)
        {
            return (index / 5) + 1;
@@ -632,10 +651,10 @@
            GameNetSystem.Instance.SendInfo(dogzPutOff);
        }
        public void SendChangeDogzAssist(int assistState)
        public void SendChangeDogzAssist(int assistState,int dogzId)
        {
            CA5C2_tagCMDogzBattleStateChange stateChange = new CA5C2_tagCMDogzBattleStateChange();
            stateChange.DogzID = (byte)presentSelectDogz;
            stateChange.DogzID = (byte)dogzId;
            stateChange.BatteState = (byte)assistState;
            GameNetSystem.Instance.SendInfo(stateChange);
        }
@@ -763,6 +782,16 @@
            return selectEquipPlacelist;
        }
        public bool IsReachPutlimit(int dogzId,int itemId)
        {
            ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(itemId);
            if (itemConfig == null) return true;
            var index = GetDogzIndexByPlace(itemConfig.EquipPlace);
            var _itemColor = GetDogzEquipLimitByIndex(dogzId, index);
            return itemConfig.ItemColor >= _itemColor ? true : false;
        }
        private int CompareByDogzItem(ItemModel start,ItemModel end)
        {
            int x = start.chinItemModel.ItemColor;
@@ -887,15 +916,7 @@
            }
         
            bool isMaxAssistNum = GetAssistDogzCount() >= curSumAssistNum ? true : false;
            int minAlreadyAssistId = 0;
            foreach (var dogzId in m_DogzEquipLimit.Keys)
            {
                if (TryGetAssistDogzState(dogzId)
                    && ((minAlreadyAssistId > dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0))
                {
                    minAlreadyAssistId = dogzId;
                }
            }
            int minAlreadyAssistId = GetMinAssistDogzId();
            if (!isMaxAssistNum)
            {
@@ -959,13 +980,16 @@
                    return;
                }
            }
            int minAssistDogzId = GetMinAssistDogzId();
            bool isMaxAssistNum = GetAssistDogzCount() >= curSumAssistNum ? true : false;
            List<int> dogzIdlist = GetDogzIdByOrder();
            if (!isMaxAssistNum)
            {
                int maxEquipNum = 0;
                int spaceDogzId = 0;
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                for(int i = 0; i < dogzIdlist.Count; i++)
                {
                    int dogzId = dogzIdlist[i];
                    var equips = GetDogzEquips(dogzId);
                    int equipNum = equips == null ? 0 : equips.Count;
                    if (equipNum < 5)
@@ -1013,16 +1037,7 @@
            }
            else
            {
                int minAlreadyAssistId = 0;
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                {
                    if(TryGetAssistDogzState(dogzId)
                        && ((minAlreadyAssistId > dogzId && minAlreadyAssistId != 0) || minAlreadyAssistId == 0))
                    {
                        minAlreadyAssistId = dogzId;
                    }
                }
                int minAlreadyAssistId = GetMinAssistDogzId();
                foreach (var dogzId in m_DogzEquipLimit.Keys)
                {
                    var equips = GetDogzEquips(dogzId);
@@ -1072,6 +1087,33 @@
            }
        }
        public List<int> GetDogzIdByOrder()
        {
            List<int> dogzIdlist = m_DogzEquipLimit.Keys.ToList();
            int minAssistDogzId = GetMinAssistDogzId();
            if (minAssistDogzId == 0) return dogzIdlist;
            List<int> orderlist = new List<int>();
            for(int i = 0; i < dogzIdlist.Count; i++)
            {
                int dogzId = dogzIdlist[i];
                if(dogzId > minAssistDogzId)
                {
                    orderlist.Add(dogzId);
                }
            }
            for (int i = dogzIdlist.Count - 1; i > -1; i--)
            {
                int dogzId = dogzIdlist[i];
                if(!orderlist.Contains(dogzId))
                {
                    orderlist.Add(dogzId);
                }
            }
            return orderlist;
        }
        public void UpdateAssistNumRed()
        {
            if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Dogz)) return;
@@ -1088,6 +1130,7 @@
                addAssistDogzRedpoint.state = RedPointState.None;
            }
        }
        #endregion
    }
}