123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- using System.Collections.Generic;
- using UnityEngine;
- namespace GFGGame
- {
- public class SkillDataManager : SingletonBase<SkillDataManager>
- {
- 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<int, Dictionary<int, SkillData>> skillData = new Dictionary<int, Dictionary<int, SkillData>>();
- public Dictionary<int, Dictionary<int, List<PassivitySkillCfg>>> dicPassivitySkill = new Dictionary<int, Dictionary<int, List<PassivitySkillCfg>>>();
- public void Clear()
- {
- skillData.Clear();
- }
- public void InitServerData(List<SkillData> 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<int, SkillData>();
- }
- this.skillData[skillData.cardId][skillData.skillId] = skillData;
- }
- }
- }
- public void SetDicPassivitySkillCfg()
- {
- if (dicPassivitySkill.Count > 0) return;
- PassivitySkillCfg[] dataArray = PassivitySkillCfgArray.Instance.dataArray;
- for (int i = 0; i < dataArray.Length; i++)
- {
- if (!dicPassivitySkill.ContainsKey(dataArray[i].cardId))
- {
- dicPassivitySkill[dataArray[i].cardId] = new Dictionary<int, List<PassivitySkillCfg>>();
- }
- PassivitySkillCfg passivitySkillCfgs = dataArray[i];
- if (!dicPassivitySkill[passivitySkillCfgs.cardId].ContainsKey(passivitySkillCfgs.skillId))
- {
- dicPassivitySkill[passivitySkillCfgs.cardId][passivitySkillCfgs.skillId] = new List<PassivitySkillCfg>();
- }
- dicPassivitySkill[passivitySkillCfgs.cardId][passivitySkillCfgs.skillId].Add(passivitySkillCfgs);
- }
- }
- public void UpSkill(int cardId, int skillId)
- {
- if (!this.skillData.ContainsKey(cardId))
- {
- this.skillData[cardId] = new Dictionary<int, SkillData>();
- }
- 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<int, RoleSkillCfg> GetNpcSkill()
- {
- Dictionary<int, RoleSkillCfg> npcSkillDic = new Dictionary<int, RoleSkillCfg>();
- RoleSkillCfg[] roleSkillCfgs = RoleSkillCfgArray.Instance.dataArray;
- List<int> arr = new List<int> { 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 SkillData GetSkillData(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;
- }
- public PassivitySkillCfg GetPassivitySkillCfg(int cardId, int skillId, int lv)
- {
- return dicPassivitySkill[cardId][skillId][lv - 1];
- }
- }
- }
|