SkillDataManager.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. using System.Collections.Generic;
  2. using UnityEngine;
  3. namespace GFGGame
  4. {
  5. public class SkillDataManager : SingletonBase<SkillDataManager>
  6. {
  7. public const int MINE = 0;
  8. public const int NPC = 1;
  9. public const string SKILL_ADD = "add";
  10. public const string SKILL_MINUS = "minus";
  11. public const string SKILL_BREAK = "break";
  12. public const string SKILL_SHIELD = "shield";
  13. public Dictionary<int, Dictionary<int, SkillData>> skillData = new Dictionary<int, Dictionary<int, SkillData>>();
  14. public Dictionary<int, Dictionary<int, List<PassivitySkillCfg>>> dicPassivitySkill = new Dictionary<int, Dictionary<int, List<PassivitySkillCfg>>>();
  15. public void Clear()
  16. {
  17. skillData.Clear();
  18. }
  19. public void InitServerData(List<SkillData> skillDatas)
  20. {
  21. skillData.Clear();
  22. if (skillDatas != null && skillDatas.Count > 0)
  23. {
  24. foreach (SkillData skillData in skillDatas)
  25. {
  26. if (!this.skillData.ContainsKey(skillData.cardId))
  27. {
  28. this.skillData[skillData.cardId] = new Dictionary<int, SkillData>();
  29. }
  30. this.skillData[skillData.cardId][skillData.skillId] = skillData;
  31. }
  32. }
  33. }
  34. public void SetDicPassivitySkillCfg()
  35. {
  36. if (dicPassivitySkill.Count > 0) return;
  37. PassivitySkillCfg[] dataArray = PassivitySkillCfgArray.Instance.dataArray;
  38. for (int i = 0; i < dataArray.Length; i++)
  39. {
  40. if (!dicPassivitySkill.ContainsKey(dataArray[i].cardId))
  41. {
  42. dicPassivitySkill[dataArray[i].cardId] = new Dictionary<int, List<PassivitySkillCfg>>();
  43. }
  44. PassivitySkillCfg passivitySkillCfgs = dataArray[i];
  45. if (!dicPassivitySkill[passivitySkillCfgs.cardId].ContainsKey(passivitySkillCfgs.skillId))
  46. {
  47. dicPassivitySkill[passivitySkillCfgs.cardId][passivitySkillCfgs.skillId] = new List<PassivitySkillCfg>();
  48. }
  49. dicPassivitySkill[passivitySkillCfgs.cardId][passivitySkillCfgs.skillId].Add(passivitySkillCfgs);
  50. }
  51. }
  52. public void UpSkill(int cardId, int skillId)
  53. {
  54. if (!this.skillData.ContainsKey(cardId))
  55. {
  56. this.skillData[cardId] = new Dictionary<int, SkillData>();
  57. }
  58. if (!this.skillData[cardId].ContainsKey(skillId))
  59. {
  60. SkillData skillData = new SkillData();
  61. skillData.cardId = cardId;
  62. skillData.skillId = skillId;
  63. skillData.lv = 1;
  64. this.skillData[cardId][skillId] = skillData;
  65. }
  66. skillData[cardId][skillId].lv += 1;
  67. EventAgent.DispatchEvent(ConstMessage.CARD_UP_SKILL);
  68. }
  69. //获取npc释放技能顺序
  70. public Dictionary<int, RoleSkillCfg> GetNpcSkill()
  71. {
  72. Dictionary<int, RoleSkillCfg> npcSkillDic = new Dictionary<int, RoleSkillCfg>();
  73. RoleSkillCfg[] roleSkillCfgs = RoleSkillCfgArray.Instance.dataArray;
  74. List<int> arr = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7 };
  75. for (int i = 0; i < roleSkillCfgs.Length; i++)
  76. {
  77. int partIndex = Random.Range(0, arr.Count);
  78. npcSkillDic.Add(arr[partIndex], roleSkillCfgs[i]);
  79. arr.RemoveAt(partIndex);
  80. }
  81. return npcSkillDic;
  82. }
  83. public SkillData GetSkillData(int cardId, int skillId)
  84. {
  85. SkillData skillData;
  86. if (SkillDataManager.Instance.skillData.ContainsKey(cardId) && SkillDataManager.Instance.skillData[cardId].ContainsKey(skillId))
  87. {
  88. skillData = SkillDataManager.Instance.skillData[cardId][skillId];
  89. }
  90. else
  91. {
  92. skillData = new SkillData();
  93. skillData.cardId = cardId;
  94. skillData.skillId = skillId;
  95. skillData.lv = 1;
  96. }
  97. return skillData;
  98. }
  99. public PassivitySkillCfg GetPassivitySkillCfg(int cardId, int skillId, int lv)
  100. {
  101. return dicPassivitySkill[cardId][skillId][lv - 1];
  102. }
  103. }
  104. }