using System.Collections.Generic; using UnityEngine; namespace GFGGame { public class SkillDataManager : SingletonBase { public Dictionary> CardSkillData = new Dictionary>(); public Dictionary> LeagueSkillDatas = new Dictionary>();//雅集技能 public Dictionary> LeagueSkillScoreDatas = new Dictionary>();//雅集技能增加属性 public void Clear() { CardSkillData.Clear(); LeagueSkillDatas.Clear(); LeagueSkillScoreDatas.Clear(); } /*********************************************************卡牌技能****************************************************/ public void InitCardData(int cardId, List skillIds, List skillLvs) { if (!this.CardSkillData.ContainsKey(cardId)) { this.CardSkillData[cardId] = new Dictionary(); } for (int i = 0; i < skillIds.Count; i++) { UpdateCardSkill(cardId, skillIds[i], skillLvs[i]); } } public void UpdateCardSkill(int cardId, int skillId, int skillLv) { this.CardSkillData[cardId][skillId] = skillLv; } public int GetCardSkillLv(int cardId, int skillId) { int lv = 1; if (this.CardSkillData.ContainsKey(cardId) && this.CardSkillData[cardId].ContainsKey(skillId)) { lv = this.CardSkillData[cardId][skillId]; } return lv; } public List GetCardSkillLvs(int cardId) { List skillLvs = new List(); List skillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(cardId); for (int i = 0; i < skillCfgs.Count; i++) { skillLvs.Add(GetCardSkillLv(cardId, skillCfgs[i].skillId)); } return skillLvs; } /*************************************************************************************************************/ public void UpdateSkillDatas(int skillType, List skillIds) { switch (skillType) { case SkillType.LeagueSkill: for (int i = 0; i < skillIds.Count; i++) { LeagueSkillCfg skillCfg = LeagueSkillCfgArray.Instance.GetCfg(skillIds[i]); if (!LeagueSkillDatas.ContainsKey(skillCfg.type)) { LeagueSkillDatas.Add(skillCfg.type, new List()); LeagueSkillScoreDatas.Add(skillCfg.type, new Dictionary()); LeagueSkillScoreDatas[skillType][ConstDressUpScoreType.SCORE_FENG] = 0; LeagueSkillScoreDatas[skillType][ConstDressUpScoreType.SCORE_HUA] = 0; LeagueSkillScoreDatas[skillType][ConstDressUpScoreType.SCORE_XUE] = 0; LeagueSkillScoreDatas[skillType][ConstDressUpScoreType.SCORE_YUE] = 0; } if (LeagueSkillDatas[skillCfg.type].IndexOf(skillIds[i]) < 0) { LeagueSkillDatas[skillCfg.type].Add(skillIds[i]); LeagueSkillScoreDatas[skillType][skillCfg.score] = LeagueSkillScoreDatas[skillType][skillCfg.score] + skillCfg.value; } } break; } } } }