WindowModel.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import Gamecfg from "../../common/gameCfg";
  2. import { gameMethod } from "../../common/gameMethod";
  3. import { KindItem, SevBack } from "../../common/Xys";
  4. import Config from "../../Config";
  5. import FguiMgr from "../../frameWork/fgui/FguiMgr";
  6. import GameController from "../../GameController";
  7. import UIHelp, { DialogParams } from "../../logic/ui/UIHelp";
  8. import { I18n } from "../../utils/I18nUtil";
  9. import { InGame, ItemKind } from "../const/TypeConst";
  10. import GameDataCenter from "../GameDataCenter";
  11. import IDataModel from "../../frameWork/model/IDataModel";
  12. export default class WindowModel extends IDataModel {
  13. constructor() {
  14. super('window');
  15. }
  16. popItem: cc.Prefab = null
  17. tipsItem: cc.Prefab = null
  18. popItemList: KindItem[] = []
  19. isPoping: boolean = false //还在飘窗中
  20. rewardViewCloseCallbacks: { cb: Function, doNext: boolean }[] = [] // 奖励界面关闭后触发, doNext:立刻触发下一个cb
  21. doSevback(result: SevBack): void {
  22. }
  23. doEvent(result: SevBack): void {
  24. if (result.win) {
  25. if (result.win.items && Config.inGame >= InGame.home) {//招募界面开启时不用弹
  26. this.checkRewardItems(result.win.items)
  27. }
  28. if (result.win.msg) {
  29. // 兼容一下新旧版本
  30. if (typeof result.win.msg == "string") {
  31. UIHelp.ShowTips(result.win.msg)
  32. } else if (Array.isArray(result.win.msg)) {
  33. result.win.msg.forEach((element, index) => {
  34. setTimeout(() => {
  35. UIHelp.ShowTips(element)
  36. }, index * 300);
  37. });
  38. }
  39. }
  40. // 被提示被踢出
  41. if (result.win.msgOut) {
  42. GameController.network.stopRequest = true
  43. let data: DialogParams = {
  44. title: I18n.getI18nText('common_dialogtitle_1'),
  45. content: result.win.msgOut,
  46. onlyConfirm: true,
  47. cbConfirm() {
  48. GameDataCenter.plat.instance.restart()
  49. },
  50. }
  51. UIHelp.ShowSystemDialog(data)
  52. }
  53. }
  54. }
  55. checkRewardItems(items: KindItem[]) {
  56. let rewardItems: KindItem[] = []
  57. for (let i = 0; i < items.length; i++) {
  58. let item = items[i]
  59. rewardItems.push(item)
  60. }
  61. // //地宫自动模式屏蔽奖励弹窗
  62. // if (rewardItems.length > 0) {
  63. // //获得新弟子单独弹出获得弟子弹框
  64. // let dzList: KindItem[] = [];
  65. // let zfList: KindItem[] = [];
  66. // FguiMgr.Instance.openUI(RewardViewView, ViewZorder.REWARD, () => { }, {
  67. // items: rewardItems, closeBack: (items: KindItem[]) => {
  68. // if (zfList.length > 0) {
  69. // let zfBase = Gamecfg.zfxtZfbase.getItem(String(zfList[0][1]));
  70. // let pram = {
  71. // xls: zfBase,
  72. // type: 0
  73. // }
  74. // FguiMgr.Instance.openUI(ZhenFaShengJiTuPoSuccessView, ViewZorder.POP, null, pram);
  75. // } else if (!gameMethod.isEmpty(dzList)) {
  76. // FguiMgr.Instance.openUI(HuoDeDiZiView, ViewZorder.REWARD, null, { dzid: null, rwdList: dzList });
  77. // }
  78. // }
  79. // });
  80. // rewardItems.forEach(element => {
  81. // if (element[0] == ItemKind.dizi) {
  82. // dzList.push(element);
  83. // } else if (element[0] == ItemKind.zf) {
  84. // zfList.push(element);
  85. // }
  86. // });
  87. // }
  88. }
  89. checkRewardViewCloseCallbacks() {
  90. if (this.rewardViewCloseCallbacks.length > 0) {
  91. let param = this.rewardViewCloseCallbacks.splice(0, 1)[0]
  92. param.cb()
  93. if (param.doNext) {
  94. this.checkRewardViewCloseCallbacks()
  95. }
  96. }
  97. }
  98. }