gameManager.ts 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681
  1. import { _decorator, assetManager, AudioClip, Component, instantiate, Label, Node, Prefab, resources, SpriteFrame, sys } from 'cc';
  2. import { ads_config, server_han_zi_zhao_bu_tong_data, server_mei_nv_zhao_xi_jie_data, server_play_info, server_play_list_data, server_shuang_tu_zhao_bu_tong_data, server_sys_info, server_user_info, unlock_levels, unlock_levels_item } from './data/server_play_list_data';
  3. import { config } from './config';
  4. import { ClientEvent } from './framework/clientEvent';
  5. import { http } from './http/http';
  6. import { StorageManager } from './framework/storageManager';
  7. import { tools } from './tools';
  8. import { AudioManager } from './framework/audioManager';
  9. import { Util } from './framework/util';
  10. import { wait_view } from './wait_view';
  11. const { ccclass, property } = _decorator;
  12. @ccclass('gameManager')
  13. export class gameManager extends Component {
  14. public static g_server_sys_info:server_sys_info = new server_sys_info();
  15. public static g_ads_config:ads_config = new ads_config();
  16. public static g_server_play_list_data:server_play_list_data = new server_play_list_data();
  17. // public static g_server_shuang_tu_zhao_bu_tong_data:server_shuang_tu_zhao_bu_tong_data = new server_shuang_tu_zhao_bu_tong_data();
  18. // public static g_server_han_zi_zhao_bu_tong_data:server_han_zi_zhao_bu_tong_data = new server_han_zi_zhao_bu_tong_data();
  19. // public static g_server_mei_nv_zhao_xi_jie_data:server_mei_nv_zhao_xi_jie_data = new server_mei_nv_zhao_xi_jie_data();
  20. private static uiLayer:Node = null;
  21. private static topLayer:Node = null;
  22. private static waitLayer:Node = null;
  23. public static userInfo:server_user_info = new server_user_info();
  24. public static uiViewList:Map<string,Node> = new Map();
  25. public static topViewList:Map<string,Node> = new Map();
  26. public static user_level_data:unlock_levels = new unlock_levels();
  27. public static PreloadingLevelImgNumber:number = 0;//执行预加载的数量
  28. public static cache:Map<string,Map<string,SpriteFrame>> = new Map();
  29. public static mp3_cache:Map<string,AudioClip> = new Map();
  30. public static test_user_list:string[] = [];
  31. public static _instance: gameManager;
  32. public static isFinishLoad:boolean = false;
  33. public static get instance () {
  34. if (this._instance) {
  35. return this._instance;
  36. }
  37. this._instance = new gameManager();
  38. return this._instance;
  39. }
  40. start() {
  41. }
  42. public static isTestUser(){
  43. for (let index = 0; index < gameManager.test_user_list.length; index++) {
  44. const element = gameManager.test_user_list[index];
  45. if(parseInt(element)==gameManager.userInfo.id){
  46. return true;
  47. }
  48. }
  49. return false;
  50. }
  51. public static init_test_user_list(list:string[]){
  52. gameManager.test_user_list = list;
  53. }
  54. public static init_unlock_levels(){
  55. for (let index = 0; index < gameManager.g_server_play_list_data.list.length; index++) {
  56. const element = gameManager.g_server_play_list_data.list[index];
  57. let item:unlock_levels_item = new unlock_levels_item;
  58. item.id = element.id;
  59. item.level = 1;
  60. if(gameManager.user_level_data.list[element.id]){
  61. }else{
  62. if(item.id===config.PLAY_TYPE.YI_QI_ZHAO_CHA){
  63. item.is_lock_game_play = 1;
  64. }else{
  65. item.is_lock_game_play = 0;
  66. }
  67. gameManager.user_level_data.list[element.id] = item;
  68. }
  69. }
  70. }
  71. public static isFinishAllLevel(categoryid:number):boolean{
  72. let item = gameManager.get_cur_level_by_categoryid(categoryid)
  73. if(item.level===gameManager.get_play_level_number(categoryid)){
  74. return true;
  75. }
  76. return false;
  77. }
  78. public static get_play_level_number(categoryid:number):number{
  79. let list = gameManager.g_server_play_list_data.list;
  80. let number = 0;
  81. for (let index = 0; index < list.length; index++) {
  82. if(categoryid===list[index].id){
  83. number = list[index].barrier_number;
  84. break;
  85. }
  86. }
  87. return number;
  88. }
  89. public static get_unlock_levels():string{
  90. if(gameManager.user_level_data.list.length>0){
  91. return JSON.stringify(gameManager.user_level_data.list);
  92. }
  93. return "";
  94. }
  95. public static set_unlock_levels(unlock_levels:string){
  96. gameManager.user_level_data.list = JSON.parse(unlock_levels);
  97. }
  98. public static set_unlock_levels_data(item:unlock_levels_item){
  99. gameManager.user_level_data.list[item.id] = item;
  100. }
  101. public static setWaitLayer(node:Node){
  102. gameManager.waitLayer = node;
  103. }
  104. public static sync_data(call_back,sync_data_type:number = 0){
  105. let form_Data = null;
  106. if(sys.platform===sys.Platform.BYTEDANCE_MINI_GAME){
  107. if(sync_data_type===0){
  108. form_Data = {"coin": gameManager.userInfo.coin+"","unlock_levels": gameManager.get_unlock_levels()}
  109. }else if(sync_data_type===1){
  110. form_Data = {"coin": gameManager.userInfo.coin+""}
  111. }else if(sync_data_type===2){
  112. form_Data = {"unlock_levels": gameManager.get_unlock_levels()}
  113. }
  114. }else{
  115. form_Data = new FormData();
  116. if(sync_data_type===0){
  117. form_Data.append("coin", gameManager.userInfo.coin+"");
  118. form_Data.append("unlock_levels", gameManager.get_unlock_levels());
  119. }else if(sync_data_type===1){
  120. form_Data.append("coin", gameManager.userInfo.coin+"");
  121. }else if(sync_data_type===2){
  122. form_Data.append("unlock_levels", gameManager.get_unlock_levels());
  123. }
  124. }
  125. form_Data.forEach((v,k)=>{
  126. console.log("sync_data",v,k)
  127. })
  128. http.post(config.api_url.sync_data,form_Data,(_err,c_data)=>{
  129. if(!_err){
  130. let c__data = JSON.parse(c_data);
  131. console.log("c__data",form_Data)
  132. if(c__data.code==config.MSG_CODE.SUCCESS){
  133. // ClientEvent.dispatchEvent(config.EVENT_MSG.ON_CHANGE_COIN_NUMBER);
  134. call_back(true)
  135. }
  136. }else{
  137. if(_err==-1){
  138. call_back(false)
  139. }
  140. }
  141. })
  142. }
  143. public static get_user_coin():number{
  144. return gameManager.userInfo.coin;
  145. }
  146. public static add_coin(coin:number){
  147. gameManager.userInfo.coin+=coin;
  148. gameManager.sync_data((is_sync)=>{},config.sync_data_type.COIN)
  149. }
  150. public static sub_coin(coin:number){
  151. gameManager.userInfo.coin-=coin;
  152. if( gameManager.userInfo.coin<0){
  153. gameManager.userInfo.coin = 0;
  154. }
  155. gameManager.sync_data((is_sync)=>{},config.sync_data_type.COIN)
  156. }
  157. public static showLoading(){
  158. gameManager.hideLoading();
  159. gameManager.addTopView(config.PREFAB_PATH.view_loading,null);
  160. }
  161. public static hideLoading(){
  162. if(gameManager.topViewList.get(config.PREFAB_PATH.view_loading)){
  163. gameManager.topViewList.get(config.PREFAB_PATH.view_loading).removeFromParent();
  164. gameManager.topViewList.set(config.PREFAB_PATH.view_loading,null);
  165. }
  166. }
  167. public static get_cur_level_by_categoryid(categoryid:number):unlock_levels_item{
  168. if(gameManager.user_level_data.list.length<=0){
  169. return null;
  170. }
  171. return gameManager.user_level_data.list[categoryid];
  172. // switch (categoryid) {
  173. // case config.PLAY_TYPE.YI_QI_ZHAO_CHA:
  174. // return gameManager.user_level_data.list[config.PLAY_TYPE.YI_QI_ZHAO_CHA];
  175. // case config.PLAY_TYPE.HAN_ZI_ZHAO_BU_TONG:
  176. // return gameManager.user_level_data.list[config.PLAY_TYPE.HAN_ZI_ZHAO_BU_TONG];
  177. // case config.PLAY_TYPE.MEI_NV_ZHAO_XI_JIE:
  178. // return gameManager.user_level_data.list[config.PLAY_TYPE.MEI_NV_ZHAO_XI_JIE];
  179. // }
  180. }
  181. public static next_level(categoryid:number,call_back):boolean{
  182. let item = gameManager.get_cur_level_by_categoryid(categoryid);
  183. let play_item = gameManager.get_play_list_item_by_categoryid(categoryid);
  184. if(item.level<=play_item.barrier_number){
  185. item.level+=1;
  186. gameManager.sync_data((is_sync)=>{
  187. if(is_sync){
  188. gameManager.set_unlock_levels_data(item);
  189. }else{
  190. item.level-=1;
  191. }
  192. call_back(is_sync)
  193. },config.sync_data_type.LEVELS)
  194. return true;
  195. }
  196. return false;
  197. }
  198. public static setUiLayer(node:Node){
  199. gameManager.uiLayer = node;
  200. }
  201. public static getUiLayer(){
  202. return gameManager.uiLayer;
  203. }
  204. public static getTopLayer():Node{
  205. return gameManager.topLayer;
  206. }
  207. public static setTopLayer(node:Node){
  208. gameManager.topLayer = node;
  209. }
  210. public static addUiView(parent_path:string,call_back){
  211. if(gameManager.uiLayer==null){
  212. console.log("gameManager.uiLayer -- null!");
  213. return;
  214. }
  215. gameManager.showWaitView();
  216. resources.load(parent_path, Prefab, (err, prefab) => {
  217. if(err){
  218. console.log("addUiView -- err::",err);
  219. return;
  220. }
  221. let newNode:Node = instantiate(prefab);
  222. newNode.parent = gameManager.uiLayer;
  223. gameManager.uiViewList.set(parent_path,newNode);
  224. gameManager.hideWaitView();
  225. if(call_back!=null){
  226. call_back(newNode);
  227. }
  228. });
  229. }
  230. public static addTopView(parent_path:string,call_back){
  231. if(gameManager.topLayer==null){
  232. console.log("gameManager.topLayer -- null!");
  233. return;
  234. }
  235. gameManager.showWaitView();
  236. resources.load(parent_path, Prefab, (err, prefab) => {
  237. if(err){
  238. console.log("addTopView -- err::",err);
  239. return;
  240. }
  241. let newNode:Node = instantiate(prefab);
  242. gameManager.topViewList.set(parent_path,newNode);
  243. newNode.parent = gameManager.topLayer;
  244. gameManager.hideWaitView();
  245. if(call_back!=null){
  246. call_back(newNode);
  247. }
  248. });
  249. }
  250. public static showWaitView(opacity:number = 0,text:string=""){
  251. gameManager.waitLayer.active = true;
  252. gameManager.waitLayer.getComponent(wait_view).showView(opacity,text)
  253. }
  254. public static hideWaitView(){
  255. gameManager.waitLayer.active = false;
  256. }
  257. public static set_server_user_data(data){
  258. gameManager.userInfo = data;
  259. if(gameManager.userInfo.unlock_levels!=""){
  260. gameManager.set_unlock_levels(gameManager.userInfo.unlock_levels);
  261. }
  262. console.log("set_server_user_data::",data);
  263. }
  264. public static set_server_play_list_data(data:server_play_info){
  265. gameManager.g_server_play_list_data.list = data.wf_list;
  266. gameManager.g_server_sys_info = data.sys_info;
  267. gameManager.g_ads_config = data.ads_config;
  268. ClientEvent.dispatchEvent(config.EVENT_MSG.ON_INIT_GAME_LIST);
  269. console.log("set_server_play_list_data::",data);
  270. }
  271. public static get_play_list_item_by_categoryid(categoryid:number){
  272. for (let index = 0; index < gameManager.g_server_play_list_data.list.length; index++) {
  273. const element = gameManager.g_server_play_list_data.list[index];
  274. if(element.id===categoryid){
  275. return element;
  276. }
  277. }
  278. return null;
  279. }
  280. public static PreloadingLevelImg(finish_call_back){
  281. if(gameManager.g_server_play_list_data.list.length<=0){
  282. return
  283. }
  284. if(gameManager.PreloadingLevelImgNumber<=0){
  285. let count = 0;
  286. let call_back = ()=>{
  287. count++;
  288. if(count>=gameManager.PreloadingLevelImgNumber){
  289. gameManager.PreloadingLevelImgNumber = 0;
  290. finish_call_back()
  291. }
  292. }
  293. for (let index = 0; index < 3; index++) {
  294. const element = gameManager.g_server_play_list_data.list[index];
  295. let item = gameManager.get_cur_level_by_categoryid(element.id);
  296. if((item.level+1)<=element.barrier_number){
  297. let key = `${element.id}_${item.level+1}`;
  298. // let str = StorageManager.instance.getGlobalData(key);
  299. if(!gameManager.cache.get(`${item.level+1}_${element.id}`)){
  300. gameManager.PreloadingLevelImgNumber++;
  301. gameManager.loadLevelImg(element.id,item.level+1,call_back)
  302. }
  303. }
  304. }
  305. }
  306. }
  307. public static loadLevelImg(category_id,level,call_back){
  308. let key = `${category_id}_${level}`;
  309. let list:Map<string,SpriteFrame> = new Map()
  310. http.get(config.static_url.levels_info(category_id,level),(err,data)=>{
  311. if(!err){
  312. let _data = JSON.parse(data)
  313. if(_data.code===config.MSG_CODE.SUCCESS){
  314. let data = _data.content
  315. switch(category_id){
  316. case config.PLAY_TYPE.YI_QI_ZHAO_CHA:
  317. let img_count = 0;
  318. let img_call_back = ()=>{
  319. if(img_count>=2){
  320. console.log("key",key)
  321. StorageManager.instance.setGlobalData(key,"1")
  322. gameManager.cache.set(`${level}_${category_id}`,list)
  323. call_back();
  324. }
  325. }
  326. tools.loadRemoteImg(data.img1,(sf:SpriteFrame)=>{
  327. sf.addRef();
  328. list.set(data.img1,sf);
  329. img_count++;
  330. img_call_back();
  331. })
  332. tools.loadRemoteImg(data.img2,(sf)=>{
  333. sf.addRef();
  334. list.set(data.img2,sf);
  335. img_count++;
  336. img_call_back();
  337. })
  338. break;
  339. case config.PLAY_TYPE.HAN_ZI_ZHAO_BU_TONG:
  340. let img_count_font = 0;
  341. let img_call_back_font = ()=>{
  342. if(img_count_font>=3){
  343. console.log("key",key)
  344. gameManager.cache.set(`${level}_${category_id}`,list)
  345. StorageManager.instance.setGlobalData(key,"1")
  346. call_back();
  347. }
  348. }
  349. tools.loadRemoteImg(data.default_img,(sf)=>{
  350. sf.addRef();
  351. list.set(data.default_img,sf);
  352. img_count_font++;
  353. img_call_back_font();
  354. })
  355. tools.loadRemoteImg(data.find_img,(sf)=>{
  356. sf.addRef();
  357. list.set(data.find_img,sf);
  358. img_count_font++;
  359. img_call_back_font();
  360. })
  361. tools.loadRemoteImg(data.d_img,(sf)=>{
  362. sf.addRef();
  363. list.set(data.d_img,sf);
  364. img_count_font++;
  365. img_call_back_font();
  366. })
  367. break;
  368. case config.PLAY_TYPE.MEI_NV_ZHAO_XI_JIE:
  369. let img_count_component = 0;
  370. let img_call_back_component = ()=>{
  371. if(img_count_component>=data.component.length+1){
  372. console.log("key",key)
  373. gameManager.cache.set(`${level}_${category_id}`,list)
  374. StorageManager.instance.setGlobalData(key,"1")
  375. call_back();
  376. }
  377. }
  378. tools.loadRemoteImg(data.img,(sf)=>{
  379. sf.addRef();
  380. list.set(data.img,sf);
  381. img_count_component++;
  382. img_call_back_component();
  383. })
  384. for (let index = 0; index < data.component.length; index++) {
  385. const element = data.component[index];
  386. tools.loadRemoteImg(element.img,(sf,id)=>{
  387. sf.addRef();
  388. list.set(element.img,sf);
  389. img_count_component++;
  390. img_call_back_component();
  391. },element.id);
  392. }
  393. break;
  394. }
  395. }
  396. }
  397. })
  398. }
  399. //播放获取金币
  400. public static playAddCoinSound( loop:boolean = false){
  401. let path = gameManager.g_server_sys_info.sys_gain_coin_music;
  402. AudioManager.instance.playSound(path,loop)
  403. }
  404. //通用的关闭按钮点击音效
  405. public static playCloseBtnSound( loop:boolean = false){
  406. let path = gameManager.g_server_sys_info.sys_click_button_music;
  407. AudioManager.instance.playSound(path,loop)
  408. }
  409. //通用的按钮点击音效
  410. public static playBtnSound( loop:boolean = false){
  411. let path = gameManager.g_server_sys_info.sys_close_button_music;
  412. AudioManager.instance.playSound(path,loop)
  413. }
  414. //每个玩法的胜利音效
  415. public static playWinSoundByCategoryId(id:number, loop:boolean = false){
  416. let data = gameManager.get_play_list_item_by_categoryid(id)
  417. console.log("data.wf_fail_music",data.wf_fail_music)
  418. if(data.wf_victory_music!=null&&data.wf_victory_music!=""&&data.wf_victory_music!=undefined){
  419. let paht = data.wf_victory_music;
  420. AudioManager.instance.playSound(paht,loop)
  421. }
  422. }
  423. //每个玩法的失败音效
  424. public static playFailSoundByCategoryId(id:number, loop:boolean = false){
  425. let data = gameManager.get_play_list_item_by_categoryid(id);
  426. if(data.wf_fail_music!=null&&data.wf_fail_music!=""){
  427. let paht = data.wf_fail_music;
  428. AudioManager.instance.playSound(paht,loop)
  429. }
  430. }
  431. //每个玩法的正确音效
  432. public static playRightSoundByCategoryId(id:number, loop:boolean = false){
  433. let paht = gameManager.get_play_list_item_by_categoryid(id).wf_right_click_music;
  434. AudioManager.instance.playSound(paht,loop)
  435. }
  436. //每个玩法的错误音效
  437. public static playErrSoundByCategoryId(id:number, loop:boolean = false){
  438. let paht = gameManager.get_play_list_item_by_categoryid(id).wf_wrong_click_music;
  439. AudioManager.instance.playSound(paht,loop)
  440. }
  441. //每个玩法的背景音乐
  442. public static playGamePlayMusicByCategoryId(id:number, loop:boolean = false){
  443. let path = gameManager.get_play_list_item_by_categoryid(id).wf_piped_music;
  444. AudioManager.instance.playMusic(path,loop)
  445. }
  446. //主页的背景音乐
  447. public static playMainMusic(loop:boolean = false){
  448. let path = gameManager.g_server_sys_info.sys_piped_music;
  449. AudioManager.instance.playMusic(path,loop)
  450. }
  451. public static loadSysMusic(call_back){
  452. let count = 0;
  453. let call = ()=>{
  454. count++;
  455. if(count>=3){
  456. call_back()
  457. }
  458. }
  459. assetManager.loadRemote(gameManager.g_server_sys_info.sys_click_button_music, (err: any, clip: AudioClip)=> {
  460. clip.addRef()
  461. call()
  462. });
  463. assetManager.loadRemote(gameManager.g_server_sys_info.sys_close_button_music, (err: any, clip: AudioClip)=> {
  464. clip.addRef()
  465. call()
  466. });
  467. assetManager.loadRemote(gameManager.g_server_sys_info.sys_piped_music, (err: any, clip: AudioClip)=> {
  468. clip.addRef()
  469. call()
  470. });
  471. assetManager.loadRemote(gameManager.g_server_sys_info.sys_gain_coin_music, (err: any, clip: AudioClip)=> {
  472. clip.addRef()
  473. call()
  474. });
  475. }
  476. public static loadPlayMusicByCategoryId(id,call_back){
  477. let count = 0;
  478. let call = ()=>{
  479. count++;
  480. if(count>=5){
  481. call_back()
  482. }
  483. }
  484. let paly_item = gameManager.get_play_list_item_by_categoryid(id);
  485. if(!gameManager.mp3_cache.get(paly_item.wf_fail_music)){
  486. assetManager.loadRemote(paly_item.wf_fail_music, (err: any, clip: any)=> {
  487. clip.addRef()
  488. gameManager.mp3_cache.set(paly_item.wf_fail_music,clip)
  489. call()
  490. });
  491. }else{
  492. call()
  493. }
  494. if(!gameManager.mp3_cache.get(paly_item.wf_victory_music)){
  495. assetManager.loadRemote(paly_item.wf_victory_music, (err: any, clip: any)=> {
  496. clip.addRef()
  497. call()
  498. });
  499. }else{
  500. call()
  501. }
  502. if(!gameManager.mp3_cache.get(paly_item.wf_right_click_music)){
  503. assetManager.loadRemote(paly_item.wf_right_click_music, (err: any, clip: any)=> {
  504. clip.addRef()
  505. gameManager.mp3_cache.set(paly_item.wf_right_click_music,clip)
  506. call()
  507. });
  508. }else{
  509. call()
  510. }
  511. if(!gameManager.mp3_cache.get(paly_item.wf_wrong_click_music)){
  512. assetManager.loadRemote(paly_item.wf_wrong_click_music, (err: any, clip: any)=> {
  513. clip.addRef()
  514. gameManager.mp3_cache.set(paly_item.wf_wrong_click_music,clip)
  515. call()
  516. });
  517. }else{
  518. call()
  519. }
  520. if(!gameManager.mp3_cache.get(paly_item.wf_piped_music)){
  521. assetManager.loadRemote(paly_item.wf_piped_music, (err: any, clip: any)=> {
  522. clip.addRef()
  523. gameManager.mp3_cache.set(paly_item.wf_piped_music,clip)
  524. call()
  525. });
  526. }else{
  527. call()
  528. }
  529. }
  530. public static decRefSf(categoryid:number){
  531. let levels_item = gameManager.get_cur_level_by_categoryid(categoryid);
  532. gameManager.cache.forEach((v,k)=>{
  533. if(v!=null){
  534. let l = k.split("_");
  535. let level = parseInt(l[0]);
  536. let _categoryid = parseInt(l[1]);
  537. if(_categoryid==categoryid){
  538. if(level<levels_item.level){
  539. v.forEach((v1,k1)=>{
  540. v1.decRef()
  541. })
  542. gameManager.cache.set(`${level}_${_categoryid}`,null);
  543. }
  544. }
  545. }
  546. })
  547. }
  548. public addCoinNumber(obj:Component,addnum:number,lab_number:Label,cur_num:number,call_back,Spacer=""){
  549. let _num = 0;
  550. let multiple = (addnum/100)<1?1:addnum/100;
  551. let schedule_num = 0.01/multiple;
  552. obj.schedule( ()=>{
  553. _num+=(1*multiple);
  554. _num = Math.floor(_num);
  555. if(_num>=addnum){
  556. lab_number.string = Spacer+ (cur_num+_num);
  557. obj.unscheduleAllCallbacks()
  558. call_back();
  559. return
  560. }
  561. lab_number.string = Spacer + (cur_num+_num);
  562. },schedule_num)
  563. }
  564. public static get_reward_number():number{
  565. let list = gameManager.g_ads_config.reward.split(",");
  566. let start = parseInt(list[0]);
  567. let end = parseInt(list[1]);
  568. let reward = Util.getRandomInt(start,end);
  569. return reward;
  570. }
  571. public static get_deouble_reward_number():number{
  572. let list = gameManager.g_ads_config.reward.split(",");
  573. let start = parseInt(list[0]);
  574. let end = parseInt(list[1]);
  575. let reward = Util.getRandomInt(start,end);
  576. list = gameManager.g_ads_config.deouble_reward.split(",");
  577. start = parseInt(list[0]);
  578. end = parseInt(list[1]);
  579. reward *= Util.getRandomInt(start,end);
  580. return reward;
  581. }
  582. // public static set_server_han_zi_zhao_bu_tong_data(data){
  583. // gameManager.g_server_han_zi_zhao_bu_tong_data.list = data;
  584. // console.log("set_server_han_zi_zhao_bu_tong_data::",data);
  585. // }
  586. // public static set_server_mei_nv_zhao_xi_jie_data(data){
  587. // gameManager.g_server_mei_nv_zhao_xi_jie_data.list = data;
  588. // console.log("set_server_mei_nv_zhao_xi_jie_data::",data);
  589. // }
  590. public static getUserId(){
  591. let user_id ="";
  592. try{
  593. if(sys.platform==sys.Platform.BYTEDANCE_MINI_GAME){
  594. user_id = tt.getStorageSync(config.USER_ID)
  595. }else{
  596. user_id = sys.localStorage.getItem(config.USER_ID)
  597. }
  598. }catch(e){
  599. console.log("sss")
  600. }
  601. return user_id;
  602. }
  603. public static setUserId(userid:string){
  604. if(sys.platform==sys.Platform.BYTEDANCE_MINI_GAME){
  605. tt.setStorageSync(config.USER_ID,userid)
  606. }else{
  607. sys.localStorage.setItem(config.USER_ID,userid)
  608. }
  609. }
  610. }