少年修仙传客户端代码仓库
client_linchunjie
2019-04-03 b7127f07bdff45d753a49943b55118ded37c598d
3335 灵宠坐骑技能整合
6个文件已修改
440 ■■■■■ 已修改文件
System/Pet/PetAttributeMethods.cs 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Pet/PetModel.cs 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Pet/SkillButtonPet.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/RoleParticulars/ViewPetDetailWin.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/RoleParticulars/ViewPetSkillCell.cs 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Tip/SkillDetails.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Pet/PetAttributeMethods.cs
@@ -100,7 +100,6 @@
            petStoneBtn.AddListener(() => { WindowCenter.Instance.Open<PetStoneTipsWin>(); });
            curPetSkillCtrl.OnRefreshCell += RefreshCurPetSkillCell;
            allPetSkillCtrl.OnRefreshCell += RefreshAllPetSkillCell;
            FlySkillIconWin.FlySkillID += FlySkillID;
            CreateAllPetSkill();
            StartCoroutine(LoadingFrame());
            petTrainBtn.AddListener(ClickPetTrainBtn);
@@ -119,23 +118,10 @@
            PetModel.Event_H0704Add -= RefreshPetInfo;
            curPetSkillCtrl.OnRefreshCell -= RefreshCurPetSkillCell;
            allPetSkillCtrl.OnRefreshCell -= RefreshAllPetSkillCell;
            FlySkillIconWin.FlySkillID -= FlySkillID;
            petStoneBtn.RemoveAllListeners();
            breakLockBtn.RemoveAllListeners();
            petTrainBtn.RemoveAllListeners();
            petAutoTrainBtn.RemoveAllListeners();
        }
        private void FlySkillID(int skillID)
        {
            int Index = 0;
            if (petSkillIdlist.Contains(skillID))
            {
                Index = petSkillIdlist.IndexOf(skillID);
            }
            int line = Index / 3;
            allPetSkillCtrl.JumpIndex(line);
            allPetSkillCtrl.JumpIndex(-50, 0, EnhancedScroller.TweenType.immediate);
        }
        private void LateUpdate()
