userDataManager.ts 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import { _decorator, sys } from 'cc';
  2. import { user_car_list, user_free_ads_data, userData } from '../data';
  3. import { config } from '../config';
  4. import { tools } from '../tools';
  5. import { GameManager } from '../GameManager';
  6. import { dataManager } from './dataManager';
  7. const { ccclass, property } = _decorator;
  8. @ccclass('userDataManager')
  9. export class userDataManager {
  10. public static user_data:userData = null
  11. public static user_car_list:user_car_list = null
  12. public static free_ads_data:user_free_ads_data = null
  13. // 今天分享相关
  14. public static isTodayCanShare():boolean {
  15. if(userDataManager.user_data.share_number>=dataManager.getTodayShareFreeTotalCount()) {
  16. return false
  17. }
  18. return true
  19. }
  20. public static addTodayShareNumber() {
  21. if(userDataManager.user_data.share_number>=dataManager.getTodayShareFreeTotalCount()) {
  22. return
  23. }
  24. userDataManager.user_data.share_number+=1
  25. console.log('同步接口 今天分享数:',userDataManager.user_data.share_number)
  26. let opt = {'share_number':userDataManager.user_data.share_number}
  27. GameManager.requestSyncNumber(opt)
  28. }
  29. // 每天免费玩游戏
  30. public static isTodayCanFreePlayGame():boolean {
  31. if(userDataManager.user_data.free_game_number>=dataManager.getTodayGameFreeTotalCount()) {
  32. return false
  33. }
  34. return true
  35. }
  36. public static addTodayPlayGameNumber() {
  37. if(userDataManager.user_data.free_game_number>=dataManager.getTodayGameFreeTotalCount()) {
  38. return
  39. }
  40. userDataManager.user_data.free_game_number+=1
  41. // console.log('同步接口 今天玩游戏数:',userDataManager.user_data.free_game_number)
  42. let opt = {'free_game_number':userDataManager.user_data.free_game_number}
  43. GameManager.requestSyncNumber(opt)
  44. }
  45. // 用户免广告相关
  46. public static getUserIsFreeAds():boolean {
  47. return userDataManager.free_ads_data.is_free
  48. }
  49. public static saveUserFreeAdsData() {
  50. let data = JSON.stringify(userDataManager.free_ads_data)
  51. // console.log('保存-----用户免费广告',data)
  52. sys.localStorage.setItem(config.LOCAL_STORAGE.USER_FREE_ADS_DATA, data)
  53. }
  54. public static clearUserFreeAdsData() {
  55. sys.localStorage.removeItem(config.LOCAL_STORAGE.USER_FREE_ADS_DATA)
  56. }
  57. public static getUserFreeAdsData():user_free_ads_data {
  58. if(userDataManager.free_ads_data!=null) {
  59. // console.log('获取--静态---用户免费广告',userDataManager.free_ads_data)
  60. return userDataManager.free_ads_data
  61. }
  62. let str = sys.localStorage.getItem(config.LOCAL_STORAGE.USER_FREE_ADS_DATA)
  63. // console.log('str=',str)
  64. if(str==undefined||str==""||str==null||str=='null'){
  65. userDataManager.free_ads_data = new user_free_ads_data
  66. } else {
  67. let nd:user_free_ads_data = JSON.parse(str)
  68. userDataManager.free_ads_data = nd
  69. }
  70. // console.log('获取--解析---用户免费广告',userDataManager.free_ads_data)
  71. return userDataManager.free_ads_data
  72. }
  73. public static addUserFreeAdsSeconds(add_seconds:number) {
  74. let free_ads_data = userDataManager.getUserFreeAdsData()
  75. if(free_ads_data.start_date_time<=0) {
  76. let cur_time = new Date().getTime()
  77. free_ads_data.start_date_time = cur_time
  78. }
  79. free_ads_data.start_date_time = free_ads_data.start_date_time + add_seconds * 1000
  80. userDataManager.saveUserFreeAdsData()
  81. }
  82. public static getUserFreeAdsSeconds() {
  83. let free_ads_data = userDataManager.getUserFreeAdsData()
  84. let old_time = free_ads_data.start_date_time
  85. // console.log('old_time=',old_time)
  86. if(old_time<=0) {
  87. free_ads_data.is_free = false
  88. free_ads_data.is_look_video_infinite_count_reward = false
  89. return old_time
  90. }
  91. let free_seconds = free_ads_data.is_look_video_infinite_count_reward ? tools.sys_config.free_game_time : 0
  92. let cur_time = new Date()
  93. let time_diff = cur_time.getTime() - old_time
  94. let seconds = Math.floor(time_diff / 1000);
  95. let shengyu_seconds = free_seconds - seconds
  96. // console.log('上次时间距离当前秒:',seconds,'shengyu_seconds=',shengyu_seconds)
  97. if(shengyu_seconds<=0) {
  98. free_ads_data.is_free = false
  99. return 0
  100. }
  101. free_ads_data.is_free = true
  102. return shengyu_seconds
  103. }
  104. }