SkillDataManager.cs 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System.Collections.Generic;
  2. using UnityEngine;
  3. namespace GFGGame
  4. {
  5. public class SkillDataManager : SingletonBase<SkillDataManager>
  6. {
  7. public Dictionary<int, Dictionary<int, int>> CardSkillData = new Dictionary<int, Dictionary<int, int>>();
  8. public Dictionary<int, List<int>> LeagueSkillDatas = new Dictionary<int, List<int>>();//雅集技能
  9. public Dictionary<int, Dictionary<int, int>> LeagueSkillScoreDatas = new Dictionary<int, Dictionary<int, int>>();//雅集技能增加属性
  10. public void Clear()
  11. {
  12. CardSkillData.Clear();
  13. LeagueSkillDatas.Clear();
  14. LeagueSkillScoreDatas.Clear();
  15. }
  16. /*********************************************************卡牌技能****************************************************/
  17. public void InitCardData(int cardId, List<int> skillIds, List<int> skillLvs)
  18. {
  19. if (!this.CardSkillData.ContainsKey(cardId))
  20. {
  21. this.CardSkillData[cardId] = new Dictionary<int, int>();
  22. }
  23. for (int i = 0; i < skillIds.Count; i++)
  24. {
  25. UpdateCardSkill(cardId, skillIds[i], skillLvs[i]);
  26. }
  27. }
  28. public void UpdateCardSkill(int cardId, int skillId, int skillLv)
  29. {
  30. this.CardSkillData[cardId][skillId] = skillLv;
  31. }
  32. public int GetCardSkillLv(int cardId, int skillId)
  33. {
  34. int lv = 1;
  35. if (this.CardSkillData.ContainsKey(cardId) && this.CardSkillData[cardId].ContainsKey(skillId))
  36. {
  37. lv = this.CardSkillData[cardId][skillId];
  38. }
  39. return lv;
  40. }
  41. public List<int> GetCardSkillLvs(int cardId)
  42. {
  43. List<int> skillLvs = new List<int>();
  44. List<PassivitySkillCfg> skillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(cardId);
  45. for (int i = 0; i < skillCfgs.Count; i++)
  46. {
  47. skillLvs.Add(GetCardSkillLv(cardId, skillCfgs[i].skillId));
  48. }
  49. return skillLvs;
  50. }
  51. /*************************************************************************************************************/
  52. public void UpdateSkillDatas(int skillType, List<int> skillIds)
  53. {
  54. switch (skillType)
  55. {
  56. case SkillType.LeagueSkill:
  57. for (int i = 0; i < skillIds.Count; i++)
  58. {
  59. LeagueSkillCfg skillCfg = LeagueSkillCfgArray.Instance.GetCfg(skillIds[i]);
  60. if (!LeagueSkillDatas.ContainsKey(skillCfg.type))
  61. {
  62. LeagueSkillDatas.Add(skillCfg.type, new List<int>());
  63. LeagueSkillScoreDatas.Add(skillCfg.type, new Dictionary<int, int>());
  64. LeagueSkillScoreDatas[skillType][ConstDressUpScoreType.SCORE_FENG] = 0;
  65. LeagueSkillScoreDatas[skillType][ConstDressUpScoreType.SCORE_HUA] = 0;
  66. LeagueSkillScoreDatas[skillType][ConstDressUpScoreType.SCORE_XUE] = 0;
  67. LeagueSkillScoreDatas[skillType][ConstDressUpScoreType.SCORE_YUE] = 0;
  68. }
  69. if (LeagueSkillDatas[skillCfg.type].IndexOf(skillIds[i]) < 0)
  70. {
  71. LeagueSkillDatas[skillCfg.type].Add(skillIds[i]);
  72. LeagueSkillScoreDatas[skillType][skillCfg.score] = LeagueSkillScoreDatas[skillType][skillCfg.score] + skillCfg.value;
  73. }
  74. }
  75. break;
  76. }
  77. }
  78. }
  79. }