@@ -187,11 +173,11 @@
        {
            int skillIdIndex = cell.index;
            SkillButtonPet skillButton = cell.transform.GetComponent<SkillButtonPet>();
            FunctionUnlockFlyObjectTarget functionUnlockFlyObjectTarget = cell.transform.GetComponent<FunctionUnlockFlyObjectTarget>();
            UIEffect uie = cell.transform.GetComponent<UIEffect>();
            if (petmodel.ListEffectSkill.Contains(curPetSkillIds[skillIdIndex]))
            {
                uie.Play();
            }
            if (petmodel._DicPetBack.ContainsKey(petInfoConfig.ID))
            {
@@ -204,75 +190,40 @@
                {
                    skillButton.SetModel(curPetSkillIds[skillIdIndex], curPetUnlocks[skillIdIndex], false, petInfoConfig.ID, SkillType.PetSkill);
                }
            }
            else
            {
                skillButton.SetModel(curPetSkillIds[skillIdIndex], curPetUnlocks[skillIdIndex], false, petInfoConfig.ID, SkillType.PetSkill);
            }
            functionUnlockFlyObjectTarget.IdList = new int[] { curPetSkillIds[skillIdIndex] };
            functionUnlockFlyObjectTarget.Z_UnLockType = FunctionUnlockType.Skill;
            FunctionUnlockFlyObjectTargetCenter.Register(FunctionUnlockType.Skill, new int[] { curPetSkillIds[skillIdIndex] }, functionUnlockFlyObjectTarget);
        }
        List<int> petSkillIdlist = new List<int>();
        List<int> petSkillUnlockLvlist = new List<int>();
        List<bool> petSkillIsUnlocklist = new List<bool>();
        List<PetInfoConfig> list = new List<PetInfoConfig>();
        List<int> displayTotalSkills = new List<int>();
        private void SetAllPetSkillModel()
        {
            petSkillUnlockLvlist.Clear();
            petSkillIdlist.Clear();
            petSkillIsUnlocklist.Clear();
            if (list.Count <= 0)
            displayTotalSkills.Clear();
            var skills = petmodel.GetPetTotalSkills();
            foreach (var id in skills)
            {
                list = PetInfoConfig.GetValues();
            }
            // List<PetInfoConfig> list = PetInfoConfig.GetValues();
            for (int i = 0; i < list.Count; i++)
            {
                if (petmodel._DicPetBack.ContainsKey(list[i].ID))
                var config = SkillConfig.Get(id);
                var skillId = 0;
                if (petmodel.TryGetIntegrationSkill(config.Effect1, out skillId))
                {
                    PetBackpack _PetBackpack = petmodel._DicPetBack[list[i].ID];
                    int[] ids = list[i].SkillID;
                    int[] unlocks = list[i].SkillUnLock;
                    for (int j = 0; j < ids.Length; j++)
                    if (!displayTotalSkills.Contains(skillId))
                    {
                        if (_PetBackpack.PetClass >= unlocks[j])
                        {
                            petSkillIdlist.Add(ids[j]);
                            petSkillUnlockLvlist.Add(unlocks[j]);
                            petSkillIsUnlocklist.Add(true);
                        }
                        displayTotalSkills.Add(skillId);
                    }
                    continue;
                }
                displayTotalSkills.Add(id);
            }
            for (int i = 0; i < list.Count; i++)
            {
                int[] ids = list[i].SkillID;
                int[] unlocks = list[i].SkillUnLock;
                if (petmodel._DicPetBack.ContainsKey(list[i].ID))
                {
                    PetBackpack _PetBackpack = petmodel._DicPetBack[list[i].ID];
                    for (int j = 0; j < ids.Length; j++)
                    {
                        if (_PetBackpack.PetClass < unlocks[j])
                        {
                            petSkillIdlist.Add(ids[j]);
                            petSkillUnlockLvlist.Add(unlocks[j]);
                            petSkillIsUnlocklist.Add(false);
                        }
                    }
                }
                else
                {
                    for (int j = 0; j < ids.Length; j++)
                    {
                        petSkillIdlist.Add(ids[j]);
                        petSkillUnlockLvlist.Add(unlocks[j]);
                        petSkillIsUnlocklist.Add(false);
                    }
                }
            }
            displayTotalSkills.Sort(Compare);
        }
        private void CreateAllPetSkill()
        {
            SetAllPetSkillModel();
@@ -283,12 +234,7 @@
            else
            {
                allPetSkillCtrl.Refresh();
                int line = petSkillIdlist.Count / 3;
                int remain = petSkillIdlist.Count % 3;
                if (remain > 0)
                {
                    line += 1;
                }
                var line = Mathf.CeilToInt((float)displayTotalSkills.Count / 3);
                for (int i = 0; i < line; i++)
                {
                    allPetSkillCtrl.AddCell(ScrollerDataType.Header, i);
@@ -296,42 +242,19 @@
                allPetSkillCtrl.Restart();
            }
        }
        private void RefreshAllPetSkillCell(ScrollerDataType type, CellView cell)
        {
            int length = cell.transform.childCount;
            for (int i = 0; i < length; i++)
            {
                int cellCnt = cell.index * 3 + (i + 1);
                int index = cell.index * 3 + i;
                SkillButtonPet skillButton = cell.transform.GetChild(i).GetComponent<SkillButtonPet>();
                FunctionUnlockFlyObjectTarget functionUnlockFlyObjectTarget = cell.transform.GetChild(i).GetComponent<FunctionUnlockFlyObjectTarget>();
                int petId = 0;
                // List<PetInfoConfig> list = PetInfoConfig.GetValues();
                if (list.Count <= 0)
                if (index < displayTotalSkills.Count)
                {
                    list = PetInfoConfig.GetValues();
                }
                for (int j = 0; j < list.Count; j++)
                {
                    int[] ids = list[j].SkillID;
                    for (int k = 0; k < ids.Length; k++)
                    {
                        if (cellCnt <= petSkillIdlist.Count)
                        {
                            if (ids[k] == petSkillIdlist[cellCnt - 1])
                            {
                                petId = list[j].ID;
                            }
                        }
                    }
                }
                if (cellCnt <= petSkillIdlist.Count)
                {
                    var skillId = displayTotalSkills[index];
                    skillButton.gameObject.SetActive(true);
                    skillButton.SetModel(petSkillIdlist[cellCnt - 1], petSkillUnlockLvlist[cellCnt - 1], petSkillIsUnlocklist[cellCnt - 1], petId, SkillType.PetSkill, true);
                    functionUnlockFlyObjectTarget.IdList = new int[] { petSkillIdlist[cellCnt - 1] };
                    functionUnlockFlyObjectTarget.Z_UnLockType = FunctionUnlockType.Skill;
                    FunctionUnlockFlyObjectTargetCenter.Register(FunctionUnlockType.Skill, new int[] { petSkillIdlist[cellCnt - 1] }, functionUnlockFlyObjectTarget);
                    skillButton.SetModel(skillId, 0, petmodel.IsSkillUnlock(skillId), 0, SkillType.PetSkill, true);
                }
                else
                {
@@ -339,6 +262,7 @@
                }
            }
        }
        #endregion
        private void RefreshPetInfoUpdate(int _petID)
        {
@@ -731,6 +655,37 @@
                Skillimage.Add(Skillimage5);
            }        
        }
        int Compare(int lhs, int rhs)
        {
            var lhs_unlock = petmodel.IsSkillUnlock(lhs);
            var rhs_unlock = petmodel.IsSkillUnlock(rhs);
            if (lhs_unlock != rhs_unlock)
            {
                return -lhs_unlock.CompareTo(rhs_unlock);
            }
            var lhs_config = SkillConfig.Get(lhs);
            var rhs_config = SkillConfig.Get(rhs);
            var lhs_Id = 0;
            var rhs_Id = 0;
            var lhs_integration = petmodel.TryGetIntegrationSkill(lhs_config.Effect1, out lhs_Id);
            var rhs_integration = petmodel.TryGetIntegrationSkill(rhs_config.Effect1, out rhs_Id);
            if (lhs_integration != rhs_integration)
            {
                return -lhs_integration.CompareTo(rhs_integration);
            }
            if (lhs_integration && rhs_integration)
            {
                return lhs_config.Effect1.CompareTo(rhs_config.Effect1);
            }
            var lhs_petId = 0;
            var rhs_petId = 0;
            petmodel.TryGetPetId(lhs, out lhs_petId);
            petmodel.TryGetPetId(rhs, out rhs_petId);
            var lhs_petconfig = PetInfoConfig.Get(lhs_petId);
            var rhs_petconfig = PetInfoConfig.Get(rhs_petId);
            return lhs_petconfig.Sort.CompareTo(rhs_petconfig.Sort);
        }
    }
}
System/Pet/PetModel.cs
@@ -61,6 +61,11 @@
    public event Action PlayerLoginOkData;
    private Dictionary<int, int> DicDefaultPet = new Dictionary<int, int>();
    List<PetInfoConfig> allPetConfigs = new List<PetInfoConfig>();
    Dictionary<int, int> integrationSkills = new Dictionary<int, int>();
    Dictionary<int, List<int>> integrationPetSkills = new Dictionary<int, List<int>>();
    Dictionary<int, int> petSkills = new Dictionary<int, int>();
    public override void Init()
    {
        ToAddSorting();
@@ -92,6 +97,38 @@
        string PetRedDotstr = FuncConfigConfig.Get("MountPetRedDot").Numerical2;
        DicDefaultPet = ConfigParse.GetDic<int, int>(PetRedDotstr);
        PetDanExp = int.Parse(FuncConfigConfig.Get("PetUpItem").Numerical2);
        var funcConfig = FuncConfigConfig.Get("PetHorseSkillIntegration");
        var intArray = ConfigParse.GetMultipleStr<int>(funcConfig.Numerical1);
        for (int i = 0; i < intArray.Length; i++)
        {
            var skillConfig = SkillConfig.Get(intArray[i]);
            if (skillConfig != null)
            {
                integrationSkills.Add(skillConfig.Effect1, intArray[i]);
            }
        }
        var configs = PetInfoConfig.GetValues();
        foreach (var config in configs)
        {
            for (int i = 0; i < config.SkillID.Length; i++)
            {
                var skillConfig = SkillConfig.Get(config.SkillID[i]);
                if (integrationSkills.ContainsKey(skillConfig.Effect1))
                {
                    List<int> skills = null;
                    if (!integrationPetSkills.TryGetValue(skillConfig.Effect1, out skills))
                    {
                        skills = new List<int>();
                        integrationPetSkills.Add(skillConfig.Effect1, skills);
                    }
                    skills.Add(config.SkillID[i]);
                }
                petSkills.Add(config.SkillID[i], config.ID);
            }
        }
    }
    public override void UnInit()
