SkillDataManager.cs 4.7 KB

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