SkillDataManager.cs 4.7 KB

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