GameManager.ts 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. import { _decorator, Component, Node, SpriteFrame, sys } from 'cc';
  2. import { config } from './config';
  3. import { settingData } from './data';
  4. import { http } from './http';
  5. import { imageCacheManager } from './manager/imageCacheManager';
  6. import { userDataManager } from './manager/userDataManager';
  7. import { SdkUtil } from './sdkUtil';
  8. import { uiManager } from './manager/uiManager';
  9. import { restart_view } from './ui/restart_view';
  10. const { ccclass, property } = _decorator;
  11. @ccclass('GameManager')
  12. export class GameManager extends Component {
  13. public static openId:string = 'asd'
  14. public static settingData:settingData = null
  15. public static getUserDefaultHomeCarSf():SpriteFrame {
  16. let sf = imageCacheManager.getHomeCarImageById(userDataManager.user_car_list.default_car_id)
  17. return sf
  18. }
  19. public static getUserDefaultRankCarSf():SpriteFrame {
  20. let sf = imageCacheManager.getRankCarImageById(userDataManager.user_car_list.default_car_id)
  21. return sf
  22. }
  23. public static checkPlayGame(parent_node:Node,cb) {
  24. if(userDataManager.getUserIsFreeAds()) {
  25. cb()
  26. return
  27. }
  28. if(userDataManager.isTodayCanFreePlayGame()) {
  29. userDataManager.addTodayPlayGameNumber()
  30. cb()
  31. return
  32. }
  33. uiManager.Instance().showUi(config.UI.ui_restart_view, parent_node, (node:Node)=>{
  34. node.getComponent(restart_view).initView(()=>{
  35. GameManager.showVideoAd(config.ADS_TYPE.GAME_RESTART, ()=>{
  36. cb()
  37. })
  38. },()=>{
  39. if(userDataManager.isTodayCanShare()) {
  40. userDataManager.addTodayShareNumber()
  41. cb()
  42. return
  43. }
  44. SdkUtil.shareGame('',(r)=>{
  45. if(r==true) {
  46. cb()
  47. }
  48. })
  49. })
  50. })
  51. }
  52. // 设置
  53. public static getSettingData():settingData {
  54. if(GameManager.settingData!=null) {
  55. return GameManager.settingData
  56. }
  57. let str = sys.localStorage.getItem(config.SETTING_DATA)
  58. if(str==undefined||str==""||str==null){
  59. GameManager.settingData = new settingData
  60. } else {
  61. let data:settingData = JSON.parse(str)
  62. GameManager.settingData = data
  63. }
  64. return GameManager.settingData;
  65. }
  66. public static saveSettingData(data:settingData) {
  67. sys.localStorage.setItem(config.SETTING_DATA, JSON.stringify(data));
  68. }
  69. public static vibrateShort() {
  70. if(GameManager.settingData.isOpenZhendong) {
  71. SdkUtil.vibrateShort()
  72. }
  73. }
  74. //请求广播
  75. public static requestGuangbo(cb=null) {
  76. http.get(config.STATIC_API.msg, (err,d)=>{
  77. if(!err){
  78. let nd = JSON.parse(d)
  79. if(nd.code === config.status.SUCCESS){
  80. // console.log("system_msg", nd.content)
  81. if(cb!=null){
  82. cb(nd.content)
  83. }
  84. }
  85. }
  86. })
  87. }
  88. //请求用户车列表
  89. public static requestUserCarList(cb=null) {
  90. http.post(config.API.user_car_list,null,(err,d)=>{
  91. if(!err){
  92. let nd = JSON.parse(d)
  93. if(nd.code === config.status.SUCCESS){
  94. // console.log("user_car_list", nd.content)
  95. if(cb!=null){
  96. cb(nd.content)
  97. }
  98. }
  99. }
  100. },'GET')
  101. }
  102. // 请求用户注册/设置地区 stype 1:注册 2:重新设置
  103. public static requestUserSetRegion(region_id:number,stype:number,cb) {
  104. let opt = {'region_id':region_id, 'stype':stype}
  105. http.post(config.API.user_set_region, opt, (err,d)=>{
  106. let nd = JSON.parse(d)
  107. if(nd.code === config.status.SUCCESS){
  108. if(cb!=null){
  109. cb(nd.content)
  110. }
  111. }
  112. })
  113. }
  114. // 请求我的排行 stype 0:全国 1:省 2:市
  115. public static requestMineRank(stype:number, cb) {
  116. let opt = {'stype': stype}
  117. http.post(config.API.user_ranking, opt, (err,d)=>{
  118. if(!err){
  119. let data = JSON.parse(d)
  120. if(data.code===config.status.SUCCESS){
  121. if(cb!=null) {
  122. cb(data.content)
  123. }
  124. }
  125. } else{
  126. console.log("user rank Data err",err)
  127. }
  128. })
  129. }
  130. // 请求排行列表
  131. public static requestRankList(region_id:number, cb) {
  132. http.get(config.STATIC_API.rankings(region_id),(err,d)=>{
  133. if(!err){
  134. let data = JSON.parse(d)
  135. if(data.code===config.status.SUCCESS){
  136. // console.log('data=',data.content)
  137. if(cb!=null) {
  138. cb(data.content)
  139. }
  140. }
  141. } else{
  142. console.log("rankList err",err)
  143. }
  144. })
  145. }
  146. // 请求tt侧边栏用户奖励
  147. public static requestTTSidebarUserReward(status=config.USER_TT_SIDEBAR_REWARD.GET, success_cb, fail_cb=null) {
  148. if(sys.platform != sys.Platform.BYTEDANCE_MINI_GAME) {
  149. success_cb(null)
  150. return
  151. }
  152. if(status != config.USER_TT_SIDEBAR_REWARD.GET) {
  153. uiManager.Instance().showLoading()
  154. }
  155. http.post(config.API.unlock_number_status,{'stype':status}, (err,data)=>{
  156. if(status!= config.USER_TT_SIDEBAR_REWARD.GET) {
  157. uiManager.Instance().hideLoading()
  158. }
  159. if(!err) {
  160. let _data = JSON.parse(data)
  161. if(_data.code==config.status.SUCCESS) {
  162. if(success_cb) {
  163. success_cb(_data.content)
  164. }
  165. } else {
  166. if(fail_cb) {
  167. fail_cb()
  168. }
  169. }
  170. } else {
  171. if(fail_cb) {
  172. fail_cb()
  173. }
  174. }
  175. })
  176. }
  177. // 请求同步数据
  178. public static requestSyncNumber(opt,success_cb=null,fail_cb=null) {
  179. http.post(config.API.sync_free_number, opt, (err,data)=>{
  180. if(!err) {
  181. let _data = JSON.parse(data)
  182. if(_data.code==config.status.SUCCESS) {
  183. if(success_cb) {
  184. success_cb(_data.content)
  185. }
  186. } else {
  187. if(fail_cb) {
  188. fail_cb(_data.code)
  189. }
  190. }
  191. } else {
  192. if(fail_cb) {
  193. fail_cb(err)
  194. }
  195. }
  196. })
  197. }
  198. // 显示视频广告
  199. public static showVideoAd(ads_type=config.ADS_TYPE.UNKNOWN, success_cb, err_cb=null) {
  200. let ad_id = SdkUtil.getAdId(ads_type)
  201. SdkUtil.showVideoAd(ad_id,(res)=>{
  202. if(res.isEnded) {
  203. success_cb(res)
  204. } else {
  205. err_cb(res)
  206. }
  207. })
  208. }
  209. }