UIMenu.ts 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. /*
  2. * @Author: your name
  3. * @Date: 2021-09-12 12:41:49
  4. * @LastEditTime: 2021-09-29 22:30:24
  5. * @LastEditors: Please set LastEditors
  6. * @Description: In User Settings Edit
  7. * @FilePath: \zombiefood\assets\script\ui\uiview\Interface\UIMenu.ts
  8. */
  9. import auto_menu from "../../../ui/uidata/Interface/auto_menu";
  10. import UIBase from "../../../framework/ui/UIBase";
  11. import UIHelp from "../../../framework/ui/UIHelp";
  12. import bundleManager from "../../../manager/bundleManager";
  13. import levelManager from "../../../manager/levelManager";
  14. import AccountModel from "../../../data/Account/AccountModel";
  15. import zombieActionMgr from "../../../manager/zombieActionMgr";
  16. import Utils from "../../../framework/utils/utils";
  17. import UITopMenu from "./UITopMenu";
  18. import { EVENT_TYPE } from "../../../gameLogic/utrl/gameEnum";
  19. import gameEventManager from "../../../gameLogic/utrl/gameEventManager";
  20. import JoyStick from "../../../gameLogic/utrl/joy_stick";
  21. import AudioManager from "../../../framework/music/AudioManager";
  22. import UIWelfareView from "./UIWelfareView";
  23. import SignUtil from "../../../framework/utils/signUtil";
  24. import UISignView from "./UISignView";
  25. import UIGameScene from "../scene/UIGameScene";
  26. import { SingletonFactory } from "../../../framework/utils/SingletonFactory";
  27. import EventManager from "../../../framework/event/EventManager";
  28. import dynamicAtlasManager = cc.dynamicAtlasManager;
  29. import UICrazyAwardView from "./UICrazyAwardView";
  30. import { GameEvent } from "../../../constant/constant-game";
  31. import { USER } from "../../../constant/constant-user";
  32. import { Log, LOG_TAG } from "../../../framework/log/Log";
  33. import array = cc.js.array;
  34. import UIMng from "../../../framework/ui/UIMng";
  35. const { ccclass, menu, property } = cc._decorator;
  36. @ccclass
  37. @menu("UI/Interface/UIMenu")
  38. export default class UIMenu extends UIBase {
  39. ui: auto_menu = null;
  40. protected static prefabUrl = "Interface/menu";
  41. protected static className = "UIMenu";
  42. npcID: number;
  43. roleSpine: any;
  44. isLoadRes: boolean = false;
  45. bClick: boolean = true;
  46. progressBar: cc.ProgressBar;
  47. onUILoad() {
  48. this.ui = this.node.addComponent(auto_menu);
  49. this.isNewUser();
  50. this.progressBar = this.ui.progress.getComponent(cc.ProgressBar);
  51. zjSdk?.showMain({
  52. y: -50,
  53. });
  54. bundleManager.loadSimpleSubpk('level3', () => {
  55. bundleManager.loadSimpleSubpk('level4');
  56. });
  57. }
  58. isNewUser() {
  59. let playerDt = AccountModel.getInstance().playerDtList;
  60. if (playerDt.length > 0) {
  61. AccountModel.getInstance().is_new = 0;
  62. }
  63. if (AccountModel.getInstance().is_new == 1) {
  64. zjSdk?.sendEvent('主界面曝光-新')
  65. } else {
  66. zjSdk?.sendEvent('主界面曝光-旧')
  67. }
  68. }
  69. start_btn() {
  70. if (!this.bClick) { return };
  71. if (!this.bloadRes()) {
  72. UIHelp.ShowTips('资源加载中......')
  73. return;
  74. }
  75. this.bClick = false;
  76. zjSdk?.sendEvent('点击开始按钮');
  77. console.log('zh:1')
  78. zjSdk?.gameBegin(() => {
  79. console.log('zh:2')
  80. zjSdk?.hideMain();
  81. if (zjSdk?.hasOwnProperty('ZjGmData')) {
  82. if (zjSdk?.ZjGmData.instance.gameConfig.isShowInnerCrazyAward == '1') {
  83. GameEvent.isShowInnerCrazyAward = true;
  84. }
  85. if (zjSdk?.ZjGmData.instance.gameConfig.hasOwnProperty('firstCrazyByZombieNum')) {
  86. GameEvent.firstCrazyByZombieNum = parseInt(zjSdk?.ZjGmData.instance.gameConfig.firstCrazyByZombieNum)
  87. }
  88. if (zjSdk?.ZjGmData.instance.gameConfig.hasOwnProperty('crazyByZombieNumTimes')) {
  89. GameEvent.crazyByZombieNumTimes = parseInt(zjSdk?.ZjGmData.instance.gameConfig.crazyByZombieNumTimes)
  90. } if (zjSdk?.ZjGmData.instance.gameConfig.hasOwnProperty('crazyAwardPopMaxTimes')) {
  91. GameEvent.crazyAwardPopMaxTimes = parseInt(zjSdk?.ZjGmData.instance.gameConfig.crazyAwardPopMaxTimes)
  92. }
  93. }
  94. console.log('zh:3')
  95. let curLevel = AccountModel.getInstance().curLevel;
  96. if (curLevel == 1 && AccountModel.getInstance().is_new == 1) {
  97. console.log('zh:4')
  98. this.onClose();
  99. gameEventManager.emit(EVENT_TYPE.playStoryAni, (node) => {
  100. console.log('zh:5')
  101. levelManager.open(curLevel, () => {
  102. cc.director.getScene().getChildByName('Canvas').getChildByName('maskNode').opacity = 0;
  103. UITopMenu.getInstance().node.active = true;
  104. this.tryShowUI();
  105. node.destroy();
  106. })
  107. });
  108. return;
  109. }
  110. console.log('zh:6')
  111. levelManager.open(curLevel, () => {
  112. console.log('zh:7')
  113. cc.director.getScene().getChildByName('Canvas').getChildByName('maskNode').opacity = 0;
  114. UITopMenu.getInstance().node.active = true;
  115. this.onClose();
  116. this.tryShowUI(false);
  117. console.log('zh:8')
  118. })
  119. })
  120. }
  121. tryShowUI(isNewBee = true) {
  122. //调用签到
  123. const callSign = () => {
  124. if (!SignUtil.canSign()) {
  125. return false;
  126. }
  127. const openSign = () => {
  128. if (SignUtil.canSign()) {
  129. gameEventManager.emit(EVENT_TYPE.CHANGE_STATUS, true);
  130. UIHelp.ShowUI(UISignView, null, isNewBee);
  131. }
  132. }
  133. uiRoot.getComponent(UIGameScene).scheduleOnce(async () => {
  134. if (UIMng.getInstance().UILock) {
  135. EventManager.once(EVENT_TYPE.unLockUI, () => {
  136. this.scheduleOnce(() => {
  137. if (SignUtil.canSign()) {
  138. gameEventManager.emit(EVENT_TYPE.CHANGE_STATUS, true);
  139. UIHelp.ShowUI(UISignView, null, isNewBee);
  140. }
  141. }, 1)
  142. })
  143. }
  144. openSign();
  145. }, isNewBee ? 30 : 0);
  146. return true;
  147. }
  148. //调用福利
  149. const callWelfare = (delay) => {
  150. const openWelfare = () => {
  151. if (isNewBee &&
  152. AccountModel.getInstance().curWelfare.length != 0) {
  153. return
  154. }
  155. gameEventManager.emit(EVENT_TYPE.CHANGE_STATUS, true);
  156. UIHelp.ShowUI(UIWelfareView, null, isNewBee);
  157. }
  158. if (AccountModel.getInstance().curWelfare.length !== 4) {
  159. uiRoot.getComponent(UIGameScene).scheduleOnce(() => {
  160. if (UIMng.getInstance().UILock) {
  161. EventManager.once(EVENT_TYPE.unLockUI, () => {
  162. this.scheduleOnce(() => {
  163. openWelfare();
  164. }, 1)
  165. })
  166. return;
  167. }
  168. //新手点击过不要跳了
  169. openWelfare();
  170. }, delay);
  171. }
  172. };
  173. let uiRoot = cc.director.getScene().getChildByName('Canvas');
  174. const isShowSign = callSign();
  175. //新手
  176. if (isNewBee) {
  177. EventManager.once(EVENT_TYPE.closeSign, () => {
  178. callWelfare(30);
  179. })
  180. } else if (isShowSign) {
  181. EventManager.once(EVENT_TYPE.closeSign, () => {
  182. callWelfare(0);
  183. })
  184. } else {
  185. callWelfare(0);
  186. }
  187. }
  188. bloadRes() {
  189. if (bundleManager.localResIsload == true && bundleManager.getBunleTotal() == bundleManager.bundleTotal) {
  190. return true;
  191. }
  192. return false;
  193. }
  194. update(dt) {
  195. if (this.bloadRes() && !this.isLoadRes) {
  196. this.node.$loading_lb.getComponent(cc.Label).string = '加载完成';
  197. this.progressBar.progress = 1;
  198. this.scheduleOnce(() => {
  199. this.ui.progress.active = false;
  200. this.node.$loading_lb.active = false;
  201. this.ui.start_btn.active = true;
  202. }, 0.2)
  203. this.isLoadRes = true;
  204. this.addSprite();
  205. setTimeout(() => {
  206. AudioManager.play('bg', 1, true, 'BGM');
  207. }, 50);
  208. levelManager.preLoadLevel(AccountModel.getInstance().curLevel);
  209. }
  210. if (!this.bloadRes()) {
  211. this.node.$loading_lb.getComponent(cc.Label).string = '正在加载中......';
  212. if (this.progressBar.progress < 1) {
  213. this.progressBar.progress += dt * 0.5;
  214. }
  215. }
  216. }
  217. addSprite() {
  218. this.initRedWarn();
  219. }
  220. initRedWarn() {
  221. let redWarn = new cc.Node;
  222. redWarn.name = "redWarn";
  223. redWarn.setContentSize(cc.size(1800, 2000));
  224. redWarn.addComponent(cc.Sprite);
  225. bundleManager.setBundleFrame('UI', 'main/hjianbianBG', redWarn);
  226. redWarn.active = false;
  227. redWarn.parent = cc.director.getScene().getChildByName('Canvas');
  228. cc.tween(redWarn)
  229. .repeatForever(cc.tween().to(0.5, { opacity: 0 }).to(0.5, { opacity: 255 }))
  230. .start();
  231. }
  232. onClose() {
  233. UIHelp.CloseUI(UIMenu);
  234. }
  235. }