SkillDataManager.cs 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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 (skillIds[i] == 105)
  61. {
  62. Debug.Log("");
  63. }
  64. if (!LeagueSkillDatas.ContainsKey(skillCfg.type))
  65. {
  66. LeagueSkillDatas.Add(skillCfg.type, new List<int>());
  67. LeagueSkillScoreDatas.Add(skillCfg.type, new Dictionary<int, int>());
  68. LeagueSkillScoreDatas[skillCfg.type][ConstDressUpScoreType.SCORE_FENG] = 0;
  69. LeagueSkillScoreDatas[skillCfg.type][ConstDressUpScoreType.SCORE_HUA] = 0;
  70. LeagueSkillScoreDatas[skillCfg.type][ConstDressUpScoreType.SCORE_XUE] = 0;
  71. LeagueSkillScoreDatas[skillCfg.type][ConstDressUpScoreType.SCORE_YUE] = 0;
  72. }
  73. if (LeagueSkillDatas[skillCfg.type].IndexOf(skillIds[i]) < 0)
  74. {
  75. LeagueSkillDatas[skillCfg.type].Add(skillIds[i]);
  76. LeagueSkillScoreDatas[skillCfg.type][skillCfg.score] = LeagueSkillScoreDatas[skillCfg.type][skillCfg.score] + skillCfg.value;
  77. }
  78. }
  79. break;
  80. }
  81. }
  82. }
  83. }