UIWinView.ts 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. /*
  2. * @Author: your name
  3. * @Date: 2021-09-05 22:49:20
  4. * @LastEditors: Please set LastEditors
  5. * @Description: In User Settings Edit
  6. * @FilePath: \zombiefood\assets\script\ui\uiview\Interface\UIWinView.ts
  7. */
  8. import auto_winView from "../../../ui/uidata/Interface/auto_winView";
  9. import UIBase from "../../../framework/ui/UIBase";
  10. import UIHelp from "../../../framework/ui/UIHelp";
  11. import bundleManager from "../../../manager/bundleManager";
  12. import levelManager from "../../../manager/levelManager";
  13. import AccountModel from "../../../data/Account/AccountModel";
  14. import UITopMenu from "./UITopMenu";
  15. import gameData from "../../../gameLogic/utrl/gameData";
  16. import { USER } from "../../../constant/constant-user";
  17. import dungeonManager from "../../../manager/dungeonManager";
  18. import dungeonLogic from "../../../gameLogic/dungeonLogic";
  19. import UIWelfareView from "./UIWelfareView";
  20. const { ccclass, menu, property } = cc._decorator;
  21. @ccclass
  22. @menu("UI/Interface/UIWinView")
  23. export default class UIWinView extends UIBase {
  24. ui: auto_winView = null;
  25. protected static prefabUrl = "Interface/winView";
  26. protected static className = "UIWinView";
  27. bClick: boolean;
  28. curLevel: number;
  29. maskNode: cc.Node;
  30. onUILoad() {
  31. this.ui = this.node.addComponent(auto_winView);
  32. levelManager.preLoadLevel(AccountModel.getInstance().curLevel + 1);
  33. this.reSetPlayerPos();
  34. this.curLevel = AccountModel.getInstance().curLevel;
  35. this.maskNode = cc.director.getScene().getChildByName('Canvas').getChildByName('maskNode');
  36. if(this.curLevel == 1){ zjSdk?.sendEvent('新手引导-成功')}
  37. zjSdk?.showGameOver();
  38. }
  39. onShow() {
  40. this.initFrames();
  41. }
  42. initFrames() {
  43. if (this.hasLevel()) {
  44. let idx = this.curLevel + 1;
  45. bundleManager.setBundleFrame('UI', 'winView/lijitaoli', this.ui.next_btn);
  46. bundleManager.setBundleFrame('UI', 'main/level' + idx, this.ui.target_img);
  47. } else {
  48. bundleManager.setBundleFrame('UI', 'main/level' + this.curLevel, this.ui.target_img);
  49. bundleManager.setBundleFrame('UI', 'failView/chongxin', this.ui.next_btn);
  50. }
  51. }
  52. hasLevel() {
  53. if (this.curLevel >= USER.MAX_LEVEL) {
  54. return false;
  55. }
  56. return true;
  57. }
  58. onStart() {
  59. cc.director.getScene().getChildByName('Canvas').getChildByName('redWarn').active = false;
  60. }
  61. next_btn() {
  62. if (this.hasLevel()) {
  63. this.nextLevel();
  64. } else {
  65. this.reStart();
  66. }
  67. }
  68. reStart() {
  69. if (this.bClick) {
  70. return;
  71. }
  72. this.bClick = true;
  73. zjSdk?.hideGameOver();
  74. zjSdk?.gameBegin(() => {
  75. this.removeDungeonView();
  76. zjSdk?.sendEvent('进入第' + AccountModel.getInstance().curLevel + '关')
  77. levelManager.open(AccountModel.getInstance().curLevel, () => {
  78. //this.maskNode.opacity = 0;
  79. AccountModel.getInstance().show_crazy_in_level =0;
  80. UITopMenu.getInstance().node.active = true;
  81. dungeonManager.resetDungen();
  82. this.onClose();
  83. }, true);
  84. })
  85. }
  86. nextLevel() {
  87. console.log('zh:nextLevel 1');
  88. if (AccountModel.getInstance().curLevel >= USER.MAX_LEVEL) {
  89. return UIHelp.ShowTips('Stay tuned...');//敬请期待...
  90. }
  91. if (this.bClick) {
  92. return;
  93. }
  94. this.bClick = true;
  95. zjSdk?.hideGameOver();
  96. zjSdk?.gameBegin(() => {
  97. console.log('zh:nextLevel 2');
  98. AccountModel.getInstance().curLevel += 1;
  99. zjSdk?.sendEvent('进入第' + AccountModel.getInstance().curLevel + '关')
  100. levelManager.open(AccountModel.getInstance().curLevel, () => {
  101. AccountModel.getInstance().show_crazy_in_level = 0;
  102. gameData.curInDungeonType = null;
  103. //this.maskNode.opacity = 0;
  104. this.tryShowUI();
  105. UITopMenu.getInstance().node.active = true;
  106. this.onClose();
  107. })
  108. })
  109. }
  110. private tryShowUI() {
  111. const curWelfare = AccountModel.getInstance().curWelfare;
  112. if (curWelfare.length != 4){
  113. UIHelp.ShowUI(UIWelfareView);
  114. }
  115. }
  116. removeDungeonView() {
  117. var cavans = cc.director.getScene().getChildByName('world').children;
  118. cavans.forEach((node) => {
  119. let com = node.getComponent(dungeonLogic);
  120. if (com) {
  121. node.destroy();
  122. return;
  123. }
  124. })
  125. }
  126. reSetPlayerPos() {
  127. let playerDt = gameData.playerDtList;
  128. if (playerDt.length > 0) {
  129. playerDt.forEach(element => {
  130. element.pos = null;
  131. });
  132. }
  133. AccountModel.getInstance().playerDtList = gameData.playerDtList;
  134. }
  135. removeDungeonNode() {
  136. let worldChildren = cc.director.getScene().getChildByName('world').children;
  137. worldChildren.forEach((node) => {
  138. if (node.name.indexOf('dungeon_') >= 0) {
  139. node.destroy();
  140. }
  141. })
  142. }
  143. onClose() {
  144. UIHelp.CloseUI(UIWinView);
  145. }
  146. }