| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | using System.Collections.Generic;using UnityEngine;namespace GFGGame{    public class SkillDataManager : SingletonBase<SkillDataManager>    {        public Dictionary<int, Dictionary<int, int>> CardSkillData = new Dictionary<int, Dictionary<int, int>>();        public Dictionary<int, List<int>> LeagueSkillDatas = new Dictionary<int, List<int>>();//雅集技能        public Dictionary<int, Dictionary<int, int>> LeagueSkillScoreDatas = new Dictionary<int, Dictionary<int, int>>();//雅集技能增加属性        public Dictionary<int, int> LeagueSkillLvDatas = new Dictionary<int, int>();//雅集技能等级存储        public void Clear()        {            CardSkillData.Clear();            LeagueSkillDatas.Clear();            LeagueSkillScoreDatas.Clear();        }        /*********************************************************词牌技能****************************************************/        public void InitCardData(int cardId, List<int> skillIds, List<int> skillLvs)        {            if (!this.CardSkillData.ContainsKey(cardId))            {                this.CardSkillData[cardId] = new Dictionary<int, int>();            }            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;            this.LeagueSkillLvDatas[skillId] = skillLv;        }        public Dictionary<int, int> GetLeagueSkillLvDatas()        {            return this.LeagueSkillLvDatas;        }        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<int> GetCardSkillLvs(int cardId)        {            List<int> skillLvs = new List<int>();            List<PassivitySkillCfg> 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<int> skillIds)        {            switch (skillType)            {                case SkillType.LeagueSkill:                    for (int i = 0; i < skillIds.Count; i++)                    {                        LeagueSkillCfg skillCfg = LeagueSkillCfgArray.Instance.GetCfg(skillIds[i]);                        if (skillIds[i] == 105)                        {                            Debug.Log("");                        }                        if (!LeagueSkillDatas.ContainsKey(skillCfg.type))                        {                            LeagueSkillDatas.Add(skillCfg.type, new List<int>());                            LeagueSkillScoreDatas.Add(skillCfg.type, new Dictionary<int, int>());                            LeagueSkillScoreDatas[skillCfg.type][ConstDressUpScoreType.SCORE_FENG] = 0;                            LeagueSkillScoreDatas[skillCfg.type][ConstDressUpScoreType.SCORE_HUA] = 0;                            LeagueSkillScoreDatas[skillCfg.type][ConstDressUpScoreType.SCORE_XUE] = 0;                            LeagueSkillScoreDatas[skillCfg.type][ConstDressUpScoreType.SCORE_YUE] = 0;                        }                        if (LeagueSkillDatas[skillCfg.type].IndexOf(skillIds[i]) < 0)                        {                            LeagueSkillDatas[skillCfg.type].Add(skillIds[i]);                            LeagueSkillScoreDatas[skillCfg.type][skillCfg.score] = LeagueSkillScoreDatas[skillCfg.type][skillCfg.score] + skillCfg.value;                        }                    }                    List<FightData> fightDatas = ArenaDataManager.Instance.DressupList;                    for (int i = 0; i < fightDatas.Count; i++)                    {                        fightDatas[i].leagueSkillScore = LeagueDataManager.Instance.GetAllSkillScore(fightDatas[i].scoreType);                    }                    break;            }        }    }}
 |