using System.Collections.Generic; using UnityEngine; namespace GFGGame { public class SkillDataManager : SingletonBase { public const int MINE = 0; public const int NPC = 1; public const string SKILL_ADD = "add"; public const string SKILL_MINUS = "minus"; public const string SKILL_BREAK = "break"; public const string SKILL_SHIELD = "shield"; public Dictionary> skillData = new Dictionary>(); // public Dictionary>> dicPassivitySkill = new Dictionary>>(); public void Clear() { skillData.Clear(); } public void InitServerData(int cardId, List skillIds, List skillLvs) { if (!this.skillData.ContainsKey(cardId)) { this.skillData[cardId] = new Dictionary(); } for (int i = 0; i < skillIds.Count; i++) { UpdateSkill(cardId, skillIds[i], skillLvs[i]); } } public void UpdateSkill(int cardId, int skillId, int skillLv) { this.skillData[cardId][skillId] = skillLv; } // public void UpSkill(int cardId, int skillId) // { // CardSProxy.UpgradeCardSkill(cardId, skillId).Coroutine(); // } //获取npc释放技能顺序 public Dictionary GetNpcSkill() { Dictionary npcSkillDic = new Dictionary(); RoleSkillCfg[] roleSkillCfgs = RoleSkillCfgArray.Instance.dataArray; List arr = new List { 0, 1, 2, 3, 4, 5, 6, 7 }; for (int i = 0; i < roleSkillCfgs.Length; i++) { int partIndex = Random.Range(0, arr.Count); npcSkillDic.Add(arr[partIndex], roleSkillCfgs[i]); arr.RemoveAt(partIndex); } return npcSkillDic; } public int GetSkillLv(int cardId, int skillId) { // SkillData skillData; // if (SkillDataManager.Instance.skillData.ContainsKey(cardId) && SkillDataManager.Instance.skillData[cardId].ContainsKey(skillId)) // { // skillData = SkillDataManager.Instance.skillData[cardId][skillId]; // } // else // { // skillData = new SkillData(); // skillData.cardId = cardId; // skillData.skillId = skillId; // skillData.lv = 1; // } // return skillData; int lv = 1; if (this.skillData.ContainsKey(cardId) && this.skillData[cardId].ContainsKey(skillId)) { lv = this.skillData[cardId][skillId]; } return lv; } public PassivitySkillCfg GetPassivitySkillCfg(int cardId, int skillId) { List cfgs = PassivitySkillCfgArray.Instance.GetCfgs(cardId); for (int i = 0; i < cfgs.Count; i++) { if (cfgs[i].skillId == skillId) return cfgs[i]; } return null; } // public PassivitySkillLvlCfg GetPassivitySkillLvlCfg(int skillId, int lv) // { // return PassivitySkillLvlCfgArray.Instance.GetCfg(lv, skillId); // } } }