RedDotData.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  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. isEnable = false;
  40. switch (EnableId) //具体出现条件
  41. {
  42. case 0: //没有自己的红点逻辑根据下层红点来决定
  43. isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
  44. break;
  45. case 1:
  46. var _skillPowerupConfigs = ConfigComponent.Instance.GetAll<SkillPowerupConfig>();
  47. foreach (var _skillInfo in PlayerManager.Instance.GongFaControl.allSkill)
  48. {
  49. if (RedDotManager.Instance.isSkillUpgrade(_skillInfo))
  50. {
  51. isEnable = true;
  52. return;
  53. }
  54. }
  55. break;
  56. }
  57. break;
  58. case 5: //具体组
  59. isEnable = false;
  60. switch (EnableId) //具体出现条件
  61. {
  62. case 0: //没有自己的红点逻辑根据下层红点来决定
  63. isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
  64. break;
  65. case 1:
  66. int currentMiao =
  67. (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) /
  68. 1000);
  69. float allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
  70. if (PlayerManager.Instance.myHero.heroData.exp + allexp <
  71. PlayerManager.Instance.myHero.powerUpConfig.levelUpExp)
  72. {
  73. isEnable = false;
  74. return;
  75. }
  76. isEnable = true;
  77. break;
  78. }
  79. break;
  80. case 7: //具体组
  81. isEnable = false;
  82. switch (EnableId) //具体出现条件
  83. {
  84. case 0: //没有自己的红点逻辑根据下层红点来决定
  85. isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
  86. break;
  87. case 1:
  88. AccountFileInfo.SummonData summonData =
  89. PlayerManager.Instance.SummonManager.summonDataMap[1];
  90. OpenBoxConfig openBoxConfig = ConfigComponent.Instance.Get<OpenBoxConfig>(1);
  91. //有免费次数,并且让到时间了就免费抽
  92. if (summonData.tenFreeCount < openBoxConfig.oneConsumeFreePara_1[1] &&
  93. PlayerManager.Instance.serverTime >= summonData.nextTenFreeTime)
  94. {
  95. isEnable = true;
  96. return;
  97. }
  98. isEnable = false;
  99. break;
  100. }
  101. break;
  102. case 8: //具体组
  103. isEnable = false;
  104. switch (EnableId) //具体出现条件
  105. {
  106. case 0: //没有自己的红点逻辑根据下层红点来决定
  107. isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
  108. break;
  109. case 1:
  110. for (int i = 0; i < 4; i++)
  111. {
  112. FaBaoInfo faBaoInfo = PlayerManager.Instance.FaBaoControl.FightFaBao[i];
  113. if (RedDotManager.Instance.IsFabaoUpgrade1(i, faBaoInfo))
  114. {
  115. isEnable = true;
  116. return;
  117. }
  118. }
  119. break;
  120. }
  121. break;
  122. case 11: //具体组
  123. isEnable = false;
  124. switch (EnableId) //具体出现条件
  125. {
  126. case 0: //没有自己的红点逻辑根据下层红点来决定
  127. isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
  128. break;
  129. case 1:
  130. if (AccountFileInfo.Instance.playerData.QiankundaiLingQuAwardTime == 0)
  131. {
  132. isEnable = true;
  133. return;
  134. }
  135. int miao = (int)((PlayerManager.Instance.serverTime -
  136. AccountFileInfo.Instance.playerData.QiankundaiLingQuAwardTime) / 1000);
  137. if (miao >= 300)
  138. {
  139. isEnable = true;
  140. }
  141. break;
  142. }
  143. break;
  144. }
  145. }
  146. }
  147. }