ActivityDay7DataManager.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using System;
  2. using ET;
  3. using Hutool;
  4. namespace GFGGame
  5. {
  6. public class ActivityDay7DataManager : SingletonBase<ActivityDay7DataManager>
  7. {
  8. public int GetActivityDay7Day()
  9. {
  10. //获取7日任务活动
  11. var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.Day7);
  12. return activityInfo == null ? 0 : TimeUtil.GetDay5(activityInfo.StartTime);
  13. }
  14. public int GetActivityDay7MaxPassDay()
  15. {
  16. return Math.Min(Activity7DaysTaskCfgArray.Instance.dataArray.Length,
  17. ActivityDay7DataManager.Instance.GetActivityDay7Day());
  18. }
  19. public long GetScore()
  20. {
  21. return ItemDataManager.GetItemNum(ConstItemID.ACTIVITY_DAY_7_SCORE);
  22. }
  23. //NumericType.Day7ActivityReward,true表示已获得?
  24. public bool GetActivityDay7RewardState(int id)
  25. {
  26. var day7ActivityReward = GameGlobal.myNumericComponent.GetAsInt(NumericType.Day7ActivityReward);
  27. return MathUtil.isBitSet(day7ActivityReward, id);
  28. }
  29. //检测7日活动活跃奖励是否可领
  30. public bool CheckActivityDay7RewardCanGet(int id)
  31. {
  32. var activity7DaysCfg = Activity7DaysCfgArray.Instance.GetCfg(id);
  33. var got = ActivityDay7DataManager.Instance.GetActivityDay7RewardState(id);
  34. if (got)
  35. {
  36. return false;
  37. }
  38. //判断积分是否够
  39. var score = ActivityDay7DataManager.Instance.GetScore();
  40. if (score < activity7DaysCfg.score)
  41. {
  42. return false;
  43. }
  44. return true;
  45. }
  46. //检查指定天数有没有任务奖励可领
  47. public bool CheckActivityDay7TaskRewrdCanGetByDay(int day)
  48. {
  49. //检查天数
  50. var currentDay = ActivityDay7DataManager.Instance.GetActivityDay7MaxPassDay();
  51. if (currentDay < day)
  52. {
  53. return false;
  54. }
  55. var activity7DaysTaskCfg = Activity7DaysTaskCfgArray.Instance.GetCfg(day);
  56. if(activity7DaysTaskCfg == null)
  57. {
  58. return false;
  59. }
  60. var taskIdArr = activity7DaysTaskCfg.taskIdArr;
  61. foreach(int taskId in taskIdArr)
  62. {
  63. if(TaskDataManager.Instance.GetTaskStateById(taskId) == ConstBonusStatus.CAN_GET)
  64. {
  65. return true;
  66. }
  67. }
  68. return false;
  69. }
  70. public bool CheckOpen()
  71. {
  72. var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.Day7);
  73. return activityInfo != null && activityInfo.StartTime <= TimeHelper.ServerNow() &&
  74. activityInfo.EndTime > TimeHelper.ServerNow();
  75. }
  76. public long GetEndTime()
  77. {
  78. var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.Day7);
  79. return activityInfo.EndTime;
  80. }
  81. }
  82. }