SkillDataManager.cs 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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, int>> skillData = new Dictionary<int, Dictionary<int, int>>();
  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(int cardId, List<int> skillIds, List<int> skillLvs)
  20. {
  21. if (!this.skillData.ContainsKey(cardId))
  22. {
  23. this.skillData[cardId] = new Dictionary<int, int>();
  24. }
  25. for (int i = 0; i < skillIds.Count; i++)
  26. {
  27. UpdateSkill(cardId, skillIds[i], skillLvs[i]);
  28. }
  29. }
  30. public void UpdateSkill(int cardId, int skillId, int skillLv)
  31. {
  32. this.skillData[cardId][skillId] = skillLv;
  33. }
  34. // public void UpSkill(int cardId, int skillId)
  35. // {
  36. // CardSProxy.UpgradeCardSkill(cardId, skillId).Coroutine();
  37. // }
  38. //获取npc释放技能顺序
  39. public Dictionary<int, RoleSkillCfg> GetNpcSkill()
  40. {
  41. Dictionary<int, RoleSkillCfg> npcSkillDic = new Dictionary<int, RoleSkillCfg>();
  42. RoleSkillCfg[] roleSkillCfgs = RoleSkillCfgArray.Instance.dataArray;
  43. List<int> arr = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7 };
  44. for (int i = 0; i < roleSkillCfgs.Length; i++)
  45. {
  46. int partIndex = Random.Range(0, arr.Count);
  47. npcSkillDic.Add(arr[partIndex], roleSkillCfgs[i]);
  48. arr.RemoveAt(partIndex);
  49. }
  50. return npcSkillDic;
  51. }
  52. public int GetSkillLv(int cardId, int skillId)
  53. {
  54. // SkillData skillData;
  55. // if (SkillDataManager.Instance.skillData.ContainsKey(cardId) && SkillDataManager.Instance.skillData[cardId].ContainsKey(skillId))
  56. // {
  57. // skillData = SkillDataManager.Instance.skillData[cardId][skillId];
  58. // }
  59. // else
  60. // {
  61. // skillData = new SkillData();
  62. // skillData.cardId = cardId;
  63. // skillData.skillId = skillId;
  64. // skillData.lv = 1;
  65. // }
  66. // return skillData;
  67. int lv = 1;
  68. if (this.skillData.ContainsKey(cardId) && this.skillData[cardId].ContainsKey(skillId))
  69. {
  70. lv = this.skillData[cardId][skillId];
  71. }
  72. return lv;
  73. }
  74. public PassivitySkillCfg GetPassivitySkillCfg(int cardId, int skillId)
  75. {
  76. List<PassivitySkillCfg> cfgs = PassivitySkillCfgArray.Instance.GetCfgs(cardId);
  77. for (int i = 0; i < cfgs.Count; i++)
  78. {
  79. if (cfgs[i].skillId == skillId) return cfgs[i];
  80. }
  81. return null;
  82. }
  83. // public PassivitySkillLvlCfg GetPassivitySkillLvlCfg(int skillId, int lv)
  84. // {
  85. // return PassivitySkillLvlCfgArray.Instance.GetCfg(lv, skillId);
  86. // }
  87. }
  88. }