SkillDataManager.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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 Dictionary<int, int> LeagueSkillLvDatas = new Dictionary<int, int>();//雅集技能等级存储
  11. public void Clear()
  12. {
  13. CardSkillData.Clear();
  14. LeagueSkillDatas.Clear();
  15. LeagueSkillScoreDatas.Clear();
  16. }
  17. /*********************************************************词牌技能****************************************************/
  18. public void InitCardData(int cardId, List<int> skillIds, List<int> skillLvs)
  19. {
  20. if (!this.CardSkillData.ContainsKey(cardId))
  21. {
  22. this.CardSkillData[cardId] = new Dictionary<int, int>();
  23. }
  24. for (int i = 0; i < skillIds.Count; i++)
  25. {
  26. UpdateCardSkill(cardId, skillIds[i], skillLvs[i]);
  27. }
  28. }
  29. public void UpdateCardSkill(int cardId, int skillId, int skillLv)
  30. {
  31. this.CardSkillData[cardId][skillId] = skillLv;
  32. this.LeagueSkillLvDatas[skillId] = skillLv;
  33. }
  34. public Dictionary<int, int> GetLeagueSkillLvDatas()
  35. {
  36. return this.LeagueSkillLvDatas;
  37. }
  38. public int GetCardSkillLv(int cardId, int skillId)
  39. {
  40. int lv = 1;
  41. if (this.CardSkillData.ContainsKey(cardId) && this.CardSkillData[cardId].ContainsKey(skillId))
  42. {
  43. lv = this.CardSkillData[cardId][skillId];
  44. }
  45. return lv;
  46. }
  47. public List<int> GetCardSkillLvs(int cardId)
  48. {
  49. List<int> skillLvs = new List<int>();
  50. List<PassivitySkillCfg> skillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(cardId);
  51. for (int i = 0; i < skillCfgs.Count; i++)
  52. {
  53. skillLvs.Add(GetCardSkillLv(cardId, skillCfgs[i].skillId));
  54. }
  55. return skillLvs;
  56. }
  57. /*************************************************************************************************************/
  58. public void UpdateSkillDatas(int skillType, List<int> skillIds)
  59. {
  60. switch (skillType)
  61. {
  62. case SkillType.LeagueSkill:
  63. for (int i = 0; i < skillIds.Count; i++)
  64. {
  65. LeagueSkillCfg skillCfg = LeagueSkillCfgArray.Instance.GetCfg(skillIds[i]);
  66. if (skillIds[i] == 105)
  67. {
  68. Debug.Log("");
  69. }
  70. if (!LeagueSkillDatas.ContainsKey(skillCfg.type))
  71. {
  72. LeagueSkillDatas.Add(skillCfg.type, new List<int>());
  73. LeagueSkillScoreDatas.Add(skillCfg.type, new Dictionary<int, int>());
  74. LeagueSkillScoreDatas[skillCfg.type][ConstDressUpScoreType.SCORE_FENG] = 0;
  75. LeagueSkillScoreDatas[skillCfg.type][ConstDressUpScoreType.SCORE_HUA] = 0;
  76. LeagueSkillScoreDatas[skillCfg.type][ConstDressUpScoreType.SCORE_XUE] = 0;
  77. LeagueSkillScoreDatas[skillCfg.type][ConstDressUpScoreType.SCORE_YUE] = 0;
  78. }
  79. if (LeagueSkillDatas[skillCfg.type].IndexOf(skillIds[i]) < 0)
  80. {
  81. LeagueSkillDatas[skillCfg.type].Add(skillIds[i]);
  82. LeagueSkillScoreDatas[skillCfg.type][skillCfg.score] = LeagueSkillScoreDatas[skillCfg.type][skillCfg.score] + skillCfg.value;
  83. }
  84. }
  85. List<FightData> fightDatas = ArenaDataManager.Instance.DressupList;
  86. for (int i = 0; i < fightDatas.Count; i++)
  87. {
  88. fightDatas[i].leagueSkillScore = LeagueDataManager.Instance.GetAllSkillScore(fightDatas[i].scoreType);
  89. }
  90. break;
  91. }
  92. }
  93. }
  94. }