SkillDataManager.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using System.Collections.Generic;
  2. using cfg.GfgCfg;
  3. using UnityEngine;
  4. namespace GFGGame
  5. {
  6. public class SkillDataManager : SingletonBase<SkillDataManager>
  7. {
  8. public Dictionary<int, Dictionary<int, int>> CardSkillData = new Dictionary<int, Dictionary<int, int>>();
  9. public Dictionary<int, List<int>> LeagueSkillDatas = new Dictionary<int, List<int>>(); //雅集技能
  10. public Dictionary<int, Dictionary<int, int>>
  11. LeagueSkillScoreDatas = new Dictionary<int, Dictionary<int, int>>(); //雅集技能增加属性
  12. public Dictionary<int, int> LeagueSkillLvDatas = new Dictionary<int, int>(); //雅集技能等级存储
  13. public void Clear()
  14. {
  15. CardSkillData.Clear();
  16. LeagueSkillDatas.Clear();
  17. LeagueSkillScoreDatas.Clear();
  18. }
  19. /*********************************************************词牌技能****************************************************/
  20. public void InitCardData(int cardId, List<int> skillIds, List<int> skillLvs)
  21. {
  22. if (!this.CardSkillData.ContainsKey(cardId))
  23. {
  24. this.CardSkillData[cardId] = new Dictionary<int, int>();
  25. }
  26. for (int i = 0; i < skillIds.Count; i++)
  27. {
  28. UpdateCardSkill(cardId, skillIds[i], skillLvs[i]);
  29. }
  30. }
  31. public void UpdateCardSkill(int cardId, int skillId, int skillLv)
  32. {
  33. this.CardSkillData[cardId][skillId] = skillLv;
  34. this.LeagueSkillLvDatas[skillId] = skillLv;
  35. }
  36. public Dictionary<int, int> GetLeagueSkillLvDatas()
  37. {
  38. return this.LeagueSkillLvDatas;
  39. }
  40. public int GetCardSkillLv(int cardId, int skillId)
  41. {
  42. int lv = 1;
  43. if (this.CardSkillData.ContainsKey(cardId) && this.CardSkillData[cardId].ContainsKey(skillId))
  44. {
  45. lv = this.CardSkillData[cardId][skillId];
  46. }
  47. return lv;
  48. }
  49. public List<int> GetCardSkillLvs(int cardId)
  50. {
  51. List<int> skillLvs = new List<int>();
  52. List<PassivitySkillCfg> skillCfgs = CommonDataManager.Tables.TblPassivitySkillCfg.GetGroup1ByCardId(cardId);
  53. if (skillCfgs == null)
  54. {
  55. return skillLvs;
  56. }
  57. for (int i = 0; i < skillCfgs.Count; i++)
  58. {
  59. skillLvs.Add(GetCardSkillLv(cardId, skillCfgs[i].SkillId));
  60. }
  61. return skillLvs;
  62. }
  63. /*************************************************************************************************************/
  64. public void UpdateSkillDatas(int skillType, List<int> skillIds)
  65. {
  66. switch (skillType)
  67. {
  68. case SkillType.LeagueSkill:
  69. for (int i = 0; i < skillIds.Count; i++)
  70. {
  71. LeagueSkillCfg skillCfg = CommonDataManager.Tables.TblLeagueSkillCfg.GetOrDefault(skillIds[i]);
  72. if (skillIds[i] == 105)
  73. {
  74. LogUtil.LogEditor("");
  75. }
  76. if (!LeagueSkillDatas.ContainsKey(skillCfg.Type))
  77. {
  78. LeagueSkillDatas.Add(skillCfg.Type, new List<int>());
  79. LeagueSkillScoreDatas.Add(skillCfg.Type, new Dictionary<int, int>());
  80. LeagueSkillScoreDatas[skillCfg.Type][ConstDressUpScoreType.SCORE_FENG] = 0;
  81. LeagueSkillScoreDatas[skillCfg.Type][ConstDressUpScoreType.SCORE_HUA] = 0;
  82. LeagueSkillScoreDatas[skillCfg.Type][ConstDressUpScoreType.SCORE_XUE] = 0;
  83. LeagueSkillScoreDatas[skillCfg.Type][ConstDressUpScoreType.SCORE_YUE] = 0;
  84. }
  85. if (LeagueSkillDatas[skillCfg.Type].IndexOf(skillIds[i]) < 0)
  86. {
  87. LeagueSkillDatas[skillCfg.Type].Add(skillIds[i]);
  88. LeagueSkillScoreDatas[skillCfg.Type][skillCfg.Score] =
  89. LeagueSkillScoreDatas[skillCfg.Type][skillCfg.Score] + skillCfg.Value;
  90. }
  91. }
  92. List<FightData> fightDatas = ArenaDataManager.Instance.DressupList;
  93. for (int i = 0; i < fightDatas.Count; i++)
  94. {
  95. fightDatas[i].leagueSkillScore =
  96. LeagueDataManager.Instance.GetAllSkillScore(fightDatas[i].scoreType);
  97. }
  98. break;
  99. }
  100. }
  101. }
  102. }