EnduringGiftBoxDataManager.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using ET;
  5. namespace GFGGame
  6. {
  7. public class EnduringGiftBoxDataManager : SingletonBase<EnduringGiftBoxDataManager>
  8. {
  9. //当天已经领取的返利物品Id
  10. private static HashSet<int> _dayRebateItemIds = new HashSet<int>();
  11. public HashSet<int> DayRebateItemIds => _dayRebateItemIds;
  12. //当天可以领取的列表物品Id,剩余可以领取的天数
  13. private static Dictionary<int, int> _dayAllRebateItemDic = new Dictionary<int, int>();
  14. public Dictionary<int, int> DayAllRebateItemDic => _dayAllRebateItemDic;
  15. public void InitData()
  16. {
  17. _dayRebateItemIds.Clear();
  18. _dayAllRebateItemDic.Clear();
  19. }
  20. public void AddDayRebateItemIds(int itemId)
  21. {
  22. _dayRebateItemIds.Add(itemId);
  23. }
  24. //领取返利,更新数据
  25. public void UpDayRebateInfo(int itemId)
  26. {
  27. _dayRebateItemIds.Add(itemId);
  28. if (!_dayAllRebateItemDic.TryGetValue(itemId, out var num)) return;
  29. if (num <= 0)
  30. {
  31. return;
  32. }
  33. _dayAllRebateItemDic[itemId] = num - 1;
  34. }
  35. public void UpDayAllRebateItemDic(int itemId, int day)
  36. {
  37. _dayAllRebateItemDic[itemId] = day;
  38. }
  39. public int GetItemRebateDay(int itemId)
  40. {
  41. return _dayAllRebateItemDic.TryGetValue(itemId, out var day) ? day : 0;
  42. }
  43. //当天是否需要领取该返利物品
  44. public bool DayIsRebateGiftBox(int itemId)
  45. {
  46. if (!_dayAllRebateItemDic.ContainsKey(itemId))
  47. {
  48. return false;
  49. }
  50. if (_dayRebateItemIds.Contains(itemId))
  51. {
  52. return false;
  53. }
  54. //需要领取
  55. return true;
  56. }
  57. }
  58. }