@@ -784,6 +821,88 @@
        }
        petAttrDict.Add(7, allAtkAdd);
        return petAttrDict;
    }
    #endregion
    #region 技能整合
    public ICollection<int> GetPetTotalSkills()
    {
        return petSkills.Keys;
    }
    public bool TryGetIntegrationSkill(int effect, out int skillId)
    {
        return integrationSkills.TryGetValue(effect, out skillId);
    }
    public bool TryGetPetSkills(int effect,out List<int> skills)
    {
        return integrationPetSkills.TryGetValue(effect, out skills);
    }
    public bool TryGetPetId(int skillId,out int petId)
    {
        return petSkills.TryGetValue(skillId, out petId);
    }
    public bool IsSkillUnlock(int skillId)
    {
        var config = SkillConfig.Get(skillId);
        if (config == null)
        {
            return false;
        }
        if (integrationPetSkills.ContainsKey(config.Effect1)
            && !integrationPetSkills[config.Effect1].Contains(skillId))
        {
            var skills = integrationPetSkills[config.Effect1];
            foreach (var id in skills)
            {
                if (IsSkillUnlock(id))
                {
                    return true;
                }
            }
        }
        else
        {
            if (petSkills.ContainsKey(skillId))
            {
                var petId = petSkills[skillId];
                if (!_DicPetBack.ContainsKey(petId))
                {
                    return false;
                }
                var petInfo = _DicPetBack[petId];
                if (petInfo.PetClass >= GetSkillUnlockLevel(skillId))
                {
                    return true;
                }
            }
        }
        return false;
    }
    public int GetSkillUnlockLevel(int skillId)
    {
        var petId = 0;
        if (TryGetPetId(skillId, out petId))
        {
            var petConfig = PetInfoConfig.Get(petId);
            var index = 0;
            for (int i = 0; i < petConfig.SkillID.Length; i++)
            {
                if (petConfig.SkillID[i] == skillId)
                {
                    index = i;
                }
            }
            if (index < petConfig.SkillUnLock.Length)
            {
                return petConfig.SkillUnLock[index];
            }
        }
        return 0;
    }
    #endregion
}
System/Pet/SkillButtonPet.cs
@@ -5,6 +5,7 @@
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;
//灵宠的技能
@@ -18,6 +19,8 @@
        [SerializeField] Image skillIcon;
        [SerializeField] GameObject lockObj;
        [SerializeField] Text lockLvText;
        PetModel petModel { get { return ModelCenter.Instance.GetModel<PetModel>(); } }
        public void SetModel(int skillId, int skillUnlock, bool isUnlock, int petId, SkillType skillType, bool isAll = false)
        {
@@ -48,39 +51,49 @@
            skillBtn.RemoveAllListeners();
            skillBtn.AddListener(() =>
            {
                string[] str = new string[3];
                str[0] = string.Empty;
                str[1] = string.Empty;
                //if (!isAll)
                //{
                string[] str = new string[2];
                int fightPower = 0;
                switch (skillType)
                {
                    case SkillType.PetSkill:
                        PetInfoConfig petInfo = PetInfoConfig.Get(petId);
                        if (petInfo != null)
                        if (petModel.TryGetPetId(skillId, out petId))
                        {
                            str[2] = Language.Get("pet_SkillTipLv", petInfo.Name, skillUnlock);
                            PetInfoConfig petInfo = PetInfoConfig.Get(petId);
                            str[0] = skillConfig.Description;
                            str[1] = Language.Get("pet_SkillTipLv", petInfo.Name, petModel.GetSkillUnlockLevel(skillId));
                            fightPower = skillConfig.FightPower;
                        }
                        else
                        {
                            List<int> skills;
                            var value = 0;
                            if (petModel.TryGetPetSkills(skillConfig.Effect1, out skills))
                            {
                                foreach (var id in skills)
                                {
                                    if (petModel.IsSkillUnlock(id))
                                    {
                                        var config = SkillConfig.Get(id);
                                        value += config.EffectValue11;
                                        fightPower += config.FightPower;
                                    }
                                }
                            }
                            str[0] = string.Format(skillConfig.Description, value);
                            str[1] = string.Empty;
                        }
                        break;
                    case SkillType.MountSkill:
                        HorseConfig horseInfo = HorseConfig.Get(petId);
                        if (horseInfo != null)
                        {
                            str[2] = Language.Get("pet_SkillTipLv", horseInfo.Name, skillUnlock);
                            str[0] = skillConfig.Description;
                            str[1] = Language.Get("pet_SkillTipLv", horseInfo.Name, skillUnlock);
                        }
                        fightPower = skillConfig.FightPower;
                        break;
                }
                //}
                //else
                //{
                //    str[2] = string.Empty;
                //}
                int fightPower = 0;
                if (skillConfig.FightPower > 0)
                {
                    fightPower = skillConfig.FightPower;
                }
                SkillDetails.ShowSkillDetails(skillId, SkillDetails.SkillSourceType.PetSkill, fightPower, str);
            });
System/RoleParticulars/ViewPetDetailWin.cs
@@ -32,9 +32,11 @@
        List<int> skills = new List<int>();
        [NonSerialized] public List<int> activeSkills = new List<int>();
        [NonSerialized] public List<int> displayTotalSkills = new List<int>();
        [NonSerialized] public List<int> unlockTotalSkills = new List<int>();
        RoleParticularModel model { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } }
        PetModel petModel { get { return ModelCenter.Instance.GetModel<PetModel>(); } }
        #region Built-in
        protected override void BindController()
        {
@@ -137,14 +139,33 @@
        void DisplayTotalSkills(List<RoleParticularModel.PetInfo> pets)
        {
            activeSkills.Clear();
            displayTotalSkills.Clear();
            unlockTotalSkills.Clear();
            for (int i = 0; i < pets.Count; i++)
            {
                PetInfoConfig.GetPetSkills(pets[i].id, pets[i].lv, true, ref skills);
                activeSkills.AddRange(skills);
                unlockTotalSkills.AddRange(skills);
                foreach (var id in skills)
                {
                    var config = SkillConfig.Get(id);
                    var skillId = 0;
                    if (petModel.TryGetIntegrationSkill(config.Effect1, out skillId))
                    {
                        if (!displayTotalSkills.Contains(skillId))
                        {
                            displayTotalSkills.Add(skillId);
                        }
                        continue;
                    }
                    displayTotalSkills.Add(id);
                }
            }
            displayTotalSkills.Sort(Compare);
            m_SkillController.Refresh();
            var line = Mathf.CeilToInt((float)activeSkills.Count / m_LineCount);
            var line = Mathf.CeilToInt((float)displayTotalSkills.Count / m_LineCount);
            for (int i = 0; i < line; i++)
            {
                m_SkillController.AddCell(ScrollerDataType.Header, i);
@@ -184,6 +205,31 @@
        {
            ViewPetSkillCell skillCell = cell as ViewPetSkillCell;
            skillCell.Display(cell.index, this);
        }
        int Compare(int lhs, int rhs)
        {
            var lhs_config = SkillConfig.Get(lhs);
            var rhs_config = SkillConfig.Get(rhs);
            var lhs_Id = 0;
            var rhs_Id = 0;
            var lhs_integration = petModel.TryGetIntegrationSkill(lhs_config.Effect1, out lhs_Id);
            var rhs_integration = petModel.TryGetIntegrationSkill(rhs_config.Effect1, out rhs_Id);
            if (lhs_integration != rhs_integration)
            {
                return -lhs_integration.CompareTo(rhs_integration);
            }
            if (lhs_integration && rhs_integration)
            {
                return lhs_config.Effect1.CompareTo(rhs_config.Effect1);
            }
            var lhs_petId = 0;
            var rhs_petId = 0;
            petModel.TryGetPetId(lhs, out lhs_petId);
            petModel.TryGetPetId(rhs, out rhs_petId);
            var lhs_petconfig = PetInfoConfig.Get(lhs_petId);
            var rhs_petconfig = PetInfoConfig.Get(rhs_petId);
            return lhs_petconfig.Sort.CompareTo(rhs_petconfig.Sort);
        }
        [Serializable]
@@ -231,8 +277,10 @@
                if (petInfo != null)
                {
                    var skillConfig = SkillConfig.Get(skillId);
                    SkillDetails.ShowSkillDetails(skillId, SkillDetails.SkillSourceType.ViewHorsePet, skillConfig == null ? 0 : skillConfig.FightPower,
                         Language.Get("pet_SkillTipLv", petInfo.Name, PetInfoConfig.GetPetSkillCondition(petId, skillId)));
                    var label1 = skillConfig.Description;
                    var label2 = Language.Get("pet_SkillTipLv", petInfo.Name, PetInfoConfig.GetPetSkillCondition(petId, skillId));
                    SkillDetails.ShowSkillDetails(skillId, SkillDetails.SkillSourceType.ViewHorsePet,
                        skillConfig == null ? 0 : skillConfig.FightPower, label1, label2);
                }
            }
System/RoleParticulars/ViewPetSkillCell.cs
@@ -8,6 +8,8 @@
    {
        [SerializeField] SkillBehaviour[] m_Skills;
        PetModel model { get { return ModelCenter.Instance.GetModel<PetModel>(); } }
        ViewPetDetailWin displayWindow;
        public void Display(int line, ViewPetDetailWin win)
        {
@@ -15,10 +17,10 @@
            for (int i = 0; i < displayWindow.lineCount; i++)
            {
                var index = line * displayWindow.lineCount + i;
                if (index < displayWindow.activeSkills.Count)
                if (index < displayWindow.displayTotalSkills.Count)
                {
                    m_Skills[i].gameObject.SetActive(true);
                    m_Skills[i].Display(displayWindow.activeSkills[index]);
                    m_Skills[i].Display(displayWindow.displayTotalSkills[index]);
                    m_Skills[i].onClick -= OnSkillClick;
                    m_Skills[i].onClick += OnSkillClick;
                }
@@ -33,16 +35,43 @@
        public void OnSkillClick(int skillId)
        {
            int petId = 0;
            if (PetInfoConfig.TryGetPetIdBySkill(skillId, out petId))
            var skillConfig = SkillConfig.Get(skillId);
            if (model.TryGetPetId(skillId, out petId))
            {
                PetInfoConfig petInfo = PetInfoConfig.Get(petId);
                if (petInfo != null)
                PetInfoConfig config = PetInfoConfig.Get(petId);
                if (config != null)
                {
                    var skillConfig = SkillConfig.Get(skillId);
                    SkillDetails.ShowSkillDetails(skillId, SkillDetails.SkillSourceType.ViewHorsePet, skillConfig == null ? 0 : skillConfig.FightPower,
                         Language.Get("pet_SkillTipLv", petInfo.Name, PetInfoConfig.GetPetSkillCondition(petId, skillId)));
                    var label1 = skillConfig.Description;
                    var label2 = Language.Get("pet_SkillTipLv", config.Name, model.GetSkillUnlockLevel(skillId));
                    SkillDetails.ShowSkillDetails(skillId, SkillDetails.SkillSourceType.ViewHorsePet,
                        skillConfig == null ? 0 : skillConfig.FightPower, label1, label2);
                }
            }
            else
            {
                List<int> skills;
                var value = 0;
                var fightPower = 0;
                if (model.TryGetPetSkills(skillConfig.Effect1, out skills))
                {
                    foreach (var id in skills)
                    {
                        if (displayWindow.unlockTotalSkills.Contains(id))
                        {
                            var config = SkillConfig.Get(id);
                            value += config.EffectValue11;
                            fightPower += config.FightPower;
                        }
                    }
                }
                var label1 = string.Format(skillConfig.Description, value);
                var label2 = string.Empty;
                SkillDetails.ShowSkillDetails(skillId, SkillDetails.SkillSourceType.ViewHorsePet,
                        fightPower, label1, label2);
            }
        }
    }
}
System/Tip/SkillDetails.cs
@@ -72,8 +72,8 @@
                    break;
                case SkillSourceType.ViewHorsePet:
                    {
                        skillDescriptions.Add(skillConfig.Description);
                        skillDescriptions.Add(infos[0]);
                        skillDescriptions.Add(infos[1]);
                    }
                    break;
                case SkillSourceType.BlastFurnace: