123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- using System.Collections.Generic;
- using System.Linq;
- using Excel2Json;
- using Fort23.UTool;
- namespace GameLogic.Hero
- {
- public class SkillData
- {
- public Dictionary<int, List<SkillInfo>> mySkillDic = new Dictionary<int, List<SkillInfo>>();
- public CombatHeroInfo heroInfo;
- public SkillData(CombatHeroInfo heroInfo)
- {
- this.heroInfo = heroInfo;
- }
- /// <summary>
- /// 获取最高等级等技能(已解锁),或者1级技能(未解锁时)
- /// </summary>
- /// <returns>最高等级等技能(已解锁),或者1级技能(未解锁时)</returns>
- public SkillInfo GetHighestLevelOr1(int groupID, bool onlyUnLock = false)
- {
- SkillInfo skillInfo = null;
- int lv = 0;
- for(int i = 0; i < mySkillDic[groupID].Count; i++)
- {
- SkillInfo info = mySkillDic[groupID][i];
- if (i == 0 && !onlyUnLock)
- {
- skillInfo = info;
- }
-
- if (info.isUnLock && info.skillConfig.level > lv)
- {
- lv = info.skillConfig.level;
- skillInfo = info;
- }
- }
- return skillInfo;
- }
- /// <summary>
- /// 获取SkillConfig
- /// </summary>
- /// <param name="upSkillID">技能解锁表的ID</param>
- /// <returns></returns>
- public SkillConfig GetSkillConfig(int upSkillID)
- {
- // SkillConfig config = new SkillConfig();
- foreach (KeyValuePair<int,List<SkillInfo>> keyValuePair in mySkillDic)
- {
- foreach (SkillInfo skillInfo in keyValuePair.Value)
- {
- // skillInfo.UpdateInfo();
- if (skillInfo.upConfig.ID == upSkillID)
- {
- return skillInfo.skillConfig;
- }
- }
- }
- return new SkillConfig();;
- }
- // public void Init(HeroInfo heroInfo)
- // {
- // this.heroInfo = heroInfo;
- // }
- public void UpdateSkills()
- {
- // foreach (SkillInfo skillInfo in mySkillDic[groupID])
- // {
- // skillInfo.UpdateInfo();
- // }
- foreach (KeyValuePair<int,List<SkillInfo>> keyValuePair in mySkillDic)
- {
- foreach (SkillInfo skillInfo in keyValuePair.Value)
- {
- skillInfo.UpdateInfo();
- }
- }
- }
-
- public void InitSkills()
- {
- for (int i = 0; i < heroInfo.modelConfig.skillID.Length; i++)
- {
- int skillGroup = heroInfo.modelConfig.skillID[i];
- foreach (SkillConfig config in PlayerManager.Instance.groupSkillDic[skillGroup])
- {
- SkillInfo skillInfo = new SkillInfo();
- skillInfo.Init(this, config);
- // allSkills.Add(skillInfo);
- //
- // if (skillInfo.isUnLock)
- // {
- // allUnLockSkill.Add(skillInfo);
- // }
- if (mySkillDic.ContainsKey(skillGroup))
- {
- mySkillDic[skillGroup].Add(skillInfo);
- }
- else
- {
- mySkillDic.Add(skillGroup, new List<SkillInfo> { skillInfo });
- }
- }
- // UpdateSkill4Combat();
- }
- }
- /// <summary>
- /// 更新战斗中用得到的技能
- /// </summary>
- public void UpdateSkill4Combat()
- {
- // int idx = 0;
- // heroInfo.skillConfigs = new List<SkillConfig>();
- // foreach (KeyValuePair<int, List<SkillInfo>> keyValuePair in heroInfo.SkillData.mySkillDic)
- // {
- // SkillInfo combatSkill = GetHighestLevelOr1(keyValuePair.Key, true);
- // if (combatSkill != null)
- // {
- // allSkill4Combat.Add(combatSkill);
- // heroInfo.skillConfigs.Add(combatSkill.skillConfig);
- // }
- // }
- }
-
-
- }
- }
|