RedDotData.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. using System;
  2. using System.Collections.Generic;
  3. using Excel2Json;
  4. using Fort23.Core;
  5. using Fort23.UTool;
  6. using GameLogic.Hero;
  7. using Utility;
  8. namespace Fort23.Mono
  9. {
  10. public class RedDotData
  11. {
  12. /// <summary>
  13. /// 具体Id
  14. /// </summary>
  15. public int Id;
  16. /// <summary>
  17. /// 红点组ID
  18. /// </summary>
  19. public int GroupId;
  20. /// <summary>
  21. /// 当前红点所属于层级 1级为最上层
  22. /// </summary>
  23. public int Layer;
  24. /// <summary>
  25. /// 是否已经激活
  26. /// </summary>
  27. private bool _isEnable;
  28. public bool isEnable
  29. {
  30. get { return _isEnable; }
  31. set { _isEnable = value; }
  32. }
  33. public int EnableId;
  34. public void Update()
  35. {
  36. switch (GroupId)
  37. {
  38. case 1:
  39. switch (EnableId) //具体出现条件
  40. {
  41. case 0: //没有自己的红点逻辑根据下层红点来决定
  42. isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
  43. break;
  44. case 1:
  45. var _skillPowerupConfigs = ConfigComponent.Instance.GetAll<SkillPowerupConfig>();
  46. foreach (var _skillInfo in PlayerManager.Instance.GongFaControl.allSkill)
  47. {
  48. if (_skillInfo.SkillData.level >= _skillPowerupConfigs.Length)
  49. {
  50. isEnable = false;
  51. return;
  52. }
  53. if (PlayerManager.Instance.myHero.level.Value <
  54. _skillInfo.SkillPowerupConfig.PlayerLevelLimit)
  55. {
  56. isEnable = false;
  57. return;
  58. }
  59. for (var i = 0; i < _skillInfo.SkillPowerupConfig.LevelupItem.Length; i++)
  60. {
  61. if (!PlayerManager.Instance.BagController.IsEnough(
  62. _skillInfo.SkillPowerupConfig.LevelupItem[i],
  63. _skillInfo.SkillPowerupConfig.LevelupItemNum[i]))
  64. {
  65. isEnable = false;
  66. return;
  67. }
  68. }
  69. }
  70. isEnable = true;
  71. break;
  72. }
  73. break;
  74. case 5: //具体组
  75. switch (EnableId) //具体出现条件
  76. {
  77. case 0: //没有自己的红点逻辑根据下层红点来决定
  78. isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
  79. break;
  80. case 1:
  81. int currentMiao =
  82. (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) /
  83. 1000);
  84. float allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
  85. if (PlayerManager.Instance.myHero.heroData.exp + allexp <
  86. PlayerManager.Instance.myHero.powerUpConfig.levelUpExp)
  87. {
  88. isEnable = false;
  89. return;
  90. }
  91. isEnable = true;
  92. break;
  93. }
  94. break;
  95. case 7: //具体组
  96. switch (EnableId) //具体出现条件
  97. {
  98. case 0: //没有自己的红点逻辑根据下层红点来决定
  99. isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
  100. break;
  101. case 1:
  102. AccountFileInfo.SummonData summonData =
  103. PlayerManager.Instance.SummonManager.summonDataMap[1];
  104. OpenBoxConfig openBoxConfig = ConfigComponent.Instance.Get<OpenBoxConfig>(1);
  105. //有免费次数,并且让到时间了就免费抽
  106. if (summonData.tenFreeCount < openBoxConfig.oneConsumeFreePara_1[1] &&
  107. PlayerManager.Instance.serverTime >= summonData.nextTenFreeTime)
  108. {
  109. isEnable = true;
  110. return;
  111. }
  112. isEnable = false;
  113. break;
  114. }
  115. break;
  116. case 8: //具体组
  117. switch (EnableId) //具体出现条件
  118. {
  119. case 0: //没有自己的红点逻辑根据下层红点来决定
  120. isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
  121. break;
  122. case 1:
  123. for (int i = 0; i < 4; i++)
  124. {
  125. FaBaoInfo faBaoInfo = PlayerManager.Instance.FaBaoControl.FightFaBao[i];
  126. if (RedDotManager.Instance.IsFabaoUpgrade1(i, faBaoInfo))
  127. {
  128. isEnable = true;
  129. return;
  130. }
  131. }
  132. break;
  133. }
  134. break;
  135. }
  136. }
  137. }
  138. }