SkillDataManager.cs 4.5 KB

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