GameManager.ts 7.4 KB

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