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 void Clear() { skillData.Clear(); } public void InitServerData(List skillDatas) { skillData.Clear(); if (skillDatas != null && skillDatas.Count > 0) { foreach (SkillData skillData in skillDatas) { if (!this.skillData.ContainsKey(skillData.cardId)) { this.skillData[skillData.cardId] = new Dictionary(); } // if(!this.skillData[skillData.cardId].ContainsKey(skillData.skillId)){ // }this.skillData[skillData.cardId][skillData.skillId]= this.skillData[skillData.cardId][skillData.skillId] = skillData; } } } public void UpSkill(int cardId, int skillId) { if (!this.skillData.ContainsKey(cardId)) { this.skillData[cardId] = new Dictionary(); } if (!this.skillData[cardId].ContainsKey(skillId)) { SkillData skillData = new SkillData(); skillData.cardId = cardId; skillData.skillId = skillId; skillData.lv = 1; this.skillData[cardId][skillId] = skillData; } skillData[cardId][skillId].lv += 1; EventAgent.DispatchEvent(ConstMessage.CARD_UP_SKILL); } //获取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 CardSkillCfg GetCardSkillCfg(int cardId, int skillId) { CardSkillCfg[] cardSkillCfgs = CardSkillCfgArray.Instance.GetCfgs(cardId); CardSkillCfg cardSkillCfg = null; for (int i = 0; i < cardSkillCfgs.Length; i++) { if (cardSkillCfgs[i].skillId == skillId) { cardSkillCfg = cardSkillCfgs[i]; } } return cardSkillCfg; } public PassivitySkillCfg GetPassivitySkillCfg(int cardId, int skillId) { PassivitySkillCfg[] passivitySkillCfgs = PassivitySkillCfgArray.Instance.GetCfgs(cardId); PassivitySkillCfg passivitySkillCfg = null; for (int i = 0; i < passivitySkillCfgs.Length; i++) { if (passivitySkillCfgs[i].skillId == skillId) { passivitySkillCfg = passivitySkillCfgs[i]; } } return passivitySkillCfg; } public SkillData GetSkillData(int cardId, int skillId) { SkillData skillData = SkillDataManager.Instance.skillData.ContainsKey(cardId) && SkillDataManager.Instance.skillData[cardId].ContainsKey(skillId) ? SkillDataManager.Instance.skillData[cardId][skillId] : null; return skillData; } } }