userDataManager.ts 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import { _decorator, Component, Node, 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. const { ccclass, property } = _decorator;
  6. @ccclass('userDataManager')
  7. export class userDataManager {
  8. public static user_data:userData = null
  9. public static user_car_list:user_car_list = null
  10. public static user_free_ads_data:user_free_ads_data = null
  11. // 用户免广告
  12. public static getUserIsFreeAds():boolean {
  13. return userDataManager.user_free_ads_data.is_free
  14. }
  15. public static saveUserFreeAdsData() {
  16. let data = JSON.stringify(userDataManager.user_free_ads_data)
  17. // console.log('保存-----用户免费广告',data)
  18. sys.localStorage.setItem(config.USER_FREE_ADS_DATA, data)
  19. }
  20. public static clearUserFreeAdsData() {
  21. sys.localStorage.removeItem(config.USER_FREE_ADS_DATA)
  22. }
  23. public static getUserFreeAdsData():user_free_ads_data {
  24. if(userDataManager.user_free_ads_data!=null) {
  25. // console.log('获取--静态---用户免费广告',userDataManager.user_free_ads_data)
  26. return userDataManager.user_free_ads_data
  27. }
  28. let str = sys.localStorage.getItem(config.USER_FREE_ADS_DATA)
  29. let data = new user_free_ads_data
  30. if(str==undefined||str==""||str==null||str=='null'){
  31. data.look_video_count = 0
  32. data.start_date_time = 0
  33. data.seconds = 0
  34. data.is_free = false
  35. data.is_look_video_infinite_count_reward = false
  36. } else {
  37. data = JSON.parse(str)
  38. }
  39. userDataManager.user_free_ads_data = data
  40. // console.log('获取--解析---用户免费广告',userDataManager.user_free_ads_data)
  41. return data
  42. }
  43. public static addUserFreeAdsSeconds(add_seconds:number) {
  44. let free_ads_data = userDataManager.getUserFreeAdsData()
  45. if(free_ads_data.start_date_time<=0) {
  46. let cur_time = new Date().getTime()
  47. free_ads_data.start_date_time = cur_time
  48. }
  49. free_ads_data.start_date_time = free_ads_data.start_date_time + add_seconds * 1000
  50. userDataManager.saveUserFreeAdsData()
  51. }
  52. public static getUserFreeAdsSeconds() {
  53. let free_ads_data = userDataManager.getUserFreeAdsData()
  54. let old_time = free_ads_data.start_date_time
  55. // console.log('old_time=',old_time)
  56. if(old_time<=0) {
  57. free_ads_data.is_free = false
  58. free_ads_data.look_video_count = 0
  59. free_ads_data.is_look_video_infinite_count_reward = false
  60. return old_time
  61. }
  62. let free_seconds = free_ads_data.is_look_video_infinite_count_reward ? tools.sys_config.free_game_time : 0
  63. let cur_time = new Date()
  64. let time_diff = cur_time.getTime() - old_time
  65. let seconds = Math.floor(time_diff / 1000);
  66. let shengyu_seconds = free_seconds - seconds
  67. // console.log('上次时间距离当前秒:',seconds,'shengyu_seconds=',shengyu_seconds)
  68. if(shengyu_seconds<=0) {
  69. free_ads_data.is_free = false
  70. return 0
  71. }
  72. free_ads_data.is_free = true
  73. return shengyu_seconds
  74. }
  75. }