homepage.ts 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. import { _decorator, Component, Director, director, Enum, Game, game, instantiate, Label, log, Node, Prefab, resources, SpriteFrame, sys, tween, UITransform, Vec2, Vec3 } from 'cc';
  2. import { config } from '../config';
  3. import { gameManager } from '../gameManager';
  4. import { play_list_item } from './play_list_item';
  5. import { server_play_list_data_item, statistics_collect_rewardVideo_data_item } from '../data/server_play_list_data';
  6. import { tools } from '../tools';
  7. import { ClientEvent } from '../framework/clientEvent';
  8. import { http } from '../http/http';
  9. import { view_game_play_shuang_tu_zhao_bu_tong } from '../play_list/zhaocha_up_down/view_game_play_shuang_tu_zhao_bu_tong';
  10. import { view_game_play_han_zi_zhao_bu_tong } from '../play_list/zhaocha_font/view_game_play_han_zi_zhao_bu_tong';
  11. import { view_game_play_mei_nv_zhao_xi_jie } from '../play_list/zhaocha_component/view_game_play_mei_nv_zhao_xi_jie';
  12. import { AudioManager } from '../framework/audioManager';
  13. import { SdkUtil } from '../framework/sdkUtil';
  14. import { win } from '../dialog/win';
  15. import { addCoinAni } from '../addCoinAni';
  16. import { Util } from '../framework/util';
  17. import { PoolManager } from '../framework/poolManager';
  18. import { game_play_dou_di_zhu } from '../play_list/ddz/game_play_dou_di_zhu';
  19. import { view_game_play_shuang_tu_zhao_xiang_tong } from '../play_list/zhaocha_xiang_tong/view_game_play_shuang_tu_zhao_xiang_tong';
  20. import { view_game_play_ji_yi_li } from '../play_list/ji_yi_li/view_game_play_ji_yi_li';
  21. import { view_game_play_zhao_bu_tong } from '../play_list/zhao_bu_tong/view_game_play_zhao_bu_tong';
  22. import { StatisticsManager } from '../framework/statisticsManager';
  23. import { reward_box_page } from './reward_box_page';
  24. import { reward_box } from './reward_box';
  25. const { ccclass, property } = _decorator;
  26. export enum ETest {
  27. None = 0,
  28. ONe = 1,
  29. Two = 2
  30. }
  31. @ccclass('homepage')
  32. export class homepage extends Component {
  33. @property(Node) content:Node = null;
  34. @property(SpriteFrame) sfList:SpriteFrame[]=[];
  35. @property(Node) btn_setting:Node = null;
  36. @property(Node) btn_coin:Node = null;
  37. @property(Node) btn_look_video:Node = null;
  38. @property(Node) lab_coin:Node;
  39. @property(Prefab) addCoinAni:Prefab = null;
  40. @property(Node) top_node:Node = null;
  41. @property(Node) action_node:Node = null;
  42. @property(Prefab) item_prefab;
  43. @property(Node) reward_box:Node = null;
  44. protected coin_ani:Node;
  45. protected old_coin_number:number = 0;
  46. private sp_map:Map<number,SpriteFrame> = new Map();
  47. protected onLoad(): void {
  48. SdkUtil.ttRegisterSidebar()
  49. }
  50. protected start(): void {
  51. this.sp_map.set(config.PLAY_TYPE.YI_QI_ZHAO_CHA,this.sfList[0])
  52. this.sp_map.set(config.PLAY_TYPE.HAN_ZI_ZHAO_BU_TONG,this.sfList[1])
  53. this.sp_map.set(config.PLAY_TYPE.MEI_NV_ZHAO_XI_JIE,this.sfList[2])
  54. this.sp_map.set(config.PLAY_TYPE.ZHAO_XIANG_TONG,this.sfList[3])
  55. this.sp_map.set(config.PLAY_TYPE.ZHAO_BU_TONG,this.sfList[4])
  56. this.sp_map.set(config.PLAY_TYPE.DOU_DI_ZHU,this.sfList[5])
  57. this.sp_map.set(config.PLAY_TYPE.JI_YI_LI,this.sfList[6])
  58. this.btn_setting.on(Node.EventType.TOUCH_START,()=>{
  59. gameManager.playBtnSound()
  60. gameManager.addTopView(config.PREFAB_PATH.setting,()=>{});
  61. },this)
  62. this.btn_look_video.on(Node.EventType.TOUCH_START,()=>{
  63. SdkUtil.showVideoAd(config.rewardVideoAdUnitId.Earn_coins_AdUnitId,(res)=>{
  64. if(res.isEnded){
  65. this.showLookVideoReward();
  66. }
  67. // 统计-激励视频广告
  68. let collect_data = StatisticsManager.get_collect_data(0, 0, 0, config.STATISTICS_ACTION_TYPE.ZHUAN_JIN_BI)
  69. collect_data.ads_status = res.isEnded ? config.Watch_rewardVideo_status.SUCCESS : config.Watch_rewardVideo_status.FAIL
  70. StatisticsManager.request_collect_rewardVideoData(collect_data)
  71. })
  72. })
  73. if(!PoolManager.instance.isHavePool(config.POOL_KEY)){
  74. PoolManager.instance.preloadPoolByName(config.POOL_KEY,11*15,this.item_prefab)
  75. }
  76. ClientEvent.on(config.EVENT_MSG.ON_CHANGE_COIN_NUMBER,this.onChangeCoinNumber.bind(this),this);
  77. ClientEvent.on(config.EVENT_MSG.ON_INIT_GAME_LIST,this.initPlayList.bind(this),this);
  78. ClientEvent.on(config.EVENT_MSG.ON_BACK_HOME_VIEW,this.onBackHomeView.bind(this),this);
  79. ClientEvent.on(config.EVENT_MSG.ON_UPDATE_HOME_VIEW,this.onUpdateHomeView.bind(this),this);
  80. ClientEvent.on(config.EVENT_MSG.ON_SHOW_REWARD_VIEW,this.onShowRewardView.bind(this),this);
  81. ClientEvent.on(config.EVENT_MSG.ON_USER_LOGIN_SUCCESS,this.onUserLoginSuccess.bind(this),this);
  82. }
  83. onUserLoginSuccess() {
  84. if(SdkUtil.ttCheckSceneShowRewards()&&gameManager.get_user_is_sign()==false) {
  85. this.reward_box.active = true
  86. this.reward_box.getComponent(reward_box).playShake()
  87. let self = this
  88. this.reward_box.on(Node.EventType.TOUCH_END, ()=> {
  89. gameManager.addTopView(config.PREFAB_PATH.reward_box_page, (node:Node)=> {
  90. let coin_number = gameManager.get_sign_reward_number()
  91. let sign_status = gameManager.userSignStatus.status
  92. let is_toEnterFromSidebar = SdkUtil.ttCheckToEnterFromSidebar()
  93. node.getComponent(reward_box_page).showView(coin_number, sign_status, is_toEnterFromSidebar, (coin_number:number, reward_box_page:reward_box_page)=> {
  94. gameManager.add_coin(coin_number)
  95. setTimeout(()=>{
  96. ClientEvent.dispatchEvent(config.EVENT_MSG.ON_CHANGE_COIN_NUMBER)
  97. },500)
  98. self.showCoinAni()
  99. reward_box_page.close()
  100. this.reward_box.getComponent(reward_box).stopShake()
  101. this.reward_box.active = false
  102. })
  103. })
  104. })
  105. }
  106. }
  107. onShowRewardView(){
  108. this.showLookVideoReward()
  109. }
  110. onUpdateHomeView(){
  111. let self = this;
  112. for (let index = 0; index < self.content.children.length; index++) {
  113. self.content.children[index].getComponent(play_list_item).updateView();
  114. }
  115. this.old_coin_number = gameManager.get_user_coin();
  116. this.lab_coin.getComponent(Label).string = Util.coinNumberToK(this.old_coin_number);
  117. gameManager.playMainMusic(true);
  118. }
  119. onBackHomeView(){
  120. let self = this;
  121. for (let index = 0; index < self.content.children.length; index++) {
  122. self.content.children[index].getComponent(play_list_item).updateView();
  123. self.content.children[index].getComponent(play_list_item).play(index*0.2,index)
  124. }
  125. this.old_coin_number = gameManager.get_user_coin();
  126. this.lab_coin.getComponent(Label).string = Util.coinNumberToK(this.old_coin_number);
  127. gameManager.playMainMusic(true);
  128. }
  129. onChangeCoinNumber(){
  130. let self = this;
  131. let num:number = this.old_coin_number;
  132. let obj = new Component
  133. gameManager.instance.addCoinNumber( obj,gameManager.get_user_coin() - num ,self.lab_coin.getComponent(Label),num,()=>{
  134. this.old_coin_number = gameManager.get_user_coin();
  135. this.lab_coin.getComponent(Label).string = Util.coinNumberToK(this.old_coin_number);
  136. })
  137. for (let index = 0; index < self.content.children.length; index++) {
  138. self.content.children[index].getComponent(play_list_item).updateView();
  139. }
  140. }
  141. showCoinAni(){
  142. if( this.coin_ani!=null){
  143. this.coin_ani.removeFromParent()
  144. this.coin_ani = null;
  145. }
  146. if(this.addCoinAni!=null){
  147. this.coin_ani = instantiate(this.addCoinAni)
  148. this.coin_ani.parent = this.action_node;
  149. this.coin_ani.position = new Vec3(200,400,0)
  150. this.coin_ani.getComponent(addCoinAni).play(()=>{
  151. let end_pos = this.top_node.getComponent(UITransform).convertToWorldSpaceAR(this.btn_coin.position)
  152. tween(this.coin_ani).to(0.2, {position: end_pos}).hide().start()
  153. })
  154. }
  155. }
  156. showLookVideoReward(){
  157. let self = this;
  158. gameManager.addTopView(config.PREFAB_PATH.win,(node:Node)=>{
  159. let reward = gameManager.get_reward_number();
  160. node.getComponent(win).showVideoAddCoinView(reward,null,(win_view:win)=>{
  161. gameManager.add_coin(reward)
  162. setTimeout(()=>{
  163. ClientEvent.dispatchEvent(config.EVENT_MSG.ON_CHANGE_COIN_NUMBER)
  164. },500)
  165. self.showCoinAni()
  166. win_view.close()
  167. },(win_view:win)=>{
  168. SdkUtil.showVideoAd(config.rewardVideoAdUnitId.Earn_coins_AdUnitId,(res)=>{
  169. if(res.isEnded){
  170. reward = gameManager.get_deouble_reward_number();
  171. gameManager.add_coin(reward)
  172. tween(self.btn_setting).delay(0.5).call(()=>{
  173. win_view.showDoubleCoin(reward,()=>{
  174. self.showCoinAni()
  175. win_view.close()
  176. ClientEvent.dispatchEvent(config.EVENT_MSG.ON_CHANGE_COIN_NUMBER)
  177. })
  178. }).start()
  179. }
  180. // 统计-激励视频广告
  181. let collect_data = StatisticsManager.get_collect_data(0, 0, 0, config.STATISTICS_ACTION_TYPE.CHAO_JI_JIA_BEI)
  182. collect_data.ads_status = res.isEnded ? config.Watch_rewardVideo_status.SUCCESS : config.Watch_rewardVideo_status.FAIL
  183. StatisticsManager.request_collect_rewardVideoData(collect_data)
  184. })
  185. });
  186. });
  187. }
  188. protected onDestroy(): void {
  189. ClientEvent.off(config.EVENT_MSG.ON_CHANGE_COIN_NUMBER,this.onChangeCoinNumber.bind(this),this);
  190. ClientEvent.off(config.EVENT_MSG.ON_INIT_GAME_LIST,this.initPlayList.bind(this),this);
  191. ClientEvent.off(config.EVENT_MSG.ON_BACK_HOME_VIEW,this.onBackHomeView.bind(this),this);
  192. }
  193. initPlayList(){
  194. let self = this;
  195. this.content.removeAllChildren();
  196. let call_back = (prefab)=>{
  197. let list = gameManager.g_server_play_list_data.list;
  198. for (let index = 0; index < list.length; index++) {
  199. // if(list[index].id<=3){
  200. let newNode:Node = instantiate(prefab);
  201. newNode.parent = self.content;
  202. newNode.getComponent(play_list_item).initView(list[index],this.sp_map.get(list[index].id),this.onItemClick.bind(this));
  203. // }
  204. }
  205. }
  206. resources.load(config.PREFAB_PATH.play_list_item, Prefab, (err, prefab) => {
  207. if(err){
  208. console.log("err::",err);
  209. return;
  210. }
  211. call_back(prefab);
  212. });
  213. }
  214. hideAllItem(){
  215. let self = this;
  216. for (let index = 0; index < self.content.children.length; index++) {
  217. self.content.children[index].getComponent(play_list_item).hide();
  218. }
  219. }
  220. onItemClick(data:server_play_list_data_item){
  221. gameManager.playBtnSound()
  222. this.hideAllItem()
  223. switch(data.id){
  224. case config.PLAY_TYPE.YI_QI_ZHAO_CHA:
  225. {
  226. let categoryid = config.PLAY_TYPE.YI_QI_ZHAO_CHA;
  227. let levels_item = gameManager.get_cur_level_by_categoryid(categoryid);
  228. // gameManager.showLoading();
  229. http.get(config.static_url.levels_info(categoryid,levels_item.level),(err,data)=>{
  230. if(!err){
  231. let _data = JSON.parse(data)
  232. if(_data.code===config.MSG_CODE.SUCCESS){
  233. gameManager.addUiView(config.PREFAB_PATH.game_play_shuang_tu_zhao_bu_tong,(node:Node)=>{
  234. node.getComponent(view_game_play_shuang_tu_zhao_bu_tong).initView(_data.content);
  235. })
  236. }
  237. }
  238. })
  239. break;
  240. }
  241. case config.PLAY_TYPE.HAN_ZI_ZHAO_BU_TONG:
  242. {
  243. let categoryid = config.PLAY_TYPE.HAN_ZI_ZHAO_BU_TONG;
  244. let levels_item = gameManager.get_cur_level_by_categoryid(categoryid);
  245. // gameManager.showLoading();
  246. http.get(config.static_url.levels_info(categoryid,levels_item.level),(err,data)=>{
  247. if(!err){
  248. let _data = JSON.parse(data)
  249. if(_data.code===config.MSG_CODE.SUCCESS){
  250. if(gameManager.uiViewList.get(config.PREFAB_PATH.game_play_han_zi_zhao_bu_tong)){
  251. gameManager.uiViewList.get(config.PREFAB_PATH.game_play_han_zi_zhao_bu_tong).getComponent(view_game_play_han_zi_zhao_bu_tong).initView(_data.content);
  252. }else{
  253. gameManager.addUiView(config.PREFAB_PATH.game_play_han_zi_zhao_bu_tong,(node)=>{
  254. node.getComponent(view_game_play_han_zi_zhao_bu_tong).initView(_data.content);
  255. })
  256. }
  257. }
  258. }
  259. })
  260. break;
  261. }
  262. case config.PLAY_TYPE.MEI_NV_ZHAO_XI_JIE:
  263. {
  264. let categoryid = config.PLAY_TYPE.MEI_NV_ZHAO_XI_JIE;
  265. let levels_item = gameManager.get_cur_level_by_categoryid(categoryid);
  266. // gameManager.showLoading();
  267. http.get(config.static_url.levels_info(categoryid,levels_item.level),(err,data)=>{
  268. if(!err){
  269. let _data = JSON.parse(data)
  270. if(_data.code===config.MSG_CODE.SUCCESS){
  271. gameManager.addUiView(config.PREFAB_PATH.game_play_mei_nv_zhao_xi_jie,(node)=>{
  272. node.getComponent(view_game_play_mei_nv_zhao_xi_jie).initView(_data.content);
  273. })
  274. }
  275. }
  276. })
  277. break;
  278. }
  279. case config.PLAY_TYPE.ZHAO_XIANG_TONG:
  280. {
  281. let categoryid = config.PLAY_TYPE.ZHAO_XIANG_TONG;
  282. let levels_item = gameManager.get_cur_level_by_categoryid(categoryid);
  283. // gameManager.showLoading();
  284. http.get(config.static_url.levels_info(categoryid,levels_item.level),(err,data)=>{
  285. if(!err){
  286. let _data = JSON.parse(data)
  287. if(_data.code===config.MSG_CODE.SUCCESS){
  288. gameManager.addUiView(config.PREFAB_PATH.game_play_shuang_tu_zhao_xiang_tong,(node:Node)=>{
  289. node.getComponent(view_game_play_shuang_tu_zhao_xiang_tong).initView(_data.content);
  290. })
  291. }
  292. }
  293. })
  294. break;
  295. }
  296. case config.PLAY_TYPE.ZHAO_BU_TONG:
  297. {
  298. let categoryid = config.PLAY_TYPE.ZHAO_BU_TONG;
  299. let levels_item = gameManager.get_cur_level_by_categoryid(categoryid);
  300. // gameManager.showLoading();
  301. http.get(config.static_url.levels_info(categoryid,levels_item.level),(err,data)=>{
  302. if(!err){
  303. let _data = JSON.parse(data)
  304. if(_data.code===config.MSG_CODE.SUCCESS){
  305. gameManager.addUiView(config.PREFAB_PATH.game_play_zhao_bu_tong,(node:Node)=>{
  306. node.getComponent(view_game_play_zhao_bu_tong).initView(_data.content);
  307. })
  308. }
  309. }
  310. })
  311. break;
  312. }
  313. case config.PLAY_TYPE.DOU_DI_ZHU:
  314. {
  315. let categoryid = config.PLAY_TYPE.DOU_DI_ZHU;
  316. let levels_item = gameManager.get_cur_level_by_categoryid(categoryid);
  317. // gameManager.showLoading();
  318. console.log("斗地主")
  319. http.get(config.static_url.levels_info(categoryid,levels_item.level),(err,data)=>{
  320. if(!err){
  321. let _data = JSON.parse(data)
  322. if(_data.code===config.MSG_CODE.SUCCESS){
  323. gameManager.addUiView(config.PREFAB_PATH.game_play_dou_di_zhu,(node:Node)=>{
  324. node.getComponent(game_play_dou_di_zhu).initView(_data.content);
  325. })
  326. }
  327. }
  328. })
  329. break;
  330. }
  331. case config.PLAY_TYPE.JI_YI_LI:
  332. {
  333. let categoryid = config.PLAY_TYPE.JI_YI_LI;
  334. let levels_item = gameManager.get_cur_level_by_categoryid(categoryid);
  335. const element = gameManager.get_play_list_item_by_categoryid(config.PLAY_TYPE.JI_YI_LI);
  336. if(element.barrier_number<levels_item.level){
  337. levels_item.level = 1;
  338. gameManager.set_unlock_levels_data(levels_item)
  339. gameManager.sync_data(()=>{},config.sync_data_type.LEVELS)
  340. }
  341. if(levels_item.level<=0){
  342. levels_item.level = 1;
  343. gameManager.set_unlock_levels_data(levels_item)
  344. }
  345. http.get(config.static_url.levels_info(categoryid,levels_item.level),(err,data)=>{
  346. if(!err){
  347. let _data = JSON.parse(data)
  348. if(_data.code===config.MSG_CODE.SUCCESS){
  349. gameManager.addUiView(config.PREFAB_PATH.game_play_ji_yi_li,(node:Node)=>{
  350. node.getComponent(view_game_play_ji_yi_li).initView(_data.content);
  351. })
  352. }
  353. }
  354. })
  355. break;
  356. }
  357. }
  358. }
  359. }