SkillDataManager.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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 void Clear()
  15. {
  16. skillData.Clear();
  17. }
  18. public void InitServerData(List<SkillData> skillDatas)
  19. {
  20. skillData.Clear();
  21. if (skillDatas != null && skillDatas.Count > 0)
  22. {
  23. foreach (SkillData skillData in skillDatas)
  24. {
  25. if (!this.skillData.ContainsKey(skillData.cardId))
  26. {
  27. this.skillData[skillData.cardId] = new Dictionary<int, SkillData>();
  28. }
  29. // if(!this.skillData[skillData.cardId].ContainsKey(skillData.skillId)){
  30. // }this.skillData[skillData.cardId][skillData.skillId]=
  31. this.skillData[skillData.cardId][skillData.skillId] = skillData;
  32. }
  33. }
  34. }
  35. public void UpSkill(int cardId, int skillId)
  36. {
  37. if (!this.skillData.ContainsKey(cardId))
  38. {
  39. this.skillData[cardId] = new Dictionary<int, SkillData>();
  40. }
  41. if (!this.skillData[cardId].ContainsKey(skillId))
  42. {
  43. SkillData skillData = new SkillData();
  44. skillData.cardId = cardId;
  45. skillData.skillId = skillId;
  46. skillData.lv = 1;
  47. this.skillData[cardId][skillId] = skillData;
  48. }
  49. skillData[cardId][skillId].lv += 1;
  50. EventAgent.DispatchEvent(ConstMessage.CARD_UP_SKILL);
  51. }
  52. //获取npc释放技能顺序
  53. public Dictionary<int, RoleSkillCfg> GetNpcSkill()
  54. {
  55. Dictionary<int, RoleSkillCfg> npcSkillDic = new Dictionary<int, RoleSkillCfg>();
  56. RoleSkillCfg[] roleSkillCfgs = RoleSkillCfgArray.Instance.dataArray;
  57. List<int> arr = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7 };
  58. for (int i = 0; i < roleSkillCfgs.Length; i++)
  59. {
  60. int partIndex = Random.Range(0, arr.Count);
  61. npcSkillDic.Add(arr[partIndex], roleSkillCfgs[i]);
  62. arr.RemoveAt(partIndex);
  63. }
  64. return npcSkillDic;
  65. }
  66. public CardSkillCfg GetCardSkillCfg(int cardId, int skillId)
  67. {
  68. CardSkillCfg[] cardSkillCfgs = CardSkillCfgArray.Instance.GetCfgs(cardId);
  69. CardSkillCfg cardSkillCfg = null;
  70. for (int i = 0; i < cardSkillCfgs.Length; i++)
  71. {
  72. if (cardSkillCfgs[i].skillId == skillId)
  73. {
  74. cardSkillCfg = cardSkillCfgs[i];
  75. }
  76. }
  77. return cardSkillCfg;
  78. }
  79. public PassivitySkillCfg GetPassivitySkillCfg(int cardId, int skillId)
  80. {
  81. PassivitySkillCfg[] passivitySkillCfgs = PassivitySkillCfgArray.Instance.GetCfgs(cardId);
  82. PassivitySkillCfg passivitySkillCfg = null;
  83. for (int i = 0; i < passivitySkillCfgs.Length; i++)
  84. {
  85. if (passivitySkillCfgs[i].skillId == skillId)
  86. {
  87. passivitySkillCfg = passivitySkillCfgs[i];
  88. }
  89. }
  90. return passivitySkillCfg;
  91. }
  92. public SkillData GetSkillData(int cardId, int skillId)
  93. {
  94. SkillData skillData = SkillDataManager.Instance.skillData.ContainsKey(cardId) && SkillDataManager.Instance.skillData[cardId].ContainsKey(skillId) ? SkillDataManager.Instance.skillData[cardId][skillId] : null;
  95. return skillData;
  96. }
  97. }
  98. }