window.__require = function e(t, n, r) {
  function s(o, u, npmPkgName) {
    if (!n[o]) {
      if (!t[o]) {
        var b = o;
        if (o.includes("./")) {
          b = o.split("/");
          b = b[b.length - 1];
        }
        if (!t[b]) {
          var a = "function" == typeof __require && __require;
          if (!u && a) return a(b, !0);
          if (i) return i(b, !0);
          throw new Error("Cannot find module '" + o + "'");
        }
        o = b;
      }
      var f = n[o] = {
        exports: {}
      };
      t[o][0].call(f.exports, function(e) {
        var n = t[o][1][e];
        return s(n || e, void 0, e.includes("./") ? void 0 : e);
      }, f, f.exports, e, t, n, r);
    }
    npmPkgName && n[o] && !n[npmPkgName] && (n[npmPkgName] = n[o]);
    return n[o].exports;
  }
  var i = "function" == typeof __require && __require;
  for (var o = 0; o < r.length; o++) s(r[o]);
  return s;
}({
  "MT3SETB-ActionData": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "1f8eaH5SgZLpY1HTpArA5PN", "MT3SETB-ActionData");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ActionData = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let ActionData = class ActionData extends cc.Component {
      constructor() {
        super(...arguments);
        this.fishActionAssets = [];
      }
    };
    __decorate([ property([ cc.Asset ]) ], ActionData.prototype, "fishActionAssets", void 0);
    ActionData = __decorate([ ccclass ], ActionData);
    exports.ActionData = ActionData;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-App": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "3dd27zjZolPuq723fPLTPEC", "MT3SETB-App");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
      function adopt(value) {
        return value instanceof P ? value : new P(function(resolve) {
          resolve(value);
        });
      }
      return new (P || (P = Promise))(function(resolve, reject) {
        function fulfilled(value) {
          try {
            step(generator.next(value));
          } catch (e) {
            reject(e);
          }
        }
        function rejected(value) {
          try {
            step(generator["throw"](value));
          } catch (e) {
            reject(e);
          }
        }
        function step(result) {
          result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
        }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
      });
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.App = void 0;
    const MT3SETB_BonusCardMgr_1 = require("../res/Common/script/MT3SETB-BonusCardMgr");
    const MT3SETB_CatchRewardShow_1 = require("../res/Common/script/MT3SETB-CatchRewardShow");
    const MT3SETB_FreeBulletMgr_1 = require("../res/Common/script/MT3SETB-FreeBulletMgr");
    const MT3SETB_language_1 = require("./common/api/MT3SETB-language");
    const MT3SETB_timeline_1 = require("./common/api/MT3SETB-timeline");
    const MT3SETB_track_1 = require("./common/api/MT3SETB-track");
    const MT3SETB_Comm_1 = require("./MT3SETB-Comm");
    const MT3SETB_BetRecord_1 = require("./gameplay/MT3SETB-BetRecord");
    const MT3SETB_PickupRewardShow_1 = require("./gameplay/MT3SETB-PickupRewardShow");
    const MT3SETB_Device_1 = require("./system/MT3SETB-Device");
    const MT3SETB_LangList_1 = require("./system/MT3SETB-LangList");
    const MT3SETB_vip_1 = require("./common/api/MT3SETB-vip");
    const MT3SETB_platform_1 = require("./common/api/MT3SETB-platform");
    const MT3SETB_event_1 = require("./common/api/MT3SETB-event");
    const MT3SETB_i18n_1 = require("./system/MT3SETB-i18n");
    const MT3SETB_websocket_1 = require("./common/api/MT3SETB-websocket");
    const MT3SETB_profile_1 = require("./common/api/MT3SETB-profile");
    const MT3SETB_reward_1 = require("./common/api/MT3SETB-reward");
    const MT3SETB_Automata_1 = require("./utils/MT3SETB-Automata");
    const MT3SETB_glue_1 = __importDefault(require("./common/api/MT3SETB-glue"));
    const MT3SETB_SoundConst_1 = require("./gameplay/MT3SETB-SoundConst");
    const MT3SETB_webObject_1 = require("./common/api/MT3SETB-webObject");
    const MT3SETB_utils2_1 = require("./framework/framework/MT3SETB-utils2");
    const MT3SETB_mtf_pb_wrapper_1 = require("./common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB__main_1 = require("./MT3SETB-_main");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const MSG_ACCOUNT_LOGIN_FAILED = 12;
    let App = class App extends cc.Component {
      constructor() {
        super();
        this.gameType = "";
        this.gameId = 110;
        this.langJson = null;
        this.itemJson = null;
        this.pathJson = null;
        this.pathBin = null;
        this.device = null;
        this.scenePrefab = null;
        this.dataMgrPrefab = null;
        this.roomSelectPrefab = null;
        this.i18nPrefab = null;
        this.flowCtrl = null;
        this.isNetBreak = false;
        this.isDisconnection = false;
        this.lostCountdown = 0;
        this.isProfileDone = false;
        this.isLangImgDone = false;
        this.isPreloadDone = false;
        this.loadingFlag = false;
        this.hasJoinTable = false;
        this.isLogin = false;
        this.loginTime = null;
        this.retryGapCount = 0;
        this.isSelectRoom = false;
        this.nextTheme = -1;
        this.nextRoom = -1;
        this.theme = -1;
        this.room = -1;
        this.isExchangeShowed = false;
        this.isJPListshowed = false;
        this.isJPListRedDotshowed = false;
        this.isBannerShowed = false;
        this.isAppNovice = false;
        this.debug = {
          is60FPS: false,
          isSharpShooter: false,
          isShowColliderBox: false
        };
        this.bDemo = false;
        this.resizeCallbacks = [];
        this.connector = null;
        this.command = null;
        this.timeoutTimer = 0;
        this.pong = () => {
          this.timeoutTimer = 0;
        };
        this.player = null;
        this.mail = null;
        this.card = null;
        this.canUseMaxBet = false;
        this.isTableInfoRetrieved = false;
      }
      onLoad() {
        MT3SETB__main_1.CMain.initGroupList();
        MT3SETB_Comm_1.Comm.app = this;
        cc.game.setFrameRate(60);
        cc.dynamicAtlasManager.enabled = true;
        cc.dynamicAtlasManager.maxAtlasCount = 1;
        cc.dynamicAtlasManager.maxFrameSize = 256;
        cc.dynamicAtlasManager.textureSize = 1024;
        cc.sys.isNative && (cc.dynamicAtlasManager.enabled = false);
        this.initAllStatic();
        this.setup();
      }
      onDestroy() {
        this.clearAllInterval();
        cc.view.setResizeCallback();
        MT3SETB__main_1.CMain.revertGroupList();
      }
      initAllStatic() {
        MT3SETB_PickupRewardShow_1.PickupRewardShow.init();
        MT3SETB_FreeBulletMgr_1.FreeBulletMgr.init();
        MT3SETB_CatchRewardShow_1.CatchRewardShow.init();
        MT3SETB_BonusCardMgr_1.BonusCardMgr.init();
        MT3SETB_timeline_1.InitTimeline(this.pathJson.json);
      }
      clearAllInterval() {
        MT3SETB_vip_1.clearVIPInterval();
        MT3SETB_LangList_1.LangList.onDestroy();
      }
      start() {
        var me = this;
        this.flowInit();
        this.testInit();
        cc.view.setResizeCallback(function() {
          me.resizeCallbacks.forEach(function(cb) {
            cb && cb();
          });
        });
        cc.sys.isMobile && window.addEventListener("orientationchange", () => {
          me.resizeCallbacks.forEach(function(cb) {
            cb && cb();
          });
        });
        window.addEventListener("fullscreenchange", () => {
          me.resizeCallbacks.forEach(function(cb) {
            cb && cb();
          });
        });
        "undefined" != typeof LobbyData && (this.isAppNovice = LobbyData.novice);
        this.registResizeCallback(this.onResizeCanvas.bind(this));
        this.onResizeCanvas();
        if (!MT3SETB_platform_1.isDebugMode()) {
          MT3SETB_Comm_1.Comm.debug.node.destroy();
          MT3SETB_Comm_1.Comm.debug = null;
        }
      }
      get winSize() {
        let vs = cc.view.getVisibleSize();
        let designResolution = cc.view.getDesignResolutionSize();
        return vs.height > designResolution.height ? designResolution : vs;
      }
      get winSizeFactor() {
        let ds = cc.view.getDesignResolutionSize(), vs = cc.view.getVisibleSize(), sa = cc.sys.getSafeAreaRect(), usableHeight = Math.min(vs.height, sa.height), usableWidth = Math.min(vs.width, sa.width), height = Math.min(ds.height, usableHeight), width = usableWidth, scale = Math.min(1, usableHeight / ds.height);
        return {
          width: width,
          height: height,
          scaleX: 1 / scale,
          scaleY: 1,
          x: .5 * (vs.width - width),
          y: .5 * (vs.height - height)
        };
      }
      onResizeCanvas() {
        let size = this.winSizeFactor;
        let canvas = cc.find("Canvas");
        canvas.getComponentsInChildren(cc.Widget).forEach(widget => {
          widget.enabled && widget.updateAlignment();
        });
        let loading = cc.find("loading");
        if (loading) {
          loading.setContentSize(size.width, size.height);
          loading.x = canvas.x + size.x;
          loading.y = canvas.y;
          loading.getComponentsInChildren(cc.Widget).forEach(widget => {
            widget.updateAlignment();
          });
        }
        let fishRate = cc.find("fishRate");
        if (fishRate) {
          fishRate.x = canvas.x + size.x;
          fishRate.y = canvas.y;
          let sx = size.width / fishRate.width, sy = size.height / fishRate.height;
          fishRate.scale = Math.min(sx, sy);
        }
        let skinChange = cc.find("skinChange");
        if (skinChange) {
          skinChange.x = canvas.x + size.x;
          skinChange.y = canvas.y;
          let sx = size.width / skinChange.width, sy = size.height / skinChange.height;
          skinChange.scale = Math.min(sx, sy);
        }
        let cursor = cc.find("Cursor");
        cursor && (cursor.y = canvas.y);
        let msgbox = cc.find("MsgBox/Node");
        msgbox && (msgbox.y = canvas.y - msgbox.height / 2);
        msgbox && (msgbox.x = size.width / 2 - msgbox.width / 2 + size.x + size.x);
        let scrollingToast = cc.find("ScrollingToast");
        scrollingToast && (scrollingToast.y = canvas.y);
        scrollingToast && (scrollingToast.x = canvas.x + size.x);
        let toast = cc.find("Toast/Node");
        toast && (toast.y = canvas.y);
        toast && (toast.x = canvas.x + size.x);
        let idleToast = cc.find("IdleToast/countdown");
        idleToast && (idleToast.x = size.x);
        let switchLoading = cc.find("Switch");
        switchLoading && (switchLoading.x = size.x);
        let connectionToast = cc.find("ConnectionToast/Node");
        connectionToast && (connectionToast.x = size.x);
        let mask = cc.find("Boundary");
        mask && (mask.y = canvas.y);
        let leftBoundary = cc.find("Boundary/Left");
        leftBoundary && (leftBoundary.x = -canvas.x + size.x + size.x);
        let ds = cc.view.getDesignResolutionSize(), scaleX = Math.min(1, size.width / ds.width), scaleY = Math.min(1, size.height / ds.height), scale = Math.min(scaleX, scaleY), offset = ds.height - scale * ds.height, boundY = ds.height / 2 - offset / 2;
        let topBoundary = cc.find("Boundary/Top");
        topBoundary && (topBoundary.y = boundY);
        let bottomBoundary = cc.find("Boundary/Bottom");
        bottomBoundary && (bottomBoundary.y = -boundY);
      }
      update(e) {
        this.checkDisconnection(e);
        this.flowCtrl.tick();
        this.update_PingTimeout(e);
      }
      setup() {
        var e = this;
        if (MT3SETB_platform_1.GetParamGameID()) {
          this.gameType = MT3SETB_platform_1.GetParamGameID().toLowerCase();
          this.gameId = -1;
          switch (this.gameType) {
           case "mtfks":
            this.gameId = 101;
            break;

           case "mtffd":
            this.gameId = 103;
            break;

           case "mtfurd":
            this.gameId = 141;
            break;

           case "mtfdss":
            this.gameId = 145;
            break;

           case "mtfsfb":
            this.gameId = 142;
            break;

           case "mtfglg":
            this.gameId = 143;
            break;

           case "mtftt":
            this.gameId = 144;
            break;

           case "mtfgl":
            this.gameId = 105;
            break;

           case "mtfnb":
            this.gameId = 107;
            break;

           case "mtfgsk":
            this.gameId = 108;
            break;

           case "mtfam":
            this.gameId = 140;
            break;

           case "mtfpp":
            this.gameId = 106;
            break;

           case "mtfasw":
            this.gameId = 146;
            break;

           case "mtfoo":
            this.gameId = 102;
            break;

           case "mtfkc":
            this.gameId = 104;
          }
        }
        -1 == this.gameId && this.scheduleOnce(() => {
          e.shutdownByMsgBox(MT3SETB_LangList_1.LangList.getString("gameLoading.txt"));
        }, 1);
        MT3SETB_Comm_1.Comm.gameType = this.gameType.toLowerCase();
        MT3SETB_Comm_1.Comm.gameId = this.gameId;
        MT3SETB_platform_1.apiInit(this.getUrl(), this.gameType.toUpperCase(), this.gameType.toLowerCase(), {
          mail: true,
          vip: true,
          promotion: true,
          card: true,
          agent: true
        });
        MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LAUNCH);
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_creator);
        this.bDemo = "true" === this.getQuery("demo");
        window.onerror = function(e, t, o, n, i) {
          MT3SETB_track_1.SendException(JSON.stringify(i.stack));
        };
        window.addEventListener("beforeunload", function() {
          e.logout();
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_beforeunload, e.isLogin ? "1" : "0");
        });
        "1" === this.getQuery("d") && cc.debug.setDisplayStats(true);
        if (window.isFirstTimeBoot) {
          var t = new Date().getTime() - window.bootTimestamp.getTime();
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Load_lobby_time, t.toString());
          window.isFirstTimeLobby = true;
          window.isFirstTimeBoot = false;
        }
        -1 === this.theme && (this.theme = MT3SETB_BetRecord_1.BetRecord.getSuggestiveTheme());
        this.theme = cc.misc.clampf(this.theme, 1, 2);
        this.room = -1;
        MT3SETB_Comm_1.Comm.i18n = cc.instantiate(this.i18nPrefab).getComponent(MT3SETB_i18n_1.i18n);
        MT3SETB_Comm_1.Comm.i18n.setLocal(MT3SETB_platform_1.GetLang());
        MT3SETB_LangList_1.LangList.init(MT3SETB_Comm_1.Comm.i18n.getLocal(), this.langJson.json, MT3SETB_Comm_1.Comm.i18n.getImage());
        MT3SETB_glue_1.default.msgOK = function(e) {
          return new Promise(function(t) {
            MT3SETB_Comm_1.Comm.msgBox.setMessage_callback(1, e, function() {
              return t(true);
            }, function() {
              return t(false);
            });
          });
        };
        MT3SETB_glue_1.default.msgYesNo = function(e) {
          return new Promise(function(t) {
            MT3SETB_Comm_1.Comm.msgBox.setMessage_callback(2, e, function() {
              return t(true);
            }, function() {
              return t(false);
            });
          });
        };
        MT3SETB_glue_1.default.getThousandsNum = function(e) {
          return MT3SETB_Comm_1.Comm.getThousandsNum(e);
        };
        MT3SETB_event_1.EventBus.register("pong", this.pong);
      }
      flowInit() {
        var e = this;
        e.updateProgressLoading(.2, false);
        this.flowCtrl = new MT3SETB_Automata_1.Automata("Connecting", {
          Connecting: function(t) {
            if (t.isEntering()) {
              t.transit(t.state.LoadStage);
              e.onOpen();
              e.updateProgressLoading(.4);
            }
          },
          LoadRoomSelect: function(t) {
            e.loadRoomSelect();
          },
          LoadStage: function(t) {
            t.isEntering() && e.loadStage();
          },
          JoinTable: function() {
            e.joinTable();
          },
          CheckLogoPage: function() {
            e.checkLogoPage();
          },
          SwitchStage: function(t) {
            t.isEntering() && e.switchStage();
          },
          LoadWait: function(t) {
            var _a;
            let progress = .4;
            e.isLogin && (progress += .2);
            e.isTableInfoRetrieved && (progress += .3);
            MT3SETB_Comm_1.Comm.dataMgr.isLoaded && (progress += .1);
            e.updateProgressLoading(progress);
            if (e.isLogin && e.isTableInfoRetrieved && MT3SETB_Comm_1.Comm.dataMgr.isLoaded) if (e.hasJoinTable) t.isRunning(t.state.LoadWait) && t.transit(t.state.JoinTable); else {
              MT3SETB__main_1.CMain.hideLoading();
              null === (_a = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _a ? void 0 : _a.show();
              t.isRunning(t.state.LoadWait) && t.transit(t.state.Idle);
            }
          },
          Idle: function() {}
        });
      }
      onClickJoinRoom(theme, room) {
        var e = this;
        this.theme = theme;
        this.room = room;
        var n = this.flowCtrl;
        this.loadingFlag = true;
        this.hasJoinTable = true;
        n.isRunning(n.state.Idle) && n.transit(n.state.JoinTable);
        if (MT3SETB_Comm_1.Comm.debug && !MT3SETB_Comm_1.Comm.debug.isDebugEnabled) {
          MT3SETB_Comm_1.Comm.debug.node.destroy();
          MT3SETB_Comm_1.Comm.debug = null;
        }
      }
      loadRoomSelect() {
        var o = cc.find("Canvas/fishRoom");
        if (o) {
          o.active = true;
          o.setSiblingIndex(o.parent.childrenCount - 1);
        } else {
          this.loadingFlag = true;
          var t = cc.instantiate(this.roomSelectPrefab);
          t.parent = cc.find("Canvas");
        }
        cc.log("Room Select is loaded.");
        this.isSelectRoom = true;
        var n = this.flowCtrl;
        n.isRunning(n.state.LoadRoomSelect) && n.transit(n.state.LoadWait);
        this.closeSwitchLoading();
      }
      getAllNodes(root, nodeArray = []) {
        nodeArray.push(root);
        for (let i = 0; i < root.childrenCount; i++) this.getAllNodes(root.children[i], nodeArray);
        return nodeArray;
      }
      loadStage() {
        this.loadingFlag = true;
        var t = cc.instantiate(this.scenePrefab), o = cc.find("Canvas/Stage"), dataMgr = cc.instantiate(this.dataMgrPrefab);
        if (o) {
          cc.log("Stage exits. Destroy the old one.");
          MT3SETB_Comm_1.Comm.app.unscheduleAllCallbacks();
          o.destroy();
        }
        t.parent = cc.find("Canvas");
        dataMgr.parent = t.getChildByName("Controller");
        cc.log("Stage is loaded.");
        var n = this.flowCtrl;
        n.isRunning(n.state.LoadStage) && n.transit(n.state.LoadRoomSelect);
        this.isPreloadDone = true;
        this.closeSwitchLoading();
      }
      joinTable() {
        if (this.isPreloadDone && this.isProfileDone) {
          MT3SETB_Comm_1.Comm.phaser.toGame(this.theme, this.room);
          var e = this.flowCtrl;
          e.isRunning(e.state.JoinTable) && e.transit(e.state.CheckLogoPage);
          MT3SETB_Comm_1.Comm.snd.playMusic(MT3SETB_SoundConst_1.BGMSound.BGM);
        }
      }
      checkLogoPage() {
        var e = this;
        MT3SETB_Comm_1.Comm.runTask(0, function() {
          e.closeLogoPage();
        });
        var t = this.flowCtrl;
        t.isRunning(t.state.CheckLogoPage) && t.transit(t.state.Idle);
      }
      switchStage() {
        MT3SETB_Comm_1.Comm.app.setCommand(MT3SETB_Comm_1.Comm.phaser.onCommand.bind(MT3SETB_Comm_1.Comm.phaser));
        this.isPreloadDone = false;
        this.openSwitchLoading();
        var e = this.flowCtrl;
        e.isRunning(e.state.SwitchStage) && e.transit(e.state.LoadStage);
      }
      checkDisconnection(e) {
        var t = this.lostCountdown;
        if (t < 13 && t >= 10) {
          t -= e;
          MT3SETB_Comm_1.Comm.disconnectToast.showDisconnect(true);
        } else this.isDisconnection && !this.isNetBreak && MT3SETB_Comm_1.Comm.disconnectToast.showDisconnect(true);
        this.lostCountdown = t;
      }
      getQuery(e) {
        var t = this.getUrl();
        if (-1 !== t.indexOf("?")) for (var o = t.split("?")[1].split("&"), n = 0, i = o.length; n < i; ++n) if (o[n].split("=")[0] === e) return o[n].split("=")[1];
        return "";
      }
      getUrl() {
        if (cc.sys.isNative && window["subGameInitData_MT3SETB"]) return void 0 !== window["subGameInitData_MT3SETB"]["h"] ? window["subGameInitData_MT3SETB"]["h"] : "";
        return "undefined" != typeof LobbyData ? LobbyData.url : location.href;
      }
      getLobbyID() {
        return "undefined" != typeof LobbyData ? LobbyData.lobbyID : -1;
      }
      openLogoPage() {
        MT3SETB_webObject_1.webObjSetLogoPage("block");
      }
      setLoadingBar(e, t, o) {
        if (e && t) {
          e.style.width = o.toFixed(2) + "%";
          t.textContent = "\u6e38\u620f\u52aa\u529b\u521d\u59cb\u5316\u4e2d\uff0c\u8bf7\u8010\u5fc3\u7b49\u5019\u3002";
          o >= 100 && (e.style.width = "100%");
        }
      }
      closeLogoPage() {
        MT3SETB_webObject_1.webObjSetLogoPage("none");
      }
      openSwitchLoading() {
        cc.find("Switch/Loading").active = true;
        cc.find("Switch/Text").active = true;
      }
      closeSwitchLoading() {
        cc.find("Switch/Loading").active = false;
        cc.find("Switch/Text").active = false;
      }
      showLostCountdown(e) {
        if (e) {
          var t = MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(4), Math.floor(this.lostCountdown).toString());
          MT3SETB_Comm_1.Comm.toast.setText(t);
        } else MT3SETB_Comm_1.Comm.toast.hide();
      }
      onOpen() {
        return __awaiter(this, void 0, void 0, function*() {
          try {
            MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAP);
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gapAck, MT3SETB_platform_1.GetSSOKey());
            const e = yield MT3SETB_platform_1.Login();
            MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAP_END);
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gapReq_success, MT3SETB_platform_1.GetSSOKey());
            this.connector = MT3SETB_websocket_1.CreateSocket(e);
            this.connector.onopen = () => {
              this.timeoutTimer = 0;
            };
            this.connector.onerror = () => {
              if (!this.isDisconnection) {
                this.isDisconnection = true;
                this.lostCountdown = 15;
              }
            };
            this.connector.onclose = () => {
              if (!this.isDisconnection) {
                this.isDisconnection = true;
                this.lostCountdown = 15;
              }
            };
            this.connector.onmessage = (e, t) => {
              this.onCommand(e, t);
            };
            cc.view.enableAutoFullScreen(MT3SETB_profile_1.checkFullScreenOpen());
          } catch (t) {
            console.log(t);
            switch (t.code) {
             case "ECONNABORTED":
              this.retryGapCount += 1;
              MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gapAck_readyToRety, this.retryGapCount.toString());
              this.onOpen();
              break;

             case "LOGIN_ERROR":
              MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAP_END, 5);
              MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gapReq_response, MT3SETB_platform_1.GetSSOKey());
              MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_try_catch);
              this.closeLogoPage();
              this.onClose();
              break;

             case "NOT_SERVICE":
              MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAP_END, 5);
              MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gapReq_response, MT3SETB_platform_1.GetSSOKey());
              MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_try_catch);
              this.closeLogoPage();
              this.shutdownByMsgBox(MT3SETB_language_1.GetLanguage(21));
              break;

             default:
              MT3SETB_track_1.SendEvent(201, 5);
              MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAP_END, 5);
              MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gapReq_status, MT3SETB_platform_1.GetSSOKey());
              MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_try_catch);
              this.closeLogoPage();
              this.onClose();
            }
          }
        });
      }
      update_PingTimeout(e) {
        if (null != this.connector) {
          if (this.timeoutTimer > 8) {
            if (this.isNetBreak) return;
            this.connector.reconnect();
            return void (this.timeoutTimer = 0);
          }
          this.timeoutTimer += e;
        }
      }
      shutdownByMsgBox(e) {
        MT3SETB_Comm_1.Comm.msgBox.setMessage_callback(0, e, () => {
          MT3SETB_Comm_1.Comm.app.backToLobby();
        });
      }
      backToLobby() {
        false;
        var exit = function() {
          if (cc.sys.isNative) return;
          window.opener = null;
          window.open("", "_self", "");
          window.close();
          window.open("", "_top", "");
          window.top.close();
          window.location.href = "about:blank";
          window.close();
        };
        (1 != MT3SETB_platform_1.GetLobbyMode() || this.isDisconnection) && (2 == MT3SETB_platform_1.GetLobbyMode() && "" != MT3SETB_platform_1.GetHomeUrl() ? window.top == window.self ? window.location.href = MT3SETB_platform_1.GetHomeUrl() : top.location.href = MT3SETB_platform_1.GetHomeUrl() : 3 == MT3SETB_platform_1.GetLobbyMode() ? window.parent.postMessage({
          name: "closed",
          sender: "game"
        }, "*") : 4 == MT3SETB_platform_1.GetLobbyMode() && "" != MT3SETB_platform_1.GetHomeUrl() ? window.location.href = MT3SETB_platform_1.GetHomeUrl() : exit());
        MT3SETB__main_1.CMain.backToLobby();
      }
      disconnection() {
        MT3SETB_Comm_1.Comm.uiCtrl && MT3SETB_Comm_1.Comm.uiCtrl.hideReport();
        this.connector && this.connector.close();
        this.isNetBreak = true;
        MT3SETB_Comm_1.Comm.disconnectToast.showDisconnect(false);
      }
      onError() {
        this.shutdownByMsgBox(8);
      }
      onClose() {
        this.shutdownByMsgBox(8);
      }
      onCommand(e, t) {
        var n;
        switch (e) {
         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_LOGIN_ACK:
          n = MT3SETB_mtf_pb_wrapper_1.mtf.LoginDataAck.decode(t);
          this.isDisconnection = false;
          MT3SETB_Comm_1.Comm.disconnectToast.showDisconnect(false);
          n.result == MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_SUCCESS || (n.result, MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_RELOGIN);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_TRANSFER:
          n = MT3SETB_mtf_pb_wrapper_1.mtf.TransferAck.decode(t);
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_changeGameSuccess, n.id.toString());
          MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_LOGOUT, null);
          MT3SETB_Comm_1.Comm.app.transferAck(n);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_LOGOUT_ACK:
          n = MT3SETB_mtf_pb_wrapper_1.mtf.LogoutAck.decode(t);
          this.isLogin = false;
          this.closeLogoPage();
          this.disconnection();
          if (n.type === MT3SETB_mtf_pb_wrapper_1.mtf.LogoutType.LOGOUTDUPLICATE) this.shutdownByMsgBox(MT3SETB_language_1.GetLanguage(44)); else if (n.type === MT3SETB_mtf_pb_wrapper_1.mtf.LogoutType.LOGOUTOVERDRAFT) this.shutdownByMsgBox(MT3SETB_language_1.GetLanguage(1020)); else if (n.type === MT3SETB_mtf_pb_wrapper_1.mtf.LogoutType.LOGOUTINVALIDGAME) this.shutdownByMsgBox(MT3SETB_LangList_1.LangList.getString(MSG_ACCOUNT_LOGIN_FAILED)); else if (n.type === MT3SETB_mtf_pb_wrapper_1.mtf.LogoutType.LOGOUTINVALIDPLATFORM) if (123 === n.code) {
            var i = JSON.parse(n.message);
            this.shutdownByMsgBox(i.message.replace(/\\n/g, "\n"));
          } else this.shutdownByMsgBox(MT3SETB_LangList_1.LangList.getString(MSG_ACCOUNT_LOGIN_FAILED)); else this.shutdownByMsgBox(MT3SETB_language_1.GetLanguage(43));
        }
        this.command && this.command(e, t);
      }
      setCommand(e) {
        this.command = e;
      }
      send(e, t) {
        this.connector && this.connector.send(e, t);
      }
      logout() {
        this.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_LOGOUT, null);
      }
      setPlayer(e) {
        this.player = e;
        MT3SETB_Comm_1.Comm.coinType = MT3SETB_profile_1.GetCurrency();
        MT3SETB_Comm_1.Comm.coinRatio = MT3SETB_profile_1.GetRatio();
        MT3SETB_Comm_1.Comm.jpRate = 43 == MT3SETB_Comm_1.Comm.coinType ? .003739 : MT3SETB_profile_1.GetRate();
      }
      getPlayer() {
        return this.player;
      }
      setMail(e) {
        this.mail = e;
      }
      getMail() {
        return this.mail;
      }
      clearMail() {
        this.mail = null;
      }
      getItemData() {
        return this.itemJson.json;
      }
      testInit() {}
      isJPListOpen() {
        for (var e = false, t = [ 0, 3, 6 ], o = MT3SETB_platform_1.GetApiID(), n = 0; n < t.length; ++n) if (o == t[n]) {
          e = true;
          break;
        }
        return e;
      }
      checkMaxBet() {
        if (this.canUseMaxBet || !MT3SETB_Comm_1.Comm.gameCtrl || MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() < 0) return Number.MAX_SAFE_INTEGER;
        var e = MT3SETB_platform_1.GetApiID();
        if (105 == e || 107 == e || 1002 == e) {
          var t = MT3SETB_reward_1.GetLevelRewadData().level, o = MT3SETB_Comm_1.Comm.bankSys.getClientCoin(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat());
          if (this.canUseMaxBet = t && t >= 3 || o >= 3e3 * MT3SETB_Comm_1.Comm.coinRatio, 
          !this.canUseMaxBet) return 3 * MT3SETB_Comm_1.Comm.coinRatio;
        }
        return Number.MAX_SAFE_INTEGER;
      }
      transferAck(e) {
        this.nextRoom = -999;
        this.logout();
        if ("undefined" != typeof LobbyData) {
          var t = cc.director.getScene().getChildByName("LobbyBridge");
          this.setCommand(null);
          this.unscheduleAllCallbacks();
          cc.audioEngine.stopAll();
          this.connector && this.connector.close();
          var o = cc.find("Canvas/Stage");
          o && (console.log("LobbyBridge destroy Stage."), o.destroy());
          console.log("LobbyBridge id:" + e.id);
          true === MT3SETB_Comm_1.Comm.gameCtrl.isTimeout ? t.emit("onSubGameCloseSelf", {
            mute: !MT3SETB_Comm_1.Comm.snd.isMusicOpen()
          }) : e.id == this.getLobbyID() ? t.emit("onSubGameClosed", {
            mute: !MT3SETB_Comm_1.Comm.snd.isMusicOpen()
          }) : t.emit("onSubGameCloseSelf", {
            mute: !MT3SETB_Comm_1.Comm.snd.isMusicOpen(),
            gameId: e.id
          });
        } else window.location.replace(e.url);
      }
      updateProgressLoading(currProgress, isTween = true) {
        var _a, _b;
        let progressBar = null === (_a = cc.find("loading/progressbar")) || void 0 === _a ? void 0 : _a.getComponent(cc.ProgressBar);
        let progressText = null === (_b = cc.find("loading/progressbar/progressBarLabel")) || void 0 === _b ? void 0 : _b.getComponent(cc.Label);
        if (null == progressBar || null == progressText) return;
        if (isTween) cc.tween(progressBar).to(1, {
          progress: currProgress
        }, {
          onUpdate: () => {
            let progressVal = progressBar.progress;
            progressText.string = Math.floor(100 * progressVal) + "%";
          }
        }).delay(2).start(); else {
          progressBar.progress = currProgress;
          progressText.string = Math.floor(100 * currProgress) + "%";
        }
      }
      transferRequest(e) {
        var t = new MT3SETB_mtf_pb_wrapper_1.mtf.TransferReq();
        t.id = e;
        var o = MT3SETB_mtf_pb_wrapper_1.mtf.TransferReq.encode(t);
        this.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_TRANSFER, o);
      }
      checkAppLobbyNoviceEvent() {
        if (this.isAppNovice) {
          var e = cc.director.getScene().getChildByName("LobbyBridge");
          e && e.emit("onSubGameSetNovice");
          this.isAppNovice = false;
        }
      }
      registResizeCallback(e) {
        for (var t = -1, o = this.resizeCallbacks, n = 0, i = o.length; n < i; ++n) if (!o[n]) {
          t = n;
          break;
        }
        t < 0 && (t = o.length);
        o[t] = e;
        return t;
      }
      cancelResizeCallback(e) {
        this.resizeCallbacks[e] = null;
      }
    };
    __decorate([ property(cc.String) ], App.prototype, "gameType", void 0);
    __decorate([ property(cc.Integer) ], App.prototype, "gameId", void 0);
    __decorate([ property(cc.JsonAsset) ], App.prototype, "langJson", void 0);
    __decorate([ property(cc.JsonAsset) ], App.prototype, "itemJson", void 0);
    __decorate([ property(cc.JsonAsset) ], App.prototype, "pathJson", void 0);
    __decorate([ property(cc.BufferAsset) ], App.prototype, "pathBin", void 0);
    __decorate([ property(MT3SETB_Device_1.Device) ], App.prototype, "device", void 0);
    __decorate([ property(cc.Prefab) ], App.prototype, "scenePrefab", void 0);
    __decorate([ property(cc.Prefab) ], App.prototype, "dataMgrPrefab", void 0);
    __decorate([ property(cc.Prefab) ], App.prototype, "roomSelectPrefab", void 0);
    __decorate([ property(cc.Prefab) ], App.prototype, "i18nPrefab", void 0);
    App = __decorate([ ccclass ], App);
    exports.App = App;
    cc._RF.pop();
  }, {
    "../res/Common/script/MT3SETB-BonusCardMgr": "MT3SETB-BonusCardMgr",
    "../res/Common/script/MT3SETB-CatchRewardShow": "MT3SETB-CatchRewardShow",
    "../res/Common/script/MT3SETB-FreeBulletMgr": "MT3SETB-FreeBulletMgr",
    "./MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-_main": "MT3SETB-_main",
    "./common/api/MT3SETB-event": "MT3SETB-event",
    "./common/api/MT3SETB-glue": "MT3SETB-glue",
    "./common/api/MT3SETB-language": "MT3SETB-language",
    "./common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./common/api/MT3SETB-platform": "MT3SETB-platform",
    "./common/api/MT3SETB-profile": "MT3SETB-profile",
    "./common/api/MT3SETB-reward": "MT3SETB-reward",
    "./common/api/MT3SETB-timeline": "MT3SETB-timeline",
    "./common/api/MT3SETB-track": "MT3SETB-track",
    "./common/api/MT3SETB-vip": "MT3SETB-vip",
    "./common/api/MT3SETB-webObject": "MT3SETB-webObject",
    "./common/api/MT3SETB-websocket": "MT3SETB-websocket",
    "./framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "./gameplay/MT3SETB-BetRecord": "MT3SETB-BetRecord",
    "./gameplay/MT3SETB-PickupRewardShow": "MT3SETB-PickupRewardShow",
    "./gameplay/MT3SETB-SoundConst": "MT3SETB-SoundConst",
    "./system/MT3SETB-Device": "MT3SETB-Device",
    "./system/MT3SETB-LangList": "MT3SETB-LangList",
    "./system/MT3SETB-i18n": "MT3SETB-i18n",
    "./utils/MT3SETB-Automata": "MT3SETB-Automata"
  } ],
  "MT3SETB-AutoMaticTouch": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "88978wWnWBNHpOZzi/nnEms", "MT3SETB-AutoMaticTouch");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.AutoMaticTouch = void 0;
    const {ccclass: ccclass} = cc._decorator;
    let AutoMaticTouch = class AutoMaticTouch extends cc.Component {
      constructor() {
        super();
      }
      onLoad() {
        cc.director.getCollisionManager().enabled = true;
      }
      onCollisionEnter(e) {
        e.node.getComponent(cc.Toggle).isChecked = !e.node.getComponent(cc.Toggle).isChecked;
      }
    };
    AutoMaticTouch = __decorate([ ccclass ], AutoMaticTouch);
    exports.AutoMaticTouch = AutoMaticTouch;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-AutoMatic": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ce491YnT1JOoqBbhi0imzbt", "MT3SETB-AutoMatic");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.AutoMatic = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let AutoMatic = class AutoMatic extends cc.Component {
      constructor() {
        super();
        this.autoFishNode = null;
        this.touchLayer = null;
        this.checkNode = null;
        this.selectNodeList = [];
        this.selectFishIDList = [];
        this.chooseLowNode = null;
        this.totalShotNode = null;
        this.chipNode = null;
        this.autoFire = null;
        this.autoTorped = null;
        this.autoLight = null;
        this.totalShotStr = null;
        this.chipStr = null;
        this.totalShotBackStr = null;
        this.shootSubButton = null;
        this.shootAddButton = null;
        this.chipSubButton = null;
        this.chipAddButton = null;
        this.blockNode = null;
        this.chooseFishIDList = [];
        this.pressSubShootButton = false;
        this.pressShootDelta = 0;
        this.pressAddShootButton = false;
        this.autoShootCount = 3e3;
        this.pressSubChipButton = false;
        this.pressChipDelta = 0;
        this.pressAddChipButton = false;
        this.autoChipCount = 0;
        this.autoLogTime = 0;
        this.fishNoList = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ];
        this.bInit = false;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.autoMatic = this;
      }
      start() {
        this.shootSubButton.node.on(cc.Node.EventType.TOUCH_START, function() {
          this.subButton_Shoot(1);
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fire_subShoot);
        }, this);
        this.shootSubButton.node.on(cc.Node.EventType.TOUCH_END, function() {
          this.subButton_Shoot(0);
        }, this);
        this.shootSubButton.node.on(cc.Node.EventType.TOUCH_CANCEL, function() {
          this.subButton_Shoot(0);
        }, this);
        this.shootAddButton.node.on(cc.Node.EventType.TOUCH_START, function() {
          this.addButton_Shoot(1);
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fire_addShoot);
        }, this);
        this.shootAddButton.node.on(cc.Node.EventType.TOUCH_END, function() {
          this.addButton_Shoot(0);
        }, this);
        this.shootAddButton.node.on(cc.Node.EventType.TOUCH_CANCEL, function() {
          this.addButton_Shoot(0);
        }, this);
        this.touchLayer.on(cc.Node.EventType.TOUCH_START.toString(), this.autoMaticTouchMove, this);
        this.touchLayer.on(cc.Node.EventType.TOUCH_MOVE.toString(), this.autoMaticTouchMove, this);
        this.touchLayer.on(cc.Node.EventType.TOUCH_END.toString(), this.autoMaticTouchEnd, this);
        this.touchLayer.on(cc.Node.EventType.TOUCH_CANCEL.toString(), this.autoMaticTouchEnd, this);
      }
      update() {
        this.pressSubShootButton && (this.pressShootDelta = 1.01 * this.pressShootDelta, 
        this.pressShootDelta > 1.5 && this.updateButton_Shoot(-this.pressShootDelta));
        this.pressAddShootButton && (this.pressShootDelta = 1.01 * this.pressShootDelta, 
        this.pressShootDelta > 1.5 && this.updateButton_Shoot(this.pressShootDelta));
        this.pressSubChipButton && (this.pressChipDelta = 1.01 * this.pressChipDelta, this.pressChipDelta > 1.5 && this.updateButton_Chip(-this.pressChipDelta));
        this.pressAddChipButton && (this.pressChipDelta = 1.01 * this.pressChipDelta, this.pressChipDelta > 1.5 && this.updateButton_Chip(this.pressChipDelta));
      }
      init() {
        for (var e = MT3SETB_platform_1.GetGameID(), t = 0; t < this.selectNodeList.length; ++t) {
          var o = cc.sys.localStorage.getItem("AutoMatic_" + e + t.toString());
          o && (this.selectNodeList[t].isChecked = "0" != o);
        }
        var n = cc.sys.localStorage.getItem("chooseLow" + e);
        n && "0" != n && (this.chooseLowNode.isChecked = true);
        var a = cc.sys.localStorage.getItem("totalShot" + e);
        a && "0" != a && (this.totalShotNode.isChecked = true, this.autoShootCount = parseInt(a), 
        this.totalShotStr.string = a);
        var r = cc.sys.localStorage.getItem("AutoOn" + e);
        r && "0" != r && (this.autoFire.isChecked = true, this.blockNode.active = true);
        var s = cc.sys.localStorage.getItem("TorpedoOn" + e);
        s && "0" != s && (this.autoTorped.isChecked = true), this.autoLight.node.active = !MT3SETB_platform_1.isDisable0Bet();
      }
      showAutoMatic(e, t) {
        var o;
        this.chooseFishIDList = [];
        if ("open" == t) this.bInit || (this.init(), this.bInit = true), this.autoFishNode.active = true; else if ("finish" == t) {
          var r = MT3SETB_platform_1.GetGameID();
          this.chooseLowNode.isChecked && (o = this.chooseFishIDList).push.apply(o, this.fishNoList);
          var s = "", c = 0;
          for (var l in this.selectNodeList) this.selectNodeList[l].isChecked && (c += 1, 
          s += this.selectFishIDList[l].toString() + ",", this.chooseFishIDList.push(this.selectFishIDList[l]), 
          32 == this.selectFishIDList[l] && this.chooseFishIDList.push(33));
          if (c >= this.selectNodeList.length && (s = "all"), this.chooseFishIDList.length > 0 || this.autoFire.isChecked) {
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fire_autoStart, s);
            this.autoFishNode.active = !this.autoFishNode.active;
            for (let l = 0; l < this.selectNodeList.length; ++l) {
              var u = this.selectNodeList[l].isChecked ? "1" : "0";
              cc.sys.localStorage.setItem("AutoMatic_" + r + l.toString(), u);
            }
            this.chooseLowNode.isChecked ? (MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fire_chooseOdds), 
            cc.sys.localStorage.setItem("chooseLow" + r, "1")) : cc.sys.localStorage.setItem("chooseLow" + r, "0"), 
            this.totalShotNode.isChecked ? (MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fire_chooseShoot), 
            cc.sys.localStorage.setItem("totalShot" + r, this.autoShootCount.toString())) : cc.sys.localStorage.setItem("totalShot" + r, "0"), 
            this.autoFire.isChecked ? (MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fire_autoFire), 
            cc.sys.localStorage.setItem("AutoOn" + r, "1")) : cc.sys.localStorage.setItem("AutoOn" + r, "0"), 
            this.autoTorped.isChecked ? (MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fire_autoTorped), 
            cc.sys.localStorage.setItem("TorpedoOn" + r, "1")) : cc.sys.localStorage.setItem("TorpedoOn" + r, "0"), 
            this.autoFire.isChecked ? (MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("AutoOn"), 
            this.chooseFishIDList = []) : this.autoTorped.isChecked && (MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("TorpedoOn"), 
            MT3SETB_Comm_1.Comm.uiCtrl.switchChipState("Torpedo", true), MT3SETB_Comm_1.Comm.uiCtrl.setTorpedoCoin(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet() * MT3SETB_Comm_1.Comm.shootMgr.torpedoHitCount)), 
            MT3SETB_Comm_1.Comm.shootMgr.setIsRetain(this.autoLight.isChecked), this.autoLogTime = new Date().getTime(), 
            this.chooseFishIDList.sort(function(e, t) {
              return t - e;
            }), MT3SETB_Comm_1.Comm.shootMgr.setAutoFishIDList(this.chooseFishIDList), this.shootSubButton.node.emit(cc.Node.EventType.TOUCH_END), 
            this.shootAddButton.node.emit(cc.Node.EventType.TOUCH_END);
          } else {
            var d = this;
            MT3SETB_Comm_1.Comm.msgBox.setMessage_callback(7, 102, function() {
              d.showAutoMatic(null, "close");
            }), MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fire_noChoose, s);
          }
        } else "close" == t && (this.autoFishNode.active = false, MT3SETB_Comm_1.Comm.uiCtrl.initAllState(), 
        this.shootSubButton.node.emit(cc.Node.EventType.TOUCH_END), this.shootAddButton.node.emit(cc.Node.EventType.TOUCH_END));
      }
      selectAutoMatic(e, t) {
        if ("choose" == t) for (var o in MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fire_selectAll), 
        this.selectNodeList) this.selectNodeList[o].isChecked = true; else {
          for (var o in MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fire_reSelectAll), 
          this.selectNodeList) this.selectNodeList[o].isChecked = false;
          this.chooseLowNode.isChecked = false;
        }
        this.clickChooseButton(null, "block");
      }
      subButton_Shoot(e) {
        this.pressSubShootButton = false;
        this.pressAddShootButton = false;
        this.pressShootDelta = 0;
        e > 0 && (this.pressSubShootButton = true, this.pressShootDelta = 1, this.updateButton_Shoot(-10));
      }
      addButton_Shoot(e) {
        this.pressSubShootButton = false;
        this.pressAddShootButton = false;
        this.pressShootDelta = 0;
        e > 0 && (this.pressAddShootButton = true, this.pressShootDelta = 1, this.updateButton_Shoot(10));
      }
      updateButton_Shoot(e) {
        this.autoShootCount = this.autoShootCount + e;
        this.autoShootCount = this.autoShootCount < 0 ? 0 : this.autoShootCount > 99999 ? 99999 : Math.floor(this.autoShootCount);
        this.totalShotStr.string = this.autoShootCount.toString();
      }
      subButton_Chip(e) {
        this.pressSubChipButton = false;
        this.pressAddChipButton = false;
        this.pressChipDelta = 0;
        e > 0 && (this.pressSubChipButton = true, this.pressChipDelta = 1, this.updateButton_Chip(-100));
      }
      addButton_Chip(e) {
        this.pressSubChipButton = false;
        this.pressAddChipButton = false;
        this.pressChipDelta = 0;
        e > 0 && (this.pressAddChipButton = true, this.pressChipDelta = 1, this.updateButton_Chip(100));
      }
      updateButton_Chip(e) {
        this.autoChipCount = this.autoChipCount + e;
        this.autoChipCount = this.autoChipCount < 0 ? 0 : this.autoChipCount > 99999999 ? 99999999 : Math.floor(this.autoChipCount);
        this.chipStr.string = MT3SETB_Comm_1.Comm.toDecimal2(this.autoChipCount);
      }
      autoMaticTouchMove(e) {
        var t = e.getLocation();
        this.checkNode.position = cc.v3(MT3SETB_Comm_1.Comm.transPos(this.autoFishNode, this.touchLayer, t));
      }
      autoMaticTouchEnd() {
        this.checkNode.position = cc.v3(-5e3, 5e3, 0);
      }
      clickChooseButton(e, t) {
        "auto" == t ? (this.autoFire.isChecked && (this.autoTorped.isChecked = false), this.blockNode.active = this.autoFire.isChecked) : "torped" == t ? this.autoTorped.isChecked && (this.autoFire.isChecked = false, 
        this.blockNode.active = false) : "block" == t && (this.autoFire.isChecked = false, 
        this.blockNode.active = false);
      }
      decreaseAutoShootCount() {
        var e = -1;
        if (this.totalShotNode.isChecked) {
          if (this.autoShootCount > 0) {
            this.autoShootCount -= 1;
            e = this.autoShootCount;
          } else this.autoShootCount = 3e3;
          this.totalShotStr.string = this.autoShootCount.toString();
        } else e = 0;
        return e;
      }
    };
    __decorate([ property(cc.Node) ], AutoMatic.prototype, "autoFishNode", void 0);
    __decorate([ property(cc.Node) ], AutoMatic.prototype, "touchLayer", void 0);
    __decorate([ property(cc.Node) ], AutoMatic.prototype, "checkNode", void 0);
    __decorate([ property(cc.Toggle) ], AutoMatic.prototype, "selectNodeList", void 0);
    __decorate([ property([ cc.Integer ]) ], AutoMatic.prototype, "selectFishIDList", void 0);
    __decorate([ property(cc.Toggle) ], AutoMatic.prototype, "chooseLowNode", void 0);
    __decorate([ property(cc.Toggle) ], AutoMatic.prototype, "totalShotNode", void 0);
    __decorate([ property(cc.Toggle) ], AutoMatic.prototype, "chipNode", void 0);
    __decorate([ property(cc.Toggle) ], AutoMatic.prototype, "autoFire", void 0);
    __decorate([ property(cc.Toggle) ], AutoMatic.prototype, "autoTorped", void 0);
    __decorate([ property(cc.Toggle) ], AutoMatic.prototype, "autoLight", void 0);
    __decorate([ property(cc.Label) ], AutoMatic.prototype, "totalShotStr", void 0);
    __decorate([ property(cc.Label) ], AutoMatic.prototype, "chipStr", void 0);
    __decorate([ property(cc.Label) ], AutoMatic.prototype, "totalShotBackStr", void 0);
    __decorate([ property(cc.Button) ], AutoMatic.prototype, "shootSubButton", void 0);
    __decorate([ property(cc.Button) ], AutoMatic.prototype, "shootAddButton", void 0);
    __decorate([ property(cc.Button) ], AutoMatic.prototype, "chipSubButton", void 0);
    __decorate([ property(cc.Button) ], AutoMatic.prototype, "chipAddButton", void 0);
    __decorate([ property(cc.Node) ], AutoMatic.prototype, "blockNode", void 0);
    AutoMatic = __decorate([ ccclass ], AutoMatic);
    exports.AutoMatic = AutoMatic;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../common/api/MT3SETB-track": "MT3SETB-track"
  } ],
  "MT3SETB-Automata": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "0c619X+cLpKmYlat4evqvv2", "MT3SETB-Automata");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Automata = void 0;
    class Automata {
      constructor(e, t) {
        this.stack = new Array();
        this.popFlag = false;
        this.enterFlag = false;
        this.msg = null;
        this.states = null;
        this.nextState = null;
        t && this.init(t);
        e && this.setEntry(e);
      }
      init(t) {
        this.stack.length = 0;
        this.popFlag = false;
        this.enterFlag = false;
        this.states = t;
        this.nextState = null;
        this.msg = Automata.emptyMsg;
        return this;
      }
      setEntry(e) {
        return !(!this.states || 0 !== this.stack.length || (this.push(e), 0));
      }
      push(e, t) {
        t && (this.msg = t);
        this.nextState = "string" != typeof e ? e : this.states[e];
      }
      pop() {
        this.popFlag = true;
      }
      transit(e, t) {
        this.pop();
        this.push(e, t);
      }
      tick(t) {
        var o = this, n = this.stack;
        if (o.popFlag) {
          if (n.length > 0) {
            n.pop();
            o.enterFlag = true;
          }
          o.popFlag = false;
        }
        if (o.nextState) {
          n.push(o.nextState);
          o.enterFlag = true;
          o.nextState = null;
        }
        if (n.length > 0) {
          n[n.length - 1](o, t);
          o.enterFlag = false;
          o.msg !== Automata.emptyMsg && o.msg.from !== n[n.length - 1] && (o.msg = Automata.emptyMsg);
        }
      }
      isEntering() {
        return this.enterFlag;
      }
      isRunning(e) {
        var t = this.stack;
        return t[t.length - 1] === ("string" != typeof e ? e : this.states[e]);
      }
      hasPrevState() {
        return this.stack.length - 2 >= 0;
      }
      newMsg(e) {
        var t = this.stack;
        return {
          data: e,
          from: t[t.length - 1]
        };
      }
      getMsg() {
        return this.msg;
      }
      get state() {
        return this.states;
      }
    }
    exports.Automata = Automata;
    Automata.emptyMsg = {
      data: null,
      from: null
    };
    cc._RF.pop();
  }, {} ],
  "MT3SETB-AwakenGiantCrocodileAttack": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "302e1bXjO9Lv53YVxsiAWd4", "MT3SETB-AwakenGiantCrocodileAttack");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_random_1 = require("../framework/framework/MT3SETB-random");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const {ccclass: ccclass, property: property} = cc._decorator;
    var State;
    (function(State) {
      State[State["BoatMove"] = 0] = "BoatMove";
      State[State["HeartMoveToPlayer"] = 1] = "HeartMoveToPlayer";
      State[State["Show"] = 2] = "Show";
    })(State || (State = {}));
    const BoatMoveSecs = 2.5;
    const MoveToPlayerSecs = 2.5;
    const ShowSecs = 1.5;
    const useBulletCountPerTime = 100;
    const DELAYED_EXPLOSION = .11;
    const MIN_TIMELEFT_CROC_VISIBLE = .4;
    const DEST_UI_YPOS_OFFSET = 20;
    const SHAKE_DURATION = .5;
    const SHAKE_AMOUNT = 16;
    const EXPLOSION_SFX = "drill_bomb";
    const ANIM_CROC_BITE = "BITE";
    const ANIM_LIGHTNING = "fish_jxsd";
    let AwakenGiantCrocodileAttack = class AwakenGiantCrocodileAttack extends cc.Component {
      constructor() {
        super(...arguments);
        this.crocodileSpline = null;
        this.uiPanel = null;
        this.crystalBall = null;
        this.scorePanel = null;
        this.counterLabel = null;
        this.scoreLabel = null;
        this.boomCoinAnim = null;
        this.lightningSpine = null;
        this.state = State.BoatMove;
        this.random = null;
        this.timeLeft = 0;
        this.hasBomb = false;
        this.bombLeftTimes = 0;
        this.winValue = 0;
        this.totalBombTimes = 0;
        this.bombTimes = 0;
        this.useSecs = 0;
        this.isLeft = true;
        this.uiCurrValue = 0;
        this.uiDestValue = 0;
        this.uiAnimTime = 0;
        this.hitData = null;
        this.turret = null;
        this.startTimeMs = 0;
        this.targetFishTag = 0;
        this.explosionWinnings = [];
        this.localCollateralFish = [];
        this.hasUIPanelMoved = false;
        this.hasCrocAttacked = false;
        this.newPlayerJoinedHandler = null;
      }
      init(fishLayerStartPos, hitData, fish = null) {
        let value = hitData.coin;
        let ratio = hitData.bet;
        let fishRatio = value / ratio;
        this.totalBombTimes = Math.floor(fishRatio / useBulletCountPerTime);
        this.bombLeftTimes = this.totalBombTimes;
        this.resetBombState();
        this.hitData = hitData;
        this.turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        this.startTimeMs = Date.now();
        this.random = new MT3SETB_random_1.PseudoRandom(hitData.seed);
        this.targetFishTag = hitData.fishId;
        if (hitData.time) {
          this.bombTimes = Math.floor(hitData.time / BoatMoveSecs);
          this.bombLeftTimes = this.totalBombTimes - this.bombTimes;
          this.timeLeft = Math.max(0, BoatMoveSecs - (hitData.time - BoatMoveSecs * this.bombTimes));
          for (let collateral of hitData.collateralFish) this.winValue += collateral.coin;
          this.uiCurrValue = this.winValue;
          this.uiDestValue = this.winValue;
          this.scoreLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.winValue);
          this.updatePlayerBalance(this.winValue);
        }
        let winPerExplosion = Math.floor(value / this.totalBombTimes);
        for (let i = 0; i < this.totalBombTimes; i++) {
          this.explosionWinnings.push(winPerExplosion);
          value -= winPerExplosion;
        }
        this.explosionWinnings[this.explosionWinnings.length - 1] += value;
        this.crocodileSpline.node.active = false;
        this.lightningSpine.node.active = false;
        if (fish) {
          MT3SETB_Comm_1.Comm.fishMgr.playDeathFishSoundEffect(fish.getFishNo());
          fish.node.runAction(cc.sequence(cc.repeat(cc.sequence(cc.moveBy(.025, 15, 0), cc.moveBy(.025, -15, 0), cc.moveBy(.025, 0, 15), cc.moveBy(.025, 0, -15)), 20), cc.callFunc(() => {
            fish && MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, false, true);
          })));
        }
        if (this.useSecs < 1) {
          let boomPos = MT3SETB_Comm_1.Comm.transPos3D(this.boomCoinAnim.node.parent, MT3SETB_Comm_1.Comm.node.fishLayer, fishLayerStartPos);
          this.boomCoinAnim.node.setPosition(boomPos);
          this.boomCoinAnim.node.opacity = 255;
          this.boomCoinAnim.play();
        }
      }
      update(dt) {
        if (!this.turret || this.turret.state == MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          this.dispose();
          return;
        }
        this.useSecs += dt;
        this.timeLeft = Math.max(0, this.timeLeft - dt);
        if (0 == this.timeLeft) if (this.state == State.BoatMove) {
          this.bombLeftTimes--;
          if (this.bombLeftTimes <= 0) {
            if (this.uiCurrValue == this.uiDestValue) {
              this.state = State.HeartMoveToPlayer;
              this.timeLeft = MoveToPlayerSecs;
              this.crocodileSpline.node.active = false;
            }
          } else this.resetBombState();
        } else if (this.state == State.HeartMoveToPlayer) {
          this.state = State.Show;
          this.timeLeft = ShowSecs;
        } else if (this.state == State.Show) {
          let isLocalPlayer = this.hitData.seat == MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
          MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, this.hitData.seat, this.hitData.coin, isLocalPlayer, this.hitData.bet, this.hitData.coin, MT3SETB_Game_1.mtfBFishNo.AwakenGiantCrocodile);
          this.dispose();
        }
        let showActions = false;
        if (this.state == State.BoatMove) {
          if (!this.hasBomb && this.timeLeft <= BoatMoveSecs / 2) {
            this.collisionChecks();
            this.hasBomb = true;
          }
          this.updateBoatPos();
          BoatMoveSecs - this.timeLeft > .15 && this.timeLeft > MIN_TIMELEFT_CROC_VISIBLE && (showActions = true);
        }
        this.crocodileSpline.node.angle = this.isLeft ? 90 : -90;
        this.crocodileSpline.node.active = showActions;
        this.setUIPanelScore(this.winValue);
        this.updateUIPanelPos();
        this.updateUIPanelScore(dt);
        this.counterLabel.string = this.bombTimes.toString();
      }
      setUIPanelScore(value) {
        if (this.uiDestValue != value) {
          if (value > 0) {
            this.crystalBall.runAction(cc.sequence(cc.scaleTo(.4, 2.5), cc.delayTime(.25), cc.scaleTo(.4, 1)));
            this.scorePanel.runAction(cc.sequence(cc.scaleTo(.4, 1.25), cc.delayTime(.15), cc.scaleTo(.1, 1)));
          }
          this.uiDestValue = value;
        }
      }
      updateUIPanelPos() {
        let needMove = this.state == State.HeartMoveToPlayer;
        if (needMove && !this.hasUIPanelMoved) {
          let worldPos = this.turret.getRewardPosNode().convertToWorldSpaceAR(cc.v2(0, DEST_UI_YPOS_OFFSET));
          let transfromTurretPos = this.uiPanel.parent.convertToNodeSpaceAR(worldPos);
          this.uiPanel.runAction(cc.moveTo(this.timeLeft, transfromTurretPos));
          this.hasUIPanelMoved = true;
        }
      }
      updateUIPanelScore(dt) {
        if (this.uiCurrValue != this.uiDestValue) {
          this.uiAnimTime += dt;
          this.uiAnimTime = Math.min(this.uiAnimTime, 1);
          let delta = (this.uiDestValue - this.uiCurrValue) * cc.easing.sineOut(this.uiAnimTime);
          let nextValue = this.uiCurrValue + delta;
          if (nextValue >= this.uiDestValue) {
            this.uiAnimTime = 1;
            this.uiCurrValue = this.uiDestValue;
            this.scoreLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.uiDestValue);
          } else this.scoreLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum6(nextValue);
        }
      }
      updateBoatPos() {
        let useTime = BoatMoveSecs - this.timeLeft;
        if (!this.hasCrocAttacked) {
          this.crocodileSpline.timeScale = 1;
          this.crocodileSpline.paused = false;
          let trackEntry = this.crocodileSpline.setAnimation(0, ANIM_CROC_BITE, false);
          trackEntry.trackTime = useTime;
          this.hasCrocAttacked = true;
        }
      }
      collisionChecks() {
        var t = this;
        t.uiAnimTime = 0;
        let remainingWin = t.explosionWinnings[t.bombTimes];
        this.doBombDamage(remainingWin);
        t.node.runAction(cc.sequence(cc.delayTime(DELAYED_EXPLOSION), cc.callFunc(() => {
          t.bombTimes++;
          t.bombLeftTimes <= 1 && (t.winValue = t.hitData.coin);
          MT3SETB_Comm_1.Comm.snd.playEffectByName(EXPLOSION_SFX);
          t.lightningSpine.node.active = true;
          t.lightningSpine.setAnimation(0, ANIM_LIGHTNING, false);
          MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, SHAKE_DURATION, SHAKE_AMOUNT, SHAKE_AMOUNT);
        })));
      }
      resetBombState() {
        this.timeLeft = BoatMoveSecs;
        this.hasBomb = false;
        this.isLeft = !this.isLeft;
        this.hasCrocAttacked = false;
      }
      sendBombReq(remainingWin) {
        let bombReq = new MT3SETB_mtf_pb_wrapper_1.mtf.BombReqData();
        bombReq.seat = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
        bombReq.bet = this.hitData.bet;
        bombReq.target = MT3SETB_Game_1.mtfBFishNo.AwakenGiantCrocodile;
        bombReq.targetFishTag = this.targetFishTag;
        bombReq.fish = [];
        for (let id in MT3SETB_Comm_1.Comm.fishMgr.fishes) {
          let fish = MT3SETB_Comm_1.Comm.fishMgr.fishes[id];
          if (fish && MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish)) {
            let win = fish.odds * this.hitData.bet;
            if (remainingWin - win >= 0) {
              bombReq.fish.push(fish.getFishId());
              remainingWin -= win;
            }
          }
        }
        MT3SETB_Comm_1.Comm.gameMgr.bombRequest(bombReq);
      }
      onBombFishAckUpdate(bombAckData) {
        if (bombAckData.targetFishTag != this.targetFishTag) return;
        if (bombAckData.target != MT3SETB_Game_1.mtfBFishNo.AwakenGiantCrocodile) return;
        if (bombAckData.seat != this.turret.seatNo) return;
        for (let deadFish of bombAckData.fish) {
          this.winValue += deadFish.coin;
          this.localCollateralFish.push(new MT3SETB_mtf_pb_wrapper_1.mtf.HitAckData.Fish({
            id: deadFish.fish,
            coin: deadFish.coin
          }));
          this.updatePlayerBalance(deadFish.coin);
        }
        (this.winValue > this.hitData.coin || this.bombLeftTimes <= 1) && (this.winValue = this.hitData.coin);
      }
      updatePlayerBalance(increment) {
        if (this.turret && this.turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", this.hitData.seat, -increment);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.hitData.seat);
        }
      }
      onNewPlayerJoined(seat) {
        var t = this;
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: MT3SETB_Game_1.mtfBFishNo.AwakenGiantCrocodile,
          fishTag: t.targetFishTag,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: 0,
            y: 0
          }),
          bet: t.hitData.bet,
          win: t.hitData.coin,
          secondsElapsed: (Date.now() - t.startTimeMs) / 1e3,
          collateralDead: t.localCollateralFish
        };
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
      dispose() {
        MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat && this.turret.removeNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        this.node.destroy();
      }
      doBombDamage(maxWin) {
        let remainingWin = maxWin;
        this.winValue += remainingWin;
        this.updatePlayerBalance(remainingWin);
        let fishes = MT3SETB_Comm_1.Comm.fishMgr.getAllFishes(fish => MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish));
        fishes = this.random.shuffle(fishes);
        for (let fish of fishes) {
          let win = fish.odds * this.hitData.bet;
          if (remainingWin - win >= 0) {
            remainingWin -= win;
            let hitData = {
              seat: this.hitData.seat,
              bet: this.hitData.bet,
              coin: win
            };
            fish.pathEnd = true;
            fish.dying = true;
            MT3SETB_Comm_1.Comm.gameCtrl.onFishDeathPlayEffect(fish, hitData, false);
            MT3SETB_Comm_1.Comm.gameCtrl.showGetCoin(hitData.seat, fish, hitData.coin);
            MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
          }
        }
      }
    };
    __decorate([ property(sp.Skeleton) ], AwakenGiantCrocodileAttack.prototype, "crocodileSpline", void 0);
    __decorate([ property(cc.Node) ], AwakenGiantCrocodileAttack.prototype, "uiPanel", void 0);
    __decorate([ property(cc.Node) ], AwakenGiantCrocodileAttack.prototype, "crystalBall", void 0);
    __decorate([ property(cc.Node) ], AwakenGiantCrocodileAttack.prototype, "scorePanel", void 0);
    __decorate([ property(cc.Label) ], AwakenGiantCrocodileAttack.prototype, "counterLabel", void 0);
    __decorate([ property(cc.Label) ], AwakenGiantCrocodileAttack.prototype, "scoreLabel", void 0);
    __decorate([ property(cc.Animation) ], AwakenGiantCrocodileAttack.prototype, "boomCoinAnim", void 0);
    __decorate([ property(sp.Skeleton) ], AwakenGiantCrocodileAttack.prototype, "lightningSpine", void 0);
    AwakenGiantCrocodileAttack = __decorate([ ccclass ], AwakenGiantCrocodileAttack);
    exports.default = AwakenGiantCrocodileAttack;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../framework/framework/MT3SETB-random": "MT3SETB-random",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-AwakenNightBeastEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "53934aTIY1BMboVMlY/eoKn", "MT3SETB-AwakenNightBeastEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_random_1 = require("../framework/framework/MT3SETB-random");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_SoundConst_1 = require("./MT3SETB-SoundConst");
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const MUL_INTERVAL = 100;
    const BEAST_MOVE_SECS = 4.8;
    const BEAST_ATTACK_TIME = .8;
    const BOMB_TIME = .45;
    const MOVE_TO_PLAYER_SECS = 2.5;
    const SHOW_SECS = 1.5;
    const BEAST_START_X_BUFFER = 800;
    const BEAST_START_Y_BUFFER = 400;
    const BEAST_END_X_BUFFER = -200;
    const BEAST_END_Y_BUFFER = -100;
    const BEAST_ENTER_DURATION = 1;
    const BEAST_EXIT_DURATION = .3;
    const SHAKE_AMOUNT = 16;
    const SHAKE_DURATION = .5;
    const UI_SCALE_DURATION = .25;
    const UI_SCALE_PANEL = 1.25;
    const UI_PLAYER_OFFSET = cc.v2(0, 80);
    const ANIM_BEAST_IDLE = "SWIM";
    const ANIM_BEAST_ATTACK = "ATTACK";
    const ANIM_LIGHTNING = "fish_jxsd";
    var State;
    (function(State) {
      State[State["BeastMove"] = 0] = "BeastMove";
      State[State["BallMoveToPlayer"] = 1] = "BallMoveToPlayer";
      State[State["Show"] = 2] = "Show";
    })(State || (State = {}));
    let AwakenNightBeastEffect = class AwakenNightBeastEffect extends cc.Component {
      constructor() {
        super(...arguments);
        this.pointsContainer = null;
        this.pointsPanel = null;
        this.pointsLabel = null;
        this.boomCoinAnim = null;
        this.lightningSpine = null;
        this.beasts = [];
        this.hitData = null;
        this.turret = null;
        this.startTimeMs = 0;
        this.explosionWinnings = [];
        this.beastStartPositions = [];
        this.beastEndPositions = [];
        this.totalBombTimes = 0;
        this.bombLeftTimes = 0;
        this.bombTimes = 0;
        this.timeLeft = 0;
        this.hasAttacked = false;
        this.hasBomb = false;
        this.hasScaledUi = false;
        this.useSecs = 0;
        this.uiCurValue = 0;
        this.uiDestValue = 0;
        this.uiAnimTime = 0;
        this.state = State.BeastMove;
        this.random = null;
        this.newPlayerJoinedHandler = null;
      }
      initialize(fishLayerStartPos, hitData, fish = null) {
        this.hitData = hitData;
        this.turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(this.hitData.seat);
        this.startTimeMs = Date.now();
        this.random = new MT3SETB_random_1.PseudoRandom(hitData.seed);
        this.initExplosions();
        if (null != fish) {
          MT3SETB_Comm_1.Comm.fishMgr.playDeathFishSoundEffect(fish.getFishNo());
          let maskSprite = fish.node.getComponentInChildren(cc.Sprite);
          maskSprite && (maskSprite.node.active = false);
          fish.node.runAction(cc.sequence(cc.repeat(cc.sequence(cc.moveBy(.025, 15, 0), cc.moveBy(.025, -15, 0), cc.moveBy(.025, 0, 15), cc.moveBy(.025, 0, -15)), 20), cc.callFunc(() => {
            fish && MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, false, true);
            maskSprite && (maskSprite.node.active = true);
          })));
        }
        let screenSize = cc.view.getVisibleSize();
        let screenHalfWidth = screenSize.width / 2;
        let screenHalfHeight = screenSize.height / 2;
        this.beastStartPositions = [ cc.v2(-screenHalfWidth - BEAST_START_X_BUFFER, 0), cc.v2(screenHalfWidth + BEAST_START_X_BUFFER, 0), cc.v2(0, screenHalfHeight + BEAST_START_Y_BUFFER), cc.v2(0, -screenHalfHeight - BEAST_START_Y_BUFFER) ];
        this.beastEndPositions = [ cc.v2(-screenHalfWidth - BEAST_END_X_BUFFER, 0), cc.v2(screenHalfWidth + BEAST_END_X_BUFFER, 0), cc.v2(0, screenHalfHeight + BEAST_END_Y_BUFFER), cc.v2(0, -screenHalfHeight - BEAST_END_Y_BUFFER) ];
        this.pointsContainer.parent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
        if (this.bombTimes > 0) {
          this.hasScaledUi = true;
          this.pointsPanel.scale = UI_SCALE_PANEL;
        }
        if (this.useSecs < 1) {
          let boomPos = MT3SETB_Comm_1.Comm.transPos3D(this.boomCoinAnim.node.parent, MT3SETB_Comm_1.Comm.node.fishLayer, fishLayerStartPos);
          this.boomCoinAnim.node.setPosition(boomPos);
          this.boomCoinAnim.node.opacity = 255;
          this.boomCoinAnim.play();
        } else this.boomCoinAnim.node.opacity = 0;
        this.lightningSpine.node.opacity = 0;
      }
      initExplosions() {
        let explosionsWin = this.hitData.coin;
        let mul = explosionsWin / this.hitData.bet;
        this.totalBombTimes = Math.ceil(mul / MUL_INTERVAL);
        this.bombLeftTimes = this.totalBombTimes;
        let winPerExplosion = Math.floor(explosionsWin / this.totalBombTimes);
        for (let i = 0; i < this.totalBombTimes; i++) {
          this.explosionWinnings.push(winPerExplosion);
          explosionsWin -= winPerExplosion;
        }
        this.explosionWinnings[this.explosionWinnings.length - 1] += explosionsWin;
        this.bombTimes = 0;
        this.resetBombState();
        this.resetActions();
        if (this.hitData.time) {
          this.bombTimes = Math.floor(this.hitData.time / BEAST_MOVE_SECS);
          this.bombLeftTimes -= this.bombTimes;
          let totalBombDuration = BEAST_MOVE_SECS * this.totalBombTimes;
          if (this.bombTimes < this.totalBombTimes) {
            this.state = State.BeastMove;
            this.timeLeft = BEAST_MOVE_SECS - this.hitData.time % BEAST_MOVE_SECS;
          } else if (this.hitData.time < totalBombDuration + MOVE_TO_PLAYER_SECS) {
            this.state = State.BallMoveToPlayer;
            this.timeLeft = totalBombDuration + MOVE_TO_PLAYER_SECS - this.hitData.time;
          } else {
            this.state = State.Show;
            this.timeLeft = totalBombDuration + MOVE_TO_PLAYER_SECS + SHOW_SECS - this.hitData.time;
          }
        }
        let winnings = 0;
        for (let i = 0; i < this.bombTimes; i++) winnings += this.explosionWinnings[i];
        this.updatePlayerBalance(winnings);
        this.uiCurValue = winnings;
        this.uiDestValue = winnings;
      }
      update(dt) {
        if (null == this.turret || this.turret.state == MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          this.dispose();
          return;
        }
        this.useSecs += dt;
        this.timeLeft = Math.max(0, this.timeLeft - dt);
        if (0 == this.timeLeft) if (this.state == State.BeastMove) {
          this.bombLeftTimes--;
          if (this.bombLeftTimes <= 0) {
            this.state = State.BallMoveToPlayer;
            this.timeLeft = MOVE_TO_PLAYER_SECS;
            for (let beast of this.beasts) beast.node.opacity = 0;
          } else this.resetBombState();
        } else if (this.state == State.BallMoveToPlayer) {
          this.state = State.Show;
          this.timeLeft = SHOW_SECS;
        } else if (this.state == State.Show) {
          let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat;
          MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, this.hitData.seat, this.hitData.coin, isLocalPlayer, this.hitData.bet, 0, MT3SETB_Game_1.mtfBFishNo.AwakenNightBeast);
          this.dispose();
        }
        if (this.state == State.BeastMove) {
          if (!this.hasAttacked && this.timeLeft <= BEAST_ATTACK_TIME) {
            this.hasAttacked = true;
            for (let beast of this.beasts) {
              let trackEntry = beast.setAnimation(0, ANIM_BEAST_ATTACK, false);
              trackEntry.trackTime = BEAST_ATTACK_TIME - this.timeLeft;
              beast.addAnimation(0, ANIM_BEAST_IDLE, true);
            }
          }
          if (!this.hasBomb && this.timeLeft <= BOMB_TIME) {
            this.hasBomb = true;
            this.uiAnimTime = 0;
            let increment = this.explosionWinnings[this.bombTimes];
            this.doBombDamage(increment);
            MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.BOMB_CATCH);
            this.uiDestValue += increment;
            this.updatePlayerBalance(increment);
            this.bombTimes++;
            this.lightningSpine.node.opacity = 255;
            this.lightningSpine.setAnimation(0, ANIM_LIGHTNING, false);
            MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, SHAKE_DURATION, SHAKE_AMOUNT, SHAKE_AMOUNT);
            if (!this.hasScaledUi) {
              this.hasScaledUi = true;
              this.pointsPanel.runAction(cc.scaleTo(UI_SCALE_DURATION, UI_SCALE_PANEL));
            }
          }
        }
        let showActions = this.state == State.BeastMove;
        for (let beast of this.beasts) beast.node.opacity = showActions ? 255 : 0;
        this.updateBeastsPositions();
        let offset = MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? UI_PLAYER_OFFSET.neg() : UI_PLAYER_OFFSET;
        let worldPos = this.turret.getRewardPosNode().convertToWorldSpaceAR(offset);
        let translatedPlayerPos = this.pointsContainer.parent.convertToNodeSpaceAR(worldPos);
        this.state == State.BallMoveToPlayer ? this.updateBallPosition(translatedPlayerPos) : this.state == State.Show && this.pointsContainer.setPosition(translatedPlayerPos);
        this.updateUiValue(dt);
      }
      updateBeastsPositions() {
        let percent = 1;
        if (this.bombLeftTimes == this.totalBombTimes) {
          let moveSecs = BEAST_ENTER_DURATION;
          let useTime = Math.min(BEAST_MOVE_SECS - this.timeLeft, moveSecs);
          percent = useTime / moveSecs;
        } else if (1 == this.bombLeftTimes) {
          let moveSecs = BEAST_EXIT_DURATION;
          this.timeLeft < moveSecs && (percent = 1 - (moveSecs - this.timeLeft) / moveSecs);
        }
        for (let i = 0; i < this.beasts.length; i++) {
          let startPos = this.beastStartPositions[i];
          let endPos = this.beastEndPositions[i];
          let pos = endPos.clone().subtract(startPos).multiplyScalar(percent).add(startPos);
          this.beasts[i].node.setPosition(pos.x, pos.y);
        }
      }
      updateBallPosition(targetPos) {
        let percent = (MOVE_TO_PLAYER_SECS - this.timeLeft) / MOVE_TO_PLAYER_SECS;
        let pos = targetPos.clone().multiplyScalar(percent);
        this.pointsContainer.setPosition(pos.x, pos.y);
      }
      updateUiValue(dt) {
        if (this.uiCurValue != this.uiDestValue) {
          this.uiAnimTime += dt;
          this.uiAnimTime = Math.min(this.uiAnimTime, 1);
          let delta = (this.uiDestValue - this.uiCurValue) * cc.easing.sineOut(this.uiAnimTime);
          let nextValue = this.uiCurValue + delta;
          if (nextValue >= this.uiDestValue) {
            this.uiAnimTime = 1;
            this.uiCurValue = this.uiDestValue;
            this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.uiDestValue);
          } else this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum6(nextValue);
        } else this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.uiCurValue);
      }
      updatePlayerBalance(increment) {
        if (this.turret && this.turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", this.hitData.seat, -increment);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.hitData.seat);
        }
      }
      doBombDamage(maxWin) {
        let remainingWin = maxWin;
        let fishes = MT3SETB_Comm_1.Comm.fishMgr.getAllFishes(fish => MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish));
        fishes = this.random.shuffle(fishes);
        for (let fish of fishes) {
          let win = fish.odds * this.hitData.bet;
          if (remainingWin - win >= 0) {
            remainingWin -= win;
            let hitData = {
              seat: this.hitData.seat,
              bet: this.hitData.bet,
              coin: win
            };
            fish.pathEnd = true;
            fish.dying = true;
            MT3SETB_Comm_1.Comm.gameCtrl.onFishDeathPlayEffect(fish, hitData, false);
            MT3SETB_Comm_1.Comm.gameCtrl.showGetCoin(hitData.seat, fish, hitData.coin);
            MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
          }
        }
      }
      sendBombReq(maxWin) {
        let bombReq = new MT3SETB_mtf_pb_wrapper_1.mtf.BombReqData();
        bombReq.seat = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
        bombReq.bet = this.hitData.bet;
        bombReq.target = this.hitData.fishId;
        bombReq.fish = [];
        let remainingWin = maxWin;
        for (let id in MT3SETB_Comm_1.Comm.fishMgr.fishes) {
          let fish = MT3SETB_Comm_1.Comm.fishMgr.fishes[id];
          if (fish && fish.isUsed() && MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish)) {
            let win = fish.odds * this.hitData.bet;
            if (remainingWin - win >= 0) {
              bombReq.fish.push(fish.getFishId());
              remainingWin -= win;
            }
          }
        }
        MT3SETB_Comm_1.Comm.gameMgr.bombRequest(bombReq);
      }
      onNewPlayerJoined(seat) {
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: MT3SETB_Game_1.mtfBFishNo.AwakenNightBeast,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: 0,
            y: 0
          }),
          bet: this.hitData.bet,
          win: this.hitData.coin,
          secondsElapsed: (Date.now() - this.startTimeMs) / 1e3,
          collateralDead: []
        };
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
      resetBombState() {
        this.timeLeft = BEAST_MOVE_SECS;
        this.hasBomb = false;
        this.hasAttacked = false;
      }
      resetActions() {
        for (let beast of this.beasts) beast.setAnimation(0, ANIM_BEAST_IDLE, true);
      }
      dispose() {
        MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat && this.turret.removeNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        this.pointsContainer.destroy();
        this.node.destroy();
      }
    };
    __decorate([ property(cc.Node) ], AwakenNightBeastEffect.prototype, "pointsContainer", void 0);
    __decorate([ property(cc.Node) ], AwakenNightBeastEffect.prototype, "pointsPanel", void 0);
    __decorate([ property(cc.Label) ], AwakenNightBeastEffect.prototype, "pointsLabel", void 0);
    __decorate([ property(cc.Animation) ], AwakenNightBeastEffect.prototype, "boomCoinAnim", void 0);
    __decorate([ property(sp.Skeleton) ], AwakenNightBeastEffect.prototype, "lightningSpine", void 0);
    __decorate([ property([ sp.Skeleton ]) ], AwakenNightBeastEffect.prototype, "beasts", void 0);
    AwakenNightBeastEffect = __decorate([ ccclass ], AwakenNightBeastEffect);
    exports.default = AwakenNightBeastEffect;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../framework/framework/MT3SETB-random": "MT3SETB-random",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-SoundConst": "MT3SETB-SoundConst",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-AwakenedKingCrabBombEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "0ebackp8rRIEoLGiuWN5ijX", "MT3SETB-AwakenedKingCrabBombEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_random_1 = require("../framework/framework/MT3SETB-random");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const {ccclass: ccclass, property: property} = cc._decorator;
    var State;
    (function(State) {
      State[State["None"] = 0] = "None";
      State[State["BoatMove"] = 1] = "BoatMove";
      State[State["HeartMoveToPlayer"] = 2] = "HeartMoveToPlayer";
      State[State["Show"] = 3] = "Show";
    })(State || (State = {}));
    const AttackSecs = 1.3333333333333333;
    const MoveSecs = 1.3333333333333333;
    const BoatMoveSecs = 4 * MoveSecs + AttackSecs;
    const BoatAttackSecs = 2 * MoveSecs + .5;
    const MoveToPlayerSecs = 2.5;
    const ShowSecs = 1.5;
    const MoveFrontSecs = (BoatMoveSecs - AttackSecs) / 2;
    const MoveTailSecs = (BoatMoveSecs + AttackSecs) / 2;
    const EXPLOSION_SFX = "drill_bomb";
    const KINGCRAB_MOVE = "juexingbawangxie_move";
    const KINGCRAB_ATTACK = "juexingbawangxie_attack";
    const AWAKEN_ELECTRIC = "fish_jxsd";
    const SHAKE_AMOUNT = 25;
    const SHAKE_DURATION = .5;
    let AwakenedKingCrabBombEffect = class AwakenedKingCrabBombEffect extends cc.Component {
      constructor() {
        super(...arguments);
        this.state = 0;
        this.crabAnims = [];
        this.crabBallNode = null;
        this.scoreBG = null;
        this.pointsLabel = null;
        this.lightningBombEffect = null;
        this.boomCoinAnim = null;
        this.explosionWinnings = [];
        this.localCollateralFish = [];
        this.startPos = [];
        this.destPos = [];
        this.hitData = null;
        this.currentValue = 0;
        this.animTime = 0;
        this.isMoving = false;
        this.targetFishTag = 0;
        this.startTimeMs = 0;
        this.random = null;
        this.newPlayerJoinedHandler = null;
      }
      static getTotalDuration(rate) {
        var noOfExplosions = Math.floor(rate / 100);
        return noOfExplosions * BoatMoveSecs;
      }
      init(player, posInfo, hitData, rate) {
        this.hitData = hitData;
        this.player = player;
        this.totalBombTimes = Math.floor(rate / 100);
        this.bombLeftTimes = this.totalBombTimes;
        this.bombFishLimit = Math.floor(rate / 10 / this.bombLeftTimes);
        this.hitData = hitData;
        this.odds = rate;
        this.pointsLabel.string = "0";
        this.lightningBombEffect.clearTracks();
        this.startTimeMs = Date.now();
        this.random = new MT3SETB_random_1.PseudoRandom(hitData.seed);
        this.currentValue = 0;
        this.scoreValue = 0;
        this.hasBomb = false;
        this.isMoving = false;
        this.targetFishTag = hitData.fishId;
        this.startPos = [];
        this.startPos.push(new cc.Vec2(-1e3, 0));
        this.startPos.push(new cc.Vec2(1e3, 0));
        this.destPos = [];
        this.destPos.push(new cc.Vec2(-400, 0));
        this.destPos.push(new cc.Vec2(400, 0));
        let explosionsWin = this.hitData.coin;
        let winPerExplosion = Math.floor(this.hitData.coin / this.totalBombTimes);
        for (let i = 0; i < this.totalBombTimes; i++) {
          this.explosionWinnings.push(winPerExplosion);
          explosionsWin -= winPerExplosion;
        }
        this.explosionWinnings[this.explosionWinnings.length - 1] += explosionsWin;
        this.resetBombState();
        this.state = State.BoatMove;
        let boomPos = MT3SETB_Comm_1.Comm.node.effectLayer.convertToNodeSpaceAR(posInfo);
        this.boomCoinAnim.node.setPosition(boomPos);
        this.boomCoinAnim.node.opacity = 255;
        this.boomCoinAnim.play();
        this.explosionStartPos = boomPos;
        if (null != hitData.time) {
          let bombTimes = Math.floor(this.hitData.time / BoatMoveSecs);
          this.bombLeftTimes = this.totalBombTimes - bombTimes;
          this.timeLeft = Math.max(0, BoatMoveSecs - (this.hitData.time - BoatMoveSecs * bombTimes));
          this.boomCoinAnim.node.setPosition(posInfo);
          this.useSecs = this.hitData.time;
          for (let collateral of this.hitData.collateralFish) this.scoreValue += collateral.coin;
          this.currentValue = this.scoreValue;
          this.updateBalance(this.scoreValue);
          this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.scoreValue);
        }
      }
      updateBalance(increment) {
        if (this.player && this.player.state != MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", this.hitData.seat, -increment);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.hitData.seat);
        }
      }
      onNewPlayerJoined(seat) {
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: MT3SETB_Game_1.mtfBFishNo.WakeupKingCrab,
          fishTag: this.targetFishTag,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: this.explosionStartPos.x,
            y: this.explosionStartPos.y
          }),
          bet: this.hitData.bet,
          win: this.hitData.coin,
          secondsElapsed: (Date.now() - this.startTimeMs) / 1e3,
          collateralDead: this.localCollateralFish
        };
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
      resetBombState() {
        this.timeLeft = BoatMoveSecs;
        this.showBombEffectTimes = 0;
        this.hasBomb = false;
      }
      collisionChecks() {
        this.animTime = 0;
        this.currentValue = this.scoreValue;
        let remainingWin = this.explosionWinnings[this.totalBombTimes - this.bombLeftTimes];
        this.doBombDamage(remainingWin);
      }
      onBombFishAckUpdate(bombAckData) {
        if (bombAckData.targetFishTag != this.targetFishTag) return;
        if (bombAckData.target != MT3SETB_Game_1.mtfBFishNo.WakeupKingCrab) return;
        if (bombAckData.seat != this.player.seatNo) return;
        for (var deadFish of bombAckData.fish) {
          this.scoreValue += deadFish.coin;
          var hitAckFish = new MT3SETB_mtf_pb_wrapper_1.mtf.HitAckData.Fish();
          hitAckFish.coin = deadFish.coin;
          hitAckFish.id = deadFish.fish;
          this.localCollateralFish.push(hitAckFish);
          this.updateBalance(deadFish.coin);
        }
        this.scoreValue >= this.hitData.coin && (this.scoreValue = this.hitData.coin);
        1 == this.bombLeftTimes && (this.scoreValue = this.hitData.coin);
        this.node.runAction(cc.sequence(cc.delayTime(.25), cc.callFunc(() => {
          MT3SETB_Comm_1.Comm.snd.playEffectByName(EXPLOSION_SFX);
          this.lightningBombEffect.setAnimation(0, AWAKEN_ELECTRIC, false);
          MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, SHAKE_DURATION, SHAKE_AMOUNT, SHAKE_AMOUNT);
        })));
        this.crabBallNode.runAction(cc.sequence(cc.scaleTo(.4, 2.5), cc.delayTime(.25), cc.scaleTo(.4, 1)));
        this.scoreBG.runAction(cc.sequence(cc.scaleTo(.4, 1.25), cc.delayTime(.15), cc.scaleTo(.1, 1)));
      }
      dispose(isShowRainBowWheel = true) {
        if (isShowRainBowWheel) {
          let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat;
          MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, this.hitData.seat, this.hitData.coin, isLocalPlayer, this.hitData.bet, this.hitData.coin, MT3SETB_Game_1.mtfBFishNo.WakeupKingCrab);
        }
        this.node.destroy();
      }
      update(dt) {
        if (this.player.state == MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          this.dispose(false);
          return;
        }
        this.useSecs += dt;
        this.useSecs >= 1 && (this.boomCoinAnim.node.opacity = 0);
        this.timeLeft = Math.max(0, this.timeLeft - dt);
        if (this.timeLeft <= 0) if (this.state == State.BoatMove) {
          this.bombLeftTimes--;
          if (this.bombLeftTimes <= 0) {
            this.state = State.HeartMoveToPlayer;
            this.timeLeft = MoveToPlayerSecs;
            for (var crab of this.crabAnims) crab.node.active = false;
          } else this.resetBombState();
        } else if (this.state == State.HeartMoveToPlayer) {
          this.state = State.Show;
          this.timeLeft = ShowSecs;
        }
        if (this.state == State.BoatMove) {
          if (!this.hasBomb && this.timeLeft <= BoatAttackSecs) {
            this.collisionChecks();
            this.hasBomb = true;
          }
          this.updateBoatPos();
        }
        this.crabAnims[0].node.active = this.state == State.BoatMove;
        this.crabAnims[1].node.active = this.state == State.BoatMove;
        this.updateMovePlayerState();
        this.updateScoreUI(dt);
      }
      updateMovePlayerState() {
        var needMove = this.state == State.HeartMoveToPlayer;
        if (needMove && !this.isMoving) {
          let endPosY = 0;
          endPosY = MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? this.player.uiNo >= 3 ? 50 : 100 : (this.player.uiNo >= 3, 
          -50);
          let worldPos = this.player.getRewardPosNode().convertToWorldSpaceAR(cc.v2(0, endPosY));
          let translatedPlayerPos = this.scoreBG.parent.convertToNodeSpaceAR(worldPos);
          this.scoreBG.runAction(cc.sequence(cc.moveTo(MoveToPlayerSecs, translatedPlayerPos), cc.delayTime(1.5), cc.callFunc(this.dispose, this)));
          this.isMoving = true;
        }
      }
      updateScoreUI(dt) {
        if (this.currentValue != this.scoreValue) {
          this.animTime += dt;
          this.animTime = Math.min(this.animTime, 1);
          let delta = (this.scoreValue - this.currentValue) * cc.easing.sineOut(this.animTime);
          var nextValue = this.currentValue + delta;
          if (nextValue >= this.scoreValue) {
            this.animTime = 1;
            this.currentValue = this.scoreValue;
            this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.scoreValue);
          } else this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum6(nextValue);
        } else this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.currentValue);
      }
      updateBoatPos() {
        var percent = 1;
        var useTime = BoatMoveSecs - this.timeLeft;
        var animName = KINGCRAB_ATTACK;
        var animSecs = 0;
        if (useTime <= MoveFrontSecs) {
          percent = useTime / MoveFrontSecs;
          animName = KINGCRAB_MOVE;
          animSecs = useTime / MoveSecs;
        } else if (useTime >= MoveTailSecs) {
          percent = 1 - (useTime - MoveTailSecs) / MoveFrontSecs;
          animName = KINGCRAB_MOVE;
          animSecs = useTime / MoveSecs;
        } else animSecs = (useTime - MoveFrontSecs) / AttackSecs;
        for (var i = 0; i < this.crabAnims.length; i++) {
          var posX = this.startPos[i].x + (this.destPos[i].x - this.startPos[i].x) * percent;
          var posY = this.startPos[i].y + (this.destPos[i].y - this.startPos[i].y) * percent;
          this.crabAnims[i].play(animName);
          this.crabAnims[i].setCurrentTime(animSecs);
          this.crabAnims[i].node.setPosition(posX, posY);
        }
      }
      doBombDamage(maxWin) {
        let remainingWin = maxWin;
        this.scoreValue += remainingWin;
        this.updateBalance(remainingWin);
        let fishes = MT3SETB_Comm_1.Comm.fishMgr.getAllFishes(fish => MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish));
        fishes = this.random.shuffle(fishes);
        for (let fish of fishes) {
          let win = fish.odds * this.hitData.bet;
          if (remainingWin - win >= 0) {
            remainingWin -= win;
            let hitData = {
              seat: this.hitData.seat,
              bet: this.hitData.bet,
              coin: win
            };
            fish.pathEnd = true;
            fish.dying = true;
            MT3SETB_Comm_1.Comm.gameCtrl.onFishDeathPlayEffect(fish, hitData, false);
            MT3SETB_Comm_1.Comm.gameCtrl.showGetCoin(hitData.seat, fish, hitData.coin);
            MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
          }
        }
        this.node.runAction(cc.sequence(cc.delayTime(.25), cc.callFunc(() => {
          MT3SETB_Comm_1.Comm.snd.playEffectByName(EXPLOSION_SFX);
          this.lightningBombEffect.setAnimation(0, AWAKEN_ELECTRIC, false);
          MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, SHAKE_DURATION, SHAKE_AMOUNT, SHAKE_AMOUNT);
        })));
        this.crabBallNode.runAction(cc.sequence(cc.scaleTo(.4, 2.5), cc.delayTime(.25), cc.scaleTo(.4, 1)));
        this.scoreBG.runAction(cc.sequence(cc.scaleTo(.4, 1.25), cc.delayTime(.15), cc.scaleTo(.1, 1)));
      }
    };
    __decorate([ property([ cc.Animation ]) ], AwakenedKingCrabBombEffect.prototype, "crabAnims", void 0);
    __decorate([ property(cc.Node) ], AwakenedKingCrabBombEffect.prototype, "crabBallNode", void 0);
    __decorate([ property(cc.Node) ], AwakenedKingCrabBombEffect.prototype, "scoreBG", void 0);
    __decorate([ property(cc.Label) ], AwakenedKingCrabBombEffect.prototype, "pointsLabel", void 0);
    __decorate([ property(sp.Skeleton) ], AwakenedKingCrabBombEffect.prototype, "lightningBombEffect", void 0);
    __decorate([ property(cc.Animation) ], AwakenedKingCrabBombEffect.prototype, "boomCoinAnim", void 0);
    AwakenedKingCrabBombEffect = __decorate([ ccclass ], AwakenedKingCrabBombEffect);
    exports.default = AwakenedKingCrabBombEffect;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../framework/framework/MT3SETB-random": "MT3SETB-random",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-AwakenedKingOctopusBombEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "77ab9i6wwdJL4IY92LKhdn0", "MT3SETB-AwakenedKingOctopusBombEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_random_1 = require("../framework/framework/MT3SETB-random");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const {ccclass: ccclass, property: property} = cc._decorator;
    var State;
    (function(State) {
      State[State["None"] = 0] = "None";
      State[State["BoatMove"] = 1] = "BoatMove";
      State[State["HeartMoveToPlayer"] = 2] = "HeartMoveToPlayer";
      State[State["Show"] = 3] = "Show";
    })(State || (State = {}));
    const BoatMoveSecs = 1.96667;
    const MoveToPlayerSecs = 2.5;
    const ShowSecs = 1.5;
    const EXPLOSION_SFX = "drill_bomb";
    const KINGOCTOPUS_ATTACK = "ATTACK";
    const AWAKEN_ELECTRIC = "fish_jxsd";
    const SHAKE_AMOUNT = 35;
    const SHAKE_DURATION = .75;
    const TENTACLE_WIDTH = 309;
    let AwakenedKingOctopusBombEffect = class AwakenedKingOctopusBombEffect extends cc.Component {
      constructor() {
        super(...arguments);
        this.state = 0;
        this.octopusAnimsParent = null;
        this.octopusAnims = [];
        this.octopusBallNode = null;
        this.scoreBG = null;
        this.pointsBG = null;
        this.pointsLabel = null;
        this.lightningBombEffect = null;
        this.boomCoinAnim = null;
        this.explosionWinnings = [];
        this.localCollateralFish = [];
        this.hitData = null;
        this.animTime = 0;
        this.currentValue = 0;
        this.isMoving = false;
        this.targetFishTag = 0;
        this.startTimeMs = 0;
        this.random = null;
        this.newPlayerJoinedHandler = null;
      }
      static getTotalDuration(rate) {
        var noOfExplosions = Math.floor(rate / 100);
        return noOfExplosions * BoatMoveSecs;
      }
      init(player, posInfo, hitData, rate) {
        this.hitData = hitData;
        this.player = player;
        this.totalBombTimes = Math.floor(rate / 100);
        this.bombLeftTimes = this.totalBombTimes;
        this.bombFishLimit = Math.floor(rate / 10 / this.bombLeftTimes);
        this.hitData = hitData;
        this.odds = rate;
        this.pointsLabel.string = "0";
        this.lightningBombEffect.clearTracks();
        this.startTimeMs = Date.now();
        this.random = new MT3SETB_random_1.PseudoRandom(hitData.seed);
        this.currentValue = 0;
        this.scoreValue = 0;
        this.hasBomb = false;
        this.hasSendBomb = false;
        this.isMoving = false;
        this.targetFishTag = hitData.fishId;
        let boomPos = MT3SETB_Comm_1.Comm.node.effectLayer.convertToNodeSpaceAR(posInfo);
        this.boomCoinAnim.node.setPosition(boomPos);
        this.boomCoinAnim.node.opacity = 255;
        this.boomCoinAnim.play();
        this.explosionStartPos = boomPos;
        let explosionsWin = this.hitData.coin;
        let winPerExplosion = Math.floor(this.hitData.coin / this.totalBombTimes);
        for (let i = 0; i < this.totalBombTimes; i++) {
          this.explosionWinnings.push(winPerExplosion);
          explosionsWin -= winPerExplosion;
        }
        this.explosionWinnings[this.explosionWinnings.length - 1] += explosionsWin;
        let screenSize = cc.view.getVisibleSize();
        var x = 0;
        var y = Math.min(1e3, -screenSize.height / 2);
        const angles = [ -90, 90, 180, 0, 45, 135, 225, 315 ];
        for (let i = 0; i < angles.length; i++) {
          var radAngle = cc.misc.degreesToRadians(angles[i]);
          var x1 = x * Math.cos(radAngle) - y * Math.sin(radAngle);
          var y1 = x * Math.sin(radAngle) + y * Math.cos(radAngle);
          this.octopusAnims[i].node.opacity = 0;
          var offSetX = 0;
          -90 == angles[i] ? offSetX = -TENTACLE_WIDTH : 90 == angles[i] && (offSetX = TENTACLE_WIDTH);
          this.octopusAnims[i].node.setPosition(new cc.Vec2(x1 + offSetX, y1));
        }
        this.resetBombState();
        this.state = State.BoatMove;
        if (null != hitData.time) {
          let bombTimes = Math.floor(this.hitData.time / BoatMoveSecs);
          this.bombLeftTimes = this.totalBombTimes - bombTimes;
          this.timeLeft = Math.max(0, BoatMoveSecs - (this.hitData.time - BoatMoveSecs * bombTimes));
          for (let collateral of this.hitData.collateralFish) this.scoreValue += collateral.coin;
          this.boomCoinAnim.node.setPosition(posInfo);
          this.useSecs = this.hitData.time;
          var animSecs = BoatMoveSecs - this.timeLeft;
          for (let i = 0; i < this.octopusAnims.length; i++) {
            var entry = this.octopusAnims[i].setAnimation(0, KINGOCTOPUS_ATTACK, false);
            entry.trackTime = animSecs;
          }
          this.currentValue = this.scoreValue;
          this.updateBalance(this.scoreValue);
          this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.scoreValue);
        }
      }
      updateBalance(increment) {
        if (this.player && this.player.state != MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", this.hitData.seat, -increment);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.hitData.seat);
        }
      }
      onNewPlayerJoined(seat) {
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: MT3SETB_Game_1.mtfBFishNo.WakeupKingOctopus,
          fishTag: this.targetFishTag,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: this.explosionStartPos.x,
            y: this.explosionStartPos.y
          }),
          bet: this.hitData.bet,
          win: this.hitData.coin,
          secondsElapsed: (Date.now() - this.startTimeMs) / 1e3,
          collateralDead: this.localCollateralFish
        };
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
      resetBombState() {
        this.timeLeft = BoatMoveSecs;
        this.showBombEffectTimes = 0;
        this.hasBomb = false;
        this.hasSendBomb = false;
      }
      collisionChecks() {
        this.animTime = 0;
        let remainingWin = this.explosionWinnings[this.totalBombTimes - this.bombLeftTimes];
        this.doBombDamage(remainingWin);
      }
      onBombFishAckUpdate(bombAckData) {
        if (bombAckData.targetFishTag != this.targetFishTag) return;
        if (bombAckData.target != MT3SETB_Game_1.mtfBFishNo.WakeupKingOctopus) return;
        if (bombAckData.seat != this.player.seatNo) return;
        for (var deadFish of bombAckData.fish) {
          this.scoreValue += deadFish.coin;
          var hitAckFish = new MT3SETB_mtf_pb_wrapper_1.mtf.HitAckData.Fish();
          hitAckFish.coin = deadFish.coin;
          hitAckFish.id = deadFish.fish;
          this.localCollateralFish.push(hitAckFish);
          this.updateBalance(deadFish.coin);
        }
        this.scoreValue >= this.hitData.coin && (this.scoreValue = this.hitData.coin);
        1 == this.bombLeftTimes && (this.scoreValue = this.hitData.coin);
        MT3SETB_Comm_1.Comm.snd.playEffectByName(EXPLOSION_SFX);
        this.lightningBombEffect.setAnimation(0, AWAKEN_ELECTRIC, false);
        MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, SHAKE_DURATION, SHAKE_AMOUNT, SHAKE_AMOUNT);
        MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.fishLayer, SHAKE_DURATION, SHAKE_AMOUNT, SHAKE_AMOUNT);
        MT3SETB_Comm_1.Comm.shakeNode(this.octopusAnimsParent, SHAKE_DURATION, SHAKE_AMOUNT, SHAKE_AMOUNT);
        this.octopusBallNode.runAction(cc.sequence(cc.scaleTo(.4, 2.5), cc.delayTime(.25), cc.scaleTo(.4, 1)));
        this.pointsBG.runAction(cc.sequence(cc.scaleTo(.4, 1.25), cc.delayTime(.15), cc.scaleTo(.1, 1)));
      }
      dispose(isShowRainBowWheel = true) {
        MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat && this.player.removeNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        if (isShowRainBowWheel) {
          let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat;
          MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, this.hitData.seat, this.hitData.coin, isLocalPlayer, this.hitData.bet, this.hitData.coin, MT3SETB_Game_1.mtfBFishNo.WakeupKingOctopus);
        }
        this.node.destroy();
      }
      update(dt) {
        if (this.player.state == MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          this.dispose(false);
          return;
        }
        this.useSecs += dt;
        this.useSecs >= 1 && (this.boomCoinAnim.node.opacity = 0);
        this.timeLeft = Math.max(0, this.timeLeft - dt);
        if (this.timeLeft <= 0) if (this.state == State.BoatMove) {
          this.bombLeftTimes--;
          if (this.bombLeftTimes <= 0) {
            this.state = State.HeartMoveToPlayer;
            this.timeLeft = MoveToPlayerSecs;
          } else this.resetBombState();
        } else if (this.state == State.HeartMoveToPlayer) {
          this.state = State.Show;
          this.timeLeft = ShowSecs;
        }
        if (this.state == State.BoatMove) {
          if (!this.hasBomb && this.timeLeft <= BoatMoveSecs / 5 * 4) {
            this.updateBoatPos();
            this.hasBomb = true;
          }
          if (!this.hasSendBomb && this.timeLeft <= BoatMoveSecs / 5 * 3) {
            this.collisionChecks();
            this.hasSendBomb = true;
          }
        }
        this.updateMovePlayerState();
        this.updateScoreUI(dt);
      }
      updateMovePlayerState() {
        var needMove = this.state == State.HeartMoveToPlayer;
        if (needMove && !this.isMoving) {
          let endPosY = 0;
          endPosY = MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? this.player.uiNo >= 3 ? -70 : 30 : this.player.uiNo >= 3 ? -30 : 70;
          let worldPos = this.player.getRewardPosNode().convertToWorldSpaceAR(cc.v2(0, endPosY));
          let translatedPlayerPos = this.scoreBG.parent.convertToNodeSpaceAR(worldPos);
          this.scoreBG.runAction(cc.sequence(cc.moveTo(MoveToPlayerSecs, translatedPlayerPos), cc.delayTime(1.5), cc.callFunc(this.dispose, this)));
          this.isMoving = true;
        }
      }
      updateScoreUI(dt) {
        if (this.currentValue != this.scoreValue) {
          this.animTime += dt;
          this.animTime = Math.min(this.animTime, 1);
          let delta = (this.scoreValue - this.currentValue) * cc.easing.sineOut(this.animTime);
          var nextValue = this.currentValue + delta;
          if (nextValue >= this.scoreValue) {
            this.animTime = 1;
            this.currentValue = this.scoreValue;
            this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.scoreValue);
          } else this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum6(nextValue);
        } else this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.currentValue);
      }
      updateBoatPos() {
        for (var i = 0; i < this.octopusAnims.length; i++) {
          this.octopusAnims[i].node.opacity = 255;
          var entry = this.octopusAnims[i].setAnimation(0, KINGOCTOPUS_ATTACK, false);
        }
      }
      doBombDamage(maxWin) {
        let remainingWin = maxWin;
        this.scoreValue += remainingWin;
        this.updateBalance(remainingWin);
        let fishes = MT3SETB_Comm_1.Comm.fishMgr.getAllFishes(fish => MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish));
        fishes = this.random.shuffle(fishes);
        for (let fish of fishes) {
          let win = fish.odds * this.hitData.bet;
          if (remainingWin - win >= 0) {
            remainingWin -= win;
            let hitData = {
              seat: this.hitData.seat,
              bet: this.hitData.bet,
              coin: win
            };
            fish.pathEnd = true;
            fish.dying = true;
            MT3SETB_Comm_1.Comm.gameCtrl.onFishDeathPlayEffect(fish, hitData, false);
            MT3SETB_Comm_1.Comm.gameCtrl.showGetCoin(hitData.seat, fish, hitData.coin);
            MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
          }
        }
        MT3SETB_Comm_1.Comm.snd.playEffectByName(EXPLOSION_SFX);
        this.lightningBombEffect.setAnimation(0, AWAKEN_ELECTRIC, false);
        MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, SHAKE_DURATION, SHAKE_AMOUNT, SHAKE_AMOUNT);
        MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.fishLayer, SHAKE_DURATION, SHAKE_AMOUNT, SHAKE_AMOUNT);
        MT3SETB_Comm_1.Comm.shakeNode(this.octopusAnimsParent, SHAKE_DURATION, SHAKE_AMOUNT, SHAKE_AMOUNT);
        this.octopusBallNode.runAction(cc.sequence(cc.scaleTo(.4, 2.5), cc.delayTime(.25), cc.scaleTo(.4, 1)));
        this.pointsBG.runAction(cc.sequence(cc.scaleTo(.4, 1.25), cc.delayTime(.15), cc.scaleTo(.1, 1)));
      }
    };
    __decorate([ property(cc.Node) ], AwakenedKingOctopusBombEffect.prototype, "octopusAnimsParent", void 0);
    __decorate([ property([ sp.Skeleton ]) ], AwakenedKingOctopusBombEffect.prototype, "octopusAnims", void 0);
    __decorate([ property(cc.Node) ], AwakenedKingOctopusBombEffect.prototype, "octopusBallNode", void 0);
    __decorate([ property(cc.Node) ], AwakenedKingOctopusBombEffect.prototype, "scoreBG", void 0);
    __decorate([ property(cc.Node) ], AwakenedKingOctopusBombEffect.prototype, "pointsBG", void 0);
    __decorate([ property(cc.Label) ], AwakenedKingOctopusBombEffect.prototype, "pointsLabel", void 0);
    __decorate([ property(sp.Skeleton) ], AwakenedKingOctopusBombEffect.prototype, "lightningBombEffect", void 0);
    __decorate([ property(cc.Animation) ], AwakenedKingOctopusBombEffect.prototype, "boomCoinAnim", void 0);
    AwakenedKingOctopusBombEffect = __decorate([ ccclass ], AwakenedKingOctopusBombEffect);
    exports.default = AwakenedKingOctopusBombEffect;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../framework/framework/MT3SETB-random": "MT3SETB-random",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-BackgroundData": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "2a488F5mr5KTayQWceZ8TT0", "MT3SETB-BackgroundData");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BackgroundData = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let BackgroundData = class BackgroundData extends cc.Component {
      constructor() {
        super(...arguments);
        this.backgrounds = [];
      }
    };
    __decorate([ property([ cc.Prefab ]) ], BackgroundData.prototype, "backgrounds", void 0);
    BackgroundData = __decorate([ ccclass ], BackgroundData);
    exports.BackgroundData = BackgroundData;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-BackpackButton": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "de5e15PAtxBm4N/BnXhy10P", "MT3SETB-BackpackButton");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BackpackButton = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let BackpackButton = class BackpackButton extends cc.Component {
      constructor() {
        super();
        this.red = null;
      }
      start() {}
      check() {
        if (MT3SETB_Comm_1.Comm.backpack.checkusableItem()) {
          this.playAnim();
          return true;
        }
        this.redActive(false);
        return false;
      }
      playAnim() {
        var e = this.node.getComponent(cc.Animation);
        if (e) {
          e.play();
          this.redActive(true);
        }
      }
      redActive(e) {
        this.red.active = e;
      }
    };
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u7d05\u9ede"
    }) ], BackpackButton.prototype, "red", void 0);
    BackpackButton = __decorate([ ccclass ], BackpackButton);
    exports.BackpackButton = BackpackButton;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-BackpackInfo": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "58fe6bHuftGr7AjOddxMwtI", "MT3SETB-BackpackInfo");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BackpackInfo = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_language_1 = require("../common/api/MT3SETB-language");
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_BonusCardMgr_1 = require("../../res/Common/script/MT3SETB-BonusCardMgr");
    const MT3SETB_FreeBulletMgr_1 = require("../../res/Common/script/MT3SETB-FreeBulletMgr");
    const MT3SETB_WaterGameMgr_1 = require("./MT3SETB-WaterGameMgr");
    const MT3SETB_utils2_1 = require("../framework/framework/MT3SETB-utils2");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let BackpackInfo = class BackpackInfo extends cc.Component {
      constructor() {
        super();
        this.cntText = null;
        this.sprNode = null;
        this.itemTitle = null;
        this.gameTitle = null;
        this.betText = null;
        this.limitText = null;
        this.timeText = null;
        this.description = null;
        this.unenoughNode = null;
        this.usableBGNode = null;
        this.starNode = [];
        this.itemNo = 0;
        this.serverIndex = 0;
        this.useStart = 0;
        this.useEnd = 0;
        this.cost = 0;
      }
      start() {}
      init(e, t, o, n, i) {
        this.itemNo = t;
        this.serverIndex = e;
        this.cost = o;
        this.useStart = n ? 1e3 * n.toNumber() : 0;
        this.useEnd = i ? 1e3 * i.toNumber() : 0;
        this.updateContent();
        this.serverIndex > 0 ? MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Backpack_InfoShow) : MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Redeem_InfoShow);
      }
      close() {
        this.node.destroy();
        this.serverIndex > 0 ? MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Backpack_InfoClose) : MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Redeem_InfoClose);
      }
      closeByUse() {
        this.node.destroy();
      }
      updateContent() {
        var e = MT3SETB_Comm_1.Comm.app.getItemData();
        if (e[this.itemNo]) {
          MT3SETB_Comm_1.Comm.backpack.setImage(this.sprNode, e[this.itemNo].cardName);
          this.gameTitle.string = `${MT3SETB_language_1.GetLanguage(1014)}${MT3SETB_language_1.GetLanguage(e[this.itemNo].focusGame)}`;
          this.betText.string = `${MT3SETB_language_1.GetLanguage(1010)}${MT3SETB_Comm_1.Comm.getThousandsNum(e[this.itemNo].cost * MT3SETB_Comm_1.Comm.coinRatio)}`;
          var t = "", o = e[this.itemNo].rangeStart * MT3SETB_Comm_1.Comm.coinRatio, a = e[this.itemNo].rangeEnd * MT3SETB_Comm_1.Comm.coinRatio;
          o < 0 && a < 0 ? t = MT3SETB_language_1.GetLanguage(1018) : o > 0 && a < 0 && (t = `${MT3SETB_Comm_1.Comm.getThousandsNum(o)}${MT3SETB_language_1.GetLanguage(1017)}`);
          this.limitText.string = `${MT3SETB_language_1.GetLanguage(1011)}${t}`;
          if (this.serverIndex > 0) {
            var r = new Date(this.useStart), c = new Date(this.useEnd), l = r.getFullYear(), u = ("0" + (r.getMonth() + 1)).substr(-2), d = ("0" + r.getDate()).substr(-2), p = ("0" + r.getHours()).substr(-2), h = ("0" + r.getMinutes()).substr(-2), f = c.getFullYear(), m = ("0" + (c.getMonth() + 1)).substr(-2), g = ("0" + c.getDate()).substr(-2), _ = ("0" + c.getHours()).substr(-2), y = ("0" + c.getMinutes()).substr(-2);
            this.timeText.string = MT3SETB_utils2_1.sprintf("%s%d/%s/%s %s:%s - %d/%s/%s %s:%s", MT3SETB_language_1.GetLanguage(1012), l, u, d, p, h, f, m, g, _, y);
          } else this.timeText.node.active = false;
          0 == e[this.itemNo].type ? e[this.itemNo].cost > 0 ? this.description.string = MT3SETB_utils2_1.sprintf(MT3SETB_language_1.GetLanguage(e[this.itemNo].content), MT3SETB_Comm_1.Comm.getThousandsNum(e[this.itemNo].cost * MT3SETB_Comm_1.Comm.coinRatio), MT3SETB_language_1.GetLanguage(1203)) : this.description.string = MT3SETB_utils2_1.sprintf(MT3SETB_language_1.GetLanguage(e[this.itemNo].content), MT3SETB_language_1.GetLanguage(1203)) : e[this.itemNo].type >= 4 && e[this.itemNo].type <= 6 ? this.description.string = MT3SETB_utils2_1.sprintf(MT3SETB_language_1.GetLanguage(e[this.itemNo].content), MT3SETB_Comm_1.Comm.getThousandsNum(e[this.itemNo].bet * MT3SETB_Comm_1.Comm.coinRatio)) : this.description.string = MT3SETB_language_1.GetLanguage(e[this.itemNo].content);
          var v = this.itemTitle.getComponent(cc.Sprite);
          v && MT3SETB_Comm_1.Comm.backpack.setImage(v, e[this.itemNo].name + "_" + MT3SETB_Comm_1.Comm.commonTransfer.geti18nLang());
          for (var b = e[this.itemNo].star, w = 0; w < this.starNode.length; ++w) this.starNode[w].active = w < b;
          var k, S = cc.find("btn_use", this.node), C = cc.find("btn_useValue", this.node);
          if (this.serverIndex > 0) {
            r = new Date(this.useStart);
            if (MT3SETB_Comm_1.Comm.bankSys.getClientCoin(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat()) < o) {
              this.unenoughNode.active = true;
              (k = cc.find("refusedValue", this.unenoughNode)) && (k.getComponent(cc.Label).string = MT3SETB_language_1.GetLanguage(1020));
              this.usableBGNode && (this.usableBGNode.active = true);
              S && (S.active = false);
              C && (C.active = false);
            } else {
              this.usableBGNode && (this.usableBGNode.active = false);
              S && (S.active = true);
              C && (C.active = true);
            }
            new Date().getTime() < r.getTime() && (k = cc.find("refusedValue", this.unenoughNode)) && (k.getComponent(cc.Label).string = MT3SETB_language_1.GetLanguage(1021));
          } else S && (S.active = false);
          C && (C.active = false);
        }
      }
      touchEvent(e, t) {
        var o = this;
        switch (t) {
         case "use":
          this.closeByUse();
          var n = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat(), a = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
          if (MT3SETB_Comm_1.Comm.bankSys.getClientCoin(n) >= this.cost * MT3SETB_Comm_1.Comm.coinRatio) {
            var d = MT3SETB_Comm_1.Comm.app.getItemData();
            if (!d[this.itemNo]) return;
            if (3 == d[this.itemNo].type) {
              if (MT3SETB_BonusCardMgr_1.BonusCardMgr.showingBonus[n]) return void MT3SETB_Comm_1.Comm.msgBox.setMessage(99, MT3SETB_language_1.GetLanguage(1041));
              if (a.isLocked()) return void MT3SETB_Comm_1.Comm.msgBox.setMessage(99, MT3SETB_language_1.GetLanguage(1042));
            } else if (d[this.itemNo].type >= 4 && d[this.itemNo].type <= 6) {
              if (MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat()]) return void MT3SETB_Comm_1.Comm.msgBox.setMessage(99, MT3SETB_language_1.GetLanguage(1042));
              if (true === a.isLocked()) return void MT3SETB_Comm_1.Comm.msgBox.setMessage(99, MT3SETB_language_1.GetLanguage(1042));
            } else if (2 == d[this.itemNo].type && MT3SETB_WaterGameMgr_1.WaterGameMgr.showingGame) return void MT3SETB_Comm_1.Comm.msgBox.setMessage(99, MT3SETB_language_1.GetLanguage(1042));
            MT3SETB_Comm_1.Comm.backpack.showWait(d[this.itemNo].star, d[this.itemNo].name, d[this.itemNo].cardName, function() {
              var e = new MT3SETB_mtf_pb_wrapper_1.mtf.CardUseReq();
              e.index = o.serverIndex;
              MT3SETB_Comm_1.Comm.gameMgr.cardRequest(e);
              MT3SETB_Comm_1.Comm.bankSys.addCoin("item", n, d[o.itemNo].cost * MT3SETB_Comm_1.Comm.coinRatio);
              MT3SETB_Comm_1.Comm.gameCtrl.addCoin(n, 0);
            });
            MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(n, true);
            a && d[this.itemNo].bet > 0 && a.fakeShowBet(d[this.itemNo].bet * MT3SETB_Comm_1.Comm.coinRatio);
            MT3SETB_Comm_1.Comm.uiCtrl.isToolOpen() && MT3SETB_Comm_1.Comm.uiCtrl.toolUIOnClick();
            break;
          }
          MT3SETB_Comm_1.Comm.msgBox.setMessage(99, MT3SETB_language_1.GetLanguage(1003));
        }
      }
    };
    __decorate([ property({
      type: cc.Label,
      tooltip: "\u9053\u5177\u6578\u91cf"
    }) ], BackpackInfo.prototype, "cntText", void 0);
    __decorate([ property({
      type: cc.Sprite,
      tooltip: "\u9053\u5177\u5716\u7247"
    }) ], BackpackInfo.prototype, "sprNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u9053\u5177\u6a19\u984c"
    }) ], BackpackInfo.prototype, "itemTitle", void 0);
    __decorate([ property({
      type: cc.Label,
      tooltip: "\u5c0d\u61c9\u904a\u6232"
    }) ], BackpackInfo.prototype, "gameTitle", void 0);
    __decorate([ property({
      type: cc.Label,
      tooltip: "\u6307\u5b9a\u62bc\u6ce8"
    }) ], BackpackInfo.prototype, "betText", void 0);
    __decorate([ property({
      type: cc.Label,
      tooltip: "\u8ca1\u7522\u9650\u5236"
    }) ], BackpackInfo.prototype, "limitText", void 0);
    __decorate([ property({
      type: cc.Label,
      tooltip: "\u53ef\u7528\u65e5\u671f"
    }) ], BackpackInfo.prototype, "timeText", void 0);
    __decorate([ property({
      type: cc.Label,
      tooltip: "\u8aaa\u660e"
    }) ], BackpackInfo.prototype, "description", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u4e0d\u8db3\u986f\u793a"
    }) ], BackpackInfo.prototype, "unenoughNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u8ca1\u7522\u4e0d\u8db3\u5e95\u8272"
    }) ], BackpackInfo.prototype, "usableBGNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u661f\u6578\u7bc0\u9ede"
    }) ], BackpackInfo.prototype, "starNode", void 0);
    BackpackInfo = __decorate([ ccclass ], BackpackInfo);
    exports.BackpackInfo = BackpackInfo;
    cc._RF.pop();
  }, {
    "../../res/Common/script/MT3SETB-BonusCardMgr": "MT3SETB-BonusCardMgr",
    "../../res/Common/script/MT3SETB-FreeBulletMgr": "MT3SETB-FreeBulletMgr",
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-language": "MT3SETB-language",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "./MT3SETB-WaterGameMgr": "MT3SETB-WaterGameMgr"
  } ],
  "MT3SETB-BackpackItemAll": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "349d4d+PbdHjbDdL/4qhxuT", "MT3SETB-BackpackItemAll");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BackpackItemAll = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_language_1 = require("../common/api/MT3SETB-language");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let BackpackItemAll = class BackpackItemAll extends cc.Component {
      constructor() {
        super();
        this.sprNode = null;
        this.gameTitle = null;
        this.ownText = null;
        this.usableText = null;
        this.itemNo = 0;
        this.gameid = 0;
        this.own = 0;
        this.usable = 0;
      }
      start() {}
      init(e, t, o, n) {
        this.itemNo = e;
        this.gameid = t;
        this.own = o;
        this.usable = n;
        this.updateContent();
      }
      updateContent() {
        var e = MT3SETB_Comm_1.Comm.app.getItemData();
        if (e[this.itemNo]) {
          this.gameTitle.string = `${MT3SETB_language_1.GetLanguage(1014)} ${MT3SETB_language_1.GetLanguage(e[this.itemNo].focusGame)}`;
          this.ownText.string = `${MT3SETB_language_1.GetLanguage(1015)} ${this.own}`;
          this.usableText.string = `${MT3SETB_language_1.GetLanguage(1016)} ${this.usable}`;
          this.loadIcon();
        }
      }
      click() {
        var _a;
        var e = this;
        if (!MT3SETB_platform_1.canBeJumpGame()) {
          var t = 258;
          (null === (_a = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _a ? void 0 : _a.meteor) > 0 && (t = 256);
          MT3SETB_Comm_1.Comm.msgBox.setMessage_callback(2, MT3SETB_LangList_1.LangList.getString(t), function() {
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Backpack_ChangeGameConfirm, e.gameid.toString());
            MT3SETB_Comm_1.Comm.app.transferRequest(e.gameid);
          }, function() {
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Backpack_ChangeGameCancel, e.gameid.toString());
          });
        }
      }
      loadIcon() {
        var e = this, t = MT3SETB_Comm_1.Comm.app.getUrl().slice(0, MT3SETB_Comm_1.Comm.app.getUrl().search(/\.com/g) + 4) + "/smallicon/", o = this.formatLang(MT3SETB_Comm_1.Comm.i18n.getLocal());
        cc.loader.load(t + "Icons/" + this.gameid + "_" + o + ".jpg", function(t, o) {
          t ? e.loadIcon() : e.sprNode.spriteFrame = new cc.SpriteFrame(o);
        });
      }
      formatLang(e) {
        return "en-us" == (e = e.toLocaleLowerCase()) || "en" == e ? "en" : "zh-tw" == e || "tw" == e ? "tw" : "zh-cn" == e || "cn" == e ? "cn" : "en";
      }
    };
    __decorate([ property({
      type: cc.Sprite,
      tooltip: "\u9053\u5177\u5716\u7247"
    }) ], BackpackItemAll.prototype, "sprNode", void 0);
    __decorate([ property({
      type: cc.Label,
      tooltip: "\u904a\u6232\u540d\u7a31"
    }) ], BackpackItemAll.prototype, "gameTitle", void 0);
    __decorate([ property({
      type: cc.Label,
      tooltip: "\u64c1\u6709\u6578\u91cf"
    }) ], BackpackItemAll.prototype, "ownText", void 0);
    __decorate([ property({
      type: cc.Label,
      tooltip: "\u53ef\u7528\u6578\u91cf"
    }) ], BackpackItemAll.prototype, "usableText", void 0);
    BackpackItemAll = __decorate([ ccclass ], BackpackItemAll);
    exports.BackpackItemAll = BackpackItemAll;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-language": "MT3SETB-language",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../system/MT3SETB-LangList": "MT3SETB-LangList"
  } ],
  "MT3SETB-BackpackItem": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "41c90uRTllGT4OtIqF52sTS", "MT3SETB-BackpackItem");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BackpackItem = void 0;
    const MT3SETB_BackpackInfo_1 = require("./MT3SETB-BackpackInfo");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let BackpackItem = class BackpackItem extends cc.Component {
      constructor() {
        super();
        this.cntText = null;
        this.sprNode = null;
        this.nameNode = null;
        this.starNode = [];
        this.itemNo = 0;
        this.serverIndex = 0;
        this.cost = 0;
      }
      start() {}
      init(e, t, o, n, i) {
        this.itemNo = t;
        this.serverIndex = e;
        this.cost = o;
        this.useStart = n;
        this.useEnd = i;
        this.updateContent();
      }
      click() {
        var e = MT3SETB_Comm_1.Comm.dataMgr.getBackpackInfoNode();
        e.parent = MT3SETB_Comm_1.Comm.node.uiLayer;
        e.getComponent(MT3SETB_BackpackInfo_1.BackpackInfo).init(this.serverIndex, this.itemNo, this.cost, this.useStart, this.useEnd);
      }
      updateContent() {
        var e = MT3SETB_Comm_1.Comm.app.getItemData();
        if (e[this.itemNo]) {
          MT3SETB_Comm_1.Comm.backpack.setImage(this.sprNode, e[this.itemNo].cardName);
          var t = this.nameNode.getComponent(cc.Sprite);
          t && MT3SETB_Comm_1.Comm.backpack.setImage(t, e[this.itemNo].name + "_" + MT3SETB_Comm_1.Comm.commonTransfer.geti18nLang());
          for (var o = e[this.itemNo].star, i = 0; i < this.starNode.length; ++i) this.starNode[i].active = i < o;
        }
      }
    };
    __decorate([ property({
      type: cc.Label,
      tooltip: "\u9053\u5177\u6578\u91cf"
    }) ], BackpackItem.prototype, "cntText", void 0);
    __decorate([ property({
      type: cc.Sprite,
      tooltip: "\u9053\u5177\u5716\u7247"
    }) ], BackpackItem.prototype, "sprNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u9053\u5177\u540d\u7a31"
    }) ], BackpackItem.prototype, "nameNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u661f\u6578\u7bc0\u9ede"
    }) ], BackpackItem.prototype, "starNode", void 0);
    BackpackItem = __decorate([ ccclass ], BackpackItem);
    exports.BackpackItem = BackpackItem;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-BackpackInfo": "MT3SETB-BackpackInfo"
  } ],
  "MT3SETB-BackpackMsg": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "8284bi15z1ED45jKKfXRrQr", "MT3SETB-BackpackMsg");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BackpackMsg = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_language_1 = require("../common/api/MT3SETB-language");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const MT3SETB_utils2_1 = require("../framework/framework/MT3SETB-utils2");
    const {ccclass: ccclass} = cc._decorator;
    let BackpackMsg = class BackpackMsg extends cc.Component {
      constructor() {
        super();
        this.itemNo = 0;
        this.msgNo = 0;
        this.itemTime = 0;
      }
      start() {}
      init(e, t, o) {
        this.itemNo = e;
        this.msgNo = t;
        this.itemTime = 1e3 * o.toNumber();
        this.updateContent();
      }
      updateContent() {
        var e = MT3SETB_Comm_1.Comm.app.getItemData();
        if (e[this.itemNo]) {
          var t = MT3SETB_platform_1.GetGameID(), o = new Date(this.itemTime), s = o.getFullYear(), c = ("0" + (o.getMonth() + 1)).substr(-2), l = ("0" + o.getDate()).substr(-2), u = ("0" + o.getHours()).substr(-2), d = ("0" + o.getMinutes()).substr(-2), p = MT3SETB_utils2_1.sprintf("%d/%s/%s %s:%s", s, c, l, u, d), h = "";
          switch (this.msgNo) {
           case 1:
            h = MT3SETB_language_1.GetLanguage(1006);
            break;

           case 2:
            h = MT3SETB_language_1.GetLanguage(1007);
            break;

           case 3:
            h = 0 == e[this.itemNo].gameID || e[this.itemNo].gameID == t ? MT3SETB_language_1.GetLanguage(1004) : MT3SETB_language_1.GetLanguage(1005);
          }
          this.node.getComponent(cc.RichText).string = MT3SETB_utils2_1.sprintf(h, MT3SETB_language_1.GetLanguage(e[this.itemNo].cardText), p);
        }
      }
    };
    BackpackMsg = __decorate([ ccclass ], BackpackMsg);
    exports.BackpackMsg = BackpackMsg;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-language": "MT3SETB-language",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../framework/framework/MT3SETB-utils2": "MT3SETB-utils2"
  } ],
  "MT3SETB-Backpack": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "c6755Y4j8BDNYpCmFXB4eB9", "MT3SETB-Backpack");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Backpack = exports.iconInfo = exports.UsingItemType = void 0;
    const MT3SETB_BackpackItemAll_1 = require("./MT3SETB-BackpackItemAll");
    const MT3SETB_BackpackItem_1 = require("./MT3SETB-BackpackItem");
    const MT3SETB_BackpackMsg_1 = require("./MT3SETB-BackpackMsg");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Bullet_1 = require("./MT3SETB-Bullet");
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_language_1 = require("../common/api/MT3SETB-language");
    const MT3SETB_FreeBulletMgr_1 = require("../../res/Common/script/MT3SETB-FreeBulletMgr");
    const MT3SETB_BonusCardMgr_1 = require("../../res/Common/script/MT3SETB-BonusCardMgr");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const MT3SETB_card_1 = require("../common/api/MT3SETB-card");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const {ccclass: ccclass, property: property} = cc._decorator;
    var UsingItemType;
    (function(UsingItemType) {
      UsingItemType[UsingItemType["BonusCard"] = 0] = "BonusCard";
      UsingItemType[UsingItemType["FreeBulletCard"] = 1] = "FreeBulletCard";
    })(UsingItemType = exports.UsingItemType || (exports.UsingItemType = {}));
    class iconInfo {
      constructor() {
        this.own = 0;
        this.usable = 0;
        this.gameid = 0;
        this.itemID = 0;
      }
    }
    exports.iconInfo = iconInfo;
    let Backpack = class Backpack extends cc.Component {
      constructor() {
        super();
        this.root = null;
        this.uiNode = null;
        this.waitNode = null;
        this.bookMark = [];
        this.pageNode = [];
        this.contentNode = [];
        this.waitSprNode = null;
        this.waitSprNameNode = null;
        this.waitStarNode = [];
        this.redNode = [];
        this.image = null;
        this.otherUseItemUIPrefab = null;
        this.cardGetPrefab = null;
        this.freeBulletSndHeadIdx = 92;
        this.pageNo = 0;
        this.touchCB = null;
        this.readyToDropCard = [];
        this.otherUseItemUI = [];
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.backpack = this;
      }
      start() {
        this.checkTimeout();
        this.switchPage(0);
      }
      touchEvent(e, t) {
        switch (t) {
         case "0":
          this.switchPage(parseInt(t));
          this.show();
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Backpack_Page1, t);
          break;

         case "1":
          this.switchPage(parseInt(t));
          this.show();
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Backpack_Page2, t);
          break;

         case "2":
          this.switchPage(parseInt(t));
          this.show();
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Backpack_Page3, t);
          break;

         case "waitHide":
          this.hideWait();
        }
      }
      switchPage(e) {
        for (var t = 0; t < this.bookMark.length; ++t) {
          this.bookMark[t].interactable = t != e;
          this.pageNode[t].active = t == e;
        }
        this.pageNo = e;
      }
      show() {
        this.uiNode.active = true;
        this.root.active = true;
        this.contentNode[this.pageNo].removeAllChildren();
        var e = MT3SETB_platform_1.GetGameID(), t = MT3SETB_card_1.GetCardList();
        this.checkTimeout();
        this.checkRed();
        switch (this.pageNo) {
         case 0:
          for (var o = function(o) {
            if ((t[o].gameId == e || 0 == t[o].gameId) && !n.readyToDropCard.some(function(e) {
              return e.index == t[o].index;
            })) {
              var a = MT3SETB_Comm_1.Comm.dataMgr.getBackpackItemNode();
              a.parent = n.contentNode[n.pageNo];
              a.getComponent(MT3SETB_BackpackItem_1.BackpackItem).init(t[o].index, t[o].cardId, t[o].cost, t[o].start, t[o].end);
            }
          }, n = this, s = 0; s < t.length; ++s) o(s);
          break;

         case 1:
          this.show2();
          break;

         case 2:
          this.show3();
        }
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Backpack_Show);
      }
      hide() {
        this.root.active = false;
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Backpack_Close);
      }
      setImage(e, t) {
        var o = MT3SETB_platform_1.GetHost() + "smallicon/FishItemCards/RectangleCard/" + t + ".png";
        cc.assetManager.loadRemote(o, function(t, o) {
          t || (e.spriteFrame = new cc.SpriteFrame(o));
        });
      }
      getLangImage(e) {
        return MT3SETB_Comm_1.Comm.commonTransfer ? MT3SETB_Comm_1.Comm.commonTransfer.getLangImg(e) : null;
      }
      showWait(e, t, o, n) {
        this.touchCB = n;
        this.uiNode.active = false;
        this.waitNode.active = true;
        var a = this.waitSprNameNode.getComponent(cc.Sprite);
        a && MT3SETB_Comm_1.Comm.backpack.setImage(a, t + "_" + MT3SETB_Comm_1.Comm.commonTransfer.geti18nLang());
        for (var r = 0; r < this.waitStarNode.length; ++r) this.waitStarNode[r] && (this.waitStarNode[r].active = r < e);
        this.setImage(this.waitSprNode, o);
      }
      hideWait() {
        this.waitNode.active = false;
        this.touchCB && this.touchCB();
        this.touchCB = null;
      }
      show2() {
        for (var e = [], t = MT3SETB_card_1.GetCardList(), o = MT3SETB_platform_1.GetGameID(), n = 0; n < t.length; ++n) if (t[n].gameId != o && 0 != t[n].gameId) {
          for (var r = true, s = 0; s < e.length; ++s) if (e[s].gameid == t[n].gameId) {
            e[s].own += 1;
            r = false;
            break;
          }
          if (r) {
            var c = new iconInfo();
            c.itemID = t[n].cardId;
            c.gameid = t[n].gameId;
            c.own = 1;
            e.push(c);
          }
        }
        for (n = 0; n < e.length; ++n) {
          var l = MT3SETB_Comm_1.Comm.dataMgr.getBackpackItemAllNode();
          l.parent = this.contentNode[this.pageNo];
          l.getComponent(MT3SETB_BackpackItemAll_1.BackpackItemAll).init(e[n].itemID, e[n].gameid, e[n].own, e[n].usable);
        }
      }
      show3() {
        var e = MT3SETB_card_1.GetCardMessage();
        e.sort(function(e, t) {
          return t.createTime.toNumber() - e.createTime.toNumber();
        });
        for (var t = 0; t < e.length; ++t) {
          var o = MT3SETB_Comm_1.Comm.dataMgr.getBackpackMsgNode();
          o.parent = this.contentNode[this.pageNo];
          o.getComponent(MT3SETB_BackpackMsg_1.BackpackMsg).init(e[t].cardId, e[t].msgId, e[t].createTime);
        }
      }
      showEffect(e) {
        var t = this;
        if (!e.success) {
          MT3SETB_Comm_1.Comm.msgBox.setMessage(99, MT3SETB_language_1.GetLanguage(1003));
          MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(e.seat, false);
          return void (null == (F = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e.seat)) || F.showBet(F.getBet()));
        }
        var o = e.cardId, n = e.type, a = e.seat == MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat();
        if (a) {
          for (var r = 0; r < MT3SETB_card_1.GetCardList().length; ++r) if (MT3SETB_card_1.GetCardList()[r].index == e.index) {
            this.addMsg(o, 1);
            MT3SETB_card_1.GetCardList().splice(r, 1);
            break;
          }
          MT3SETB_Comm_1.Comm.uiCtrl.checkToolRedPoint();
        }
        if (0 == n) {
          e.value = e.value * MT3SETB_Comm_1.Comm.coinRatio;
          var u = (R = MT3SETB_Comm_1.Comm.app.getItemData())[o].cost * MT3SETB_Comm_1.Comm.coinRatio, d = R[o].bet * MT3SETB_Comm_1.Comm.coinRatio;
          MT3SETB_Comm_1.Comm.bankSys.addServerCoin(e.seat, -u);
          MT3SETB_Comm_1.Comm.bankSys.addServerCoin(e.seat, e.value);
          MT3SETB_Comm_1.Comm.bankSys.addCoin("item", e.seat, -1);
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", e.seat, e.value);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(e.seat, 0);
          var p = parseInt((e.value / d).toFixed(0)), y = MT3SETB_Comm_1.Comm.fishMgr.getListInOddsSum(p, new cc.Vec2(214, 80), MT3SETB_Comm_1.Comm.fishMgr.isItemLightableFish), v = [];
          for (var b in y) {
            var w = MT3SETB_Comm_1.Comm.fishMgr.getFishById(y[b]);
            if (w) {
              var S = new MT3SETB_mtf_pb_wrapper_1.mtf.BombDeadFish();
              S.fish = w.getFishId();
              S.coin = w.getOdds() * d;
              v.push(S);
            }
          }
          var C = new MT3SETB_mtf_pb_wrapper_1.mtf.BombAckData();
          C.seat = e.seat;
          C.coin = e.value;
          C.bet = d;
          C.fish = v;
        } else if (2 == n) {
          MT3SETB_Comm_1.Comm.uiCtrl.freezeCDTimer = MT3SETB_Comm_1.Comm.uiCtrl.freezeCD;
          MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(e.seat, false);
        } else if (3 == n) {
          var N = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e.seat);
          if (a) {
            var B = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.otherData.backpackBonusUI).getComponent(MT3SETB_BonusCardMgr_1.BonusCardMgr);
            B.node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
            B.node.x = MT3SETB_Comm_1.Comm.transPos(B.node.parent, N.pivot).x;
            (E = B.getComponent(cc.Widget)).isAlignBottom = true;
            E.bottom = 150;
            E.target = cc.find("Canvas/Stage");
            E.updateAlignment();
            B.startBonus(e.seat);
            B.setTurretEf(MT3SETB_Comm_1.Comm.node.effectLayer, function() {
              return N ? cc.v3(MT3SETB_Comm_1.Comm.transPos(B.node.parent, N.pivot)) : cc.v3(2e3, 2e3);
            });
          } else {
            var T = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.otherData.backpackBonusUI).getComponent(MT3SETB_BonusCardMgr_1.BonusCardMgr);
            T.node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
            T.node.active = false;
            T.startBonus(e.seat);
            this.showOtherUseItemUI(e.seat, UsingItemType.BonusCard);
            MT3SETB_Comm_1.Comm.runTask({
              delay: 30,
              target: T
            }, function() {
              T.endBonus();
              t.hideOtherUseItemUI(e.seat, UsingItemType.BonusCard);
            });
          }
          MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(e.seat, false);
        } else if (4 == n) {
          u = (R = MT3SETB_Comm_1.Comm.app.getItemData())[o].cost * MT3SETB_Comm_1.Comm.coinRatio;
          MT3SETB_Comm_1.Comm.bankSys.addServerCoin(e.seat, -u);
          MT3SETB_Comm_1.Comm.bankSys.addCoin("item", e.seat, -1);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(e.seat);
          if (!(F = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e.seat))) return;
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.bulletType[e.seat] = MT3SETB_FreeBulletMgr_1.FreeGameType.Normal;
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.remain[e.seat] = e.param2;
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.originBet[e.seat] = F.getBet();
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.freeBulletBet[e.seat] = e.param1;
          if (a) {
            var P = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.otherData.backpackFreeBulletUI).getComponent(MT3SETB_FreeBulletMgr_1.FreeBulletMgr);
            P.node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
            P.node.opacity = 255;
            P.node.scale = 1.5;
            (E = P.getComponent(cc.Widget)).isAlignBottom = true;
            E.bottom = 170;
            E.isAlignLeft = true;
            E.left = 70;
            E.target = cc.find("Canvas/Stage");
            E.updateAlignment();
            (A = P.node.getChildByName("root")).setPosition(MT3SETB_Comm_1.Comm.transPos(P.node, MT3SETB_Comm_1.Comm.node.noticeLayer, cc.v2(0, 50)));
            cc.tween(A).delay(1.5).call(function() {
              cc.tween(P.node).to(.5, {
                scale: 1
              }).start();
            }).to(.5, {
              position: cc.v3(0, 0)
            }).call(function() {
              MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(e.seat, false);
            }).start();
            P.init(e.seat);
            P.updateUI();
            MT3SETB_Comm_1.Comm.uiCtrl.cancelAllButton();
            MT3SETB_Comm_1.Comm.uiCtrl.isBulletTypeBtnLock = true;
          } else {
            (x = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.otherData.backpackFreeBulletUI).getComponent(MT3SETB_FreeBulletMgr_1.FreeBulletMgr)).node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
            x.node.active = false;
            x.init(e.seat);
            this.showOtherUseItemUI(e.seat, UsingItemType.FreeBulletCard);
            F.switchAvatar();
            MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(e.seat, false);
          }
        } else if (5 == n) {
          u = (R = MT3SETB_Comm_1.Comm.app.getItemData())[o].cost * MT3SETB_Comm_1.Comm.coinRatio;
          MT3SETB_Comm_1.Comm.bankSys.addServerCoin(e.seat, -u);
          MT3SETB_Comm_1.Comm.bankSys.addCoin("item", e.seat, -1);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(e.seat);
          if (!(F = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e.seat))) return;
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.bulletType[e.seat] = MT3SETB_FreeBulletMgr_1.FreeGameType.Net;
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.remain[e.seat] = e.param3;
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.hitCount[e.seat] = e.param2;
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.originBet[e.seat] = F.getBet();
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.freeBulletBet[e.seat] = e.param1;
          if (a) {
            var L = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.otherData.backpackFreeBulletUI).getComponent(MT3SETB_FreeBulletMgr_1.FreeBulletMgr);
            L.node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
            L.node.opacity = 255;
            L.node.scale = 1.5;
            (E = L.getComponent(cc.Widget)).isAlignBottom = true;
            E.bottom = 170;
            E.isAlignLeft = true;
            E.left = 70;
            E.target = cc.find("Canvas/Stage");
            E.updateAlignment();
            (A = L.node.getChildByName("root")).setPosition(MT3SETB_Comm_1.Comm.transPos(L.node, MT3SETB_Comm_1.Comm.node.noticeLayer, cc.v2(0, 50)));
            cc.tween(A).delay(1.5).call(function() {
              cc.tween(L.node).to(.5, {
                scale: 1
              }).start();
            }).to(.5, {
              position: cc.v3(0, 0)
            }).call(function() {
              MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(e.seat, false);
            }).start();
            L.init(e.seat);
            L.updateUI();
            MT3SETB_Comm_1.Comm.uiCtrl.cancelAllButton();
            MT3SETB_Comm_1.Comm.uiCtrl.isShootTypeBtnLock = true;
            MT3SETB_Comm_1.Comm.uiCtrl.isBulletTypeBtnLock = true;
          } else {
            (x = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.otherData.backpackFreeBulletUI).getComponent(MT3SETB_FreeBulletMgr_1.FreeBulletMgr)).node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
            x.node.active = false;
            x.init(e.seat);
            this.showOtherUseItemUI(e.seat, UsingItemType.FreeBulletCard);
            F.switchAvatar();
            MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(e.seat, false);
          }
          var I = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.bulletData.commonBullets[1]);
          I.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
          I.opacity = a ? 255 : 100;
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.cannonEf[e.seat] = I;
          I.getComponent(cc.Animation).play("Laser_gathering_in");
          var O = function() {
            var t = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e.seat);
            return !!(t && I && I.isValid) && (I.setPosition(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.noticeLayer, MT3SETB_Comm_1.Comm.node.bulletLayer, t.getBulletSpwanPos())), 
            true);
          };
          MT3SETB_Comm_1.Comm.runTask({
            times: cc.macro.REPEAT_FOREVER
          }, function(e) {
            O() || MT3SETB_Comm_1.Comm.delTask(e);
          });
          O();
        } else if (6 == n) {
          u = (R = MT3SETB_Comm_1.Comm.app.getItemData())[o].cost * MT3SETB_Comm_1.Comm.coinRatio;
          var R, F, M = e.param1 < .7 ? 1 : e.param1 < 5 ? 2 : 3;
          MT3SETB_Comm_1.Comm.bankSys.addServerCoin(e.seat, -u);
          MT3SETB_Comm_1.Comm.bankSys.addCoin("item", e.seat, -1);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(e.seat);
          if (!(F = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e.seat))) return;
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.bulletType[e.seat] = MT3SETB_FreeBulletMgr_1.FreeGameType.Drill;
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.remain[e.seat] = 1;
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.hitCount[e.seat] = e.param2;
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.originBet[e.seat] = F.getBet();
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.freeBulletBet[e.seat] = e.param1;
          if (a) {
            var E, A, D = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.otherData.backpackFreeBulletUI).getComponent(MT3SETB_FreeBulletMgr_1.FreeBulletMgr);
            D.node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
            D.node.opacity = 255;
            D.node.scale = 1.5;
            (E = D.getComponent(cc.Widget)).isAlignBottom = true;
            E.bottom = 170;
            E.isAlignLeft = true;
            E.left = 70;
            E.target = cc.find("Canvas/Stage");
            E.updateAlignment();
            (A = D.node.getChildByName("root")).setPosition(MT3SETB_Comm_1.Comm.transPos(D.node, MT3SETB_Comm_1.Comm.node.noticeLayer, cc.v2(0, 50)));
            cc.tween(A).delay(1.5).call(function() {
              cc.tween(D.node).to(.5, {
                scale: 1
              }).start();
            }).to(.5, {
              position: cc.v3(0, 0)
            }).start();
            D.init(e.seat, M);
            D.node.active = false;
            MT3SETB_Comm_1.Comm.uiCtrl.cancelAllButton();
            MT3SETB_Comm_1.Comm.uiCtrl.isShootTypeBtnLock = true;
            MT3SETB_Comm_1.Comm.uiCtrl.isBulletTypeBtnLock = true;
          } else {
            var x;
            (x = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.otherData.backpackFreeBulletUI).getComponent(MT3SETB_FreeBulletMgr_1.FreeBulletMgr)).node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
            x.node.active = false;
            x.init(e.seat);
            F.switchAvatar();
            this.showOtherUseItemUI(e.seat, UsingItemType.FreeBulletCard);
          }
          F.pivot.angle = 0;
          var G = F.getBulletSpwanPos().add(cc.v2(0, 50)), j = [ 50, -50, 0 ], U = [ -30, 30, 0 ], H = function(o) {
            var n = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.bulletData.commonBullets[0]);
            n.parent = MT3SETB_Comm_1.Comm.node.bulletLayer;
            n.angle = U[o];
            n.opacity = a ? 255 : 100;
            n.setPosition(G.add(cc.v2(j[o], 100)));
            1 == M ? n.getComponent(cc.Animation).play("drillGet_temp_Copper") : 2 == M ? n.getComponent(cc.Animation).play("drillGet_temp_Silver") : n.getComponent(cc.Animation).play("drillGet_temp_Gold");
            n.addComponent(MT3SETB_Bullet_1.Bullet).setUsed(false);
            MT3SETB_FreeBulletMgr_1.FreeBulletMgr.drills[e.seat].push(n);
            cc.tween(n).delay(.5).to(.7, {
              position: cc.v3(G.add(cc.v2(j[o])))
            }).call(function() {
              1 == M ? n.getComponent(cc.Animation).play("drillIdle_temp_Copper") : 2 == M ? n.getComponent(cc.Animation).play("drillIdle_temp_Silver") : n.getComponent(cc.Animation).play("drillIdle_temp_Gold");
              MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(e.seat, false);
              0 == o && a;
            }).start();
          };
          for (r = 0; r < 3; r++) H(r);
        } else MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(e.seat, false);
      }
      checkusableItem() {
        for (var e = MT3SETB_platform_1.GetGameID(), t = MT3SETB_card_1.GetCardList(), o = 0; o < t.length; ++o) if (t[o].gameId == e || 0 == t[o].gameId) return true;
        return false;
      }
      checkTimeout() {
        for (var e = new Date().getTime(), t = 0; t < MT3SETB_card_1.GetCardList().length; ) if (1e3 * MT3SETB_card_1.GetCardList()[t].end.toNumber() < e) {
          this.addMsg(MT3SETB_card_1.GetCardList()[t].cardId, 2, MT3SETB_card_1.GetCardList()[t].end.toNumber());
          MT3SETB_card_1.GetCardList().splice(t, 1);
        } else t += 1;
      }
      getItemCardCount(e) {
        for (var t = 0, o = MT3SETB_platform_1.GetGameID(), n = MT3SETB_card_1.GetCardList(), i = 0; i < n.length; ++i) n[i].gameId != o && 0 != n[i].gameId || n[i].type != e || t++;
        return t;
      }
      getItemCard(e) {
        for (var t = null, o = MT3SETB_platform_1.GetGameID(), n = MT3SETB_card_1.GetCardList(), i = 0; i < n.length; ++i) (n[i].gameId == o || 0 == n[i].gameId) && n[i].type == e && 1e3 * n[i].end.toNumber() >= new Date().getTime() && (!t || t.end.toNumber() > n[i].end.toNumber()) && (t = n[i]);
        return t;
      }
      showGetTip() {
        MT3SETB_Comm_1.Comm.uiCtrl.checkToolRedPoint();
        MT3SETB_Comm_1.Comm.uiCtrl.updateFreezeNum();
        MT3SETB_Comm_1.Comm.uiCtrl.backpackNode.active = true;
        if (MT3SETB_Comm_1.Comm.gameCtrl.bShowItemTip) {
          var e = MT3SETB_Comm_1.Comm.dataMgr.getBackpackGetTipNode();
          if (e) {
            e.parent = MT3SETB_Comm_1.Comm.node.uiLayer;
            if (t = e.getComponent(cc.Animation)) {
              t.play();
              t.on("finished", function() {
                e.destroy();
              });
            }
          }
          var t, o = MT3SETB_Comm_1.Comm.dataMgr.getBackpackGetNode();
          if (o) {
            o.parent = MT3SETB_Comm_1.Comm.node.uiLayer;
            if (t = o.getComponent(cc.Animation)) {
              t.play();
              t.on("finished", function() {
                var e = cc.v3(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.uiLayer, MT3SETB_Comm_1.Comm.uiCtrl.toolButton));
                MT3SETB_Comm_1.Comm.uiCtrl.isToolOpen() && (e = cc.v3(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.uiLayer, MT3SETB_Comm_1.Comm.uiCtrl.backpackNode)));
                cc.tween(o).delay(1.5).to(.5, {
                  position: e,
                  scale: 0
                }).call(function() {
                  o.destroy();
                }).start();
              });
            }
          }
          MT3SETB_Comm_1.Comm.gameCtrl.bShowItemTip = false;
        }
      }
      showCardInfo(e) {
        var t = cc.instantiate(this.cardGetPrefab);
        t.setParent(this.node);
        var o = cc.find("GameCard", t).getComponent(cc.Sprite), n = cc.find("GameCard/Card_Title", t).getComponent(cc.Sprite), a = MT3SETB_Comm_1.Comm.app.getItemData();
        this.setImage(o, a[e].cardName);
        this.setImage(n, a[e].name + "_" + MT3SETB_Comm_1.Comm.commonTransfer.geti18nLang());
        for (var r = 1; r <= 3; ++r) {
          var s = cc.find("Star/Star" + r, o.node);
          s && (s.active = r <= a[e].star);
        }
        cc.find("btn_use", t).on("click", function() {
          return t.destroy();
        });
        cc.find("btn_close2", t).on("click", function() {
          return t.destroy();
        });
      }
      addMsg(e, t, ...args) {
        var o = new MT3SETB_card_1.CardMessage();
        o.cardId = e;
        o.date = new Date();
        o.createTime = o.date.getTime() / 1e3;
        o.gameId = MT3SETB_platform_1.GetGameID();
        o.msgId = t;
        MT3SETB_card_1.GetCardMessage().push(o);
      }
      checkRed() {
        for (var e = MT3SETB_platform_1.GetGameID(), t = MT3SETB_card_1.GetCardList(), o = 0; o < this.redNode.length; ++o) this.redNode[o].active = false;
        for (o = 0; o < t.length; ++o) t[o].gameId == e || 0 == t[o].gameId ? this.redNode[0].active = true : this.redNode[1].active = true;
      }
      useItemCard(e) {
        var t = new MT3SETB_mtf_pb_wrapper_1.mtf.CardUseReq();
        t.index = e;
        MT3SETB_Comm_1.Comm.gameMgr.cardRequest(t);
      }
      setReadyToDrop(e) {
        this.readyToDropCard.push(e);
      }
      checkDropCard(e) {
        if (this.readyToDropCard.length > 0) {
          var t = this.readyToDropCard.pop(), o = MT3SETB_card_1.GetCardList(), n = MT3SETB_card_1.GetCardMessage();
          o && n && (o.length > 0 || n.length > 0) ? MT3SETB_Comm_1.Comm.uiCtrl.backpackNode.active = true : MT3SETB_Comm_1.Comm.uiCtrl.backpackNode.active = false;
          MT3SETB_Comm_1.Comm.uiCtrl.backpackBtn.check();
          MT3SETB_Comm_1.Comm.uiCtrl.updateFreezeNum();
          MT3SETB_Comm_1.Comm.uiCtrl.checkToolRedPoint();
          var a = MT3SETB_Comm_1.Comm.dataMgr.getBackpackGetNode();
          a.parent = MT3SETB_Comm_1.Comm.node.uiLayer;
          a.setPosition(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.uiLayer, e));
          a.getChildByName("GameCard").getComponent(cc.Sprite).spriteFrame = null;
          this.setImage(a.getChildByName("GameCard").getComponent(cc.Sprite), MT3SETB_Comm_1.Comm.app.getItemData()[t.cardId].cardName);
          var r = a.getComponent(cc.Animation);
          if (r) {
            r.play();
            r.once("finished", function() {
              var e = cc.v3(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.uiLayer, MT3SETB_Comm_1.Comm.uiCtrl.toolButton));
              MT3SETB_Comm_1.Comm.uiCtrl.isToolOpen() && (e = cc.v3(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.uiLayer, MT3SETB_Comm_1.Comm.uiCtrl.backpackNode)));
              cc.tween(a).delay(1.5).to(.5, {
                position: e,
                scale: 0
              }).call(function() {
                r.play("Item_card_ball_end");
              }).delay(3).call(function() {
                a.destroy();
              }).start();
            });
          }
          MT3SETB_Comm_1.Comm.commonTransfer.playSoundEffect(76, false, true);
        }
      }
      showOtherUseItemUI(e, t) {
        var o = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e);
        if (o) if (this.otherUseItemUI[e]) this.otherUseItemUI[e].useType.push(t); else {
          var n = cc.instantiate(this.otherUseItemUIPrefab);
          n.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
          n.setPosition(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.noticeLayer, o.pivot).add(cc.v2(0, 100)));
          this.otherUseItemUI[e] = {
            node: n,
            useType: [ t ]
          };
        }
      }
      hideOtherUseItemUI(e, t) {
        if (MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e) && this.otherUseItemUI[e]) {
          for (var o = 0; o < this.otherUseItemUI[e].useType.length; o++) if (this.otherUseItemUI[e].useType[o] == t) {
            this.otherUseItemUI[e].useType.splice(o, 1);
            break;
          }
          this.otherUseItemUI[e].useType.length <= 0 && (this.otherUseItemUI[e].node.destroy(), 
          this.otherUseItemUI[e] = null);
        }
      }
      clearOtherUseItemUI(e) {
        this.otherUseItemUI[e] && (this.otherUseItemUI[e].node.destroy(), this.otherUseItemUI[e] = null);
      }
    };
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u6839\u7bc0\u9ede"
    }) ], Backpack.prototype, "root", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u80cc\u5305\u4ecb\u9762"
    }) ], Backpack.prototype, "uiNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u4f7f\u7528\u7b49\u5f85\u4ecb\u9762"
    }) ], Backpack.prototype, "waitNode", void 0);
    __decorate([ property({
      type: cc.Button,
      tooltip: "\u80cc\u5305\u9801\u7c64"
    }) ], Backpack.prototype, "bookMark", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u80cc\u5305\u9801\u9762"
    }) ], Backpack.prototype, "pageNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u80cc\u5305\u5167\u5bb9\u7bc0\u9ede"
    }) ], Backpack.prototype, "contentNode", void 0);
    __decorate([ property({
      type: cc.Sprite,
      tooltip: "\u9053\u5177\u5716\u7247"
    }) ], Backpack.prototype, "waitSprNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u9053\u5177\u540d\u7a31"
    }) ], Backpack.prototype, "waitSprNameNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u661f\u6578\u7bc0\u9ede"
    }) ], Backpack.prototype, "waitStarNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u7d05\u9ede"
    }) ], Backpack.prototype, "redNode", void 0);
    __decorate([ property({
      type: cc.SpriteAtlas,
      tooltip: "\u9053\u5177\u5716\u96c6"
    }) ], Backpack.prototype, "image", void 0);
    __decorate([ property({
      type: cc.Prefab,
      tooltip: "\u4f7f\u7528\u9053\u5177\u5361\u4e2d\u5b57\u4e32"
    }) ], Backpack.prototype, "otherUseItemUIPrefab", void 0);
    __decorate([ property(cc.Prefab) ], Backpack.prototype, "cardGetPrefab", void 0);
    Backpack = __decorate([ ccclass ], Backpack);
    exports.Backpack = Backpack;
    cc._RF.pop();
  }, {
    "../../res/Common/script/MT3SETB-BonusCardMgr": "MT3SETB-BonusCardMgr",
    "../../res/Common/script/MT3SETB-FreeBulletMgr": "MT3SETB-FreeBulletMgr",
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-card": "MT3SETB-card",
    "../common/api/MT3SETB-language": "MT3SETB-language",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "./MT3SETB-BackpackItem": "MT3SETB-BackpackItem",
    "./MT3SETB-BackpackItemAll": "MT3SETB-BackpackItemAll",
    "./MT3SETB-BackpackMsg": "MT3SETB-BackpackMsg",
    "./MT3SETB-Bullet": "MT3SETB-Bullet"
  } ],
  "MT3SETB-BankSystem": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "cadc7CxHqpEs67FrpTivu/z", "MT3SETB-BankSystem");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BankSystem = exports.coinData = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass} = cc._decorator;
    class coinData {
      constructor() {
        this.coinList = [];
      }
    }
    exports.coinData = coinData;
    let BankSystem = class BankSystem extends cc.Component {
      constructor() {
        super();
        this.serverCoin = [];
        this.clientCoin = [];
        this.seat = [];
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.bankSys = this;
      }
      start() {
        for (var e = 0; e < MT3SETB_Comm_1.Comm.gameCtrl.turrets.length; ++e) {
          this.serverCoin.push(0);
          this.clientCoin.push(0);
          for (var t = new coinData(), o = 0; o < 6; ++o) t.coinList.push(0);
          this.seat.push(t);
        }
      }
      addCoin(type, seatIndex, amount) {
        switch (type) {
         case "bullet":
          this.seat[seatIndex].coinList[0] += amount;
          this.seat[seatIndex].coinList[0] < 0 && (this.seat[seatIndex].coinList[0] = 0);
          break;

         case "hit":
          this.seat[seatIndex].coinList[1] += amount;
          this.seat[seatIndex].coinList[1] < 0 && (this.seat[seatIndex].coinList[1] = 0);
          break;

         case "reward":
          this.seat[seatIndex].coinList[2] += amount;
          this.seat[seatIndex].coinList[2] < 0 && (this.seat[seatIndex].coinList[2] = 0);
          break;

         case "bomb":
          this.seat[seatIndex].coinList[3] += amount;
          this.seat[seatIndex].coinList[3] < 0 && (this.seat[seatIndex].coinList[3] = 0);
          break;

         case "drill":
          if (amount > 0) this.seat[seatIndex].coinList[4] += amount; else if (this.seat[seatIndex].coinList[4] > 0) {
            this.addServerCoin(seatIndex, -this.seat[seatIndex].coinList[4]);
            this.seat[seatIndex].coinList[4] = 0;
          }
          break;

         case "item":
          amount > 0 ? this.seat[seatIndex].coinList[5] += amount : this.seat[seatIndex].coinList[5] > 0 && (this.seat[seatIndex].coinList[5] = 0);
        }
        this.updateCoin(seatIndex);
      }
      setServerCoin(e, t) {
        this.serverCoin[e] = t;
      }
      addServerCoin(e, t) {
        this.serverCoin[e] += t;
      }
      setClientCoin(e, t) {
        this.clientCoin[e] = t;
      }
      addClientCoin(e, t) {
        this.clientCoin[e] += t;
        this.clientCoin[e] < 0 && (this.clientCoin[e] = 0);
      }
      getServerCoin(e) {
        return this.serverCoin[e];
      }
      getClientCoin(e) {
        return this.clientCoin[e];
      }
      updateCoin(e) {
        for (var t = 0, o = 0; o < this.seat[e].coinList.length; ++o) t += this.seat[e].coinList[o];
        this.clientCoin[e] = this.serverCoin[e] - t;
        this.clientCoin[e] < 0 && (this.clientCoin[e] = 0);
      }
      clear(e) {
        if (e) for (var t = 0; t < this.seat[e].coinList.length; ++t) this.seat[e].coinList[t] = 0; else for (var o = 0; o < this.seat.length; ++o) for (t = 0; t < this.seat[o].coinList.length; ++t) this.seat[o].coinList[t] = 0;
      }
    };
    BankSystem = __decorate([ ccclass ], BankSystem);
    exports.BankSystem = BankSystem;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-BaseEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "c92b2nNcCJGwbHItQPRVvt2", "MT3SETB-BaseEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const {ccclass: ccclass, property: property} = cc._decorator;
    let BaseEffect = class BaseEffect extends cc.Component {
      initPlayer(player) {
        this.player = player;
        this.player.addEffect(this);
      }
      onDestroy() {
        this.player.removeEffect(this);
      }
    };
    BaseEffect = __decorate([ ccclass ], BaseEffect);
    exports.default = BaseEffect;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-BetRecord": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "20d39YW7VBKDo7gVscgVRwB", "MT3SETB-BetRecord");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BetRecord = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    class BetRecord {
      constructor() {
        this.lastBet = 0;
        this.bet1UpCnt = 0;
        this.bet5UpCnt = 0;
      }
      updateSuggestiveTheme() {
        if (1 === MT3SETB_Comm_1.Comm.app.theme) {
          var e = this.lastBet >= .8 || this.bet1UpCnt >= 20 || this.bet5UpCnt >= 1;
          cc.sys.localStorage.setItem("player_theme", e ? "2" : "1");
        }
      }
      static getSuggestiveTheme() {
        if ("undefined" != typeof LobbyData && LobbyData.backpack && LobbyData.backpack.itemindex) return 1;
        var e = parseInt(cc.sys.localStorage.getItem("player_theme"));
        return isNaN(e) ? 1 : e;
      }
    }
    exports.BetRecord = BetRecord;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-BisonComing": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "688f4GV6X5HT7t5iN9PP7zC", "MT3SETB-BisonComing");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BisonComing = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_BossComing_1 = require("./MT3SETB-BossComing");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let BisonComing = class BisonComing extends MT3SETB_BossComing_1.BossComing {
      constructor() {
        super(...arguments);
        this.bisonEffect = null;
        this.bisonTextAnimation = null;
      }
      init() {
        this.node.setPosition(cc.Vec2.ZERO);
        this.node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
      }
      setShowInfo(e, t) {}
      checkShow(e) {}
      play(bossComingData) {
        var me = this;
        this.checkShow(true);
        this.setShowInfo(bossComingData, true);
        this.node.active = true;
        this.bisonEffect.node.active = true;
        this.bisonTextAnimation.play();
        var trackEntry = this.bisonEffect.setAnimation(0, "BisonComing", false);
        this.bisonEffect.setTrackCompleteListener(trackEntry, function() {
          me.node.destroy();
          me.node.active = false;
          me.bisonEffect.node.active = false;
        });
        MT3SETB_Comm_1.Comm.snd.playEffectByName("Buffalo_Announce");
      }
    };
    __decorate([ property(sp.Skeleton) ], BisonComing.prototype, "bisonEffect", void 0);
    __decorate([ property(cc.Animation) ], BisonComing.prototype, "bisonTextAnimation", void 0);
    BisonComing = __decorate([ ccclass ], BisonComing);
    exports.BisonComing = BisonComing;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-BossComing": "MT3SETB-BossComing"
  } ],
  "MT3SETB-BombCrabEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "39db1eqegxM/LbRoMLg/NOm", "MT3SETB-BombCrabEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_random_1 = require("../framework/framework/MT3SETB-random");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_SoundConst_1 = require("./MT3SETB-SoundConst");
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const MOVE_DURATION = .2;
    const MUL_INTERVAL = 75;
    const ROUND_TIME = 2;
    const MAX_SCALE = 2.5;
    const PRE_WHEEL_WAIT = 1;
    const EXPLODE_POSITIONS = [ cc.Vec2.ZERO, cc.Vec2.ZERO, new cc.Vec2(-300, 200), new cc.Vec2(300, -200), new cc.Vec2(300, 200), new cc.Vec2(-300, -200), cc.Vec2.ZERO, new cc.Vec2(-300, 200), new cc.Vec2(300, -200), new cc.Vec2(300, 200), new cc.Vec2(-300, -200) ];
    const MAX_EXPLOSIONS = 8;
    let BombCrabEffect = class BombCrabEffect extends cc.Component {
      constructor() {
        super(...arguments);
        this.explosionCounter = null;
        this.areaNode = null;
        this.crabAnim = null;
        this.boomAnim = null;
        this.isMultiple = false;
        this.fishLayerStartPos = cc.Vec3.ZERO;
        this.hitData = null;
        this.turret = null;
        this.moveSrcPos = cc.Vec2.ZERO;
        this.moveDestPos = cc.Vec2.ZERO;
        this.moveSrcTp = 0;
        this.moveDestTp = 0;
        this.moveDestUseTime = 0;
        this.numExplosions = 0;
        this.explosionWinnings = [];
        this.explosionCurTimes = 0;
        this.curRoundTimeLeft = ROUND_TIME;
        this.isScaleInc = true;
        this.areaScale = 1;
        this.crabRotateTween = null;
        this.timeSinceSrcTp = 0;
        this.waitTime = PRE_WHEEL_WAIT;
        this.isMoving = false;
        this.startTimeMs = 0;
        this.random = null;
        this.newPlayerJoinedHandler = null;
      }
      initialize(fishLayerStartPos, isMultiple, hitData) {
        this.isMultiple = isMultiple;
        this.fishLayerStartPos = fishLayerStartPos;
        this.hitData = hitData;
        this.turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(this.hitData.seat);
        this.startTimeMs = Date.now();
        this.random = new MT3SETB_random_1.PseudoRandom(hitData.seed);
        if (this.isMultiple) {
          this.crabAnim.node.active = false;
          this.explosionCounter.node.parent.active = true;
        } else {
          this.crabAnim.node.setPosition(MT3SETB_Comm_1.Comm.transPos3D(this.crabAnim.node.parent, MT3SETB_Comm_1.Comm.node.fishLayer, fishLayerStartPos));
          this.explosionCounter.node.parent.active = false;
          this.crabAnim.node.runAction(cc.rotateBy(1.5, 360).repeatForever());
        }
        this.isMoving = !this.isMultiple && (null == hitData.time || hitData.time < MOVE_DURATION);
        this.isMoving ? this.initMovement() : this.initExplosions();
      }
      initMovement() {
        var _a;
        this.areaNode.active = false;
        this.timeSinceSrcTp = 0;
        this.moveSrcPos = new cc.Vec2(this.crabAnim.node.position.x, this.crabAnim.node.position.y);
        this.moveDestPos = cc.Vec2.ZERO;
        this.moveSrcTp = null !== (_a = this.hitData.time) && void 0 !== _a ? _a : 0;
        this.moveDestTp = MOVE_DURATION;
        this.moveDestUseTime = this.moveDestTp - this.moveSrcTp;
        this.updateMovePos(this.moveSrcTp);
      }
      initExplosions() {
        this.isMoving = false;
        this.areaNode.active = true;
        this.crabAnim.node.active && this.crabAnim.node.setPosition(cc.Vec2.ZERO);
        this.numExplosions = 1;
        this.isMultiple && (this.numExplosions = Math.ceil(this.hitData.coin / this.hitData.bet / MUL_INTERVAL));
        let remainingWin = this.hitData.coin;
        let winPerExplosion = Math.floor(remainingWin / this.numExplosions);
        for (let i = 0; i < this.numExplosions; i++) {
          this.explosionWinnings.push(winPerExplosion);
          remainingWin -= winPerExplosion;
        }
        this.explosionWinnings[this.explosionWinnings.length - 1] += remainingWin;
        this.explosionCurTimes = 0;
        if (this.hitData.time) {
          this.isMultiple || (this.hitData.time -= MOVE_DURATION);
          this.explosionCurTimes = Math.floor(this.hitData.time / ROUND_TIME);
          this.explosionCurTimes >= this.numExplosions ? this.waitTime = PRE_WHEEL_WAIT - (this.hitData.time - this.numExplosions * ROUND_TIME) : this.curRoundTimeLeft = ROUND_TIME - this.hitData.time % ROUND_TIME;
        }
        for (let i = 0; i < this.explosionCurTimes; i++) this.updateBalance(this.explosionWinnings[i]);
        if (this.isMultiple) {
          this.updateExplosionCounter();
          MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().isUpsideDown() ? this.explosionCounter.node.angle = 180 : this.explosionCounter.node.angle = 0;
        }
      }
      update(dt) {
        if (this.turret.state == MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          this.dispose();
          return;
        }
        if (this.isMoving) {
          this.timeSinceSrcTp += dt;
          let tp = this.moveSrcTp + this.timeSinceSrcTp;
          this.updateMovePos(tp);
          tp >= this.moveDestTp && this.initExplosions();
        } else this.handleExplosionUpdate(dt);
      }
      updateMovePos(tp) {
        let useTime = tp - this.moveSrcTp;
        let percent = Math.min(1, Math.max(0, useTime / this.moveDestUseTime));
        let pos = new cc.Vec2(this.moveSrcPos.x + percent * (this.moveDestPos.x - this.moveSrcPos.x), this.moveSrcPos.y + percent * (this.moveDestPos.y - this.moveSrcPos.y));
        this.crabAnim.node.setPosition(pos);
      }
      updateExplosionCounter() {
        this.explosionCounter.string = `${this.explosionCurTimes + 1}`;
      }
      handleExplosionUpdate(deltaTime) {
        var _a;
        if (this.explosionCurTimes >= this.numExplosions) {
          this.areaNode.active = false;
          this.crabAnim.node.active = false;
          null === (_a = this.crabRotateTween) || void 0 === _a ? void 0 : _a.stop();
          this.crabAnim.node.stopAllActions();
          this.waitTime -= deltaTime;
          if (this.waitTime <= 0) {
            if (this.hitData.coin > 0) {
              let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat;
              MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, this.hitData.seat, this.hitData.coin, isLocalPlayer, this.hitData.bet, this.hitData.coin, this.isMultiple ? MT3SETB_Game_1.mtfBFishNo.MultipleBombCrab : MT3SETB_Game_1.mtfBFishNo.BombCrab);
              this.isMultiple && 0 != this.numExplosions || this.updateBalance(this.hitData.coin);
            }
            this.dispose();
            return;
          }
          return;
        }
        let time = this.curRoundTimeLeft - deltaTime;
        let destPos = EXPLODE_POSITIONS[this.explosionCurTimes + 1];
        if (time <= 0) {
          this.doBombDamage(this.explosionWinnings[this.explosionCurTimes]);
          if (this.boomAnim.node.parent != MT3SETB_Comm_1.Comm.node.effectLayer) {
            this.boomAnim.node.setPosition(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, this.boomAnim.node.parent, destPos));
            this.boomAnim.node.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
          } else this.boomAnim.node.setPosition(destPos);
          this.boomAnim.play();
          MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.BOMB_CATCH);
          this.isMultiple && this.updateBalance(this.explosionWinnings[this.explosionCurTimes]);
          this.explosionCurTimes++;
          this.curRoundTimeLeft = ROUND_TIME + time;
          this.explosionCurTimes < this.numExplosions && this.updateExplosionCounter();
        } else this.curRoundTimeLeft = time;
        if (this.isScaleInc) {
          this.areaScale += deltaTime;
          if (this.areaScale > MAX_SCALE) {
            this.isScaleInc = false;
            this.areaScale = MAX_SCALE;
          }
        } else {
          this.areaScale -= deltaTime;
          if (this.areaScale < 1) {
            this.isScaleInc = true;
            this.areaScale = 1;
          }
        }
        this.areaNode.setScale(this.areaScale, this.areaScale);
        this.crabAnim.node.active && this.crabAnim.node.setScale(this.areaScale, this.areaScale);
        if (this.isMultiple) {
          let prevPos = EXPLODE_POSITIONS[this.explosionCurTimes];
          let percent = Math.min(1, (ROUND_TIME - this.curRoundTimeLeft) / ROUND_TIME * 2);
          let curX = prevPos.x + (destPos.x - prevPos.x) * percent;
          let curY = prevPos.y + (destPos.y - prevPos.y) * percent;
          this.areaNode.setPosition(new cc.Vec2(curX, curY));
        }
      }
      doBombDamage(maxWin) {
        let remainingWin = maxWin;
        let fishes = MT3SETB_Comm_1.Comm.fishMgr.getAllFishes(fish => MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish));
        fishes = this.random.shuffle(fishes);
        for (let fish of fishes) {
          let win = fish.odds * this.hitData.bet;
          if (remainingWin - win >= 0) {
            remainingWin -= win;
            let hitData = {
              seat: this.hitData.seat,
              bet: this.hitData.bet,
              coin: win
            };
            fish.pathEnd = true;
            fish.dying = true;
            MT3SETB_Comm_1.Comm.gameCtrl.onFishDeathPlayEffect(fish, hitData, false);
            MT3SETB_Comm_1.Comm.gameCtrl.showGetCoin(hitData.seat, fish, hitData.coin);
            MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
          }
        }
      }
      sendBombReq() {
        let bombReq = new MT3SETB_mtf_pb_wrapper_1.mtf.BombReqData();
        bombReq.seat = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
        bombReq.bet = this.hitData.bet;
        bombReq.target = this.hitData.fishId;
        bombReq.fish = [];
        for (let id in MT3SETB_Comm_1.Comm.fishMgr.fishes) {
          let fish = MT3SETB_Comm_1.Comm.fishMgr.fishes[id];
          fish && MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish) && bombReq.fish.push(fish.getFishId());
        }
        MT3SETB_Comm_1.Comm.gameMgr.bombRequest(bombReq);
      }
      updateBalance(increment) {
        if (this.turret && this.turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", this.hitData.seat, -increment);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.hitData.seat);
        }
      }
      onNewPlayerJoined(seat) {
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: this.isMultiple ? MT3SETB_Game_1.mtfBFishNo.MultipleBombCrab : MT3SETB_Game_1.mtfBFishNo.BombCrab,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: this.fishLayerStartPos.x,
            y: this.fishLayerStartPos.y
          }),
          bet: this.hitData.bet,
          win: this.hitData.coin,
          secondsElapsed: (Date.now() - this.startTimeMs) / 1e3,
          collateralDead: []
        };
        for (let collateralHitData of this.hitData.collateralFish) notifyData.collateralDead.push(new MT3SETB_mtf_pb_wrapper_1.mtf.HitAckData.Fish({
          id: collateralHitData.fishId,
          coin: collateralHitData.coin
        }));
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
      dispose() {
        MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat && this.turret.removeNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        this.boomAnim.node.destroy();
        this.node.destroy();
      }
    };
    __decorate([ property(cc.Label) ], BombCrabEffect.prototype, "explosionCounter", void 0);
    __decorate([ property(cc.Node) ], BombCrabEffect.prototype, "areaNode", void 0);
    __decorate([ property(cc.Animation) ], BombCrabEffect.prototype, "crabAnim", void 0);
    __decorate([ property(cc.Animation) ], BombCrabEffect.prototype, "boomAnim", void 0);
    BombCrabEffect = __decorate([ ccclass ], BombCrabEffect);
    exports.default = BombCrabEffect;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../framework/framework/MT3SETB-random": "MT3SETB-random",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-SoundConst": "MT3SETB-SoundConst",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-BonusCardMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "b9e5f0j605ABa64K5+vhv0f", "MT3SETB-BonusCardMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var BonusCardMgr_1;
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BonusCardMgr = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let BonusCardMgr = BonusCardMgr_1 = class BonusCardMgr extends cc.Component {
      constructor() {
        super();
        this.sec = null;
        this.turretEfPrefab = null;
        this.seat = 0;
        this.turretEf = null;
        this.countUINd = null;
        this.time = 0;
      }
      static init() {
        this.showingBonus = [];
      }
      startBonus(e) {
        BonusCardMgr_1.showingBonus[e] && BonusCardMgr_1.showingBonus[e].clearBonus();
        BonusCardMgr_1.showingBonus[e] = this;
        this.seat = e;
        this.time = 30;
        this.countUINd = this.node;
      }
      update(e) {
        this.time = Math.max(0, this.time - e);
        this.sec.string = Math.ceil(this.time).toString();
        this.time <= 0 && this.endBonus();
        this.turretEf && this.getPosFunc && this.turretEf.setPosition(this.getPosFunc());
      }
      setTurretEf(e, t) {
        this.getPosFunc = t;
        this.turretEf = cc.instantiate(this.turretEfPrefab);
        this.turretEf.parent = e;
        this.turretEf.setPosition(t());
      }
      endBonus() {
        this.clearBonus();
      }
      clearBonus() {
        this.turretEf && this.turretEf.destroy();
        this.countUINd && this.countUINd.destroy();
        this.turretEf = null;
        this.countUINd = null;
      }
      onDestroy() {
        BonusCardMgr_1.showingBonus[this.seat] = null;
      }
    };
    BonusCardMgr.showingBonus = [];
    __decorate([ property(cc.Label) ], BonusCardMgr.prototype, "sec", void 0);
    __decorate([ property(cc.Prefab) ], BonusCardMgr.prototype, "turretEfPrefab", void 0);
    BonusCardMgr = BonusCardMgr_1 = __decorate([ ccclass ], BonusCardMgr);
    exports.BonusCardMgr = BonusCardMgr;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-BossComing": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ffa99YjLfJDiqtzAp1yy1LP", "MT3SETB-BossComing");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BossComing = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let BossComing = class BossComing extends cc.Component {};
    BossComing = __decorate([ ccclass ], BossComing);
    exports.BossComing = BossComing;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-BossDebutt": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "10d79aDrr9Md7iZ25Nyawh9", "MT3SETB-BossDebutt");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BossDebutt = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_BossComing_1 = require("./MT3SETB-BossComing");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let BossDebutt = class BossDebutt extends MT3SETB_BossComing_1.BossComing {
      constructor() {
        super(...arguments);
        this.debuttEffect = null;
        this.textOdds = null;
      }
      init() {
        this.node.setPosition(0, 50);
        this.node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
      }
      setShowInfo(e, t) {
        this.textOdds.string = e.ratio;
      }
      checkShow(e) {}
      play(bossComingData) {
        var me = this;
        this.checkShow(true);
        this.setShowInfo(bossComingData, true);
        this.node.active = true;
        this.debuttEffect.node.active = true;
        var trackEntry = this.debuttEffect.setAnimation(0, "fish_cat_bosscome", false);
        this.debuttEffect.setTrackCompleteListener(trackEntry, function() {
          me.node.destroy();
          me.node.active = false;
          me.debuttEffect.node.active = false;
        });
      }
    };
    __decorate([ property(sp.Skeleton) ], BossDebutt.prototype, "debuttEffect", void 0);
    __decorate([ property(cc.Label) ], BossDebutt.prototype, "textOdds", void 0);
    BossDebutt = __decorate([ ccclass ], BossDebutt);
    exports.BossDebutt = BossDebutt;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-BossComing": "MT3SETB-BossComing"
  } ],
  "MT3SETB-BossWarning": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "75cf3usNFhMxoApIwJcIzId", "MT3SETB-BossWarning");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BossWarning = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_BossComing_1 = require("./MT3SETB-BossComing");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let BossWarning = class BossWarning extends MT3SETB_BossComing_1.BossComing {
      constructor() {
        super(...arguments);
        this.warningEffect = null;
        this.clipName = "";
        this.resizeCbIndex = null;
        this.app = null;
      }
      onLoad() {
        this.app = MT3SETB_Comm_1.Comm.app;
        null == this.resizeCbIndex && (this.resizeCbIndex = MT3SETB_Comm_1.Comm.app.registResizeCallback(this.onResize.bind(this)));
        this.onResize();
      }
      onDestroy() {
        null != this.resizeCbIndex && MT3SETB_Comm_1.Comm.app.cancelResizeCallback(this.resizeCbIndex);
        this.resizeCbIndex = null;
      }
      init() {
        this.node.setPosition(cc.Vec2.ZERO);
        this.node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
      }
      setShowInfo(e, t) {
        3 == e.warningType;
      }
      checkShow(e) {}
      play(bossComingData) {
        const SFX_DURATION = 3;
        const SFX_START = .1;
        const VFX_DURATION = 30;
        var me = this;
        this.checkShow(true);
        this.setShowInfo(bossComingData, true);
        this.node.active = true;
        this.warningEffect.node.active = true;
        this.warningEffect.setAnimation(0, this.clipName, true);
        MT3SETB_Comm_1.Comm.snd.playEffectByName("jingbao", true);
        me.scheduleOnce(() => {
          me.scheduleOnce(() => {
            MT3SETB_Comm_1.Comm.snd.stopEffectByName("jingbao");
          }, SFX_DURATION);
        }, SFX_START);
        this.scheduleOnce(() => {
          me.node.destroy();
        }, VFX_DURATION);
      }
      onResize() {
        let ds = cc.view.getDesignResolutionSize(), vs = cc.view.getVisibleSize(), scale = Math.min(1, vs.height / ds.height);
        this.node.scaleX = 1 / scale;
      }
    };
    __decorate([ property(sp.Skeleton) ], BossWarning.prototype, "warningEffect", void 0);
    __decorate([ property ], BossWarning.prototype, "clipName", void 0);
    BossWarning = __decorate([ ccclass ], BossWarning);
    exports.BossWarning = BossWarning;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-BossComing": "MT3SETB-BossComing"
  } ],
  "MT3SETB-Broadcast": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "11c6dumxqtB34ZV0760R52k", "MT3SETB-Broadcast");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Broadcast = exports.broadcastData = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const MT3SETB_language_1 = require("../common/api/MT3SETB-language");
    const MT3SETB_LangImg_1 = require("./MT3SETB-LangImg");
    const MT3SETB_event_1 = require("../common/api/MT3SETB-event");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const MT3SETB_utils2_1 = require("../framework/framework/MT3SETB-utils2");
    const {ccclass: ccclass, property: property} = cc._decorator;
    class broadcastData {
      constructor() {
        this.name = "";
        this.coin = 0;
        this.fishID = 0;
        this.odds = 0;
        this.theme = "";
        this.kind = 0;
        this.from = 0;
      }
    }
    exports.broadcastData = broadcastData;
    let Broadcast = class Broadcast extends cc.Component {
      constructor() {
        super();
        this.lineRichText = null;
        this.lineNode = null;
        this.cardNode = null;
        this.cardLabel = null;
        this.cardCoin = null;
        this.cardOdds = null;
        this.cardDarkOdds = null;
        this.fishIconMapping = null;
        this.resizeCbIndex = null;
        this.broadList = [];
        this.bShow = false;
        this.bPause = false;
        this.lastTime = 0;
        this.broadTime = [ 30, 10 ];
        this.broadShow = [ false, false ];
        this.maintain = function(e) {
          MT3SETB_Comm_1.Comm.broadcast.priorityMessage_min(e.next);
          10 != e.next && 7 != e.next && 4 != e.next && 1 != e.next || MT3SETB_Comm_1.Comm.broadcast.priorityMessage_date(e.type, 1e3 * e.start.toNumber(), 1e3 * e.end.toNumber());
        };
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.broadcast = this;
        this.lineNode.getComponent(cc.Animation).on("finished", function() {
          this.bShow = false;
          this.lineNode.active = false;
        }, this);
        this.cardNode.getComponent(cc.Animation).on("finished", function() {
          this.bShow = false;
          this.cardNode.active = false;
        }, this);
        MT3SETB_event_1.EventBus.register("maintain_broadcast", this.maintain);
        null == this.resizeCbIndex && (this.resizeCbIndex = MT3SETB_Comm_1.Comm.app.registResizeCallback(this.onResize.bind(this)));
        this.onResize();
        this.fishIconMap = {};
        if (this.fishIconMapping) for (let key in this.fishIconMapping.json) for (let value of this.fishIconMapping.json[key]) this.fishIconMap[value] = key;
      }
      onDestroy() {
        null != this.resizeCbIndex && MT3SETB_Comm_1.Comm.app.cancelResizeCallback(this.resizeCbIndex);
        this.resizeCbIndex = null;
      }
      update(e) {
        if (!this.bPause && false == this.bShow && !MT3SETB_Comm_1.Comm.app.isNetBreak) for (let t = 0; t < this.broadList.length; ++t) {
          this.bShow = true;
          this.showMessage(this.broadList[t]);
          this.broadList.splice(t, 1);
          break;
        }
      }
      setMessage(name, coin, fish, odds, theme, isShowAsCard, from = 0) {
        for (var s = "", c = name.length - 3, l = name.length, u = 0; u < c; ++u) s += "*";
        s += name.substring(c, l);
        var d = new broadcastData();
        d.name = s;
        d.coin = coin;
        d.fishID = fish;
        d.odds = odds;
        d.theme = theme;
        d.from = from;
        d.kind = isShowAsCard;
        this.broadList.length < 20 && this.broadList.push(d);
      }
      priorityMessage_min(e) {
        this.lastTime = 60 * e;
        this.bShow = true;
        this.lineRichText.maxWidth = 0;
        this.lineRichText.string = MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(125), e);
        this.lineNode.active = true;
        this.lineNode.getComponent(cc.Animation).play();
      }
      priorityMessage_sec(e) {
        this.lastTime = e;
        this.bShow = true;
        this.lineRichText.maxWidth = 0;
        this.lineRichText.string = MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(135), e);
        this.lineNode.active = true;
        this.lineNode.getComponent(cc.Animation).play();
      }
      priorityMessage_date(e, t, o) {
        var i = "";
        0 == e ? i = MT3SETB_language_1.GetLanguage(53) : 1 == e && (i = MT3SETB_language_1.GetLanguage(54));
        i = MT3SETB_utils2_1.sprintf(i, new Date(t).toLocaleString(), new Date(o).toLocaleString());
        MT3SETB_Comm_1.Comm.msgBox.setMessage(1, i);
      }
      showMessage(e) {
        this.showLine(e);
      }
      showLine(e) {
        var text = MT3SETB_LangList_1.LangList.getString("Broadcast");
        let iconName = e.fishID;
        iconName || (iconName = "1");
        this.lineRichText.maxWidth = 0;
        this.lineRichText.string = MT3SETB_utils2_1.sprintf(text, e.name, e.theme, MT3SETB_Comm_1.Comm.getThousandsNum(e.odds), MT3SETB_Comm_1.Comm.getThousandsNum4(e.coin), iconName);
        this.lineRichText.node.getContentSize().width > 1050 && (this.lineRichText.maxWidth = 1050);
        this.lineNode.active = true;
        this.lineNode.getComponent(cc.Animation).play();
      }
      showCard(e) {
        for (var t = [ "BossGetNode/Boss1", "BossGetNode/Boss2", "BossGetNode/Boss3", "BossGetNode/Boss4", "BossGetNode/Boss5", "BossGetNode/Boss6", "BossGetNode/Boss7", "BossGetNode/Boss8", "BossGetNode/Boss9", "JPGetNode/JP1", "JPGetNode/JP2", "JPGetNode/JP3", "BossGetNode/Boss10", "BossGetNode/Boss11", "BossGetNode/Boss12", "BossGetNode/Boss13", "BossGetNode/Boss14", "BossGetNode/Boss15", "BossGetNode/Boss16", "BossGetNode/Boss17", "BossGetNode/Boss18" ], o = [ "JPGetNode/JP1_Word", "JPGetNode/JP2_Word", "JPGetNode/JP3_Word" ], r = 0; r < t.length; ++r) {
          var s = cc.find(MT3SETB_utils2_1.sprintf("Card/%s", t[r]), this.node);
          s && (s.active = false);
        }
        for (r = 0; r < o.length; ++r) {
          var u = cc.find(MT3SETB_utils2_1.sprintf("Card/%s", o[r]), this.node);
          u && (u.active = false);
        }
        this.cardNode.active = true;
        var d = cc.find("Card/coming", this.node);
        d && d.getComponent(cc.ParticleSystem).resetSystem();
        this.cardLabel.string = MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(136), e.name);
        this.cardCoin.string = MT3SETB_Comm_1.Comm.getThousandsNum4(e.coin);
        this.cardOdds.string = MT3SETB_Comm_1.Comm.getThousandsNum(e.odds);
        this.cardDarkOdds.string = MT3SETB_Comm_1.Comm.getThousandsNum(e.odds);
        var p = this.cardNode.getComponent(cc.Animation), h = 0, f = 0, m = -1;
        20 == e.fishID ? h = 0 : 21 == e.fishID ? h = 1 : 22 == e.fishID ? h = 2 : 28 == e.fishID ? h = 12 : 29 == e.fishID ? h = 13 : 30 == e.fishID ? h = 3 : 31 == e.fishID ? h = 4 : 32 == e.fishID ? h = 5 : 33 == e.fishID ? h = 5 : 36 == e.fishID ? h = 6 : 35 == e.fishID ? h = 7 : 37 == e.fishID ? h = 14 : 38 == e.fishID ? h = 15 : 39 == e.fishID ? h = 16 : 40 == e.fishID ? h = 17 : 41 == e.fishID ? h = 18 : 42 == e.fishID ? h = 19 : 43 == e.fishID ? h = 20 : 201 == e.fishID ? h = 8 : 251 == e.fishID ? (h = 9, 
        f = 1, m = 0) : 252 == e.fishID ? (h = 10, f = 1, m = 1) : 253 == e.fishID && (h = 11, 
        f = 1, m = 2);
        var g = cc.find(MT3SETB_utils2_1.sprintf("Card/%s", t[h]), this.node);
        g && (g.active = true);
        m >= 0 && (g = cc.find(MT3SETB_utils2_1.sprintf("Card/%s", o[m]), this.node)) && (g.active = true, 
        0 == m && MT3SETB_platform_1.checkTaDaVersion() && g.getComponent(MT3SETB_LangImg_1.LangImg).changeSpriteFrame("JP1_Show_1"));
        p.play(p.getClips()[f].name);
      }
      setPause(e) {
        this.bPause = e;
      }
      isPause() {
        return this.bPause;
      }
      onResize() {
        let ds = cc.view.getDesignResolutionSize(), vs = cc.view.getVisibleSize(), height = Math.min(ds.height, vs.height), scale = Math.min(1, vs.height / ds.height);
        this.node.y = .5 * height;
      }
    };
    __decorate([ property(cc.RichText) ], Broadcast.prototype, "lineRichText", void 0);
    __decorate([ property(cc.Node) ], Broadcast.prototype, "lineNode", void 0);
    __decorate([ property(cc.Node) ], Broadcast.prototype, "cardNode", void 0);
    __decorate([ property(cc.Label) ], Broadcast.prototype, "cardLabel", void 0);
    __decorate([ property(cc.Label) ], Broadcast.prototype, "cardCoin", void 0);
    __decorate([ property(cc.Label) ], Broadcast.prototype, "cardOdds", void 0);
    __decorate([ property(cc.Label) ], Broadcast.prototype, "cardDarkOdds", void 0);
    __decorate([ property(cc.JsonAsset) ], Broadcast.prototype, "fishIconMapping", void 0);
    Broadcast = __decorate([ ccclass ], Broadcast);
    exports.Broadcast = Broadcast;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-event": "MT3SETB-event",
    "../common/api/MT3SETB-language": "MT3SETB-language",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "../system/MT3SETB-LangList": "MT3SETB-LangList",
    "./MT3SETB-LangImg": "MT3SETB-LangImg"
  } ],
  "MT3SETB-BubbleFxPool": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d8305VsDuZGjrsje+Xkym7f", "MT3SETB-BubbleFxPool");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BubbleFxPool = void 0;
    class BubbleFxPool {
      constructor(dataMgr) {
        this.pool = null;
        this.dataMgr = null;
        this.fxPrefab = null;
        this.pool = new cc.NodePool();
        this.dataMgr = dataMgr;
        this.fxPrefab = dataMgr.effectData.fishWaveBubble;
      }
      preload() {
        for (let i = 0; i < 765; ++i) this.pool.put(cc.instantiate(this.fxPrefab));
      }
      return(node) {
        node.cleanup();
        this.pool.put(node);
      }
      get() {
        let node = this.pool.get();
        null == node && (node = cc.instantiate(this.fxPrefab));
        return node;
      }
      clear() {
        this.pool.clear();
      }
    }
    exports.BubbleFxPool = BubbleFxPool;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-BulletData": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "8c828EIbw9M+IV7dS8Ecs+h", "MT3SETB-BulletData");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BulletData = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let BulletData = class BulletData extends cc.Component {
      constructor() {
        super(...arguments);
        this.bullets = [];
        this.crabTorpedo = null;
        this.laserDish = null;
        this.commonBullets = [];
      }
    };
    __decorate([ property([ cc.Prefab ]) ], BulletData.prototype, "bullets", void 0);
    __decorate([ property(cc.Prefab) ], BulletData.prototype, "crabTorpedo", void 0);
    __decorate([ property(cc.Prefab) ], BulletData.prototype, "laserDish", void 0);
    __decorate([ property([ cc.Prefab ]) ], BulletData.prototype, "commonBullets", void 0);
    BulletData = __decorate([ ccclass ], BulletData);
    exports.BulletData = BulletData;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-BulletMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "c1ad0qoY3dH1b9a9hhvunvu", "MT3SETB-BulletMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.BulletMgr = void 0;
    const MT3SETB_Bullet_1 = require("./MT3SETB-Bullet");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const MT3SETB_ShootMgr_1 = require("./MT3SETB-ShootMgr");
    const MT3SETB_SoundConst_1 = require("./MT3SETB-SoundConst");
    const MT3SETB_DrillBullet_1 = __importDefault(require("./MT3SETB-DrillBullet"));
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const {ccclass: ccclass} = cc._decorator;
    class BulletData {
      constructor() {
        this.laserAnim = null;
        this.mainBody = null;
        this.dishNode = null;
        this.hitNode = null;
        this.fishId = -1;
        this.seat = -1;
        this.time = 0;
      }
    }
    class AimingData {
      constructor() {
        this.bltId = 0;
        this.seat = 0;
        this.type = 0;
        this.time = 60;
        this.bet = 0;
      }
    }
    let BulletMgr = class BulletMgr extends cc.Component {
      constructor() {
        super();
        this.bulletHitAngle = {};
        this.isPlayingLaserSfx = false;
        this.activeLasers = {};
        this.shootList = [];
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.bulletMgr = this;
        MT3SETB_Comm_1.Comm.node.bulletLayer.on("BulletHit", this.c2sBulletHit.bind(this));
        MT3SETB_Comm_1.Comm.node.bulletLayer.on("ShadowBulletHit", this.c2sShadowBulletHit.bind(this));
        MT3SETB_Comm_1.Comm.node.bulletLayer.on("DrillBomb", this.c2sDrillBomb.bind(this));
      }
      start() {
        cc.director.getCollisionManager().enabled = true;
      }
      update(deltaTime) {
        for (var t = 0; t < this.shootList.length; ) {
          this.shootList[t].time -= deltaTime;
          if (this.shootList[t].time <= 0) {
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_Game_coinback, this.shootList[t].bet.toString());
            MT3SETB_Comm_1.Comm.bankSys.addCoin("hit", this.shootList[t].seat, -this.shootList[t].bet);
            MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.shootList[t].seat, this.shootList[t].bet);
            this.shootList.splice(t, 1);
          } else t += 1;
        }
        for (let laserData of Object.values(this.activeLasers)) {
          this.showLaser(laserData.seat, laserData.fishId);
          this.updateLaserBullet(laserData, deltaTime);
        }
      }
      createBullet(e, t, o, i, a, r, c, l, u, d) {
        var p = MT3SETB_Comm_1.Comm.dataMgr.getBullet(e);
        MT3SETB_Comm_1.Comm.node.bulletLayer.addChild(p);
        p.getComponent(MT3SETB_Bullet_1.Bullet).init(e, t, o, i, a, r, c, l, u, d);
      }
      createFlameStormBullet(isLocalPlayer, seat, startPos, endPos, dir, id, type) {
        let bulletNo = MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FLAMESTORM;
        let bulletNode = MT3SETB_Comm_1.Comm.dataMgr.getBullet(bulletNo);
        MT3SETB_Comm_1.Comm.node.bulletLayer.addChild(bulletNode);
        let bullet = bulletNode.getComponent(MT3SETB_Bullet_1.Bullet);
        bullet.init(bulletNo, isLocalPlayer, seat, startPos, endPos, dir, id, type);
      }
      createDrill() {
        var _a;
        let drill = null === (_a = MT3SETB_Comm_1.Comm.dataMgr.getBullet(MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREEDRILL)) || void 0 === _a ? void 0 : _a.getComponent(MT3SETB_DrillBullet_1.default);
        MT3SETB_Comm_1.Comm.node.bulletLayer.addChild(drill.node);
        return drill;
      }
      createLaserBullet(isLocalPlayer, seat, bulletId, bulletType, fishId, bet) {
        let turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(seat);
        if (null == turret) return;
        let activeLaser = this.activeLasers[seat.toString()];
        let time = activeLaser ? activeLaser.time : MT3SETB_ShootMgr_1.cooldown.normal / MT3SETB_ShootMgr_1.cooldown.speedMul;
        let laserData = {
          time: time,
          seat: seat,
          bet: bet,
          fishId: fishId,
          bulletId: bulletId,
          bulletType: bulletType,
          lastSentId: -1
        };
        this.activeLasers[seat.toString()] = laserData;
        isLocalPlayer && (MT3SETB_Comm_1.Comm.shootMgr.lockNode.active = false);
      }
      createTorpedo(e, t, o, i, a, c, l, u, d) {
        var p = MT3SETB_Comm_1.Comm.dataMgr.getTorpedo();
        MT3SETB_Comm_1.Comm.node.bulletLayer.addChild(p);
        p.getComponent(MT3SETB_Bullet_1.Bullet).init(MT3SETB_Game_1.eBulletNo.Torpedo, e, t, o, i, a, c, l, u, d);
      }
      c2sBulletHit(e, t, o, i, r) {
        var _a;
        i != MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL && i != MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK || 0 != o || (i = MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREE);
        var s = new MT3SETB_mtf_pb_wrapper_1.mtf.HitReqData();
        s.bulletId = e;
        s.fishId = [ t ];
        this.addBulletData(e, o, i, r);
        if (i == MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FLAMESTORM) {
          MT3SETB_Comm_1.Comm.gameMgr.flameStormHitRequest(s);
          return;
        }
        var fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(t);
        if (fish && MT3SETB_Comm_1.Comm.fishMgr.isInstaBombFish(fish)) {
          let bombRange = MT3SETB_Comm_1.Comm.fishMgr.getBombRange(fish);
          let fishList = MT3SETB_Comm_1.Comm.fishMgr.getAllFishInBombRange(t, bombRange);
          s.fishId = fishList;
        }
        MT3SETB_platform_1.isDebugMode() && (null === (_a = MT3SETB_Comm_1.Comm.debug) || void 0 === _a ? void 0 : _a.isSureCatch) ? MT3SETB_Comm_1.Comm.gameMgr.debugHitRequest(s) : MT3SETB_Comm_1.Comm.gameMgr.hitRequest(s);
        MT3SETB_Comm_1.Comm.bankSys.addCoin("bullet", r, -o);
        MT3SETB_Comm_1.Comm.bankSys.addCoin("hit", r, o);
      }
      c2sShadowBulletHit(e, t, o, i, a) {
        MT3SETB_Comm_1.Comm.gameCtrl.hitSync(e, t, o, i, a);
      }
      c2sDrillBomb(e) {
        var t = new MT3SETB_mtf_pb_wrapper_1.mtf.HitSpecialStartReqData();
        t.type = 3;
        t.fishIds = e;
        MT3SETB_Comm_1.Comm.gameMgr.drillRequest(t);
      }
      showLaser(seat, fishId) {
        let turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(seat);
        if (!turret || turret.state == MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          this.stopLaser(seat);
          return;
        }
        let targetFish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(fishId);
        if (!targetFish) {
          this.stopLaser(seat);
          return;
        }
        turret.gunType = MT3SETB_Turret_1.GunType.Lightning;
        let lockWorldPos = targetFish.getLockPosition();
        let distanceToFish = cc.Vec2.distance(turret.lightningBulletImg.position, turret.lightningBulletImg.parent.convertToNodeSpaceAR(lockWorldPos));
        turret.lightningBulletImg.scaleY = distanceToFish / turret.lightningBulletImg.getContentSize().height;
        let currentLaserData = this.activeLasers[seat.toString()];
        currentLaserData && currentLaserData.fishId != fishId && (currentLaserData.fishId = fishId);
        let aimPos = MT3SETB_Comm_1.Comm.node.bulletLayer.convertToNodeSpaceAR(lockWorldPos);
        aimPos = turret.checkAimPos(aimPos);
        turret.aimAt(aimPos);
        turret.lightningBullet.angle = turret.getAngle();
        turret.lightningBulletHit.position = turret.lightningBulletHit.parent.convertToNodeSpaceAR(lockWorldPos);
        turret.lightningBullet.active = true;
        let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == turret.seatNo;
        if (isLocalPlayer && !this.isPlayingLaserSfx) {
          this.isPlayingLaserSfx = true;
          MT3SETB_Comm_1.Comm.snd.playEffectByName(MT3SETB_SoundConst_1.LASER_SFX, true);
        }
      }
      updateLaserBullet(laserData, deltaTime) {
        let turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(laserData.seat);
        if (!turret || turret.state == MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          this.stopLaser(laserData.seat);
          return;
        }
        let targetFish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(laserData.fishId);
        if (!targetFish) {
          this.stopLaser(laserData.seat);
          return;
        }
        if (laserData.time <= 0 && laserData.bulletId != laserData.lastSentId) {
          MT3SETB_Comm_1.Comm.fishMgr.showDamage(targetFish);
          laserData.time = MT3SETB_ShootMgr_1.cooldown.normal / MT3SETB_ShootMgr_1.cooldown.speedMul;
          laserData.lastSentId = laserData.bulletId;
          let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == turret.seatNo;
          if (isLocalPlayer) {
            MT3SETB_Comm_1.Comm.gameCtrl.reduceShootCnt();
            let hitReq = new MT3SETB_mtf_pb_wrapper_1.mtf.HitReqData();
            hitReq.bulletId = laserData.bulletId;
            hitReq.fishId = [ laserData.fishId ];
            let fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(laserData.fishId);
            if (fish && MT3SETB_Comm_1.Comm.fishMgr.isInstaBombFish(fish)) {
              let bombRange = MT3SETB_Comm_1.Comm.fishMgr.getBombRange(fish);
              let fishList = MT3SETB_Comm_1.Comm.fishMgr.getAllFishInBombRange(laserData.fishId, bombRange);
              hitReq.fishId = fishList;
            }
            this.addBulletData(laserData.bulletId, laserData.bet, MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK, laserData.seat);
            MT3SETB_Comm_1.Comm.gameMgr.hitRequest(hitReq);
            MT3SETB_Comm_1.Comm.bankSys.addCoin("hit", laserData.seat, laserData.bet);
          } else MT3SETB_Comm_1.Comm.bankSys.addClientCoin(laserData.seat, -laserData.bet);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(laserData.seat);
        }
        laserData.time -= deltaTime;
      }
      stopLaser(seat) {
        let turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(seat);
        if (null == turret) return;
        this.activeLasers[seat.toString()] && delete this.activeLasers[seat.toString()];
        if (this.isPlayingLaserSfx) {
          this.isPlayingLaserSfx = false;
          MT3SETB_Comm_1.Comm.snd.stopEffectByName(MT3SETB_SoundConst_1.LASER_SFX);
        }
        turret.gunType == MT3SETB_Turret_1.GunType.Lightning && (turret.gunType = MT3SETB_Turret_1.GunType.Normal);
        turret.lightningBullet.active = false;
        let isLocalPlayer = turret.seatNo == MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
        isLocalPlayer && (MT3SETB_Comm_1.Comm.shootMgr.lockNode.active = turret.isLockedOn && null != MT3SETB_Comm_1.Comm.shootMgr.lockFishNode);
      }
      addBulletData(bulletId, bet, type, seat) {
        if (bet > 0) {
          var i = new AimingData();
          i.bltId = bulletId;
          i.type = type;
          i.seat = seat;
          i.bet = bet;
          this.shootList.push(i);
        }
      }
      delBulletData(e) {
        for (var t = 0; t < this.shootList.length; ) {
          if (this.shootList[t].bltId === e) {
            MT3SETB_Comm_1.Comm.bankSys.addCoin("hit", this.shootList[t].seat, -this.shootList[t].bet);
            this.shootList.splice(t, 1);
            break;
          }
          t++;
        }
      }
      storeBulletAngle(bulletId, fishId, angle) {
        this.bulletHitAngle[fishId] || (this.bulletHitAngle[fishId] = {});
        this.bulletHitAngle[fishId][bulletId] = angle;
      }
      getBulletAngle(bulletId, fishId) {
        var _a;
        return null === (_a = this.bulletHitAngle[fishId]) || void 0 === _a ? void 0 : _a[bulletId];
      }
      removeBulletAngle(bulletId, fishId) {
        var _a;
        if (null === (_a = this.bulletHitAngle[fishId]) || void 0 === _a ? void 0 : _a[bulletId]) {
          delete this.bulletHitAngle[fishId][bulletId];
          0 === Object.keys(this.bulletHitAngle[fishId]).length && delete this.bulletHitAngle[fishId];
        }
      }
    };
    BulletMgr = __decorate([ ccclass ], BulletMgr);
    exports.BulletMgr = BulletMgr;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-Bullet": "MT3SETB-Bullet",
    "./MT3SETB-DrillBullet": "MT3SETB-DrillBullet",
    "./MT3SETB-ShootMgr": "MT3SETB-ShootMgr",
    "./MT3SETB-SoundConst": "MT3SETB-SoundConst",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-Bullet": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "408c1pz9rJCXIWC1mFzmn0z", "MT3SETB-Bullet");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Bullet = void 0;
    const MT3SETB_FreeBulletMgr_1 = require("../../res/Common/script/MT3SETB-FreeBulletMgr");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const MT3SETB_SoundConst_1 = require("./MT3SETB-SoundConst");
    const {ccclass: ccclass} = cc._decorator;
    let Bullet = class Bullet extends cc.Component {
      constructor() {
        super();
        this.hitFish = null;
        this.collider = null;
        this.anim = null;
        this.hitExplosionAnim = null;
        this.isMe = false;
        this.used = false;
        this.owner = -1;
        this.type = 0;
        this.bet = 0;
        this.no = -1;
        this.id = 0;
        this.speed = 0;
        this.lifetime = 0;
        this.startPos = cc.Vec2.ZERO;
        this.endPos = cc.Vec2.ZERO;
        this.vel = cc.Vec2.ZERO;
        this.dir = cc.Vec2.ZERO;
        this.hitFishId = 0;
        this.delayDestroyTime = 0;
        this.isDrillStartBrakes = false;
        this.drillBombFish = [];
        this.drillOdds = 0;
        this.hitFishNode = null;
        this.hitFish = null;
      }
      onLoad() {
        var _a;
        this.collider = this.getComponent(cc.Collider);
        this.anim = this.getComponent(cc.Animation);
        this.hitExplosionAnim = null === (_a = cc.find("Hit/Net2", this.node)) || void 0 === _a ? void 0 : _a.getComponent(cc.Animation);
      }
      update(dt) {
        var t = this;
        if (this.used) {
          this.lifetime -= dt;
          switch (this.type) {
           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL:
           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK:
            if (this.bet > 0 && this.lifetime <= 0) {
              this.destroyBullet();
              MT3SETB_Comm_1.Comm.bankSys.addCoin("bullet", this.owner, -this.bet);
              MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.owner, this.bet);
            }
            this.hitFishId <= 0 && this.updatePos(dt);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FLAMESTORM:
            this.hitFishId <= 0 && this.updatePos(dt);
          }
        }
        if (this.hitFish && this.hitFishId && this.used) {
          if (!this.hitFishNode.isValid || !this.hitFish.isUsed()) {
            this.hitFishId = 0;
            this.hitFish = null;
            this.hitFishNode = null;
            return;
          }
          {
            let lockPos = MT3SETB_Comm_1.Comm.shootMgr.getLockPosition(false, this.hitFish.node);
            this.endPos = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.bulletLayer, MT3SETB_Comm_1.Comm.node.fishLayer, lockPos);
          }
          let dist = this.endPos.sub(cc.v2(this.node.position));
          if (dist.magSqr() < this.speed * this.speed * dt * dt) if (this.hitFishNode.isValid && this.hitFish.isUsed()) this.aimFinished(); else {
            this.destroyBullet();
            MT3SETB_Comm_1.Comm.bankSys.addCoin("bullet", this.owner, -this.bet);
            MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.owner, this.bet);
          } else {
            const dir = dist.normalize();
            this.node.angle = cc.misc.radiansToDegrees(Math.atan2(dir.y, dir.x)) - 90;
            this.vel = dir.mul(this.speed);
            this.updatePos(dt);
          }
        }
      }
      init(no, isLocal, owner, startPos, endPos, dir, id, type, hitFishId = 0, bet = 0) {
        this.no = no;
        this.isMe = isLocal;
        this.owner = owner;
        this.startPos = startPos;
        this.endPos = endPos;
        this.dir = dir;
        this.id = id;
        this.type = type;
        this.hitFishId = hitFishId;
        this.bet = bet;
        this.node.zIndex = isLocal ? MT3SETB_Game_1.eBulletZIndex.Self : MT3SETB_Game_1.eBulletZIndex.Other;
        this.node.setPosition(startPos);
        this.node.angle = cc.misc.radiansToDegrees(cc.Vec2.UP.signAngle(dir));
        this.setUsed(true);
        this.setup();
      }
      setup() {
        var e = this;
        switch (this.type) {
         case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.BOMB:
          this.lifetime = 100;
          this.delayDestroyTime = 3;
          this.anim.play(this.anim.getClips()[0].name);
          this.node.opacity = 0;
          MT3SETB_Comm_1.Comm.runTask(.24, function() {
            if (e.node) {
              e.node.runAction(cc.moveTo(1.26, e.endPos));
              e.updateOpacity();
              e.anim.play(e.anim.getClips()[1].name);
              e.anim.once("finished", function(t, o) {
                if (o.name === e.anim.getClips()[1].name) {
                  e.anim.play(e.anim.getClips()[2].name);
                  e.aimingBomb(.27);
                }
              });
            }
          });
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREEDRILL:
          this.speed = 1400;
          this.getComponentInChildren(cc.MotionStreak).node.active = true;
          break;

         default:
          this.hitFishId > 0 && this.aiming();
          this.lifetime = 15;
          this.speed = 1300;
          this.delayDestroyTime = .42;
          this.anim.play(this.anim.getClips()[0].name);
          this.updateOpacity();
        }
        this.vel = this.dir.mul(this.speed);
        this.type == MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.BOMB ? MT3SETB_Comm_1.Comm.bankSys.addCoin("bullet", this.owner, this.bet * MT3SETB_Comm_1.Comm.shootMgr.torpedoHitCount) : this.type != MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL && this.type != MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK || MT3SETB_Comm_1.Comm.bankSys.addCoin("bullet", this.owner, this.bet);
      }
      onCollisionEnter(e) {
        if (0 === e.tag) {
          var t = Math.abs(e.node.y) < 1, o = Math.abs(e.node.x) < 1;
          this.bounceByNormal(t, o);
        } else if (2 === e.tag || 1 === e.tag) {
          let fish = e.node.getComponent(MT3SETB_Fish_1.Fish);
          let hitNodeParent = e.node.parent;
          while (null == fish && null != hitNodeParent) {
            fish = hitNodeParent.getComponent(MT3SETB_Fish_1.Fish);
            hitNodeParent = hitNodeParent.parent;
          }
          if (null != fish && fish.isUsed() && this.canHitFish(fish)) {
            var c = fish.getFishId();
            if (this.used && this.isMe && this.type !== MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK && this.hitFishId <= 0) {
              MT3SETB_Comm_1.Comm.fishMgr.showDamage(fish);
              MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.FISH_HIT);
            }
            switch (this.type) {
             case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL:
             case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK:
             case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FLAMESTORM:
              let angle = this.node.angle;
              MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() >= 2 && (angle = (angle + 180) % 360);
              let fishId = this.hitFishId;
              if (this.hitFishId <= 0) {
                fishId = c;
                if (this.used) if (this.isMe) this.node.parent.emit("BulletHit", this.id, c, this.bet, this.type, this.owner); else {
                  this.node.parent.emit("ShadowBulletHit", this.id, [ c ], this.bet, this.type, this.owner);
                  MT3SETB_Comm_1.Comm.bankSys.addCoin("bullet", this.owner, -this.bet);
                  MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.owner);
                }
                this.destroyBullet();
              }
              MT3SETB_Comm_1.Comm.bulletMgr.storeBulletAngle(this.id, fishId, angle);
            }
          }
        }
      }
      canHitFish(fish) {
        switch (this.type) {
         case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREE:
         case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREEDRILL:
          return MT3SETB_Comm_1.Comm.fishMgr.isNormalFish(fish);

         case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FLAMESTORM:
         default:
          return true;
        }
      }
      bounceByNormal(e, t) {
        e && (this.dir.x = -this.dir.x, this.vel.x = -this.vel.x);
        t && (this.dir.y = -this.dir.y, this.vel.y = -this.vel.y);
        this.type === MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREEDRILL ? !MT3SETB_FreeBulletMgr_1.FreeBulletMgr.drillRemainHit[this.id] || MT3SETB_FreeBulletMgr_1.FreeBulletMgr.drillRemainHit[this.id] <= 0 ? this.isDrillStartBrakes || (this.isDrillStartBrakes = true, 
        this.speed -= 560, MT3SETB_FreeBulletMgr_1.FreeBulletMgr.drillRemainHit[this.id] = null, 
        this.anim.play(this.anim.getClips()[2].name)) : this.node.angle = cc.misc.radiansToDegrees(cc.Vec2.UP.signAngle(this.vel)) : this.hitFishId <= 0 && (this.node.angle = cc.misc.radiansToDegrees(cc.Vec2.UP.signAngle(this.vel)));
      }
      aiming() {
        var _a;
        if (this.hitFishId > 0) {
          this.hitFish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(this.hitFishId);
          this.hitFishNode = null === (_a = this.hitFish) || void 0 === _a ? void 0 : _a.lockNode;
          this.endPos = cc.v2(this.hitFishNode.position);
        } else {
          this.hitFish = null;
          this.hitFishNode = null;
        }
      }
      aimFinished() {
        var e = MT3SETB_Comm_1.Comm.fishMgr.getFishById(this.hitFishId);
        if (e && e.isUsed()) {
          if (this.used) {
            MT3SETB_Comm_1.Comm.fishMgr.showDamage(e);
            MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.FISH_HIT);
            if (this.isMe) this.node.parent.emit("BulletHit", this.id, this.hitFishId, this.bet, this.type, this.owner); else {
              this.node.parent.emit("ShadowBulletHit", this.id, [ this.hitFishId ], this.bet, this.type, this.owner);
              MT3SETB_Comm_1.Comm.bankSys.addCoin("bullet", this.owner, -this.bet);
              MT3SETB_Comm_1.Comm.bankSys.addServerCoin(this.owner, -this.bet);
            }
          }
          this.destroyBullet();
        } else this.hitFishId > 0 ? this.hitFishId = 0 : this.destroyBullet();
      }
      aimingBomb(e) {
        var t = this.endPos.sub(this.startPos), fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(this.hitFishId);
        fish && (this.endPos = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.bulletLayer, MT3SETB_Comm_1.Comm.node.fishLayer, MT3SETB_Comm_1.Comm.shootMgr.getLockPosition(false, fish.node)));
        var n = this.endPos.sub(cc.v2(this.node.position)), i = cc.misc.radiansToDegrees(cc.Vec2.UP.signAngle(n)), r = this.node.angle - i, s = n.mag();
        this.speed = s / e, this.node.parent = MT3SETB_Comm_1.Comm.node.bulletLayer;
        var c = [ cc.v2(this.node.position), this.startPos.add(t.mulSelf(.8)), this.endPos ];
        this.node.stopAllActions();
        this.isMe && MT3SETB_Comm_1.Comm.runTask(e - .3, function() {});
        this.node.runAction(cc.sequence(cc.spawn(cc.bezierTo(e, c), cc.rotateBy(e, r).easing(cc.easeOut(1.4))), cc.callFunc(this.destroyBullet.bind(this))));
      }
      changeTarget(newTargetId) {
        this.hitFishId = newTargetId;
        this.aiming();
      }
      destroyBullet() {
        this.node.stopAllActions();
        this.createHitEffect();
        this.setUsed(false);
        this.isMe && MT3SETB_Comm_1.Comm.gameCtrl.reduceShootCnt();
        this.hitFishId = 0;
        this.hitFish = null;
        this.hitFishNode = null;
      }
      createHitEffect() {
        var _a;
        switch (this.type) {
         case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.BOMB:
          var e = MT3SETB_Comm_1.Comm.fishMgr.getFishById(this.hitFishId);
          this.anim.play(this.anim.getClips()[3].name);
          this.isMe && MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, .4, 25, 2);
          if (e && e.getOdds() <= MT3SETB_Comm_1.Comm.fishMgr.getHalfOpacityOdds()) {
            if (this.isMe && this.used) {
              MT3SETB_Comm_1.Comm.bankSys.addCoin("bullet", this.owner, -this.bet * MT3SETB_Comm_1.Comm.shootMgr.torpedoHitCount);
              MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.owner, this.bet * MT3SETB_Comm_1.Comm.shootMgr.torpedoHitCount);
            }
          } else if (this.used) {
            if (this.isMe) this.node.parent.emit("BulletHit", this.id, this.hitFishId, this.bet * MT3SETB_Comm_1.Comm.shootMgr.torpedoHitCount, this.type, this.owner); else {
              this.node.parent.emit("ShadowBulletHit", this.id, [ this.hitFishId ], this.bet, this.type, this.owner);
              MT3SETB_Comm_1.Comm.bankSys.addCoin("bullet", this.owner, -this.bet * MT3SETB_Comm_1.Comm.shootMgr.torpedoHitCount);
              MT3SETB_Comm_1.Comm.bankSys.addServerCoin(this.owner, -this.bet * MT3SETB_Comm_1.Comm.shootMgr.torpedoHitCount);
            }
            MT3SETB_Comm_1.Comm.fishMgr.showDamage(e);
          }
          break;

         default:
          this.node.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
          this.anim.play(this.anim.getClips()[1].name);
          null === (_a = this.hitExplosionAnim) || void 0 === _a ? void 0 : _a.play();
        }
        this.node.zIndex = this.isMe ? MT3SETB_Game_1.eBulletZIndex.SelfHit : MT3SETB_Game_1.eBulletZIndex.OtherHit;
        this.node.runAction(cc.sequence(cc.delayTime(this.delayDestroyTime), cc.callFunc(this.pushToPool, this)));
      }
      pushToPool() {
        this.isMe = false;
        this.owner = -1;
        this.type = 0;
        this.bet = 0;
        this.no >= 0 ? (this.node.opacity = 255, MT3SETB_Comm_1.Comm.dataMgr.setBullet(this.node)) : this.node.destroy();
      }
      updatePos(e) {
        this.node.setPosition(this.vel.mul(e).addSelf(cc.v2(this.node.position)));
      }
      setUsed(e) {
        this.used = e;
        this.collider && (this.collider.enabled = e);
      }
      getOwner() {
        return this.owner;
      }
      getFishInBombRange(e, t) {
        this.drillBombFish = [];
        for (var o = MT3SETB_Comm_1.Comm.fishMgr.getFishInRange(e, t, this.drillOdds + 30), n = 0, i = o.length; n < i; ++n) this.drillBombFish.push(o[n]);
      }
      getBulletId() {
        return this.id;
      }
      updateOpacity() {
        this.node.opacity = 255;
      }
      onDestroy() {
        var e = this;
        MT3SETB_FreeBulletMgr_1.FreeBulletMgr.drills.forEach(function(t) {
          t.forEach(function(o, n) {
            o == e.node && t.splice(n, 1);
          });
        });
      }
    };
    Bullet = __decorate([ ccclass ], Bullet);
    exports.Bullet = Bullet;
    cc._RF.pop();
  }, {
    "../../res/Common/script/MT3SETB-FreeBulletMgr": "MT3SETB-FreeBulletMgr",
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-Fish": "MT3SETB-Fish",
    "./MT3SETB-SoundConst": "MT3SETB-SoundConst"
  } ],
  "MT3SETB-CatchRewardShow": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "86079lEmGRIEajbQ8hPcZIW", "MT3SETB-CatchRewardShow");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var CatchRewardShow_1;
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.CatchRewardShow = void 0;
    const MT3SETB_Comm_1 = require("../../../script/MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let CatchRewardShow = CatchRewardShow_1 = class CatchRewardShow extends cc.Component {
      constructor() {
        super();
        this.endingPrefab = null;
        this.ack = null;
        this.musicVol = 1;
      }
      static new() {
        return MT3SETB_Comm_1.Comm.dataMgr.getCatchRewardShow_CNY().getComponent(CatchRewardShow_1);
      }
      static checkNextShowInQueue() {
        if (CatchRewardShow_1.ackQueue.length > 0) {
          var e = CatchRewardShow_1.ackQueue.shift();
          MT3SETB_Comm_1.Comm.effectMgr.playCatchRewardShow(e);
        }
      }
      static init() {
        this.ackQueue = [], this.isPlaying = false;
      }
      play(e) {
        var t = this;
        this.node.setParent(MT3SETB_Comm_1.Comm.node.rewardLayer);
        this.node.zIndex = 100, this.ack = e, CatchRewardShow_1.isPlaying = true, this.musicVol = cc.audioEngine.getMusicVolume(), 
        cc.audioEngine.setMusicVolume(0), cc.audioEngine.pauseMusic();
        var i = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        i.lock(true, 300), i.lockBet(true);
        var a = this.node;
        a.opacity = 0, a.scale = .1;
        var r = MT3SETB_Comm_1.Comm.get(a, "BG");
        r.active = false, cc.tween(a).to(.2, {
          opacity: 255,
          scale: 1
        }, {
          easing: function(e) {
            return Math.pow(e, 2);
          }
        }).call(function() {
          r.active = true, t.startPhase();
        }).start();
      }
      startPhase() {
        var e = this, t = this.node, o = MT3SETB_Comm_1.Comm.get(t, "Node/Start/Countdown", cc.Label), i = MT3SETB_Comm_1.Comm.get(t, "Node/Start"), a = MT3SETB_Comm_1.Comm.get(t, "Node/Platform"), r = MT3SETB_Comm_1.Comm.get(t, "Node/Platform/Basket"), s = MT3SETB_Comm_1.Comm.get("Canvas/Stage").width / 2;
        a.on(cc.Node.EventType.TOUCH_MOVE, function(e) {
          var t = cc.misc.clampf;
          r.x += t(e.getDeltaX(), -40, 40), r.x = t(r.x, -s, s);
        }), cc.tween(t).call(function() {
          return o.string = "3";
        }).delay(1).call(function() {
          return o.string = "2";
        }).delay(1).call(function() {
          return o.string = "1";
        }).delay(1).call(function() {
          return o.string = "0";
        }).call(function() {
          cc.tween(i).to(.2, {
            opacity: 0
          }).set({
            opacity: 255,
            active: false
          }).call(function() {
            return e.catchPhase();
          }).start();
        }).start();
      }
      catchPhase() {
        var e = this, t = this.node, o = MT3SETB_Comm_1.Comm.get(t, "Node/Drops"), i = MT3SETB_Comm_1.Comm.get(t, "Node/Platform"), a = MT3SETB_Comm_1.Comm.get(t, "Node/Platform/Basket"), r = MT3SETB_Comm_1.Comm.get("Canvas/Stage").width / 2, s = MT3SETB_Comm_1.Comm.get("Canvas/Stage").height / 2, c = 0, l = function(t) {
          var o = cc.v2(t.x - a.x, t.y - a.y), i = Math.sqrt(o.dot(o)) / 2e3;
          c += 1, cc.Tween.stopAllByTarget(t), cc.tween(t).to(i, {
            position: a.position,
            scale: .5
          }, {
            easing: function(e) {
              return Math.pow(e, 2);
            }
          }).call(function() {
            MT3SETB_Comm_1.Comm.playAnime(a, "GodOfFortune_get", null, function() {
              MT3SETB_Comm_1.Comm.playAnime(a, "GodOfFortune_idle");
            }), e.pileUpDrops(t);
          }).start();
        }, u = [ 1, 1, 1, 2 ], d = cc.tween(t).call(function() {
          for (var t = MT3SETB_Comm_1.Comm.rItem(u), i = 0; i < t; i++) e.addDrops(o, r - 50, s);
        }).delay(.25).union().repeatForever().start(), p = cc.tween(t).call(function() {
          if (!(c >= 12)) for (var e = 0, t = o.children; e < t.length; e++) {
            var n = t[e];
            if (!(Math.abs(n.x - a.x) > 120) && n.y <= a.y + 120 && n.y >= a.y) {
              l(n);
              break;
            }
          }
        }).delay(.2).union().repeatForever().start(), h = cc.tween(t).call(function() {
          if (!(c >= 4)) {
            for (var e = cc.v2(), t = Number.MAX_VALUE, n = o.children[o.childrenCount - 1], i = 0, r = o.children; i < r.length; i++) {
              var s = r[i];
              if (s.y >= a.y) {
                e.x = s.x - a.x, e.y = s.y - a.y;
                var u = e.dot(e);
                u < t && (n = s, t = u);
              }
            }
            l(n);
          }
        }).delay(.5).union().repeatForever();
        cc.tween(t).delay(3).call(function() {
          h.start();
        }).start(), cc.tween(t).delay(4).call(function() {
          d.stop();
        }).delay(1.2).call(function() {
          cc.tween(a).call(function() {
            i.off(cc.Node.EventType.TOUCH_MOVE), p.stop();
          }).delay(.5).call(function() {
            h.stop();
          }).delay(.3).to(.5, {
            x: 0
          }, {
            easing: function(e) {
              return 1 - Math.pow(1 - e, 2);
            }
          }).delay(.2).call(function() {
            MT3SETB_Comm_1.Comm.playAnime(a, "GodOfFortune_disappear", null, function() {
              return e.countPhase();
            });
          }).start();
        }).start();
      }
      countPhase() {
        var e = this, t = this.ack, o = this.node, i = MT3SETB_Comm_1.Comm.get(o, "Node/Platform/Basket"), a = MT3SETB_Comm_1.Comm.get(i, "EnvelopeNode");
        if (a.childrenCount <= 0) cc.tween(o).delay(.5).call(function() {
          i.active = false, MT3SETB_Comm_1.Comm.get(o, "Node/Amount").active = false, e.rewardPhase();
        }).start(); else {
          var r = MT3SETB_Comm_1.Comm.get(o, "Node/Platform/reward_number"), s = MT3SETB_Comm_1.Comm.get(o, "Node/Platform/reward_X"), c = [], l = [], u = {
            win: 0,
            multiple: 1
          }, d = function(e) {
            e.active = true, e.opacity = 255, cc.tween(e).to(.3, {
              opacity: 255
            }, {
              easing: function(e) {
                return Math.pow(e, 2);
              }
            }).start();
          };
          cc.tween(o).call(function() {
            d(r), d(s), e.getWinsAndMultiples(t.coin, t.bet, t.bonus, a.childrenCount, c, l);
          }).delay(.5).call(function() {
            var t = cc.tween(o).call(function() {
              if (a.childrenCount <= 0) return t.stop(), void cc.tween(o).delay(2).call(function() {
                cc.tween(r).to(.5, {
                  x: 0,
                  opacity: 0
                }, {
                  easing: function(e) {
                    return Math.pow(e, 2);
                  }
                }).start(), cc.tween(s).to(.5, {
                  x: 0,
                  opacity: 0
                }, {
                  easing: function(e) {
                    return Math.pow(e, 2);
                  }
                }).start();
              }).delay(.5).call(function() {
                i.active = false, r.active = false, r.opacity = 255, s.active = false, s.opacity = 255, 
                MT3SETB_Comm_1.Comm.get(o, "Node/Amount").active = false, e.rewardPhase();
              }).start();
              e.openDrops(u, c, l);
            }).delay(.3).union().repeatForever().start();
          }).start();
        }
      }
      rewardPhase() {
        var e = this, t = this.ack, i = this.node, a = cc.instantiate(this.endingPrefab), r = MT3SETB_Comm_1.Comm.get(a, "BG/label_number", cc.Label);
        a.setParent(MT3SETB_Comm_1.Comm.node.rewardLayer), a.zIndex = 500, a.scale = 1.5, 
        t.bonus > 0 && (MT3SETB_Comm_1.Comm.get(a, "Bonus").active = true);
        var s = MT3SETB_Comm_1.Comm.playAnime(a, "NewYear_reward_start", null, function() {
          MT3SETB_Comm_1.Comm.playAnime(a, "NewYear_reward_loop");
        });
        cc.tween(i).delay(s.duration / s.speed).call(function() {
          var s = t.coin, c = s < 100, l = cc.tween({
            no_matter: 0
          }).call(function() {}).to(3, {
            no_matter: 1
          }, {
            easing: function(e) {
              var t = cc.misc.lerp(0, s, e);
              return r.string = c ? MT3SETB_Comm_1.Comm.getThousandsNum3(t) : MT3SETB_Comm_1.Comm.getThousandsNum2(t), 
              e;
            }
          }).call(function() {
            r.string = MT3SETB_Comm_1.Comm.getThousandsNum(s), MT3SETB_Comm_1.Comm.snd.stopEffect(90);
          }).delay(1.2).call(function() {
            var r = cc.v2(0, 0), s = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
            s.getRewardPosNode().getPosition(r), cc.tween(a).to(.3, {
              position: cc.v3(r),
              scale: .7
            }, {
              easing: function(e) {
                return Math.pow(e, 2);
              }
            }).delay(.8).to(.2, {
              opacity: 0,
              scale: 0
            }, {
              easing: function(e) {
                return Math.pow(e, 2);
              }
            }).call(function() {
              return a.destroy();
            }).start(), cc.tween(i).delay(.3).delay(.8).to(.2, {
              opacity: 0
            }, {
              easing: function(e) {
                return Math.pow(e, 2);
              }
            }).call(function() {
              MT3SETB_Comm_1.Comm.effectMgr.playUserCoinNumAnim(t.seat, t.coin);
              MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", t.seat, -t.coin);
              MT3SETB_Comm_1.Comm.gameCtrl.addCoin(t.seat, t.coin);
              s.lockBet(false);
              s.lock(false);
              MT3SETB_Comm_1.Comm.snd.stopEffect(84);
              true === MT3SETB_Comm_1.Comm.snd.isMusicOpen() && cc.audioEngine.setMusicVolume(e.musicVol);
              cc.audioEngine.resumeMusic();
              CatchRewardShow_1.isPlaying = false;
              CatchRewardShow_1.checkNextShowInQueue();
              i.destroy();
            }).start();
          }).start();
          MT3SETB_Comm_1.Comm.get(a, "Touch").once(cc.Node.EventType.TOUCH_START, function() {
            MT3SETB_Comm_1.Comm.setTweenSpeed(l, 5), MT3SETB_Comm_1.Comm.snd.stopEffect(90);
          });
        }).start();
      }
      addDrops(e, t, o) {
        var i = MT3SETB_Comm_1.Comm.dataMgr.getRedEnvelope_CNY();
        i.setParent(e), i.x = MT3SETB_Comm_1.Comm.rInt(-t, t), i.y = MT3SETB_Comm_1.Comm.rInt(o, o + 100), 
        i.angle = MT3SETB_Comm_1.Comm.rInt(0, 360), cc.tween(i).by(MT3SETB_Comm_1.Comm.rInt(2, 3), {
          angle: MT3SETB_Comm_1.Comm.rItem([ -360, 360 ])
        }).union().repeatForever().start(), cc.tween(i).by(1, {
          position: cc.v3(0, MT3SETB_Comm_1.Comm.rInt(-400, -600), 0)
        }).union().repeatForever().start(), cc.tween(i).call(function() {
          i.y <= -o - 100 && (i.opacity = 0, i.destroy());
        }).delay(.2).union().repeatForever().start();
      }
      pileUpDrops(e) {
        var t = this.node, o = MT3SETB_Comm_1.Comm.get(t, "Node/Platform/Basket"), i = MT3SETB_Comm_1.Comm.get(o, "EnvelopeNode");
        e.setParent(i), e.angle = MT3SETB_Comm_1.Comm.rInt(0, 15) * MT3SETB_Comm_1.Comm.rItem([ -1, 1 ]), 
        e.scale = .5, e.x = MT3SETB_Comm_1.Comm.rInt(-45, 35), e.y = MT3SETB_Comm_1.Comm.rInt(22, 27), 
        MT3SETB_Comm_1.Comm.get(t, "Node/Amount/Num", cc.Label).string = i.childrenCount.toFixed(0);
      }
      openDrops(e, t, o) {
        var i = this.node, a = MT3SETB_Comm_1.Comm.get(i, "Node/Platform/Basket"), r = MT3SETB_Comm_1.Comm.get(i, "Node/Platform"), s = MT3SETB_Comm_1.Comm.get(a, "EnvelopeNode");
        if (!(s.childrenCount <= 0)) {
          var c = MT3SETB_Comm_1.Comm.get(i, "Node/Platform/reward_number"), l = MT3SETB_Comm_1.Comm.get(i, "Node/Platform/reward_X"), u = MT3SETB_Comm_1.Comm.get(c, "Num", cc.Label), d = MT3SETB_Comm_1.Comm.get(l, "Num", cc.Label), p = t.pop(), h = o.pop(), f = s.children[s.childrenCount - 1];
          f.setParent(r), f.setPosition(0, -150), f.angle = 0, p > 0 ? cc.tween(f).to(.2, {
            position: cc.v3(0, 60, 0),
            scale: 1.5
          }, {
            easing: function(e) {
              return 1 - Math.pow(1 - e, 2);
            }
          }).delay(.1).call(function() {
            MT3SETB_Comm_1.Comm.get(i, "Node/Amount/Num", cc.Label).string = s.childrenCount.toFixed(0), 
            e.win += p, MT3SETB_Comm_1.Comm.get(f, "label_number", cc.Label).string = "+" + MT3SETB_Comm_1.Comm.getThousandsNum(p), 
            MT3SETB_Comm_1.Comm.playAnime(f, "Red_Envelope_general", null, function() {
              u.string = "+" + MT3SETB_Comm_1.Comm.getThousandsNum(e.win), f.destroy();
            }), MT3SETB_Comm_1.Comm.get(c, "effect_on/disappear_effect", cc.Animation).play(), 
            MT3SETB_Comm_1.Comm.playAnime(c, "reward_God_get", null, function() {
              MT3SETB_Comm_1.Comm.playAnime(c, "reward_God_idle");
            }), cc.Tween.stopAllByTarget(u.node), cc.tween(u.node).to(.04, {
              scaleX: -1.4,
              scaleY: 1.4
            }).delay(.02).to(.04, {
              scaleX: -1,
              scaleY: 1
            }).union().repeat(2).start();
          }).start() : cc.tween(f).to(.2, {
            position: cc.v3(0, 60, 0),
            scale: 1.5
          }, {
            easing: function(e) {
              return 1 - Math.pow(1 - e, 2);
            }
          }).delay(.1).call(function() {
            MT3SETB_Comm_1.Comm.get(i, "Node/Amount/Num", cc.Label).string = s.childrenCount.toFixed(0), 
            e.multiple += h, MT3SETB_Comm_1.Comm.get(f, "Comp/label_X", cc.Label).string = "X" + h.toFixed(0), 
            MT3SETB_Comm_1.Comm.playAnime(f, "Red_Envelope_X", null, function() {
              d.string = "X" + e.multiple.toFixed(0), cc.tween(f).to(.3, {
                position: cc.v3(l.position)
              }, {
                easing: function(e) {
                  return Math.pow(e, 2);
                }
              }).call(function() {
                MT3SETB_Comm_1.Comm.get(l, "effect_on/disappear_effect", cc.Animation).play(), MT3SETB_Comm_1.Comm.playAnime(l, "reward_God_get", null, function() {
                  MT3SETB_Comm_1.Comm.playAnime(l, "reward_God_idle");
                }), cc.Tween.stopAllByTarget(d.node), cc.tween(d.node).to(.04, {
                  scaleX: 1.4,
                  scaleY: 1.4
                }).delay(.02).to(.04, {
                  scaleX: 1,
                  scaleY: 1
                }).union().repeat(2).start(), f.destroy();
              }).start();
            });
          }).start();
        }
      }
      getWinsAndMultiples(e, t, o, i, a, r) {
        var s, c, l, u = Math.round(e / (1 + o) / t), d = MT3SETB_Comm_1.Comm.rInt(1, i - 1), p = e / i;
        if (d <= 1 || Math.random() < .2) {
          p = p > 1 ? Math.floor(p) : p, a.length = i, a.fill(p), r.length = i, r.fill(0);
          var h = a.reduce(function(e, t) {
            return e + t;
          });
          a[i - 1] += e - h;
        } else {
          var f = 8;
          u >= 500 && u < 600 && (f = Math.max(2, 2)), u >= 600 && u < 800 && (f = Math.max(2, 3)), 
          u >= 800 && u < 1e3 && (f = Math.max(2, 4)), u >= 1e3 && u < 1201 && (f = Math.max(2, 6)), 
          d = MT3SETB_Comm_1.Comm.rInt(2, Math.min(f, d)), r.length = d - 1, r.fill(1);
          for (var m = 0, g = Math.round(r.length / 2); m < g; ++m) for (var _ = 0; _ < r.length - 1; ++_) Math.random() < .15 && (r[_] += r.pop());
          var y = r.length, v = i - y, b = Math.random() < .5 ? 0 : MT3SETB_Comm_1.Comm.rInt(1, Math.round(v / 2));
          for (p = (p = e / d / (v + b)) > 1 ? Math.floor(p) : p, a.length = i, a.fill(0), 
          m = y; m < i; ++m) {
            var w = MT3SETB_Comm_1.Comm.rInt(0, b);
            a[m] = (1 + w) * p, r[m] = 0, b -= w;
          }
          var k = e / d, S = a.reduce(function(e, t) {
            return e + t;
          });
          a[i - 1] += k - S;
          var C = a[i - 1];
          for (m = a.length - 1; m > 0; m--) {
            var N = Math.floor(Math.random() * (m + 1));
            s = [ a[N], a[m] ], a[m] = s[0], a[N] = s[1], c = [ r[N], r[m] ], r[m] = c[0], r[N] = c[1];
          }
          var B = a.indexOf(C);
          if (B >= 0) for (m = a.length - 1; m > 0; m--) if (a[m] > 0) {
            l = [ a[B], a[m] ], a[m] = l[0], a[B] = l[1];
            break;
          }
        }
      }
    };
    CatchRewardShow.ackQueue = [];
    CatchRewardShow.isPlaying = false;
    __decorate([ property(cc.Prefab) ], CatchRewardShow.prototype, "endingPrefab", void 0);
    CatchRewardShow = CatchRewardShow_1 = __decorate([ ccclass ], CatchRewardShow);
    exports.CatchRewardShow = CatchRewardShow;
    cc._RF.pop();
  }, {
    "../../../script/MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-ChangeCoinSprite": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "5c1658W29FE8JgDc66NgWNX", "MT3SETB-ChangeCoinSprite");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ChangeCoinSprite = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_profile_1 = require("../common/api/MT3SETB-profile");
    const MT3SETB_CurrencyHintJp_1 = require("./MT3SETB-CurrencyHintJp");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let ChangeCoinSprite = class ChangeCoinSprite extends cc.Component {
      constructor() {
        super();
        this.coin = null;
        this.coinS = null;
        this.coinType = null;
      }
      start() {}
      show() {
        if (this.coinType.getComponent(MT3SETB_CurrencyHintJp_1.CurrencyHintJp)) {
          this.coin.active = false;
          this.coinType.active = true;
          this.coinType.getComponent(MT3SETB_CurrencyHintJp_1.CurrencyHintJp).show();
        } else {
          var e = MT3SETB_Comm_1.Comm.getCoinTypeStr();
          if (43 == Number(MT3SETB_profile_1.GetCurrency())) {
            this.coin.active = false;
            this.coinS.active = true;
            this.coinType.active = false;
          } else if (e && e.length > 0) {
            this.coin.active = false;
            this.coinS.active = false;
            this.coinType.active = true;
            this.coinType.getComponent(cc.Label) && (this.coinType.getComponent(cc.Label).string = e);
          } else {
            this.coin.active = true;
            this.coinS.active = false;
            this.coinType.active = false;
          }
        }
      }
    };
    __decorate([ property(cc.Node) ], ChangeCoinSprite.prototype, "coin", void 0);
    __decorate([ property(cc.Node) ], ChangeCoinSprite.prototype, "coinS", void 0);
    __decorate([ property(cc.Node) ], ChangeCoinSprite.prototype, "coinType", void 0);
    ChangeCoinSprite = __decorate([ ccclass ], ChangeCoinSprite);
    exports.ChangeCoinSprite = ChangeCoinSprite;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-profile": "MT3SETB-profile",
    "./MT3SETB-CurrencyHintJp": "MT3SETB-CurrencyHintJp"
  } ],
  "MT3SETB-CoinData": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ec490/iDadDSLHA2Spdg8bo", "MT3SETB-CoinData");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.CoinData = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let CoinData = class CoinData extends cc.Component {
      constructor() {
        super(...arguments);
        this.lsCoin = null;
        this.coins = [];
        this.goldNum = [];
      }
    };
    __decorate([ property(cc.Prefab) ], CoinData.prototype, "lsCoin", void 0);
    __decorate([ property([ cc.Prefab ]) ], CoinData.prototype, "coins", void 0);
    __decorate([ property([ cc.Prefab ]) ], CoinData.prototype, "goldNum", void 0);
    CoinData = __decorate([ ccclass ], CoinData);
    exports.CoinData = CoinData;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-CommonData": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "a1e4dxwmupLEb2XAINPRAsw", "MT3SETB-CommonData");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.CommonData = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let CommonData = class CommonData extends cc.Component {
      constructor() {
        super(...arguments);
        this.uiList = [];
      }
    };
    __decorate([ property([ cc.Prefab ]) ], CommonData.prototype, "uiList", void 0);
    CommonData = __decorate([ ccclass ], CommonData);
    exports.CommonData = CommonData;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-CommonTransfer": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "bbff1huRe1EGZd4486IfH3/", "MT3SETB-CommonTransfer");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.CommonTransfer = void 0;
    const MT3SETB_BackpackInfo_1 = require("./MT3SETB-BackpackInfo");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const MT3SETB_event_1 = require("../common/api/MT3SETB-event");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const MT3SETB_Exchange_1 = require("../../res/Common/script/exchange/MT3SETB-Exchange");
    const {ccclass: ccclass} = cc._decorator;
    let CommonTransfer = class CommonTransfer extends cc.Component {
      constructor() {
        super();
        this.exchange = null;
        this.addChip = e => {
          if (!this.exchange) {
            MT3SETB_Comm_1.Comm.uiCtrl.showExchangeLogo();
            this.createExchangeUI();
          }
          MT3SETB_Comm_1.Comm.app.isExchangeShowed || this.exchange && (MT3SETB_Comm_1.Comm.app.isExchangeShowed = true, 
          this.exchange.show());
          this.exchange.addChip(e);
        };
      }
      start() {
        MT3SETB_Comm_1.Comm.commonTransfer = this;
        MT3SETB_event_1.EventBus.register("chip_add", this.addChip);
      }
      init() {}
      getPrefabNode(e) {
        return MT3SETB_Comm_1.Comm.dataMgr.getCommonNode(e);
      }
      getLangImg(e) {
        var t = MT3SETB_Comm_1.Comm.i18n.getCommLangImg();
        return t ? t.getSpriteFrame(e) : null;
      }
      getLangImgForLobby(e) {
        var t = MT3SETB_Comm_1.Comm.i18n.getLobbyImg();
        return t ? t.getSpriteFrame(e) : null;
      }
      destory() {
        this.exchange && this.exchange.destory();
        MT3SETB_event_1.EventBus.unregister("chip_add", this.addChip);
      }
      getItemData() {
        return MT3SETB_Comm_1.Comm.app.getItemData();
      }
      setBackpackImage(e, t) {
        MT3SETB_Comm_1.Comm.backpack.setImage(e, t);
      }
      createExchangeUI() {
        var e = this.getPrefabNode(5);
        if (e) {
          this.exchange = e.getComponent(MT3SETB_Exchange_1.Exchange);
          e.parent = cc.find("Activity/Exchange", this.node);
          this.exchange.init();
        }
      }
      showExchangeUI() {
        this.exchange || this.createExchangeUI();
        this.exchange && (MT3SETB_Comm_1.Comm.app.isExchangeShowed = true, this.exchange.show());
      }
      autoShowExchangeUI() {
        MT3SETB_Comm_1.Comm.app.isExchangeShowed || this.showExchangeUI();
      }
      getClientChipData() {
        return this.exchange ? this.exchange.getClientChipData() : null;
      }
      checkDropChip(e) {
        this.exchange && this.exchange.checkDropChip(e);
      }
      canBeNextRedeem() {
        var e = false;
        this.exchange && (e = this.exchange.canBeNextRedeem());
        return e;
      }
      showBackpackInfo(e) {
        var t = MT3SETB_Comm_1.Comm.dataMgr.getBackpackInfoNode();
        t.parent = MT3SETB_Comm_1.Comm.node.uiLayer;
        t.getComponent(MT3SETB_BackpackInfo_1.BackpackInfo).init(0, e, 0, null, null);
      }
      checkExchangeRed() {
        return !!this.exchange && this.exchange.checkRedPoint().length > 0;
      }
      setImage(e, t) {
        var o = MT3SETB_platform_1.GetHost() + "smallicon/chips/" + t + ".png";
        cc.assetManager.loadRemote(o, function(t, o) {
          t || (e.spriteFrame = new cc.SpriteFrame(o));
        });
      }
      getThousandNum(e) {
        return MT3SETB_Comm_1.Comm.getThousandsNum(e);
      }
      toDecimal2(e) {
        return MT3SETB_Comm_1.Comm.toDecimal2(e);
      }
      runTask(e, t) {
        MT3SETB_Comm_1.Comm.runTask(e, function() {
          t && t();
        });
      }
      transPos(e, t, o = cc.Vec2.ZERO) {
        return MT3SETB_Comm_1.Comm.transPos(e, t, o);
      }
      getuiLayer() {
        return MT3SETB_Comm_1.Comm.node.uiLayer;
      }
      getBackpackGetNode() {
        return MT3SETB_Comm_1.Comm.dataMgr.getBackpackGetNode();
      }
      getToolButton() {
        return MT3SETB_Comm_1.Comm.uiCtrl.toolButton;
      }
      getExchangeButton() {
        return MT3SETB_Comm_1.Comm.uiCtrl.exchangeBtn;
      }
      playAnim(e, t) {
        var o = e.getComponent(cc.Animation), n = null;
        o && (n = o.play(t));
        return n;
      }
      playUserCoinNumAnim(e, t) {
        MT3SETB_Comm_1.Comm.effectMgr.playUserCoinNumAnim(e, t);
      }
      getPlayerSeat() {
        return MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat();
      }
      updateBankCoin(e, t, o) {
        MT3SETB_Comm_1.Comm.bankSys.addCoin(e, t, o);
        MT3SETB_Comm_1.Comm.gameCtrl.addCoin(t, 0);
      }
      getCoinTypeBet(e) {
        return MT3SETB_Comm_1.Comm.getCoinTypeBet(e);
      }
      getPlayerBet(e) {
        var t = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e);
        return t ? t.getBet() : 0;
      }
      stopShooting(e, t) {
        MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(e, t);
      }
      getLangString(e) {
        return MT3SETB_LangList_1.LangList.getString(e);
      }
      playSoundEffect(e, t, o) {
        MT3SETB_Comm_1.Comm.snd.playEffect(e, t, o);
      }
      stopSoundEffect(e) {
        MT3SETB_Comm_1.Comm.snd.stopEffect(e);
      }
      playMusic(e) {
        MT3SETB_Comm_1.Comm.snd.playMusic(e);
      }
      openSoundVol() {
        MT3SETB_Comm_1.Comm.snd.openBackgroundMusic();
      }
      closeSoundVol() {
        MT3SETB_Comm_1.Comm.snd.closeBackgroundMusic();
      }
      geti18nLang() {
        var e = MT3SETB_Comm_1.Comm.i18n.getLocal().substr(-2);
        switch (e) {
         case "IN":
         case "DK":
          e = (e = MT3SETB_Comm_1.Comm.i18n.getLocal().substr(0, 2)).toUpperCase();
        }
        return e;
      }
      isMsgBoxActive() {
        return MT3SETB_Comm_1.Comm.msgBox.msgNode.active;
      }
      callCheckRed() {
        MT3SETB_Comm_1.Comm.uiCtrl.checkToolRedPoint();
      }
    };
    CommonTransfer = __decorate([ ccclass ], CommonTransfer);
    exports.CommonTransfer = CommonTransfer;
    cc._RF.pop();
  }, {
    "../../res/Common/script/exchange/MT3SETB-Exchange": "MT3SETB-Exchange",
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-event": "MT3SETB-event",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../system/MT3SETB-LangList": "MT3SETB-LangList",
    "./MT3SETB-BackpackInfo": "MT3SETB-BackpackInfo"
  } ],
  "MT3SETB-Comm": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "134163xLVdDiqagbjkQcp3a", "MT3SETB-Comm");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Comm = void 0;
    const MT3SETB_numeral_1 = require("./common/api/MT3SETB-numeral");
    const MT3SETB_profile_1 = require("./common/api/MT3SETB-profile");
    const MT3SETB_mtf_pb_wrapper_1 = require("./common/api/MT3SETB-mtf_pb_wrapper");
    var t = cc.misc.lerp, o = {}, n = function() {
      if (this.target && this.times > 0 && this.mission) {
        var e = this.times, t = this.delay < .001 ? 1e-6 : this.delay, o = e !== cc.macro.REPEAT_FOREVER ? e - 1 : e;
        this.target.schedule(this.mission, this.dt, o, t);
      }
      return this;
    };
    function s(t, o) {
      var i = "number" == typeof t ? {
        delay: t,
        times: 1,
        dt: 0
      } : t;
      i.times = isNaN(i.times) ? 1 : i.times;
      i.target = i.target || exports.Comm.app;
      i.delay = i.delay || 0;
      i.dt = i.dt || 0;
      i.mission = function(e) {
        i.dt = e;
        o(i);
      };
      i.run = n;
      return i;
    }
    function randInt(min, max) {
      var o;
      min > max && (min = (o = [ max, min ])[0], max = o[1]);
      return Math.floor(min) + Math.floor(Math.random() * (max - min + 1));
    }
    function pseudoRandom(seed) {
      seed = (9301 * seed + 49297) % 233280;
      return seed / 233280;
    }
    function pseudoRandomInt(seed, min, max) {
      return Math.floor(min) + Math.floor(pseudoRandom(seed) * (max - min + 1));
    }
    exports.Comm = {
      app: null,
      snd: null,
      toast: null,
      idleToast: null,
      disconnectToast: null,
      scrollingToast: null,
      msgBox: null,
      broadcast: null,
      autoMatic: null,
      fishmenu: null,
      redenv: null,
      phaser: null,
      skinMgr: null,
      dataMgr: null,
      gameMgr: null,
      gameCtrl: null,
      shootMgr: null,
      bulletMgr: null,
      fishMgr: null,
      bankSys: null,
      effectMgr: null,
      lotteryMgr: null,
      retainMgr: null,
      rankboard: null,
      uiCtrl: null,
      jpListUI: null,
      i18n: null,
      backpack: null,
      commonTransfer: null,
      agentConfig: null,
      fishRoom: null,
      skinChange: null,
      setting: null,
      fishCount: null,
      joystick: null,
      generalmenu: null,
      gameType: null,
      gameId: null,
      vipDisplayCtrl: null,
      shadowCtrl: null,
      debug: null,
      phoenixUI: null,
      onStageDestroy: function() {
        this.broadcast = null;
        this.autoMatic = null;
        this.fishmenu = null;
        this.redenv = null;
        this.dataMgr = null;
        this.gameCtrl = null;
        this.gameMgr = null;
        this.shootMgr = null;
        this.bulletMgr = null;
        this.fishMgr = null;
        this.bankSys = null;
        this.effectMgr = null;
        this.lotteryMgr = null;
        this.retainMgr = null;
        this.rankboard = null;
        this.uiCtrl = null;
        this.jpListUI = null;
        this.backpack = null;
        this.setting = null;
        this.fishCount = null;
        this.joystick = null;
        this.vipDisplayCtrl = null;
        this.phoenixUI = null;
        for (var t in this.node) this.node[t] = null;
      },
      node: {
        lockOnTouchLayer: null,
        bgLayer: null,
        fishLayer: null,
        bulletLayer: null,
        effectLayer: null,
        playerLayer: null,
        buttonLayer: null,
        rewardLayer: null,
        noticeLayer: null,
        uiLayer: null,
        shadowLayer: null,
        playerUILayer: null
      },
      coinRatio: 1,
      coinType: 1,
      jpRate: 1,
      newTask: s,
      runTask: function(e, t) {
        return s(e, t).run();
      },
      delTask: function(e) {
        e.target && e.mission && e.target.unschedule(e.mission);
      },
      isEmptyObj: function(e) {
        for (var t in e) return false;
        return true;
      },
      iRand: randInt,
      rInt: randInt,
      shuffleSelf: function(e) {
        for (var t, o = e.length - 1; o > 0; o--) {
          var n = Math.floor(Math.random() * (o + 1));
          t = [ e[n], e[o] ];
          e[o] = t[0];
          e[n] = t[1];
        }
        return e;
      },
      rItem: function(e) {
        return e[Math.floor(Math.random() * e.length)];
      },
      pseudoRandom: pseudoRandom,
      pseudoRandomInt: pseudoRandomInt,
      lerp: function(e, o, n) {
        return t(e, o, n);
      },
      lerp2: function(e, o, n) {
        return cc.v2(t(e.x, o.x, n), t(e.y, o.y, n));
      },
      transPos: function(e, t, o = cc.Vec2.ZERO) {
        return t instanceof cc.Node ? e.convertToNodeSpaceAR(t.convertToWorldSpaceAR(o)) : cc.v2(e.convertToNodeSpaceAR(t));
      },
      transPos3D: function(e, t, o = cc.Vec3.ZERO) {
        return t instanceof cc.Node ? e.convertToNodeSpaceAR(t.convertToWorldSpaceAR(o)) : cc.v3(e.convertToNodeSpaceAR(t));
      },
      get: function(...args) {
        for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
        var o = e.length;
        if (1 === o) return cc.find(e[0]);
        if (2 === o && "string" == typeof e[0]) return cc.find(e[0]).getComponent(e[1]);
        if (o <= 3) {
          var n = null;
          n = e[0] ? e[0] instanceof cc.Node ? e[0] : e[0].node : cc.director.getScene();
          if (2 === o) return "string" == typeof e[1] ? cc.find(e[1], n) : n.getComponent(e[1]);
          if (3 === o) {
            var i = cc.find(e[1], n);
            if (i) return i.getComponent(e[2]);
          }
        }
        return null;
      },
      find: function(t, o, n) {
        return n ? exports.Comm.get(o, t, n) : exports.Comm.get(o, t);
      },
      binarySearch: function(e, t) {
        for (var o = 0, n = 0, i = 0, a = e.length - 1; i <= a; ) {
          if (0 === (n = t(e[o = i + a >> 1]))) return o;
          n > 0 ? a = o - 1 : i = o + 1;
        }
        return -1;
      },
      putStr: function(e, ...args) {
        for (var t = [], o = 1; o < arguments.length; o++) t[o - 1] = arguments[o];
        if (t.length > 0) {
          var n = "string" == typeof t[0];
          return e.replace(/\[([^\[\]]+)\]/g, function(e) {
            for (var o = [], i = 1; i < arguments.length; i++) o[i - 1] = arguments[i];
            var a = n ? t[parseInt(o[0])] : t[0][o[0]];
            return a || e;
          });
        }
        return e;
      },
      getThousandsNum: function(e) {
        return MT3SETB_profile_1.FormatCoinNum(e);
      },
      getThousandsNum2: function(e) {
        return MT3SETB_profile_1.FormatCoinNum(Math.floor(e));
      },
      getThousandsNum3: function(e) {
        return MT3SETB_profile_1.FormatCoinNum(e, true);
      },
      getThousandsNum4: function(e) {
        return MT3SETB_profile_1.FormatCoinNum(e, false);
      },
      getThousandsNum5: function(e) {
        return MT3SETB_profile_1.FormatCoinNum(e);
      },
      getThousandsNum6: function(e) {
        return MT3SETB_profile_1.FormatCoinNum(e, true);
      },
      toDecimal: function(e) {
        return MT3SETB_profile_1.FormatCoinNum(e, true);
      },
      toDecimal2: function(e) {
        return MT3SETB_profile_1.FormatCoinNum(e, true);
      },
      toDecimal3: function(e) {
        var t;
        t = Math.abs(e) <= 1e-4 ? "0.00" : MT3SETB_numeral_1.numeral(e).format("0.00");
        return t;
      },
      cleanNum: function(e) {
        return MT3SETB_profile_1.CleanNum(e);
      },
      hideName: function(e) {
        var t = e.length;
        return t <= 3 ? e : "*".repeat(t - 3) + e.substring(t - 3, t);
      },
      shakeNode: function(node, duration, x, y) {
        var r = Math.random, twoPi = 2 * Math.PI, c = duration, l = x, u = y;
        if (c >= 0 && l >= 0) {
          var d = node.position.clone(), p = cc.v2(0, u), h = [];
          if (o[node.uuid]) {
            node.stopAction(o[node.uuid][1]);
            node.stopAction(o[node.uuid][2]);
            node.position = o[node.uuid][0];
            delete o[node.uuid];
            return void this.shakeNode(node, c, l, u);
          }
          for (var f = 1 / l, m = null, g = 0, _ = cc.misc.clampf(l, 0, 12); g < _; ++g) {
            m = p.rotate(r() * twoPi).addSelf(d);
            h.push(cc.moveTo(f, m));
          }
          var y = node.runAction(cc.sequence(h).repeatForever()), v = node.runAction(cc.sequence(cc.delayTime(c), cc.callFunc(function() {
            node.stopAction(y);
            node.position = o[node.uuid][0];
            delete o[node.uuid];
          })));
          o[node.uuid] = [ d, y, v ];
        }
      },
      getCoinTypeStr: function() {
        return MT3SETB_profile_1.GetCoinTypeStr();
      },
      getCoinTypeBet: function(t) {
        for (var o = [], n = 0; n < t.length; ++n) o[n] = t[n] * exports.Comm.coinRatio;
        return o;
      },
      getShowCoinType: function(t) {
        var o = t;
        switch (exports.Comm.coinType) {
         case MT3SETB_mtf_pb_wrapper_1.mtf.Currency.IDR_K:
         case MT3SETB_mtf_pb_wrapper_1.mtf.Currency.VND_K:
          o = .001 * t;
        }
        return o;
      },
      playAnime: function(e, t, o = null, n = null) {
        var i = null, a = e;
        e instanceof cc.Node && (a = e.getComponent(cc.Animation));
        if (a) {
          a.off("finished");
          if (!(i = a.play(t))) return null;
          null !== o && (i.wrapMode = o);
          n && a.once("finished", function() {
            return n();
          });
        }
        return i;
      },
      playSpine: function(e, t, o = false, n = null) {
        var i = e;
        e instanceof cc.Node && (i = e.getComponent(sp.Skeleton));
        if (i) {
          i.setCompleteListener(null);
          i.setAnimation(0, t, o);
          n && i.setCompleteListener(function() {
            return n();
          });
        }
      },
      playSpineAdditive: function(e, t, o, n = false, i = null) {
        var a = e;
        e instanceof cc.Node && (a = e.getComponent(sp.Skeleton));
        if (a) {
          a.setCompleteListener(null);
          a.setAnimation(o, t, n);
          i && a.setCompleteListener(function() {
            return i();
          });
        }
      },
      setTweenSpeed: function(e, t) {
        var o = e._finalAction;
        if (o) {
          o._speedMethod = true;
          o._speed = t;
        }
      },
      getTweenSpeed: function(e) {
        var t = e._finalAction;
        return t && t._speedMethod ? t._speed : 1;
      }
    };
    cc._RF.pop();
  }, {
    "./common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./common/api/MT3SETB-numeral": "MT3SETB-numeral",
    "./common/api/MT3SETB-profile": "MT3SETB-profile"
  } ],
  "MT3SETB-ConnectionToast": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "3f3b8idiRZMRbWBUhc630iJ", "MT3SETB-ConnectionToast");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ConnectionToast = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Toast_1 = require("./MT3SETB-Toast");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let ConnectionToast = class ConnectionToast extends MT3SETB_Toast_1.Toast {
      constructor() {
        super(...arguments);
        this.startTime = null;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.disconnectToast = this;
      }
      showDisconnect(e) {
        var _a;
        let disconnectNode = this.root;
        if (e) {
          this.startTime || (this.startTime = Date.now());
          disconnectNode && (disconnectNode.active = true);
          let disconnectSkeletonNode = null === (_a = cc.find("loading", disconnectNode)) || void 0 === _a ? void 0 : _a.getComponent(sp.Skeleton);
          let state = disconnectSkeletonNode.getCurrent(0);
          state && !state.isComplete() || disconnectSkeletonNode && disconnectSkeletonNode.setAnimation(0, "loading", true);
          let blackBG = cc.find("BG", disconnectNode);
          blackBG.active = (Date.now() - this.startTime) / 1e3 > 5;
        } else {
          disconnectNode && (disconnectNode.active = false);
          this.startTime = null;
        }
      }
    };
    ConnectionToast = __decorate([ ccclass ], ConnectionToast);
    exports.ConnectionToast = ConnectionToast;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-Toast": "MT3SETB-Toast"
  } ],
  "MT3SETB-CreateFishUI": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "59d65SyJA5A6Kf28h0Ph9zT", "MT3SETB-CreateFishUI");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.CreateFishUI = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let CreateFishUI = class CreateFishUI extends cc.Component {
      constructor() {
        super();
        this.fishNo = 0;
        this.playAnimName = "";
      }
      start() {
        this.createFishNode();
      }
      createFishNode() {
        var e = this, t = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.fishData.fishes[this.fishNo - 1]).getComponent(MT3SETB_Fish_1.Fish);
        if (t.isBundleFish) MT3SETB_Comm_1.Comm.dataMgr.loadBundleFish(this.fishNo, function() {
          e.createFishNode();
        }); else {
          t.node.parent = this.node;
          t.enabled = false;
          t.getComponent(cc.BoxCollider).enabled = false;
          "" != this.playAnimName && t.getComponentInChildren(sp.Skeleton).setAnimation(0, this.playAnimName, true);
        }
      }
    };
    __decorate([ property ], CreateFishUI.prototype, "fishNo", void 0);
    __decorate([ property ], CreateFishUI.prototype, "playAnimName", void 0);
    CreateFishUI = __decorate([ ccclass ], CreateFishUI);
    exports.CreateFishUI = CreateFishUI;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-Fish": "MT3SETB-Fish"
  } ],
  "MT3SETB-Crocodile": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "30281XHnf5IrIEBlLVFPr8v", "MT3SETB-Crocodile");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const ANIM_LIST = {
      0: "BITE",
      1: "SWIM"
    };
    let Crocodile = class Crocodile extends MT3SETB_Fish_1.Fish {
      constructor() {
        super(...arguments);
        this.lockAnimation = null;
      }
      onLoad() {
        super.onLoad();
        this.node.on(MT3SETB_Fish_1.Fish.ActionEventChanged, this.onCrocodileActionEventChanged.bind(this));
      }
      onCrocodileActionEventChanged(event, oldEvent) {
        if (!oldEvent || !event) return;
        oldEvent.animIndex != event.animIndex && this.playSplineAnimation(ANIM_LIST[event.animIndex]);
      }
      postInit() {
        super.postInit();
        let animIndex = this.fishMoveAction.events[0].animIndex;
        this.playSplineAnimation(ANIM_LIST[animIndex]);
        this.lockAnimation.play(this.lockAnimation.defaultClip.name);
      }
      playSplineAnimation(animName) {
        for (var r = 0, c = this.spineAnims; r < c.length; r++) {
          var d = c[r];
          d.timeScale = 1;
          d.paused = false;
          d.setAnimation(0, animName, true);
        }
      }
    };
    __decorate([ property(cc.Animation) ], Crocodile.prototype, "lockAnimation", void 0);
    Crocodile = __decorate([ ccclass ], Crocodile);
    exports.default = Crocodile;
    cc._RF.pop();
  }, {
    "./MT3SETB-Fish": "MT3SETB-Fish"
  } ],
  "MT3SETB-CurrencyHintJp": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ea33fPR1OxFtbhHqMtf3N0y", "MT3SETB-CurrencyHintJp");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.CurrencyHintJp = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_LangImg_1 = require("./MT3SETB-LangImg");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let CurrencyHintJp = class CurrencyHintJp extends cc.Component {
      constructor() {
        super();
        this.list = [];
      }
      show() {
        var e = 1;
        switch (MT3SETB_Comm_1.Comm.coinRatio) {
         case .01:
          e = 5;
          break;

         case .1:
          e = 0;
          break;

         case 1:
          e = 1;
          break;

         case 10:
          e = 2;
          break;

         case 100:
          e = 3;
          break;

         case 1e3:
          e = 4;
        }
        this.node.getComponent(MT3SETB_LangImg_1.LangImg).setSpriteFrame(this.list[e].name);
      }
    };
    __decorate([ property(cc.SpriteFrame) ], CurrencyHintJp.prototype, "list", void 0);
    CurrencyHintJp = __decorate([ ccclass ], CurrencyHintJp);
    exports.CurrencyHintJp = CurrencyHintJp;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-LangImg": "MT3SETB-LangImg"
  } ],
  "MT3SETB-Cursor": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "74375Fm7X1PtbggTjxJL9em", "MT3SETB-Cursor");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Cursor = void 0;
    const MT3SETB_webObject_1 = require("./common/api/MT3SETB-webObject");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let Cursor = class Cursor extends cc.Component {
      constructor() {
        super();
        this.arrow = null;
      }
      start() {
        cc.sys.isMobile || this.init();
      }
      init() {
        var e = this;
        true;
        MT3SETB_webObject_1.webObjSetCursor("none");
        this.arrow.active = true;
        this.node.on(cc.Node.EventType.MOUSE_MOVE, function(t) {
          e.arrow.setPosition(e.node.convertToNodeSpaceAR(t.getLocation()));
          t.stopPropagation();
        });
      }
      onDestroy() {
        MT3SETB_webObject_1.webObjSetCursor("default");
      }
    };
    __decorate([ property(cc.Node) ], Cursor.prototype, "arrow", void 0);
    Cursor = __decorate([ ccclass ], Cursor);
    exports.Cursor = Cursor;
    cc._RF.pop();
  }, {
    "./common/api/MT3SETB-webObject": "MT3SETB-webObject"
  } ],
  "MT3SETB-CycloneEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "0b12b+J/ItIxr7nDK7BvjzY", "MT3SETB-CycloneEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_BaseEffect_1 = __importDefault(require("./MT3SETB-BaseEffect"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    const MAX_CYCLONE_DURATION = 3;
    let CycloneEffect = class CycloneEffect extends MT3SETB_BaseEffect_1.default {
      constructor() {
        super(...arguments);
        this.cycloneAnim = null;
        this.time = 0;
        this.collateralFishes = [];
        this.isStart = false;
        this.totalDeadFishes = {};
      }
      init(player, fish, hitData, callback) {
        this.initPlayer(player);
        this.callback = callback;
        this.collateralFishes = [];
        this.time = 0;
        fish.pathEnd = true;
        fish.setDying(true);
        this.collateralFishes.push(fish);
        this.totalDeadFishes[fish.id] = false;
        let rewardParent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
        let worldPos = player.getRewardPosNode().convertToWorldSpaceAR(cc.v2(0, 0));
        let translatedPlayerPos = rewardParent.convertToNodeSpaceAR(worldPos);
        this.node.setParent(rewardParent);
        this.node.setPosition(translatedPlayerPos);
        this.endPos = cc.Vec2.ZERO;
        fish.node.setParent(this.cycloneAnim);
        for (var collateralHitData of hitData.collateralFish) {
          let collateralFish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(collateralHitData.fishId);
          if (collateralFish) {
            this.totalDeadFishes[collateralFish.id] = false;
            collateralFish.node.setParent(this.cycloneAnim);
            collateralFish.pathEnd = true;
            collateralFish.setDying(true);
            this.collateralFishes.push(collateralFish);
          }
        }
        this.isStart = true;
      }
      update(dt) {
        if (!this.isStart) return;
        this.time += dt;
        var movePercent = Math.min(this.time / .25, 1);
        var animScale = 1.5 * movePercent;
        this.cycloneAnim.scale = animScale;
        var hasFish = false;
        for (let fish of this.collateralFishes) {
          this.totalDeadFishes[fish.id] || (hasFish = true);
          if (fish.node) {
            fish.node.angle = fish.node.angle + Math.PI / 180;
            var startPos = this.cycloneAnim.convertToNodeSpaceAR(fish.node.position);
            if (1 == movePercent) {
              fish.node.setPosition(this.endPos);
              var scale = fish.node.scale;
              if (scale <= .01) {
                fish.node.opacity = 0;
                fish.node.scale = 0;
                this.totalDeadFishes[fish.id] = true;
              } else {
                var scale = Math.max(fish.node.scale - .0075, 0);
                fish.node.scale = scale;
                fish.node.opacity = Math.floor(255 * scale);
              }
            } else {
              var nextPos = new cc.Vec2(startPos.x + (this.endPos.x - startPos.x) * movePercent, startPos.y + (this.endPos.y - startPos.y) * movePercent);
              fish.node.setPosition(nextPos);
            }
          } else this.totalDeadFishes[fish.id] = true;
        }
        this.time >= MAX_CYCLONE_DURATION && (hasFish = false);
        if (!hasFish) {
          this.isStart = false;
          this.callback && this.callback();
          this.scheduleOnce(() => {
            this.destroyEffect();
          }, 1);
        }
      }
      destroyEffect() {
        for (let fish of this.collateralFishes) fish.isUsed() && MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
        this.node.destroy();
      }
    };
    __decorate([ property(cc.Node) ], CycloneEffect.prototype, "cycloneAnim", void 0);
    CycloneEffect = __decorate([ ccclass ], CycloneEffect);
    exports.default = CycloneEffect;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-BaseEffect": "MT3SETB-BaseEffect"
  } ],
  "MT3SETB-DamageTint": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "64124v75stBiKdZjIMYsPWa", "MT3SETB-DamageTint");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.DamageTint = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const PAUSE_TIME = .125;
    const FADE_TIME = .125;
    let DamageTint = class DamageTint extends cc.Component {
      constructor() {
        super();
        this.targets = [];
        this.isUseTint = true;
        this.baseValue = 0;
        this.timer = null;
      }
      sequenceDamageTint() {
        var defaultActionTag = 100;
        for (var target of this.targets) {
          var action = cc.repeat(cc.sequence(cc.tintTo(.15, 255, 115, 115), cc.tintTo(.15, 255, 255, 255)), 2);
          target.node.stopActionByTag(defaultActionTag);
          action.setTag(defaultActionTag);
          target.node.runAction(action);
          defaultActionTag++;
        }
      }
      stopSequenceTint() {
        var defaultActionTag = 100;
        for (let target of this.targets) {
          target.node.color = cc.Color.WHITE;
          target.node.stopActionByTag(defaultActionTag);
          defaultActionTag++;
        }
      }
      tint(count, tint) {
        var o = this;
        if (this.isUseTint) {
          this.sequenceDamageTint();
          return;
        }
        this.timer && MT3SETB_Comm_1.Comm.delTask(this.timer);
        let duration = count * (PAUSE_TIME + FADE_TIME) * 2;
        let currentCount = 0;
        let isFadingIn = false;
        let currentPauseTime = 0;
        let currentFadeTime = 0;
        o.bleach(tint);
        this.timer = MT3SETB_Comm_1.Comm.runTask({
          times: cc.macro.REPEAT_FOREVER,
          target: this,
          param: duration
        }, function(e) {
          if (e.param <= 0 || currentCount >= count) {
            o.stop();
            return;
          }
          if (currentPauseTime < PAUSE_TIME) {
            currentPauseTime += e.dt;
            e.param -= e.dt;
            return;
          }
          let currentTint = currentFadeTime / FADE_TIME * tint;
          isFadingIn || (currentTint = tint - currentTint);
          o.bleach(currentTint);
          currentFadeTime += e.dt;
          if (currentFadeTime >= FADE_TIME) {
            isFadingIn || currentCount++;
            currentPauseTime = 0;
            currentFadeTime = 0;
            isFadingIn = !isFadingIn;
          }
          e.param -= e.dt;
        });
      }
      stop() {
        this.isUseTint && this.stopSequenceTint();
        if (this.timer) {
          MT3SETB_Comm_1.Comm.delTask(this.timer);
          this.timer = null;
          this.bleach(this.baseValue);
        }
      }
      bleach(tint) {
        this.targets.forEach(function(t) {
          t && t.getMaterials().forEach(function(t) {
            t && true !== isNaN(t.getProperty("bleaching", 0)) && t.setProperty("bleaching", tint, 0);
          });
        });
      }
      showFreeze(e) {
        var t = e ? new cc.Vec4(1, 1, 1, 0) : new cc.Vec4(1.4, .14, .14, 0);
        this.targets.forEach(function(e) {
          e && e.getMaterials().forEach(function(e) {
            e && e.getProperty("mixingColor", 0) && e.setProperty("mixingColor", t, 0);
          });
        });
        this.baseValue = e ? .4 : 0;
        this.timer || this.bleach(this.baseValue);
      }
    };
    __decorate([ property([ cc.RenderComponent ]) ], DamageTint.prototype, "targets", void 0);
    __decorate([ property ], DamageTint.prototype, "isUseTint", void 0);
    DamageTint = __decorate([ ccclass ], DamageTint);
    exports.DamageTint = DamageTint;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-DataMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "807fdWbpERL+LkblCUsy6Ae", "MT3SETB-DataMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
      function adopt(value) {
        return value instanceof P ? value : new P(function(resolve) {
          resolve(value);
        });
      }
      return new (P || (P = Promise))(function(resolve, reject) {
        function fulfilled(value) {
          try {
            step(generator.next(value));
          } catch (e) {
            reject(e);
          }
        }
        function rejected(value) {
          try {
            step(generator["throw"](value));
          } catch (e) {
            reject(e);
          }
        }
        function step(result) {
          result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
        }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
      });
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.DataMgr = void 0;
    const MT3SETB_BulletData_1 = require("../data/MT3SETB-BulletData");
    const MT3SETB_CoinData_1 = require("../data/MT3SETB-CoinData");
    const MT3SETB_CommonData_1 = require("../data/MT3SETB-CommonData");
    const MT3SETB_EffectData_1 = require("../data/MT3SETB-EffectData");
    const MT3SETB_FishData_1 = require("../data/MT3SETB-FishData");
    const MT3SETB_OtherData_1 = require("../data/MT3SETB-OtherData");
    const MT3SETB_RewardData_1 = require("../data/MT3SETB-RewardData");
    const MT3SETB_TurretData_1 = require("../data/MT3SETB-TurretData");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_ActionData_1 = require("../data/MT3SETB-ActionData");
    const MT3SETB_utils2_1 = require("../framework/framework/MT3SETB-utils2");
    const MT3SETB_BubbleFxPool_1 = require("./NodePool/MT3SETB-BubbleFxPool");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let DataMgr = class DataMgr extends cc.Component {
      constructor() {
        super();
        this.fishData = null;
        this.bulletData = null;
        this.turretData = null;
        this.coinData = null;
        this.effectData = null;
        this.rewardData = null;
        this.otherData = null;
        this.commonData = null;
        this.actionData = null;
        this.fishActions = {};
        this.fishPrefabToIdxMapping = {};
        this.isPreloadComplete = false;
        this.fishJsonData = {};
        this.fishActions = {};
        this.fishPool = {};
        this.bulletPool = {};
        this.turretCannonPool = {};
        this.goldNumPool = {};
        this.coinPool = {};
        this.lsCoinPool = new cc.NodePool();
        this.lsGoldPillarPool = new cc.NodePool();
        this.drillHitFxPool = new cc.NodePool();
        this.lightningChainFxPool = new cc.NodePool();
        this.lightningHitFxPool = new cc.NodePool();
        this.loadBundleFishCompleteEvent = [];
        this.isPreloadComplete = false;
      }
      get isLoaded() {
        return this.isPreloadComplete;
      }
      onLoad() {
        return __awaiter(this, void 0, void 0, function*() {
          MT3SETB_Comm_1.Comm.dataMgr = this;
          this.bubbleFxPool = new MT3SETB_BubbleFxPool_1.BubbleFxPool(this);
          yield this.preloadFish();
          this.preloadCoins();
          this.preloadBullet();
          this.preloadTurretCannon();
          this.preloadLang();
          this.preloadBackground();
          this.preloadActionData();
          this.bubbleFxPool.preload();
          this.isPreloadComplete = true;
        });
      }
      start() {}
      onDestroy() {
        this.clearPools();
        MT3SETB_Comm_1.Comm.onStageDestroy();
      }
      preloadLang() {
        let texture = null;
        texture = MT3SETB_Comm_1.Comm.i18n.getImage();
        texture && !texture.loaded && cc.assetManager.postLoadNative(texture);
        texture = MT3SETB_Comm_1.Comm.i18n.getFishLangImg();
        texture && !texture.loaded && cc.assetManager.postLoadNative(texture);
        texture = MT3SETB_Comm_1.Comm.i18n.getLobbyImg();
        texture && !texture.loaded && cc.assetManager.postLoadNative(texture);
        for (let kvp of MT3SETB_Comm_1.Comm.i18n.fishLangPropertyList) {
          texture = MT3SETB_Comm_1.Comm.i18n.getFishLangImgByKey(kvp.key);
          texture && !texture.loaded && cc.assetManager.postLoadNative(texture);
        }
      }
      clearPools() {
        for (var e in this.fishPool) this.fishPool[e] && this.fishPool[e].clear();
        for (var e in this.turretCannonPool) this.turretCannonPool[e] && this.turretCannonPool[e].clear();
        for (var e in this.bulletPool) this.bulletPool[e] && this.bulletPool[e].clear();
        for (var e in this.goldNumPool) this.goldNumPool[e] && this.goldNumPool[e].clear();
        for (var e in this.coinPool) this.coinPool[e] && this.coinPool[e].clear();
        this.lsCoinPool.clear();
        this.lsGoldPillarPool.clear();
        this.drillHitFxPool.clear();
        this.lightningChainFxPool.clear();
        this.lightningHitFxPool.clear();
        this.bubbleFxPool.clear();
      }
      preloadFish() {
        return __awaiter(this, void 0, void 0, function*() {
          var e = this;
          if (this.fishData.fishPreloadListJson) {
            let preloadList = this.fishData.fishPreloadListJson.json;
            let count = Object.keys(preloadList[MT3SETB_Comm_1.Comm.gameType]).length;
            let bundle = cc.assetManager.getBundle("MT3SETB");
            if (bundle) for (let fishNo of preloadList[MT3SETB_Comm_1.Comm.gameType]) bundle.load("resources/prefabs/fishes/Fish_" + fishNo, cc.Prefab, (err, prefab) => {
              if (err) {
                console.warn("load fish failed: fish_" + fishNo);
                count--;
                return;
              }
              let idx = this.fishData.fishes.length;
              this.fishData.fishes.push(prefab);
              e.fishPrefabToIdxMapping[fishNo] = idx;
              for (var n = e.getFishPool(idx), i = MT3SETB_Game_1.preloadFishNum(fishNo); n.size() < i; ) n.put(e.createFish(idx));
              count--;
            });
            while (count > 0) yield MT3SETB_utils2_1.sleep(100);
          }
        });
      }
      loadBundleFish(e, t) {
        var o = this;
        if (t) {
          this.loadBundleFishCompleteEvent[e] || (this.loadBundleFishCompleteEvent[e] = []);
          this.loadBundleFishCompleteEvent[e].push(t);
        }
        var n = "Fish_" + e, i = "";
        "undefined" != typeof LobbyData && (i = LobbyData.versionJson[n], n = LobbyData.bundleDomin + n);
        cc.assetManager.loadBundle(n, {
          version: i
        }, function(t, n) {
          t || n.load("Fish_" + e, cc.Prefab, function(t, n) {
            if (!t && o.fishData) {
              o.fishData.fishes[e] = n;
              var i = o.fishPool[e.toString()];
              i && i.clear();
              if (o.loadBundleFishCompleteEvent[e]) {
                o.loadBundleFishCompleteEvent[e].forEach(function(e) {
                  e();
                });
                o.loadBundleFishCompleteEvent[e] = [];
              }
            }
          });
        });
      }
      autoLoadBundleFish() {
        var e = this;
        this.fishData.fishes.forEach(function(t, o) {
          if (t) {
            var n = cc.instantiate(t);
            n.getComponent(MT3SETB_Fish_1.Fish).isBundleFish && e.loadBundleFish(o + 1);
            n.destroy();
          }
        });
      }
      getFishPool(e) {
        var t = e.toString();
        this.fishPool[t] || (this.fishPool[t] = new cc.NodePool());
        return this.fishPool[t];
      }
      createFish(e) {
        var t = this.fishData.fishes[e];
        t || (cc.log("fish is not found. no = " + e + "."), t = this.fishData.fishNone);
        var o = cc.instantiate(t);
        o["__no"] = e;
        return o;
      }
      getFish(e) {
        var arrIdx = this.fishPrefabToIdxMapping[e];
        void 0 == arrIdx && console.warn("failed to parse " + e);
        var t = this.getFishPool(arrIdx);
        if (t) {
          var o = t.size() > 0 ? t.get() : this.createFish(arrIdx);
          if (!o._children) {
            try {
              o.destroy();
            } catch (f) {}
            return this.createFish(arrIdx);
          }
          return o;
        }
        return null;
      }
      setFish(e, fishNo) {
        if (null != e.__no) {
          var t = e.__no, o = this.getFishPool(t);
          if (o && o.size() < MT3SETB_Game_1.poolMaxFishNum(fishNo)) {
            e.cleanup();
            o.put(e);
          } else {
            o || cc.log("pool is not found. no = " + t + ".");
            e.destroy();
          }
        } else {
          cc.log("no is not exits. name = " + e.name + ".");
          e.destroy();
        }
      }
      preloadActionData() {
        var e = this;
        this.fishActions = {};
        e.actionData.fishActionAssets.forEach(function(t, o) {
          if (!t) return;
          let json = JSON.parse(t["_$nativeAsset"]);
          for (let action of json.actions) {
            let sum = 0;
            for (let i = 0; i < action.events.length; ++i) {
              i + 1 < action.events.length ? action.events[i].duration = action.events[i + 1].time - action.events[i].time : action.events[i].duration = action.totalSeconds - action.events[i].time;
              action.events[i].weight = action.events[i].speed * action.events[i].duration;
              action.events[i].accWeight = sum;
              sum += action.events[i].weight;
            }
            for (let event of action.events) {
              event.weight /= sum;
              event.accWeight /= sum;
            }
          }
          e.fishActions[json.animsFileName] = json;
        });
        for (let data of this.fishData.fishJson.json) {
          this.fishJsonData[data.id] = {
            priority: data.priority,
            name: data.name,
            z: data.z,
            BornTipsInfo: data.BornTipsInfo,
            mustPlayDeathEffect: data.mustPlayDeathEffect,
            deathMusic: data.deathMusic,
            bornMusic: data.bornMusic,
            actionFile: data.actionFile,
            DeathEffectInfo: data.DeathEffectInfo,
            BornFishInfo: data.BornFishInfo,
            upwards: data.upwards
          };
          var fishAction = this.fishActions[data.actionFile + ".anims"];
          fishAction && (this.fishActions[data.id] = fishAction);
        }
      }
      getFishActionData(fishNo) {
        var actionData = this.fishActions[fishNo];
        if (actionData) return actionData;
        return null;
      }
      preloadTurretCannon() {
        var e = this;
        this.turretData.cannons.forEach(function(value, index) {
          if (value) {
            let turretNo = value.name.split("_").pop();
            for (let n = e.getTurretCannonPool(turretNo); n.size() < 2; ) n.put(e.createTurretCannon(turretNo));
          }
        });
      }
      getTurretCannonPool(num) {
        var numStr = num.toString();
        this.turretCannonPool[numStr] || (this.turretCannonPool[numStr] = new cc.NodePool());
        return this.turretCannonPool[numStr];
      }
      createTurretCannon(num) {
        let turretPrefab = null;
        for (let prefab of this.turretData.cannons) {
          let turretNo = prefab.name.split("_").pop();
          if (turretNo == num.toString()) {
            turretPrefab = prefab;
            break;
          }
        }
        var turret = cc.instantiate(turretPrefab);
        turret["__no"] = num;
        return turret;
      }
      getTurretCannon(no) {
        var t = this.getTurretCannonPool(no);
        return t ? t.size() > 0 ? t.get() : this.createTurretCannon(no) : null;
      }
      setTurretCannon(e) {
        if (null != e.__no) {
          var t = e.__no, o = this.getTurretCannonPool(t);
          if (o && o.size() < 2) {
            e.cleanup();
            o.put(e);
          } else {
            o || cc.log("pool is not found. no = " + t + ".");
            e.destroy();
          }
        } else {
          cc.log("no is not exits. name = " + e.name + ".");
          e.destroy();
        }
      }
      preloadBullet() {
        var e = this;
        this.bulletData.bullets.forEach(function(value, index) {
          if (value) {
            let bulletNo = value.name.split("_").pop();
            for (let n = e.getbulletPool(bulletNo), i = MT3SETB_Game_1.preloadBulletNum(bulletNo); n.size() < i; ) n.put(e.createBullet(bulletNo));
          }
        });
      }
      getbulletPool(num) {
        var numStr = num.toString();
        this.bulletPool[numStr] || (this.bulletPool[numStr] = new cc.NodePool());
        return this.bulletPool[numStr];
      }
      createBullet(num) {
        let bulletPrefab = null;
        for (let prefab of this.bulletData.bullets) {
          let bulletNo = prefab.name.split("_").pop();
          if (bulletNo == num.toString()) {
            bulletPrefab = prefab;
            break;
          }
        }
        var bullet = cc.instantiate(bulletPrefab);
        bullet["__no"] = num;
        return bullet;
      }
      getBullet(no) {
        var t = this.getbulletPool(no);
        return t ? t.size() > 0 ? t.get() : this.createBullet(no) : null;
      }
      setBullet(e) {
        if (null != e.__no) {
          var t = e.__no, o = this.getbulletPool(t);
          if (o && o.size() < 20) {
            e.cleanup();
            o.put(e);
          } else {
            o || cc.log("pool is not found. no = " + t + ".");
            e.destroy();
          }
        } else {
          cc.log("no is not exits. name = " + e.name + ".");
          e.destroy();
        }
      }
      getEffectPf(e) {
        return this.effectData.effects[e] || null;
      }
      getPhoenixFx(e) {
        return this.effectData.phoenixFx[e] || null;
      }
      getOtherPf(e) {
        return this.otherData.others[e] || null;
      }
      getCoinAddNum(e) {
        var t = e.toString();
        this.goldNumPool[t] || (this.goldNumPool[t] = new cc.NodePool());
        if (this.goldNumPool[t].size() > 0) return this.goldNumPool[t].get();
        var o = cc.instantiate(this.coinData.goldNum[e]);
        o["__no"] = e;
        return o;
      }
      setCoinAddNum(e) {
        if (null != e.__no) {
          var t = e.__no, o = t.toString(), n = this.goldNumPool[o];
          if (n && n.size() < 20) {
            e.cleanup();
            n.put(e);
          } else {
            n || cc.log("pool is not found. no = " + t + ".");
            e.destroy();
          }
        } else {
          cc.log("no is not exits. name = " + e.name + ".");
          e.destroy();
        }
      }
      getLsCoins(coinCount) {
        let coins = [];
        for (let i = 0; i < coinCount; i++) {
          let coin = this.lsCoinPool.get();
          null == coin && (coin = cc.instantiate(this.coinData.lsCoin));
          coin.setParent(MT3SETB_Comm_1.Comm.effectMgr.fishCoinParent);
          coins.push(coin);
        }
        return coins;
      }
      returnLsCoin(coin) {
        coin.cleanup();
        this.lsCoinPool.put(coin);
      }
      preloadCoins() {
        var e = this;
        this.coinData.coins.forEach(function(value, index) {
          if (value) for (let n = e.getCoinPool(index), i = MT3SETB_Game_1.preloadCoinNum(); n.size() < i; ) n.put(e.createCoin(index));
        });
      }
      getCoinPool(num) {
        var numStr = num.toString();
        this.coinPool[numStr] || (this.coinPool[numStr] = new cc.NodePool());
        return this.coinPool[numStr];
      }
      createCoin(e) {
        var t = this.coinData.coins[e];
        var o = cc.instantiate(t);
        o["__no"] = e;
        return o;
      }
      getCoin(e) {
        if (this.coinPool[e] || (this.coinPool[e] = new cc.NodePool()), this.coinPool[e].size() > 0) return this.coinPool[e].get();
        return this.createCoin(e);
      }
      setCoin(e) {
        if (null != e.__no) {
          var t = e.__no, o = this.coinPool[t];
          if (o && o.size() < MT3SETB_Game_1.poolMaxCoinNum()) {
            e.cleanup();
            o.put(e);
          } else {
            o || cc.log("pool is not found. no = " + t + ".");
            e.destroy();
          }
        } else {
          cc.log("no is not exits. name = " + e.name + ".");
          e.destroy();
        }
      }
      getLsGoldPillar() {
        let node = this.lsGoldPillarPool.get();
        null == node && (node = cc.instantiate(this.rewardData.goldPillar));
        return node;
      }
      returnLsGoldPillar(goldPillarNode) {
        goldPillarNode.cleanup();
        this.lsGoldPillarPool.put(goldPillarNode);
      }
      getDrillHitFx() {
        let node = this.drillHitFxPool.get();
        null == node && (node = cc.instantiate(this.effectData.effects[MT3SETB_Game_1.eEffectNo.DrillHitFx]));
        return node;
      }
      returnDrillHitFx(fxNode) {
        fxNode.cleanup();
        this.drillHitFxPool.put(fxNode);
      }
      getLightningChainFx(fxPrefab) {
        let node = this.lightningChainFxPool.get();
        null == node && (node = cc.instantiate(fxPrefab));
        return node;
      }
      returnLightningChainFx(fxNode) {
        fxNode.cleanup();
        this.lightningChainFxPool.put(fxNode);
      }
      getLightningHitFx(fxPrefab) {
        let node = this.lightningHitFxPool.get();
        null == node && (node = cc.instantiate(fxPrefab));
        return node;
      }
      returnLightningHitFx(fxNode) {
        fxNode.cleanup();
        this.lightningHitFxPool.put(fxNode);
      }
      getRedenvelopeNode() {
        return cc.instantiate(this.otherData.redenvelope);
      }
      getBannerNode(e) {
        return cc.instantiate(this.otherData.Banner[e]);
      }
      getRankItem(e) {
        return this.otherData.rankItem[e] || null;
      }
      getJPListUINode() {
        if (this.otherData.jpListUI) return cc.instantiate(this.otherData.jpListUI);
        return null;
      }
      preloadBackground() {
        let bundle = cc.assetManager.getBundle("MT3SETB");
        null === bundle || void 0 === bundle ? void 0 : bundle.preloadDir("resources/prefabs/bg/", cc.Prefab);
      }
      loadBackground(idx, onComplete) {
        return __awaiter(this, void 0, void 0, function*() {
          let bundle = cc.assetManager.getBundle("MT3SETB");
          null === bundle || void 0 === bundle ? void 0 : bundle.load("resources/prefabs/bg/bg" + idx, cc.Prefab, (err, asset) => {
            if (err) {
              console.warn("load background failed: bg" + idx);
              return;
            }
            let node = cc.instantiate(asset);
            node.parent = MT3SETB_Comm_1.Comm.node.bgLayer;
            node.active = false;
            onComplete && onComplete(node);
          });
        });
      }
      releaseBackground(node) {
        if (node) {
          let bundle = cc.assetManager.getBundle("MT3SETB");
          null === bundle || void 0 === bundle ? void 0 : bundle.release("resources/prefabs/bg/" + node.name, cc.Prefab);
        }
      }
      getDrill() {
        return null;
      }
      getLaser() {
        return this.getBullet(MT3SETB_Game_1.eBulletNo.Aim);
      }
      getLaserDish() {
        return cc.instantiate(this.bulletData.laserDish);
      }
      getTorpedo() {
        return this.getBullet(MT3SETB_Game_1.eBulletNo.Torpedo);
      }
      getCrabTorpedo() {
        return cc.instantiate(this.bulletData.crabTorpedo);
      }
      getRedenvelopeReward() {
        return cc.instantiate(this.rewardData.redenvelope);
      }
      getReward(e) {
        (e <= 0 || e >= this.rewardData.rewards.length) && (e = 0);
        return cc.instantiate(this.rewardData.rewards[e]);
      }
      getRewardCircle(fishNo) {
        return cc.instantiate(fishNo == MT3SETB_Game_1.mtfBFishNo.FlamingPhoenix ? this.rewardData.phoenixRewardCircle : this.rewardData.rewardCircle);
      }
      getLevelupShow() {
        return cc.instantiate(this.rewardData.levelup);
      }
      getCommonNode(e) {
        return e < 0 || e >= this.commonData.uiList.length ? null : cc.instantiate(this.commonData.uiList[e]);
      }
      getPickupReward() {
        return cc.instantiate(this.rewardData.pickupReward);
      }
      getPickupReward_MC() {
        return cc.instantiate(this.rewardData.pickupReward_MC);
      }
      getPickupSmallRoulette() {
        return cc.instantiate(this.rewardData.pickupSmallRoulette);
      }
      getPickupBigRoulette() {
        return cc.instantiate(this.rewardData.pickupBigRoulette);
      }
      getPickupRouletteCnter() {
        return cc.instantiate(this.rewardData.pickupRouletteCnter);
      }
      getRedEnvelope_CNY() {
        return cc.instantiate(this.rewardData.redEnvelope_CNY);
      }
      getRichBag_CNY() {
        return cc.instantiate(this.rewardData.richBag_CNY);
      }
      getCatchRewardShow_CNY() {
        return cc.instantiate(this.rewardData.catchRewardShow_CNY);
      }
    };
    __decorate([ property(MT3SETB_FishData_1.FishData) ], DataMgr.prototype, "fishData", void 0);
    __decorate([ property(MT3SETB_BulletData_1.BulletData) ], DataMgr.prototype, "bulletData", void 0);
    __decorate([ property(MT3SETB_TurretData_1.TurretData) ], DataMgr.prototype, "turretData", void 0);
    __decorate([ property(MT3SETB_CoinData_1.CoinData) ], DataMgr.prototype, "coinData", void 0);
    __decorate([ property(MT3SETB_EffectData_1.EffectData) ], DataMgr.prototype, "effectData", void 0);
    __decorate([ property(MT3SETB_RewardData_1.RewardData) ], DataMgr.prototype, "rewardData", void 0);
    __decorate([ property(MT3SETB_OtherData_1.OtherData) ], DataMgr.prototype, "otherData", void 0);
    __decorate([ property(MT3SETB_CommonData_1.CommonData) ], DataMgr.prototype, "commonData", void 0);
    __decorate([ property(MT3SETB_ActionData_1.ActionData) ], DataMgr.prototype, "actionData", void 0);
    DataMgr = __decorate([ ccclass ], DataMgr);
    exports.DataMgr = DataMgr;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../data/MT3SETB-ActionData": "MT3SETB-ActionData",
    "../data/MT3SETB-BulletData": "MT3SETB-BulletData",
    "../data/MT3SETB-CoinData": "MT3SETB-CoinData",
    "../data/MT3SETB-CommonData": "MT3SETB-CommonData",
    "../data/MT3SETB-EffectData": "MT3SETB-EffectData",
    "../data/MT3SETB-FishData": "MT3SETB-FishData",
    "../data/MT3SETB-OtherData": "MT3SETB-OtherData",
    "../data/MT3SETB-RewardData": "MT3SETB-RewardData",
    "../data/MT3SETB-TurretData": "MT3SETB-TurretData",
    "../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-Fish": "MT3SETB-Fish",
    "./NodePool/MT3SETB-BubbleFxPool": "MT3SETB-BubbleFxPool"
  } ],
  "MT3SETB-DebugSpawn": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "fd2d3DilwxN7Ktup/q2RURC", "MT3SETB-DebugSpawn");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let DebugSpawn = class DebugSpawn extends cc.Component {
      constructor() {
        super(...arguments);
        this.btnSpawn = null;
        this.dropList = null;
        this.dropListContent = null;
        this.fishOptionPrefab = null;
        this.scrollView = null;
        this.selectedFishId = -1;
      }
      start() {
        this.btnSpawn.node.on("click", this.populateDropList, this);
      }
      update(dt) {
        this.btnSpawn.interactable = null == MT3SETB_Comm_1.Comm.fishRoom;
      }
      populateDropList() {
        this.dropList.active = !this.dropList.active;
        this.dropList.active && this.refreshDropList();
      }
      refreshDropList() {
        this.dropListContent.removeAllChildren();
        let options = this.getFishOptions();
        for (let option of options) {
          let node = cc.instantiate(this.fishOptionPrefab);
          node.parent = this.dropListContent;
          let label = node.getComponentInChildren(cc.Label);
          label.string = `${option.label} [${option.value}]`;
          node.on("click", () => {
            this.onOptionClicked(option.value);
          }, this);
        }
      }
      getFishOptions() {
        var _a;
        let options = [];
        let dataMgr = MT3SETB_Comm_1.Comm.dataMgr;
        for (let fishIdStr in dataMgr.fishPrefabToIdxMapping) {
          let fishId = parseInt(fishIdStr);
          let name = null === (_a = dataMgr.fishJsonData[fishId]) || void 0 === _a ? void 0 : _a.name;
          options.push({
            label: `${name}`,
            value: fishId
          });
        }
        return options;
      }
      onOptionClicked(value) {
        MT3SETB_Comm_1.Comm.debug.requestSpawnFish(value);
        this.dropList.active = false;
      }
    };
    __decorate([ property(cc.Button) ], DebugSpawn.prototype, "btnSpawn", void 0);
    __decorate([ property(cc.Node) ], DebugSpawn.prototype, "dropList", void 0);
    __decorate([ property(cc.Node) ], DebugSpawn.prototype, "dropListContent", void 0);
    __decorate([ property(cc.Prefab) ], DebugSpawn.prototype, "fishOptionPrefab", void 0);
    __decorate([ property(cc.ScrollView) ], DebugSpawn.prototype, "scrollView", void 0);
    DebugSpawn = __decorate([ ccclass ], DebugSpawn);
    exports.default = DebugSpawn;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-DebugUI": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "dc086crkzlJEIEtEV3jn6ji", "MT3SETB-DebugUI");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.DebugUI = void 0;
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../api/MT3SETB-mtf_pb_wrapper");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let DebugUI = class DebugUI extends cc.Component {
      constructor() {
        super(...arguments);
        this.btnShow = null;
        this.btnHide = null;
        this.btnSureCatch = null;
        this.sureCatchCheckmark = null;
        this.btnNextScene = null;
        this.btnAdvanceToEvent = null;
        this.btnAdvanceToSpawn = null;
        this.btnEnableDebug = null;
        this.dropList = null;
        this.defaultY = 640;
        this.isShow = false;
        this.devMode = 0;
        this.currId = 1;
        this.reqLog = {};
        this.onResizeCallbackIndex = -1;
        this.selectedFishId = -1;
      }
      get isDebugEnabled() {
        return this.btnShow.node.active || this.btnHide.node.active;
      }
      get isSureCatch() {
        return this.sureCatchCheckmark.active;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.debug = this;
      }
      start() {
        this.onResizeCallbackIndex = MT3SETB_Comm_1.Comm.app.registResizeCallback(this.onResize.bind(this));
        this.btnEnableDebug.node.on("click", this.SetEnable, this);
        this.onResize();
      }
      onDestroy() {
        if (this.onResizeCallbackIndex > 0) {
          MT3SETB_Comm_1.Comm.app.cancelResizeCallback(this.onResizeCallbackIndex);
          this.onResizeCallbackIndex = -1;
        }
      }
      SetEnable() {
        if (this.devMode++ < 15) {
          this.devMode > 10 && MT3SETB_Comm_1.Comm.toast.setText(15 - this.devMode + 1 + " more tap to enter dev mode");
          return;
        }
        MT3SETB_Comm_1.Comm.toast.setText("Hurray! you can now cheat!");
        this.btnShow.node.active = true;
        this.btnShow.node.on("click", this.show, this);
        this.btnHide.node.on("click", this.hide, this);
        this.btnSureCatch.node.on("click", this.requestSureCatch, this);
        this.btnNextScene.node.on("click", this.requestNextScene, this);
        this.btnAdvanceToEvent.node.on("click", this.requestAdvanceToEvent, this);
        this.btnAdvanceToSpawn.node.on("click", this.requestAdvanceToSpawn, this);
        this.btnEnableDebug.node.active = false;
      }
      show() {
        this.isShow = true;
        this.btnHide.node.active = true;
        this.btnShow.node.active = false;
        this.updatePosition();
      }
      hide() {
        this.isShow = false;
        this.btnHide.node.active = false;
        this.btnShow.node.active = true;
        this.dropList.active = false;
        this.updatePosition();
      }
      requestSureCatch() {
        this.sureCatchCheckmark.active = !this.sureCatchCheckmark.active;
      }
      requestNextScene() {
        let debugReq = new MT3SETB_mtf_pb_wrapper_1.mtf.DebugReq({
          id: this.currId++,
          type: 2
        });
        var command = MT3SETB_mtf_pb_wrapper_1.mtf.DebugReq.encode(debugReq);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DEBUG_REQ, command);
        this.reqLog[debugReq.id] = {
          req: debugReq,
          ack: null
        };
      }
      requestAdvanceToEvent() {
        let debugReq = new MT3SETB_mtf_pb_wrapper_1.mtf.DebugReq({
          id: this.currId++,
          type: 3
        });
        var command = MT3SETB_mtf_pb_wrapper_1.mtf.DebugReq.encode(debugReq);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DEBUG_REQ, command);
        this.reqLog[debugReq.id] = {
          req: debugReq,
          ack: null
        };
      }
      requestAdvanceToSpawn() {
        let debugReq = new MT3SETB_mtf_pb_wrapper_1.mtf.DebugReq({
          id: this.currId++,
          type: 4
        });
        var command = MT3SETB_mtf_pb_wrapper_1.mtf.DebugReq.encode(debugReq);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DEBUG_REQ, command);
        this.reqLog[debugReq.id] = {
          req: debugReq,
          ack: null
        };
      }
      requestSpawnFish(fishId) {
        let debugReq = {
          id: this.currId++,
          type: 5,
          param1: fishId
        };
        var command = MT3SETB_mtf_pb_wrapper_1.mtf.DebugReq.encode(debugReq).finish();
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DEBUG_REQ, command);
        this.reqLog[debugReq.id] = {
          req: debugReq,
          ack: null
        };
      }
      onAck(ack) {
        var _a;
        if (!this.reqLog[ack.id] || !ack.success) return;
        this.reqLog[ack.id].ack = ack;
        switch (this.reqLog[ack.id].req.type) {
         case 1:
          let b = this.sureCatchCheckmark.active = this.reqLog[ack.id].req.param1 > 0;
          MT3SETB_Comm_1.Comm.toast.setText("Sure catch mode " + (b ? "enabled" : "disabled"));
          break;

         case 2:
          MT3SETB_Comm_1.Comm.toast.setText("changing scene");
          break;

         case 3:
          MT3SETB_Comm_1.Comm.toast.setText("scene time by event\n" + ack.ret);
          MT3SETB_Comm_1.Comm.fishMgr.removeAllFishes();
          break;

         case 4:
          MT3SETB_Comm_1.Comm.toast.setText("scene time by spawn\n" + ack.ret);
          MT3SETB_Comm_1.Comm.fishMgr.removeAllFishes();
          break;

         case 5:
          let fishID = this.reqLog[ack.id].req.param1;
          let fishName = null === (_a = MT3SETB_Comm_1.Comm.dataMgr.fishJsonData[fishID]) || void 0 === _a ? void 0 : _a.name;
          MT3SETB_Comm_1.Comm.toast.setText("Spawning: " + fishName + ", fish ID: " + fishID);
        }
      }
      onResize() {
        let ds = cc.view.getDesignResolutionSize(), vs = cc.view.getVisibleSize(), height = Math.min(ds.height, vs.height);
        let canvas = cc.find("Canvas");
        let widget = canvas.getComponent(cc.Widget);
        widget && widget.updateAlignment();
        this.defaultY = .5 * height + canvas.y;
        this.updatePosition();
      }
      updatePosition() {
        this.node.y = this.defaultY - (this.isShow ? this.node.height : 0);
      }
    };
    __decorate([ property(cc.Button) ], DebugUI.prototype, "btnShow", void 0);
    __decorate([ property(cc.Button) ], DebugUI.prototype, "btnHide", void 0);
    __decorate([ property(cc.Button) ], DebugUI.prototype, "btnSureCatch", void 0);
    __decorate([ property(cc.Node) ], DebugUI.prototype, "sureCatchCheckmark", void 0);
    __decorate([ property(cc.Button) ], DebugUI.prototype, "btnNextScene", void 0);
    __decorate([ property(cc.Button) ], DebugUI.prototype, "btnAdvanceToEvent", void 0);
    __decorate([ property(cc.Button) ], DebugUI.prototype, "btnAdvanceToSpawn", void 0);
    __decorate([ property(cc.Button) ], DebugUI.prototype, "btnEnableDebug", void 0);
    __decorate([ property(cc.Node) ], DebugUI.prototype, "dropList", void 0);
    DebugUI = __decorate([ ccclass ], DebugUI);
    exports.DebugUI = DebugUI;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm",
    "../api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper"
  } ],
  "MT3SETB-DepositBtn": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "62d1e0EjiJGkoz6GWrr5QB9", "MT3SETB-DepositBtn");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.DepositBtn = void 0;
    const MT3SETB_language_1 = require("../../../../script/common/api/MT3SETB-language");
    const MT3SETB_Comm_1 = require("../../../../script/MT3SETB-Comm");
    const MT3SETB_platform_1 = require("../../../../script/common/api/MT3SETB-platform");
    const MT3SETB_profile_1 = require("../../../../script/common/api/MT3SETB-profile");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let DepositBtn = class DepositBtn extends cc.Component {
      constructor() {
        super();
        this.moveNode = null;
        this.btnNode = null;
        this.alignmentNode = null;
        this.alignmentDiffPos = cc.v2();
        this.startTime = 0;
        this.localPos = cc.v2(0, 0);
        this.touchPos = cc.v2(0, 0);
        this.resizeCbIndex = null;
        this.isInited = false;
        this.walletLowLimit = 0;
      }
      onLoad() {
        var e = this;
        this.moveNode.active = false;
        this.btnNode.on(cc.Node.EventType.TOUCH_START, function(t) {
          e.startTime = Date.now();
          e.touchPos = cc.v2(t.getLocation().x, t.getLocation().y);
          e.localPos = cc.v2(e.moveNode.x, e.moveNode.y);
        });
        this.btnNode.on(cc.Node.EventType.TOUCH_MOVE, function(t) {
          var o = cc.v2(t.getLocation().x, t.getLocation().y), n = cc.v2(o.x, o.y).subtract(e.touchPos);
          e.localPos = e.localPos.add(n);
          e.updateMovePosition();
          e.touchPos = o;
        });
        this.btnNode.on(cc.Node.EventType.TOUCH_END, function() {
          (Date.now() - e.startTime) / 1e3 < .24 && e.jumpToDeposit();
          e.touchPos = cc.v2(0, 0);
        });
        this.btnNode.on(cc.Node.EventType.TOUCH_CANCEL, function() {
          e.touchPos = cc.v2(0, 0);
        });
        null == this.resizeCbIndex && (this.resizeCbIndex = MT3SETB_Comm_1.Comm.app.registResizeCallback(this.onResize.bind(this)));
      }
      onResize() {
        this.resetPos();
      }
      resetPos() {
        var e = this;
        this.isInited && cc.tween(this.node).delay(0).call(function() {
          e.updateRootPosition();
          e.moveNode.setPosition(cc.v2());
        }).start();
      }
      updateMovePosition() {
        var e, t = null !== (e = cc.find("Canvas/stage")) && void 0 !== e ? e : cc.find("Canvas/Stage"), o = MT3SETB_Comm_1.Comm.transPos(this.moveNode.parent, t), i = o.x - t.width * t.anchorX, a = o.x + t.width * (1 - t.anchorX), r = o.y - t.height * t.anchorY, s = o.y + t.height * (1 - t.anchorY), c = this.localPos, l = this.moveNode.getContentSize(), u = l.width, d = l.height, p = this.moveNode.anchorX, h = this.moveNode.anchorY;
        c.x - u * p < i && (c.x = i + u * p);
        c.x + u * (1 - p) > a && (c.x = a - u * (1 - p));
        c.y - d * h < r && (c.y = r + d * h);
        c.y + d * (1 - h) > s && (c.y = s - d * (1 - h));
        this.moveNode.setPosition(c.x, c.y);
      }
      updateRootPosition() {
        this.node.setPosition(MT3SETB_Comm_1.Comm.transPos(this.node.parent, this.alignmentNode, this.alignmentDiffPos));
        this.moveNode.setPosition(cc.v2());
      }
      init(e, t) {
        if (MT3SETB_platform_1.isDepositBtnOn()) {
          this.isInited = true;
          this.moveNode.active = true;
          this.alignmentNode = e;
          this.alignmentDiffPos = t;
          this.resetPos();
          this.checkInitWalletBroken();
        } else this.moveNode.active = false;
        this.walletLowLimit = .1 * MT3SETB_profile_1.GetRatio();
      }
      onClick() {
        window.open(MT3SETB_platform_1.getDepositUrl());
      }
      onDestroy() {
        null != this.resizeCbIndex && MT3SETB_Comm_1.Comm.app.cancelResizeCallback(this.resizeCbIndex);
      }
      checkInitWalletBroken() {
        var e = this, t = MT3SETB_Comm_1.Comm.bankSys.getClientCoin(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat());
        if (t > 0) t < this.walletLowLimit && this.showJumpTip(); else var o = cc.tween(this.node).delay(.1).call(function() {
          MT3SETB_Comm_1.Comm.bankSys.getClientCoin(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat()) >= e.walletLowLimit && o.stop();
        }).union().repeat(50).call(function() {
          e.showJumpTip();
        }).start();
      }
      showJumpTip() {
        var e = this;
        this.moveNode.active && MT3SETB_Comm_1.Comm.msgBox.setMessage_callback(2, MT3SETB_language_1.GetLanguage(15), function() {
          e.jumpToDeposit();
        }, function() {});
      }
      checkWalletBroken() {
        this.moveNode.active && MT3SETB_Comm_1.Comm.bankSys.getClientCoin(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat()) < this.walletLowLimit && this.showJumpTip();
      }
      jumpToDeposit() {
        window.open(MT3SETB_platform_1.getDepositUrl(), "_blank");
      }
    };
    __decorate([ property(cc.Node) ], DepositBtn.prototype, "moveNode", void 0);
    __decorate([ property(cc.Node) ], DepositBtn.prototype, "btnNode", void 0);
    DepositBtn = __decorate([ ccclass ], DepositBtn);
    exports.DepositBtn = DepositBtn;
    cc._RF.pop();
  }, {
    "../../../../script/MT3SETB-Comm": "MT3SETB-Comm",
    "../../../../script/common/api/MT3SETB-language": "MT3SETB-language",
    "../../../../script/common/api/MT3SETB-platform": "MT3SETB-platform",
    "../../../../script/common/api/MT3SETB-profile": "MT3SETB-profile"
  } ],
  "MT3SETB-Device": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "40ea27Uns5HAoVFug8qZJqk", "MT3SETB-Device");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Device = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let Device = class Device extends cc.Component {
      constructor() {
        super();
        this.mask = null;
        this.loading = null;
      }
      showLoading() {
        this.mask.active = true;
        this.loading.active = true;
      }
      hideLoading() {
        this.mask.active = false;
        this.loading.active = false;
      }
      isWebview() {
        var e = navigator.userAgent, t = new RegExp("(" + [ "WebView", "(iPhone|iPod|iPad)(?!.*Safari/)", "Android.*(wv|.0.0.0)" ].join("|") + ")", "ig");
        return Boolean(e.match(t)).valueOf();
      }
      isChrome() {
        return /CriOS/.test(navigator.userAgent);
      }
    };
    __decorate([ property(cc.Node) ], Device.prototype, "mask", void 0);
    __decorate([ property(cc.Node) ], Device.prototype, "loading", void 0);
    Device = __decorate([ ccclass ], Device);
    exports.Device = Device;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-DinghyBombEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "643cfK0Q1RPUpir0XyFPs52", "MT3SETB-DinghyBombEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_random_1 = require("../framework/framework/MT3SETB-random");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const {ccclass: ccclass, property: property} = cc._decorator;
    var State;
    (function(State) {
      State[State["None"] = 0] = "None";
      State[State["BoatMove"] = 1] = "BoatMove";
      State[State["HeartMoveToPlayer"] = 2] = "HeartMoveToPlayer";
      State[State["Show"] = 3] = "Show";
    })(State || (State = {}));
    const BoatMoveSecs = 3.5;
    const ShowBombTimes = 10;
    const MoveToPlayerSecs = 2.5;
    const ShowSecs = 1.5;
    const SpeedBoatAnimPos = 1500;
    let DinghyBombEffect = class DinghyBombEffect extends cc.Component {
      constructor() {
        super(...arguments);
        this.state = 0;
        this.explosionContainer = null;
        this.fishContainer = null;
        this.pointsContainer = null;
        this.pointsLabel = null;
        this.boatAnims = [];
        this.offsets = [];
        this.animTime = 0;
        this.hitData = null;
        this.explosionFishes = [];
        this.explosionValues = [];
        this.isMoving = false;
        this.startTimeMs = 0;
        this.random = null;
        this.newPlayerJoinedHandler = null;
        this.isTweening = false;
      }
      static getTotalDuration(rate) {
        var noOfExplosions = Math.floor(rate / 100);
        return noOfExplosions * BoatMoveSecs;
      }
      init(player, hitData, rate, callback) {
        this.curValue = 0;
        this.destValue = 0;
        this.callback = callback;
        this.hitData = hitData;
        this.player = player;
        this.totalBombTimes = Math.floor(rate / 100);
        this.bombLeftTimes = 0;
        let winAmount = hitData.coin;
        this.resetBombState();
        this.explosionFishes = [];
        this.explosionValues = [];
        this.hitData = hitData;
        this.odds = rate;
        this.pointsLabel.string = "0";
        for (var anim of this.boatAnims) {
          anim.node.scaleY = MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? 1 : -1;
          this.offsets.push(anim.node.getPosition());
        }
        this.startPos = new cc.Vec2(MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? SpeedBoatAnimPos : -SpeedBoatAnimPos, 0);
        this.destPos = new cc.Vec2(-MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? -SpeedBoatAnimPos : SpeedBoatAnimPos, 0);
        this.pointsContainer.scale = .8;
        this.pointsContainer.parent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
        let killedFishes = this.hitData.collateralFish.slice();
        var averageKilledFishes = Math.max(1, Math.floor(this.hitData.collateralFish.length / this.totalBombTimes));
        var averageGainedScore = Math.floor(winAmount / this.totalBombTimes);
        this.startTimeMs = Date.now();
        this.random = new MT3SETB_random_1.PseudoRandom(hitData.seed);
        let curWin = 0;
        for (let i = 0; i < this.totalBombTimes; i++) {
          let fishes = [];
          if (i == this.totalBombTimes - 1) {
            for (let killedFishData of killedFishes) fishes.push(killedFishData);
            curWin = winAmount;
          } else {
            var bombWin = 0;
            for (let i = 0; i < averageKilledFishes; i++) {
              let killedFishData = killedFishes.pop();
              if (killedFishData) {
                fishes.push(killedFishData);
                bombWin += killedFishData.coin;
              }
            }
            curWin += bombWin;
            curWin > averageGainedScore && (curWin = averageGainedScore);
          }
          if (fishes.length > 0) {
            this.explosionFishes.push(fishes);
            this.explosionValues.push(curWin);
          }
        }
        if (null != hitData.time) {
          this.bombLeftTimes = 0;
          if (this.hitData.time >= BoatMoveSecs / 2) {
            this.bombLeftTimes = Math.floor(this.hitData.time / BoatMoveSecs);
            this.curValue = this.explosionValues[this.bombLeftTimes];
            this.destValue = this.explosionValues[this.bombLeftTimes];
          }
          this.timeLeft = Math.max(0, BoatMoveSecs - (this.hitData.time - BoatMoveSecs * this.bombLeftTimes));
          this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.curValue);
        }
        this.state = State.BoatMove;
      }
      update(dt) {
        if (this.player.state == MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          this.dispose();
          return;
        }
        this.timeLeft = Math.max(0, this.timeLeft - dt);
        if (0 == this.timeLeft) if (this.state == State.BoatMove) {
          this.bombLeftTimes++;
          if (this.bombLeftTimes >= this.totalBombTimes) {
            this.state = State.HeartMoveToPlayer;
            this.timeLeft = MoveToPlayerSecs;
          } else this.resetBombState();
        } else if (this.state == State.HeartMoveToPlayer) {
          this.state = State.Show;
          this.timeLeft = ShowSecs;
        } else if (this.state == State.Show) return 1;
        if (this.state == State.BoatMove) {
          if (!this.hasBomb && this.timeLeft <= BoatMoveSecs / 2) {
            this.collisionChecks();
            this.hasBomb = true;
          }
          this.updateBoatPos();
          var useTime = BoatMoveSecs - this.timeLeft;
          var effectTime = BoatMoveSecs / ShowBombTimes;
          var needShowEffectTimes = Math.floor(useTime / effectTime);
          if (this.showBombEffectTimes < needShowEffectTimes) {
            for (var i = 0; i < this.boatAnims.length; i++) {
              let explodeEffect = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.DinghyExplodeEffect));
              explodeEffect.setParent(this.explosionContainer);
              explodeEffect.setPosition(this.boatAnims[i].node.position);
              explodeEffect.getComponent(cc.Animation).play();
            }
            this.showBombEffectTimes++;
          }
        }
        this.updateUiPos();
        this.updatePanelUI(dt);
        return 0;
      }
      onNewPlayerJoined(seat) {
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: MT3SETB_Game_1.mtfBFishNo.BombSpeedBoat,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: 0,
            y: 0
          }),
          bet: this.hitData.bet,
          win: this.hitData.coin,
          secondsElapsed: (Date.now() - this.startTimeMs) / 1e3,
          collateralDead: []
        };
        for (let collateralHitData of this.hitData.collateralFish) notifyData.collateralDead.push(new MT3SETB_mtf_pb_wrapper_1.mtf.HitAckData.Fish({
          id: collateralHitData.fishId,
          coin: collateralHitData.coin
        }));
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
      dispose() {
        this.pointsContainer.destroy();
        for (var anim of this.boatAnims) anim.node.active = false;
        this.scheduleOnce(() => {
          this.node.destroy();
        }, 2);
      }
      resetBombState() {
        this.timeLeft = BoatMoveSecs;
        this.showBombEffectTimes = 0;
        this.hasBomb = false;
      }
      collisionChecks() {
        let win = this.explosionValues[this.bombLeftTimes];
        this.doBombDamage(win);
        this.curValue = this.destValue;
        this.destValue = win;
        this.animTime = 0;
        MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", this.hitData.seat, -win);
        MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.hitData.seat);
      }
      updateUiPos() {
        var needMove = this.state == State.HeartMoveToPlayer;
        if (needMove && !this.isMoving) {
          let worldPos = this.player.getRewardPosNode().convertToWorldSpaceAR(cc.v2(0, -50));
          let translatedPlayerPos = this.pointsContainer.parent.convertToNodeSpaceAR(worldPos);
          this.pointsContainer.runAction(cc.sequence(cc.moveTo(MoveToPlayerSecs, translatedPlayerPos), cc.delayTime(.5), cc.callFunc(() => {
            this.callback && this.callback();
          }), cc.delayTime(1), cc.callFunc(() => {
            this.dispose();
          })));
          this.isMoving = true;
        }
      }
      updatePanelUI(dt) {
        if (!this.pointsLabel || !this.pointsLabel.isValid) return;
        if (this.curValue != this.destValue) {
          if (!this.isTweening) {
            this.pointsContainer.runAction(cc.sequence(cc.scaleTo(.2, 1.25), cc.delayTime(.25), cc.scaleTo(.2, 1)));
            this.isTweening = true;
          }
          this.animTime += dt;
          this.animTime = Math.min(this.animTime, 1);
          let delta = (this.destValue - this.curValue) * cc.easing.sineOut(this.animTime);
          var nextValue = this.curValue + delta;
          if (nextValue >= this.destValue) {
            this.animTime = 1;
            this.curValue = this.destValue;
            this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.destValue);
          } else this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum6(nextValue);
        } else this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.curValue);
      }
      updateBoatPos() {
        var percent = 1 - this.timeLeft / BoatMoveSecs;
        var posX = this.startPos.x + (this.destPos.x - this.startPos.x) * percent;
        var posY = this.startPos.y + (this.destPos.y - this.startPos.y) * percent;
        for (var i = 0; i < 5; i++) {
          var anim = this.boatAnims[i];
          var offset = this.offsets[i];
          var nextPosX = posX + offset.x;
          var nextPosY = posY + offset.y;
          anim.node.setPosition(nextPosX, nextPosY);
        }
      }
      doBombDamage(maxWin) {
        let remainingWin = maxWin;
        let fishes = MT3SETB_Comm_1.Comm.fishMgr.getAllFishes(fish => MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish));
        fishes = this.random.shuffle(fishes);
        for (let fish of fishes) {
          let win = fish.odds * this.hitData.bet;
          if (remainingWin - win >= 0) {
            remainingWin -= win;
            let hitData = {
              seat: this.hitData.seat,
              bet: this.hitData.bet,
              coin: win
            };
            fish.pathEnd = true;
            fish.dying = true;
            MT3SETB_Comm_1.Comm.gameCtrl.onFishDeathPlayEffect(fish, hitData, false);
            MT3SETB_Comm_1.Comm.gameCtrl.showGetCoin(hitData.seat, fish, hitData.coin);
            MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
          }
        }
      }
    };
    __decorate([ property(cc.Node) ], DinghyBombEffect.prototype, "explosionContainer", void 0);
    __decorate([ property(cc.Node) ], DinghyBombEffect.prototype, "fishContainer", void 0);
    __decorate([ property(cc.Node) ], DinghyBombEffect.prototype, "pointsContainer", void 0);
    __decorate([ property(cc.Label) ], DinghyBombEffect.prototype, "pointsLabel", void 0);
    __decorate([ property([ cc.Animation ]) ], DinghyBombEffect.prototype, "boatAnims", void 0);
    DinghyBombEffect = __decorate([ ccclass ], DinghyBombEffect);
    exports.default = DinghyBombEffect;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../framework/framework/MT3SETB-random": "MT3SETB-random",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-Dragon": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "4b1a6oVDRFKl6qV77RC2mHq", "MT3SETB-Dragon");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const MT3SETB_FishScreenAura_1 = __importDefault(require("./MT3SETB-FishScreenAura"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let Dragon = class Dragon extends MT3SETB_Fish_1.Fish {
      constructor() {
        super(...arguments);
        this.spineAnim = null;
        this.screenAura = null;
        this.rotations = [];
        this.currentRotIndex = 0;
        this.fishDuration = 0;
        this.spineAnimDuration = 0;
        this.hasInitPath = false;
        this.hasSpineEnded = false;
      }
      postInit() {
        var _a;
        super.postInit();
        null === (_a = this.screenAura) || void 0 === _a ? void 0 : _a.startAura();
      }
      InitPath(fishData, delay, elapsed) {
        super.InitPath(fishData, delay, elapsed);
        this.fishDuration = fishData.duration;
        this.elapsed = elapsed;
        this.node.setPosition(MT3SETB_Comm_1.Comm.transPos(this.node.parent, MT3SETB_Comm_1.Comm.node.fishLayer, cc.Vec2.ZERO));
        if (this.isSpine) {
          let anim = this.spineAnim.findAnimation(this.spineAnimName);
          this.spineAnimDuration = anim.duration;
          this.initAnimation();
        }
        this.hasInitPath = true;
      }
      initAnimation() {
        let trackEntry = this.spineAnim.setAnimation(0, this.spineAnimName, true);
        trackEntry.trackTime = this.elapsed % this.spineAnimDuration;
        let loopsCompleted = Math.floor(this.elapsed / this.spineAnimDuration);
        this.currentRotIndex = loopsCompleted % this.rotations.length;
        this.setRotation();
        this.hasSpineEnded = false;
        this.spineAnim.setTrackCompleteListener(trackEntry, () => {
          this.hasSpineEnded = true;
        });
      }
      update(dt) {
        dt *= this.speedRatio;
        this.updatePath(dt);
        this._isLockPosDirty = true;
      }
      updateAnimation() {}
      updatePath(dt) {
        this.elapsed += dt;
        if (this.hasSpineEnded && !this.pathEnd) {
          let remaining = this.fishDuration - this.elapsed;
          this.pathEnd = remaining < this.spineAnimDuration;
          if (this.pathEnd) {
            let me = this;
            this.nextFrame(function() {
              return MT3SETB_Comm_1.Comm.fishMgr.delFish(me, false, false);
            });
          } else {
            this.hasSpineEnded = false;
            this.setRotation();
          }
        }
      }
      updateRotation() {}
      shiftPosition(elapseBy) {
        if (this.hasInitPath) {
          this.elapsed += elapseBy;
          let remaining = this.fishDuration - this.elapsed;
          this.hasSpineEnded = remaining < this.spineAnimDuration;
          this.hasSpineEnded || this.initAnimation();
        }
      }
      destroyFish(e, t) {
        this.hasInitPath = false;
        if (this.screenAura) {
          let aura = this.screenAura;
          MT3SETB_Comm_1.Comm.effectMgr.scheduleOnce(() => {
            aura.stopAura();
          }, 8);
        }
        super.destroyFish(e, t);
      }
      pushToPool() {
        for (let spineAnim of this.spineAnims) spineAnim.clearTracks();
        super.pushToPool();
      }
      setRotation() {
        if (this.rotations.length > 0) {
          this.spineAnim.node.angle = this.rotations[this.currentRotIndex];
          this.currentRotIndex = (this.currentRotIndex + 1) % this.rotations.length;
        }
      }
      getLockPosition() {
        if (!this._isLockPosDirty) return cc.v3(this._lastLockNodeWorldPos);
        let lockPos;
        lockPos = this.lockNode ? this.lockNode.convertToWorldSpaceAR(cc.Vec3.ZERO) : this.node.convertToWorldSpaceAR(cc.Vec3.ZERO);
        this.isLockNodeOnScreen = MT3SETB_Comm_1.Comm.fishMgr.isFishPosOnScreen(lockPos);
        this.isLockNodeOnScreen && (this._lastLockNodeWorldPos = lockPos);
        this._isLockPosDirty = false;
        return this._lastLockNodeWorldPos;
      }
    };
    __decorate([ property(sp.Skeleton) ], Dragon.prototype, "spineAnim", void 0);
    __decorate([ property(MT3SETB_FishScreenAura_1.default) ], Dragon.prototype, "screenAura", void 0);
    __decorate([ property([ cc.Float ]) ], Dragon.prototype, "rotations", void 0);
    Dragon = __decorate([ ccclass ], Dragon);
    exports.default = Dragon;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-Fish": "MT3SETB-Fish",
    "./MT3SETB-FishScreenAura": "MT3SETB-FishScreenAura"
  } ],
  "MT3SETB-DrillBullet": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "6920dh5hN9DQ70fZXgK8uLZ", "MT3SETB-DrillBullet");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const MOVE_END_TP = 8;
    const DRIFT_END_TP = 11;
    const MOVE_SPEED = 1100;
    const DRIFT_SPEED = 800;
    const ANIM_MOVE = "zuantouxie_move2";
    const ANIM_DRIFT = "zuantouxie_drift";
    const SFX_MOVE = "drill_uncon";
    const SFX_DRILL_HIT = "drill_hit";
    var State;
    (function(State) {
      State[State["Move"] = 0] = "Move";
      State[State["WaitBoom"] = 1] = "WaitBoom";
      State[State["Boom"] = 2] = "Boom";
    })(State || (State = {}));
    var HitType;
    (function(HitType) {
      HitType[HitType["Normal"] = 0] = "Normal";
      HitType[HitType["Explosion"] = 1] = "Explosion";
    })(HitType || (HitType = {}));
    let DrillBullet = class DrillBullet extends cc.Component {
      constructor() {
        super(...arguments);
        this.bulletAnim = null;
        this.explosionAnim = null;
        this.isLocal = false;
        this.bet = 1;
        this.remainingWin = 0;
        this.fireTime = 0;
        this.state = State.Move;
        this.speed = 0;
        this.direction = cc.Vec2.ZERO;
        this.velocity = cc.Vec2.ZERO;
        this.hasBoom = false;
        this.endCallback = null;
        this.drillHitWinnings = 0;
      }
      update(dt) {
        this.fireTime += dt;
        switch (this.state) {
         case State.Move:
          this.updateMoveState(dt);
          break;

         case State.WaitBoom:
          this.updateWaitBoomState(dt);
          break;

         case State.Boom:
          this.updateBoomState();
        }
      }
      init(isLocal, bet, remainingWin, direction, endCallback) {
        this.isLocal = isLocal;
        this.bet = bet;
        this.remainingWin = remainingWin;
        this.fireTime = 0;
        this.endCallback = endCallback;
        this.initState();
        this.direction = direction;
        this.velocity = direction.mul(this.speed);
      }
      initState() {
        let timePoint = this.getTimePoint();
        if (timePoint < MOVE_END_TP) {
          this.state = State.Move;
          this.bulletAnim.node.active = true;
          this.bulletAnim.play(ANIM_MOVE);
          this.speed = MOVE_SPEED;
        } else if (timePoint < DRIFT_END_TP) {
          this.state = State.WaitBoom;
          this.bulletAnim.node.active = true;
          this.bulletAnim.play(ANIM_DRIFT);
          this.speed = DRIFT_SPEED;
          this.velocity = this.direction.mul(this.speed);
        } else {
          this.state = State.Boom;
          this.hasBoom = true;
          this.bulletAnim.node.active = false;
        }
        this.explosionAnim.node.active = false;
      }
      getTimePoint() {
        return this.fireTime;
      }
      updateMoveState(deltaTime) {
        let timePoint = this.getTimePoint();
        if (timePoint >= MOVE_END_TP) {
          this.state = State.WaitBoom;
          this.bulletAnim.play(ANIM_DRIFT);
          this.speed = DRIFT_SPEED;
          this.velocity = this.direction.mul(this.speed);
        }
        this.moveForward(deltaTime);
      }
      updateWaitBoomState(deltaTime) {
        let timePoint = this.getTimePoint();
        if (timePoint >= DRIFT_END_TP) {
          this.state = State.Boom;
          this.bulletAnim.node.active = false;
          this.explosionAnim.node.active = true;
          this.explosionAnim.play();
          this.speed = 0;
          this.velocity = cc.Vec2.ZERO;
          this.node.stopAllActions();
          MT3SETB_Comm_1.Comm.snd.playEffectByName("drill_bomb");
        } else this.moveForward(deltaTime);
      }
      updateBoomState() {
        if (!this.hasBoom) {
          this.hasBoom = true;
          this.explode();
        }
      }
      onCollisionEnter(obj) {
        if (this.state == State.Boom) return;
        if (0 === obj.tag) {
          var t = Math.abs(obj.node.y) < 1, o = Math.abs(obj.node.x) < 1;
          this.bounceByNormal(t, o);
        } else if (2 === obj.tag || 1 === obj.tag) {
          let fish = obj.node.getComponent(MT3SETB_Fish_1.Fish);
          let hitNodeParent = obj.node.parent;
          while (null == fish && null != hitNodeParent) {
            fish = hitNodeParent.getComponent(MT3SETB_Fish_1.Fish);
            hitNodeParent = hitNodeParent.parent;
          }
          if (null != fish && fish.isUsed() && this.canHitFish(fish) && this.isLocal) {
            let hitData = new MT3SETB_mtf_pb_wrapper_1.mtf.HitSpecialStartReqData({
              fishIds: [ fish.getFishId() ],
              type: HitType.Normal
            });
            MT3SETB_Comm_1.Comm.gameMgr.drillRequest(hitData);
          }
        }
      }
      explode() {
        MT3SETB_Comm_1.Comm.snd.stopEffectByName(SFX_MOVE);
        let fishes = [];
        for (let fishId in MT3SETB_Comm_1.Comm.fishMgr.fishes) {
          let fish = MT3SETB_Comm_1.Comm.fishMgr.fishes[fishId];
          MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && this.canHitFish(fish) && fishes.push(fish.getFishId());
        }
        let req = new MT3SETB_mtf_pb_wrapper_1.mtf.HitSpecialStartReqData();
        req.fishIds = fishes;
        req.type = HitType.Explosion;
        MT3SETB_Comm_1.Comm.gameMgr.drillRequest(req);
      }
      bounceByNormal(e, t) {
        e && (this.direction.x = -this.direction.x, this.velocity.x = -this.velocity.x);
        t && (this.direction.y = -this.direction.y, this.velocity.y = -this.velocity.y);
      }
      canHitFish(fish) {
        return MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish);
      }
      moveForward(deltaTime) {
        this.node.setPosition(this.velocity.mul(deltaTime).addSelf(cc.v2(this.node.position)));
        this.node.angle = cc.misc.radiansToDegrees(cc.Vec2.UP.signAngle(this.velocity));
      }
      getDirection() {
        let vector = MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? new cc.Vec2(0, -1) : cc.Vec2.UP;
        return vector.rotate(cc.misc.degreesToRadians(this.node.angle));
      }
      handleNormalHitResponse(hitSpecialAckData) {
        let {fishId: fishId, odds: odds, seat: seat, type: type} = hitSpecialAckData;
        let win = odds * this.bet;
        let turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(seat);
        let fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(fishId);
        if (turret && fish && this.remainingWin > win && MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish)) {
          this.remainingWin -= win;
          this.drillHitWinnings += win;
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", seat, -win);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(seat);
          fish.dying = true;
          MT3SETB_Comm_1.Comm.gameCtrl.showGetCoin(seat, fish, win);
          let drillHitFxNode = MT3SETB_Comm_1.Comm.dataMgr.getDrillHitFx();
          drillHitFxNode.position = this.node.position;
          drillHitFxNode.setParent(MT3SETB_Comm_1.Comm.node.bulletLayer);
          drillHitFxNode.angle = this.node.angle;
          drillHitFxNode.getComponentInChildren(cc.Animation).play();
          drillHitFxNode.runAction(cc.sequence(cc.delayTime(.37), cc.callFunc(() => {
            MT3SETB_Comm_1.Comm.dataMgr.returnDrillHitFx(drillHitFxNode);
          })));
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, false, true);
          MT3SETB_Comm_1.Comm.snd.playEffectByName(SFX_DRILL_HIT);
        }
      }
      handleExplosionResponse(explosionAckData) {
        let {seat: seat, bet: bet, coin: coin, fish: fish} = explosionAckData;
        let turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(seat);
        if (turret) {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", seat, -this.remainingWin);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(seat);
          for (let deadAck of fish) {
            let id = deadAck.fish;
            let deadFish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(id);
            if (deadFish && MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(deadFish)) {
              deadFish.dying = true;
              MT3SETB_Comm_1.Comm.effectMgr.showCommonFishDeath(deadFish, 0, false);
              MT3SETB_Comm_1.Comm.gameCtrl.showGetCoin(seat, deadFish, deadAck.coin);
              MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
            }
          }
          this.endCallback();
        }
      }
      dispose() {
        this.node.destroy();
      }
    };
    __decorate([ property(cc.Animation) ], DrillBullet.prototype, "bulletAnim", void 0);
    __decorate([ property(cc.Animation) ], DrillBullet.prototype, "explosionAnim", void 0);
    DrillBullet = __decorate([ ccclass ], DrillBullet);
    exports.default = DrillBullet;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-Fish": "MT3SETB-Fish"
  } ],
  "MT3SETB-DrillGunDrop": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "43891f8C7NHB4Inso3+dfnM", "MT3SETB-DrillGunDrop");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FIRE_TIME = exports.TOTAL_TIME = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_DrillGun_1 = __importDefault(require("./MT3SETB-DrillGun"));
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const SHOW_TIME = 2;
    const SCALE_TIME = 1.25;
    exports.TOTAL_TIME = 2.5;
    exports.FIRE_TIME = 23;
    let DrillGunDrop = class DrillGunDrop extends cc.Component {
      constructor() {
        super(...arguments);
        this.turret = null;
        this.hitData = null;
        this.fishLayerStartPos = cc.Vec3.ZERO;
        this.timeSinceSrcTp = 0;
        this.startTimeMs = 0;
        this.newPlayerJoinedHandler = null;
      }
      update(dt) {
        if (this.turret.state == MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          this.node.destroy();
          return;
        }
        this.timeSinceSrcTp += dt;
        let tp = this.srcTp + this.timeSinceSrcTp;
        this.updatePos(tp);
        tp >= exports.TOTAL_TIME && this.switchCannon(tp);
      }
      startAnim(hitData, fishLayerStartPos) {
        var _a;
        this.hitData = hitData;
        this.turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        this.fishLayerStartPos = fishLayerStartPos;
        this.startTimeMs = Date.now();
        this.node.setParent(MT3SETB_Comm_1.Comm.find("Turret", this.turret.stageCannonNode));
        this.node.position = MT3SETB_Comm_1.Comm.transPos3D(this.node.parent, MT3SETB_Comm_1.Comm.node.fishLayer, fishLayerStartPos);
        this.srcTp = null !== (_a = hitData.time) && void 0 !== _a ? _a : 0;
        this.destUseTime = exports.TOTAL_TIME - this.srcTp - SHOW_TIME;
        this.srcPos = new cc.Vec2(this.node.x, this.node.y);
        let destPos = MT3SETB_Comm_1.Comm.transPos(this.node.parent, this.turret.pivot.parent, this.turret.pivot.position);
        this.destPos = new cc.Vec2(destPos.x, destPos.y);
        let remainingTime = exports.TOTAL_TIME - this.srcTp;
        if (remainingTime > SCALE_TIME) {
          remainingTime--;
          this.node.runAction(cc.sequence(cc.scaleTo(remainingTime / 4, 1.5), cc.delayTime(remainingTime / 2), cc.scaleTo(remainingTime / 4, 1)));
        }
        if (this.hitData.seat == MT3SETB_Comm_1.Comm.gameCtrl.playerSeat) {
          this.newPlayerJoinedHandler = this.onNewPlayerJoined.bind(this);
          this.turret.addNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        }
      }
      updatePos(tp) {
        let useTime = tp - this.srcTp - SHOW_TIME;
        let percent = Math.min(1, Math.max(0, useTime / this.destUseTime));
        this.node.x = this.srcPos.x + percent * (this.destPos.x - this.srcPos.x);
        this.node.y = this.srcPos.y + percent * (this.destPos.y - this.srcPos.y);
      }
      switchCannon(tp) {
        this.turret.isMovingCrosshair = false;
        this.turret.pauseNormalFiringState(true, true);
        this.turret.switchCannon(MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREEDRILL);
        this.turret.gunType = MT3SETB_Turret_1.GunType.FreeDrill;
        let drillGun = this.turret.pivot.getComponentInChildren(MT3SETB_DrillGun_1.default);
        if (drillGun) {
          drillGun.init(this.turret, this.hitData.bet, this.hitData.coin, Date.now() + 1e3 * (exports.FIRE_TIME - exports.TOTAL_TIME));
          drillGun.setStartTimeMs(this.startTimeMs);
        } else cc.warn("drill gun not found");
        this.dispose();
      }
      onNewPlayerJoined(seat) {
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: MT3SETB_Game_1.mtfBFishNo.DrillCrab,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: this.fishLayerStartPos.x,
            y: this.fishLayerStartPos.y
          }),
          bet: this.hitData.bet,
          win: this.hitData.coin,
          secondsElapsed: (Date.now() - this.startTimeMs) / 1e3,
          collateralDead: []
        };
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
      dispose() {
        MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat && this.turret.removeNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        this.node.stopAllActions();
        this.node.destroy();
      }
    };
    DrillGunDrop = __decorate([ ccclass ], DrillGunDrop);
    exports.default = DrillGunDrop;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-DrillGun": "MT3SETB-DrillGun",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-DrillGunShootUi": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "8a60eWhj5RBD6wcwcorE2rc", "MT3SETB-DrillGunShootUi");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const {ccclass: ccclass, property: property} = cc._decorator;
    let DrillGunShootUi = class DrillGunShootUi extends cc.Component {
      constructor() {
        super(...arguments);
        this.countdownText = null;
        this.shootButtonInputHandler = null;
        this.shootButtonInputHandlerTarget = null;
      }
      init(shootButtonInputHandler, shootButtonInputHandlerTarget) {
        this.shootButtonInputHandler = shootButtonInputHandler;
        this.shootButtonInputHandlerTarget = shootButtonInputHandlerTarget;
      }
      updateCountdownUi(countdownTime) {
        let time = Math.max(0, countdownTime);
        this.countdownText.string = `${Math.floor(time)},`;
      }
      onShootButtonInput() {
        var _a;
        null === (_a = this.shootButtonInputHandler) || void 0 === _a ? void 0 : _a.call(this.shootButtonInputHandlerTarget);
      }
      dispose() {
        var _a;
        null === (_a = this.node) || void 0 === _a ? void 0 : _a.destroy();
      }
    };
    __decorate([ property(cc.Label) ], DrillGunShootUi.prototype, "countdownText", void 0);
    DrillGunShootUi = __decorate([ ccclass ], DrillGunShootUi);
    exports.default = DrillGunShootUi;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-DrillGun": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "944d5TZRPlEfb0gimIqTzsp", "MT3SETB-DrillGun");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_DrillGunShootUi_1 = __importDefault(require("./MT3SETB-DrillGunShootUi"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    const SFX_READY = "drill_ready_other";
    const SFX_SHOOT = "drill_shoot";
    const SFX_MOVE = "drill_uncon";
    let DrillGun = class DrillGun extends cc.Component {
      constructor() {
        super(...arguments);
        this.shootUiPrefab = null;
        this.gunBody = null;
        this.iconSprite = null;
        this.bet = 0;
        this.winAmount = 0;
        this.drillBullet = null;
        this.turret = null;
        this.shootUi = null;
        this.hasFired = false;
        this.fireTime = 0;
        this.startTimeMs = 0;
        this.newPlayerJoinedHandler = null;
      }
      update(dt) {
        if (this.hasFired) {
          this.fireTime += dt;
          return;
        }
        this.getCountdownTime() <= 0 && this.fireLocalDrill();
      }
      lateUpdate(dt) {
        this.hasFired || MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret() != this.turret || this.updateCountdownUi();
      }
      init(turret, bet, winAmount, fireTime) {
        this.bet = bet;
        this.winAmount = winAmount;
        this.turret = turret;
        turret.pivot.angle = 0;
        MT3SETB_Comm_1.Comm.shootMgr.shootPosFL = cc.Vec2.ZERO;
        this.initData(fireTime);
        this.initGunUi();
        this.initShootUi();
        this.updateCountdownUi();
        this.turret == MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret() && this.turret.lock(true, 60);
        this.hasFired || MT3SETB_Comm_1.Comm.snd.playEffectByName(SFX_READY, true);
        if (this.turret == MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret()) {
          this.newPlayerJoinedHandler = this.onNewPlayerJoined.bind(this);
          this.turret.addNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        }
      }
      initData(fireTime) {
        this.fireTime = fireTime;
        this.hasFired = this.getCountdownTime() <= 0;
        this.hasFired ? this.turret.lock(true, 60) : MT3SETB_Comm_1.Comm.shootMgr.shootCircle = 0;
      }
      initGunUi() {
        this.gunBody.node.active = !this.hasFired;
        this.gunBody.node.active && this.gunBody.play();
        let iconSpriteParent = this.turret.uiNode;
        this.iconSprite.node.parent != iconSpriteParent && this.iconSprite.node.setParent(iconSpriteParent);
        this.iconSprite.node.active = this.hasFired;
        if (!this.hasFired) {
          let defaultAimPos = cc.Vec3.ZERO;
          this.turret.aimAt(defaultAimPos);
          MT3SETB_Comm_1.Comm.shootMgr.shootPosFL = defaultAimPos;
        }
      }
      initShootUi() {
        var _a;
        if (MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret() != this.turret || this.hasFired) return;
        this.shootUi = null === (_a = cc.instantiate(this.shootUiPrefab)) || void 0 === _a ? void 0 : _a.getComponent(MT3SETB_DrillGunShootUi_1.default);
        this.shootUi.init(this.fireLocalDrill, this);
        MT3SETB_Comm_1.Comm.node.uiLayer.addChild(this.shootUi.node);
        this.shootUi.node.setPosition(0, -MT3SETB_Comm_1.Comm.node.uiLayer.getContentSize().height / 2);
      }
      setStartTimeMs(startTimeMs) {
        this.startTimeMs = startTimeMs;
      }
      updateCountdownUi() {
        var _a;
        null === (_a = this.shootUi) || void 0 === _a ? void 0 : _a.updateCountdownUi(this.getCountdownTime());
      }
      getCountdownTime() {
        return (this.fireTime - Date.now()) / 1e3;
      }
      fireLocalDrill() {
        if (this.turret != MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret()) return;
        this.fireDrill();
        let shootReq = new MT3SETB_mtf_pb_wrapper_1.mtf.DrillFireNotifyData();
        shootReq.seat = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
        shootReq.point = new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
          x: MT3SETB_Comm_1.Comm.shootMgr.shootPosFL.x,
          y: MT3SETB_Comm_1.Comm.shootMgr.shootPosFL.y
        });
        MT3SETB_Comm_1.Comm.gameMgr.fireDrill(shootReq);
      }
      fireDrill() {
        var _a;
        if (this.hasFired) return;
        this.hasFired = true;
        this.fireTime = Date.now();
        this.gunBody.node.active = false;
        this.iconSprite.node.active = true;
        null === (_a = this.shootUi) || void 0 === _a ? void 0 : _a.dispose();
        this.shootUi = null;
        let direction = this.turret.getDirection();
        this.createDrillBullet(this.winAmount, this.turret.getBulletSpwanPos(), direction);
        MT3SETB_Comm_1.Comm.snd.stopEffectByName(SFX_READY);
        MT3SETB_Comm_1.Comm.snd.playEffectByName(SFX_SHOOT, false);
        MT3SETB_Comm_1.Comm.snd.playEffectByName(SFX_MOVE, true);
      }
      createDrillBullet(remainingWin, position, direction) {
        let bulletMgr = MT3SETB_Comm_1.Comm.bulletMgr;
        this.drillBullet = bulletMgr.createDrill();
        this.drillBullet.node.setPosition(position);
        this.drillBullet.init(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret() == this.turret, this.bet, remainingWin, direction, this.endSequence.bind(this));
      }
      onNewPlayerJoined(seat) {
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: MT3SETB_Game_1.mtfBFishNo.DrillCrab,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: 0,
            y: 0
          }),
          bet: this.bet,
          win: this.winAmount,
          secondsElapsed: (Date.now() - this.startTimeMs) / 1e3,
          collateralDead: []
        };
        if (this.drillBullet) {
          var drillWorldPos = this.drillBullet.node.convertToWorldSpaceAR(cc.Vec2.ZERO);
          notifyData.targetPos = new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: drillWorldPos.x,
            y: drillWorldPos.y
          });
          notifyData.collateralDead.push({
            coin: this.drillBullet.drillHitWinnings
          });
          var curDirection = this.drillBullet.getDirection();
          var projectileFlightTime = (Date.now() - this.fireTime) / 1e3;
          notifyData.collateralDead.push({
            coin: curDirection.x
          }, {
            coin: curDirection.y
          }, {
            coin: projectileFlightTime
          });
        }
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
      endSequence() {
        let drillGun = this;
        this.node.runAction(cc.sequence(cc.delayTime(1), cc.callFunc(() => {
          if (drillGun.winAmount > 0) {
            let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret() == drillGun.turret;
            MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, drillGun.turret.seatNo, drillGun.winAmount, isLocalPlayer, drillGun.bet, drillGun.winAmount, MT3SETB_Game_1.mtfBFishNo.DrillCrab);
          }
          drillGun.turret.switchAvatar();
          drillGun.turret.resumeNormalFiringState();
          drillGun.dispose();
        })));
      }
      dispose() {
        var _a, _b;
        if (this.turret == MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret()) {
          this.turret.lock(false, 0);
          this.turret.removeNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        }
        this.node.insertChild(this.iconSprite.node, 0);
        this.bet = 0;
        this.winAmount = 0;
        null === (_a = this.drillBullet) || void 0 === _a ? void 0 : _a.dispose();
        this.drillBullet = null;
        this.turret = null;
        null === (_b = this.shootUi) || void 0 === _b ? void 0 : _b.dispose();
        this.shootUi = null;
        this.hasFired = false;
        this.fireTime = 0;
        this.startTimeMs = 0;
        this.newPlayerJoinedHandler = null;
        MT3SETB_Comm_1.Comm.snd.stopEffectByName(SFX_READY);
        MT3SETB_Comm_1.Comm.snd.stopEffectByName(SFX_MOVE, true);
      }
    };
    __decorate([ property(cc.Prefab) ], DrillGun.prototype, "shootUiPrefab", void 0);
    __decorate([ property(cc.Animation) ], DrillGun.prototype, "gunBody", void 0);
    __decorate([ property(cc.Sprite) ], DrillGun.prototype, "iconSprite", void 0);
    DrillGun = __decorate([ ccclass ], DrillGun);
    exports.default = DrillGun;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-DrillGunShootUi": "MT3SETB-DrillGunShootUi"
  } ],
  "MT3SETB-EffectData": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "7dad0Sv0+JGRYhZDlF0Eo00", "MT3SETB-EffectData");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.EffectData = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let EffectData = class EffectData extends cc.Component {
      constructor() {
        super(...arguments);
        this.effects = [];
        this.phoenixFx = [];
        this.pumpkinFx = [];
        this.penguinEf = [];
        this.dragonBoatEf = [];
        this.rabbitEf = [];
        this.soccerEf = [];
        this.fishWaveBubble = null;
      }
    };
    __decorate([ property([ cc.Prefab ]) ], EffectData.prototype, "effects", void 0);
    __decorate([ property([ cc.Prefab ]) ], EffectData.prototype, "phoenixFx", void 0);
    __decorate([ property([ cc.Prefab ]) ], EffectData.prototype, "pumpkinFx", void 0);
    __decorate([ property([ cc.Prefab ]) ], EffectData.prototype, "penguinEf", void 0);
    __decorate([ property([ cc.Prefab ]) ], EffectData.prototype, "dragonBoatEf", void 0);
    __decorate([ property([ cc.Prefab ]) ], EffectData.prototype, "rabbitEf", void 0);
    __decorate([ property([ cc.Prefab ]) ], EffectData.prototype, "soccerEf", void 0);
    __decorate([ property(cc.Prefab) ], EffectData.prototype, "fishWaveBubble", void 0);
    EffectData = __decorate([ ccclass ], EffectData);
    exports.EffectData = EffectData;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-EffectMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "8b9b5rR2aVDn4ZUUiRxKtyH", "MT3SETB-EffectMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.EffectMgr = void 0;
    const MT3SETB_CatchRewardShow_1 = require("../../res/Common/script/MT3SETB-CatchRewardShow");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_BossComing_1 = require("./MT3SETB-BossComing");
    const MT3SETB_PickupRewardShow_1 = require("./MT3SETB-PickupRewardShow");
    const MT3SETB_RewardCircle_1 = require("./MT3SETB-RewardCircle");
    const MT3SETB_WheelDragonReward_1 = __importDefault(require("./MT3SETB-WheelDragonReward"));
    const MT3SETB_FishScrollReward_1 = __importDefault(require("./MT3SETB-FishScrollReward"));
    const MT3SETB_CycloneEffect_1 = __importDefault(require("./MT3SETB-CycloneEffect"));
    const MT3SETB_DinghyBombEffect_1 = __importDefault(require("./MT3SETB-DinghyBombEffect"));
    const MT3SETB_PhoenixBombEffect_1 = __importDefault(require("./MT3SETB-PhoenixBombEffect"));
    const MT3SETB_AwakenedKingCrabBombEffect_1 = __importDefault(require("./MT3SETB-AwakenedKingCrabBombEffect"));
    const MT3SETB_AwakenedKingOctopusBombEffect_1 = __importDefault(require("./MT3SETB-AwakenedKingOctopusBombEffect"));
    const MT3SETB_PumpkinEffect_1 = __importDefault(require("./MT3SETB-PumpkinEffect"));
    const {ccclass: ccclass} = cc._decorator;
    let EffectMgr = class EffectMgr extends cc.Component {
      constructor() {
        super();
        this.fishAmtPopupParent = null;
        this.fishCoinParent = null;
        this.gunRewardDisplayParent = null;
        this.phoenixFireBGEffect = null;
        this.resizeCbIndex = null;
        this.phoenixRefCount = 0;
        this.auraHeartsRefCount = 0;
        this._auraHeartsEffect = null;
        this.auraLightningRefCount = 0;
        this._auraLightningEffect = null;
        this.auraBlackFlameRefCount = 0;
        this._auraBlackFlameEffect = null;
        this.fishWaveTime = 0;
        this.isFishWaving = false;
        this.isPhoenixRewardShowPlaying = false;
        this.fishComing = null;
        this.bossComing = null;
        this.coinAddList = [];
        this.coinAddTime = 0;
        this.isfreezing = false;
      }
      onLoad() {
        var _a;
        MT3SETB_Comm_1.Comm.effectMgr = this;
        let uiLayer = null !== (_a = MT3SETB_Comm_1.Comm.node.uiLayer) && void 0 !== _a ? _a : cc.find("Canvas/Stage/Display/UILayer");
        let rewardsNode = uiLayer.getChildByName("Rewards");
        this.fishAmtPopupParent = rewardsNode.getChildByName("FishAmountPopup");
        this.fishCoinParent = rewardsNode.getChildByName("FishCoins");
        this.gunRewardDisplayParent = rewardsNode.getChildByName("GunRewardDisplay");
        this.phoenixFireBGEffect = cc.find("Canvas/Stage/Display/EffectLayer/phoenixFireEffect");
        null == this.resizeCbIndex && (this.resizeCbIndex = MT3SETB_Comm_1.Comm.app.registResizeCallback(this.onResize.bind(this)));
        this.onResize();
      }
      onDestroy() {
        MT3SETB_PickupRewardShow_1.PickupRewardShow.ackQueue.length = 0;
        MT3SETB_PickupRewardShow_1.PickupRewardShow.fishQueue.length = 0;
        MT3SETB_PickupRewardShow_1.PickupRewardShow.isPlaying = false;
        MT3SETB_PickupRewardShow_1.PickupRewardShow.ackQueue_MC.length = 0;
        MT3SETB_PickupRewardShow_1.PickupRewardShow.fishQueue_MC.length = 0;
        MT3SETB_PickupRewardShow_1.PickupRewardShow.isPlaying_MC = false;
        MT3SETB_CatchRewardShow_1.CatchRewardShow.ackQueue.length = 0;
        MT3SETB_CatchRewardShow_1.CatchRewardShow.isPlaying = false;
        null != this.resizeCbIndex && MT3SETB_Comm_1.Comm.app.cancelResizeCallback(this.resizeCbIndex);
        this.resizeCbIndex = null;
      }
      update(e) {
        this.coinAddUpdate(e);
        this.updateRewardInfo();
      }
      showRefund(e, t) {
        var o = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e);
        if (o) {
          var n = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.otherData.coinRefund[MT3SETB_Game_1.eCoinRefundNo.Normal]), i = MT3SETB_Comm_1.Comm.find("CoinNum", n, cc.Label), a = n.getComponent(cc.Animation);
          n.zIndex = MT3SETB_Game_1.eZIndex.Coin_2;
          n.parent = o.coinAdd;
          n.setPosition(cc.Vec2.ZERO);
          i.string = MT3SETB_Comm_1.Comm.getThousandsNum(t);
          this.coinAddList.push(n);
          a.once("finished", function() {
            n.destroy();
          });
        }
      }
      togglePhoenixScreenEdgeFireEffect(isToggle) {
        if (isToggle) {
          if (0 == this.phoenixRefCount) {
            MT3SETB_Comm_1.Comm.snd.playEffectByName("Phoenix_OutFire", true, true);
            this.phoenixFireBGEffect.active = true;
          }
          this.phoenixRefCount++;
        } else {
          this.phoenixRefCount--;
          if (0 == this.phoenixRefCount) {
            MT3SETB_Comm_1.Comm.snd.stopEffectByName("Phoenix_OutFire");
            this.phoenixFireBGEffect.active = false;
          }
        }
      }
      get auraHeartsEffect() {
        return this._auraHeartsEffect;
      }
      showScreenAuraHearts(isShow) {
        if (isShow) {
          if (0 == this.auraHeartsRefCount) {
            this._auraHeartsEffect = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.ScreenAuraHearts));
            this._auraHeartsEffect.setPosition(cc.Vec2.ZERO);
            this._auraHeartsEffect.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
            let auraSpines = this._auraHeartsEffect.getComponentsInChildren(sp.Skeleton);
            for (let spine of auraSpines) spine.setAnimation(0, "fish_meirenyu_kuang", true);
            this.onResize();
          }
          this.auraHeartsRefCount++;
        } else {
          this.auraHeartsRefCount--;
          if (0 == this.auraHeartsRefCount) {
            this._auraHeartsEffect.destroy();
            this._auraHeartsEffect = null;
          }
        }
      }
      get auraLightningEffect() {
        return this._auraLightningEffect;
      }
      showScreenAuraLightning(isShow) {
        if (isShow) {
          if (0 == this.auraLightningRefCount) {
            this._auraLightningEffect = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.ScreenAuraLightning));
            this._auraLightningEffect.setPosition(cc.Vec2.ZERO);
            this._auraLightningEffect.setParent(MT3SETB_Comm_1.Comm.node.uiLayer);
            let auraSpines = this._auraLightningEffect.getComponentsInChildren(sp.Skeleton);
            for (let spine of auraSpines) spine.setAnimation(0, "fish_sd2", true);
            MT3SETB_Comm_1.Comm.snd.playEffectByName("ThunderDragonElectricity", true, true);
            this.onResize();
          }
          this.auraLightningRefCount++;
        } else {
          this.auraLightningRefCount--;
          if (0 == this.auraLightningRefCount) {
            this._auraLightningEffect.destroy();
            this._auraLightningEffect = null;
            MT3SETB_Comm_1.Comm.snd.stopEffectByName("ThunderDragonElectricity");
          }
        }
      }
      get auraBlackFlameEffect() {
        return this._auraBlackFlameEffect;
      }
      showScreenAuraBlackFlame(isShow) {
        if (isShow) {
          if (0 == this.auraBlackFlameRefCount) {
            this._auraBlackFlameEffect = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.ScreenAuraBlackFlame));
            this._auraBlackFlameEffect.setPosition(cc.Vec2.ZERO);
            this._auraBlackFlameEffect.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
            let auraAnims = this._auraBlackFlameEffect.getComponentsInChildren(cc.Animation);
            for (let anim of auraAnims) anim.play();
            MT3SETB_Comm_1.Comm.snd.playEffectByName("RedDragon_OutFire", true, true);
            this.onResize();
          }
          this.auraBlackFlameRefCount++;
        } else {
          this.auraBlackFlameRefCount--;
          if (0 == this.auraBlackFlameRefCount) {
            this._auraBlackFlameEffect.destroy();
            this._auraBlackFlameEffect = null;
            MT3SETB_Comm_1.Comm.snd.stopEffectByName("RedDragon_OutFire");
          }
        }
      }
      showWakeupKingCrabEffect(hitData, fish) {
        var rate = Math.round(hitData.coin / hitData.bet);
        var turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        if (turret) {
          var i = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() === hitData.seat, a = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.WakeUpKingCrabEffect));
          a.parent = MT3SETB_Comm_1.Comm.node.effectLayer;
          a.setPosition(cc.Vec2.ZERO);
          let startPos = fish.node.convertToWorldSpaceAR(cc.Vec2.ZERO);
          a.getComponent(MT3SETB_AwakenedKingCrabBombEffect_1.default).init(turret, startPos, hitData, rate);
        }
      }
      showWakeupKingOctopusEffect(hitData, fish) {
        var rate = Math.round(hitData.coin / hitData.bet);
        var turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        if (turret) {
          var i = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() === hitData.seat, a = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.WakeupKingOctopusEffect));
          let startPos = fish.lockNode.convertToWorldSpaceAR(cc.Vec2.ZERO);
          a.parent = MT3SETB_Comm_1.Comm.node.effectLayer;
          a.setPosition(cc.Vec2.ZERO);
          a.getComponent(MT3SETB_AwakenedKingOctopusBombEffect_1.default).init(turret, startPos, hitData, rate);
        }
      }
      showDinghyBombFishEffect(hitData, fish, callback) {
        var rate = Math.round(hitData.coin / hitData.bet);
        var turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        if (turret) {
          var i = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() === hitData.seat, a = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.DinghyBombEffect));
          a.parent = MT3SETB_Comm_1.Comm.node.effectLayer;
          a.setPosition(cc.Vec2.ZERO);
          a.getComponent(MT3SETB_DinghyBombEffect_1.default).init(turret, hitData, rate, callback);
        }
      }
      showCycloneFishEffect(hitData, fish, callback) {
        var turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        if (turret) {
          var cycloneEffect = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.CycloneEffect));
          if (cycloneEffect) {
            var effect = cycloneEffect.getComponent(MT3SETB_CycloneEffect_1.default);
            effect.init(turret, fish, hitData, callback);
          }
        }
      }
      showFuwangCaishenEffect(hitData) {
        var fuwangEffect = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.FuwangEntrance));
        if (fuwangEffect) {
          fuwangEffect.parent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
          fuwangEffect.setPosition(new cc.Vec2(0, 0));
          this.scheduleOnce(function() {
            fuwangEffect && fuwangEffect.destroy();
          }, 3);
        }
      }
      showPumpkinEffect(hitData, fish) {
        var turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        if (turret) {
          var pumpkinBomb = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.PumpkinBomb));
          pumpkinBomb.parent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
          pumpkinBomb.setPosition(new cc.Vec2(0, 0));
          var pumpkinEffect = pumpkinBomb.getComponent(MT3SETB_PumpkinEffect_1.default);
          pumpkinEffect.init(fish, turret);
        }
      }
      showFortuneGodReward(hitData, fish, callback) {
        var rate = Math.round(hitData.coin / hitData.bet);
        var turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        if (turret) {
          var i = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() === hitData.seat, a = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.FortuneGodReward));
          a.parent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
          var fortuneGodReward = a.getComponent(MT3SETB_FishScrollReward_1.default);
          fortuneGodReward.init(rate, hitData.coin, fish, turret, callback);
        }
      }
      showWheelDragonReward(hitData, pos, callback) {
        var rate = Math.round(hitData.coin / hitData.bet);
        var turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        if (turret) {
          if (MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret() == turret) {
            turret.isMovingCrosshair = false;
            turret.lock(true, 60);
            turret.pauseNormalFiringState(false, false);
          }
          var a = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.WheelDragonReward));
          a.parent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
          var wheelDragonEffect = a.getComponent(MT3SETB_WheelDragonReward_1.default);
          wheelDragonEffect.init(rate, pos, turret, callback);
        }
      }
      showPhoenixBombEffect(hitData, fish) {
        var turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        if (turret) {
          var a = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.PhoenixBombEffect));
          a.setParent(MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent);
          a.getComponent(MT3SETB_PhoenixBombEffect_1.default).init(hitData, fish, turret);
        }
      }
      showScreamingTigerVortex(fish, eventId) {
        const showDuration = 2;
        var timeDelay = eventId == MT3SETB_Game_1.mtfFishEvent.ScreamingTigerStartVortex ? .5 : 1;
        var tigerVortex = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.ScreamingTigerVortex));
        tigerVortex.parent = MT3SETB_Comm_1.Comm.fishMgr.getUnderFishNode();
        let pt1 = fish.moveModule.getPositionAfterTime(timeDelay);
        var vortexPos = MT3SETB_Comm_1.Comm.transPos(tigerVortex.parent, MT3SETB_Comm_1.Comm.node.fishLayer, pt1);
        tigerVortex.setPosition(vortexPos);
        this.scheduleOnce(() => {
          tigerVortex.destroy();
        }, showDuration);
      }
      showBomb(fish) {
        var bombPrefab = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.lsEffectNo.Bomb));
        bombPrefab.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
        bombPrefab.setPosition(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, fish.node));
        this.scheduleOnce(function() {
          bombPrefab.destroy();
        }, .7);
      }
      showShuangCi() {
        var bombPrefab = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.lsEffectNo.ShuangCi));
        bombPrefab.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
        let dbAnim = bombPrefab.getComponentInChildren(dragonBones.ArmatureDisplay);
        dbAnim.removeEventListener(dragonBones.EventObject.COMPLETE);
        dbAnim.addEventListener(dragonBones.EventObject.COMPLETE, () => {
          bombPrefab.destroy();
        });
        dbAnim.playAnimation("newAnimation", 5);
      }
      showCommonFishDeath(fish, bulletAngle, hasKnockback) {
        let rad = cc.misc.degreesToRadians(bulletAngle), dir = cc.v2(-Math.sin(rad), Math.cos(rad));
        let cleanup = cc.callFunc(() => fish.pushToPool());
        if (hasKnockback) {
          const time1 = .15;
          const time2 = .25;
          let moveOff = cc.moveBy(time2, dir.mul(20)).easing(cc.easeIn(2));
          if (fish.fishAnims.length > 1) {
            if (fish.isRotateContainer) {
              let containerChildren = fish.fishAnims[0].node.children;
              for (let c of containerChildren) c.angle = bulletAngle - fish.node.angle;
            }
            let children = fish.fishAnims[1].node.children;
            for (let c of children) {
              c.angle = bulletAngle + 90 - fish.node.angle;
              let childShrink1 = cc.scaleTo(time1, .5).easing(cc.easeIn(2)), childShrink2 = cc.scaleTo(time2, 0).easing(cc.easeIn(2));
              c.runAction(cc.sequence(childShrink1, childShrink2));
            }
            let groupKnockBack = cc.moveBy(time1, dir.mul(210));
            fish.node.runAction(cc.sequence(groupKnockBack, moveOff, cleanup));
          } else {
            fish.node.angle = bulletAngle;
            let knockBack = cc.moveBy(time1, dir.mul(210)), shrink1 = cc.scaleTo(time1, .5).easing(cc.easeIn(2)), shrink2 = cc.scaleTo(time2, 0).easing(cc.easeIn(2));
            fish.node.runAction(cc.sequence(cc.spawn(shrink1, knockBack), cc.spawn(shrink2, moveOff), cleanup));
          }
        } else {
          const t1 = .3;
          const t2 = .15;
          if (fish.fishAnims.length > 1) {
            let children = fish.fishAnims[1].node.children;
            for (let c of children) {
              let childShrink = cc.scaleTo(t2, 0).easing(cc.easeIn(2));
              c.runAction(childShrink);
            }
            fish.node.runAction(cc.sequence(cc.delayTime(t1), cleanup));
          } else {
            let shrink = cc.scaleTo(t2, 0).easing(cc.easeIn(2));
            fish.node.runAction(cc.sequence(shrink, cleanup));
          }
        }
      }
      showBGSwitching(currBg, nextBg, forced = false) {
        if (currBg == nextBg) return;
        let cleanUp = function(bgNode, nextBg) {
          if (null == bgNode) return;
          bgNode.active = false;
          bgNode.destroy();
          nextBg.name != bgNode.name && MT3SETB_Comm_1.Comm.dataMgr.releaseBackground(bgNode);
        };
        if (forced) {
          nextBg.active = true;
          let nextBgSkels = nextBg.getComponentsInChildren(sp.Skeleton);
          for (let skel of nextBgSkels) {
            skel.setAnimation(0, "exit", false);
            skel.clearTrack(0);
          }
          cleanUp(currBg, nextBg);
        } else {
          nextBg.active = true;
          let nextBgSkels = nextBg.getComponentsInChildren(sp.Skeleton);
          for (let skel of nextBgSkels) skel.setAnimation(0, "enter", false);
          if (currBg) {
            let currBgSkels = currBg.getComponentsInChildren(sp.Skeleton);
            for (let skel of currBgSkels) {
              let trackEntry = skel.setAnimation(0, "exit", false);
              trackEntry && skel.setTrackCompleteListener(trackEntry, () => {
                cleanUp(currBg, nextBg);
              });
            }
          }
        }
      }
      showFishWave() {
        var e = this, t = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getOtherPf(MT3SETB_Game_1.eOtherNo.FishWave));
        t.setPosition(cc.Vec2.ZERO);
        t.zIndex = MT3SETB_Game_1.eZIndex.GameSystem;
        t.parent = MT3SETB_Comm_1.Comm.node.effectLayer;
        var o = cc.find("Tide/Waves", t), n = t.getComponent(cc.Animation);
        this.scheduleOnce(() => {
          e.isFishWaving = false;
          t.destroy();
        }, 2);
        this.isFishWaving = true;
        this.fishWaveTime = Date.now();
        n.play();
      }
      getBgImagePath() {
        return "Image";
      }
      showSpecFishComing(e) {}
      showBossComing(e) {
        let prefab;
        switch (e.warningType) {
         case 1:
          prefab = MT3SETB_Comm_1.Comm.dataMgr.getOtherPf(MT3SETB_Game_1.eOtherNo.BossWarningRed);
          break;

         case 2:
          prefab = MT3SETB_Comm_1.Comm.dataMgr.getOtherPf(MT3SETB_Game_1.eOtherNo.BossWarningPurple);
          break;

         case 3:
          prefab = MT3SETB_Comm_1.Comm.dataMgr.getOtherPf(MT3SETB_Game_1.eOtherNo.BossDebutt);
          break;

         case 4:
          prefab = MT3SETB_Comm_1.Comm.dataMgr.getOtherPf(MT3SETB_Game_1.eOtherNo.BisonComing);
          break;

         case 5:
          prefab = MT3SETB_Comm_1.Comm.dataMgr.getOtherPf(MT3SETB_Game_1.eOtherNo.HaiWangLaiXi);
          break;

         case 6:
          prefab = MT3SETB_Comm_1.Comm.dataMgr.getOtherPf(MT3SETB_Game_1.eOtherNo.JueXing);
        }
        let bossComing = cc.instantiate(prefab).getComponent(MT3SETB_BossComing_1.BossComing);
        bossComing.init();
        bossComing.play(e);
      }
      showGetCoinForFish(seat, fish, amount, fishPos, coinIndex, i = false, a = true, r = null, s = true, c = false) {
        this.showGetCoin(seat, amount, fishPos, coinIndex, i, a, r, s, c);
      }
      showGetCoin(e, t, o, n, i = false, a = true, r = null, s = true, c = false) {
        var effectMgr = this;
        var d = this;
        var p, h, f, m = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() === e, g = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e);
        n = cc.misc.clampf(n, 1, 7);
        if (g) {
          if (n >= 5) {
            this.showSpecialCoin(e, o, n - 4, i, s);
            return void MT3SETB_Comm_1.Comm.runTask(1.1, function() {
              d.showGetCoin(e, t, o, n - 3, i, a, r, s);
            });
          }
          a && t > 0 && MT3SETB_Comm_1.Comm.runTask(.42, function() {
            d.showCoinText(t, o, m || i);
          });
          var _ = MT3SETB_Comm_1.Comm.dataMgr.getCoin(n);
          if (_) {
            var y = g.goldCoinPosEL;
            p = _;
            h = o;
            f = MT3SETB_Game_1.eZIndex.Coin_1;
            p.parent = MT3SETB_Comm_1.Comm.node.effectLayer;
            p.setPosition(h);
            p.opacity = 255;
            p.zIndex = f;
            m || i || (p.opacity = 77);
            r && (y = r);
            var v = MT3SETB_Comm_1.Comm.node.effectLayer.convertToWorldSpaceAR(y), b = 6e-4 * o.sub(y).mag(), w = .5;
            _.children.forEach(function(e, t) {
              var o = e.position, a = cc.v3(_.convertToNodeSpaceAR(v)), r = o.sub(a), l = cc.v3(r.x / 18, r.y / 2.65), d = [ o, o.sub(l), o.add(a).mulSelf(.5), a.add(l), a ], p = c ? 150 : 50, h = c ? [ .12, .06, .06 ] : [ .12, .06, .03 ];
              e.opacity = 255;
              e.runAction(cc.sequence(cc.moveBy(h[0], 0, p).easing(cc.easeOut(2)), cc.moveBy(h[0], 0, -p).easing(cc.easeIn(2)), cc.moveBy(h[1], 0, p / 2).easing(cc.easeOut(2)), cc.moveBy(h[1], 0, -p / 2).easing(cc.easeIn(2)), cc.moveBy(h[2], 0, p / 5), cc.moveBy(h[2], 0, -p / 5), cc.callFunc(function() {
                if (t === _.childrenCount - 1) {
                  _.setPosition(MT3SETB_Comm_1.Comm.transPos(effectMgr.fishCoinParent, _));
                  _.parent = e;
                }
              })));
              c && (e.runAction(cc.moveBy(.48, MT3SETB_Comm_1.Comm.iRand(-150, 150), MT3SETB_Comm_1.Comm.iRand(-230, 0)).easing(cc.easeOut(2))), 
              w += .3);
              e.runAction(cc.sequence(cc.delayTime(w + .04 * t), cc.spawn(cc.cardinalSplineTo(b, d, .1).easing(cc.easeInOut(1.4)), cc.scaleTo(b, .6).easing(cc.easeIn(1.4))), cc.callFunc(function() {
                e.scale = 1;
                e.opacity = 0;
                d = null;
                e.setPosition(o);
                o = null;
                t === _.childrenCount - 1 && MT3SETB_Comm_1.Comm.dataMgr.setCoin(_);
                (m || i) && s && t % 3 == 0;
              })));
            });
            if ((m || i) && s) {
              var k = -1;
              switch (n) {
               case 1:
                k = 13;
                break;

               case 2:
                k = 14;
                break;

               case 3:
                k = 15;
                break;

               case 4:
                k = 16;
                break;

               default:
                k = 15;
              }
            }
          }
        }
      }
      showCoinText(e, t, o = true) {
        var n = MT3SETB_Comm_1.Comm.dataMgr.getCoin(0);
        n.parent = this.fishAmtPopupParent || MT3SETB_Comm_1.Comm.node.effectLayer;
        n.setPosition(t);
        n.opacity = 255;
        n.zIndex = MT3SETB_Game_1.eZIndex.Coin_3;
        o || (n.opacity = 77);
        n.getComponentInChildren(cc.Label).string = "+" + MT3SETB_Comm_1.Comm.getThousandsNum(e);
        n.runAction(cc.sequence(cc.moveBy(.3, cc.v2(0, 60)).easing(cc.easeOut(2)), cc.delayTime(.2), cc.fadeOut(.5).easing(cc.easeIn(2)), cc.callFunc(function() {
          MT3SETB_Comm_1.Comm.dataMgr.setCoin(n);
        })));
      }
      showCoinNum(e, t, o, n = 0) {
        if (!(t <= 0)) {
          var i = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() === e, a = MT3SETB_Comm_1.Comm.dataMgr.getCoin(0), r = cc.find("Canvas/Stage").getContentSize();
          a.parent = this.fishAmtPopupParent;
          a.setPosition(o);
          a.opacity = 0;
          a.zIndex = MT3SETB_Game_1.eZIndex.Coin_3;
          a.x = cc.misc.clampf(a.x, -r.width / 2 + 100, r.width / 2 - 100);
          a.y = cc.misc.clampf(a.y, -r.height / 2 + 40, r.height / 2 - 100);
          a.getComponentInChildren(cc.Label).string = "+" + MT3SETB_Comm_1.Comm.getThousandsNum(t);
          a.runAction(cc.sequence(cc.delayTime(n), cc.callFunc(function() {
            a.opacity = i ? 255 : 77;
          }), cc.moveBy(.3, cc.v2(0, 60)).easing(cc.easeOut(2)), cc.delayTime(.4), cc.fadeOut(.5).easing(cc.easeIn(2)), cc.callFunc(function() {
            return MT3SETB_Comm_1.Comm.dataMgr.setCoin(a);
          })));
        }
      }
      showSpecialCoin(e, t, o, n = false, i = true) {
        var a, r, s, c = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() === e, d = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e);
        if (o = cc.misc.clampf(o, 1, 8), d) {
          var p = MT3SETB_Comm_1.Comm.dataMgr.getCoin(o + 4);
          if (p) {
            var h = p.getComponent(cc.Animation) || p.getComponentInChildren(cc.Animation);
            a = p, r = t, s = MT3SETB_Game_1.eZIndex.Coin_2, a.parent = MT3SETB_Comm_1.Comm.node.effectLayer, 
            a.setPosition(r), a.opacity = 0, a.zIndex = s, p.runAction(cc.sequence(cc.delayTime(.15), cc.callFunc(function() {
              if ((c || n) && i && o >= 4 && o <= 6) {
                var e = d.aheadPosEL, t = .45;
                if (6 == o) {
                  t += 1.35;
                  var a = p.getChildByName("BigCoin"), r = new cc.Vec2(MT3SETB_Comm_1.Comm.iRand(-250, 250), MT3SETB_Comm_1.Comm.iRand(-400, -50));
                  r.x > 450 - p.x ? r.x = 450 - p.x : r.x < -450 - p.x && (r.x = -450 - p.x), r.y > 250 - p.y ? r.y = 250 - p.y : r.y < -250 - p.y && (r.y = -250 - p.y), 
                  a.active = true, a.setPosition(cc.Vec2.ZERO), p.getChildByName("a_effect_01").setPosition(cc.Vec2.ZERO), 
                  p.getChildByName("ForestDance_Ray_01").setPosition(cc.Vec2.ZERO), a.runAction(cc.sequence(cc.moveBy(.4, 0, 200).easing(cc.easeOut(2)), cc.moveBy(.4, 0, -200).easing(cc.easeIn(2)), cc.moveBy(.2, 0, 100).easing(cc.easeOut(2)), cc.moveBy(.2, 0, -100).easing(cc.easeIn(2)), cc.moveBy(.1, 0, 40), cc.moveBy(.1, 0, -40), cc.callFunc(function() {
                    p.getChildByName("a_effect_01").setPosition(r), p.getChildByName("ForestDance_Ray_01").setPosition(r);
                  }))), a.runAction(cc.moveBy(1.5, r).easing(cc.easeOut(2))), e = e.sub(r);
                } else 5 === o && (p.scale = .7);
                p.runAction(cc.sequence(cc.delayTime(t), cc.callFunc(function() {
                  p.runAction(cc.moveTo(.28, e).easing(cc.easeInOut(1.4)));
                })));
              }
              p.opacity = c || n ? 255 : 77, h.play(), h.once("finished", function() {
                p.getNumberOfRunningActions() > 0 && p.stopAllActions(), MT3SETB_Comm_1.Comm.dataMgr.setCoin(p);
              });
            })));
          }
        }
      }
      showRandomCoinInScene(e, t, o, n = false, i = false, a = null) {
        var r = this;
        MT3SETB_Comm_1.Comm.runTask(o, function() {
          for (var o, s, c = cc.view.getDesignResolutionSize(), l = Math.floor(c.width / 2), d = Math.floor(c.height / 2), p = a || [ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4 ], h = 0; h < t; ++h) o = cc.v2(MT3SETB_Comm_1.Comm.iRand(100 - l, l - 100), MT3SETB_Comm_1.Comm.iRand(80 - d, d - 80)), 
          s = p[MT3SETB_Comm_1.Comm.iRand(0, p.length - 1)], r.showGetCoin(e, 0, o, s, n, false, i ? cc.Vec2.ZERO : null);
        });
      }
      playUserCoinNumAnim(e, t) {
        if (t > 0) {
          var o = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e);
          if (o) {
            if (o.isDrilling) return;
            var n = MT3SETB_Comm_1.Comm.dataMgr.getCoinAddNum(MT3SETB_Game_1.eCoinAddNo.Normal);
            if (n) {
              var i = n.getComponent(cc.Animation);
              n.getComponent(cc.Label).string = "+" + MT3SETB_Comm_1.Comm.getThousandsNum(t), 
              n.zIndex = MT3SETB_Game_1.eZIndex.Coin_1, n.parent = o.coinAdd, n.setPosition(cc.Vec2.ZERO), 
              this.coinAddList.push(n), i.once("finished", function() {
                MT3SETB_Comm_1.Comm.dataMgr.setCoinAddNum(n);
              });
            }
          }
        }
      }
      coinAddUpdate(e) {
        if (this.coinAddTime -= e, !(this.coinAddTime > 0)) for (var t = 0; t < this.coinAddList.length; ++t) {
          var o = this.coinAddList[0].getComponent(cc.Animation);
          if (o) {
            o.play(), this.coinAddList.splice(t, 1), this.coinAddTime = .3;
            break;
          }
        }
      }
      rewardCircle(e, t, o, n, i, a, s, c) {
        var l = MT3SETB_Comm_1.Comm.dataMgr.getReward(e).getComponent(MT3SETB_RewardCircle_1.RewardCircle);
        l && l.init(n, e, t, o, Date.now(), 6, i, a, null, s, c);
        var d = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(t);
        if (d) {
          var p = d.getRewardInfo();
          MT3SETB_Comm_1.Comm.runTask(0, function() {
            p.list.push(l), p.list.sort(function(e, t) {
              return e.getWeight() === t.getWeight() ? e.getTime() - t.getTime() : t.getWeight() - e.getWeight();
            });
          });
        }
        return l;
      }
      rewardRedCircle(e, t, o, n, i, a, s) {
        var c = MT3SETB_Comm_1.Comm.dataMgr.getRedenvelopeReward().getComponent(MT3SETB_RewardCircle_1.RewardCircle);
        c && c.init(n, e, t, o, Date.now(), 6, i, 0, null, a, s);
        var l = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(t);
        if (l) {
          var d = l.getRewardInfo();
          MT3SETB_Comm_1.Comm.runTask(0, function() {
            d.list.push(c), d.list.sort(function(e, t) {
              return e.getWeight() === t.getWeight() ? e.getTime() - t.getTime() : t.getWeight() - e.getWeight();
            });
          });
        }
        return c;
      }
      updateRewardInfo() {
        if (MT3SETB_Comm_1.Comm.gameCtrl.isPageVisible) for (var e = function(e) {
          var t = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e);
          if (t) {
            var o = t.getRewardInfo();
            if (o.list.length > 0) {
              var n = o.isUsed, i = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e).getRewardIndex(), a = o.list.shift();
              a && (n[i] && n[i].node.destroy(), a.baseShow(), n[i] = a, a.node.once("resetReward", function() {
                a.node.destroy(), n[i] = null;
              }, a));
            }
          }
        }, t = 0; t < MT3SETB_Comm_1.Comm.gameCtrl.turretMap.length; ++t) e(t); else this.resetRewardInfo();
      }
      resetRewardInfo() {
        for (var e = 0; e < MT3SETB_Comm_1.Comm.gameCtrl.turretMap.length; ++e) {
          var t = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e);
          if (t) {
            for (var o = t.getRewardInfo(), n = 0, i = o.list.length; n < i; ++n) {
              var a = o.list.shift();
              null === a || void 0 === a ? void 0 : a.node.destroy();
            }
            o.index.length = 0;
          }
        }
      }
      playLevelUp(e) {
        var t = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        if (t) {
          var o = MT3SETB_Comm_1.Comm.dataMgr.getLevelupShow();
          if (o) {
            cc.find("LevelNode/label", o).getComponent(cc.Label).string = e.toString(), cc.find("LevelNodeEF01/labelEF01", o).getComponent(cc.Label).string = e.toString(), 
            cc.find("LevelNodeEF02/labelEF02", o).getComponent(cc.Label).string = e.toString();
            var n = o.getComponent(cc.Animation);
            n && (n.play(), n.once("finished", function() {
              return o.destroy();
            })), o.zIndex = -1, o.parent = t.rewardPosNode, o.setPosition(cc.Vec2.ZERO);
          }
        }
      }
      getSpecialBG(e) {
        var t = null;
        switch (e) {
         case "PhoenixBG":
          t = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getPhoenixFx(MT3SETB_Game_1.ePhoenixFx.BG));
        }
        return t;
      }
      setSpecialBG(e, t) {
        var o = MT3SETB_Comm_1.Comm.node.shadowLayer, n = o.getChildByName(e);
        if (true === t) {
          if (!n) {
            var i = 1;
            "PhoenixBG" === e && (i = .1), (n = this.getSpecialBG(e)).opacity = 0, n.zIndex = cc.macro.MIN_ZINDEX, 
            n.name = e, n.parent = o, n.runAction(cc.sequence(cc.fadeIn(i).easing(cc.easeIn(1.5)), cc.callFunc(function() {
              return MT3SETB_Comm_1.Comm.node.bgLayer.opacity = 0;
            })));
          }
        } else n ? (n.name = e + "__", n.runAction(cc.sequence(cc.callFunc(function() {
          return MT3SETB_Comm_1.Comm.node.bgLayer.opacity = 255;
        }), cc.fadeOut(1).easing(cc.easeIn(1.5)), cc.callFunc(function() {
          n.destroy();
        })))) : MT3SETB_Comm_1.Comm.node.bgLayer.opacity = 255;
      }
      showPhoenixIce(e, t, o) {
        var n = this, i = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getPhoenixFx(MT3SETB_Game_1.ePhoenixFx.Ice)), a = i.getComponent(cc.Animation);
        i.parent = MT3SETB_Comm_1.Comm.node.effectLayer;
        var r = t.add(cc.v2(MT3SETB_Comm_1.Comm.iRand(200, 300), 0).rotate(2 * Math.PI * Math.random()));
        r.x = cc.misc.clampf(r.x, -450, 450), r.y = cc.misc.clampf(r.y, -230, 230), i.setPosition(r), 
        a.play("Phoenix_GoldenCrystal"), a.once("finished", function() {
          a.play("Phoenix_GoldenCrystal_Explosion"), MT3SETB_Comm_1.Comm.runTask(1, function() {
            n.showSpecialCoin(e, r, 4, true, o), MT3SETB_Comm_1.Comm.runTask(.7, function() {
              n.showGetCoin(e, 0, r, 4);
            });
          }), MT3SETB_Comm_1.Comm.runTask(.8, function() {});
        }), MT3SETB_Comm_1.Comm.runTask(3, function() {
          i && i.destroy();
        });
      }
      playPhoenixRewardShow(e, t, o, n, i, a, r) {
        var s, c = this;
        s = i < 700 ? 3 : i < 800 ? 4 : 5;
        var d = [ cc.v2(1e3, 320), cc.v2(1e3, 160), cc.v2(1e3, 0), cc.v2(1e3, -160), cc.v2(1e3, -320) ], p = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getPhoenixFx(MT3SETB_Game_1.ePhoenixFx.Counter));
        p.position = cc.v3(0, 200), p.parent = MT3SETB_Comm_1.Comm.node.rewardLayer, p.zIndex = 50;
        var h = cc.find("Block/Coin", p), f = cc.find("Block/Money", p).getComponent(cc.Label), m = h.getComponent(cc.Animation), g = 0, _ = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getPhoenixFx(MT3SETB_Game_1.ePhoenixFx.Egg)), y = cc.find("egg/phenix_case/label", _).getComponent(cc.Label), v = _.getComponent(cc.Animation);
        _.position = cc.v3(0, 0), _.parent = MT3SETB_Comm_1.Comm.node.rewardLayer, _.zIndex = 100;
        var b = [ cc.find("egg/phenix_case/Level_01", _), cc.find("egg/phenix_case/Level_02", _), cc.find("egg/Level_03", _) ], w = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getPhoenixFx(MT3SETB_Game_1.ePhoenixFx.Bird));
        w.position = cc.v3(0, -1e3), w.parent = MT3SETB_Comm_1.Comm.node.effectLayer, w.zIndex = 10;
        var k = a, S = 0, C = function(e, t) {
          return t.repeat(e);
        }, N = MT3SETB_Comm_1.Comm.node.effectLayer.runAction(C(s, cc.sequence(cc.delayTime(.5), cc.callFunc(function() {
          for (var n = cc.v2(), a = cc.v2(); Math.abs(n.y - a.y) <= .001; ) n = MT3SETB_Comm_1.Comm.rItem(d).clone(), 
          a = MT3SETB_Comm_1.Comm.rItem(d).clone();
          if (n.x *= k, a.x *= -1 * k, S += 1, k *= -1, w.setPosition(n), w.opacity = 255, 
          w.angle = cc.Vec2.UP.signAngle(a.sub(n)) * cc.macro.DEG, w.runAction(cc.sequence(cc.callFunc(function() {}), cc.moveTo(1.2, a).easing(cc.easeIn(1.5)), cc.fadeOut(.12))), 
          w.runAction(cc.sequence(cc.delayTime(.6), cc.callFunc(function() {
            y.string = S.toFixed(), v.play(v.getClips()[2].name);
          }))), N.setSpeed && N.getSpeed) {
            var B = 1.3 * N.getSpeed();
            N.setSpeed(Math.min(B, 4));
          }
          if (p) {
            var T = g, P = g + i / s * t, L = 1;
            g = P;
            var I = C(58, cc.sequence(cc.delayTime(1.2 / 58), cc.callFunc(function() {
              var e = MT3SETB_Comm_1.Comm.lerp(T, P, L / 58);
              t >= 1 && (e = Math.floor(e)), f.string = MT3SETB_Comm_1.Comm.getThousandsNum(Math.min(e, o)), 
              L = Math.min(L + 1, 58);
            }))).easing(cc.easeIn(1.5));
            p.runAction(cc.sequence(cc.delayTime(2.8), cc.callFunc(function() {
              var e = f.node.scale, t = cc.sequence(cc.scaleTo(1.2, 2.2 * e).easing(cc.easeIn(1.5)), cc.delayTime(.35), cc.callFunc(function() {
                _ && (2 === S && (b[0].active = true), 3 === S && (b[1].active = true), 4 === S && (b[2].active = true));
              }), cc.delayTime(.35), cc.scaleTo(.08, e));
              f.node.stopAllActions(), f.node.runAction(I), f.node.runAction(t);
            })));
          }
          var O = 0, R = cc.find("PhoenixBG", MT3SETB_Comm_1.Comm.node.shadowLayer);
          MT3SETB_Comm_1.Comm.runTask({
            times: 10,
            dt: .12,
            delay: .4,
            target: c
          }, function() {
            var t = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getPhoenixFx(MT3SETB_Game_1.ePhoenixFx.Bomb)), o = t.getComponent(cc.Animation), i = n.lerp(a, ++O / 10), r = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, h);
            t.setPosition(i), t.parent = MT3SETB_Comm_1.Comm.node.effectLayer, t.angle = MT3SETB_Comm_1.Comm.iRand(0, 360), 
            1 === O && MT3SETB_Comm_1.Comm.runTask(.7, function() {}), R && R.runAction(cc.sequence(cc.delayTime(.4), cc.callFunc(function() {
              R && MT3SETB_Comm_1.Comm.shakeNode(R, 1.2, 20, 15);
            }))), MT3SETB_Comm_1.Comm.runTask({
              delay: 1.15,
              target: o
            }, function() {
              MT3SETB_Comm_1.Comm.effectMgr.showGetCoin(e, -1, i, MT3SETB_Comm_1.Comm.iRand(2, 4), true, false, r, false);
            }), MT3SETB_Comm_1.Comm.runTask({
              delay: 1.65,
              target: o
            }, function() {
              var e = m.getClips();
              e && !m.getAnimationState(e[1].name).isPlaying && (m.scheduleOnce(function() {
                return m.play(e[0].name);
              }, 1), m.play(e[1].name)), 10 === O;
            }), o.once("finished", function() {
              t.destroy();
            });
          }), S >= s && w.runAction(cc.sequence(cc.delayTime(3.7), cc.callFunc(function() {
            var e = 2 + Math.max(.3 - .2, 0);
            w.runAction(cc.sequence(cc.fadeOut(.2).easing(cc.easeIn(1.5)), cc.callFunc(function() {
              return w.destroy();
            }))), _ && _.runAction(cc.sequence(cc.delayTime(1.8), cc.fadeOut(.2).easing(cc.easeIn(1.5)), cc.callFunc(function() {
              return _.destroy();
            }))), p && p.runAction(cc.sequence(cc.callFunc(function() {
              return cc.find("fire", p).active = true;
            }), cc.delayTime(1.8), cc.moveTo(.3, cc.Vec2.ZERO).easing(cc.easeIn(1.5)), cc.callFunc(function() {
              return p.destroy();
            }))), MT3SETB_Comm_1.Comm.runTask({
              delay: e,
              target: c
            }, function() {
              var e = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getPhoenixFx(MT3SETB_Game_1.ePhoenixFx.Main)), t = cc.find("Panel/Money", e).getComponent(cc.Label), n = e.getComponent(cc.Animation);
              t.string = MT3SETB_Comm_1.Comm.getThousandsNum(o), e.parent = MT3SETB_Comm_1.Comm.node.effectLayer, 
              e.zIndex = 30, n.play(n.getClips()[0].name), n.on("finished", function() {
                var t = n.getClips(), o = n.currentClip.name;
                o === t[0].name ? n.play(t[1].name) : o === t[1].name && (MT3SETB_Comm_1.Comm.snd.stopEffect(70), 
                r ? (n.off("finished"), r(e, n)) : e.destroy());
              });
            });
          })));
        }), cc.delayTime(2.7))));
      }
      showGetBigCoin(e, t, o) {
        MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e) ? (this.showSpecialCoin(e, t, 4), this.scheduleOnce(function() {
          o && o();
        }, 1.2)) : o && o();
      }
      showGetRedEnvelope(e, t, o) {
        var n = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e);
        if (n) {
          var i = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, n.getRewardPosNode()), a = MT3SETB_Comm_1.Comm.dataMgr.getRedEnvelope_CNY();
          a.angle = MT3SETB_Comm_1.Comm.rInt(10, 20) * MT3SETB_Comm_1.Comm.rItem([ -1, 1 ]), 
          a.setParent(MT3SETB_Comm_1.Comm.node.effectLayer), a.setPosition(t), a.setScale(1.4), 
          a.zIndex = 200;
          var r = MT3SETB_Comm_1.Comm.get(a, "coinFx");
          r.active = true, MT3SETB_Comm_1.Comm.playAnime(r, "ef_coin_2"), cc.tween(a).delay(1).to(.6, {
            position: cc.v3(i),
            scale: .4
          }, {
            easing: function(e) {
              return Math.pow(e, 2);
            }
          }).call(function() {
            o && o(), a.destroy();
          }).start();
        } else o && o();
      }
      showGetRichBag(e, t, o) {
        var n = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e);
        if (n) {
          var i = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, n.getRewardPosNode()), a = MT3SETB_Comm_1.Comm.dataMgr.getRichBag_CNY();
          a.setParent(MT3SETB_Comm_1.Comm.node.effectLayer), a.setPosition(t), a.zIndex = 250;
          var r = MT3SETB_Comm_1.Comm.get(a, "coinFx");
          r.active = true, MT3SETB_Comm_1.Comm.playAnime(r, "ef_coin_4"), cc.tween(a).delay(1).to(.6, {
            position: cc.v3(i),
            scale: .5
          }, {
            easing: function(e) {
              return 1 - Math.pow(1 - e, 2);
            }
          }).delay(.2).call(function() {
            o && o(), a.destroy();
          }).start();
        } else o && o();
      }
      playCatchRewardShow(e) {
        true !== MT3SETB_CatchRewardShow_1.CatchRewardShow.isPlaying ? MT3SETB_CatchRewardShow_1.CatchRewardShow.new().play(e) : MT3SETB_CatchRewardShow_1.CatchRewardShow.ackQueue.push(e);
      }
      shootFreeBeam(e, t, o, i) {}
      onResize() {
        let ds = cc.view.getDesignResolutionSize(), vs = cc.view.getVisibleSize(), width = ds.width, height = Math.min(vs.height, ds.height), scale = Math.min(1, vs.height / ds.height);
        this.phoenixFireBGEffect.children[2].x = .5 * -width / scale;
        this.phoenixFireBGEffect.children[3].x = .5 * width / scale;
        this._auraHeartsEffect && (this._auraHeartsEffect.scaleX = 1 / scale);
        this._auraLightningEffect && (this._auraLightningEffect.scaleX = 1 / scale);
        this._auraBlackFlameEffect && (this._auraBlackFlameEffect.scaleX = 1 / scale);
      }
    };
    EffectMgr = __decorate([ ccclass ], EffectMgr);
    exports.EffectMgr = EffectMgr;
    cc._RF.pop();
  }, {
    "../../res/Common/script/MT3SETB-CatchRewardShow": "MT3SETB-CatchRewardShow",
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-AwakenedKingCrabBombEffect": "MT3SETB-AwakenedKingCrabBombEffect",
    "./MT3SETB-AwakenedKingOctopusBombEffect": "MT3SETB-AwakenedKingOctopusBombEffect",
    "./MT3SETB-BossComing": "MT3SETB-BossComing",
    "./MT3SETB-CycloneEffect": "MT3SETB-CycloneEffect",
    "./MT3SETB-DinghyBombEffect": "MT3SETB-DinghyBombEffect",
    "./MT3SETB-FishScrollReward": "MT3SETB-FishScrollReward",
    "./MT3SETB-PhoenixBombEffect": "MT3SETB-PhoenixBombEffect",
    "./MT3SETB-PickupRewardShow": "MT3SETB-PickupRewardShow",
    "./MT3SETB-PumpkinEffect": "MT3SETB-PumpkinEffect",
    "./MT3SETB-RewardCircle": "MT3SETB-RewardCircle",
    "./MT3SETB-WheelDragonReward": "MT3SETB-WheelDragonReward"
  } ],
  "MT3SETB-EffekseerComponent": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "c7fd0MPtmpLRIhg24MBYrce", "MT3SETB-EffekseerComponent");
    cc._RF.pop();
  }, {} ],
  "MT3SETB-EffekseerCore": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "69f5d5xOBxE6p1/35Sv0kWY", "MT3SETB-EffekseerCore");
    cc._RF.pop();
  }, {} ],
  "MT3SETB-EffekseerPlayOnLoad": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "2daf0ZRNKVPcaZFh4sN22dm", "MT3SETB-EffekseerPlayOnLoad");
    cc._RF.pop();
  }, {} ],
  "MT3SETB-EgretFishPathUtil": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "46588LFs6BPfalikeszYqrU", "MT3SETB-EgretFishPathUtil");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.EgretFishPathUtil = void 0;
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const MT3SETB_utils2_1 = require("../../framework/framework/MT3SETB-utils2");
    const MT3SETB_TweenManager_1 = require("./../MT3SETB-TweenManager");
    class FishStat_Phase {}
    class fishDataTween {}
    class FishStat_Tween {
      constructor() {
        this.phases = new Array();
      }
    }
    class EgretFishPathUtil {
      static Lerp(a, b, t) {
        return a + (b - a) * MT3SETB_utils2_1.limit(t, 0, 1);
      }
      static initPath(fish) {
        if (fish._freeGroup) {
          fish.offset.x = MT3SETB_utils2_1.randFloat(-40, 40);
          fish.offset.y = MT3SETB_utils2_1.randFloat(-40, 40);
          fish._nextOffset.x = MT3SETB_utils2_1.randFloat(-40, 40);
          fish._nextOffset.y = MT3SETB_utils2_1.randFloat(-40, 40);
          fish.learp = 0;
        }
        const index = this.getIndexByTime(fish, 0);
        let pos = this.getPos(fish, index);
        fish.node.setPosition(fish.checkPathRatio(pos));
        let faceDir = this.getPos(fish, index + 1).sub(pos).normalizeSelf();
        let rot = Math.atan2(faceDir.y, faceDir.x);
        let rot_angle = rot * (180 / Math.PI);
        fish.node.angle = rot_angle - 90;
        fish._lastIndex = index > 0 ? index - 1 : 0;
        fish.lastPos = pos.sub(faceDir);
      }
      static updatePath(fish, dt) {
        let index = this.getIndexByTime(fish, dt);
        fish._elapsed < 0 ? fish.setOpacity(0) : fish.setOpacity(255);
        fish._lastIndex = index;
        if (index >= fish._points.length) {
          fish.setOpacity(0);
          fish.pathEnd = true;
          fish.nextFrame(function() {
            return MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, false, false);
          });
          return;
        }
        let lastPos = fish.node.getPosition();
        let pos = fish.checkPathRatio(this.getPos(fish, index));
        if (fish._freeGroup) {
          pos.x += fish.offset.x + (fish._nextOffset.x - fish.offset.x) * EgretFishPathUtil.Lerp(0, 1, fish.learp / 120);
          pos.y += fish.offset.y + (fish._nextOffset.y - fish.offset.y) * EgretFishPathUtil.Lerp(0, 1, fish.learp / 120);
        }
        if (lastPos.fuzzyEquals(pos, .01)) return;
        fish.learp++;
        if (fish._freeGroup && fish.learp > 120) {
          fish.offset.x = fish._nextOffset.x;
          fish.offset.y = fish._nextOffset.y;
          fish._nextOffset.x = MT3SETB_utils2_1.randFloat(-40, 40);
          fish._nextOffset.y = MT3SETB_utils2_1.randFloat(-40, 40);
          fish.learp = 0;
        }
        fish.node.setPosition(cc.v2(pos.x, pos.y));
      }
      static getElapsedIndex(fish, dt, debug = false) {
        fish._elapsed += dt;
        let elapsed = fish._elapsed;
        return Math.max(Math.floor(elapsed * fish._speedRatio), 0);
      }
      static getPos(fish, index) {
        index = index >= 0 && index < fish._points.length ? index : fish._points.length - 1;
        let x = fish._points[index].x, y = fish._points[index].y;
        return cc.v2(x, y);
      }
      static getIndexByTime(fish, dt, debug = false) {
        let index = this.getElapsedIndex(fish, dt, debug);
        if (0 == index || null == fish._tween || 0 == fish._tween.delta) return index;
        let elapsed = fish._elapsed;
        let elapsed_time = elapsed - fish._delay;
        let t = elapsed_time % fish._tween.delta;
        let b = Math.floor(elapsed_time / fish._tween.delta) * fish._tween.delta;
        for (var i = 0; i < fish._tween.phases.length; i++) {
          let phase = fish._tween.phases[i];
          if (t > phase.delta) continue;
          let d = phase.delta;
          let c = d;
          elapsed_time = MT3SETB_TweenManager_1.tweenManager.Call(phase.trans, phase.eases, t, b, c, d);
          break;
        }
        t = elapsed_time % fish._tween.delta;
        for (var i = 0; i < fish._tween.phases.length; i++) {
          let phase = fish._tween.phases[i];
          if (t <= 0) break;
          let weight = phase.weight / fish._tween.weight;
          let dweight = fish._tween.delta * weight;
          let rate = dweight / phase.delta;
          t >= phase.delta ? elapsed_time += phase.delta * (rate - 1) : elapsed_time += t * (rate - 1);
          t -= phase.delta;
        }
        let newIdx = Math.floor(elapsed_time * fish._speedRatio);
        return newIdx;
      }
      static updateRotation(fish, dir, learp = true) {
        if (0 != dir.x || 0 != dir.y) {
          let newAngle = Math.atan2(dir.y, dir.x);
          newAngle *= 180 / Math.PI;
          let isUpFish;
          let fishRotation = fish.node.angle + 90;
          let duilidian = 180;
          let rotationDushu = 0;
          if (fishRotation > 0) {
            duilidian = fishRotation - 180;
            if (newAngle < fishRotation && newAngle > duilidian) {
              isUpFish = false;
              rotationDushu = fishRotation - newAngle;
            } else if (newAngle > fishRotation || newAngle < duilidian) {
              isUpFish = true;
              rotationDushu = newAngle > 0 ? newAngle - fishRotation : 360 + newAngle - fishRotation;
            }
          } else if (fishRotation < 0) {
            duilidian = 180 + fishRotation;
            if (newAngle > fishRotation && newAngle < duilidian) {
              isUpFish = true;
              rotationDushu = newAngle - fishRotation;
            } else if (newAngle < fishRotation || newAngle > duilidian) {
              isUpFish = false;
              rotationDushu = newAngle > 0 ? 360 + fishRotation - newAngle : fishRotation - newAngle;
            }
          } else if (newAngle > 0) {
            isUpFish = true;
            rotationDushu = newAngle - fishRotation;
          } else if (newAngle < 0) {
            isUpFish = false;
            rotationDushu = fishRotation - newAngle;
          }
          rotationDushu /= 30;
          newAngle = isUpFish ? fishRotation + rotationDushu : fishRotation - rotationDushu;
          fish.node.angle = newAngle - 90;
        }
      }
      addTween(n, fps_, frames_, weight_, eases_, trans_) {
        null == n._tweens && (n._tweens = new Array());
        let Tween = {
          fps: fps_,
          frames: frames_,
          weight: weight_,
          eases: eases_,
          trans: trans_
        };
        n._tweens.push(Tween);
      }
      setTween(n) {
        if (null == n._tweens) {
          n._tween = null;
          return;
        }
        n._tween = new FishStat_Tween();
        n._tween.phases = [];
        let total_delta = 0;
        let total_weight = 0;
        let fps = n._tweens[0].fps;
        for (var i = 0; i < n._tweens.length; i++) {
          let info = n._tweens[i];
          var delta = 1 * info.frames / fps * .5;
          total_delta += delta;
          total_weight += info.weight;
          var tmp = new FishStat_Phase();
          tmp.delta = delta;
          tmp.weight = info.weight;
          tmp.trans = info.trans;
          tmp.eases = info.eases;
          n._tween.phases.push(tmp);
        }
        n._tween.delta = total_delta;
        n._tween.weight = total_weight;
        n._tweens = null;
      }
    }
    exports.EgretFishPathUtil = EgretFishPathUtil;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm",
    "../../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "./../MT3SETB-TweenManager": "MT3SETB-TweenManager"
  } ],
  "MT3SETB-ExchangeChip": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "90f870z6glNsZaTZG2zVoWW", "MT3SETB-ExchangeChip");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ExchangeChip = void 0;
    const MT3SETB_Comm_1 = require("../../../../script/MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let ExchangeChip = class ExchangeChip extends cc.Component {
      constructor() {
        super();
        this.image = null;
        this.amount = null;
        this.image = null;
        this.amount = null;
        this.mode = 0;
        this.chipNo = 0;
        this.chipAmount = 0;
      }
      start() {}
      init(e, t, o) {
        this.mode = e;
        this.chipNo = t;
        this.chipAmount = o;
        this.setting();
      }
      setting() {
        MT3SETB_Comm_1.Comm.commonTransfer.setImage(this.image, this.chipNo.toString().substr(0, 5) + "Chip");
        0 == this.mode ? this.chipUpdate(this.chipNo) : 1 == this.mode && (this.amount.string = "x1");
      }
      chipUpdate(e) {
        if (e == this.chipNo) {
          var t = MT3SETB_Comm_1.Comm.commonTransfer.getClientChipData();
          if (t) {
            var o = t.chips[e] ? t.chips[e].amount : 0, i = o >= this.chipAmount ? "#FFFFFF" : "#FF6341";
            this.amount.string = "<color=" + i + ">" + o + "</c><color=#FFFFFF>/" + this.chipAmount + "</c>";
          }
        }
      }
    };
    __decorate([ property(cc.Sprite) ], ExchangeChip.prototype, "image", void 0);
    __decorate([ property(cc.RichText) ], ExchangeChip.prototype, "amount", void 0);
    ExchangeChip = __decorate([ ccclass ], ExchangeChip);
    exports.ExchangeChip = ExchangeChip;
    cc._RF.pop();
  }, {
    "../../../../script/MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-ExchangeItem": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "4462eCkDUZIG4WNB5CL2CcC", "MT3SETB-ExchangeItem");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ExchangeItem = void 0;
    const MT3SETB_language_1 = require("../../../../script/common/api/MT3SETB-language");
    const MT3SETB_track_1 = require("../../../../script/common/api/MT3SETB-track");
    const MT3SETB_Comm_1 = require("../../../../script/MT3SETB-Comm");
    const MT3SETB_ExchangeChip_1 = require("./MT3SETB-ExchangeChip");
    const MT3SETB_utils2_1 = require("../../../../script/framework/framework/MT3SETB-utils2");
    const MT3SETB_ExchangeReward_1 = require("./MT3SETB-ExchangeReward");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let ExchangeItem = class ExchangeItem extends cc.Component {
      constructor() {
        super();
        this.itemLayoutNode = null;
        this.rewardLayoutNode = null;
        this.rewardCnt = null;
        this.maxCnt = null;
        this.exchangeBtn = null;
        this.curr = 1;
        this.formula = null;
        this.chipList = [];
      }
      start() {}
      init(e) {
        this.formula = e;
        this.curr = this.getMaxAmount();
        this.setting();
        this.setRewardCnt();
      }
      touchEvent(e, t) {
        switch (t) {
         case "add":
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Redeem_btn_add);
          this.curr = cc.misc.clampf(this.curr + 1, 0, this.getMaxAmount());
          this.setRewardCnt();
          MT3SETB_Comm_1.Comm.commonTransfer.playSoundEffect(30, false, true);
          break;

         case "sub":
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Redeem_btn_sub);
          this.curr = cc.misc.clampf(this.curr - 1, 0, this.getMaxAmount());
          this.setRewardCnt();
          MT3SETB_Comm_1.Comm.commonTransfer.playSoundEffect(30, false, true);
          break;

         case "exchange":
          this.redeemChip();
          MT3SETB_Comm_1.Comm.commonTransfer.playSoundEffect(30, false, true);
        }
      }
      setting() {
        for (var e = 0; e < this.formula.chips.length; ++e) {
          var t = MT3SETB_Comm_1.Comm.commonTransfer.getPrefabNode(7);
          t.parent = this.itemLayoutNode;
          this.chipList[e] = t.getComponent(MT3SETB_ExchangeChip_1.ExchangeChip);
          this.chipList[e].init(0, this.formula.chips[e].id, this.formula.chips[e].amount);
        }
        var o = MT3SETB_Comm_1.Comm.commonTransfer.getPrefabNode(8);
        o.parent = this.rewardLayoutNode;
        o.getComponent(MT3SETB_ExchangeReward_1.ExchangeReward).init(this.formula.cardId, this.formula.amount);
        this.updateRedeemCnt();
      }
      setRewardCnt() {
        this.exchangeBtn.interactable = this.curr > 0;
        this.rewardCnt.string = this.curr.toString();
      }
      getMaxAmount() {
        var e = MT3SETB_Comm_1.Comm.commonTransfer.getClientChipData();
        if (!e) return 0;
        for (var t = Number.MAX_SAFE_INTEGER, o = 0; o < this.formula.chips.length; ++o) e.chips[this.formula.chips[o].id] && (t = Math.min(t, Math.floor(e.chips[this.formula.chips[o].id].amount / this.formula.chips[o].amount)));
        return Math.min(t, this.formula.max - this.formula.redeemed);
      }
      redeemChip() {
        var e = this.formula.max - this.formula.redeemed;
        if (e > 0 && MT3SETB_Comm_1.Comm.commonTransfer.canBeNextRedeem()) {
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Redeem_btn, this.formula.id + ", " + this.curr + "/" + e);
          for (var t = 0; t < this.curr; ++t) this.node.emit("redeem", this.formula.id);
        }
      }
      chipUpdate(e) {
        for (var t = 0; t < this.chipList.length; ++t) this.chipList[t].chipUpdate(e);
        this.curr = this.getMaxAmount();
        this.updateRedeemCnt();
      }
      updateRedeemCnt() {
        var e = this.formula.max - this.formula.redeemed, t = MT3SETB_language_1.GetLanguage(6006);
        e >= 1 && (t = t.replace(/F0422B/g, "FFFFFF"));
        this.maxCnt.string = MT3SETB_utils2_1.sprintf(t, e.toString());
        this.setRewardCnt();
      }
    };
    __decorate([ property(cc.Node) ], ExchangeItem.prototype, "itemLayoutNode", void 0);
    __decorate([ property(cc.Node) ], ExchangeItem.prototype, "rewardLayoutNode", void 0);
    __decorate([ property(cc.Label) ], ExchangeItem.prototype, "rewardCnt", void 0);
    __decorate([ property(cc.RichText) ], ExchangeItem.prototype, "maxCnt", void 0);
    __decorate([ property(cc.Button) ], ExchangeItem.prototype, "exchangeBtn", void 0);
    ExchangeItem = __decorate([ ccclass ], ExchangeItem);
    exports.ExchangeItem = ExchangeItem;
    cc._RF.pop();
  }, {
    "../../../../script/MT3SETB-Comm": "MT3SETB-Comm",
    "../../../../script/common/api/MT3SETB-language": "MT3SETB-language",
    "../../../../script/common/api/MT3SETB-track": "MT3SETB-track",
    "../../../../script/framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "./MT3SETB-ExchangeChip": "MT3SETB-ExchangeChip",
    "./MT3SETB-ExchangeReward": "MT3SETB-ExchangeReward"
  } ],
  "MT3SETB-ExchangeReward": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "9399edE8pRKVLEiYJMuq2I7", "MT3SETB-ExchangeReward");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ExchangeReward = void 0;
    const MT3SETB_Comm_1 = require("../../../../script/MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let ExchangeReward = class ExchangeReward extends cc.Component {
      constructor() {
        super();
        this.image = null;
        this.nameImage = null;
        this.starNode = [];
        this.amount = null;
        this.no = 0;
      }
      start() {}
      init(e, t) {
        this.no = e;
        this.setting(e, t);
      }
      setting(e, t) {
        var o = MT3SETB_Comm_1.Comm.commonTransfer.getItemData();
        MT3SETB_Comm_1.Comm.commonTransfer.setBackpackImage(this.image, o[e].cardName);
        MT3SETB_Comm_1.Comm.commonTransfer.setBackpackImage(this.nameImage, o[e].name + "_" + MT3SETB_Comm_1.Comm.commonTransfer.geti18nLang());
        this.amount.string = "*" + t;
        for (var i = o[e].star, a = 0; a < this.starNode.length; ++a) this.starNode[a].active = a < i;
      }
      click() {
        MT3SETB_Comm_1.Comm.commonTransfer.showBackpackInfo(this.no);
      }
    };
    __decorate([ property(cc.Sprite) ], ExchangeReward.prototype, "image", void 0);
    __decorate([ property(cc.Sprite) ], ExchangeReward.prototype, "nameImage", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u661f\u6578\u7bc0\u9ede"
    }) ], ExchangeReward.prototype, "starNode", void 0);
    __decorate([ property(cc.Label) ], ExchangeReward.prototype, "amount", void 0);
    ExchangeReward = __decorate([ ccclass ], ExchangeReward);
    exports.ExchangeReward = ExchangeReward;
    cc._RF.pop();
  }, {
    "../../../../script/MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-Exchange": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "8a334qS3QxF9IrEzERKdZH0", "MT3SETB-Exchange");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Exchange = void 0;
    const MT3SETB_track_1 = require("../../../../script/common/api/MT3SETB-track");
    const MT3SETB_Comm_1 = require("../../../../script/MT3SETB-Comm");
    const MT3SETB_ExchangeItem_1 = require("./MT3SETB-ExchangeItem");
    const MT3SETB_language_1 = require("../../../../script/common/api/MT3SETB-language");
    const MT3SETB_event_1 = require("../../../../script/common/api/MT3SETB-event");
    const MT3SETB_platform_1 = require("../../../../script/common/api/MT3SETB-platform");
    const MT3SETB_card_1 = require("../../../../script/common/api/MT3SETB-card");
    const MT3SETB_ui_1 = require("../../../../script/common/api/MT3SETB-ui");
    const MT3SETB_webObject_1 = require("../../../../script/common/api/MT3SETB-webObject");
    const MT3SETB_utils2_1 = require("../../../../script/framework/framework/MT3SETB-utils2");
    const MT3SETB_mtf_pb_wrapper_1 = require("../../../../script/common/api/MT3SETB-mtf_pb_wrapper");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let Exchange = class Exchange extends cc.Component {
      constructor() {
        super();
        this.root = null;
        this.contentNode = null;
        this.markOn = [];
        this.markOff = [];
        this.markLab = [];
        this.redList = [];
        this.descPage = [];
        this.listPage = [];
        this.timeStr = null;
        this.webView = null;
        this.betLabel = null;
        this.pageNum = 0;
        this.clientChipData = null;
        this.itemList = [];
        this.redeemList = [];
        this.dropList = [];
        this.bRedeem = false;
        this.bet = [ 0, 2, .6, .3, .1 ];
        this.redCnt = 0;
        this.webPos = null;
        this.chipUpdate = e => {
          if (this.clientChipData) {
            for (var o = 0; o < this.clientChipData.formulas.length; ++o) if (e.formulaId == this.clientChipData.formulas[o].id) {
              this.clientChipData.formulas[o].redeemed += 1;
              break;
            }
            e.chips.forEach(function(e) {
              if (this.clientChipData.chips[e.id]) {
                this.clientChipData.chips[e.id].amount -= e.amount;
                for (var o = 0; o < this.itemList.length; ++o) this.itemList[o].chipUpdate(e.id);
              }
            });
            this.showRed();
          }
        };
      }
      start() {}
      update() {
        var e = this;
        if (this.root.active && this.clientChipData && (this.updateTimeStr(), this.descPage[0].active)) {
          var t = MT3SETB_webObject_1.webObjGetGameOrientation();
          this.descPage[0].setPosition(this.descPage[0].position.x, Math.abs(this.descPage[0].position.y) * (t ? 1 : -1));
        }
        this.root.active && 0 == this.pageNum && MT3SETB_Comm_1.Comm.commonTransfer.isMsgBoxActive() && this.hide();
        if (!this.bRedeem && this.redeemList.length > 0) {
          this.bRedeem = true;
          MT3SETB_Comm_1.Comm.commonTransfer.runTask(.2, function() {
            e.bRedeem = false;
          });
          MT3SETB_card_1.RedeemCard(this.redeemList[0]);
          this.redeemList.splice(0, 1);
        }
      }
      init() {
        this.bet = MT3SETB_Comm_1.Comm.commonTransfer.getCoinTypeBet(this.bet);
        this.webView.url = MT3SETB_platform_1.GetCollectWebUrl();
        var e = MT3SETB_card_1.GetChip();
        if (e && e.formulas && !this.clientChipData) {
          this.clientChipData = new MT3SETB_mtf_pb_wrapper_1.mtf.Card.ChipData();
          this.clientChipData.chips = [];
          this.clientChipData.formulas = JSON.parse(JSON.stringify(e.formulas));
          this.clientChipData.formulas = this.clientChipData.formulas.filter(function(t) {
            return !t.chips.some(function(t) {
              return !e.chips.find(function(e) {
                return e.id == t.id;
              });
            });
          });
          for (var t = 0; t < this.clientChipData.formulas.length; ++t) this.clientChipData.formulas[t].redeemed || (this.clientChipData.formulas[t].redeemed = 0);
          for (t = 0; t < e.chips.length; ++t) {
            this.clientChipData.chips[e.chips[t].id] = JSON.parse(JSON.stringify(e.chips[t]));
            this.clientChipData.chips[e.chips[t].id].amount || (this.clientChipData.chips[e.chips[t].id].amount = 0);
          }
          this.clientChipData.start = e.start;
          this.clientChipData.end = e.end;
          this.showRed();
        }
        MT3SETB_event_1.EventBus.register("chip_update", this.chipUpdate);
      }
      show() {
        var e = this;
        this.clientChipData && MT3SETB_ui_1.ShowUIByOrder(MT3SETB_ui_1.UIType.ExchangeBanner, function() {
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Redeem_open);
          e.root.active = true;
          e.switchPage(0);
        });
      }
      hide() {
        var e = this;
        MT3SETB_ui_1.CloseUIByOrder(MT3SETB_ui_1.UIType.ExchangeBanner, function() {
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Redeem_close);
          e.root.active = false;
          e.webView.url = "";
          e.webView.node.active = false;
        });
      }
      touchEvent(e, t) {
        switch (t) {
         case "close":
          this.hide();
          MT3SETB_Comm_1.Comm.commonTransfer.playSoundEffect(30, false, true);
          break;

         case "r0":
          this.switchPage(0);
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Redeem_page1);
          break;

         case "r1":
          this.showItem(1);
          this.switchPage(1);
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Redeem_page2);
          break;

         case "r2":
          this.showItem(2);
          this.switchPage(2);
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Redeem_page3);
          break;

         case "r3":
          this.showItem(3);
          this.switchPage(3);
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Redeem_page4);
          break;

         case "r4":
          this.showItem(4);
          this.switchPage(4);
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_Redeem_page5);
        }
      }
      showItem(e) {
        var t = this;
        this.itemList.forEach(function(e) {
          e.node.off("redeem");
        });
        this.itemList = [];
        this.contentNode.removeAllChildren();
        if (this.clientChipData) for (var o = 0, n = 0; n < this.clientChipData.formulas.length; ++n) if (this.clientChipData.formulas[n].rank == e) {
          var a = MT3SETB_Comm_1.Comm.commonTransfer.getPrefabNode(6);
          a.parent = this.contentNode;
          a.on("redeem", function(e) {
            t.redeemList.push(e);
          });
          this.itemList[o] = a.getComponent(MT3SETB_ExchangeItem_1.ExchangeItem);
          this.itemList[o].init(this.clientChipData.formulas[n]);
          ++o;
        }
      }
      switchPage(e) {
        if (0 == e) {
          this.webView.url = MT3SETB_platform_1.GetCollectWebUrl();
          this.webView.node.active = true;
        } else {
          this.webView.url = "";
          this.webView.node.active = false;
        }
        for (var t = 0; t < this.markOn.length; ++t) {
          this.markOn[t].active = t == e;
          this.markOff[t].active = !(t == e);
          this.markLab[t].scale = this.markOn[t].active ? 1.5 : 1.2;
        }
        this.descPage.forEach(function(t) {
          t.active = 0 == e;
        });
        this.listPage.forEach(function(t) {
          t.active = e > 0;
        });
        this.pageNum = e;
        MT3SETB_Comm_1.Comm.commonTransfer.playSoundEffect(30, false, true);
        this.betLabel.string = MT3SETB_utils2_1.sprintf(MT3SETB_language_1.GetLanguage(6014), MT3SETB_Comm_1.Comm.commonTransfer.getThousandNum(this.bet[this.pageNum]));
      }
      updateTimeStr() {
        var e = new Date(1e3 * this.clientChipData.end.toNumber()).getTime(), t = Math.max(0, e - Date.now());
        if (t > 0) {
          var o = Math.floor(t / 864e5), i = Math.floor(t % 864e5 / 36e5), a = Math.floor(t % 36e5 / 6e4), r = Math.floor(t % 6e4 / 1e3), c = MT3SETB_language_1.GetLanguage(6005);
          o < 1 && (c = c.replace(/FFDD00/g, "F0422B"));
          this.timeStr.string = MT3SETB_utils2_1.sprintf(c, o, i, a, r);
        } else this.timeStr.string = MT3SETB_language_1.GetLanguage(6013);
      }
      getClientChipData() {
        return this.clientChipData;
      }
      addChip(e) {
        this.dropList.push(e.id);
      }
      checkDropChip(e) {}
      checkRedPoint() {
        for (var e = [], t = 0; t < this.clientChipData.formulas.length; ++t) if (-1 == e.indexOf(this.clientChipData.formulas[t].rank) && this.clientChipData.formulas[t].max > this.clientChipData.formulas[t].redeemed) {
          for (var o = true, n = 0; n < this.clientChipData.formulas[t].chips.length; ++n) {
            var i = this.clientChipData.formulas[t].chips[n].id, a = this.clientChipData.formulas[t].chips[n].amount;
            if (this.clientChipData.chips[i] && this.clientChipData.chips[i].amount < a) {
              o = false;
              break;
            }
          }
          o && e.push(this.clientChipData.formulas[t].rank);
        }
        return e;
      }
      showRed() {
        var e = this.checkRedPoint(), t = e.length;
        this.redList.forEach(function(e) {
          e.active = false;
        });
        if (t > 0) for (var o = 0; o < t; ++o) this.redList[e[o]] && (this.redList[e[o]].active = true);
        this.redCnt != t && (this.redCnt = t, MT3SETB_Comm_1.Comm.commonTransfer.callCheckRed());
      }
      canBeNextRedeem() {
        return 0 == this.redeemList.length;
      }
      destory() {
        MT3SETB_event_1.EventBus.unregister("chip_update", this.chipUpdate);
      }
    };
    __decorate([ property(cc.Node) ], Exchange.prototype, "root", void 0);
    __decorate([ property(cc.Node) ], Exchange.prototype, "contentNode", void 0);
    __decorate([ property(cc.Node) ], Exchange.prototype, "markOn", void 0);
    __decorate([ property(cc.Node) ], Exchange.prototype, "markOff", void 0);
    __decorate([ property(cc.Node) ], Exchange.prototype, "markLab", void 0);
    __decorate([ property(cc.Node) ], Exchange.prototype, "redList", void 0);
    __decorate([ property(cc.Node) ], Exchange.prototype, "descPage", void 0);
    __decorate([ property(cc.Node) ], Exchange.prototype, "listPage", void 0);
    __decorate([ property(cc.RichText) ], Exchange.prototype, "timeStr", void 0);
    __decorate([ property(cc.WebView) ], Exchange.prototype, "webView", void 0);
    __decorate([ property(cc.Label) ], Exchange.prototype, "betLabel", void 0);
    Exchange = __decorate([ ccclass ], Exchange);
    exports.Exchange = Exchange;
    cc._RF.pop();
  }, {
    "../../../../script/MT3SETB-Comm": "MT3SETB-Comm",
    "../../../../script/common/api/MT3SETB-card": "MT3SETB-card",
    "../../../../script/common/api/MT3SETB-event": "MT3SETB-event",
    "../../../../script/common/api/MT3SETB-language": "MT3SETB-language",
    "../../../../script/common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../../../../script/common/api/MT3SETB-platform": "MT3SETB-platform",
    "../../../../script/common/api/MT3SETB-track": "MT3SETB-track",
    "../../../../script/common/api/MT3SETB-ui": "MT3SETB-ui",
    "../../../../script/common/api/MT3SETB-webObject": "MT3SETB-webObject",
    "../../../../script/framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "./MT3SETB-ExchangeItem": "MT3SETB-ExchangeItem"
  } ],
  "MT3SETB-FireDragonTurtle": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e5fb56q53tKQbsVzJv67r5E", "MT3SETB-FireDragonTurtle");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const {ccclass: ccclass, property: property} = cc._decorator;
    var AnimState;
    (function(AnimState) {
      AnimState[AnimState["ANIM_MOVE"] = 0] = "ANIM_MOVE";
      AnimState[AnimState["ANIM_ATTACK"] = 1] = "ANIM_ATTACK";
      AnimState[AnimState["ANIM_CHANGE"] = 2] = "ANIM_CHANGE";
    })(AnimState || (AnimState = {}));
    let FireDragonTurtle = class FireDragonTurtle extends MT3SETB_Fish_1.Fish {
      constructor() {
        super(...arguments);
        this.currAnimIndex = -1;
        this.isUpdatingRotation = false;
      }
      onLoad() {
        super.onLoad();
        this.node.on(MT3SETB_Fish_1.Fish.ActionEventChanged, this.onDragonTurtleActionEventChanged.bind(this));
      }
      onDragonTurtleActionEventChanged(event, oldEvent) {
        if (!event) return;
        this.updateAttackableState(event.animIndex);
        if (this.currAnimIndex != event.animIndex) {
          this.playCurrentAnimIndex(event.animIndex);
          this.currAnimIndex = event.animIndex;
        }
      }
      postInit() {
        super.postInit();
        let animIndex = this.fishMoveAction.events[0].animIndex;
        this.updateAttackableState(animIndex);
        this.playCurrentAnimIndex(animIndex);
        this.currAnimIndex = animIndex;
      }
      updateRotation() {
        if (!this.isUpdatingRotation) return;
        super.updateRotation();
      }
      playCurrentAnimIndex(animIndex) {
        this.isUpdatingRotation = false;
        let spineAnim = this.spineAnims[0];
        switch (animIndex) {
         case AnimState.ANIM_MOVE:
          spineAnim.setAnimation(0, "chiyanlonggui_move", true);
          var t = this;
          this.scheduleOnce(function() {
            t.isUpdatingRotation = true;
          }, 1);
          break;

         case AnimState.ANIM_ATTACK:
          spineAnim.setAnimation(0, "chiyanlonggui_attack", true);
          break;

         case AnimState.ANIM_CHANGE:
          spineAnim.setAnimation(0, "chiyanlonggui_change", false);
          let index = Math.max(this.moveModule.waypoints.length - 2, 0);
          let wp = this.moveModule.waypoints[index];
          let newAngle = Math.atan2(-wp.direction.y, -wp.direction.x);
          newAngle *= 180 / Math.PI;
          this.node.angle = newAngle - 90;
        }
      }
      updateAttackableState(animIndex) {
        let currState = 0 == animIndex;
        this.isAllowLockOn != currState && this.setAttackableState(currState, false);
      }
    };
    FireDragonTurtle = __decorate([ ccclass ], FireDragonTurtle);
    exports.default = FireDragonTurtle;
    cc._RF.pop();
  }, {
    "./MT3SETB-Fish": "MT3SETB-Fish"
  } ],
  "MT3SETB-FishAnimation": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "09879y1oXFGhqjoU+D0yxci", "MT3SETB-FishAnimation");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishAnimationType = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    var FishAnimationType;
    (function(FishAnimationType) {
      FishAnimationType[FishAnimationType["Move"] = 0] = "Move";
      FishAnimationType[FishAnimationType["Death"] = 1] = "Death";
    })(FishAnimationType = exports.FishAnimationType || (exports.FishAnimationType = {}));
    let FishAnimation = class FishAnimation extends cc.Component {
      constructor() {
        super(...arguments);
        this.cocosAnim = null;
        this.spineAnim = null;
        this.moveAnimName = "";
        this.deathAnimName = "";
        this.curTrackIndex = 0;
      }
      onLoad() {
        this.cocosAnim = this.node.getComponent(cc.Animation);
        this.spineAnim = this.node.getComponent(sp.Skeleton);
      }
      set time(value) {
        if (this.cocosAnim) this.cocosAnim.setCurrentTime(value); else if (this.spineAnim) {
          var entry = this.spineAnim.getCurrent(this.curTrackIndex);
          entry && (entry.trackTime = value % entry.duration);
        }
      }
      clearAnimation() {
        this.spineAnim && this.spineAnim.clearTracks();
      }
      stopAnimation() {
        if (this.cocosAnim) this.cocosAnim.stop(); else if (this.spineAnim) {
          this.spineAnim.timeScale = 0;
          this.spineAnim.paused = true;
        }
      }
      getCurrentAnimationDuration(animName) {
        if (this.cocosAnim) {
          var availableAnim = this.cocosAnim.getClips().find(c => c.name == animName);
          return availableAnim ? availableAnim.duration : 0;
        }
        if (this.spineAnim) {
          let entry = this.spineAnim.findAnimation(animName);
          return entry ? entry.duration : 0;
        }
      }
      playAnimationByName(animName, trackIndex, callback, isLoop) {
        var animToPlay = animName;
        if (this.cocosAnim) {
          this.cocosAnim.getAnimationState(animName).wrapMode = isLoop ? cc.WrapMode.Loop : cc.WrapMode.Normal;
          this.cocosAnim.play(animName);
          callback && this.cocosAnim.once("finished", callback);
        } else if (this.spineAnim) {
          if ("" == animToPlay) return;
          this.curTrackIndex = trackIndex;
          let entry = this.spineAnim.setAnimation(this.curTrackIndex, animToPlay, isLoop);
          callback && this.spineAnim.setTrackCompleteListener(entry, callback);
        }
      }
      playAnimation(animType, callback, time) {
        var animToPlay = animType == FishAnimationType.Move ? this.moveAnimName : this.deathAnimName;
        if (this.cocosAnim) {
          if ("" == animToPlay) {
            var availableAnim = this.cocosAnim.getClips().find(c => c.name.endsWith(animType == FishAnimationType.Move ? "_move" : "_die"));
            availableAnim && (animToPlay = availableAnim.name);
          }
          this.cocosAnim.play(animToPlay);
          callback && this.cocosAnim.once("finished", callback);
        } else if (this.spineAnim) {
          if ("" == animToPlay) return;
          let entry = this.spineAnim.setAnimation(0, animToPlay, true);
          time && entry.trackTime;
          time % entry.duration;
          callback && this.spineAnim.setTrackCompleteListener(entry, callback);
        }
      }
      setAnimSpeed(speed) {
        if (this.cocosAnim) {
          var curClip = this.cocosAnim.currentClip || this.cocosAnim.defaultClip;
          this.cocosAnim.getAnimationState(curClip ? curClip.name : "").speed = speed;
        } else this.spineAnim && (this.spineAnim.timeScale = speed);
      }
      getAnim() {
        if (this.cocosAnim) return this.cocosAnim;
        if (this.spineAnim) return this.spineAnim;
        return null;
      }
    };
    __decorate([ property(cc.String) ], FishAnimation.prototype, "moveAnimName", void 0);
    __decorate([ property(cc.String) ], FishAnimation.prototype, "deathAnimName", void 0);
    FishAnimation = __decorate([ ccclass ], FishAnimation);
    exports.default = FishAnimation;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-FishComing": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "59faaAfnJRI9anavRQesLGt", "MT3SETB-FishComing");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishComing = void 0;
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishComing = class FishComing extends cc.Component {
      constructor() {
        super();
        this.fishNode = [];
        this.particles = null;
        this.lastShow = null;
        this.anim = null;
      }
      init() {
        this.anim = this.getComponent(cc.Animation);
        this.node.scale = .8;
      }
      setShowInfo(e, t) {
        var o = -1;
        switch (e) {
         case MT3SETB_Game_1.eFishNo.JPFish:
          o = 0;
        }
        if (o >= 0) {
          this.fishNode[o].active = t;
          this.lastShow = this.fishNode[o];
        }
      }
      play(e) {
        var t = this;
        null != this.lastShow && (this.lastShow.active = false);
        this.setShowInfo(e, true);
        this.particles.resetSystem();
        this.anim.play();
        this.anim.once("finished", function() {
          t.node.active = false;
        });
      }
    };
    __decorate([ property(cc.Node) ], FishComing.prototype, "fishNode", void 0);
    __decorate([ property(cc.ParticleSystem) ], FishComing.prototype, "particles", void 0);
    FishComing = __decorate([ ccclass ], FishComing);
    exports.FishComing = FishComing;
    cc._RF.pop();
  }, {
    "../system/MT3SETB-Game": "MT3SETB-Game"
  } ],
  "MT3SETB-FishCount": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "c8228dDzmtHVJHE5bIeHBp4", "MT3SETB-FishCount");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const MT3SETB_InGamePanelLS_1 = __importDefault(require("../MT3SETB-InGamePanelLS"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishCount = class FishCount extends cc.Component {
      constructor() {
        super(...arguments);
        this.gameType = "JCBY";
        this.fishCountPanel = null;
        this.rewardLabel = null;
        this.goldLabel = null;
        this.countdownLabel = null;
        this.fishesNode = null;
        this.fishCountMap = {};
        this.gold = 0;
        this.reward = 0;
        this.countdownNum = 0;
        this.countdownMaxNum = 30;
        this.fishCountConfigMap = new Map([ [ "SLBZ", {
          fishSize: 21,
          fishMap: new Map([ [ 1, 21 ], [ 2, 20 ], [ 3, 19 ], [ 4, 18 ], [ 5, 17 ], [ 6, 16 ], [ 7, 15 ], [ 8, 14 ], [ 9, 13 ], [ 10, 12 ], [ 11, 11 ], [ 12, 10 ], [ 13, 9 ], [ 14, 8 ], [ 15, 6 ], [ 16, 5 ], [ 17, 4 ], [ 18, 3 ], [ 19, 1 ], [ 20, 2 ], [ 21, 7 ] ]),
          languageFish: [ 21 ]
        } ], [ "JCBY", {
          fishSize: 26,
          fishMap: new Map([ [ 1, 26 ], [ 2, 25 ], [ 3, 24 ], [ 4, 23 ], [ 5, 22 ], [ 6, 21 ], [ 7, 20 ], [ 8, 19 ], [ 9, 18 ], [ 10, 17 ], [ 11, 16 ], [ 12, 15 ], [ 13, 14 ], [ 14, 13 ], [ 15, 12 ], [ 16, 10 ], [ 17, 9 ], [ 18, 2 ], [ 19, 3 ], [ 100, 1 ], [ 101, 4 ], [ 102, 5 ], [ 103, 6 ], [ 104, 12 ], [ 105, 8 ] ]),
          languageFish: [ 103 ]
        } ], [ "LKPY", {
          fishSize: 27,
          fishMap: new Map([ [ 1, 27 ], [ 2, 26 ], [ 3, 25 ], [ 4, 24 ], [ 5, 23 ], [ 6, 22 ], [ 7, 21 ], [ 8, 20 ], [ 9, 19 ], [ 10, 18 ], [ 11, 17 ], [ 12, 16 ], [ 13, 15 ], [ 14, 14 ], [ 15, 13 ], [ 16, 12 ], [ 17, 11 ], [ 18, 9 ], [ 19, 10 ], [ 100, 2 ], [ 101, 1 ], [ 102, 5 ], [ 103, 4 ], [ 104, 3 ], [ 105, 6 ], [ 106, 7 ], [ 107, 8 ] ]),
          languageFish: [ 102, 103 ]
        } ], [ "KSS", {
          fishSize: 26,
          fishMap: new Map([ [ 1, 26 ], [ 2, 25 ], [ 3, 24 ], [ 4, 23 ], [ 5, 22 ], [ 6, 21 ], [ 7, 20 ], [ 8, 19 ], [ 9, 18 ], [ 10, 17 ], [ 11, 16 ], [ 12, 15 ], [ 13, 14 ], [ 14, 13 ], [ 15, 12 ], [ 16, 11 ], [ 17, 10 ], [ 100, 2 ], [ 101, 3 ], [ 102, 1 ], [ 103, 4 ], [ 104, 5 ], [ 105, 9 ], [ 106, 8 ], [ 107, 7 ], [ 108, 6 ] ]),
          languageFish: []
        } ], [ "WKBY", {
          fishSize: 29,
          fishMap: new Map([ [ 1, 21 ], [ 2, 20 ], [ 3, 19 ], [ 4, 18 ], [ 5, 17 ], [ 6, 16 ], [ 7, 15 ], [ 8, 14 ], [ 9, 13 ], [ 10, 12 ], [ 11, 11 ], [ 12, 10 ], [ 13, 9 ], [ 14, 8 ], [ 15, 7 ], [ 16, 6 ], [ 17, 5 ], [ 18, 1 ], [ 19, 26 ], [ 20, 28 ], [ 21, 29 ], [ 22, 25 ], [ 23, 27 ], [ 24, 3 ], [ 25, 4 ], [ 26, 2 ], [ 27, 23 ], [ 28, 23 ], [ 29, 23 ], [ 30, 22 ], [ 31, 22 ], [ 32, 22 ] ]),
          languageFish: [ 19, 20, 21 ]
        } ], [ "DSNH", {
          fishSize: 23,
          fishMap: new Map([ [ 1, 23 ], [ 2, 22 ], [ 3, 21 ], [ 4, 20 ], [ 5, 19 ], [ 6, 18 ], [ 7, 17 ], [ 8, 16 ], [ 9, 15 ], [ 10, 14 ], [ 11, 13 ], [ 12, 12 ], [ 13, 11 ], [ 14, 10 ], [ 15, 9 ], [ 16, 8 ], [ 17, 7 ], [ 18, 2 ], [ 19, 5 ], [ 21, 1 ], [ 22, 6 ], [ 23, 3 ], [ 24, 4 ] ]),
          languageFish: [ 19, 21 ]
        } ], [ "SSEY", {
          fishSize: 25,
          fishMap: new Map([ [ 1, 25 ], [ 2, 24 ], [ 3, 23 ], [ 4, 22 ], [ 5, 21 ], [ 6, 20 ], [ 7, 19 ], [ 8, 18 ], [ 9, 17 ], [ 10, 16 ], [ 11, 15 ], [ 12, 14 ], [ 13, 13 ], [ 14, 12 ], [ 15, 11 ], [ 16, 10 ], [ 17, 9 ], [ 100, 7 ], [ 101, 8 ], [ 102, 6 ], [ 103, 2 ], [ 104, 3 ], [ 105, 1 ], [ 106, 5 ], [ 107, 4 ] ]),
          languageFish: [ 100, 101 ]
        } ] ]);
        this.countdownTimer = () => {
          this.countdownNum--;
          this.setCountdownNum(this.countdownNum);
          this.countdownNum <= 0 && this.exit();
        };
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.fishCount = this;
        this.initFishState();
      }
      show() {
        this.fishCountPanel.show();
        this.startCount();
      }
      get gameName() {
        return this.gameType;
      }
      updateFishCount(fishId, fishReward) {
        this.fishCountMap[fishId] = this.fishCountMap[fishId] || 0;
        this.fishCountMap[fishId]++;
        this.reward += fishReward;
        this.displayReward(this.reward);
        this.setFishState(fishId);
      }
      updateBalance(balance) {
        this.gold = balance;
        this.displayGold(this.gold);
      }
      forceUpdateBalance(balance) {
        this.gold = balance;
        this.displayGold(this.gold);
      }
      initFishState() {
        let fishInitConfig = this.fishCountConfigMap.get(this.gameName);
        fishInitConfig.fishMap.forEach((value, key) => {
          this.setFishState(key);
        });
        this.reward = 0;
        this.gold = 0;
        this.fishCountMap = {};
      }
      setFishState(fishId) {
        let inFishId = this.getFishMapId(fishId);
        if (!inFishId) return;
        const fishNum = this.fishCountMap[fishId] || 0, fishNode = this.fishesNode.getChildByName(`$fishCount${inFishId}`), fishNodeSprite = fishNode.getChildByName("fishSprite");
        fishNodeSprite && (fishNodeSprite.active = fishNum > 0);
        this.displayFishCount(fishNode, fishNum);
      }
      getFishMapId(fishId) {
        let fishMap = this.fishCountConfigMap.get(this.gameName).fishMap;
        return fishMap.get(fishId);
      }
      displayFishCount(fishNumNode, fishNum) {
        var _a;
        const fishCounter = null === (_a = null === fishNumNode || void 0 === fishNumNode ? void 0 : fishNumNode.getChildByName("fishNum")) || void 0 === _a ? void 0 : _a.getComponent(cc.Label);
        fishCounter && (fishCounter.string = fishNum.toString());
      }
      displayReward(reward) {
        this.rewardLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum3(reward);
      }
      displayGold(gold) {
        this.goldLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum3(gold);
      }
      startCount() {
        this.stopCount();
        this.countdownNum = this.countdownMaxNum;
        this.setCountdownNum(this.countdownNum);
        this.schedule(this.countdownTimer, 1);
      }
      stopCount() {
        this.unschedule(this.countdownTimer);
      }
      setCountdownNum(time) {
        this.countdownLabel && (this.countdownLabel.string = `${time}`);
      }
      exit() {
        this.stopCount();
        this.fishCountPanel.onClickBacking();
      }
    };
    __decorate([ property ], FishCount.prototype, "gameType", void 0);
    __decorate([ property(MT3SETB_InGamePanelLS_1.default) ], FishCount.prototype, "fishCountPanel", void 0);
    __decorate([ property(cc.Label) ], FishCount.prototype, "rewardLabel", void 0);
    __decorate([ property(cc.Label) ], FishCount.prototype, "goldLabel", void 0);
    __decorate([ property(cc.Label) ], FishCount.prototype, "countdownLabel", void 0);
    __decorate([ property(cc.Node) ], FishCount.prototype, "fishesNode", void 0);
    FishCount = __decorate([ ccclass ], FishCount);
    exports.default = FishCount;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm",
    "../MT3SETB-InGamePanelLS": "MT3SETB-InGamePanelLS"
  } ],
  "MT3SETB-FishData": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "682ebj4AKJIY4lP8D0IOX2P", "MT3SETB-FishData");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishData = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishData = class FishData extends cc.Component {
      constructor() {
        super(...arguments);
        this.fishJson = null;
        this.fishPreloadListJson = null;
        this.fishTextUiAtlas = null;
        this.fishUiAtlas = null;
        this.fishes = [];
        this.fishNone = null;
      }
    };
    __decorate([ property(cc.JsonAsset) ], FishData.prototype, "fishJson", void 0);
    __decorate([ property(cc.JsonAsset) ], FishData.prototype, "fishPreloadListJson", void 0);
    __decorate([ property(cc.SpriteAtlas) ], FishData.prototype, "fishTextUiAtlas", void 0);
    __decorate([ property(cc.SpriteAtlas) ], FishData.prototype, "fishUiAtlas", void 0);
    __decorate([ property([ cc.Prefab ]) ], FishData.prototype, "fishes", void 0);
    __decorate([ property(cc.Prefab) ], FishData.prototype, "fishNone", void 0);
    FishData = __decorate([ ccclass ], FishData);
    exports.FishData = FishData;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-FishEater": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d8780bTjfFIBKa5O5KKeutx", "MT3SETB-FishEater");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const MT3SETB_Fish_1 = require("../MT3SETB-Fish");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const EATER_MAX_ODDS = 500;
    const EATEN_MAX_ODDS = 9;
    let FishEater = class FishEater extends cc.Component {
      constructor() {
        super(...arguments);
        this.fish = null;
        this.oddsLabel = null;
      }
      update(dt) {
        this.checkForFishesToEat();
      }
      handleFishesEaten(updatedOdds) {
        this.fish.odds = updatedOdds;
      }
      checkForFishesToEat() {
        if (0 == this.node.opacity) return;
        this.oddsLabel.string = this.fish.getOdds().toString();
        if (!MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(this.fish)) return;
        if (this.fish.getOdds() >= EATER_MAX_ODDS) return;
        let fishesToEat = new Set();
        let allFishs = MT3SETB_Comm_1.Comm.fishMgr.getAllFishes();
        let rect = this.node.getBoundingBoxToWorld();
        for (let fish of allFishs) {
          if (fish == this.fish || fish.isDying() || fish.odds > EATEN_MAX_ODDS) continue;
          if (fishesToEat.has(fish.id)) continue;
          if (!rect.contains(cc.v2(fish.node.x, fish.node.y))) continue;
          fishesToEat.add(fish.id);
        }
        if (0 == fishesToEat.size) return;
        let toEat = [];
        for (let fishId of fishesToEat) toEat.push(fishId);
        MT3SETB_Comm_1.Comm.gameMgr.eatFishes(this.fish.id, toEat);
      }
    };
    __decorate([ property(MT3SETB_Fish_1.Fish) ], FishEater.prototype, "fish", void 0);
    __decorate([ property(cc.Label) ], FishEater.prototype, "oddsLabel", void 0);
    FishEater = __decorate([ ccclass ], FishEater);
    exports.default = FishEater;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm",
    "../MT3SETB-Fish": "MT3SETB-Fish"
  } ],
  "MT3SETB-FishInfoItemGeneral": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "5243aYAdB9EPKUCtH7ubsgM", "MT3SETB-FishInfoItemGeneral");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_FishInfoItem_1 = __importDefault(require("./MT3SETB-FishInfoItem"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishInfoItemGeneral = class FishInfoItemGeneral extends MT3SETB_FishInfoItem_1.default {
      constructor() {
        super(...arguments);
        this.multiplierLabel = null;
      }
      initialize(fishInfo, secondaryFishAtlas) {
        this.setFishImg(fishInfo.icon, secondaryFishAtlas);
        this.setMultiplier(fishInfo.coins, this.multiplierLabel);
      }
    };
    __decorate([ property(cc.Label) ], FishInfoItemGeneral.prototype, "multiplierLabel", void 0);
    FishInfoItemGeneral = __decorate([ ccclass ], FishInfoItemGeneral);
    exports.default = FishInfoItemGeneral;
    cc._RF.pop();
  }, {
    "./MT3SETB-FishInfoItem": "MT3SETB-FishInfoItem"
  } ],
  "MT3SETB-FishInfoItemGolden": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "eb778hWfa1POpPHt7jV6ndN", "MT3SETB-FishInfoItemGolden");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_FishInfoItem_1 = __importDefault(require("./MT3SETB-FishInfoItem"));
    const MT3SETB_LangImg_1 = require("./MT3SETB-LangImg");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const BACKING_SPRITE_MAP = {
      2: 0,
      3: 1
    };
    const TAG_SPRITE_NAMES = {
      1: "boss",
      2: "hw"
    };
    let FishInfoItemGolden = class FishInfoItemGolden extends MT3SETB_FishInfoItem_1.default {
      constructor() {
        super(...arguments);
        this.backing = null;
        this.backingSprites = [];
        this.multiplierLabel = null;
        this.tag = null;
      }
      initialize(fishInfo, secondaryFishAtlas) {
        this.backing.spriteFrame = this.backingSprites[BACKING_SPRITE_MAP[fishInfo.background]];
        this.setFishImg(fishInfo.icon, secondaryFishAtlas);
        this.setMultiplier(fishInfo.coins, this.multiplierLabel);
        if (fishInfo.tag) {
          this.tag.spriteName = TAG_SPRITE_NAMES[fishInfo.tag];
          this.tag.setSpriteFrame();
        } else this.tag.node.active = false;
      }
    };
    __decorate([ property(cc.Sprite) ], FishInfoItemGolden.prototype, "backing", void 0);
    __decorate([ property([ cc.SpriteFrame ]) ], FishInfoItemGolden.prototype, "backingSprites", void 0);
    __decorate([ property(cc.Label) ], FishInfoItemGolden.prototype, "multiplierLabel", void 0);
    __decorate([ property(MT3SETB_LangImg_1.LangImg) ], FishInfoItemGolden.prototype, "tag", void 0);
    FishInfoItemGolden = __decorate([ ccclass ], FishInfoItemGolden);
    exports.default = FishInfoItemGolden;
    cc._RF.pop();
  }, {
    "./MT3SETB-FishInfoItem": "MT3SETB-FishInfoItem",
    "./MT3SETB-LangImg": "MT3SETB-LangImg"
  } ],
  "MT3SETB-FishInfoItemSpecial": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d717dxs8vZMCIkzti8Dz4fh", "MT3SETB-FishInfoItemSpecial");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_FishInfoItem_1 = __importDefault(require("./MT3SETB-FishInfoItem"));
    const MT3SETB_LangTxt_1 = require("./MT3SETB-LangTxt");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishInfoItemSpecial = class FishInfoItemSpecial extends MT3SETB_FishInfoItem_1.default {
      constructor() {
        super(...arguments);
        this.nameTxt = null;
        this.descriptionTxt = null;
      }
      initialize(fishInfo, secondaryFishAtlas) {
        this.setFishImg(fishInfo.icon, secondaryFishAtlas);
        this.setLocaleText(this.nameTxt, fishInfo.name);
        this.setLocaleText(this.descriptionTxt, fishInfo.desc);
      }
      setLocaleText(langTxt, textKey) {
        langTxt.textkey = textKey;
        try {
          langTxt.setText();
        } catch (_a) {
          console.warn(`Missing locale for special fish: ${textKey}`);
          langTxt.textkey = "";
        }
      }
    };
    __decorate([ property(MT3SETB_LangTxt_1.LangTxt) ], FishInfoItemSpecial.prototype, "nameTxt", void 0);
    __decorate([ property(MT3SETB_LangTxt_1.LangTxt) ], FishInfoItemSpecial.prototype, "descriptionTxt", void 0);
    FishInfoItemSpecial = __decorate([ ccclass ], FishInfoItemSpecial);
    exports.default = FishInfoItemSpecial;
    cc._RF.pop();
  }, {
    "./MT3SETB-FishInfoItem": "MT3SETB-FishInfoItem",
    "./MT3SETB-LangTxt": "MT3SETB-LangTxt"
  } ],
  "MT3SETB-FishInfoItem": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e25b0uvC2NDfLyZp6YBF9UL", "MT3SETB-FishInfoItem");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishInfoItem = class FishInfoItem extends cc.Component {
      constructor() {
        super(...arguments);
        this.fishSprite = null;
      }
      setFishImg(iconName, secondaryFishAtlas) {
        var _a;
        let rawName = iconName.split(".")[0];
        let spriteKey = `game-${rawName}`;
        let spriteFrame = null === (_a = MT3SETB_Comm_1.Comm.i18n.getFishInfoSprites()) || void 0 === _a ? void 0 : _a.getSpriteFrame(spriteKey);
        spriteFrame || (spriteFrame = secondaryFishAtlas.getSpriteFrame(spriteKey));
        if (!spriteFrame) {
          console.warn(`Unable to retrieve sprite frame: ${iconName}`);
          return;
        }
        this.fishSprite.spriteFrame = spriteFrame;
        let maxSize = this.fishSprite.node.parent.getContentSize();
        let currentSize = new cc.Size(spriteFrame.getRect().width * this.fishSprite.node.scaleX, spriteFrame.getRect().height * this.fishSprite.node.scaleY);
        if (currentSize.height <= maxSize.height && currentSize.width <= maxSize.width) {
          this.fishSprite.node.setContentSize(currentSize.width, currentSize.height);
          return;
        }
        this.fishSprite.sizeMode = cc.Sprite.SizeMode.CUSTOM;
        let isFittingWidth = true;
        currentSize.width > maxSize.width && currentSize.height > maxSize.height ? isFittingWidth = maxSize.width / currentSize.width < maxSize.height / currentSize.height : currentSize.height > maxSize.height && (isFittingWidth = false);
        isFittingWidth ? this.fishSprite.node.setContentSize(maxSize.width, spriteFrame.getRect().height * maxSize.width / currentSize.width) : this.fishSprite.node.setContentSize(spriteFrame.getRect().width * maxSize.height / currentSize.height, maxSize.height);
      }
      setMultiplier(mulData, mulLabel) {
        if (2 != mulData.length) {
          console.warn("Unable to set multiplier", mulData);
          return;
        }
        let minMul = mulData[0];
        if (minMul > 0) {
          mulLabel.string = `${minMul}`;
          let maxMul = mulData[1];
          maxMul > minMul && (mulLabel.string += `-${maxMul}`);
        } else mulLabel.string = "";
      }
    };
    __decorate([ property(cc.Sprite) ], FishInfoItem.prototype, "fishSprite", void 0);
    FishInfoItem = __decorate([ ccclass ], FishInfoItem);
    exports.default = FishInfoItem;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-FishInfo": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "47c960elQxJm7Gbk0PXRnhy", "MT3SETB-FishInfo");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_FishInfoItem_1 = __importDefault(require("./MT3SETB-FishInfoItem"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishInfo = class FishInfo extends cc.Component {
      constructor() {
        super(...arguments);
        this.fishInfoJson = null;
        this.tabsParent = null;
        this.tabsContents = [];
        this.secondaryFishSpriteAtlas = null;
        this.fishInfoItemPrefabs = [];
        this.tabs = [];
        this.currentTabIndex = 0;
      }
      start() {
        var _a;
        let toggles = this.tabsParent.getComponentsInChildren(cc.Toggle);
        for (let i = 0; i < toggles.length; i++) {
          let toggle = toggles[i];
          let selectionSprite = toggle.node;
          this.tabs.push({
            toggle: toggle,
            selectionSprite: selectionSprite,
            scrollview: null === (_a = this.tabsContents[i]) || void 0 === _a ? void 0 : _a.getComponentInChildren(cc.ScrollView)
          });
        }
        this.loadInfo();
        this.showTab(this.currentTabIndex);
      }
      loadInfo() {
        var _a, _b, _c, _d, _e;
        for (let info of this.fishInfoJson.json) {
          let games = info.games;
          if (!games.includes(MT3SETB_Comm_1.Comm.gameId)) continue;
          let groupIndex = info.group - 1;
          let parent = null === (_b = null === (_a = this.tabs[groupIndex]) || void 0 === _a ? void 0 : _a.scrollview) || void 0 === _b ? void 0 : _b.content;
          let prefab = this.fishInfoItemPrefabs[groupIndex];
          if (!parent || !prefab) {
            console.warn("Fish info entry could not be created", info);
            continue;
          }
          let itemUi = null === (_c = cc.instantiate(prefab)) || void 0 === _c ? void 0 : _c.getComponent(MT3SETB_FishInfoItem_1.default);
          parent.addChild(itemUi.node);
          itemUi.initialize(info, this.secondaryFishSpriteAtlas);
        }
        for (let tabData of this.tabs) 0 == (null === (_e = null === (_d = tabData.scrollview) || void 0 === _d ? void 0 : _d.content) || void 0 === _e ? void 0 : _e.childrenCount) && (tabData.toggle.node.active = false);
      }
      showTab(tabIndex) {
        this.currentTabIndex = tabIndex;
        let index = 0;
        for (let tab of this.tabs) {
          let isActive = index == tabIndex;
          tab.selectionSprite && (tab.selectionSprite.opacity = isActive ? 255 : 0);
          tab.scrollview.node.active = isActive;
          isActive && tab.scrollview.scrollToTop();
          index++;
        }
      }
      onTabInput(event, customEventData) {
        let tabIndex = parseInt(customEventData);
        if (this.currentTabIndex == tabIndex) return;
        this.showTab(tabIndex);
      }
    };
    __decorate([ property(cc.JsonAsset) ], FishInfo.prototype, "fishInfoJson", void 0);
    __decorate([ property(cc.Node) ], FishInfo.prototype, "tabsParent", void 0);
    __decorate([ property([ cc.Node ]) ], FishInfo.prototype, "tabsContents", void 0);
    __decorate([ property(cc.SpriteAtlas) ], FishInfo.prototype, "secondaryFishSpriteAtlas", void 0);
    __decorate([ property([ cc.Prefab ]) ], FishInfo.prototype, "fishInfoItemPrefabs", void 0);
    FishInfo = __decorate([ ccclass ], FishInfo);
    exports.default = FishInfo;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-FishInfoItem": "MT3SETB-FishInfoItem"
  } ],
  "MT3SETB-FishLockOnHandler_MTCC": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "c7f2e+WkYxB25Cf0dzr8lbS", "MT3SETB-FishLockOnHandler_MTCC");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishLockOnHandler_MTCC = exports.mtccFishNo = void 0;
    var mtccFishNo;
    (function(mtccFishNo) {
      mtccFishNo[mtccFishNo["None"] = 0] = "None";
      mtccFishNo[mtccFishNo["Gurnard"] = 1] = "Gurnard";
      mtccFishNo[mtccFishNo["GreenFish"] = 2] = "GreenFish";
      mtccFishNo[mtccFishNo["YellowFish"] = 3] = "YellowFish";
      mtccFishNo[mtccFishNo["BlowFish"] = 4] = "BlowFish";
      mtccFishNo[mtccFishNo["ZebraFish"] = 5] = "ZebraFish";
      mtccFishNo[mtccFishNo["ClownFish"] = 6] = "ClownFish";
      mtccFishNo[mtccFishNo["PufferFish"] = 7] = "PufferFish";
      mtccFishNo[mtccFishNo["Lobster"] = 8] = "Lobster";
      mtccFishNo[mtccFishNo["AnglerFish"] = 9] = "AnglerFish";
      mtccFishNo[mtccFishNo["Turtle"] = 10] = "Turtle";
      mtccFishNo[mtccFishNo["KnifeFish"] = 11] = "KnifeFish";
      mtccFishNo[mtccFishNo["ButterflyFish"] = 12] = "ButterflyFish";
      mtccFishNo[mtccFishNo["GrouperFish"] = 13] = "GrouperFish";
      mtccFishNo[mtccFishNo["SwordFish"] = 14] = "SwordFish";
      mtccFishNo[mtccFishNo["MantaRay"] = 15] = "MantaRay";
      mtccFishNo[mtccFishNo["SilverShark"] = 16] = "SilverShark";
      mtccFishNo[mtccFishNo["GoldShark"] = 17] = "GoldShark";
      mtccFishNo[mtccFishNo["EverChanging"] = 20] = "EverChanging";
      mtccFishNo[mtccFishNo["SilverCashTree"] = 100] = "SilverCashTree";
      mtccFishNo[mtccFishNo["GreenCashTree"] = 101] = "GreenCashTree";
      mtccFishNo[mtccFishNo["GoldCashTree"] = 102] = "GoldCashTree";
      mtccFishNo[mtccFishNo["Volcano"] = 103] = "Volcano";
      mtccFishNo[mtccFishNo["DragonSword"] = 104] = "DragonSword";
      mtccFishNo[mtccFishNo["Bottle"] = 105] = "Bottle";
      mtccFishNo[mtccFishNo["FourFish"] = 106] = "FourFish";
      mtccFishNo[mtccFishNo["ThreeFishSmall"] = 107] = "ThreeFishSmall";
      mtccFishNo[mtccFishNo["ThreeFishBig"] = 108] = "ThreeFishBig";
    })(mtccFishNo = exports.mtccFishNo || (exports.mtccFishNo = {}));
    class FishLockOnHandler_MTCC {
      getLockonRotation(fish) {
        switch (fish.no) {
         case mtccFishNo.SilverCashTree:
         case mtccFishNo.GreenCashTree:
         case mtccFishNo.GoldCashTree:
         case mtccFishNo.FourFish:
         case mtccFishNo.ThreeFishSmall:
         case mtccFishNo.ThreeFishBig:
         case mtccFishNo.Bottle:
         case mtccFishNo.Volcano:
          return 0;
        }
        return 90;
      }
      getLockonAnchor(fish) {
        switch (fish.no) {
         case mtccFishNo.ButterflyFish:
          return cc.v2(.6, .5);

         case mtccFishNo.SwordFish:
         case mtccFishNo.MantaRay:
          return cc.v2(.7, .5);

         case mtccFishNo.GrouperFish:
         case mtccFishNo.SilverShark:
         case mtccFishNo.GoldShark:
          return cc.v2(.8, .5);

         case mtccFishNo.Bottle:
          return cc.v2(.35, .5);

         case mtccFishNo.KnifeFish:
          return cc.v2(.8, .5);
        }
        return cc.v2(.5, .5);
      }
      getLockOnScale(fish) {
        switch (fish.no) {
         case mtccFishNo.PufferFish:
         case mtccFishNo.Lobster:
          return .8;

         case mtccFishNo.FourFish:
         case mtccFishNo.ThreeFishSmall:
          return .2;

         case mtccFishNo.ThreeFishBig:
          return .225;

         case mtccFishNo.SilverCashTree:
         case mtccFishNo.GreenCashTree:
         case mtccFishNo.GoldCashTree:
          return .3;

         case mtccFishNo.SwordFish:
         case mtccFishNo.SilverShark:
         case mtccFishNo.GoldShark:
          return .4;

         case mtccFishNo.DragonSword:
          return .45;

         case mtccFishNo.Turtle:
         case mtccFishNo.ButterflyFish:
         case mtccFishNo.MantaRay:
         case mtccFishNo.Volcano:
          return .5;

         case mtccFishNo.KnifeFish:
         case mtccFishNo.GrouperFish:
         case mtccFishNo.EverChanging:
         case mtccFishNo.Bottle:
          return .6;

         default:
          return 1;
        }
        return 1;
      }
    }
    exports.FishLockOnHandler_MTCC = FishLockOnHandler_MTCC;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-FishLockOnHandler_MTDF": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "8c620tC0qBDepeWCmN0OulJ", "MT3SETB-FishLockOnHandler_MTDF");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishLockOnHandler_MTDF = exports.mtdfFishNo = void 0;
    var mtdfFishNo;
    (function(mtdfFishNo) {
      mtdfFishNo[mtdfFishNo["None"] = 0] = "None";
      mtdfFishNo[mtdfFishNo["RedFish"] = 1] = "RedFish";
      mtdfFishNo[mtdfFishNo["BlueFish"] = 2] = "BlueFish";
      mtdfFishNo[mtdfFishNo["YellowFish"] = 3] = "YellowFish";
      mtdfFishNo[mtdfFishNo["ButterflyFish"] = 4] = "ButterflyFish";
      mtdfFishNo[mtdfFishNo["BeardFish"] = 5] = "BeardFish";
      mtdfFishNo[mtdfFishNo["KelpFish"] = 6] = "KelpFish";
      mtdfFishNo[mtdfFishNo["ClownFish"] = 7] = "ClownFish";
      mtdfFishNo[mtdfFishNo["PufferFish"] = 8] = "PufferFish";
      mtdfFishNo[mtdfFishNo["ZebraFish"] = 9] = "ZebraFish";
      mtdfFishNo[mtdfFishNo["Turtle"] = 10] = "Turtle";
      mtdfFishNo[mtdfFishNo["AnglerFish"] = 11] = "AnglerFish";
      mtdfFishNo[mtdfFishNo["GoldShark"] = 12] = "GoldShark";
      mtdfFishNo[mtdfFishNo["GoldMarlin"] = 13] = "GoldMarlin";
      mtdfFishNo[mtdfFishNo["GoldManta"] = 14] = "GoldManta";
      mtdfFishNo[mtdfFishNo["ShieldFish"] = 15] = "ShieldFish";
      mtdfFishNo[mtdfFishNo["BigKingFish"] = 16] = "BigKingFish";
      mtdfFishNo[mtdfFishNo["GoldDolphin"] = 17] = "GoldDolphin";
      mtdfFishNo[mtdfFishNo["BigGoldShark"] = 18] = "BigGoldShark";
      mtdfFishNo[mtdfFishNo["SuperBomb"] = 19] = "SuperBomb";
      mtdfFishNo[mtdfFishNo["Dragon"] = 20] = "Dragon";
      mtdfFishNo[mtdfFishNo["SimilarBomb"] = 21] = "SimilarBomb";
      mtdfFishNo[mtdfFishNo["EverChanging"] = 22] = "EverChanging";
    })(mtdfFishNo = exports.mtdfFishNo || (exports.mtdfFishNo = {}));
    class FishLockOnHandler_MTDF {
      getLockonRotation(fish) {
        switch (fish.no) {
         case mtdfFishNo.SimilarBomb:
         case mtdfFishNo.SuperBomb:
          return -90;
        }
        return 0;
      }
      getLockonAnchor(fish) {
        switch (fish.no) {
         case mtdfFishNo.Dragon:
         case mtdfFishNo.BigGoldShark:
         case mtdfFishNo.GoldDolphin:
         case mtdfFishNo.BigKingFish:
         case mtdfFishNo.ShieldFish:
          return cc.v2(.7, .5);

         case mtdfFishNo.GoldManta:
          return cc.v2(.8, .5);

         case mtdfFishNo.GoldMarlin:
         case mtdfFishNo.GoldShark:
          return cc.v2(.6, .5);
        }
        return cc.v2(.5, .5);
      }
      getLockOnScale(fish) {
        switch (fish.no) {
         case mtdfFishNo.Dragon:
         case mtdfFishNo.GoldDolphin:
         case mtdfFishNo.BigGoldShark:
         case mtdfFishNo.BigKingFish:
         case mtdfFishNo.ShieldFish:
         case mtdfFishNo.GoldMarlin:
          return .3;

         case mtdfFishNo.GoldShark:
          return .4;

         case mtdfFishNo.SimilarBomb:
         case mtdfFishNo.EverChanging:
         case mtdfFishNo.GoldManta:
         case mtdfFishNo.Turtle:
          return .5;

         case mtdfFishNo.SuperBomb:
          return .6;

         case mtdfFishNo.AnglerFish:
          return .8;
        }
        return 1;
      }
    }
    exports.FishLockOnHandler_MTDF = FishLockOnHandler_MTDF;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-FishLockOnHandler_MTDN": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ee99ewUss9Cnp/odaXXJcTq", "MT3SETB-FishLockOnHandler_MTDN");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishLockOnHandler_MTDN = exports.mtdnFishNo = void 0;
    var mtdnFishNo;
    (function(mtdnFishNo) {
      mtdnFishNo[mtdnFishNo["None"] = 0] = "None";
      mtdnFishNo[mtdnFishNo["Gurnard"] = 1] = "Gurnard";
      mtdnFishNo[mtdnFishNo["YellowFish"] = 2] = "YellowFish";
      mtdnFishNo[mtdnFishNo["EyeFish"] = 3] = "EyeFish";
      mtdnFishNo[mtdnFishNo["ZebraFish"] = 4] = "ZebraFish";
      mtdnFishNo[mtdnFishNo["ClownFish"] = 5] = "ClownFish";
      mtdnFishNo[mtdnFishNo["CatFish"] = 6] = "CatFish";
      mtdnFishNo[mtdnFishNo["SurgeonFish"] = 7] = "SurgeonFish";
      mtdnFishNo[mtdnFishNo["AnglerFish"] = 8] = "AnglerFish";
      mtdnFishNo[mtdnFishNo["BigHeadFish"] = 9] = "BigHeadFish";
      mtdnFishNo[mtdnFishNo["Turtle"] = 10] = "Turtle";
      mtdnFishNo[mtdnFishNo["Anchovy"] = 11] = "Anchovy";
      mtdnFishNo[mtdnFishNo["ButterflyFish"] = 12] = "ButterflyFish";
      mtdnFishNo[mtdnFishNo["GrouperFish"] = 13] = "GrouperFish";
      mtdnFishNo[mtdnFishNo["SwordFish"] = 14] = "SwordFish";
      mtdnFishNo[mtdnFishNo["MantaRay"] = 15] = "MantaRay";
      mtdnFishNo[mtdnFishNo["SilverShark"] = 16] = "SilverShark";
      mtdnFishNo[mtdnFishNo["GoldShark"] = 17] = "GoldShark";
      mtdnFishNo[mtdnFishNo["Goku"] = 18] = "Goku";
      mtdnFishNo[mtdnFishNo["GoldenRod"] = 19] = "GoldenRod";
      mtdnFishNo[mtdnFishNo["LocalBomb"] = 20] = "LocalBomb";
      mtdnFishNo[mtdnFishNo["Everchanging"] = 21] = "Everchanging";
      mtdnFishNo[mtdnFishNo["Mermaid"] = 22] = "Mermaid";
      mtdnFishNo[mtdnFishNo["GoldDragon"] = 23] = "GoldDragon";
      mtdnFishNo[mtdnFishNo["TwoHeadFish"] = 24] = "TwoHeadFish";
      mtdnFishNo[mtdnFishNo["RedGurnard"] = 25] = "RedGurnard";
      mtdnFishNo[mtdnFishNo["RedYellowFish"] = 26] = "RedYellowFish";
      mtdnFishNo[mtdnFishNo["RedEyeFish"] = 27] = "RedEyeFish";
      mtdnFishNo[mtdnFishNo["RedZebraFish"] = 28] = "RedZebraFish";
      mtdnFishNo[mtdnFishNo["RedClownFish"] = 29] = "RedClownFish";
      mtdnFishNo[mtdnFishNo["RedCatFish"] = 30] = "RedCatFish";
      mtdnFishNo[mtdnFishNo["RedSurgeonFish"] = 31] = "RedSurgeonFish";
      mtdnFishNo[mtdnFishNo["RedBigHeadFish"] = 32] = "RedBigHeadFish";
      mtdnFishNo[mtdnFishNo["RedTurtle"] = 33] = "RedTurtle";
      mtdnFishNo[mtdnFishNo["RedAnchovy"] = 34] = "RedAnchovy";
      mtdnFishNo[mtdnFishNo["RedButterflyFish"] = 35] = "RedButterflyFish";
      mtdnFishNo[mtdnFishNo["RedGrouperFish"] = 36] = "RedGrouperFish";
      mtdnFishNo[mtdnFishNo["SimilarBomb"] = 37] = "SimilarBomb";
    })(mtdnFishNo = exports.mtdnFishNo || (exports.mtdnFishNo = {}));
    class FishLockOnHandler_MTDN {
      getLockonRotation(fish) {
        switch (fish.no) {
         case mtdnFishNo.Goku:
         case mtdnFishNo.Everchanging:
          return 0;
        }
        return 90;
      }
      getLockonAnchor(fish) {
        switch (fish.no) {
         case mtdnFishNo.LocalBomb:
         case mtdnFishNo.GoldenRod:
          return cc.v2(.7, .5);

         case mtdnFishNo.TwoHeadFish:
         case mtdnFishNo.GoldDragon:
          return cc.v2(.65, .5);

         case mtdnFishNo.SilverShark:
         case mtdnFishNo.GoldShark:
          return cc.v2(.75, .5);

         case mtdnFishNo.RedGurnard:
          return cc.v2(.8, .5);

         case mtdnFishNo.RedYellowFish:
         case mtdnFishNo.Mermaid:
         case mtdnFishNo.RedCatFish:
         case mtdnFishNo.RedZebraFish:
         case mtdnFishNo.RedSurgeonFish:
         case mtdnFishNo.RedButterflyFish:
         case mtdnFishNo.ButterflyFish:
         case mtdnFishNo.Anchovy:
         case mtdnFishNo.RedAnchovy:
         case mtdnFishNo.RedEyeFish:
         case mtdnFishNo.RedClownFish:
         case mtdnFishNo.MantaRay:
          return cc.v2(.7, .5);

         case mtdnFishNo.Goku:
          return cc.v2(.5, .4);
        }
        return cc.v2(.5, .5);
      }
      getLockOnScale(fish) {
        switch (fish.no) {
         case mtdnFishNo.Anchovy:
         case mtdnFishNo.BigHeadFish:
         case mtdnFishNo.ButterflyFish:
         case mtdnFishNo.CatFish:
         case mtdnFishNo.ClownFish:
         case mtdnFishNo.EyeFish:
         case mtdnFishNo.Gurnard:
         case mtdnFishNo.Turtle:
         case mtdnFishNo.GrouperFish:
         case mtdnFishNo.SurgeonFish:
         case mtdnFishNo.ZebraFish:
         case mtdnFishNo.RedBigHeadFish:
         case mtdnFishNo.RedButterflyFish:
         case mtdnFishNo.RedCatFish:
         case mtdnFishNo.RedClownFish:
         case mtdnFishNo.RedYellowFish:
         case mtdnFishNo.RedEyeFish:
         case mtdnFishNo.RedGurnard:
         case mtdnFishNo.RedTurtle:
         case mtdnFishNo.RedGrouperFish:
         case mtdnFishNo.RedSurgeonFish:
         case mtdnFishNo.RedZebraFish:
         case mtdnFishNo.RedAnchovy:
          return .5;

         case mtdnFishNo.GoldDragon:
          return .3;

         case mtdnFishNo.GoldenRod:
          return .25;

         case mtdnFishNo.TwoHeadFish:
         case mtdnFishNo.Goku:
         case mtdnFishNo.Mermaid:
          return .35;

         case mtdnFishNo.SwordFish:
         case mtdnFishNo.MantaRay:
         case mtdnFishNo.SilverShark:
         case mtdnFishNo.GoldShark:
         case mtdnFishNo.Everchanging:
          return .4;

         case mtdnFishNo.Turtle:
         case mtdnFishNo.ButterflyFish:
          return .7;

         case mtdnFishNo.GrouperFish:
          return .6;

         case mtdnFishNo.SimilarBomb:
          return .4;

         case mtdnFishNo.LocalBomb:
          return .35;
        }
        return 1;
      }
    }
    exports.FishLockOnHandler_MTDN = FishLockOnHandler_MTDN;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-FishLockOnHandler_MTGF": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "3b662exEXpER691eI8IG8gV", "MT3SETB-FishLockOnHandler_MTGF");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishLockOnHandler_MTGF = exports.mtgfFishNo = void 0;
    var mtgfFishNo;
    (function(mtgfFishNo) {
      mtgfFishNo[mtgfFishNo["None"] = 0] = "None";
      mtgfFishNo[mtgfFishNo["Gurnard"] = 1] = "Gurnard";
      mtgfFishNo[mtgfFishNo["YellowFish"] = 2] = "YellowFish";
      mtgfFishNo[mtgfFishNo["GreenFish"] = 3] = "GreenFish";
      mtgfFishNo[mtgfFishNo["GoldFish"] = 4] = "GoldFish";
      mtgfFishNo[mtgfFishNo["ZebraFish"] = 5] = "ZebraFish";
      mtgfFishNo[mtgfFishNo["ClownFish"] = 6] = "ClownFish";
      mtgfFishNo[mtgfFishNo["PufferFish"] = 7] = "PufferFish";
      mtgfFishNo[mtgfFishNo["Lobster"] = 8] = "Lobster";
      mtgfFishNo[mtgfFishNo["AnglerFish"] = 9] = "AnglerFish";
      mtgfFishNo[mtgfFishNo["Turtle"] = 10] = "Turtle";
      mtgfFishNo[mtgfFishNo["KnifeFish"] = 11] = "KnifeFish";
      mtgfFishNo[mtgfFishNo["ButterflyFish"] = 12] = "ButterflyFish";
      mtgfFishNo[mtgfFishNo["GrouperFish"] = 13] = "GrouperFish";
      mtgfFishNo[mtgfFishNo["LionFish"] = 14] = "LionFish";
      mtgfFishNo[mtgfFishNo["MantaRay"] = 15] = "MantaRay";
      mtgfFishNo[mtgfFishNo["SilverShark"] = 16] = "SilverShark";
      mtgfFishNo[mtgfFishNo["GoldShark"] = 17] = "GoldShark";
      mtgfFishNo[mtgfFishNo["Goku"] = 18] = "Goku";
      mtgfFishNo[mtgfFishNo["GoldenRod"] = 19] = "GoldenRod";
      mtgfFishNo[mtgfFishNo["JourneyToWest"] = 20] = "JourneyToWest";
      mtgfFishNo[mtgfFishNo["GoodFortune"] = 21] = "GoodFortune";
      mtgfFishNo[mtgfFishNo["EverChanging"] = 22] = "EverChanging";
      mtgfFishNo[mtgfFishNo["ScopeBomb"] = 23] = "ScopeBomb";
      mtgfFishNo[mtgfFishNo["GoldCrocodile"] = 24] = "GoldCrocodile";
      mtgfFishNo[mtgfFishNo["Crocodile"] = 25] = "Crocodile";
      mtgfFishNo[mtgfFishNo["TwoHeadGoldCrocodile"] = 26] = "TwoHeadGoldCrocodile";
      mtgfFishNo[mtgfFishNo["TripleCrownA"] = 27] = "TripleCrownA";
      mtgfFishNo[mtgfFishNo["TripleCrownB"] = 28] = "TripleCrownB";
      mtgfFishNo[mtgfFishNo["TripleCrownC"] = 29] = "TripleCrownC";
      mtgfFishNo[mtgfFishNo["QuadCrownA"] = 30] = "QuadCrownA";
      mtgfFishNo[mtgfFishNo["QuadCrownB"] = 31] = "QuadCrownB";
      mtgfFishNo[mtgfFishNo["QuadCrownC"] = 32] = "QuadCrownC";
    })(mtgfFishNo = exports.mtgfFishNo || (exports.mtgfFishNo = {}));
    class FishLockOnHandler_MTGF {
      getLockonRotation(fish) {
        switch (fish.no) {
         case mtgfFishNo.ScopeBomb:
          return -90;

         case mtgfFishNo.GoldenRod:
         case mtgfFishNo.TripleCrownA:
         case mtgfFishNo.TripleCrownB:
         case mtgfFishNo.TripleCrownC:
         case mtgfFishNo.QuadCrownA:
         case mtgfFishNo.QuadCrownB:
         case mtgfFishNo.QuadCrownC:
         case mtgfFishNo.EverChanging:
         case mtgfFishNo.GoodFortune:
         case mtgfFishNo.Goku:
         case mtgfFishNo.JourneyToWest:
          return 0;
        }
        return 90;
      }
      getLockonAnchor(fish) {
        switch (fish.no) {
         case mtgfFishNo.SilverShark:
         case mtgfFishNo.GoldShark:
          return cc.v2(.8, .5);

         case mtgfFishNo.ButterflyFish:
          return cc.v2(.6, .5);

         case mtgfFishNo.GrouperFish:
         case mtgfFishNo.KnifeFish:
         case mtgfFishNo.LionFish:
         case mtgfFishNo.MantaRay:
          return cc.v2(.7, .5);

         case mtgfFishNo.TripleCrownA:
         case mtgfFishNo.TripleCrownB:
         case mtgfFishNo.TripleCrownC:
         case mtgfFishNo.QuadCrownA:
         case mtgfFishNo.QuadCrownB:
         case mtgfFishNo.QuadCrownC:
          return cc.v2(.65, .5);

         case mtgfFishNo.GoldCrocodile:
         case mtgfFishNo.TwoHeadGoldCrocodile:
          return cc.v2(.6, .5);

         case mtgfFishNo.Goku:
          return cc.v2(.7, .5);
        }
        return cc.v2(.5, .5);
      }
      getLockOnScale(fish) {
        switch (fish.no) {
         case mtgfFishNo.ButterflyFish:
         case mtgfFishNo.Turtle:
          return .5;

         case mtgfFishNo.GoldenRod:
          return .35;

         case mtgfFishNo.EverChanging:
         case mtgfFishNo.GoodFortune:
         case mtgfFishNo.JourneyToWest:
         case mtgfFishNo.Goku:
          return .35;

         case mtgfFishNo.MantaRay:
          return .45;

         case mtgfFishNo.TripleCrownA:
         case mtgfFishNo.TripleCrownB:
         case mtgfFishNo.TripleCrownC:
         case mtgfFishNo.QuadCrownA:
         case mtgfFishNo.QuadCrownB:
         case mtgfFishNo.QuadCrownC:
         case mtgfFishNo.Crocodile:
          return .3;

         case mtgfFishNo.GoldCrocodile:
         case mtgfFishNo.TwoHeadGoldCrocodile:
          return .25;
        }
        return .45;
      }
    }
    exports.FishLockOnHandler_MTGF = FishLockOnHandler_MTGF;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-FishLockOnHandler_MTGTF": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "86a332KWnFGuJvrGc9tddR0", "MT3SETB-FishLockOnHandler_MTGTF");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishLockOnHandler_MTGTF = exports.mtgtfFishNo = void 0;
    var mtgtfFishNo;
    (function(mtgtfFishNo) {
      mtgtfFishNo[mtgtfFishNo["None"] = 0] = "None";
      mtgtfFishNo[mtgtfFishNo["Gurnard"] = 1] = "Gurnard";
      mtgtfFishNo[mtgtfFishNo["GreenFish"] = 2] = "GreenFish";
      mtgtfFishNo[mtgtfFishNo["YellowFish"] = 3] = "YellowFish";
      mtgtfFishNo[mtgtfFishNo["BlowFish"] = 4] = "BlowFish";
      mtgtfFishNo[mtgtfFishNo["ZebraFish"] = 5] = "ZebraFish";
      mtgtfFishNo[mtgtfFishNo["ClownFish"] = 6] = "ClownFish";
      mtgtfFishNo[mtgtfFishNo["PufferFish"] = 7] = "PufferFish";
      mtgtfFishNo[mtgtfFishNo["Lobster"] = 8] = "Lobster";
      mtgtfFishNo[mtgtfFishNo["AnglerFish"] = 9] = "AnglerFish";
      mtgtfFishNo[mtgtfFishNo["Turtle"] = 10] = "Turtle";
      mtgtfFishNo[mtgtfFishNo["KnifeFish"] = 11] = "KnifeFish";
      mtgtfFishNo[mtgtfFishNo["ButterflyFish"] = 12] = "ButterflyFish";
      mtgtfFishNo[mtgtfFishNo["GrouperFish"] = 13] = "GrouperFish";
      mtgtfFishNo[mtgtfFishNo["SwordFish"] = 14] = "SwordFish";
      mtgtfFishNo[mtgtfFishNo["MantaRay"] = 15] = "MantaRay";
      mtgtfFishNo[mtgtfFishNo["SilverShark"] = 16] = "SilverShark";
      mtgtfFishNo[mtgtfFishNo["GoldShark"] = 17] = "GoldShark";
      mtgtfFishNo[mtgtfFishNo["Dragon"] = 18] = "Dragon";
      mtgtfFishNo[mtgtfFishNo["BigHeadShark"] = 19] = "BigHeadShark";
      mtgtfFishNo[mtgtfFishNo["EverChanging"] = 20] = "EverChanging";
      mtgtfFishNo[mtgtfFishNo["GoldenToad"] = 100] = "GoldenToad";
      mtgtfFishNo[mtgtfFishNo["SuperBomb"] = 101] = "SuperBomb";
      mtgtfFishNo[mtgtfFishNo["ScopeBomb"] = 102] = "ScopeBomb";
      mtgtfFishNo[mtgtfFishNo["SimilarBomb"] = 103] = "SimilarBomb";
      mtgtfFishNo[mtgtfFishNo["ThreeFish"] = 104] = "ThreeFish";
      mtgtfFishNo[mtgtfFishNo["FourFish"] = 105] = "FourFish";
      mtgtfFishNo[mtgtfFishNo["TwoFish"] = 106] = "TwoFish";
    })(mtgtfFishNo = exports.mtgtfFishNo || (exports.mtgtfFishNo = {}));
    class FishLockOnHandler_MTGTF {
      getLockonRotation(fish) {
        switch (fish.no) {
         case mtgtfFishNo.BigHeadShark:
          return 0;
        }
        return 90;
      }
      getLockonAnchor(fish) {
        switch (fish.no) {
         case mtgtfFishNo.SilverShark:
         case mtgtfFishNo.GoldShark:
          return cc.v2(.7, .5);

         case mtgtfFishNo.MantaRay:
          return cc.v2(.6, .525);

         case mtgtfFishNo.BigHeadShark:
          return cc.v2(.55, .6);

         case mtgtfFishNo.ButterflyFish:
          return cc.v2(.6, .55);

         case mtgtfFishNo.GrouperFish:
          return cc.v2(.575, .5);
        }
        return cc.v2(.5, .5);
      }
      getLockOnScale(fish) {
        switch (fish.no) {
         case mtgtfFishNo.PufferFish:
         case mtgtfFishNo.Lobster:
         case mtgtfFishNo.FourFish:
         case mtgtfFishNo.TwoFish:
          return .8;

         case mtgtfFishNo.Dragon:
          return .2;

         case mtgtfFishNo.BigHeadShark:
          return .25;

         case mtgtfFishNo.MantaRay:
         case mtgtfFishNo.GrouperFish:
          return .5;

         case mtgtfFishNo.SwordFish:
         case mtgtfFishNo.SilverShark:
         case mtgtfFishNo.GoldShark:
         case mtgtfFishNo.GoldenToad:
          return .4;

         case mtgtfFishNo.Turtle:
         case mtgtfFishNo.EverChanging:
          return .7;

         case mtgtfFishNo.ButterflyFish:
         case mtgtfFishNo.KnifeFish:
         case mtgtfFishNo.SuperBomb:
         case mtgtfFishNo.ScopeBomb:
         case mtgtfFishNo.SimilarBomb:
         case mtgtfFishNo.ThreeFish:
          return .6;
        }
        return 1;
      }
    }
    exports.FishLockOnHandler_MTGTF = FishLockOnHandler_MTGTF;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-FishLockOnHandler_MTLKF": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "98042MNtJVBSqpgCIcPc4mY", "MT3SETB-FishLockOnHandler_MTLKF");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishLockOnHandler_MTLKF = exports.mtlkfFishNo = void 0;
    var mtlkfFishNo;
    (function(mtlkfFishNo) {
      mtlkfFishNo[mtlkfFishNo["None"] = 0] = "None";
      mtlkfFishNo[mtlkfFishNo["Gurnard"] = 1] = "Gurnard";
      mtlkfFishNo[mtlkfFishNo["GreenFish"] = 2] = "GreenFish";
      mtlkfFishNo[mtlkfFishNo["YellowFish"] = 3] = "YellowFish";
      mtlkfFishNo[mtlkfFishNo["BlowFish"] = 4] = "BlowFish";
      mtlkfFishNo[mtlkfFishNo["ZebraFish"] = 5] = "ZebraFish";
      mtlkfFishNo[mtlkfFishNo["ClownFish"] = 6] = "ClownFish";
      mtlkfFishNo[mtlkfFishNo["PufferFish"] = 7] = "PufferFish";
      mtlkfFishNo[mtlkfFishNo["Lobster"] = 8] = "Lobster";
      mtlkfFishNo[mtlkfFishNo["AnglerFish"] = 9] = "AnglerFish";
      mtlkfFishNo[mtlkfFishNo["Turtle"] = 10] = "Turtle";
      mtlkfFishNo[mtlkfFishNo["KnifeFish"] = 11] = "KnifeFish";
      mtlkfFishNo[mtlkfFishNo["ButterflyFish"] = 12] = "ButterflyFish";
      mtlkfFishNo[mtlkfFishNo["GrouperFish"] = 13] = "GrouperFish";
      mtlkfFishNo[mtlkfFishNo["SwordFish"] = 14] = "SwordFish";
      mtlkfFishNo[mtlkfFishNo["MantaRay"] = 15] = "MantaRay";
      mtlkfFishNo[mtlkfFishNo["SilverShark"] = 16] = "SilverShark";
      mtlkfFishNo[mtlkfFishNo["GoldShark"] = 17] = "GoldShark";
      mtlkfFishNo[mtlkfFishNo["Dragon"] = 18] = "Dragon";
      mtlkfFishNo[mtlkfFishNo["BigHeadShark"] = 19] = "BigHeadShark";
      mtlkfFishNo[mtlkfFishNo["EverChanging"] = 20] = "EverChanging";
      mtlkfFishNo[mtlkfFishNo["Penguin"] = 100] = "Penguin";
      mtlkfFishNo[mtlkfFishNo["LiKui"] = 101] = "LiKui";
      mtlkfFishNo[mtlkfFishNo["FreezeBomb"] = 102] = "FreezeBomb";
      mtlkfFishNo[mtlkfFishNo["ScopeBomb"] = 103] = "ScopeBomb";
      mtlkfFishNo[mtlkfFishNo["SuperBomb"] = 104] = "SuperBomb";
      mtlkfFishNo[mtlkfFishNo["SimilarBomb"] = 105] = "SimilarBomb";
      mtlkfFishNo[mtlkfFishNo["FourFish"] = 106] = "FourFish";
      mtlkfFishNo[mtlkfFishNo["ThreeFish"] = 107] = "ThreeFish";
    })(mtlkfFishNo = exports.mtlkfFishNo || (exports.mtlkfFishNo = {}));
    class FishLockOnHandler_MTLKF {
      getLockonRotation(fish) {
        switch (fish.no) {
         case mtlkfFishNo.Penguin:
         case mtlkfFishNo.LiKui:
         case mtlkfFishNo.FreezeBomb:
         case mtlkfFishNo.ScopeBomb:
         case mtlkfFishNo.SuperBomb:
          return 0;
        }
        return 90;
      }
      getLockonAnchor(fish) {
        switch (fish.no) {
         case mtlkfFishNo.ButterflyFish:
          return cc.v2(.6, .5);

         case mtlkfFishNo.LiKui:
          return cc.v2(.45, .65);

         case mtlkfFishNo.SwordFish:
         case mtlkfFishNo.MantaRay:
          return cc.v2(.7, .5);

         case mtlkfFishNo.KnifeFish:
         case mtlkfFishNo.GrouperFish:
         case mtlkfFishNo.SilverShark:
         case mtlkfFishNo.GoldShark:
          return cc.v2(.8, .5);
        }
        return cc.v2(.5, .5);
      }
      getLockOnScale(fish) {
        switch (fish.no) {
         case mtlkfFishNo.PufferFish:
         case mtlkfFishNo.Lobster:
         case mtlkfFishNo.FourFish:
          return .8;

         case mtlkfFishNo.BigHeadShark:
          return .2;

         case mtlkfFishNo.Dragon:
          return .25;

         case mtlkfFishNo.SwordFish:
         case mtlkfFishNo.SilverShark:
         case mtlkfFishNo.GoldShark:
         case mtlkfFishNo.Penguin:
         case mtlkfFishNo.LiKui:
          return .4;

         case mtlkfFishNo.KnifeFish:
         case mtlkfFishNo.GrouperFish:
         case mtlkfFishNo.EverChanging:
         case mtlkfFishNo.SuperBomb:
         case mtlkfFishNo.SimilarBomb:
         case mtlkfFishNo.ThreeFish:
          return .6;

         case mtlkfFishNo.Turtle:
         case mtlkfFishNo.ButterflyFish:
         case mtlkfFishNo.MantaRay:
         case mtlkfFishNo.FreezeBomb:
         case mtlkfFishNo.ScopeBomb:
          return .5;
        }
        return 1;
      }
    }
    exports.FishLockOnHandler_MTLKF = FishLockOnHandler_MTLKF;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-FishLockOnHandler_MTTC": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ab0a0ko6RJLz7dDBZ5QQodN", "MT3SETB-FishLockOnHandler_MTTC");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishLockOnHandler_MTTC = exports.mttcFishNo = void 0;
    var mttcFishNo;
    (function(mttcFishNo) {
      mttcFishNo[mttcFishNo["None"] = 0] = "None";
      mttcFishNo[mttcFishNo["Gurnard"] = 1] = "Gurnard";
      mttcFishNo[mttcFishNo["GreenFish"] = 2] = "GreenFish";
      mttcFishNo[mttcFishNo["YellowFish"] = 3] = "YellowFish";
      mttcFishNo[mttcFishNo["BlowFish"] = 4] = "BlowFish";
      mttcFishNo[mttcFishNo["ZebraFish"] = 5] = "ZebraFish";
      mttcFishNo[mttcFishNo["ClownFish"] = 6] = "ClownFish";
      mttcFishNo[mttcFishNo["PufferFish"] = 7] = "PufferFish";
      mttcFishNo[mttcFishNo["Lobster"] = 8] = "Lobster";
      mttcFishNo[mttcFishNo["AnglerFish"] = 9] = "AnglerFish";
      mttcFishNo[mttcFishNo["Turtle"] = 10] = "Turtle";
      mttcFishNo[mttcFishNo["KnifeFish"] = 11] = "KnifeFish";
      mttcFishNo[mttcFishNo["ButterflyFish"] = 12] = "ButterflyFish";
      mttcFishNo[mttcFishNo["GrouperFish"] = 13] = "GrouperFish";
      mttcFishNo[mttcFishNo["SwordFish"] = 14] = "SwordFish";
      mttcFishNo[mttcFishNo["MantaRay"] = 15] = "MantaRay";
      mttcFishNo[mttcFishNo["SilverShark"] = 16] = "SilverShark";
      mttcFishNo[mttcFishNo["GoldShark"] = 17] = "GoldShark";
      mttcFishNo[mttcFishNo["EverChanging"] = 20] = "EverChanging";
      mttcFishNo[mttcFishNo["CrackyShot"] = 100] = "CrackyShot";
      mttcFishNo[mttcFishNo["SuperBomb"] = 101] = "SuperBomb";
      mttcFishNo[mttcFishNo["FourFishBomb"] = 102] = "FourFishBomb";
      mttcFishNo[mttcFishNo["KingCrocodile"] = 103] = "KingCrocodile";
      mttcFishNo[mttcFishNo["GreenCrocodile"] = 104] = "GreenCrocodile";
      mttcFishNo[mttcFishNo["GoldenCrocodile"] = 105] = "GoldenCrocodile";
      mttcFishNo[mttcFishNo["TripleCombination1"] = 106] = "TripleCombination1";
      mttcFishNo[mttcFishNo["TripleCombination2"] = 107] = "TripleCombination2";
    })(mttcFishNo = exports.mttcFishNo || (exports.mttcFishNo = {}));
    class FishLockOnHandler_MTTC {
      getLockonRotation(fish) {
        switch (fish.no) {
         case mttcFishNo.GreenCrocodile:
         case mttcFishNo.KingCrocodile:
         case mttcFishNo.GoldenCrocodile:
         case mttcFishNo.TripleCombination1:
         case mttcFishNo.TripleCombination2:
         case mttcFishNo.FourFishBomb:
         case mttcFishNo.CrackyShot:
          return 0;

         case mttcFishNo.SuperBomb:
          return 180;
        }
        return 90;
      }
      getLockonAnchor(fish) {
        switch (fish.no) {
         case mttcFishNo.KingCrocodile:
         case mttcFishNo.GreenCrocodile:
         case mttcFishNo.GoldenCrocodile:
          return cc.v2(.5, .8);

         case mttcFishNo.SuperBomb:
          return cc.v2(.6, .3);

         case mttcFishNo.GrouperFish:
         case mttcFishNo.SilverShark:
         case mttcFishNo.GoldShark:
          return cc.v2(.8, .5);

         case mttcFishNo.SwordFish:
         case mttcFishNo.MantaRay:
          return cc.v2(.7, .5);

         case mttcFishNo.ButterflyFish:
         case mttcFishNo.KnifeFish:
          return cc.v2(.6, .5);
        }
        return cc.v2(.5, .5);
      }
      getLockOnScale(fish) {
        switch (fish.no) {
         case mttcFishNo.PufferFish:
         case mttcFishNo.Lobster:
          return .8;

         case mttcFishNo.KingCrocodile:
         case mttcFishNo.GreenCrocodile:
         case mttcFishNo.GoldenCrocodile:
          return .3;

         case mttcFishNo.SilverShark:
         case mttcFishNo.GoldShark:
          return .4;

         case mttcFishNo.SwordFish:
         case mttcFishNo.MantaRay:
         case mttcFishNo.SuperBomb:
         case mttcFishNo.EverChanging:
         case mttcFishNo.KnifeFish:
         case mttcFishNo.GrouperFish:
         case mttcFishNo.CrackyShot:
          return .5;

         case mttcFishNo.Turtle:
         case mttcFishNo.ButterflyFish:
         case mttcFishNo.KnifeFish:
          return .6;

         case mttcFishNo.FourFishBomb:
         case mttcFishNo.TripleCombination1:
         case mttcFishNo.TripleCombination2:
          return .2;
        }
        return 1;
      }
    }
    exports.FishLockOnHandler_MTTC = FishLockOnHandler_MTTC;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-FishLockOnHandler": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ba5b3jJt5NL4KEGK5I3MLsA", "MT3SETB-FishLockOnHandler");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    cc._RF.pop();
  }, {} ],
  "MT3SETB-FishMenu": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "f904fsOI8VBjLRX2r+3SahU", "MT3SETB-FishMenu");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishMenu = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_utils2_1 = require("../framework/framework/MT3SETB-utils2");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishMenu = class FishMenu extends cc.Component {
      constructor() {
        super();
        this.block = null;
        this.root = null;
        this.right = null;
        this.left = null;
        this.pageLabel = null;
        this.pageButton = [];
        this.pages = [];
        this.page = null;
        this.jpDescLabel = null;
        this.myPageViews = [];
        this.myPageHandles = [];
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.fishmenu = this;
      }
      start() {
        this.change(null, "0");
      }
      show() {
        this.managePageViews();
        this.root.active = true;
        var e = MT3SETB_Comm_1.Comm.lotteryMgr.getjpBetStage(), t = MT3SETB_LangList_1.LangList.getString(MT3SETB_platform_1.checkTaDaVersion() ? 313 : 312);
        this.jpDescLabel.string = MT3SETB_utils2_1.sprintf(t, MT3SETB_Comm_1.Comm.cleanNum(e[4]), MT3SETB_Comm_1.Comm.cleanNum(e[5]), MT3SETB_Comm_1.Comm.cleanNum(e[6]), MT3SETB_Comm_1.Comm.cleanNum(e[2]), MT3SETB_Comm_1.Comm.cleanNum(e[3]), MT3SETB_Comm_1.Comm.cleanNum(e[0]), MT3SETB_Comm_1.Comm.cleanNum(e[1]));
      }
      onDestroy() {
        for (var e = 0, t = this.myPageHandles; e < t.length; e++) {
          var o = t[e];
          clearInterval(o);
        }
        this.myPageHandles.length = 0;
      }
      close() {
        this.root.active = false;
        for (var e = 0, t = this.myPageHandles; e < t.length; e++) {
          var o = t[e];
          clearInterval(o);
        }
        this.myPageHandles.length = 0;
        this.myPageViews.length = 0;
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_paytab_off);
      }
      change(e, t) {
        e;
        for (var o = parseInt(t), i = 0, r = this.pageButton.length; i < r; ++i) if (i == o) {
          this.pageButton[i].active = true;
          this.pages[i].active = true;
          e && MT3SETB_track_1.SendButton(parseInt("24" + t) + 1);
        } else {
          this.pageButton[i].active = false;
          this.pages[i].active = false;
        }
      }
      managePageViews() {
        for (var e = this, t = function(t) {
          var n = t.getComponent(cc.PageView);
          if (n) {
            var i = [];
            n.getComponentInChildren(cc.Layout).enabled = false;
            o.myPageHandles.push(setInterval(function() {
              if (t.active) {
                var o = n.getPages(), a = n.getCurrentPageIndex();
                e.pageLabel.string = a + 1 + "/" + o.length;
                for (var r = 0, s = o.length; r < s; ++r) i[r] = false;
                if (o.length > 0 && null != o[a] && (i[a] = true, n.isScrolling || n.isAutoScrolling)) {
                  var c = cc.misc.clampf(a - 1, 0, o.length - 1), l = cc.misc.clampf(a + 1, 0, o.length - 1);
                  i[c] = true;
                  i[l] = true;
                }
                for (r = 0, s = o.length; r < s; ++r) o[r].active = i[r];
              }
            }, 100));
            o.myPageViews.push(n);
          }
        }, o = this, n = 0, i = this.pages; n < i.length; n++) t(i[n]);
      }
      onRight() {
        for (var e = 0, t = this.pages; e < t.length; e++) {
          var o = t[e];
          if (o.active) {
            var n = o.getComponent(cc.PageView);
            if (n) {
              var i = n.getPages(), a = n.getCurrentPageIndex() + 1;
              i[a] && n.scrollToPage(a, .5);
            }
            break;
          }
        }
      }
      onLeft() {
        for (var e = 0, t = this.pages; e < t.length; e++) {
          var o = t[e];
          if (o.active) {
            var n = o.getComponent(cc.PageView);
            if (n) {
              var i = n.getCurrentPageIndex() - 1;
              i >= 0 && n.scrollToPage(i, .5);
            }
            break;
          }
        }
      }
    };
    __decorate([ property(cc.Node) ], FishMenu.prototype, "block", void 0);
    __decorate([ property(cc.Node) ], FishMenu.prototype, "root", void 0);
    __decorate([ property(cc.Node) ], FishMenu.prototype, "right", void 0);
    __decorate([ property(cc.Node) ], FishMenu.prototype, "left", void 0);
    __decorate([ property(cc.Label) ], FishMenu.prototype, "pageLabel", void 0);
    __decorate([ property([ cc.Node ]) ], FishMenu.prototype, "pageButton", void 0);
    __decorate([ property([ cc.Node ]) ], FishMenu.prototype, "pages", void 0);
    __decorate([ property(cc.Node) ], FishMenu.prototype, "page", void 0);
    __decorate([ property(cc.RichText) ], FishMenu.prototype, "jpDescLabel", void 0);
    FishMenu = __decorate([ ccclass ], FishMenu);
    exports.FishMenu = FishMenu;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "../system/MT3SETB-LangList": "MT3SETB-LangList"
  } ],
  "MT3SETB-FishMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "8e61eIXniRAoL+bx9H3X60a", "MT3SETB-FishMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishMgr = void 0;
    const MT3SETB_timeline_1 = require("../common/api/MT3SETB-timeline");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const MT3SETB_SoundConst_1 = require("../gameplay/MT3SETB-SoundConst");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB__main_1 = require("../MT3SETB-_main");
    const {ccclass: ccclass} = cc._decorator;
    const FISH_SWIM_OUT_DURATION = 2;
    const FISH_SWIM_OUT_MAX_SPEED = 15;
    const LIGHTNING_SHARK_TARGETS_MIN = 3;
    const LIGHTNING_SHARK_TARGETS_MAX = 15;
    let FishMgr = class FishMgr extends cc.Component {
      constructor() {
        super();
        this.isShowTips = false;
        this.fishTipCreators = [];
        this.bossCount = 0;
        this.summonBossCount = 0;
        this.spawnNode = null;
        this.underFishNode = null;
        this.isRotated = false;
        this.torpedoFilterFlag = false;
        this.fishes = {};
        this.addFishGroups = [ 892, 895, 897, 903, 901 ];
        this.addFishCD = 0;
        this.addScriptCnt = 0;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.fishMgr = this;
        this.spawnNode = cc.find("SpawnNode", MT3SETB_Comm_1.Comm.node.fishLayer);
        this.underFishNode = cc.find("UnderFishNode", MT3SETB_Comm_1.Comm.node.fishLayer);
      }
      onDestroy() {
        MT3SETB_timeline_1.getPathMoveMgr().removeAllActions();
      }
      update(e) {
        var me = this;
        if (MT3SETB_timeline_1.GetTimeLine()) {
          MT3SETB_timeline_1.GetTimeLine().GetRawEvent().forEach(function(e) {
            MT3SETB_timeline_1.GetTimeLine().AddEvent(e);
          });
          var o = MT3SETB_timeline_1.GetTimeLine().update(e);
          MT3SETB_timeline_1.GetTimeLine().EmitEvents().forEach(function(e) {
            switch (e.name) {
             case "startGame":
              me.scheduleOnce(() => {
                var _a;
                null === (_a = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _a ? void 0 : _a.hide();
              }, 1);
              break;

             case "changeBg":
              me.performBgSceneChange(e.data);
              break;

             case "waves":
              me.performFishWaving();
              me.addScriptCnt = 0;
              break;

             case "addfish":
              me.addFish(e.data, e.delay, e.time);
              break;

             case "specialfish":
              me.performSpecFishComing(e.data.no);
              break;

             case "bossWarning":
              me.performBossComing(e.data);
              break;

             case "playBgAnim":
              me.performBgSceneAnimation(e.data);
              break;

             case "switchBgMusic":
              me.performBgMusicChange(e.data);
              break;

             case "shake":
              me.performShake(e.data);
              break;

             case "specialBossNotify":
              me.performSpecialBossNotify(e.data);
              break;

             case "init":
              me.reset();
            }
          });
          MT3SETB_timeline_1.GetTimeLine().updatePathMoveMgr(o);
          if (this.addFishCD <= 0 && MT3SETB_timeline_1.getRawEventLength() <= 0 && MT3SETB_timeline_1.getEventLength() <= 0 && this.summonBossCount > 0 && (MT3SETB_timeline_1.AddTimeLine(this.addFishGroups[MT3SETB_Comm_1.Comm.iRand(0, this.addFishGroups.length - 1)]), 
          this.addFishCD = 5, this.addScriptCnt++, this.addScriptCnt > 5)) {
            var n = this.getAllFishes(), r = "";
            n.forEach(function(e) {
              me.isSummonBossFish(e) && (r = r + e.getFishNo() + ",");
            });
          }
          this.addFishCD -= e;
        }
      }
      leaveTable() {
        this.reset();
      }
      reset() {
        this.removeAllFishes();
      }
      removeAllFishes() {
        for (var e in this.fishes) {
          var t = this.fishes[e];
          t && this.delFish(t, false, true);
        }
      }
      getDummyFish(no) {
        var i = MT3SETB_Comm_1.Comm.dataMgr.getFish(no - 1).getComponent(MT3SETB_Fish_1.Fish);
        i.isBundleFish && i.setUsed(true);
        return i;
      }
      getAllFishInBombRange(fishId, bombRange) {
        let result = [];
        result.push(fishId);
        var curFish = this.fishes[fishId];
        if (curFish) if (curFish.getFishNo() == MT3SETB_Game_1.mtfBFishNo.LightningShark) for (let id of this.getLightningSharkTargets()) result.push(id); else for (var e in this.fishes) {
          var t = this.fishes[e];
          t.isFishInBombRange(this.fishes[fishId], bombRange) && this.isFishOnScreen(t) && this.isCollateralFish(t) && result.push(t.getFishId());
        }
        return result;
      }
      getLightningSharkTargets() {
        let targetFishIds = [];
        let targetDict = {};
        for (let id in this.fishes) {
          let fish = this.fishes[id];
          if (!this.isNormalFish(fish) || !this.isFishOnScreen(fish) || fish.isDying()) continue;
          let fishId = fish.getFishNo();
          let fishList = targetDict[fishId];
          if (null == fishList) {
            targetDict[fishId] = [ fish.getFishId() ];
            targetFishIds.push(fishId);
          } else fishList.push(fish.getFishId());
        }
        for (let i = targetFishIds.length - 1; i >= 0; i--) targetDict[targetFishIds[i]].length < LIGHTNING_SHARK_TARGETS_MIN && targetFishIds.pop();
        if (0 == targetFishIds.length) return [];
        let targetFishId = targetFishIds[Math.floor(Math.random() * targetFishIds.length)];
        if (targetDict[targetFishId].length > LIGHTNING_SHARK_TARGETS_MAX) {
          let targets = targetDict[targetFishId];
          let numToKeep = Math.floor(Math.random() * (LIGHTNING_SHARK_TARGETS_MAX - LIGHTNING_SHARK_TARGETS_MIN + 1)) + LIGHTNING_SHARK_TARGETS_MIN;
          return targets.slice(0, numToKeep);
        }
        return targetDict[targetFishId];
      }
      isFishOnScreen(targetFish) {
        if (null == targetFish || null == targetFish.node) return false;
        if (!targetFish.isAllowLockOn) return false;
        if (targetFish.isAlwaysOnScreen) return true;
        let fishWorldPos = targetFish.node.convertToWorldSpaceAR(cc.Vec2.ZERO);
        if (targetFish.hasLongBody) {
          for (let collider of targetFish.touchColliders) {
            let colliderWorldPos = collider.node.convertToWorldSpaceAR(cc.Vec2.ZERO);
            if (this.isFishPosOnScreen(colliderWorldPos)) return true;
          }
          return false;
        }
        return this.isFishPosOnScreen(fishWorldPos);
      }
      isFishPosOnScreen(fishWorldPos) {
        let x = fishWorldPos.x;
        let y = fishWorldPos.y;
        let ds = cc.view.getDesignResolutionSize(), vs = cc.view.getVisibleSize(), width = ds.width, height = Math.min(ds.height, vs.height);
        vs.height > ds.height && (y -= (vs.height - ds.height) / 2);
        return x >= 40 && x <= width - 40 && y >= 40 && y <= height - 40;
      }
      addFish(fishData, delay = 0, time = 0) {
        let elapsed = MT3SETB_timeline_1.GetTimeLine().serverTime - fishData.startTime;
        var me = this, fish = MT3SETB_Comm_1.Comm.dataMgr.getFish(fishData.no).getComponent(MT3SETB_Fish_1.Fish), fishId = fishData.id;
        this.setFishInitData(fish, fishData, elapsed);
        this.spawnNode.addChild(fish.node, fish.getZIndex(), "Fish_" + fishId);
        this.fishes[fishId.toString()] = fish;
        fish.init(fishData, this.isRotated);
        this.isFishHasVisualOdds(fishData) && fish.updateOddsText(fishData.odds);
        fishData.pathData && fish.InitPath(fishData, delay, elapsed);
        fish.specialIntro && fish.specialIntro.init(fishData, elapsed);
      }
      setFishInitData(fish, fishData, elapsed) {
        let fishInitData = MT3SETB_Comm_1.Comm.dataMgr.fishJsonData[fishData.no];
        if (fishInitData) {
          fish.fishJsonData = fishInitData;
          fish.zIndex = fishInitData.z;
          fish.priority = fishInitData.priority;
          fishInitData.upwards && (fish.upwards = fishInitData.upwards);
          fishInitData.BornTipsInfo && this.showFishTip(fishInitData.BornTipsInfo);
          fishInitData.bornMusic && this.playBornFishEffect(fishData.id, fishInitData.bornMusic);
          if (fishInitData.BornFishInfo) {
            fish.bornFishInfo = fishInitData.BornFishInfo;
            fish.bornFishInfo.elapsed = elapsed;
          }
        }
      }
      playDeathFishSoundEffect(fishNo) {
        let fishInitData = MT3SETB_Comm_1.Comm.dataMgr.fishJsonData[fishNo];
        fishInitData && fishInitData.deathMusic && (fishInitData.mustPlayDeathEffect || Math.random() <= MT3SETB_SoundConst_1.DEATH_TALK_MUSIC_PROBABILITY) && MT3SETB_Comm_1.Comm.snd.playEffectByName(fishInitData.deathMusic);
      }
      playBornFishEffect(fishId, bornMusic) {
        if (Math.random() <= bornMusic.probability) {
          let sfxIndex = Math.floor(Math.random() * bornMusic.paths.length);
          var bornSFXToPlay = bornMusic.paths[sfxIndex];
          this.scheduleOnce(() => {
            var fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(fishId);
            fish && "" != bornSFXToPlay && MT3SETB_Comm_1.Comm.snd.playEffectByName(bornSFXToPlay);
          }, bornMusic.delayTime);
        }
      }
      showFishTip(tipInfo) {
        this.enqueueFishTip(callback => {
          let fishTipNode = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getOtherPf(MT3SETB_Game_1.eOtherNo.FishComing));
          let avatar = MT3SETB_Comm_1.Comm.find("fg/avatarContainer/avatar", fishTipNode).getComponent(cc.Sprite);
          avatar.spriteFrame = MT3SETB_Comm_1.Comm.dataMgr.fishData.fishUiAtlas.getSpriteFrame(tipInfo.avatar.split(".")[0]);
          let tips = MT3SETB_Comm_1.Comm.find("fg/tip", fishTipNode).getComponent(cc.Sprite);
          tips.spriteFrame = MT3SETB_Comm_1.Comm.dataMgr.fishData.fishTextUiAtlas.getSpriteFrame(tipInfo.tips.split(".")[0]);
          let scale = tipInfo.scale || 1;
          fishTipNode.setPosition(0, 150);
          avatar.node.setScale(scale);
          fishTipNode.runAction(cc.sequence(cc.scaleTo(.25, 1, 1.5), cc.scaleTo(.15, 1, 1), cc.delayTime(1), cc.scaleTo(.15, 1, 1.5), cc.scaleTo(.25, 1, 0), cc.hide(), cc.delayTime(.15), cc.callFunc(callback), cc.removeSelf()));
          MT3SETB_Comm_1.Comm.node.noticeLayer.addChild(fishTipNode);
        });
      }
      enqueueFishTip(tipCreatorFunc = null) {
        null != tipCreatorFunc && this.fishTipCreators.push(tipCreatorFunc);
        if (this.isShowTips || 0 == this.fishTipCreators.length) return;
        this.fishTipCreators.shift().call(this, () => {
          this.isShowTips = false;
          this.enqueueFishTip();
        });
        this.isShowTips = true;
      }
      performFishWaving() {
        MT3SETB_Comm_1.Comm.effectMgr.isFishWaving = true;
        MT3SETB_Comm_1.Comm.effectMgr.fishWaveTime = Date.now();
        MT3SETB_Comm_1.Comm.gameCtrl.stopShooting("all", true, 4);
        MT3SETB_Comm_1.Comm.shootMgr.clearLockOn();
        this.unscheduleAllCallbacks();
        let swimOutFishes = [];
        let swimOutSpeed = 1;
        for (var e in this.fishes) {
          var fish = this.fishes[e];
          let serial = MT3SETB_timeline_1.GetTimeLine().serial;
          if (fish.serial == serial) continue;
          swimOutSpeed = Math.max(swimOutSpeed, fish.getMinSwimOutSpeed(FISH_SWIM_OUT_DURATION));
          swimOutFishes.push(fish);
        }
        swimOutSpeed = Math.min(FISH_SWIM_OUT_MAX_SPEED, swimOutSpeed);
        for (let fish of swimOutFishes) fish.swimOut(FISH_SWIM_OUT_DURATION, swimOutSpeed);
        this.node.runAction(cc.sequence(cc.delayTime(FISH_SWIM_OUT_DURATION - .75), cc.callFunc(MT3SETB_Comm_1.Comm.effectMgr.showFishWave, MT3SETB_Comm_1.Comm.effectMgr)));
      }
      performSpecFishComing(e) {
        MT3SETB_Comm_1.Comm.effectMgr.showSpecFishComing(e);
      }
      performBossComing(bossComing) {
        MT3SETB_Comm_1.Comm.effectMgr.showBossComing(bossComing);
      }
      performBgSceneChange(switchBg) {
        MT3SETB_Comm_1.Comm.gameCtrl.updateBg(switchBg.bgIndex, switchBg.forced, () => {
          var _a;
          if (switchBg.startGame) {
            MT3SETB__main_1.CMain.hideLoading();
            null === (_a = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _a ? void 0 : _a.hide();
            MT3SETB_Comm_1.Comm.fishRoom = null;
          }
          switchBg.animName && this.performBgSceneAnimation({
            animName: switchBg.animName,
            loops: switchBg.animLoop
          });
        });
      }
      performBgSceneAnimation(playBgAnim) {
        "open1" === playBgAnim.animName ? MT3SETB_Comm_1.Comm.gameCtrl.playBgAnim("open", playBgAnim.loop, .3) : MT3SETB_Comm_1.Comm.gameCtrl.playBgAnim(playBgAnim.animName, playBgAnim.loop);
      }
      performBgMusicChange(switchBgMusic) {
        switchBgMusic.musicName.toLowerCase().includes("<stop>") ? MT3SETB_Comm_1.Comm.snd.stopMusic() : MT3SETB_Comm_1.Comm.snd.playMusicByName(switchBgMusic.musicName);
      }
      performShake(shake) {
        let duration = shake.shakeContinueTime || .5;
        let strength = shake.shakeStrength || 20;
        MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, duration, strength, strength);
      }
      performSpecialBossNotify(specialBossNotify) {}
      dealWithFish(e, callback) {
        callback(e);
      }
      delFish(e, t, o) {
        var n = "number" == typeof e ? this.getFishById(e) : e;
        n && n.node && n.node.parent && this.dealWithFish(n, function(e) {
          e.destroyFish(t, o);
        });
      }
      removeFishFromCache(e) {
        delete this.fishes[e.toString()];
      }
      setLayerRotated() {
        this.isRotated = false;
      }
      isLayerRotated() {
        return this.isRotated;
      }
      getSpawnNode() {
        return this.spawnNode;
      }
      getUnderFishNode() {
        return this.underFishNode;
      }
      getFishNodeById(e) {
        var t = this.fishes[e.toString()];
        return t ? t.node : null;
      }
      getFishById(e) {
        return this.fishes[e.toString()];
      }
      pickFishes(location) {
        let picks = [];
        for (let i in this.fishes) {
          let fish = this.fishes[i];
          if (!fish || !fish.isValid || fish.isDying() || !fish.isUsed()) continue;
          let touchColliders = fish.getComponentsInChildren(cc.BoxCollider);
          touchColliders = touchColliders.filter(c => 3 === c.tag);
          if (touchColliders.length <= 0) continue;
          let scaleX = fish.node.scaleX, scaleY = fish.node.scaleY;
          for (let collider of touchColliders) {
            let mat = new cc.Mat4(), size = collider.size, offset = collider.offset, halfWidth = .5 * Math.abs(size.width * scaleX) + 20, halfHeight = .5 * Math.abs(size.height * scaleY) + 20;
            collider.node.getWorldMatrix(mat);
            let rad = Math.atan2(mat.m[1], mat.m[0]);
            let pos = cc.v2(mat.m[12], mat.m[13]).subSelf(location).rotateSelf(-rad);
            pos.x += offset.x * scaleX;
            pos.y += offset.y * scaleY;
            if (0 > pos.x - halfWidth && 0 < pos.x + halfWidth && 0 > pos.y - halfHeight && 0 < pos.y + halfHeight) {
              picks.push(fish);
              break;
            }
          }
        }
        return picks;
      }
      getFishByPos(fishSpawnLayerLocation) {
        var odds = -1, z = -1, target = null, rad = cc.macro.RAD;
        let loc = fishSpawnLayerLocation;
        let fishes = this.pickFishes(loc);
        for (let fish of fishes) if (fish.zIndex > z) {
          odds = fish.getOdds();
          z = fish.zIndex;
          target = fish;
        }
        return target;
      }
      getListByNo(e) {
        var t = [], o = null;
        for (var n in this.fishes) (o = this.fishes[n]) && o.isUsed() && e === o.getFishNo() && this.isFishOnScreen(o) && t.push(o);
        return t;
      }
      getTotalFishOdds(e) {
        var t = 0, o = null;
        for (var n in e) t += (o = "number" == typeof (o = e[n]) ? this.getFishById(o) : o).getOdds();
        return t;
      }
      getFishInRange(e, t, o = -1, n) {
        var i = MT3SETB_Comm_1.Comm.transPos(this.spawnNode, MT3SETB_Comm_1.Comm.node.bulletLayer, e), r = [], s = [];
        n || (n = function(e) {
          return MT3SETB_Comm_1.Comm.fishMgr.isCommonFish(e) && !e.isFollowerFish();
        });
        var c = function(e, t, o, n, i, a, r) {
          var s = i - Math.max(e, Math.min(i, e + o)), c = a - Math.max(t, Math.min(a, t + n));
          return s * s + c * c < r * r;
        }, l = [];
        for (var u in this.fishes) (_ = this.fishes[u]) && _.isUsed() && !_.isFollowerFish() && l.push(_);
        for (var d = 0, p = l; d < p.length; d++) {
          var h = (_ = p[d]).collider;
          c(_.node.x + (-h.size.width / 2 + h.offset.x), _.node.y + (-h.size.height / 2 + h.offset.y), h.size.width, h.size.height, i.x, i.y, t) && s.push(_);
        }
        if (-1 !== o) for (var f = 0, m = 0, g = s; m < g.length; m++) {
          var _;
          f + (_ = g[m]).getOdds() <= o && (r.push(_.getFishId()), f += _.getOdds());
        } else s.forEach(function(e) {
          r.push(e.getFishId());
        });
        return r;
      }
      getListInOddsSum(e, t = cc.v2(40, 40), o) {
        var n = [], i = [], r = function(e) {
          for (var o = e.collider, n = o.offset.x, i = o.offset.y, a = o.size.width / 2, r = o.size.height / 2, s = cc.misc.degreesToRadians(e.node.angle), c = cc.v2(e.node.position), l = [ cc.v2(n - a, i - r).rotateSelf(s).addSelf(c), cc.v2(n + a, i - r).rotateSelf(s).addSelf(c), cc.v2(n + a, i + r).rotateSelf(s).addSelf(c), cc.v2(n - a, i + r).rotateSelf(s).addSelf(c) ], u = cc.view.getDesignResolutionSize(), d = cc.rect(t.x, t.y, u.width - 2 * t.x, u.height - 2 * t.y), p = 0, h = l; p < h.length; p++) {
            var f = h[p];
            if (f.x >= d.xMin && f.x <= d.xMax && f.y >= d.yMin && f.y <= d.yMax) return true;
          }
          return false;
        };
        for (var s in this.fishes) (d = this.fishes[s]) && d.isUsed() && n.push(d);
        o || (o = function(e) {
          return MT3SETB_Comm_1.Comm.fishMgr.isCommonFish(e) && !e.isFollowerFish();
        });
        for (var c = 0, l = 0, u = n.length; l < u; ++l) {
          var d;
          c + (d = n[l]).getOdds() > e || o(d) && r(d) && (i.push(d.getFishId()), c += d.getOdds());
        }
        return i;
      }
      getSpecFishGoalList(e, t, o) {
        for (var n = MT3SETB_Comm_1.Comm.fishMgr.getListInOddsSum(1e3), i = o || [], r = 0; n.length > 0; ) {
          var s = MT3SETB_Comm_1.Comm.iRand(0, n.length - 1), c = MT3SETB_Comm_1.Comm.fishMgr.getFishById(n[s]);
          if (n.splice(s, 1), !(c.getOdds() >= 30) && (c && r + c.getOdds() <= e && (r += c.getOdds(), 
          i.push(c)), i.length >= t)) break;
        }
        return i.map(function(e) {
          return e.getFishId();
        });
      }
      getFishInColum(e, t) {
        function o(e, t, o) {
          var n, i, a = e.x - t.x, r = e.y - t.y, s = o.x - t.x, c = o.y - t.y, l = s * s + c * c, u = -1;
          0 != l && (u = (a * s + r * c) / l), u < 0 ? (n = t.x, i = t.y) : u > 1 ? (n = o.x, 
          i = o.y) : (n = t.x + u * s, i = t.y + u * c);
          var d = e.x - n, p = e.y - i;
          return Math.sqrt(d * d + p * p);
        }
        for (var n = MT3SETB_Comm_1.Comm.fishMgr.getListInOddsSum(1e4, cc.v2(0, 0), function() {
          return true;
        }), i = [], r = n.length - 1; r >= 0; r--) {
          var s = this.getFishById(n[r]).node;
          o(cc.v2(s.position.sub(cc.v3(568, 320))), e, t) <= 180 && i.push(n[r]);
        }
        return i;
      }
      showDamage(e, t) {
        var o = "number" == typeof e ? this.getFishById(e) : e;
        o && this.dealWithFish(o, function(e) {
          e.damageTint(true, t);
        });
      }
      showHurt(e) {
        var t = "number" == typeof e ? this.getFishById(e) : e;
        t && this.dealWithFish(t, function(e) {
          var t = e.isSpine ? 5 : MT3SETB_Comm_1.Comm.iRand(3, 5);
          e.setAnimSpeedForWhile(t, .15);
        });
      }
      setFishPredead(e) {
        var t = "number" == typeof e ? this.getFishById(e) : e;
        t && !this.isImmortalFish(t) && (t.setUsed(false), MT3SETB_Comm_1.Comm.shootMgr.checkLockFish(t));
      }
      setTorpedoFilter(e) {
        for (var t in this.fishes) {
          var o = this.fishes[t];
          o && o.setOpacity(e && o.getOdds() <= 6 ? 127 : 255);
        }
        this.torpedoFilterFlag = e;
      }
      isTorpedoFilterOn() {
        return this.torpedoFilterFlag;
      }
      getHalfOpacityOdds() {
        return 6;
      }
      getLeavingSpeed() {
        return 7.5;
      }
      resync() {
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_TABLE_INFO_REQ, null);
      }
      getAllFishes(pred) {
        var e = [];
        for (var t in this.fishes) {
          var o = this.fishes[t];
          o && o.node && (!pred || pred(o)) && e.push(o);
        }
        return e;
      }
      getAllFishIds() {
        return Object.keys(MT3SETB_Game_1.mtfBFishNo);
      }
      isScopeBombFish(e) {
        return false;
      }
      isSuperBombFish(e) {
        return 2 == Math.floor(e.no / 1e4);
      }
      getBombRange(e) {
        return -1;
      }
      isFishHasVisualOdds(e) {
        return e.no == MT3SETB_Game_1.mtfBFishNo.GodArrived || e.no == MT3SETB_Game_1.mtfBFishNo.Pumpkin || e.no == MT3SETB_Game_1.mtfBFishNo.GodOfWealth;
      }
      isSimilarFish(fish) {
        return fish.no >= MT3SETB_Game_1.mtfBFishNo.Cycle_GhanaFish && fish.no <= MT3SETB_Game_1.mtfBFishNo.Cycle_SawtoothShark;
      }
      isInstaBombFish(fish) {
        return fish.no == MT3SETB_Game_1.mtfBFishNo.BombSpeedBoat || fish.no == MT3SETB_Game_1.mtfBFishNo.LightningShark;
      }
      isMultiKillFish(fish) {
        return this.isSimilarFish(fish) || this.isInstaBombFish(fish) || fish.getFishNo() == MT3SETB_Game_1.mtfBFishNo.LightningShark;
      }
      isCollateralFish(fish) {
        return this.isNormalFish(fish) || this.isGoldenFish(fish) || this.isGroupFish(fish);
      }
      isNormalFish(fish) {
        return fish.no < 100;
      }
      isGoldenFish(fish) {
        return fish.no >= MT3SETB_Game_1.mtfBFishNo.GoldenClownFish && fish.no <= MT3SETB_Game_1.mtfBFishNo.GoldenWhale;
      }
      isGroupFish(fish) {
        return fish.no >= MT3SETB_Game_1.mtfBFishNo.CombinedFish1 && fish.no <= MT3SETB_Game_1.mtfBFishNo.CombinedFish7;
      }
      isFreezeBombFish(e) {
        return false;
      }
      isCommonFish(e) {
        var t = "number" == typeof e ? this.getFishById(e) : e;
        return !(!t || t.getSpecialShow());
      }
      isFuncFish(e) {
        var t = "number" == typeof e ? this.getFishById(e) : e;
        if (t) {
          var o = t.getSpecialShow();
          if (o) return o.kind >= MT3SETB_Game_1.eFishKind.ElectricShark && o.kind <= MT3SETB_Game_1.eFishKind.Anemone;
        }
        return false;
      }
      isBossFish(e) {
        var t = "number" == typeof e ? this.getFishById(e) : e;
        if (t) {
          var o = t.getSpecialShow();
          if (o) return o.kind == MT3SETB_Game_1.eFishKind.Pumpkin;
        }
        return false;
      }
      isSummonBossFish(e) {
        var t = "number" == typeof e ? this.getFishById(e) : e;
        if (t) {
          var o = t.getSpecialShow();
          if (o) return o.kind == MT3SETB_Game_1.eFishKind.Pumpkin;
        }
        return false;
      }
      isBigFishByNo(e) {
        return e == MT3SETB_Game_1.eFishNo.Phoenix || e == MT3SETB_Game_1.eFishKind.Pumpkin || e >= MT3SETB_Game_1.eFishNo.BossSquid && e <= MT3SETB_Game_1.eFishNo.JPDragon;
      }
      isImmortalFish(e, t = 0) {
        return false;
      }
      isJPFish(e) {
        return false;
      }
      isBombableFish(e) {
        return !!("number" == typeof e ? this.getFishById(e) : e);
      }
      isItemLightableFish(e) {
        var t = "number" == typeof e ? this.getFishById(e) : e;
        return !!t && (t.getFishNo(), true);
      }
      hasRewardEnding(e) {
        var t = "number" == typeof e ? this.getFishById(e) : e;
        return !(!t || !t.getRewardShow());
      }
      getCoinLevel(e) {
        var t = "number" == typeof e ? this.getFishById(e) : e;
        if (t) {
          var o = t.getOdds();
          if (this.isCommonFish(t) || this.isJPFish(t)) if (o <= 30) {
            if (o >= 1 && o <= 4) return 1;
            if (o >= 5 && o <= 12) return 2;
            if (o >= 13) return 3;
          } else {
            if (o >= 31 && o <= 39) return 4;
            if (o >= 40 && o <= 49) return 5;
            if (o >= 50) return 6;
          } else {
            if (this.isFuncFish(t)) return 6;
            if (this.isBossFish(t)) return this.isImmortalFish(t) ? 8 : 7;
            if (this.isImmortalFish(t)) return 8;
          }
        }
        return -1;
      }
    };
    FishMgr = __decorate([ ccclass ], FishMgr);
    exports.FishMgr = FishMgr;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../MT3SETB-_main": "MT3SETB-_main",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../common/api/MT3SETB-timeline": "MT3SETB-timeline",
    "../gameplay/MT3SETB-SoundConst": "MT3SETB-SoundConst",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-Fish": "MT3SETB-Fish"
  } ],
  "MT3SETB-FishRewardShow": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "1028cseg/hKkLo/055MfJQJ", "MT3SETB-FishRewardShow");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishRewardShow = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishRewardShow = class FishRewardShow extends cc.Component {
      constructor() {
        super();
        this.medal = MT3SETB_Game_1.eFishMedal.None;
        this.ack = null;
      }
      showStart(e, fishNo = 0) {
        this.ack = e;
        this.fishNo = fishNo;
        this.showRewardCircle();
      }
      showRewardCircle() {
        switch (this.medal) {
         case MT3SETB_Game_1.eFishMedal.Medal_1:
         case MT3SETB_Game_1.eFishMedal.GoldGodfish:
         case MT3SETB_Game_1.eFishMedal.GoldClownfish:
         case MT3SETB_Game_1.eFishMedal.GoldManta:
         case MT3SETB_Game_1.eFishMedal.ElectricShark:
         case MT3SETB_Game_1.eFishMedal.BombsCrab:
         case MT3SETB_Game_1.eFishMedal.Anemone:
         case MT3SETB_Game_1.eFishMedal.BossSquid:
         case MT3SETB_Game_1.eFishMedal.BossShark:
         case MT3SETB_Game_1.eFishMedal.Cornucopia_1:
         case MT3SETB_Game_1.eFishMedal.Cornucopia_2:
         case MT3SETB_Game_1.eFishMedal.Phoenix:
         case MT3SETB_Game_1.eFishMedal.Pumpkin:
         case MT3SETB_Game_1.eFishMedal.BossPickup:
         case MT3SETB_Game_1.eFishMedal.BossPickup_MC:
         case MT3SETB_Game_1.eFishMedal.BossLuckyBag:
          this.commonReward();
          break;

         case MT3SETB_Game_1.eFishMedal.Armourfish:
         case MT3SETB_Game_1.eFishMedal.Lanternfish:
         case MT3SETB_Game_1.eFishMedal.GoldTurtle:
          this.ImmortalReward();
          break;

         case MT3SETB_Game_1.eFishMedal.JPFish:
         case MT3SETB_Game_1.eFishMedal.JPDragon:
          this.commonReward();
        }
      }
      commonReward() {
        var e = this, t = this.ack, o = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() === t.seat;
        if (MT3SETB_Comm_1.Comm.gameCtrl.isPageVisible) MT3SETB_Comm_1.Comm.runTask(.8, function() {
          var winCoin = t.win ? t.win : t.coin;
          MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(e.medal, t.seat, winCoin, o, t.bet, t.bonus, e.fishNo);
          if (t.jp) if (o) if (MT3SETB_Comm_1.Comm.lotteryMgr.showRewardFlag) {
            MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(MT3SETB_Game_1.eFishMedal.JpMedal, t.seat, 0, true, t.bet, t.bonus, t.jp.type, t.jp.jp);
            MT3SETB_Comm_1.Comm.effectMgr.playUserCoinNumAnim(t.seat, t.jp.jp);
            MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", t.seat, -t.jp.jp);
            MT3SETB_Comm_1.Comm.gameCtrl.addCoin(t.seat, t.jp.jp);
          } else MT3SETB_Comm_1.Comm.lotteryMgr.show(t.jp.type, t.jp.jp, false, function() {
            MT3SETB_Comm_1.Comm.effectMgr.playUserCoinNumAnim(t.seat, t.jp.jp);
            MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", t.seat, -t.jp.jp);
            MT3SETB_Comm_1.Comm.gameCtrl.addCoin(t.seat, t.jp.jp);
          }); else MT3SETB_Comm_1.Comm.lotteryMgr.shiningJpBoard(function() {
            MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(MT3SETB_Game_1.eFishMedal.JpMedal, t.seat, 0, true, t.bet, t.bonus, t.jp.type, t.jp.jp);
            MT3SETB_Comm_1.Comm.effectMgr.playUserCoinNumAnim(t.seat, t.jp.jp);
            MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", t.seat, -t.jp.jp);
            MT3SETB_Comm_1.Comm.gameCtrl.addCoin(t.seat, t.jp.jp);
          });
        }); else {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", t.seat, -t.coin);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(t.seat, t.coin);
        }
        this.ack = null;
      }
      ImmortalReward() {
        var e = this.ack, t = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() === e.seat, o = this.medal;
        e.coin / e.bet >= 100 && (o += 17);
        if (MT3SETB_Comm_1.Comm.gameCtrl.isPageVisible) MT3SETB_Comm_1.Comm.runTask(.8, function() {
          MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(o, e.seat, e.coin, t, e.bet, e.bonus);
          e.jp && (t ? MT3SETB_Comm_1.Comm.lotteryMgr.showRewardFlag ? MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(MT3SETB_Game_1.eFishMedal.JpMedal, e.seat, 0, true, e.bet, e.bonus, e.jp.type, e.jp.jp) : MT3SETB_Comm_1.Comm.lotteryMgr.show(e.jp.type, e.jp.jp, false, function() {}) : MT3SETB_Comm_1.Comm.lotteryMgr.shiningJpBoard(function() {
            MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(MT3SETB_Game_1.eFishMedal.JpMedal, e.seat, 0, true, e.bet, e.bonus, e.jp.type, e.jp.jp);
          }));
        }); else {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", e.seat, -e.coin);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(e.seat, e.coin);
        }
        this.ack = null;
      }
    };
    __decorate([ property ], FishRewardShow.prototype, "medal", void 0);
    FishRewardShow = __decorate([ ccclass ], FishRewardShow);
    exports.FishRewardShow = FishRewardShow;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game"
  } ],
  "MT3SETB-FishRoom": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "a21efWP0aBH/IVNLS0zKTY2", "MT3SETB-FishRoom");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const MT3SETB_tableSelect_pb_wrapper_1 = require("../../common/api/MT3SETB-tableSelect_pb_wrapper");
    const MT3SETB_utils2_1 = require("../../framework/framework/MT3SETB-utils2");
    const MT3SETB_LangList_1 = require("../../system/MT3SETB-LangList");
    const MT3SETB_LangImgToggleForLobby_1 = require("../MT3SETB-LangImgToggleForLobby");
    const MT3SETB_PageItem_1 = __importDefault(require("../MT3SETB-PageItem"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishRoom = class FishRoom extends cc.Component {
      constructor() {
        super();
        this.pageView = null;
        this.tableContainerNode = null;
        this.filterToggleContainer = null;
        this.filterToggles = [];
        this.emptyPagePrefab = null;
        this.emptyPagePool = null;
        this.initEmptyPageCount = 50;
        this.tablePrefab = null;
        this.deskPagesText = null;
        this.roomRatioText = [];
        this.playerCountText = null;
        this.animation = null;
        this.loadingNode = null;
        this.roomDataList = {};
        this.playerMoney = 0;
        this.playerName = "";
        this.isSelected = false;
        this.resizeCbIndex = null;
        this.curIdx = 0;
        this.curFilter = 0;
        this.tablesArr = {};
        this.isFirstInit = false;
        this.isInitFinish = false;
        this.chunkTables = [];
        this.tablePrefabsArr = [];
        this.curPlayerCount = 0;
        this.maxPlayerCount = 0;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.fishRoom = this;
      }
      start() {
        this.emptyPagePool = new cc.NodePool();
        for (let i = 0; i < this.initEmptyPageCount; ++i) {
          let emptyPrefab = cc.instantiate(this.emptyPagePrefab);
          this.emptyPagePool.put(emptyPrefab);
        }
        this.pageView.node.on("scrolling", this.onPageScrolling, this);
        this.pageView.node.on("scroll-ended", this.onPageScrollEnded, this);
        null == this.resizeCbIndex && (this.resizeCbIndex = MT3SETB_Comm_1.Comm.app.registResizeCallback(this.onResizeFishRoom.bind(this)));
        this.onResizeFishRoom();
      }
      releaseAllEmptyPages() {
        let allPages = this.pageView.getPages();
        for (let pagePrefab of allPages) this.emptyPagePool.put(pagePrefab);
      }
      getEmptyPagePrefab() {
        let toast = null;
        toast = this.emptyPagePool.size() > 0 ? this.emptyPagePool.get() : cc.instantiate(this.emptyPagePrefab);
        return toast;
      }
      init() {
        this.isSelected = false;
        this.curIdx = 1;
        this.isFirstInit = false;
        this.initUI();
        this.requestForTableInfo();
      }
      show() {
        this.node.active = true;
        this.animation.play();
        let item = this.pageView.content.children[0];
        item.getComponent(MT3SETB_PageItem_1.default).playEntryAnimation();
        this.tablePrefabsArr[0].playEntryAnimation();
      }
      initUI() {
        this.filterToggleContainer.enabled = true;
        for (let toggle of this.filterToggles) toggle.enabled = true;
        var langImgComponents = this.node.getComponentsInChildren(MT3SETB_LangImgToggleForLobby_1.LangImgToggleForLobby);
        for (let imgComponent of langImgComponents) imgComponent.setSpriteFrame();
        this.filterToggles[0].check();
      }
      requestForTableInfo() {
        if (!this.isFirstInit) {
          var req = new MT3SETB_tableSelect_pb_wrapper_1.tableSelect.GetTableInfoReq();
          req.room = 0;
          req.theme = this.curIdx;
          var n = MT3SETB_tableSelect_pb_wrapper_1.tableSelect.GetTableInfoReq.encode(req);
          MT3SETB_Comm_1.Comm.app.send(MT3SETB_tableSelect_pb_wrapper_1.tableSelect.UserToServer.U2S_GET_TABLE_INFO_REQ, n);
          this.isFirstInit = true;
        }
      }
      hide() {
        this.emptyPagePool.clear();
        let allPages = this.pageView.getPages();
        for (let pagePrefab of allPages) pagePrefab.destroy();
        for (let tableScript of this.tablePrefabsArr) tableScript.node.destroy();
        this.loadingNode.active = false;
        this.node.active = false;
        this.node.destroy();
        this.pageView.node.off("scrolling", this.onPageScrolling, this);
        this.pageView.node.off("scroll-ended", this.onPageScrollEnded, this);
      }
      updateFishRoomGoldText(gold) {}
      updatePlayerWallet(ackData) {
        false;
      }
      updateTablesData(tableSetting, isUpdateNotify = false) {
        if (isUpdateNotify) {
          console.log("is update notify of theme " + tableSetting.theme + " comparing with " + this.curIdx);
          if (tableSetting.theme != this.curIdx) return;
        }
        this.roomDataList = {};
        this.tablesArr = {};
        for (let tableData of tableSetting.tables) this.tablesArr[tableData.tableNo] = tableData;
        this.updateTableArray();
        if (this.isInitFinish) this.populateFilterTables(isUpdateNotify); else {
          this.populateTables();
          this.isInitFinish = true;
        }
      }
      initTablesOnIdx(curPageIdx) {
        let allPages = this.pageView.getPages();
        this.tablePrefabsArr[0].node.setParent(null);
        this.tablePrefabsArr[1].node.setParent(null);
        this.tablePrefabsArr[2].node.setParent(null);
        if (0 == curPageIdx) {
          allPages[curPageIdx] && this.tablePrefabsArr[0].node.setParent(allPages[curPageIdx]);
          allPages[curPageIdx + 1] && this.tablePrefabsArr[1].node.setParent(allPages[curPageIdx + 1]);
          allPages[curPageIdx + 2] && this.tablePrefabsArr[2].node.setParent(allPages[curPageIdx + 2]);
          this.chunkTables[curPageIdx] && this.tablePrefabsArr[0].initUI(this.chunkTables[curPageIdx]);
          this.chunkTables[curPageIdx + 1] && this.tablePrefabsArr[1].initUI(this.chunkTables[curPageIdx + 1]);
          this.chunkTables[curPageIdx + 2] && this.tablePrefabsArr[2].initUI(this.chunkTables[curPageIdx + 2]);
        } else {
          this.chunkTables[curPageIdx - 1] && allPages[curPageIdx - 1] && this.tablePrefabsArr[0].node.setParent(allPages[curPageIdx - 1]);
          this.chunkTables[curPageIdx] && allPages[curPageIdx] && this.tablePrefabsArr[1].node.setParent(allPages[curPageIdx]);
          this.chunkTables[curPageIdx + 1] && allPages[curPageIdx + 1] && this.tablePrefabsArr[2].node.setParent(allPages[curPageIdx + 1]);
          this.chunkTables[curPageIdx - 1] && this.tablePrefabsArr[0].initUI(this.chunkTables[curPageIdx - 1]);
          this.chunkTables[curPageIdx] && this.tablePrefabsArr[1].initUI(this.chunkTables[curPageIdx]);
          this.chunkTables[curPageIdx + 1] && this.tablePrefabsArr[2].initUI(this.chunkTables[curPageIdx + 1]);
        }
        this.pageView.content.getComponent(cc.Layout).updateLayout();
      }
      onPageScrollEnded() {
        let curPageIdx = this.pageView.getCurrentPageIndex();
        this.deskPagesText.string = `${curPageIdx + 1} / ${this.chunkTables.length}`;
        this.initTablesOnIdx(curPageIdx);
      }
      getCurPageIdx() {
        const scrollDistance = Math.abs(this.pageView.getScrollOffset().x);
        let calculatedIndex = Math.round(scrollDistance / this.pageView.node.width);
        calculatedIndex = Math.max(0, Math.min(calculatedIndex, this.pageView.getPages().length - 1));
        return calculatedIndex;
      }
      onPageScrolling() {
        this.deskPagesText.string = `${this.getCurPageIdx() + 1} / ${this.chunkTables.length}`;
      }
      updateTableArray() {
        let finalTable = [];
        for (let tableKey of Object.keys(this.tablesArr)) {
          let table = this.tablesArr[tableKey];
          if (1 == this.curFilter && 4 == table.players.length) continue;
          finalTable.push(table);
        }
        this.maxPlayerCount = 4 * Object.keys(this.tablesArr).length;
        this.chunkTables = this.chunkArray(finalTable);
      }
      populateTables() {
        this.maxPlayerCount = 4 * Object.keys(this.tablesArr).length;
        this.deskPagesText.string = `${this.pageView.getCurrentPageIndex() + 1} / ${this.chunkTables.length}`;
        let idx = 0;
        for (let chunkData of this.chunkTables) {
          let emptyPrefab = this.getEmptyPagePrefab();
          this.pageView.addPage(emptyPrefab);
        }
        let allPages = this.pageView.getPages();
        for (let i = 0; i < 3; i++) {
          let tablePrefab = cc.instantiate(this.tablePrefab);
          let script = tablePrefab.getComponent(MT3SETB_PageItem_1.default);
          if (allPages[i]) {
            tablePrefab.setParent(allPages[i]);
            tablePrefab.setContentSize(this.node.getContentSize());
            script.initUI(this.chunkTables[i]);
          }
          this.tablePrefabsArr.push(script);
        }
        this.updatePlayerCountText();
        this.loadingNode.active = false;
      }
      populateFilterTables(isUpdateNotify = false) {
        let curPageIdx = this.pageView.getCurrentPageIndex();
        this.pageView.removeAllPages();
        this.releaseAllEmptyPages();
        let idx = 0;
        for (let chunkData of this.chunkTables) {
          let emptyPrefab = this.getEmptyPagePrefab();
          this.pageView.addPage(emptyPrefab);
        }
        let allPages = this.pageView.getPages();
        (curPageIdx > allPages.length - 1 || !isUpdateNotify) && (curPageIdx = 0);
        this.pageView.scrollToPage(curPageIdx, 0);
        this.initTablesOnIdx(curPageIdx);
        this.deskPagesText.string = `${curPageIdx + 1} / ${this.chunkTables.length}`;
        this.updatePlayerCountText();
        this.loadingNode.active = false;
      }
      updatePlayerCountText() {
        this.curPlayerCount = 0;
        for (let tableKey of Object.keys(this.tablesArr)) {
          let table = this.tablesArr[tableKey];
          table.players && (this.curPlayerCount += table.players.length);
        }
        this.playerCountText.string = MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString("\u623f\u95f4:%d(%d/%d)"), 1, this.curPlayerCount, this.maxPlayerCount);
      }
      updateSingleTableData(updateData) {
        console.log("updating data of theme " + updateData.theme);
        if (this.curIdx != updateData.theme) return;
        if (this.tablesArr[updateData.tableNo]) if (updateData.updateType == MT3SETB_tableSelect_pb_wrapper_1.tableSelect.TableUpdateType.JOIN) this.tablesArr[updateData.tableNo].players.push(updateData.player); else {
          var idxToRemove = -1;
          for (let i = 0; i < this.tablesArr[updateData.tableNo].players.length; i++) if (this.tablesArr[updateData.tableNo].players[i].seat == updateData.player.seat) {
            idxToRemove = i;
            break;
          }
          -1 != idxToRemove && cc.js.array.removeAt(this.tablesArr[updateData.tableNo].players, idxToRemove);
        } else false;
        this.updateTableArray();
        this.updatePlayerCountText();
        this.initTablesOnIdx(this.getCurPageIdx());
      }
      updateRoomData(ackData) {
        false;
        MT3SETB_Comm_1.Comm.generalmenu.active = true;
      }
      onClickFilterTables(evt, filterIdx) {
        this.curFilter = filterIdx;
        this.pageView.setCurrentPageIndex(0);
        this.updateTableArray();
        this.populateFilterTables();
      }
      onClickSelectRoomIdx(evt, idx) {
        if (this.curIdx == idx) return;
        this.curIdx = Number(idx);
        var req = new MT3SETB_tableSelect_pb_wrapper_1.tableSelect.GetTableInfoReq();
        req.room = 0;
        req.theme = idx;
        var n = MT3SETB_tableSelect_pb_wrapper_1.tableSelect.GetTableInfoReq.encode(req);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_tableSelect_pb_wrapper_1.tableSelect.UserToServer.U2S_GET_TABLE_INFO_REQ, n);
        this.loadingNode.active = true;
      }
      onClickExitGame() {
        MT3SETB_Comm_1.Comm.setting.show();
      }
      onClickPlayNow(evt, theme) {
        this.JoinRandomDesk();
      }
      JoinRandomDesk() {
        var o = MT3SETB_tableSelect_pb_wrapper_1.tableSelect.JoinTableReq.create();
        o.theme = Number(this.curIdx);
        o.room = 0;
        o.joinType = MT3SETB_tableSelect_pb_wrapper_1.tableSelect.JoinType.AUTOMATIC;
        var n = MT3SETB_tableSelect_pb_wrapper_1.tableSelect.JoinTableReq.encode(o);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_tableSelect_pb_wrapper_1.tableSelect.UserToServer.U2S_JOIN_TABLE_REQ, n);
        this.loadingNode.active = true;
      }
      JoinSelectedDesk(deskNo, seatNo) {
        var o = MT3SETB_tableSelect_pb_wrapper_1.tableSelect.JoinTableReq.create();
        o.theme = Number(this.curIdx);
        o.room = 0;
        o.tableNo = deskNo;
        o.seatNo = seatNo;
        o.joinType = MT3SETB_tableSelect_pb_wrapper_1.tableSelect.JoinType.SEAT;
        var n = MT3SETB_tableSelect_pb_wrapper_1.tableSelect.JoinTableReq.encode(o);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_tableSelect_pb_wrapper_1.tableSelect.UserToServer.U2S_JOIN_TABLE_REQ, n);
        this.loadingNode.active = true;
      }
      OnJoinFail() {
        MT3SETB_Comm_1.Comm.scrollingToast.setText(MT3SETB_LangList_1.LangList.getString("\u8be5\u5ea7\u4f4d\u5df2\u7ecf\u6709\u4eba"), 1.75, 1);
        this.loadingNode.active = false;
      }
      onDestroy() {
        MT3SETB_Comm_1.Comm.fishRoom = null;
        null != this.resizeCbIndex && MT3SETB_Comm_1.Comm.app.cancelResizeCallback(this.resizeCbIndex);
        this.resizeCbIndex = null;
      }
      chunkArray(array, chunkSize = 2) {
        const result = [];
        for (let i = 0; i < array.length; i += chunkSize) {
          const chunk = array.slice(i, i + chunkSize);
          result.push(chunk);
        }
        return result;
      }
      onResizeFishRoom() {
        let size = MT3SETB_Comm_1.Comm.app.winSizeFactor;
        this.node.setContentSize(size.width, size.height);
        this.node.x = size.x;
        this.node.y = 0;
        this.node.getComponentsInChildren(cc.Widget).forEach(widget => {
          widget.updateAlignment();
        });
        this.tableContainerNode.x = -this.pageView.getCurrentPageIndex() * size.width - .5 * size.width;
      }
    };
    __decorate([ property(cc.PageView) ], FishRoom.prototype, "pageView", void 0);
    __decorate([ property(cc.Node) ], FishRoom.prototype, "tableContainerNode", void 0);
    __decorate([ property(cc.ToggleContainer) ], FishRoom.prototype, "filterToggleContainer", void 0);
    __decorate([ property([ cc.Toggle ]) ], FishRoom.prototype, "filterToggles", void 0);
    __decorate([ property(cc.Prefab) ], FishRoom.prototype, "emptyPagePrefab", void 0);
    __decorate([ property(cc.Prefab) ], FishRoom.prototype, "tablePrefab", void 0);
    __decorate([ property(cc.Label) ], FishRoom.prototype, "deskPagesText", void 0);
    __decorate([ property([ cc.Label ]) ], FishRoom.prototype, "roomRatioText", void 0);
    __decorate([ property(cc.Label) ], FishRoom.prototype, "playerCountText", void 0);
    __decorate([ property(cc.Animation) ], FishRoom.prototype, "animation", void 0);
    __decorate([ property(cc.Node) ], FishRoom.prototype, "loadingNode", void 0);
    FishRoom = __decorate([ ccclass ], FishRoom);
    exports.default = FishRoom;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm",
    "../../common/api/MT3SETB-tableSelect_pb_wrapper": "MT3SETB-tableSelect_pb_wrapper",
    "../../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "../../system/MT3SETB-LangList": "MT3SETB-LangList",
    "../MT3SETB-LangImgToggleForLobby": "MT3SETB-LangImgToggleForLobby",
    "../MT3SETB-PageItem": "MT3SETB-PageItem"
  } ],
  "MT3SETB-FishScreenAura": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "244017/b/FP97Gq23vo+pht", "MT3SETB-FishScreenAura");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishScreenAura = class FishScreenAura extends cc.Component {
      constructor() {
        super(...arguments);
        this.effectNo = MT3SETB_Game_1.eEffectNo.ScreenAuraHearts;
      }
      startAura() {
        switch (this.effectNo) {
         case MT3SETB_Game_1.eEffectNo.ScreenAuraHearts:
          MT3SETB_Comm_1.Comm.effectMgr.showScreenAuraHearts(true);
          break;

         case MT3SETB_Game_1.eEffectNo.ScreenAuraLightning:
          MT3SETB_Comm_1.Comm.effectMgr.showScreenAuraLightning(true);
          break;

         case MT3SETB_Game_1.eEffectNo.ScreenAuraBlackFlame:
          MT3SETB_Comm_1.Comm.effectMgr.showScreenAuraBlackFlame(true);
        }
      }
      stopAura() {
        let showAuraFunc = null;
        switch (this.effectNo) {
         case MT3SETB_Game_1.eEffectNo.ScreenAuraHearts:
          MT3SETB_Comm_1.Comm.effectMgr.showScreenAuraHearts(false);
          break;

         case MT3SETB_Game_1.eEffectNo.ScreenAuraLightning:
          MT3SETB_Comm_1.Comm.effectMgr.showScreenAuraLightning(false);
          break;

         case MT3SETB_Game_1.eEffectNo.ScreenAuraBlackFlame:
          MT3SETB_Comm_1.Comm.effectMgr.showScreenAuraBlackFlame(false);
        }
      }
    };
    __decorate([ property({
      type: cc.Enum(MT3SETB_Game_1.eEffectNo)
    }) ], FishScreenAura.prototype, "effectNo", void 0);
    FishScreenAura = __decorate([ ccclass ], FishScreenAura);
    exports.default = FishScreenAura;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game"
  } ],
  "MT3SETB-FishScrollReward": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "2af4eNK8pBJEY02knRLRpat", "MT3SETB-FishScrollReward");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_BaseEffect_1 = __importDefault(require("./MT3SETB-BaseEffect"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    const TOP_YPOS = 175;
    const YPOS = 150;
    let FishScrollReward = class FishScrollReward extends MT3SETB_BaseEffect_1.default {
      constructor() {
        super(...arguments);
        this.winOddsLabel = null;
        this.rewardLabel = null;
      }
      init(winOdds, win, fish, player, callback) {
        this.initPlayer(player);
        this.callback = callback;
        this.win = win;
        this.winOddsLabel.string = `x${winOdds}`;
        let rewardParent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
        let worldPos = player.node.convertToWorldSpaceAR(cc.v2(0, 0));
        let endPosY = 0;
        endPosY = MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? player.uiNo >= 3 ? TOP_YPOS : YPOS : player.uiNo >= 3 ? -YPOS : -TOP_YPOS;
        var endPos = cc.v2(0, endPosY);
        worldPos = player.getRewardPosNode().convertToWorldSpaceAR(endPos);
        let fishWorldPos = fish.node.convertToWorldSpaceAR(cc.Vec2.ZERO);
        let translatedFishPos = rewardParent.convertToNodeSpaceAR(fishWorldPos);
        let translatedPlayerPos = rewardParent.convertToNodeSpaceAR(worldPos);
        this.node.setPosition(translatedFishPos);
        this.playWinSequence(translatedPlayerPos);
      }
      playWinSequence(endPos) {
        this.rewardLabel.string = "";
        this.node.runAction(cc.sequence(cc.moveTo(.5, new cc.Vec2(0, 0)), cc.delayTime(1.9), cc.moveTo(.25, new cc.Vec2(endPos.x, endPos.y)), cc.delayTime(9.28), cc.callFunc(() => {
          this.callback();
          this.destroyEffect();
        })));
        var curTime = Date.now();
        var destValue = this.win;
        this.schedule(e => {
          var value = 0;
          var timeDiff = (Date.now() - curTime) / 1e3;
          var needUpdate = true;
          timeDiff >= 5.67 && timeDiff <= 6.17 ? value = destValue / 3 * (timeDiff - 5.67) : timeDiff >= 7.77 && timeDiff <= 8.27 ? value = destValue / 3 + destValue / 3 * (timeDiff - 7.77) : timeDiff >= 10 && timeDiff <= 10.5 ? value = destValue / 3 * 2 + destValue / 3 * (timeDiff - 10) : needUpdate = false;
          needUpdate && (this.rewardLabel.string = Math.floor(value).toString());
        }, 0, cc.macro.REPEAT_FOREVER);
      }
      destroyEffect() {
        this.node.stopAllActions();
        this.node.destroy();
      }
    };
    __decorate([ property(cc.Label) ], FishScrollReward.prototype, "winOddsLabel", void 0);
    __decorate([ property(cc.Label) ], FishScrollReward.prototype, "rewardLabel", void 0);
    FishScrollReward = __decorate([ ccclass ], FishScrollReward);
    exports.default = FishScrollReward;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-BaseEffect": "MT3SETB-BaseEffect"
  } ],
  "MT3SETB-FishSpecialIntroShow": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "3dafdLWg95JWqvCQ5zxg0EG", "MT3SETB-FishSpecialIntroShow");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishSpecialIntroShow = class FishSpecialIntroShow extends cc.Component {
      constructor() {
        super(...arguments);
        this.allowedTimeElapsed = 0;
      }
      init(fish, elapsed) {
        if (elapsed < this.allowedTimeElapsed) switch (fish.no) {
         case MT3SETB_Game_1.mtfBFishNo.GodOfWealth:
          MT3SETB_Comm_1.Comm.effectMgr.showFuwangCaishenEffect();
        }
      }
    };
    __decorate([ property ], FishSpecialIntroShow.prototype, "allowedTimeElapsed", void 0);
    FishSpecialIntroShow = __decorate([ ccclass ], FishSpecialIntroShow);
    exports.default = FishSpecialIntroShow;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game"
  } ],
  "MT3SETB-FishSpecialShowFlameStorm": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "3f429bkXVpI3K+PoxBWWWoi", "MT3SETB-FishSpecialShowFlameStorm");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const MT3SETB_FishSpecialShow_1 = require("./MT3SETB-FishSpecialShow");
    const MT3SETB_FlameStormFishGun_1 = __importDefault(require("./MT3SETB-FlameStormFishGun"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishSpecialShowFlameStorm = class FishSpecialShowFlameStorm extends MT3SETB_FishSpecialShow_1.FishSpecialShow {
      showStart(hitData, t) {
        let fish = this.node.getComponent(MT3SETB_Fish_1.Fish);
        MT3SETB_Comm_1.Comm.gameCtrl.onFishDeathPlayEffect(fish, hitData, true);
        let startPos = MT3SETB_Comm_1.Comm.transPos3D(MT3SETB_Comm_1.Comm.node.fishLayer, fish.node.parent, fish.node.position);
        let fishGunPrefab = MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.FlameStormFishGun);
        let fishGun = cc.instantiate(fishGunPrefab).getComponent(MT3SETB_FlameStormFishGun_1.default);
        fishGun.startAnim(hitData, startPos);
        MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false, false);
      }
    };
    FishSpecialShowFlameStorm = __decorate([ ccclass ], FishSpecialShowFlameStorm);
    exports.default = FishSpecialShowFlameStorm;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-Fish": "MT3SETB-Fish",
    "./MT3SETB-FishSpecialShow": "MT3SETB-FishSpecialShow",
    "./MT3SETB-FlameStormFishGun": "MT3SETB-FlameStormFishGun"
  } ],
  "MT3SETB-FishSpecialShow": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "fcaedXtVeRBv4eFggaNVfaF", "MT3SETB-FishSpecialShow");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FishSpecialShow = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_BombCrabEffect_1 = __importDefault(require("./MT3SETB-BombCrabEffect"));
    const MT3SETB_DrillGunDrop_1 = __importDefault(require("./MT3SETB-DrillGunDrop"));
    const MT3SETB_LightningSharkEffect_1 = __importDefault(require("./MT3SETB-LightningSharkEffect"));
    const MT3SETB_UncleCatBoard_1 = __importDefault(require("./MT3SETB-UncleCatBoard"));
    const MT3SETB_ThunderDragonEffect_1 = __importDefault(require("./MT3SETB-ThunderDragonEffect"));
    const MT3SETB_MermaidEffect_1 = __importDefault(require("./MT3SETB-MermaidEffect"));
    const MT3SETB_AwakenNightBeastEffect_1 = __importDefault(require("./MT3SETB-AwakenNightBeastEffect"));
    const MT3SETB_AwakenGiantCrocodileAttack_1 = __importDefault(require("./MT3SETB-AwakenGiantCrocodileAttack"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FishSpecialShow = class FishSpecialShow extends cc.Component {
      constructor() {
        super(...arguments);
        this.kind = MT3SETB_Game_1.eFishKind.None;
        this.fish = null;
      }
      onLoad() {
        this.fish = this.getComponent(MT3SETB_Fish_1.Fish);
        this.fish || console.error("FishSpecialShow component must be attached to a node with a Fish component.");
      }
      showStart(hitData, t) {
        switch (this.kind) {
         case MT3SETB_Game_1.eFishKind.GodArrived:
          this.godArrivedStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.WheelDragon:
          this.wheelDragonStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.ElectricShark:
          this.lightningChainStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.BombCrab:
         case MT3SETB_Game_1.eFishKind.MultiBombCrab:
          this.crabBombStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.DrillCrab:
          this.drillCrabStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.Anemone:
          this.cycloneFishStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.DinghyBomb:
          this.dinghyBombStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.ThunderDragon:
          this.thunderDragonStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.Mermaid:
          this.mermaidStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.SimpleShake:
          this.shakeDeathStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.UncleCat:
          this.uncleCatStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.Pumpkin:
          this.pumpkinBombStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.NightBeast:
          this.nightBeastStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.KingOctopus:
          this.kingOctopusStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.FlamePhoenix:
          this.phoenixBombStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.BisonComing:
          this.bisonComingStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.GoldenToad:
          this.goldenToadStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.AwakenNightBeast:
          this.awakenNightBeastStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.WakeupKingCrab:
          this.wakeupKingCrabStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.AwakenGiantCrocodile:
          this.awakenGiantCrocodileStart(hitData);
          break;

         case MT3SETB_Game_1.eFishKind.WakeupKingOctopus:
          this.wakeupKingOctopusStart(hitData);
        }
      }
      addWinToBalance(seat, win) {
        MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", seat, -win);
        MT3SETB_Comm_1.Comm.gameCtrl.addCoin(seat);
      }
      wakeupKingCrabStart(hitData) {
        let fish = this.fish;
        if (fish) {
          const deathDuration = 1.5;
          fish.fishAnims[0].stop();
          MT3SETB_Comm_1.Comm.fishMgr.setFishPredead(fish.id);
          fish.pathEnd = true;
          fish.setDying(true);
          MT3SETB_Comm_1.Comm.shakeNode(this.node, deathDuration, 30, 10);
          MT3SETB_Comm_1.Comm.effectMgr.showWakeupKingCrabEffect(hitData, fish);
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false, false);
        }
      }
      wakeupKingOctopusStart(hitData) {
        let fish = this.fish;
        if (fish) {
          const deathDuration = 1.5;
          fish.spineAnims[0].paused = true;
          MT3SETB_Comm_1.Comm.fishMgr.setFishPredead(fish.id);
          fish.pathEnd = true;
          fish.setDying(true);
          MT3SETB_Comm_1.Comm.shakeNode(this.node, deathDuration, 30, 10);
          MT3SETB_Comm_1.Comm.effectMgr.showWakeupKingOctopusEffect(hitData, fish);
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false, false);
        }
      }
      bisonComingStart(hitData) {
        let fish = this.fish;
        if (fish) {
          MT3SETB_Comm_1.Comm.effectMgr.showCommonFishDeath(fish, 0, false);
          let isLocal = hitData.seat == MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
          let fishCoinTextPos = MT3SETB_Comm_1.Comm.transPos3D(MT3SETB_Comm_1.Comm.node.effectLayer, fish.node.parent, fish.node.position);
          MT3SETB_Comm_1.Comm.effectMgr.showGetCoinForFish(hitData.seat, fish, hitData.coin, fishCoinTextPos);
          let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == hitData.seat;
          MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, hitData.seat, hitData.coin, isLocalPlayer, hitData.bet, hitData.coin, MT3SETB_Game_1.mtfBFishNo.BisonComing);
        }
        this.addWinToBalance(hitData.seat, hitData.coin);
      }
      nightBeastStart(hitData) {
        let fish = this.fish;
        if (fish) {
          fish.pathEnd = true;
          var maskSpriteArr = fish.node.getComponentsInChildren(cc.Sprite);
          for (let maskSprite of maskSpriteArr) maskSprite.node.active = false;
          let bulletAngle = MT3SETB_Comm_1.Comm.gameCtrl.getBulletAngleFromHitData(hitData);
          MT3SETB_Comm_1.Comm.effectMgr.showCommonFishDeath(fish, bulletAngle, true);
          let isLocal = hitData.seat == MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
          let fishCoinTextPos = MT3SETB_Comm_1.Comm.transPos3D(MT3SETB_Comm_1.Comm.node.effectLayer, fish.node.parent, fish.node.position);
          MT3SETB_Comm_1.Comm.effectMgr.showCoinText(hitData.coin, fishCoinTextPos, isLocal);
          let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == hitData.seat;
          MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, hitData.seat, hitData.coin, isLocalPlayer, hitData.bet, hitData.coin, MT3SETB_Game_1.mtfBFishNo.NightBeast);
        }
        this.addWinToBalance(hitData.seat, hitData.coin);
      }
      awakenNightBeastStart(hitData) {
        let fish = this.fish;
        if (fish) {
          MT3SETB_Comm_1.Comm.fishMgr.setFishPredead(fish.id);
          fish.setDying(true);
          fish.pathEnd = true;
          fish.setAnimSpeed(0);
          let effectPrefab = MT3SETB_Comm_1.Comm.dataMgr.effectData.effects[MT3SETB_Game_1.eEffectNo.AwakenNightBeast];
          let effect = cc.instantiate(effectPrefab).getComponent(MT3SETB_AwakenNightBeastEffect_1.default);
          effect.node.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
          let startPos = MT3SETB_Comm_1.Comm.node.fishLayer.convertToNodeSpaceAR(fish.getLockPosition());
          effect.initialize(startPos, hitData, fish);
        }
      }
      dinghyBombStart(hitData) {
        let fish = this.fish;
        if (fish) {
          fish.pathEnd = true;
          fish.setDying(true);
          fish.getComponent(cc.Animation).play("bombspeedboat_die");
          MT3SETB_Comm_1.Comm.effectMgr.showDinghyBombFishEffect(hitData, fish, () => {
            let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == hitData.seat;
            MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, hitData.seat, hitData.coin, isLocalPlayer, hitData.bet, hitData.coin, MT3SETB_Game_1.mtfBFishNo.BombSpeedBoat);
          });
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false, false);
        }
      }
      thunderDragonStart(hitData) {
        let fish = this.fish;
        if (fish) {
          MT3SETB_Comm_1.Comm.fishMgr.setFishPredead(fish.id);
          fish.setDying(true);
          fish.pathEnd = true;
          fish.setAnimSpeed(0);
          let effectPrefab = MT3SETB_Comm_1.Comm.dataMgr.effectData.effects[MT3SETB_Game_1.eEffectNo.ThunderDragonEffect];
          let effect = cc.instantiate(effectPrefab).getComponent(MT3SETB_ThunderDragonEffect_1.default);
          effect.node.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
          let startPos = MT3SETB_Comm_1.Comm.node.fishLayer.convertToNodeSpaceAR(fish.getLockPosition());
          effect.initialize(startPos, hitData, fish);
        }
      }
      mermaidStart(hitData) {
        let fish = this.fish;
        if (fish) {
          MT3SETB_Comm_1.Comm.fishMgr.setFishPredead(fish.id);
          fish.setDying(true);
          fish.pathEnd = true;
          fish.setAnimSpeed(0);
          let effectPrefab = MT3SETB_Comm_1.Comm.dataMgr.effectData.effects[MT3SETB_Game_1.eEffectNo.MermaidEffect];
          let effect = cc.instantiate(effectPrefab).getComponent(MT3SETB_MermaidEffect_1.default);
          effect.node.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
          let startPos = MT3SETB_Comm_1.Comm.node.fishLayer.convertToNodeSpaceAR(fish.getLockPosition());
          effect.initialize(startPos, hitData, fish);
        }
      }
      cycloneFishStart(hitData) {
        let fish = this.fish;
        if (fish) {
          fish.pathEnd = true;
          let me = this;
          MT3SETB_Comm_1.Comm.fishMgr.playDeathFishSoundEffect(fish.getFishNo());
          MT3SETB_Comm_1.Comm.effectMgr.showCycloneFishEffect(hitData, fish, () => {
            MT3SETB_Comm_1.Comm.dataMgr.fishJsonData[fish.no].DeathEffectInfo && fish.rewardShowStart(hitData);
            me.addWinToBalance(hitData.seat, hitData.coin);
          });
        }
      }
      wheelDragonStart(hitData) {
        let fish = this.fish;
        if (fish) {
          fish.pathEnd = true;
          let me = this;
          let fishWorldPos = fish.node.convertToWorldSpaceAR(cc.Vec2.ZERO);
          MT3SETB_Comm_1.Comm.effectMgr.showWheelDragonReward(hitData, fishWorldPos, () => {
            var turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
            if (turret && MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret() == turret) {
              turret.lock(false, 0);
              turret.resumeNormalFiringState();
            }
            let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == hitData.seat;
            MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, hitData.seat, hitData.coin, isLocalPlayer, hitData.bet, hitData.coin, MT3SETB_Game_1.mtfBFishNo.WheelsOfGodDragon);
            me.addWinToBalance(hitData.seat, hitData.coin);
          });
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
        }
      }
      kingOctopusStart(hitData) {
        let fish = this.fish;
        if (fish) {
          const deathDuration = 1.5;
          MT3SETB_Comm_1.Comm.fishMgr.setFishPredead(fish.id);
          fish.spineAnims[0].paused = true;
          fish.pathEnd = true;
          fish.setDying(true);
          MT3SETB_Comm_1.Comm.shakeNode(this.node, deathDuration, 30, 10);
          this.scheduleOnce(function() {
            MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, false, true);
          }, deathDuration);
          fish.lockNode.active = false;
          let isLocal = hitData.seat == MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
          let fishCoinTextPos = MT3SETB_Comm_1.Comm.transPos3D(MT3SETB_Comm_1.Comm.node.effectLayer, fish.lockNode.parent, fish.lockNode.position);
          MT3SETB_Comm_1.Comm.effectMgr.showCoinText(hitData.coin, fishCoinTextPos, isLocal);
          MT3SETB_Comm_1.Comm.effectMgr.showGetCoinForFish(hitData.seat, fish, hitData.coin, fishCoinTextPos);
          let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == hitData.seat;
          MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, hitData.seat, hitData.coin, isLocalPlayer, hitData.bet, hitData.coin, MT3SETB_Game_1.mtfBFishNo.KingOctopus);
        }
        this.addWinToBalance(hitData.seat, hitData.coin);
      }
      pumpkinBombStart(hitData) {
        let fish = this.fish;
        if (fish) {
          MT3SETB_Comm_1.Comm.fishMgr.setFishPredead(fish.id);
          fish.pathEnd = true;
          fish.setDying(true);
          MT3SETB_Comm_1.Comm.shakeNode(fish.node, 2, 30, 10);
          let isLocal = hitData.seat == MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
          let fishCoinTextPos = MT3SETB_Comm_1.Comm.transPos3D(MT3SETB_Comm_1.Comm.node.effectLayer, fish.node.parent, fish.node.position);
          MT3SETB_Comm_1.Comm.effectMgr.showCoinText(hitData.coin, fishCoinTextPos, isLocal);
          MT3SETB_Comm_1.Comm.gameCtrl.showGetCoin(hitData.seat, fish, hitData.coin);
          MT3SETB_Comm_1.Comm.effectMgr.showPumpkinEffect(hitData, fish);
          let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == hitData.seat;
          MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, hitData.seat, hitData.coin, isLocalPlayer, hitData.bet, hitData.coin, MT3SETB_Game_1.mtfBFishNo.Pumpkin);
        }
        this.addWinToBalance(hitData.seat, hitData.coin);
      }
      godArrivedStart(hitData) {
        let fish = this.fish;
        if (fish) {
          MT3SETB_Comm_1.Comm.shakeNode(fish.node, .9, 30, 10);
          fish.pathEnd = true;
          let me = this;
          MT3SETB_Comm_1.Comm.effectMgr.showFortuneGodReward(hitData, fish, () => {
            let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == hitData.seat;
            MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, hitData.seat, hitData.coin, isLocalPlayer, hitData.bet, hitData.coin, MT3SETB_Game_1.mtfBFishNo.GodArrived);
            me.addWinToBalance(hitData.seat, hitData.coin);
          });
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false, false);
        }
      }
      phoenixBombStart(hitData) {
        let fish = this.fish;
        if (fish) {
          fish.setDying(true);
          fish.pathEnd = true;
          fish.fishAnims[0].play("phoenix_die");
          MT3SETB_Comm_1.Comm.fishMgr.playDeathFishSoundEffect(MT3SETB_Game_1.mtfBFishNo.FlamingPhoenix);
          MT3SETB_Comm_1.Comm.effectMgr.showPhoenixBombEffect(hitData, fish.node.position);
          fish.fishAnims[0].once("finished", function() {
            MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, false, true);
          });
        }
      }
      lightningChainStart(hitData) {
        var _a;
        let fish = this.fish;
        fish && (fish.pathEnd = true);
        let fxPrefab = MT3SETB_Comm_1.Comm.dataMgr.effectData.effects[MT3SETB_Game_1.eEffectNo.LightningShark];
        if (fxPrefab) {
          let fx = null === (_a = cc.instantiate(fxPrefab)) || void 0 === _a ? void 0 : _a.getComponent(MT3SETB_LightningSharkEffect_1.default);
          fx.init(hitData);
        }
      }
      crabBombStart(hitData) {
        let fish = this.fish;
        if (fish) {
          fish.pathEnd = true;
          fish.setDying(true);
          let bombPrefab = MT3SETB_Comm_1.Comm.dataMgr.effectData.effects[MT3SETB_Game_1.eEffectNo.Cs_MultiBomb];
          let bombEffect = cc.instantiate(bombPrefab).getComponent(MT3SETB_BombCrabEffect_1.default);
          bombEffect.node.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
          let startPos = MT3SETB_Comm_1.Comm.transPos3D(MT3SETB_Comm_1.Comm.node.fishLayer, fish.node.parent, fish.node.position);
          let isMultiple = fish.getFishNo() == MT3SETB_Game_1.mtfBFishNo.MultipleBombCrab;
          bombEffect.initialize(startPos, isMultiple, hitData);
          MT3SETB_Comm_1.Comm.fishMgr.playDeathFishSoundEffect(fish.getFishNo());
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, false, true);
        }
      }
      drillCrabStart(hitData) {
        let fish = this.fish;
        if (fish) {
          fish.setDying(true);
          fish.pathEnd = true;
          MT3SETB_Comm_1.Comm.fishMgr.playDeathFishSoundEffect(fish.getFishNo());
          let bulletAngle = MT3SETB_Comm_1.Comm.gameCtrl.getBulletAngleFromHitData(hitData);
          MT3SETB_Comm_1.Comm.effectMgr.showCommonFishDeath(fish, bulletAngle, true);
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
          let startPos = MT3SETB_Comm_1.Comm.transPos3D(MT3SETB_Comm_1.Comm.node.fishLayer, fish.node.parent, fish.node.position);
          let gunDropPrefab = MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.DrillGun);
          let gunDrop = cc.instantiate(gunDropPrefab).getComponent(MT3SETB_DrillGunDrop_1.default);
          gunDrop.startAnim(hitData, startPos);
        }
      }
      uncleCatStart(hitData) {
        var _a;
        let fish = this.fish;
        if (fish) {
          fish.setDying(true);
          fish.pathEnd = true;
          fish.fishAnims[0].play("maodaye_die");
          MT3SETB_Comm_1.Comm.fishMgr.playDeathFishSoundEffect(MT3SETB_Game_1.mtfBFishNo.UncleCat);
          let bulletAngle = MT3SETB_Comm_1.Comm.gameCtrl.getBulletAngleFromHitData(hitData);
          MT3SETB_Comm_1.Comm.effectMgr.showCommonFishDeath(fish, bulletAngle, hitData.type == MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL);
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
          let isLocal = hitData.seat == MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
          if (isLocal) {
            let boardPrefab = MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.UncleCatBoard);
            let board = null === (_a = cc.instantiate(boardPrefab)) || void 0 === _a ? void 0 : _a.getComponent(MT3SETB_UncleCatBoard_1.default);
            board.initialize(hitData);
          } else {
            let fishCoinTextPos = MT3SETB_Comm_1.Comm.transPos3D(MT3SETB_Comm_1.Comm.node.effectLayer, fish.node.parent, fish.node.position);
            MT3SETB_Comm_1.Comm.effectMgr.showCoinText(hitData.coin, fishCoinTextPos, isLocal);
            MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, hitData.seat, hitData.coin, isLocal, hitData.bet, hitData.coin, MT3SETB_Game_1.mtfBFishNo.UncleCat);
            this.addWinToBalance(hitData.seat, hitData.coin);
          }
        }
      }
      shakeDeathStart(hitData) {
        let fish = this.node.getComponent(MT3SETB_Fish_1.Fish);
        if (fish) {
          MT3SETB_Comm_1.Comm.fishMgr.setFishPredead(fish.id);
          fish.setDying(true);
          fish.pathEnd = true;
          fish.setAnimSpeed(0);
          let fishCoinTextPos = MT3SETB_Comm_1.Comm.transPos3D(MT3SETB_Comm_1.Comm.node.effectLayer, fish.node.parent, fish.node.position);
          MT3SETB_Comm_1.Comm.effectMgr.showGetCoinForFish(hitData.seat, fish, hitData.coin, fishCoinTextPos);
          MT3SETB_Comm_1.Comm.fishMgr.playDeathFishSoundEffect(fish.getFishNo());
          fish.node.runAction(cc.sequence(cc.repeat(cc.sequence(cc.moveBy(.025, 15, 0), cc.moveBy(.025, -15, 0), cc.moveBy(.025, 0, 15), cc.moveBy(.025, 0, -15)), 20), cc.callFunc(() => {
            if (MT3SETB_Comm_1.Comm.dataMgr.fishJsonData[fish.no].DeathEffectInfo) {
              let isLocal = hitData.seat == MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
              MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, hitData.seat, hitData.coin, isLocal, hitData.bet, hitData.coin, fish.getFishNo());
            }
            MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, false, true);
          })));
        }
        this.addWinToBalance(hitData.seat, hitData.coin);
      }
      goldenToadStart(hitData) {
        let fish = this.node.getComponent(MT3SETB_Fish_1.Fish);
        if (fish) {
          MT3SETB_Comm_1.Comm.fishMgr.setFishPredead(fish.id);
          fish.setDying(true);
          fish.pathEnd = true;
          fish.setAnimSpeed(0);
          let fishCoinTextPos = MT3SETB_Comm_1.Comm.transPos3D(MT3SETB_Comm_1.Comm.node.effectLayer, fish.node.parent, fish.node.position);
          MT3SETB_Comm_1.Comm.effectMgr.showGetCoinForFish(hitData.seat, fish, hitData.coin, fishCoinTextPos);
          MT3SETB_Comm_1.Comm.fishMgr.playDeathFishSoundEffect(fish.getFishNo());
          let bulletAngle = MT3SETB_Comm_1.Comm.gameCtrl.getBulletAngleFromHitData(hitData);
          MT3SETB_Comm_1.Comm.effectMgr.showCommonFishDeath(fish, bulletAngle, true);
          fish.node.angle = bulletAngle + 180;
          for (var r = 0, c = fish.spineAnims; r < c.length; r++) {
            var d = c[r];
            d.timeScale = 1;
            d.paused = false;
            d.setAnimation(0, "CATCH", false);
          }
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
        }
        let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == hitData.seat;
        MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, hitData.seat, hitData.coin, isLocalPlayer, hitData.bet, hitData.coin, MT3SETB_Game_1.mtfBFishNo.GoldenToad);
        this.addWinToBalance(hitData.seat, hitData.coin);
      }
      awakenGiantCrocodileStart(hitData) {
        let fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(hitData.fishId);
        if (fish) {
          MT3SETB_Comm_1.Comm.fishMgr.setFishPredead(fish.id);
          fish.setDying(true);
          fish.pathEnd = true;
          fish.setAnimSpeed(0);
          let effectPrefab = MT3SETB_Comm_1.Comm.dataMgr.effectData.effects[MT3SETB_Game_1.eEffectNo.AwakenGiantCrocodileAttack];
          let effect = cc.instantiate(effectPrefab).getComponent(MT3SETB_AwakenGiantCrocodileAttack_1.default);
          effect.node.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
          let startPos = MT3SETB_Comm_1.Comm.node.fishLayer.convertToNodeSpaceAR(fish.getLockPosition());
          effect.init(startPos, hitData, fish);
        }
      }
    };
    __decorate([ property({
      type: cc.Enum(MT3SETB_Game_1.eFishKind)
    }) ], FishSpecialShow.prototype, "kind", void 0);
    FishSpecialShow = __decorate([ ccclass ], FishSpecialShow);
    exports.FishSpecialShow = FishSpecialShow;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-AwakenGiantCrocodileAttack": "MT3SETB-AwakenGiantCrocodileAttack",
    "./MT3SETB-AwakenNightBeastEffect": "MT3SETB-AwakenNightBeastEffect",
    "./MT3SETB-BombCrabEffect": "MT3SETB-BombCrabEffect",
    "./MT3SETB-DrillGunDrop": "MT3SETB-DrillGunDrop",
    "./MT3SETB-Fish": "MT3SETB-Fish",
    "./MT3SETB-LightningSharkEffect": "MT3SETB-LightningSharkEffect",
    "./MT3SETB-MermaidEffect": "MT3SETB-MermaidEffect",
    "./MT3SETB-ThunderDragonEffect": "MT3SETB-ThunderDragonEffect",
    "./MT3SETB-UncleCatBoard": "MT3SETB-UncleCatBoard"
  } ],
  "MT3SETB-Fish": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "6cd6eFvNn9HcZtkt++FoO9v", "MT3SETB-Fish");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    var Fish_1;
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Fish = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_DamageTint_1 = require("./MT3SETB-DamageTint");
    const MT3SETB_FishRewardShow_1 = require("./MT3SETB-FishRewardShow");
    const MT3SETB_FishSpecialShow_1 = require("./MT3SETB-FishSpecialShow");
    const MT3SETB_FishSpecialIntroShow_1 = __importDefault(require("./MT3SETB-FishSpecialIntroShow"));
    const MT3SETB_StackableMoveModule_1 = require("./Movement/MT3SETB-StackableMoveModule");
    const MT3SETB_FishAnimation_1 = __importDefault(require("./MT3SETB-FishAnimation"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    const MIN_SWIM_OUT_SPEED = 7.5;
    const SWIM_OUT_ANIM_SPEED = 2;
    const FISH_SCALE = .75;
    let Fish = Fish_1 = class Fish extends cc.Component {
      constructor() {
        super();
        this.odds = 0;
        this.zIndex = 0;
        this.scale = 1;
        this.fishAnimations = [];
        this.fishAnims = [];
        this.spineAnims = [];
        this.particles = [];
        this.isSpine = false;
        this.spineAnimName = "run";
        this.noRot = false;
        this.upwardsFlipX = false;
        this.isBundleFish = false;
        this.isGroupFish = false;
        this.isFishContainChildAnims = false;
        this.isRotateContainer = false;
        this.lockNode = null;
        this.hasLongBody = false;
        this.isAlwaysOnScreen = false;
        this.groupColliders = [];
        this.fontIdx = 0;
        this.moveSpeed = 0;
        this.touchColliders = [];
        this.hitColliders = [];
        this.fishData = null;
        this.elapsed = 0;
        this.duration = 0;
        this.offset = cc.Vec2.ZERO;
        this.fishAction = null;
        this.fishMoveAction = null;
        this.animSpeed = 1;
        this.speedRatio = 1;
        this.fishJsonData = null;
        this.bornFishInfo = null;
        this.prevLoopCycle = -1;
        this.isAllowLockOn = true;
        this.groupChildNodeData = {};
        this.isLockNodeOnScreen = false;
        this._isLockPosDirty = false;
        this._lastLockNodeWorldPos = cc.Vec3.ZERO;
        this.currAnimEvent = null;
        this.isMoveLock = false;
        this.touchColliders = null;
        this.hitColliders = [];
        this.pathDuration = 0;
        this.id = -1;
        this.no = -1;
        this.used = false;
        this.dying = false;
        this.pathEnd = null;
        this.lastPos = null;
        this.fishTint = null;
        this.fishSS = null;
        this.fishRS = null;
        this.isFading = false;
        this.pathOffset = null;
        this.elapsed = 0;
        this.duration = 0;
        this.fishAction = null;
        this.fishMoveAction = null;
        this.animSpeed = 1;
        this.speedRatio = 1;
        this.fishJsonData = null;
        this.moveModule = new MT3SETB_StackableMoveModule_1.StackableMoveModule(this);
        this.isAllowLockOn = true;
        this.currAnimEvent = null;
      }
      onLoad() {
        this.touchColliders = this.getComponents(cc.BoxCollider);
        0 == this.touchColliders.length && (this.touchColliders = this.getComponentsInChildren(cc.BoxCollider));
        this.hitColliders = this.getComponentsInChildren(cc.Collider);
        this.fishTint = this.getComponent(MT3SETB_DamageTint_1.DamageTint);
        this.fishSS = this.getComponent(MT3SETB_FishSpecialShow_1.FishSpecialShow);
        this.fishRS = this.getComponent(MT3SETB_FishRewardShow_1.FishRewardShow);
        this.oddsLabel = this.getComponentInChildren(cc.Label);
        this.specialIntro = this.getComponent(MT3SETB_FishSpecialIntroShow_1.default);
        this.node.on(Fish_1.ActionEventChanged, this.onActionEventChanged.bind(this));
      }
      update(dt) {
        var me = this;
        this.elapsed += dt;
        if (this.pathEnd) {
          this.isAllowLockOn = false;
          for (let c of this.hitColliders) c.enabled = false;
        }
        if (!this.pathEnd && !MT3SETB_Comm_1.Comm.effectMgr.isfreezing) {
          this.updateAnimation();
          this.updatePath(dt);
          this.updateRotation();
        }
        !this.dying && this.elapsed > this.duration && MT3SETB_Comm_1.Comm.fishMgr.delFish(me, false, false);
        this._isLockPosDirty = true;
      }
      updatePath(dt) {
        if (this.isMoveLock) return;
        this.moveModule.updatePath(dt);
      }
      updateRotation() {
        if (this.isMoveLock) return;
        var t = this.node;
        if (this.noRot) {
          this.node.angle = MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? 180 : 0;
          this.lastPos.x = t.x;
          this.lastPos.y = t.y;
        } else if (this.lastPos) {
          this.moveModule.updateRotation();
          if (this.upwards) {
            var angle = this.node.angle + 90;
            var needFlipX = false;
            needFlipX = MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? angle < 90 && angle > -90 : angle > 90 || angle < -90;
            if (needFlipX) {
              this.node.scaleX = -this.scale * FISH_SCALE;
              this.upwardsFlipX && (this.node.scaleY = -this.scale * FISH_SCALE);
            } else {
              this.node.scaleX = this.scale * FISH_SCALE;
              this.node.scaleY = this.scale * FISH_SCALE;
            }
          }
        }
      }
      getLockPosition() {
        if (!this._isLockPosDirty) return cc.v3(this._lastLockNodeWorldPos);
        let lockPos;
        lockPos = this.lockNode ? this.lockNode.convertToWorldSpaceAR(cc.Vec3.ZERO) : this.node.convertToWorldSpaceAR(cc.Vec3.ZERO);
        this.isLockNodeOnScreen = MT3SETB_Comm_1.Comm.fishMgr.isFishPosOnScreen(lockPos);
        if (this.isLockNodeOnScreen) this._lastLockNodeWorldPos = lockPos; else if (this.hasLongBody) {
          let winSize = MT3SETB_Comm_1.Comm.app.winSizeFactor;
          this.node.angle;
          let mat = new cc.Mat4();
          this.node.getWorldMatrix(mat);
          let dir = cc.v3(mat.m[4], mat.m[0], 0);
          let tx1 = (winSize.x - lockPos.x) / dir.x, tx2 = (winSize.x + winSize.width - lockPos.x) / dir.x, ty1 = (winSize.y - lockPos.y) / dir.y, ty2 = (winSize.y + winSize.height - lockPos.y) / dir.y;
          let tMin = Math.min(tx1, tx2), tMax = Math.max(tx1, tx2);
          tMin = Math.max(tMin, Math.min(ty1, ty2));
          tMax = Math.min(tMax, Math.max(ty1, ty2));
          if (tMax >= tMin && tMax >= 0 && tMin > 0) {
            this._lastLockNodeWorldPos = dir;
            this._lastLockNodeWorldPos.mulSelf(tMin).addSelf(lockPos);
          }
        }
        this._isLockPosDirty = false;
        return this._lastLockNodeWorldPos;
      }
      onActionEventChanged(eventData, oldEventData) {
        if (eventData.eventId) switch (eventData.eventId) {
         case MT3SETB_Game_1.mtfFishEvent.SetFishAttackable:
          this.setAttackableState(true);
          break;

         case MT3SETB_Game_1.mtfFishEvent.SetFishNonAttackable:
          this.setAttackableState(false);
          break;

         case MT3SETB_Game_1.mtfFishEvent.ScreamingTigerEndVortex:
         case MT3SETB_Game_1.mtfFishEvent.ScreamingTigerStartVortex:
          MT3SETB_Comm_1.Comm.effectMgr.showScreamingTigerVortex(this, eventData.eventId);
          break;

         case MT3SETB_Game_1.mtfFishEvent.ScreenShake:
          MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, .1, 30, 10);
          break;

         case MT3SETB_Game_1.mtfFishEvent.PlayBuffaloMove:
          MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, .1, 30, 10);
          MT3SETB_Comm_1.Comm.snd.playEffectByName("Buffalo_Move");
        }
      }
      setAttackableState(isAttackable, updateOpacity = true) {
        this.isAllowLockOn = isAttackable;
        updateOpacity && (this.node.opacity = isAttackable ? 255 : 0);
        for (let c of this.hitColliders) c.enabled = isAttackable;
      }
      updateAnimation() {
        if (!this.fishMoveAction) return;
        let animTime = this.elapsed - Math.floor(this.elapsed / this.fishMoveAction.totalSeconds) * this.fishMoveAction.totalSeconds;
        let currEvent = this.fishMoveAction.events[0];
        for (let event of this.fishMoveAction.events) {
          if (event.time >= animTime) break;
          currEvent = event;
        }
        if (currEvent) {
          if (this.currAnimEvent !== currEvent) {
            let oldEvent = this.currAnimEvent;
            this.currAnimEvent = currEvent;
            this.node.emit(Fish_1.ActionEventChanged, currEvent, oldEvent);
          }
          this.setAnimSpeed(currEvent.animPlayRatio);
          this.moveSpeed = currEvent.speed;
        }
      }
      updateOddsText(odds) {
        this.oddsLabel && (this.oddsLabel.string = odds.toString());
      }
      init(fishData, isRotated) {
        var o = this;
        this.id = fishData.id;
        this.no = fishData.no;
        this.serial = fishData.serial;
        fishData.odds && (this.odds = fishData.odds);
        this.fishData = fishData;
        this.enabled = true;
        this._isLockPosDirty = true;
        this.damageTint(false);
        for (let c of this.touchColliders) c.enabled = true;
        for (let c of this.hitColliders) c.enabled = true;
        this.used = true;
        this.dying = false;
        this.pathEnd = false;
        this.lastPos = cc.Vec2.ZERO;
        this.node.angle = 0;
        this.node.scaleX = this.scale * FISH_SCALE;
        this.node.scaleY = this.scale * FISH_SCALE;
        this.node.position = cc.v3(-5e3, -5e3);
        this.moveSpeed = 100;
        this.setSpeedRatio(fishData.moveSpeed);
        this.fontIdx = fishData.idx;
        this.isMultiFish = false;
        this.fishJsonData = MT3SETB_Comm_1.Comm.dataMgr.fishJsonData[this.no];
        this.childId = fishData.childId[0];
        if (this.isGroupFish && 0 == Object.keys(this.groupChildNodeData).length) for (let animChildIndex = 1; animChildIndex < this.fishAnims.length; animChildIndex++) {
          if (!this.fishAnims[animChildIndex]) continue;
          let animChildChildren = this.fishAnims[animChildIndex].node.children;
          for (let i = 0; i < animChildChildren.length; i++) {
            let childNode = animChildChildren[i];
            this.groupChildNodeData[childNode.uuid] = {
              scale: childNode.scale,
              angle: childNode.angle
            };
          }
        }
        if (this.isGroupFish && 0 == Object.keys(this.groupChildNodeData).length) for (let animChildIndex = 1; animChildIndex < this.fishAnims.length; animChildIndex++) {
          this.fishAnims[animChildIndex] || console.warn("null fishAnims on fish no", this.no);
          let animChildChildren = this.fishAnims[animChildIndex].node.children;
          for (let i = 0; i < animChildChildren.length; i++) {
            let childNode = animChildChildren[i];
            this.groupChildNodeData[childNode.uuid] = {
              scale: childNode.scale,
              angle: childNode.angle
            };
          }
        }
        this.prevLoopCycle = -1;
        this.fishAction = MT3SETB_Comm_1.Comm.dataMgr.getFishActionData(this.no);
        if (this.fishAction) {
          let actionName = fishData.action || "move";
          for (let action of this.fishAction.actions) if (action.name == actionName) {
            this.fishMoveAction = action;
            for (let i = 0; i < this.fishMoveAction.events.length; i++) {
              let event = this.fishMoveAction.events[i];
              event.isDone = false;
            }
          }
        } else console.warn("missing fish action for fish no ", this.no);
        null == this.lockNode && (this.lockNode = this.node);
        this.postInit();
      }
      isFishInBombRange(targetFish, range) {
        if (-1 == range) return true;
        var s = Math.floor(this.node.position.x - targetFish.node.x), n = Math.floor(this.node.position.y - targetFish.node.y), o = Math.sqrt(s * s + n * n);
        return range > o;
      }
      dummyInit() {
        this.onLoad();
        this.node.angle = 0;
        this.node.scaleX = this.scale;
        this.node.scaleY = this.scale;
        for (let c of this.touchColliders) c.enabled = false;
        for (let c of this.hitColliders) c.enabled = false;
        this.used = true;
        this.dying = true;
      }
      postInit() {
        var e = this;
        this.childId = MT3SETB_Game_1.getFishOverrideChildIds(this.no, this.childId);
        if (MT3SETB_Game_1.isFishMultiFish(this.no)) {
          this.fishAnims = [];
          for (var i = 0; i < this.groupColliders.length; i++) if (this.isFishContainChildAnims) this.fishAnims.push(this.groupColliders[i].getComponent(cc.Animation)); else {
            var dummyFish = MT3SETB_Comm_1.Comm.fishMgr.getDummyFish(this.childId);
            dummyFish.dummyInit();
            dummyFish.node.setParent(this.node);
            dummyFish.node.setPosition(this.groupColliders[i].node.position);
            for (let collider of dummyFish.getComponentsInChildren(cc.Collider)) collider.enabled = false;
            this.fishAnims.push(dummyFish.fishAnims[0]);
          }
          this.setSpeedRatio(.25);
          this.isMultiFish = true;
        }
        if (this.isSpine) for (var r = 0, c = this.spineAnims; r < c.length; r++) {
          var d = c[r];
          d.timeScale = 1;
          d.paused = false;
          d.setAnimation(0, this.spineAnimName, true);
          d.setCompleteListener(function() {});
        } else if (this.fishAnims[0]) {
          var moveAnim = this.fishAnims[0].getClips().find(c => c.name.endsWith("_move"));
          moveAnim && this.fishAnims[0].play(moveAnim.name);
        }
        var g = MT3SETB_Comm_1.Comm.fishMgr.isTorpedoFilterOn() && MT3SETB_Comm_1.Comm.fishMgr.getHalfOpacityOdds() >= this.getOdds();
        this.isFading = true;
        this.isAllowLockOn = false;
        this.node.opacity = 0;
        let enterSceneAction = cc.fadeTo(.2, g ? 127 : 255).easing(cc.easeIn(2));
        if (this.fishData.createParams) {
          this.fishData.createParams.fadeInSecs > 0 && (enterSceneAction = cc.fadeTo(this.fishData.createParams.fadeInSecs, g ? 127 : 255).easing(cc.easeIn(2)));
          if (this.fishData.createParams.scaleInSec > 0) {
            var destScale = new cc.Vec2(this.node.scaleX, this.node.scaleY);
            this.node.scale = 0;
            enterSceneAction = cc.spawn(enterSceneAction, cc.scaleTo(this.fishData.createParams.scaleInSec, destScale.x, destScale.y));
          }
        }
        this.node.runAction(cc.sequence(enterSceneAction, cc.callFunc(function() {
          e.isFading = false;
          e.isAllowLockOn = true;
        }))).setTag(5001);
      }
      nextFrame(e) {
        this.scheduleOnce(e, 0);
      }
      nextFrameInSeconds(e, time) {
        this.scheduleOnce(e, time);
      }
      getMinSwimOutSpeed(duration) {
        let timeRemaining = this.duration - this.elapsed;
        return Math.max(timeRemaining / duration, MIN_SWIM_OUT_SPEED);
      }
      swimOut(duration, moveSpeed) {
        var n = this;
        n.setSpeedRatio(moveSpeed);
        n.setAnimSpeed(SWIM_OUT_ANIM_SPEED);
        n.nextFrameInSeconds(() => {
          MT3SETB_Comm_1.Comm.fishMgr.delFish(n, false, false);
        }, duration);
      }
      setSpeedRatio(e) {
        this.speedRatio = e;
      }
      setAnimSpeed(speed) {
        this.animSpeed = speed;
        if (this.isSpine) {
          if (this.spineAnims) for (var t = 0, o = this.spineAnims; t < o.length; t++) o[t] && (o[t].timeScale = speed);
        } else if (this.fishAnims) for (var n = 0, i = this.fishAnims; n < i.length; n++) {
          if (!i[n]) continue;
          var a = i[n], r = a.currentClip || a.defaultClip, s = a.getAnimationState(r ? r.name : "");
          s && (s.speed = speed);
        }
      }
      setAnimSpeedForWhile(speed, duration) {
        var o = this;
        this.__speedFunc && this.unschedule(this.__speedFunc);
        this.__speedFunc = function() {
          o.setAnimSpeed(this.animSpeed);
          o.__speedFunc = void 0;
        };
        this.scheduleOnce(this.__speedFunc, duration);
        this.setAnimSpeed(speed);
      }
      getFishNo() {
        return this.no;
      }
      getFishId() {
        return this.id;
      }
      setUsed(e) {
        this.used = e;
      }
      isUsed() {
        return this.used;
      }
      setDying(e) {
        this.dying = e;
      }
      isDying() {
        return this.dying;
      }
      getOdds() {
        return this.odds;
      }
      destroyFish(e, t) {
        this.damageTint(false);
        for (let c of this.touchColliders) c.enabled = false;
        for (let c of this.hitColliders) c.enabled = false;
        this.dying = true;
        if (t) this.pushToPool(); else if (e) this.nextFrameInSeconds(() => {
          this.pushToPool();
        }, 1); else if (!this.isFading) {
          this.isFading = true;
          this.isAllowLockOn = false;
          var isFadeOutEnable = this.bornFishInfo && this.bornFishInfo.fadeOutSecs && this.bornFishInfo.fadeOutSecs > 0;
          var fadeOutDuration = isFadeOutEnable ? this.bornFishInfo.fadeOutSecs : .1;
          var fish = this;
          this.node.runAction(cc.sequence(cc.fadeOut(fadeOutDuration).easing(cc.easeIn(2)), cc.callFunc(() => {
            fish.isFading = false;
            fish.pushToPool();
          })));
        }
      }
      pushToPool() {
        this.used = false;
        this.dying = false;
        this.pathEnd = true;
        this.lastPos = null;
        this.pathOffset = null;
        this.node.opacity = 255;
        this.elapsed = 0;
        this.duration = 0;
        this.animSpeed = 1;
        this.speedRatio = 1;
        this.fishData = null;
        this.fishJsonData = null;
        this.moveModule.reset();
        this.particles.forEach(function(e) {
          return e.resetSystem();
        });
        if (this.isGroupFish) for (let animChildIndex = 1; animChildIndex < this.fishAnims.length; animChildIndex++) {
          let animChildChildren = this.fishAnims[animChildIndex].node.children;
          for (let i = 0; i < animChildChildren.length; i++) {
            let childNode = animChildChildren[i];
            let nodeData = this.groupChildNodeData[childNode.uuid];
            childNode.scale = nodeData.scale;
            childNode.angle = nodeData.angle;
          }
        }
        this.unscheduleAllCallbacks();
        MT3SETB_Comm_1.Comm.fishMgr.removeFishFromCache(this.id);
        MT3SETB_Comm_1.Comm.dataMgr.setFish(this.node, this.no);
      }
      derivative(e, t, o) {
        return cc.v2((t.x - e.x) * o, (t.y - e.y) * o);
      }
      checkPathRatio(e) {
        const designWidth = 1280, designHeight = 720, padX = 0, padY = 0, targetWidth = cc.view.getDesignResolutionSize().width, targetHeight = cc.view.getDesignResolutionSize().height;
        var t = cc.v2(e);
        t.x *= (targetWidth + padX) / (designWidth + padX);
        t.y *= (targetHeight + padY) / (designHeight + padY);
        t.x += targetWidth / 2;
        t.y += targetHeight / 2;
        return t;
      }
      InitPath(fishData, delay, elapsed) {
        this.moveModule.setPath(fishData.pathData);
        this.offset = fishData.offset;
        this.duration = fishData.duration;
        let subPathInfo = fishData.subPath;
        subPathInfo && this.moveModule.setSubPathData(subPathInfo);
        this.moveModule.init(delay);
        this.shiftPosition(elapsed);
        this.moveModule.updateRotation();
      }
      shiftPosition(elapseBy) {
        if (this.fishMoveAction) {
          let animTime = this.elapsed - Math.floor(this.elapsed / this.fishMoveAction.totalSeconds) * this.fishMoveAction.totalSeconds;
          let eventIdx = 0;
          let currEvent = this.fishMoveAction.events[eventIdx];
          for (let i = 0; i < this.fishMoveAction.events.length; i++) {
            let event = this.fishMoveAction.events[i];
            if (event.time >= animTime) break;
            currEvent = event;
            eventIdx = i;
          }
          let dist = 0;
          let diff = elapseBy;
          while (diff > 0) {
            let timeToNextEvent = 0;
            if (eventIdx + 1 < this.fishMoveAction.events.length) {
              let nextEvent = this.fishMoveAction.events[eventIdx + 1];
              timeToNextEvent = nextEvent.time - animTime;
            } else timeToNextEvent = this.fishMoveAction.totalSeconds - animTime;
            timeToNextEvent = Math.min(timeToNextEvent, diff);
            let disp = timeToNextEvent * currEvent.speed * this.speedRatio;
            dist += disp;
            this.elapsed += timeToNextEvent;
            diff -= timeToNextEvent;
            eventIdx = (eventIdx + 1) % this.fishMoveAction.events.length;
            currEvent = this.fishMoveAction.events[eventIdx];
            animTime = currEvent.time;
          }
          this.moveModule.t = this.elapsed;
          this.moveModule.dist += dist;
          this.moveModule.updatePath(0);
        } else this.moveModule.updatePath(elapseBy);
        if (this.fishData.createParams) {
          let maxActionTime = Math.max(this.fishData.createParams.fadeInSecs, this.fishData.createParams.scaleInSec);
          if (this.elapsed > maxActionTime && this.isFading) {
            this.node.stopActionByTag(5001);
            this.isFading = false;
            this.isAllowLockOn = true;
            let g = MT3SETB_Comm_1.Comm.fishMgr.isTorpedoFilterOn() && MT3SETB_Comm_1.Comm.fishMgr.getHalfOpacityOdds() >= this.getOdds();
            this.node.opacity = g ? 127 : 255;
            this.node.scaleX = this.scale * FISH_SCALE;
            this.node.scaleY = this.scale * FISH_SCALE;
          }
        }
      }
      getZIndex() {
        return this.zIndex;
      }
      getLastPos() {
        return this.lastPos;
      }
      isPathEnd() {
        return this.pathEnd;
      }
      damageTint(shouldTint, count = 2) {
        if (this.fishTint) {
          var tint = .5;
          shouldTint ? this.fishTint.tint(count, tint) : this.fishTint.stop();
        }
      }
      freezeTint(e) {
        this.fishTint && this.fishTint.showFreeze(e);
      }
      getSpecialShow() {
        return this.fishSS;
      }
      specialShowStart(e) {
        this.fishSS && this.fishSS.showStart(e);
      }
      getRewardShow() {
        return this.fishRS;
      }
      rewardShowStart(e) {
        if (null == this.fishRS) {
          this.fishRS = this.node.addComponent(MT3SETB_FishRewardShow_1.FishRewardShow);
          this.fishRS.medal = MT3SETB_Game_1.eFishMedal.Medal_1;
        }
        this.fishRS && this.fishRS.showStart(e, this.no);
      }
      setOpacity(e) {
        if (!this.dying) {
          this.isFading && (this.node.stopActionByTag(5001), this.isFading = false);
          this.node.opacity = e;
        }
      }
      getVelocity() {
        if (!this.lastPos) return cc.Vec2.ZERO;
        let currentPos = this.node.position;
        let direction = cc.v2(currentPos.x - this.lastPos.x, currentPos.y - this.lastPos.y);
        if (0 === direction.mag()) return cc.Vec2.ZERO;
        direction.normalizeSelf();
        let velocity = direction.mul(this.moveSpeed);
        return velocity;
      }
    };
    Fish.ActionEventChanged = "ActionEventChanged";
    __decorate([ property ], Fish.prototype, "odds", void 0);
    __decorate([ property ], Fish.prototype, "zIndex", void 0);
    __decorate([ property ], Fish.prototype, "scale", void 0);
    __decorate([ property([ MT3SETB_FishAnimation_1.default ]) ], Fish.prototype, "fishAnimations", void 0);
    __decorate([ property([ cc.Animation ]) ], Fish.prototype, "fishAnims", void 0);
    __decorate([ property([ sp.Skeleton ]) ], Fish.prototype, "spineAnims", void 0);
    __decorate([ property([ cc.ParticleSystem ]) ], Fish.prototype, "particles", void 0);
    __decorate([ property ], Fish.prototype, "isSpine", void 0);
    __decorate([ property(cc.String) ], Fish.prototype, "spineAnimName", void 0);
    __decorate([ property ], Fish.prototype, "noRot", void 0);
    __decorate([ property ], Fish.prototype, "upwardsFlipX", void 0);
    __decorate([ property ], Fish.prototype, "isBundleFish", void 0);
    __decorate([ property ], Fish.prototype, "isGroupFish", void 0);
    __decorate([ property ], Fish.prototype, "isFishContainChildAnims", void 0);
    __decorate([ property ], Fish.prototype, "isRotateContainer", void 0);
    __decorate([ property(cc.Node) ], Fish.prototype, "lockNode", void 0);
    __decorate([ property(cc.Boolean) ], Fish.prototype, "hasLongBody", void 0);
    __decorate([ property(cc.Boolean) ], Fish.prototype, "isAlwaysOnScreen", void 0);
    __decorate([ property([ cc.Collider ]) ], Fish.prototype, "groupColliders", void 0);
    Fish = Fish_1 = __decorate([ ccclass ], Fish);
    exports.Fish = Fish;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-DamageTint": "MT3SETB-DamageTint",
    "./MT3SETB-FishAnimation": "MT3SETB-FishAnimation",
    "./MT3SETB-FishRewardShow": "MT3SETB-FishRewardShow",
    "./MT3SETB-FishSpecialIntroShow": "MT3SETB-FishSpecialIntroShow",
    "./MT3SETB-FishSpecialShow": "MT3SETB-FishSpecialShow",
    "./Movement/MT3SETB-StackableMoveModule": "MT3SETB-StackableMoveModule"
  } ],
  "MT3SETB-FitContent": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d62deb7HtNPerVy8hAVhn/3", "MT3SETB-FitContent");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const {ccclass: ccclass, property: property, menu: menu} = cc._decorator;
    let FitContent = class FitContent extends cc.Component {
      constructor() {
        super(...arguments);
        this.debugmode = false;
        this.enableIgnoreList = false;
        this.ignoreList = [];
        this._origScale = [];
        this.childrenNodes = [];
        this.childLayouts = [];
        this._dirty = false;
      }
      get width() {
        return this.node.width;
      }
      get height() {
        return this.node.height;
      }
      onLoad() {
        this.childrenNodes = this.getComponentsInChildren(cc.RenderComponent).map(rc => rc.node);
        let richtextNodes = this.getComponentsInChildren(cc.RichText).map(rc => rc.node);
        this.childrenNodes = this.childrenNodes.concat(richtextNodes);
        this.childLayouts = this.getComponentsInChildren(cc.Layout);
        if (this.enableIgnoreList) {
          this.debuglog("ignore list enabled", this.ignoreList);
          this.debuglog("ignore before ", this.childrenNodes.map(node => node.name));
          this.childrenNodes = this.childrenNodes.filter(node => this.ignoreList.indexOf(node) < 0);
          this.childLayouts = this.childLayouts.filter(node => this.ignoreList.indexOf(node.node) < 0);
          this.debuglog("ignore result ", this.childrenNodes.map(node => node.name));
          for (let i = 0; i < this.ignoreList.length; ++i) this._origScale[i] = this.ignoreList[i].scale;
        }
        this.debuglog("fit content size: ", this.node.getContentSize());
        for (let child of this.childrenNodes) child.on(cc.Node.EventType.SIZE_CHANGED, this.onSizeChanged.bind(this), this);
      }
      start() {
        this.calcMinMaxRect();
        this.fitContent();
      }
      lateUpdate(dt) {
        if (!this._dirty) return;
        this.debuglog("recalculating min max");
        this.calcMinMaxRect();
        this.fitContent();
        this._dirty = false;
      }
      calcMinMaxRect() {
        for (let layout of this.childLayouts) layout.updateLayout();
        let rect = new cc.Rect();
        for (let child of this.childrenNodes) {
          rect.union(rect, child.getBoundingBox());
          this.debuglog("compare", child.name, child.getContentSize(), child.getBoundingBox());
        }
        this.childContentRect = rect;
      }
      fitContent() {
        if (!this.childContentRect) return;
        this.debuglog("fit content", this.width, this.height, this.childContentRect.width, this.childContentRect.height);
        let dw = this.width / this.childContentRect.width;
        let dh = this.height / this.childContentRect.height;
        let s = Math.min(1, dw, dh);
        this.node.scale = s;
        this.debuglog("compare scaling", dw, dh, s);
        if (this.enableIgnoreList) for (let i = 0; i < this.ignoreList.length; ++i) this.ignoreList[i].scale = this._origScale[i] / s;
      }
      onSizeChanged() {
        this._dirty = true;
      }
      debuglog(text, ...data) {
        if (this.debugmode) {
          let d = [ "[FitContent] " + text ];
          d = d.concat(data);
          console.log(d);
        }
      }
    };
    __decorate([ property({
      tooltip: false
    }) ], FitContent.prototype, "debugmode", void 0);
    __decorate([ property({
      tooltip: false
    }) ], FitContent.prototype, "enableIgnoreList", void 0);
    __decorate([ property({
      type: [ cc.Node ],
      visible: function() {
        return this.enableIgnoreList;
      },
      tooltip: false
    }) ], FitContent.prototype, "ignoreList", void 0);
    FitContent = __decorate([ ccclass ], FitContent);
    exports.default = FitContent;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-FlameStormFishGun": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "4ea6cSv6DdMkbAYiDXACiKQ", "MT3SETB-FlameStormFishGun");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.PRE_SWITCH_GUN_DURATION = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_FlameStormGun_1 = __importDefault(require("./MT3SETB-FlameStormGun"));
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const {ccclass: ccclass, property: property} = cc._decorator;
    exports.PRE_SWITCH_GUN_DURATION = 3.95;
    const ANIM = "fish_lyfb";
    const PRE_MOVE_DELAY = 2;
    const POST_MOVE_DELAY = 1;
    const ANIM_CUTOFF = .2;
    let FlameStormFishGun = class FlameStormFishGun extends cc.Component {
      constructor() {
        super(...arguments);
        this.spineAnim = null;
        this.canEnd = false;
        this.hitData = null;
        this.timeSinceSrcTp = 0;
        this.fishLayerStartPos = cc.Vec3.ZERO;
        this.startTimeMs = 0;
        this.newPlayerJoinedHandler = null;
      }
      update(dt) {
        if (this.turret.state == MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          this.node.destroy();
          return;
        }
        this.timeSinceSrcTp += dt;
        let tp = this.srcTp + this.timeSinceSrcTp;
        this.updatePos(tp);
        if (!this.canEnd && tp >= this.destTp - .5) {
          this.canEnd = true;
          this.switchCannon(tp);
        }
      }
      startAnim(hitData, fishLayerStartPos) {
        var _a;
        this.hitData = hitData;
        this.turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        this.fishLayerStartPos = fishLayerStartPos;
        this.startTimeMs = Date.now();
        this.node.setParent(MT3SETB_Comm_1.Comm.find("Turret", this.turret.stageCannonNode));
        this.node.position = MT3SETB_Comm_1.Comm.transPos3D(this.node.parent, MT3SETB_Comm_1.Comm.node.fishLayer, fishLayerStartPos);
        this.spineAnim.setAnimation(0, ANIM, false);
        this.srcTp = null !== (_a = hitData.time) && void 0 !== _a ? _a : 0;
        this.destTp = this.spineAnim.findAnimation(ANIM).duration;
        this.destUseTime = this.destTp - this.srcTp - (PRE_MOVE_DELAY + POST_MOVE_DELAY);
        this.srcPos = new cc.Vec2(this.node.x, this.node.y);
        let destPos = MT3SETB_Comm_1.Comm.transPos(this.node.parent, this.turret.pivot.parent, this.turret.pivot.position);
        this.destPos = new cc.Vec2(destPos.x, destPos.y);
        if (this.hitData.seat == MT3SETB_Comm_1.Comm.gameCtrl.playerSeat) {
          this.newPlayerJoinedHandler = this.onNewPlayerJoined.bind(this);
          this.turret.addNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        }
      }
      updatePos(tp) {
        let useTime = tp - this.srcTp - PRE_MOVE_DELAY;
        let percent = Math.min(1, Math.max(0, useTime / this.destUseTime));
        this.node.x = this.srcPos.x + percent * (this.destPos.x - this.srcPos.x);
        this.node.y = this.srcPos.y + percent * (this.destPos.y - this.srcPos.y);
      }
      switchCannon(tp) {
        this.turret.isMovingCrosshair = false;
        this.turret.pauseNormalFiringState(true, false);
        this.turret.switchCannon(MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FLAMESTORM);
        this.turret.gunType = MT3SETB_Turret_1.GunType.FlameStorm;
        let flameStormGun = this.turret.pivot.getComponentInChildren(MT3SETB_FlameStormGun_1.default);
        if (flameStormGun) {
          flameStormGun.init(this.turret, this.hitData.bet, this.hitData.coin, 0);
          flameStormGun.setStartTimeMs(this.startTimeMs);
        } else cc.warn("flame storm gun not found");
        let remainingTime = this.destTp - tp;
        if (remainingTime >= ANIM_CUTOFF) {
          let self = this;
          this.node.runAction(cc.sequence(cc.fadeOut(remainingTime - ANIM_CUTOFF), cc.callFunc(() => self.dispose())));
        } else this.dispose();
      }
      onNewPlayerJoined(seat) {
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: MT3SETB_Game_1.mtfBFishNo.FlamesStorm,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: this.fishLayerStartPos.x,
            y: this.fishLayerStartPos.y
          }),
          bet: this.hitData.bet,
          win: this.hitData.coin,
          secondsElapsed: (Date.now() - this.startTimeMs) / 1e3,
          collateralDead: []
        };
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
      dispose() {
        MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat && this.turret.removeNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        this.node.destroy();
      }
    };
    __decorate([ property(sp.Skeleton) ], FlameStormFishGun.prototype, "spineAnim", void 0);
    FlameStormFishGun = __decorate([ ccclass ], FlameStormFishGun);
    exports.default = FlameStormFishGun;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-FlameStormGun": "MT3SETB-FlameStormGun",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-FlameStormGun": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d1e76DZT2pMqY/rAvkYqauS", "MT3SETB-FlameStormGun");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_FlameStormInfoUi_1 = __importDefault(require("./MT3SETB-FlameStormInfoUi"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    var State;
    (function(State) {
      State[State["None"] = 0] = "None";
      State[State["Wait"] = 1] = "Wait";
      State[State["Fire"] = 2] = "Fire";
      State[State["FireEnd"] = 3] = "FireEnd";
      State[State["WaitEnd"] = 4] = "WaitEnd";
    })(State || (State = {}));
    const START_BULLETS = 200;
    const FRAME_CD = .15;
    const FIRE_TIME_BUFFER = 2.5;
    const START_WAIT_TIME = 4;
    const FIRE_END_TIME = 3;
    const END_WAIT_TIME = 3;
    let FlameStormGun = class FlameStormGun extends cc.Component {
      constructor() {
        super(...arguments);
        this.cannonBackingPrefab = null;
        this.infoUiPrefab = null;
        this.cannonAnim = null;
        this.used = false;
        this.bet = 0;
        this.winAmount = 0;
        this.turret = null;
        this.cannonBacking = null;
        this.cannonBackingSpine = null;
        this.infoUi = null;
        this.currState = State.None;
        this.numFired = 0;
        this.leastTime = 0;
        this.hasShownStartEffect = false;
        this.timeSinceLastBullet = 0;
        this.fireEnd = false;
        this.hasShownFireEndEffect = false;
        this.waitTime = START_WAIT_TIME;
        this.startTimeMs = 0;
        this.newPlayerJoinedHandler = null;
      }
      update(dt) {
        if (!this.used) return;
        switch (this.currState) {
         case State.Wait:
          this.handleWaitUpdate(dt);
          break;

         case State.Fire:
          this.handleFireUpdate(dt);
          break;

         case State.FireEnd:
          this.handleFireEndUpdate(dt);
          break;

         case State.WaitEnd:
          this.handleWaitEndUpdate(dt);
        }
      }
      lateUpdate(dt) {
        if (!this.used) return;
        this.updateInfoUi();
      }
      init(turret, bet, winAmount, secondsElapsed) {
        this.bet = bet;
        this.winAmount = winAmount;
        this.turret = turret;
        turret.pivot.angle = 0;
        MT3SETB_Comm_1.Comm.shootMgr.shootPosFL = cc.Vec2.ZERO;
        this.initData(secondsElapsed);
        this.initGunUi();
        this.initInfoUi(bet);
        this.updateInfoUi();
        if (this.turret == MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret()) {
          this.newPlayerJoinedHandler = this.onNewPlayerJoined.bind(this);
          this.turret.addNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        }
        this.used = true;
      }
      setStartTimeMs(startTimeMs) {
        this.startTimeMs = startTimeMs;
      }
      incrementNumFired() {
        this.numFired++;
      }
      initData(secondsElapsed) {
        if (secondsElapsed < START_WAIT_TIME) {
          this.currState = State.Wait;
          this.waitTime = START_WAIT_TIME - secondsElapsed;
          this.turret.lock(true, START_WAIT_TIME - secondsElapsed);
          this.numFired = 0;
          this.leastTime = this.getMaxFireTime() + FIRE_TIME_BUFFER;
          return;
        }
        secondsElapsed -= START_WAIT_TIME;
        let maxFireTime = this.getMaxFireTime();
        if (secondsElapsed < maxFireTime) {
          this.currState = State.Fire;
          this.leastTime = maxFireTime - secondsElapsed;
          this.numFired = this.getBulletsForTime(this.leastTime);
          this.leastTime += FIRE_TIME_BUFFER;
          this.cannonAnim.play("lieyanfengbao_fire");
          this.turret.lock(false, 0);
          return;
        }
        this.numFired = START_BULLETS;
        this.leastTime = 0;
        secondsElapsed -= maxFireTime;
        if (secondsElapsed < FIRE_END_TIME) {
          this.currState = State.FireEnd;
          this.waitTime = FIRE_END_TIME - secondsElapsed;
          this.turret.lock(true, this.waitTime + END_WAIT_TIME);
          return;
        }
        secondsElapsed -= FIRE_END_TIME;
        this.currState = State.WaitEnd;
        this.waitTime = END_WAIT_TIME - secondsElapsed;
        this.turret.lock(true, this.waitTime);
      }
      getMaxFireTime() {
        return FRAME_CD * START_BULLETS;
      }
      getBulletsForTime(time) {
        return START_BULLETS - Math.round(time / FRAME_CD);
      }
      initGunUi() {
        this.cannonBacking = cc.instantiate(this.cannonBackingPrefab);
        this.cannonBackingSpine = this.cannonBacking.getComponentInChildren(sp.Skeleton);
        let parent = this.turret.pivot.parent;
        parent.insertChild(this.cannonBacking, 0);
        let animName = this.currState == State.Wait ? "fish_lyfb_ptquan" : "fish_lyfb_ptquan2";
        this.cannonBackingSpine.setAnimation(0, animName, true);
      }
      initInfoUi(bet) {
        var _a;
        this.infoUi = null === (_a = cc.instantiate(this.infoUiPrefab)) || void 0 === _a ? void 0 : _a.getComponent(MT3SETB_FlameStormInfoUi_1.default);
        this.turret.uiNode.addChild(this.infoUi.node);
        this.infoUi.init(this.turret.betTextParent, bet, this.currState != State.Wait, this.turret.isUpsideDown());
      }
      getCurrentBulletCount() {
        return Math.max(0, START_BULLETS - this.numFired);
      }
      updateInfoUi() {
        if (!this.infoUi) return;
        this.infoUi.setTime(Math.max(0, this.leastTime));
        this.infoUi.setBullet(this.getCurrentBulletCount());
      }
      handleWaitUpdate(deltaTime) {
        this.waitTime -= deltaTime;
        if (this.waitTime <= 0) {
          this.infoUi.stopStartAnim();
          this.transitionToFireState();
          return;
        }
        if (this.hasShownStartEffect || this.waitTime > START_WAIT_TIME - .5) return;
        this.hasShownStartEffect = true;
        this.infoUi.playStartAnim();
      }
      transitionToFireState() {
        this.currState = State.Fire;
        this.infoUi.playInfoShowAnim();
        this.cannonBackingSpine.setAnimation(0, "fish_lyfb_ptquan2", true);
        this.cannonAnim.play("lieyanfengbao_fire");
        MT3SETB_Comm_1.Comm.snd.playEffectByName("v_firestorm_go");
        this.turret.lock(false, 0);
      }
      handleFireUpdate(deltaTime) {
        this.leastTime -= deltaTime;
        if (this.leastTime <= 0 || 0 == this.getCurrentBulletCount()) {
          this.fireEnd || (this.fireEnd = true);
          this.transitionToFireEndState();
        }
        let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.turret.seatNo;
        if (isLocalPlayer && this.currState == State.Fire) {
          this.timeSinceLastBullet += deltaTime;
          if (this.timeSinceLastBullet > FRAME_CD && this.leastTime > 0 && this.getCurrentBulletCount() > 0) {
            this.timeSinceLastBullet -= FRAME_CD;
            if (!MT3SETB_Comm_1.Comm.disconnectToast.root.active) {
              MT3SETB_Comm_1.Comm.gameCtrl.readyToShoot(MT3SETB_Comm_1.Comm.shootMgr.createBulletId(), MT3SETB_Comm_1.Comm.shootMgr.shootPosFL);
              this.incrementNumFired();
            }
          }
        }
      }
      transitionToFireEndState() {
        this.currState = State.FireEnd;
        this.waitTime = FIRE_END_TIME;
        this.turret.lock(true, FIRE_END_TIME + END_WAIT_TIME);
        this.cannonAnim.play("lieyanfengbao_cannon");
      }
      handleFireEndUpdate(deltaTime) {
        this.waitTime -= deltaTime;
        if (this.waitTime <= 0) {
          this.transitionToWaitEndState();
          return;
        }
        if (!this.hasShownFireEndEffect) {
          this.hasShownFireEndEffect = true;
          this.infoUi.playEndAnim();
        }
      }
      transitionToWaitEndState() {
        this.currState = State.WaitEnd;
        this.waitTime = END_WAIT_TIME;
      }
      handleWaitEndUpdate(deltaTime) {
        this.waitTime -= deltaTime;
        if (this.waitTime <= 0) {
          this.turret.lock(false, 0);
          let seat = this.turret.seatNo;
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", seat, -this.winAmount);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(seat);
          this.dispose();
          this.turret.resumeNormalFiringState();
          this.turret.switchAvatar();
        }
      }
      onNewPlayerJoined(seat) {
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: MT3SETB_Game_1.mtfBFishNo.FlamesStorm,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: 0,
            y: 0
          }),
          bet: this.bet,
          win: this.winAmount,
          secondsElapsed: (Date.now() - this.startTimeMs) / 1e3,
          collateralDead: []
        };
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
      dispose() {
        this.turret == MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret() && this.turret.removeNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        this.used = false;
        this.currState = State.None;
        this.numFired = 0;
        this.leastTime = 0;
        this.hasShownStartEffect = false;
        this.hasShownFireEndEffect = false;
        this.timeSinceLastBullet = 0;
        this.fireEnd = false;
        this.waitTime = START_WAIT_TIME;
        this.infoUi.dispose();
        this.infoUi = null;
        this.cannonBacking.destroy();
      }
    };
    __decorate([ property(cc.Prefab) ], FlameStormGun.prototype, "cannonBackingPrefab", void 0);
    __decorate([ property(cc.Prefab) ], FlameStormGun.prototype, "infoUiPrefab", void 0);
    __decorate([ property(cc.Animation) ], FlameStormGun.prototype, "cannonAnim", void 0);
    FlameStormGun = __decorate([ ccclass ], FlameStormGun);
    exports.default = FlameStormGun;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-FlameStormInfoUi": "MT3SETB-FlameStormInfoUi"
  } ],
  "MT3SETB-FlameStormInfoUi": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "1954c5r9nxBmLe80g5Vyu+p", "MT3SETB-FlameStormInfoUi");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FlameStormInfoUi = class FlameStormInfoUi extends cc.Component {
      constructor() {
        super(...arguments);
        this.firingInfo = null;
        this.bulletLabel = null;
        this.timeLabel = null;
        this.noticeBackingSpine = null;
        this.noticeFreegameSprite = null;
        this.noticeStartSprite = null;
        this.noticeEndSprite = null;
      }
      init(betObject, bet, isFiringInfoActive, isUpsideDown) {
        this.noticeBackingSpine.clearTracks();
        let betUi = cc.instantiate(betObject);
        let betLabel = MT3SETB_Comm_1.Comm.find("Num", betUi).getComponent(cc.Label);
        betLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(bet);
        this.firingInfo.insertChild(betUi, 0);
        betUi.setPosition(MT3SETB_Comm_1.Comm.transPos3D(this.firingInfo, betObject.parent, betUi.position));
        betUi.active = true;
        if (isUpsideDown) {
          this.noticeBackingSpine.node.angle = 180;
          this.bulletLabel.node.parent.angle = 180;
          this.timeLabel.node.parent.angle = 180;
        }
        this.hideNoticeSprites();
        this.firingInfo.active = isFiringInfoActive;
      }
      setTime(time) {
        this.timeLabel.string = `${Math.floor(10 * time) / 10}`;
      }
      setBullet(count) {
        this.bulletLabel.string = `${count}`;
      }
      playStartAnim() {
        this.noticeBackingSpine.setAnimation(0, "start", false);
        MT3SETB_Comm_1.Comm.snd.playEffectByName("v_firestorm_free");
        let infoUi = this;
        this.hideNoticeSprites();
        this.noticeBackingSpine.node.runAction(cc.sequence(cc.fadeIn(0), cc.delayTime(.35), cc.callFunc(() => infoUi.noticeFreegameSprite.node.scale = 1), cc.delayTime(2.15), cc.callFunc(() => infoUi.noticeStartSprite.node.scale = 1), cc.delayTime(.75), cc.fadeOut(.25)));
      }
      stopStartAnim() {
        this.noticeBackingSpine.node.stopAllActions();
        this.hideNoticeSprites();
        this.noticeBackingSpine.node.opacity = 0;
      }
      playInfoShowAnim() {
        let scale = this.firingInfo.scale;
        this.firingInfo.scale = 0;
        this.firingInfo.active = true;
        this.firingInfo.runAction(cc.scaleTo(.15, scale));
      }
      playEndAnim() {
        this.noticeBackingSpine.setAnimation(0, "end", false);
        MT3SETB_Comm_1.Comm.snd.playEffectByName("v_firestorm_over");
        let infoUi = this;
        this.hideNoticeSprites();
        this.noticeBackingSpine.node.runAction(cc.sequence(cc.callFunc(() => infoUi.noticeEndSprite.node.scale = 1), cc.fadeIn(.5), cc.delayTime(2), cc.fadeOut(.5)));
      }
      dispose() {
        this.node.destroy();
      }
      hideNoticeSprites() {
        this.noticeFreegameSprite.node.scale = 0;
        this.noticeStartSprite.node.scale = 0;
        this.noticeEndSprite.node.scale = 0;
      }
    };
    __decorate([ property(cc.Node) ], FlameStormInfoUi.prototype, "firingInfo", void 0);
    __decorate([ property(cc.Label) ], FlameStormInfoUi.prototype, "bulletLabel", void 0);
    __decorate([ property(cc.Label) ], FlameStormInfoUi.prototype, "timeLabel", void 0);
    __decorate([ property(sp.Skeleton) ], FlameStormInfoUi.prototype, "noticeBackingSpine", void 0);
    __decorate([ property(cc.Sprite) ], FlameStormInfoUi.prototype, "noticeFreegameSprite", void 0);
    __decorate([ property(cc.Sprite) ], FlameStormInfoUi.prototype, "noticeStartSprite", void 0);
    __decorate([ property(cc.Sprite) ], FlameStormInfoUi.prototype, "noticeEndSprite", void 0);
    FlameStormInfoUi = __decorate([ ccclass ], FlameStormInfoUi);
    exports.default = FlameStormInfoUi;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-FreeBulletMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "decd3F28DhNVJ5KTH3rlNa/", "MT3SETB-FreeBulletMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var FreeBulletMgr_1;
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FreeBulletMgr = exports.FreeGameType = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    var FreeGameType;
    (function(FreeGameType) {
      FreeGameType[FreeGameType["Normal"] = 0] = "Normal";
      FreeGameType[FreeGameType["Net"] = 1] = "Net";
      FreeGameType[FreeGameType["Drill"] = 2] = "Drill";
    })(FreeGameType = exports.FreeGameType || (exports.FreeGameType = {}));
    let FreeBulletMgr = FreeBulletMgr_1 = class FreeBulletMgr extends cc.Component {
      constructor() {
        super();
        this.remain = null;
        this.bulletTypeImg = [];
        this.bulletTypeSprite = [];
        this.seat = 0;
        this.bulletLevel = 0;
      }
      static init() {
        this.showingFreeGame = [];
        this.hitCount = [];
        this.remain = [];
        this.bulletType = [];
        this.originBet = [];
        this.freeBulletBet = [];
        this.drills = [ [], [], [], [] ];
        this.drillRemainHit = new Map();
        this.drillRemainBombHit = new Map();
        this.cannonEf = [];
      }
      init(e, t = 0) {
        FreeBulletMgr_1.showingFreeGame[e] && FreeBulletMgr_1.showingFreeGame[e].clear();
        FreeBulletMgr_1.showingFreeGame[e] = this;
        this.seat = e;
        this.bulletLevel = t;
      }
      updateUI() {
        var self = this;
        if (FreeBulletMgr_1.remain[this.seat] > 0) {
          this.remain.string = FreeBulletMgr_1.remain[this.seat].toString();
          this.bulletTypeSprite.forEach(function(t) {
            FreeBulletMgr_1.bulletType[self.seat] == FreeGameType.Normal ? t.spriteFrame = self.bulletTypeImg[0] : FreeBulletMgr_1.bulletType[self.seat] == FreeGameType.Net ? t.spriteFrame = self.bulletTypeImg[1] : FreeBulletMgr_1.bulletType[self.seat] == FreeGameType.Drill && (1 == self.bulletLevel ? t.spriteFrame = self.bulletTypeImg[2] : 2 == self.bulletLevel ? t.spriteFrame = self.bulletTypeImg[3] : t.spriteFrame = self.bulletTypeImg[4]);
          });
        } else this.node.active = false;
      }
      clear() {
        FreeBulletMgr_1.cannonEf[this.seat] && FreeBulletMgr_1.cannonEf[this.seat].destroy();
        if (FreeBulletMgr_1.drills[this.seat]) {
          FreeBulletMgr_1.drills[this.seat].forEach(function(e) {
            e.destroy();
          });
          FreeBulletMgr_1.drills[this.seat] = [];
        }
        this.node.destroy();
      }
      onDestroy() {
        FreeBulletMgr_1.showingFreeGame[this.seat] = null;
      }
    };
    FreeBulletMgr.showingFreeGame = [];
    FreeBulletMgr.hitCount = [];
    FreeBulletMgr.remain = [];
    FreeBulletMgr.bulletType = [];
    FreeBulletMgr.originBet = [];
    FreeBulletMgr.freeBulletBet = [];
    FreeBulletMgr.drills = [ [], [], [], [] ];
    FreeBulletMgr.drillRemainHit = new Map();
    FreeBulletMgr.drillRemainBombHit = new Map();
    FreeBulletMgr.cannonEf = [];
    __decorate([ property(cc.Label) ], FreeBulletMgr.prototype, "remain", void 0);
    __decorate([ property([ cc.SpriteFrame ]) ], FreeBulletMgr.prototype, "bulletTypeImg", void 0);
    __decorate([ property([ cc.Sprite ]) ], FreeBulletMgr.prototype, "bulletTypeSprite", void 0);
    FreeBulletMgr = FreeBulletMgr_1 = __decorate([ ccclass ], FreeBulletMgr);
    exports.FreeBulletMgr = FreeBulletMgr;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-GameCtrl": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "4aefa3Xk+1CRb49TMs9yDse", "MT3SETB-GameCtrl");
    "use strict";
    var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
      void 0 === k2 && (k2 = k);
      Object.defineProperty(o, k2, {
        enumerable: true,
        get: function() {
          return m[k];
        }
      });
    } : function(o, m, k, k2) {
      void 0 === k2 && (k2 = k);
      o[k2] = m[k];
    });
    var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", {
        enumerable: true,
        value: v
      });
    } : function(o, v) {
      o["default"] = v;
    });
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importStar = this && this.__importStar || function(mod) {
      if (mod && mod.__esModule) return mod;
      var result = {};
      if (null != mod) for (var k in mod) "default" !== k && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k);
      __setModuleDefault(result, mod);
      return result;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.GameCtrl = void 0;
    const MT3SETB_FreeBulletMgr_1 = require("../../res/Common/script/MT3SETB-FreeBulletMgr");
    const MT3SETB_timeline_1 = require("../common/api/MT3SETB-timeline");
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const MT3SETB_BetRecord_1 = require("./MT3SETB-BetRecord");
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const MT3SETB_language_1 = require("../common/api/MT3SETB-language");
    const MT3SETB_event_1 = require("../common/api/MT3SETB-event");
    const MT3SETB_profile_1 = require("../common/api/MT3SETB-profile");
    const MT3SETB_BonusCardMgr_1 = require("../../res/Common/script/MT3SETB-BonusCardMgr");
    const MT3SETB_ShadowMgr_1 = require("../shadow/MT3SETB-ShadowMgr");
    const MT3SETB_SoundConst_1 = require("./MT3SETB-SoundConst");
    const MT3SETB_utils2_1 = require("../framework/framework/MT3SETB-utils2");
    const MT3SETB_FlameStormFishGun_1 = __importStar(require("./MT3SETB-FlameStormFishGun"));
    const MT3SETB_FlameStormGun_1 = __importDefault(require("./MT3SETB-FlameStormGun"));
    const MT3SETB_BombCrabEffect_1 = __importDefault(require("./MT3SETB-BombCrabEffect"));
    const MT3SETB_DrillGun_1 = __importDefault(require("./MT3SETB-DrillGun"));
    const MT3SETB_DinghyBombEffect_1 = __importDefault(require("./MT3SETB-DinghyBombEffect"));
    const MT3SETB_DrillGunDrop_1 = __importStar(require("./MT3SETB-DrillGunDrop"));
    const MT3SETB_PhoenixBombEffect_1 = __importDefault(require("./MT3SETB-PhoenixBombEffect"));
    const MT3SETB_ThunderDragonEffect_1 = __importDefault(require("./MT3SETB-ThunderDragonEffect"));
    const MT3SETB_MermaidEffect_1 = __importDefault(require("./MT3SETB-MermaidEffect"));
    const MT3SETB_AwakenNightBeastEffect_1 = __importDefault(require("./MT3SETB-AwakenNightBeastEffect"));
    const MT3SETB_AwakenedKingCrabBombEffect_1 = __importDefault(require("./MT3SETB-AwakenedKingCrabBombEffect"));
    const MT3SETB_AwakenedKingOctopusBombEffect_1 = __importDefault(require("./MT3SETB-AwakenedKingOctopusBombEffect"));
    const MT3SETB_AwakenGiantCrocodileAttack_1 = __importDefault(require("./MT3SETB-AwakenGiantCrocodileAttack"));
    const MT3SETB_webObject_1 = require("../common/api/MT3SETB-webObject");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const UPSIDE_DOWN_FIRST_SEAT_INDEX = 2;
    let GameCtrl = class GameCtrl extends cc.Component {
      constructor() {
        super();
        this.turrets = [];
        this.joinTime = 0;
        this.isTimeout = false;
        this.isPageVisible = true;
        this.selfBetRecord = new MT3SETB_BetRecord_1.BetRecord();
        this.playerName = [];
        this.screenRatio = cc.size(1, 1);
        this.onVisibilityChangeTime = 0;
        this.currIdleTime = 0;
        this.maxIdleTime = 120;
        this.idleTipDisplayTime = 60;
        this.playerSeat = -1;
        this.turretMap = [];
        this.maxShootCount = 30;
        this.shootCount = 0;
        this.wifi = null;
        this.resizeCbIndex = null;
        this.shadowMgr = null;
        this.bShowItemTip = false;
        this.checkDepositTask = null;
        this.shootCount_forLog = 0;
        this.hitFailCount_forLog = 0;
        this.pong = () => {
          var delay = MT3SETB_Comm_1.Comm.app.connector.latency;
          if (-1 == delay) {
            this.setDelayType(delay, 0);
            return;
          }
          delay <= 20 ? this.setDelayType(delay, 3) : delay <= 50 ? this.setDelayType(delay, 2) : delay <= 100 ? this.setDelayType(delay, 1) : this.setDelayType(delay, 0);
        };
      }
      get ToggleCoinView() {
        return this.toggleCoinView;
      }
      set ToggleCoinView(b) {
        this.toggleCoinView = b;
        for (let turret of this.turrets) turret.setCoin();
      }
      setDelayType(delay, type) {
        let wifi = [ cc.find("Wifi_1", this.wifi), cc.find("Wifi_2", this.wifi), cc.find("Wifi_3", this.wifi), cc.find("Wifi_4", this.wifi) ], delayLabel = MT3SETB_Comm_1.Comm.find("TopUI/WifiCtrl/WifiText/Delay", MT3SETB_Comm_1.Comm.node.uiLayer, cc.Label);
        for (let img of wifi) img.opacity = 0;
        wifi[type].opacity = 255;
        delayLabel.string = `${delay}`;
      }
      initCommNode() {
        var e = cc.find("Canvas/Stage/Display");
        MT3SETB_Comm_1.Comm.node.lockOnTouchLayer = cc.find("LockOnTouchLayer", e);
        MT3SETB_Comm_1.Comm.node.bgLayer = cc.find("BGLayer", e);
        MT3SETB_Comm_1.Comm.node.fishLayer = cc.find("FishLayer", e);
        MT3SETB_Comm_1.Comm.node.bulletLayer = cc.find("BulletLayer", e);
        MT3SETB_Comm_1.Comm.node.effectLayer = cc.find("EffectLayer", e);
        MT3SETB_Comm_1.Comm.node.playerLayer = cc.find("PlayerLayer", e);
        MT3SETB_Comm_1.Comm.node.buttonLayer = cc.find("ButtonLayer", e);
        MT3SETB_Comm_1.Comm.node.rewardLayer = cc.find("RewardLayer", e);
        MT3SETB_Comm_1.Comm.node.noticeLayer = cc.find("NoticeLayer", e);
        MT3SETB_Comm_1.Comm.node.uiLayer = cc.find("UILayer", e);
        MT3SETB_Comm_1.Comm.node.playerUILayer = cc.find("PlayerUILayer", MT3SETB_Comm_1.Comm.node.uiLayer);
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.gameCtrl = this;
        this.initCommNode();
        this.currBGId = 0;
        this.shadowMgr = new MT3SETB_ShadowMgr_1.ShadowMgr();
        this.wifi = MT3SETB_Comm_1.Comm.find("TopUI/WifiCtrl/Wifi", MT3SETB_Comm_1.Comm.node.uiLayer);
        MT3SETB_event_1.EventBus.register("pong", this.pong);
        MT3SETB_webObject_1.webObjGameCtrlOnLoad(this);
      }
      start() {
        this.initPlayerTouch();
        this.initVisibilityEvent();
        this.shadowMgr.Init();
        null == this.resizeCbIndex && (this.resizeCbIndex = MT3SETB_Comm_1.Comm.app.registResizeCallback(this.onResize.bind(this)));
        this.onResize();
      }
      onDestroy() {
        null != this.resizeCbIndex && MT3SETB_Comm_1.Comm.app.cancelResizeCallback(this.resizeCbIndex);
        this.resizeCbIndex = null;
        this.shadowMgr.End();
        MT3SETB_event_1.EventBus.unregister("pong", this.pong);
        MT3SETB_webObject_1.webObjSetOnvisibilitychange(null);
      }
      update(e) {
        if (!MT3SETB_Comm_1.Comm.app.isNetBreak && !MT3SETB_Comm_1.Comm.app.isSelectRoom) {
          this.currIdleTime += e;
          this.delayTipPopUp(e);
          if (this.currIdleTime >= this.maxIdleTime) {
            const me = this;
            MT3SETB_Comm_1.Comm.gameMgr.leaveTable();
            me.currIdleTime = 0;
            MT3SETB_Comm_1.Comm.snd.closeEffect();
            this.isTimeout || MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_break_time_inPage);
          }
        }
      }
      initPlayerTouch() {
        var e = cc.find("TouchPanel", MT3SETB_Comm_1.Comm.node.playerLayer);
        var controller = this;
        e.on(cc.Node.EventType.TOUCH_START, function(e) {
          MT3SETB_Comm_1.Comm.shootMgr && MT3SETB_Comm_1.Comm.shootMgr.startTouchShoot(e.getLocation());
          e.stopPropagation();
        });
        e.on(cc.Node.EventType.TOUCH_MOVE, function(e) {
          MT3SETB_Comm_1.Comm.shootMgr && MT3SETB_Comm_1.Comm.shootMgr.touchShoot(true, e.getLocation());
          e.stopPropagation();
        });
        e.on(cc.Node.EventType.TOUCH_END, function(e) {
          if (MT3SETB_Comm_1.Comm.shootMgr) {
            MT3SETB_Comm_1.Comm.shootMgr.touchShoot(false, e.getLocation());
            MT3SETB_Comm_1.Comm.shootMgr.checkShoot(e.getLocation());
          }
          e.stopPropagation();
        });
        e.on(cc.Node.EventType.TOUCH_CANCEL, function(e) {
          if (MT3SETB_Comm_1.Comm.shootMgr) {
            MT3SETB_Comm_1.Comm.shootMgr.touchShoot(false, e.getLocation());
            MT3SETB_Comm_1.Comm.shootMgr.checkShoot(e.getLocation());
          }
          e.stopPropagation();
        });
      }
      initVisibilityEvent() {
        var e = this;
        MT3SETB_webObject_1.webObjSetOnvisibilitychange(function() {
          if (MT3SETB_Comm_1.Comm.app.isSelectRoom) return;
          if (e.isPageVisible) {
            e.onVisibilityChangeTime = Date.now();
            e.isPageVisible = false;
          } else {
            var t = Date.now() - e.onVisibilityChangeTime;
            e.currIdleTime += Math.floor(t / 1e3);
            e.onVisibilityChangeTime = 0;
            e.isPageVisible = true;
            if (e.currIdleTime >= e.maxIdleTime) {
              e.currIdleTime = 0;
              MT3SETB_Comm_1.Comm.gameMgr.leaveTable();
              MT3SETB_Comm_1.Comm.snd.closeEffect();
              e.isTimeout || MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_break_time_outPage);
              return;
            }
            for (var o = 0, n = t / 500 | 0; o < n; ++o) cc.director.getScheduler().update(.5);
            cc.director.getScheduler().update(t % 500 / 1e3);
            var allFishes = MT3SETB_Comm_1.Comm.fishMgr.getAllFishes();
            allFishes.forEach(function(e) {
              if (!e.isDying() && e.isUsed()) {
                e.shiftPosition(t / 1e3);
                e.updateRotation();
              }
            });
          }
        });
      }
      tableSetting(e) {
        if (this.playerSeat < 0) {
          this.checkFishFarmRot(e.seat);
          this.setPlayerStates(e);
          this.joinTime = Date.now();
          0 === MT3SETB_Comm_1.Comm.app.room && this.shadowMgr.Start(e.theme);
          for (var t = 0, o = e.players; t < o.length; t++) {
            var i = o[t];
            this.shadowMgr.NotifyTableInfo(i.seat, MT3SETB_Comm_1.Comm.hideName(i.name), false);
          }
          MT3SETB_LangList_1.LangList.getString(5);
          MT3SETB_timeline_1.GetTimeLine2().enable = true;
        }
        MT3SETB_Comm_1.Comm.fishMgr.setLayerRotated(e.seat);
      }
      checkFishFarmRot(...args) {
        var e = this;
        for (let i = 0; i < e.turrets.length; i++) e.turretMap[i] = e.turrets[i];
        MT3SETB_Comm_1.Comm.node.fishLayer.angle = args[0] >= UPSIDE_DOWN_FIRST_SEAT_INDEX ? 180 : -0;
      }
      setPlayerStates(e) {
        var _a;
        for (var t = this, o = [ 0, 0, 0, 0 ], n = 0, i = e.players; n < i.length; n++) {
          var a = i[n], turret = this.getTurret(a.seat);
          MT3SETB_Comm_1.Comm.coinRatio = MT3SETB_Comm_1.Comm.agentConfig.roomList[e.theme].ratio;
          turret.setTheme(e.theme);
          turret.setSkinAvatar(a.skin);
          this.playerName[a.seat] = a.name;
          console.warn("set player states", a.seat);
          if (a.seat === e.seat) {
            this.playerSeat = e.seat;
            this.isUpsideDown = this.playerSeat >= UPSIDE_DOWN_FIRST_SEAT_INDEX;
            turret.nameText.string = a.name;
            turret.setPlayer(MT3SETB_Turret_1.Turret.eState.MainPlayer);
            MT3SETB_Comm_1.Comm.skinChange.initCannonInfo(a.skin);
            if (this.isUpsideDown) {
              MT3SETB_Comm_1.Comm.node.bgLayer.angle = 180;
              MT3SETB_Comm_1.Comm.node.playerLayer.angle = 180;
              MT3SETB_Comm_1.Comm.node.playerUILayer.angle = 180;
              MT3SETB_Comm_1.Comm.node.rewardLayer.angle = 180;
            }
            for (let i = 0; i < this.turretMap.length; i++) {
              let turret = this.turretMap[i];
              turret.setAimPivot();
              this.isUpsideDown && i < UPSIDE_DOWN_FIRST_SEAT_INDEX ? turret && turret.setUpsideDownDisplay() : !this.isUpsideDown && i >= UPSIDE_DOWN_FIRST_SEAT_INDEX && turret && turret.setUpsideDownDisplay();
            }
            var bet = 0, d = cc.sys.localStorage.getItem("bet" + e.theme);
            d ? bet = parseFloat(d) : 1 == e.theme && (bet = MT3SETB_profile_1.getPresetBet(a.coin));
            turret.setBet(bet);
            MT3SETB_Comm_1.Comm.shootMgr.touchShoot(false, turret.pivot.convertToWorldSpaceAR(turret.getAheadPos()));
            null === (_a = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _a ? void 0 : _a.init();
            MT3SETB_Comm_1.Comm.uiCtrl.updateFreezeNum();
          } else {
            turret.setPlayer(MT3SETB_Turret_1.Turret.eState.OtherPlayer);
            turret.nameText.string = MT3SETB_Comm_1.Comm.hideName(a.name);
            turret.setBet(0);
            turret.switchAvatar();
          }
          MT3SETB_Comm_1.Comm.bankSys.clear();
          MT3SETB_Comm_1.Comm.bankSys.setServerCoin(a.seat, a.coin);
          let clientCoin = a.coin;
          MT3SETB_Comm_1.Comm.bankSys.setClientCoin(a.seat, clientCoin);
          turret.setCoin(clientCoin);
          o[a.seat] = 1;
        }
        o.forEach(function(e, o) {
          if (0 === e) {
            var n = t.getTurret(o);
            n && n.setPlayer(MT3SETB_Turret_1.Turret.eState.NoPlayer);
          }
        });
        1 === MT3SETB_Comm_1.Comm.app.room && o.forEach(function(e, o) {
          if (0 === e) {
            var n = t.getTurret(o);
            n && n.hidePlayer(true);
          }
        });
      }
      updateBg(bgId, forced, onUpdateComplete) {
        let me = this;
        bgId = bgId || this.currBGId;
        if (this.bgNode && this.bgNode.name === "bg" + bgId) return;
        MT3SETB_Comm_1.Comm.dataMgr.loadBackground(bgId, newBg => {
          if ("bg" + bgId !== newBg.name) return;
          me.currBGId = bgId;
          const scale = newBg.parent.height / newBg.height;
          newBg.scale = scale;
          MT3SETB_Comm_1.Comm.effectMgr.showBGSwitching(this.bgNode, newBg, forced);
          this.bgNode = newBg;
          me.onResize();
          onUpdateComplete && onUpdateComplete();
        });
      }
      playBgAnim(animName, loop, speedRatio = 1) {
        if (!this.bgNode) {
          console.warn("No background node to play animation on.", animName);
          return;
        }
        this.bgNode.getComponentsInChildren(sp.Skeleton).forEach(skel => {
          skel.timeScale = speedRatio;
          skel.findAnimation(animName) && skel.setAnimation(0, animName, loop);
        });
      }
      getBG() {
        return MT3SETB_Comm_1.Comm.node.bgLayer.children[this.currBGId];
      }
      getBGId() {
        return this.currBGId;
      }
      getTurret(e) {
        return this.turretMap[e];
      }
      getPlayerSeat() {
        return this.playerSeat;
      }
      getPlayerTurret() {
        return this.turretMap[this.playerSeat];
      }
      cleanUp() {
        var _a;
        null === (_a = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _a ? void 0 : _a.updateFishRoomGoldText(MT3SETB_Comm_1.Comm.bankSys.getServerCoin(this.playerSeat));
      }
      leaveTable(e = true) {
        var t = this;
        MT3SETB_Comm_1.Comm.generalmenu.isShowMenu && MT3SETB_Comm_1.Comm.generalmenu.ToggleMenu();
        MT3SETB_Comm_1.Comm.app.theme = -1;
        MT3SETB_Comm_1.Comm.app.room = -1;
        this.currIdleTime = 0;
        if (-1 != MT3SETB_Comm_1.Comm.app.nextTheme && -1 != MT3SETB_Comm_1.Comm.app.nextRoom) {
          MT3SETB_Comm_1.Comm.app.setCommand(null);
          MT3SETB_Comm_1.Comm.app.unscheduleAllCallbacks();
          if (e) {
            var o = 1;
            MT3SETB_Comm_1.Comm.runTask({
              times: cc.macro.REPEAT_FOREVER
            }, function(e) {
              switch (o++) {
               case 1:
                cc.log("Player left the table.");
                MT3SETB_webObject_1.webObjSetOnvisibilitychange(function() {});
                MT3SETB_Comm_1.Comm.fishMgr.leaveTable();
                MT3SETB_timeline_1.StopTimeLine();
                t.shadowMgr.End();
                break;

               case 2:
                cc.log("Destroy the stage.");
                cc.audioEngine.stopAllEffects();
                t.cleanUp();
                null != t.resizeCbIndex && MT3SETB_Comm_1.Comm.app.cancelResizeCallback(t.resizeCbIndex);
                t.resizeCbIndex = null;
                var n = cc.find("Canvas/Stage");
                n && n.destroy();
                var i = MT3SETB_Comm_1.Comm.app.flowCtrl;
                i.isRunning(i.state.Idle) && i.transit(i.state.SwitchStage);
                break;

               case 3:
                cc.log("Switch to the next stage.");
                var i = MT3SETB_Comm_1.Comm.app.flowCtrl;
                MT3SETB_Comm_1.Comm.app.theme = MT3SETB_Comm_1.Comm.app.nextTheme;
                MT3SETB_Comm_1.Comm.app.room = MT3SETB_Comm_1.Comm.app.nextRoom;
                MT3SETB_Comm_1.Comm.app.nextTheme = -1;
                MT3SETB_Comm_1.Comm.app.nextRoom = -1;
                i.isRunning(i.state.Idle) && i.transit(i.state.SwitchStage);
                MT3SETB_Comm_1.Comm.delTask(e);
              }
            });
          }
        } else {
          MT3SETB_Comm_1.Comm.app.setCommand(null);
          MT3SETB_Comm_1.Comm.app.unscheduleAllCallbacks();
          if (e) {
            var o = 1;
            MT3SETB_Comm_1.Comm.runTask({
              times: cc.macro.REPEAT_FOREVER
            }, function(e) {
              switch (o++) {
               case 1:
                MT3SETB_webObject_1.webObjSetOnvisibilitychange(function() {});
                MT3SETB_Comm_1.Comm.fishMgr.leaveTable();
                MT3SETB_timeline_1.StopTimeLine();
                t.shadowMgr.End();
                break;

               case 2:
                cc.audioEngine.stopAllEffects();
                t.cleanUp();
                null != t.resizeCbIndex && MT3SETB_Comm_1.Comm.app.cancelResizeCallback(t.resizeCbIndex);
                t.resizeCbIndex = null;
                var n = cc.find("Canvas/Stage");
                n && n.destroy();
                var i = MT3SETB_Comm_1.Comm.app.flowCtrl;
                MT3SETB_Comm_1.Comm.app.theme = -1;
                MT3SETB_Comm_1.Comm.app.room = -1;
                i.isRunning(i.state.Idle) && i.transit(i.state.SwitchStage);
                break;

               case 3:
                var i = MT3SETB_Comm_1.Comm.app.flowCtrl;
                MT3SETB_Comm_1.Comm.app.theme = MT3SETB_Comm_1.Comm.app.nextTheme;
                MT3SETB_Comm_1.Comm.app.room = MT3SETB_Comm_1.Comm.app.nextRoom;
                MT3SETB_Comm_1.Comm.app.nextTheme = -1;
                MT3SETB_Comm_1.Comm.app.nextRoom = -1;
                i.isRunning(i.state.Idle) && i.transit(i.state.LoadRoomSelect);
                MT3SETB_Comm_1.Comm.delTask(e);
              }
            });
          }
        }
        MT3SETB_Comm_1.Comm.app.disconnection();
        MT3SETB_Comm_1.Comm.app.backToLobby();
      }
      joinNotify(e, t, o, skin) {
        var turret = this.getTurret(e);
        if (turret) {
          this.shadowMgr.NotifyTableInfo(e, MT3SETB_Comm_1.Comm.hideName(t), false);
          turret.setPlayer(MT3SETB_Turret_1.Turret.eState.OtherPlayer);
          turret.nameText.string = MT3SETB_Comm_1.Comm.hideName(t);
          turret.setTheme(MT3SETB_Comm_1.Comm.app.theme);
          turret.setSkinAvatar(skin);
          MT3SETB_Comm_1.Comm.bankSys.clear(e);
          MT3SETB_Comm_1.Comm.bankSys.setServerCoin(e, o);
          MT3SETB_Comm_1.Comm.bankSys.setClientCoin(e, o);
          turret.setCoin(o);
          turret.setBet(0);
          this.isUpsideDown && turret.uiNo < UPSIDE_DOWN_FIRST_SEAT_INDEX + 1 ? turret.setUpsideDownDisplay() : !this.isUpsideDown && turret.uiNo >= UPSIDE_DOWN_FIRST_SEAT_INDEX + 1 && turret.setUpsideDownDisplay();
        }
      }
      nonLocalPlayerLoadCompleteNotify(seat) {
        if (MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == seat) return;
        this.getPlayerTurret().notifyNewPlayerJoined(seat);
      }
      skinChangeNotify(e) {
        console.log("skin notify to seat " + e.seat);
        var t = this.getTurret(e.seat);
        if (t) {
          t.setSkinAvatar(e.skin);
          t.state == MT3SETB_Turret_1.Turret.eState.MainPlayer && MT3SETB_Comm_1.Comm.skinChange.initCannonInfo(e.skin);
        } else console.log("unable to find turret of seat " + e.seat);
      }
      leaveNotify(e) {
        var _a, _b;
        var t = this.getTurret(e);
        if (t) {
          this.shadowMgr.NotifyTableInfo(e, t.nameText.string, true);
          switch (t.gunType) {
           case MT3SETB_Turret_1.GunType.FlameStorm:
            null === (_a = t.pivot.getComponentInChildren(MT3SETB_FlameStormGun_1.default)) || void 0 === _a ? void 0 : _a.dispose();
            break;

           case MT3SETB_Turret_1.GunType.FreeDrill:
            null === (_b = t.pivot.getComponentInChildren(MT3SETB_DrillGun_1.default)) || void 0 === _b ? void 0 : _b.dispose();
          }
          t.setPlayer(MT3SETB_Turret_1.Turret.eState.NoPlayer);
          t.clearEffects();
          MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[e] && MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[e].clear();
          MT3SETB_BonusCardMgr_1.BonusCardMgr.showingBonus[e] && MT3SETB_BonusCardMgr_1.BonusCardMgr.showingBonus[e].clearBonus();
        }
      }
      updateNonLocalLaserStatus(seat, fishTag, fishId) {
        var _a;
        if (seat == this.playerSeat) return;
        null === (_a = this.getTurret(seat)) || void 0 === _a ? void 0 : _a.updateLaserStatus(fishTag);
      }
      updateNonLocalGunSetting(seat, setting) {
        var _a;
        if (seat == this.playerSeat) return;
        null === (_a = this.getTurret(seat)) || void 0 === _a ? void 0 : _a.updateNonLocalGunSetting(setting);
      }
      fireNonLocalDrill(seat, targetPos) {
        let turret = this.getTurret(seat);
        if (turret) {
          let transTargetPos = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.bulletLayer, MT3SETB_Comm_1.Comm.node.fishLayer, targetPos);
          let aimPos = turret.checkAimPos(transTargetPos);
          turret.fire(aimPos, false);
          turret.pivot.angle = cc.misc.clampf(turret.pivot.angle, -70, 70);
          let drillGun = turret.pivot.getComponentInChildren(MT3SETB_DrillGun_1.default);
          drillGun ? drillGun.fireDrill() : cc.warn("drill gun not found");
        }
      }
      shoot(seat, targetPos, bulletId, bulletType, fishId, bet) {
        -1 === seat && (seat = this.playerSeat);
        if (fishId > 0) {
          var fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(fishId);
          if (!fish) return false;
          targetPos = MT3SETB_Comm_1.Comm.shootMgr.getLockPosition(true, fish.node);
        }
        var turret = this.getTurret(seat), isLocalPlayer = seat === this.playerSeat;
        if (turret) {
          if (!this.isPageVisible) return false;
          !isLocalPlayer && MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[seat] && bulletType != MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREE && bulletType != MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREEDRILL && bulletType != MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREENET && MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[seat].clear();
          var sfx = 19, playSfx = true, transTargetPos = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.bulletLayer, MT3SETB_Comm_1.Comm.node.fishLayer, targetPos), h = turret.checkAimPos(transTargetPos);
          if (bulletType == MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREE) {
            bulletType = fishId > 0 ? MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK : MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL;
            bet = 0;
          }
          switch (bulletType) {
           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREE:
            turret.getCurrentAvatarNo() !== MT3SETB_Game_1.eAvatarNo.Aim && turret.fire(h);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK:
            turret.fire(h, false);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREEDRILL:
            turret.fire(h, false);
            turret.pivot.angle = cc.misc.clampf(turret.pivot.angle, -70, 70);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FLAMESTORM:
            turret.fire(h, false);
            break;

           default:
            turret.fire(h);
          }
          var bulletSpawnPos = turret.getBulletSpwanPos(), shootDirection = turret.getDirection();
          switch (bulletType) {
           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.BOMB:
            isLocalPlayer || turret.getCurrentAvatarNo() === MT3SETB_Game_1.eAvatarNo.Torpedo || (turret.switchAvatar(MT3SETB_Game_1.eAvatarNo.Torpedo), 
            bulletSpawnPos = turret.getBulletSpwanPos());
            MT3SETB_Comm_1.Comm.bulletMgr.createTorpedo(isLocalPlayer, seat, bulletSpawnPos, transTargetPos, shootDirection, bulletId, bulletType, fishId, bet);
            sfx = 33;
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK:
            isLocalPlayer || (bulletSpawnPos = turret.getBulletSpwanPos());
            MT3SETB_Comm_1.Comm.bulletMgr.createLaserBullet(isLocalPlayer, seat, bulletId, bulletType, fishId, bet), 
            sfx = -1;
            playSfx = false;
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREEDRILL:
            playSfx = false;
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREENET:
            if (MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[seat]) {
              MT3SETB_FreeBulletMgr_1.FreeBulletMgr.remain[seat]--;
              MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[seat].updateUI();
              targetPos = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.fishLayer, MT3SETB_Comm_1.Comm.node.bulletLayer, bulletSpawnPos.add(shootDirection));
              var N = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.fishLayer, MT3SETB_Comm_1.Comm.node.bulletLayer, bulletSpawnPos);
              MT3SETB_Comm_1.Comm.effectMgr.shootFreeBeam(seat, N, targetPos, bulletId);
              if (MT3SETB_FreeBulletMgr_1.FreeBulletMgr.remain[seat] <= 0) {
                turret.lockBet(false);
                turret.setBet(MT3SETB_FreeBulletMgr_1.FreeBulletMgr.originBet[seat]);
                MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[seat].clear();
                if (isLocalPlayer) {
                  MT3SETB_Comm_1.Comm.uiCtrl.isShootTypeBtnLock = false;
                  MT3SETB_Comm_1.Comm.uiCtrl.isBulletTypeBtnLock = false;
                }
              }
            }
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FLAMESTORM:
            isLocalPlayer || (bulletSpawnPos = turret.getBulletSpwanPos());
            MT3SETB_Comm_1.Comm.bulletMgr.createFlameStormBullet(isLocalPlayer, seat, bulletSpawnPos, transTargetPos, shootDirection, bulletId, bulletType);
            if (!isLocalPlayer) {
              let flameStormGun = turret.pivot.getComponentInChildren(MT3SETB_FlameStormGun_1.default);
              null === flameStormGun || void 0 === flameStormGun ? void 0 : flameStormGun.incrementNumFired();
            }
            sfx = MT3SETB_Comm_1.Comm.snd.effectIdClip[MT3SETB_SoundConst_1.FLAMESTORM_SFX].idx;
            break;

           default:
            isLocalPlayer || turret.getCurrentAvatarNo() !== MT3SETB_Game_1.eAvatarNo.Aim && turret.getCurrentAvatarNo() !== MT3SETB_Game_1.eAvatarNo.Torpedo || (turret.switchAvatar(), 
            bulletSpawnPos = turret.getBulletSpwanPos());
            if (MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[seat]) {
              MT3SETB_FreeBulletMgr_1.FreeBulletMgr.remain[seat]--;
              MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[seat].updateUI();
              if (MT3SETB_FreeBulletMgr_1.FreeBulletMgr.bulletType[seat] == MT3SETB_FreeBulletMgr_1.FreeGameType.Normal && MT3SETB_FreeBulletMgr_1.FreeBulletMgr.remain[seat] <= 0) {
                turret.lockBet(false);
                turret.setBet(MT3SETB_FreeBulletMgr_1.FreeBulletMgr.originBet[seat]);
                MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[seat].clear();
                isLocalPlayer && (MT3SETB_Comm_1.Comm.uiCtrl.isBulletTypeBtnLock = false);
              }
            }
            bulletType == MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREE && (bet = 0);
            MT3SETB_Comm_1.Comm.bulletMgr.createBullet(turret.getCurrentBulletNo(), isLocalPlayer, seat, bulletSpawnPos, transTargetPos, shootDirection, bulletId, bulletType, fishId, bet);
            sfx = MT3SETB_SoundConst_1.EffectSound.PAO_1;
          }
          if (isLocalPlayer) {
            var B = turret.getBet(), T = this.selfBetRecord;
            T.lastBet = B;
            T.bet1UpCnt += B >= 1 ? 1 : 0;
            T.bet5UpCnt += B >= 5 ? 1 : 0;
            T.updateSuggestiveTheme();
            playSfx && MT3SETB_Comm_1.Comm.snd.playEffect(sfx, false, true);
          }
          return true;
        }
        return false;
      }
      readyToShoot(bulletId, shootPos, o = null) {
        var _a;
        var n = this, i = this.getPlayerTurret();
        if (!i.isLocked()) {
          var s = 0, c = new MT3SETB_mtf_pb_wrapper_1.mtf.ShootReqData();
          c.bet = i.getBet();
          c.point = shootPos;
          c.bulletId = bulletId;
          let isBulletFake = false;
          switch (i.gunType) {
           case MT3SETB_Turret_1.GunType.FlameStorm:
            c.type = MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FLAMESTORM;
            isBulletFake = true;
            break;

           case MT3SETB_Turret_1.GunType.FreeDrill:
            c.type = MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREEDRILL;
            isBulletFake = true;
            break;

           case MT3SETB_Turret_1.GunType.Lightning:
            c.type = MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK;
            break;

           case MT3SETB_Turret_1.GunType.Normal:
           default:
            c.type = MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL;
          }
          s = c.bet;
          var lockfish;
          if (i.isLockedOn && (lockfish = MT3SETB_Comm_1.Comm.shootMgr.getLockFish())) {
            if (!lockfish.isUsed()) return false;
            c.fishId = lockfish.getFishId();
          }
          var d = MT3SETB_Comm_1.Comm.bankSys.getClientCoin(this.playerSeat);
          if (d - s >= 0 || Math.abs(d - s) < 1e-4 || isBulletFake) {
            if (this.currIdleTime < this.maxIdleTime && this.shootCount < this.maxShootCount && MT3SETB_Comm_1.Comm.shootMgr.checkShootCount()) {
              this.shootCount += 1;
              this.shootCount_forLog += 1;
              30 == this.shootCount_forLog ? MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Error_HasShootNoHit) : 100 == this.shootCount_forLog && MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Error_HasShootNoHit2);
              this.initCurrIdleTime();
              MT3SETB_Comm_1.Comm.app.checkAppLobbyNoviceEvent();
              MT3SETB_Comm_1.Comm.gameMgr.shoot(c);
              if (this.shoot(this.playerSeat, shootPos, c.bulletId, c.type, c.fishId, c.bet)) {
                this.updateCoinBetNotify(this.playerSeat, -s, i.getBet());
                this.checkDepositTask && MT3SETB_Comm_1.Comm.delTask(this.checkDepositTask);
                this.checkDepositTask = MT3SETB_Comm_1.Comm.runTask(5, function() {
                  var _a;
                  null === (_a = MT3SETB_Comm_1.Comm.uiCtrl.depositBtn) || void 0 === _a ? void 0 : _a.checkWalletBroken();
                  n.checkDepositTask = null;
                });
              }
            }
          } else {
            MT3SETB_Comm_1.Comm.shootMgr.isAuto && MT3SETB_Comm_1.Comm.uiCtrl.toolEvent(null, "Auto");
            MT3SETB_Comm_1.Comm.shootMgr.isAiming && MT3SETB_Comm_1.Comm.uiCtrl.toolEvent(null, "Aim");
            MT3SETB_Comm_1.Comm.shootMgr.isTorpedo && MT3SETB_Comm_1.Comm.uiCtrl.toolEvent(null, "Torpedo");
            MT3SETB_Comm_1.Comm.shootMgr.isAutoMatic && MT3SETB_Comm_1.Comm.uiCtrl.toolEvent(null, "AutoMatic");
            let mainTurret = this.getPlayerTurret();
            mainTurret.setInsufficientMoneyPopup();
            mainTurret.toggleAuto(false);
            mainTurret.toggleSpeed(false);
            MT3SETB_Comm_1.Comm.uiCtrl.toggleLsGunButtonState("auto", false);
            MT3SETB_Comm_1.Comm.uiCtrl.toggleLsGunButtonState("jisu", false);
            null === (_a = MT3SETB_Comm_1.Comm.uiCtrl.depositBtn) || void 0 === _a ? void 0 : _a.checkWalletBroken();
            if (this.checkDepositTask) {
              MT3SETB_Comm_1.Comm.delTask(this.checkDepositTask);
              this.checkDepositTask = null;
            }
          }
        }
      }
      retainAck(e) {
        var _a;
        MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", e.seat, e.coin);
        this.updateCoinBetNotify(e.seat, 0, e.bet);
        e.seat === this.playerSeat && (null === (_a = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _a ? void 0 : _a.cleanProgress());
      }
      hitFishByRetain(e) {
        var t = MT3SETB_Comm_1.Comm.fishMgr.getFishById(e.fishId);
        if (t) if (MT3SETB_Comm_1.Comm.fishMgr.isImmortalFish(t)) t.getSpecialShow().showStart(e, true); else {
          this.showGetCoin(e.seat, t, e.coin);
          MT3SETB_Comm_1.Comm.fishMgr.delFish(t, true, false);
        }
      }
      reduceShootCnt() {
        this.shootCount--;
        this.shootCount = Math.max(this.shootCount, 0);
      }
      clearShootCnt() {
        this.shootCount = 0;
      }
      stopShooting(e, t, o) {
        "string" == typeof e && "all" === e ? this.turretMap.forEach(function(e) {
          e.lock(t, o);
        }) : this.getTurret(e).lock(t, o);
      }
      updateCoinBetNotify(e, t, o) {
        -1 === e && (e = this.playerSeat);
        var n = this.getTurret(e);
        n && e !== this.playerSeat && n.setBet(o);
        this.addCoin(e, t);
      }
      addCoin(e, ...args) {
        var _a;
        var t = this.getTurret(e);
        let newBalance = MT3SETB_Comm_1.Comm.bankSys.getClientCoin(e);
        t && t.setCoin(newBalance);
        e === this.playerSeat && (null === (_a = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _a ? void 0 : _a.updateFishRoomGoldText(newBalance));
      }
      showGetCoin(e, t, o, n) {
        var i = "number" == typeof t ? MT3SETB_Comm_1.Comm.fishMgr.getFishById(t) : t;
        if (i && -1 !== (n = n || MT3SETB_Comm_1.Comm.fishMgr.getCoinLevel(i))) {
          var a = MT3SETB_Comm_1.Comm.fishMgr.isBossFish(i), s = MT3SETB_Comm_1.Comm.fishMgr.isCommonFish(i), c = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, i.node);
          MT3SETB_Comm_1.Comm.effectMgr.showGetCoinForFish(e, i, o, c, n, a, s);
        }
      }
      hurtFish(e) {
        var t = MT3SETB_Comm_1.Comm.fishMgr.getFishById(e.fishId);
        t && MT3SETB_Comm_1.Comm.fishMgr.showHurt(t);
      }
      hitFish(hitData) {
        var t = this, fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(hitData.fishId);
        if (!fish) {
          this.addCoin(hitData.seat, hitData.coin, hitData.type);
          return;
        }
        if (MT3SETB_Comm_1.Comm.fishMgr.isCommonFish(fish)) {
          t.addCoin(hitData.seat);
          fish.pathEnd = true;
          fish.dying = true;
          let hasKnockback = hitData.type == MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL;
          this.onFishDeathPlayEffect(fish, hitData, hasKnockback);
          this.showGetCoin(hitData.seat, fish, hitData.coin);
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
        } else {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", hitData.seat, hitData.coin);
          this.addCoin(hitData.seat);
          fish.specialShowStart(hitData);
        }
      }
      killFishWithFlamestorm(hitData) {
        let fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(hitData.fishId);
        if (fish) {
          fish.pathEnd = true;
          fish.dying = true;
          this.onFishDeathPlayEffect(fish, hitData, true);
          this.showGetCoin(hitData.seat, fish, hitData.coin);
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
        }
      }
      bombFishes(bombAckData) {
        for (let dead of bombAckData.fish) {
          let fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(dead.fish);
          if (null == fish && !MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish)) continue;
          let hitData = {
            seat: bombAckData.seat,
            bet: bombAckData.bet,
            coin: dead.coin
          };
          fish.pathEnd = true;
          fish.dying = true;
          this.onFishDeathPlayEffect(fish, hitData, false);
          this.showGetCoin(hitData.seat, fish, hitData.coin);
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
        }
      }
      onFishDeathPlayEffect(fish, hitData, hasKnockback) {
        MT3SETB_Comm_1.Comm.fishMgr.playDeathFishSoundEffect(fish.getFishNo());
        let bulletAngle = this.getBulletAngleFromHitData(hitData);
        switch (fish.getFishNo()) {
         case MT3SETB_Game_1.mtfBFishNo.FlamesStorm:
          MT3SETB_Comm_1.Comm.effectMgr.showCommonFishDeath(fish, bulletAngle, hasKnockback);
          break;

         case MT3SETB_Game_1.mtfBFishNo.ScreamingTiger:
          MT3SETB_Comm_1.Comm.effectMgr.showCommonFishDeath(fish, bulletAngle, hasKnockback);
          fish.fishAnims[0].stop();
          MT3SETB_Comm_1.Comm.dataMgr.fishJsonData[fish.no].DeathEffectInfo && fish.rewardShowStart(hitData);
          break;

         default:
          MT3SETB_Comm_1.Comm.effectMgr.showCommonFishDeath(fish, bulletAngle, hasKnockback);
          MT3SETB_Comm_1.Comm.dataMgr.fishJsonData[fish.no].DeathEffectInfo && fish.rewardShowStart(hitData);
        }
      }
      getBulletAngleFromHitData(hitData) {
        let bulletAngle = 0;
        if (hitData.bulletId && hitData.fishId) {
          bulletAngle = MT3SETB_Comm_1.Comm.bulletMgr.getBulletAngle(hitData.bulletId, hitData.fishId);
          bulletAngle ? MT3SETB_Comm_1.Comm.bulletMgr.removeBulletAngle(hitData.bulletId, hitData.fishId) : bulletAngle = MT3SETB_utils2_1.rand(360);
        }
        return bulletAngle;
      }
      handleOngoingFishDeathEffect(effect) {
        let {seat: seat, effectSeat: effectSeat, fishId: fishId, fishTag: fishTag, targetPos: targetPos, bet: bet, win: win, secondsElapsed: secondsElapsed, collateralDead: collateralDead} = effect;
        let posInfo = cc.v3(targetPos.x, targetPos.y, 0);
        let turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(effectSeat);
        let hitData = {
          seat: effectSeat,
          fishId: fishId,
          time: secondsElapsed,
          bet: bet,
          coin: win,
          collateralFish: []
        };
        for (let deadAck of collateralDead) hitData.collateralFish.push({
          fishId: deadAck.id,
          coin: deadAck.coin
        });
        switch (fishId) {
         case MT3SETB_Game_1.mtfBFishNo.DrillCrab:
          let remainingWin = win;
          collateralDead.length > 0 && (remainingWin -= collateralDead[0].coin);
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", effectSeat, remainingWin);
          turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer && this.addCoin(effectSeat);
          let currentTimeMs = Date.now();
          let originalStartTimeMs = currentTimeMs - 1e3 * hitData.time;
          let switchTime = originalStartTimeMs + 1e3 * MT3SETB_DrillGunDrop_1.TOTAL_TIME;
          if (currentTimeMs < switchTime) {
            let drillGunDropPrefab = MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.DrillGun);
            let gunDrop = cc.instantiate(drillGunDropPrefab).getComponent(MT3SETB_DrillGunDrop_1.default);
            gunDrop.startAnim(hitData, posInfo);
            return;
          }
          turret.isMovingCrosshair = false;
          turret.pauseNormalFiringState(true, true);
          turret.switchCannon(MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FREEDRILL);
          turret.gunType = MT3SETB_Turret_1.GunType.FreeDrill;
          let drillGun = turret.pivot.getComponentInChildren(MT3SETB_DrillGun_1.default);
          let hasFired = collateralDead.length > 0;
          if (hasFired) {
            var drillPosInfo = MT3SETB_Comm_1.Comm.node.bulletLayer.convertToNodeSpaceAR(posInfo);
            var direction = new cc.Vec2(collateralDead[1].coin, collateralDead[2].coin);
            if (MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown) {
              drillPosInfo.x *= -1;
              drillPosInfo.y *= -1;
              direction.x *= -1;
              direction.y *= -1;
            }
            var projectileFlightTime = collateralDead[3].coin;
            drillGun.init(turret, hitData.bet, hitData.coin, 0);
            drillGun.createDrillBullet(remainingWin, drillPosInfo, direction);
            drillGun.drillBullet.fireTime = projectileFlightTime;
          } else drillGun.init(turret, hitData.bet, hitData.coin, originalStartTimeMs + 1e3 * MT3SETB_DrillGunDrop_1.FIRE_TIME);
          break;

         case MT3SETB_Game_1.mtfBFishNo.WakeupKingOctopus:
          var rate = win / bet;
          if (secondsElapsed >= MT3SETB_AwakenedKingOctopusBombEffect_1.default.getTotalDuration(rate)) return;
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", effectSeat, win);
          turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer && this.addCoin(effectSeat);
          hitData.fishId = fishTag;
          let kingOctopusBomb = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.WakeupKingOctopusEffect));
          kingOctopusBomb.setParent(MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent);
          kingOctopusBomb.setPosition(cc.Vec2.ZERO);
          kingOctopusBomb.getComponent(MT3SETB_AwakenedKingOctopusBombEffect_1.default).init(turret, posInfo, hitData, rate);
          break;

         case MT3SETB_Game_1.mtfBFishNo.WakeupKingCrab:
          var rate = win / bet;
          if (secondsElapsed >= MT3SETB_AwakenedKingCrabBombEffect_1.default.getTotalDuration(rate)) return;
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", effectSeat, win);
          turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer && this.addCoin(effectSeat);
          hitData.fishId = fishTag;
          let kingCrabBomb = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.WakeUpKingCrabEffect));
          kingCrabBomb.setParent(MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent);
          kingCrabBomb.setPosition(cc.Vec2.ZERO);
          kingCrabBomb.getComponent(MT3SETB_AwakenedKingCrabBombEffect_1.default).init(turret, posInfo, hitData, rate);
          break;

         case MT3SETB_Game_1.mtfBFishNo.FlamingPhoenix:
          var rate = win / bet;
          if (secondsElapsed >= MT3SETB_PhoenixBombEffect_1.default.getTotalDuration(rate)) return;
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", effectSeat, win);
          turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer && this.addCoin(effectSeat);
          let phoenixBomb = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.PhoenixBombEffect));
          phoenixBomb.setParent(MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent);
          phoenixBomb.setPosition(cc.Vec2.ZERO);
          phoenixBomb.getComponent(MT3SETB_PhoenixBombEffect_1.default).init(hitData, posInfo);
          break;

         case MT3SETB_Game_1.mtfBFishNo.BombSpeedBoat:
          var rate = win / bet;
          if (secondsElapsed >= MT3SETB_DinghyBombEffect_1.default.getTotalDuration(rate)) return;
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", effectSeat, win);
          turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer && this.addCoin(effectSeat);
          let a = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.DinghyBombEffect));
          a.parent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
          a.setPosition(cc.Vec2.ZERO);
          a.getComponent(MT3SETB_DinghyBombEffect_1.default).init(turret, hitData, rate, () => {
            let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == hitData.seat;
            MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, hitData.seat, hitData.coin, isLocalPlayer, hitData.bet, hitData.coin, MT3SETB_Game_1.mtfBFishNo.BombSpeedBoat);
            MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", hitData.seat, -win);
            turret && turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer && MT3SETB_Comm_1.Comm.gameCtrl.addCoin(hitData.seat);
          });
          break;

         case MT3SETB_Game_1.mtfBFishNo.BombCrab:
         case MT3SETB_Game_1.mtfBFishNo.MultipleBombCrab:
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", effectSeat, win);
          turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer && this.addCoin(effectSeat);
          let bombPrefab = MT3SETB_Comm_1.Comm.dataMgr.effectData.effects[MT3SETB_Game_1.eEffectNo.Cs_MultiBomb];
          let bombEffect = cc.instantiate(bombPrefab).getComponent(MT3SETB_BombCrabEffect_1.default);
          bombEffect.node.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
          bombEffect.initialize(posInfo, fishId == MT3SETB_Game_1.mtfBFishNo.MultipleBombCrab, hitData);
          break;

         case MT3SETB_Game_1.mtfBFishNo.ThunderDragon:
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", effectSeat, win);
          turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer && this.addCoin(effectSeat);
          console.warn("receive on going effect for ", effectSeat);
          let thunderDragonEffectPrefab = MT3SETB_Comm_1.Comm.dataMgr.effectData.effects[MT3SETB_Game_1.eEffectNo.ThunderDragonEffect];
          let thunderDragonEffect = cc.instantiate(thunderDragonEffectPrefab).getComponent(MT3SETB_ThunderDragonEffect_1.default);
          thunderDragonEffect.node.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
          thunderDragonEffect.initialize(posInfo, hitData);
          break;

         case MT3SETB_Game_1.mtfBFishNo.AwakenNightBeast:
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", effectSeat, win);
          turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer && this.addCoin(effectSeat);
          let nightBeastEffectPrefab = MT3SETB_Comm_1.Comm.dataMgr.effectData.effects[MT3SETB_Game_1.eEffectNo.AwakenNightBeast];
          let nightBeastEffect = cc.instantiate(nightBeastEffectPrefab).getComponent(MT3SETB_AwakenNightBeastEffect_1.default);
          nightBeastEffect.node.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
          nightBeastEffect.initialize(posInfo, hitData);
          break;

         case MT3SETB_Game_1.mtfBFishNo.AmethystMermaid:
         case MT3SETB_Game_1.mtfBFishNo.GreenMermaid:
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", effectSeat, win);
          turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer && this.addCoin(effectSeat);
          let mermaidEffectPrefab = MT3SETB_Comm_1.Comm.dataMgr.effectData.effects[MT3SETB_Game_1.eEffectNo.MermaidEffect];
          let mermaidEffect = cc.instantiate(mermaidEffectPrefab).getComponent(MT3SETB_MermaidEffect_1.default);
          mermaidEffect.node.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
          mermaidEffect.initialize(posInfo, hitData);
          break;

         case MT3SETB_Game_1.mtfBFishNo.AwakenGiantCrocodile:
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", effectSeat, win);
          turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer && this.addCoin(effectSeat);
          let awakenGiantCrocodileAttackPrefab = MT3SETB_Comm_1.Comm.dataMgr.effectData.effects[MT3SETB_Game_1.eEffectNo.AwakenGiantCrocodileAttack];
          let awakenGiantCrocodileAttack = cc.instantiate(awakenGiantCrocodileAttackPrefab).getComponent(MT3SETB_AwakenGiantCrocodileAttack_1.default);
          awakenGiantCrocodileAttack.node.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
          awakenGiantCrocodileAttack.init(posInfo, hitData);
          break;

         case MT3SETB_Game_1.mtfBFishNo.FlamesStorm:
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", effectSeat, win);
          turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer && this.addCoin(effectSeat);
          if (hitData.time < MT3SETB_FlameStormFishGun_1.PRE_SWITCH_GUN_DURATION) {
            let fishGunPrefab = MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.FlameStormFishGun);
            let fishGun = cc.instantiate(fishGunPrefab).getComponent(MT3SETB_FlameStormFishGun_1.default);
            fishGun.startAnim(hitData, cc.v3(targetPos));
            return;
          }
          turret.isMovingCrosshair = false;
          turret.pauseNormalFiringState(true, false);
          turret.switchCannon(MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.FLAMESTORM);
          turret.gunType = MT3SETB_Turret_1.GunType.FlameStorm;
          let flameStormGun = turret.pivot.getComponentInChildren(MT3SETB_FlameStormGun_1.default);
          flameStormGun ? flameStormGun.init(turret, hitData.bet, hitData.coin, hitData.time - MT3SETB_FlameStormFishGun_1.PRE_SWITCH_GUN_DURATION) : cc.warn("Flame storm gun not found");
        }
      }
      hitFishWithDrill(hitSpecialAckData) {
        var _a, _b;
        let turret = this.getTurret(hitSpecialAckData.seat);
        null === (_b = null === (_a = null === turret || void 0 === turret ? void 0 : turret.pivot.getComponentInChildren(MT3SETB_DrillGun_1.default)) || void 0 === _a ? void 0 : _a.drillBullet) || void 0 === _b ? void 0 : _b.handleNormalHitResponse(hitSpecialAckData);
      }
      explodeDrill(explosionAckData) {
        var _a, _b;
        let turret = this.getTurret(explosionAckData.seat);
        null === (_b = null === (_a = null === turret || void 0 === turret ? void 0 : turret.pivot.getComponentInChildren(MT3SETB_DrillGun_1.default)) || void 0 === _a ? void 0 : _a.drillBullet) || void 0 === _b ? void 0 : _b.handleExplosionResponse(explosionAckData);
      }
      toggleEnergyGun(seat, isOn) {
        var _a;
        null === (_a = this.getTurret(seat)) || void 0 === _a ? void 0 : _a.toggleEnergyGun(isOn);
      }
      delayTipPopUp(e) {
        var t = this.maxIdleTime - this.currIdleTime;
        if (t < this.idleTipDisplayTime && Math.floor(t) !== Math.floor(t + e)) {
          var o = Math.ceil(t);
          MT3SETB_Comm_1.Comm.idleToast.setText(o, 1, .1);
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_delay_time);
        } else o < 0 && MT3SETB_Comm_1.Comm.idleToast.hide();
      }
      initCurrIdleTime() {
        var e = this.maxIdleTime - this.currIdleTime;
        if (e < this.idleTipDisplayTime && e >= 0) {
          MT3SETB_Comm_1.Comm.toast.hide();
          MT3SETB_Comm_1.Comm.idleToast.hide();
        }
        this.currIdleTime = 0;
      }
      transferCoin(e) {
        var t = this.playerSeat === e.seat;
        if (this.getTurret(e.seat)) {
          MT3SETB_Comm_1.Comm.bankSys.addServerCoin(e.seat, e.coin);
          if (t) {
            var o = MT3SETB_Comm_1.Comm.bankSys.getClientCoin(e.seat), i = MT3SETB_Comm_1.Comm.toDecimal2(o);
            MT3SETB_Comm_1.Comm.bankSys.addClientCoin(e.seat, e.coin);
            this.addCoin(e.seat, e.coin);
            var a = MT3SETB_Comm_1.Comm.toDecimal2(MT3SETB_Comm_1.Comm.bankSys.getClientCoin(e.seat));
            if (MT3SETB_Comm_1.Comm.app.isLogin && o < 1e-4 && Date.now() - MT3SETB_Comm_1.Comm.app.loginTime.getTime() < 1e4) return;
            if (i !== a) {
              var s = MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(138), a);
              MT3SETB_Comm_1.Comm.msgBox.setMessage(-1, s);
            }
          } else {
            MT3SETB_Comm_1.Comm.bankSys.addClientCoin(e.seat, e.coin);
            this.addCoin(e.seat, e.coin);
          }
        }
      }
      showBroadcast(msg, theme, name, coin, fish, oods, c) {
        if (MT3SETB_Comm_1.Comm.generalmenu.broadcastOffMark.active) return;
        var themeName = themeName = MT3SETB_LangList_1.LangList.getString(662);
        var p = MT3SETB_Comm_1.Comm.fishMgr.isBigFishByNo(fish) ? 60 : 5, isShowAsCard = 0;
        MT3SETB_Comm_1.Comm.runTask(p, function() {
          MT3SETB_Comm_1.Comm.broadcast.setMessage(name, coin, fish, oods, themeName, isShowAsCard, c);
        });
      }
      setLotteryData(e) {
        this.getPlayerSeat() == e.seat ? MT3SETB_Comm_1.Comm.redenv.setRedenvelopeData(e) : this.scheduleOnce(function() {
          MT3SETB_Comm_1.Comm.effectMgr.rewardRedCircle(MT3SETB_Game_1.eFishMedal.Redenvelope, e.seat, e.coin, false, e.bet);
        }, 3);
      }
      S2C_mail(e) {
        if (e && 2 == e.source) {
          var t = JSON.parse(e.content);
          if (1 == t.PrizeType) MT3SETB_Comm_1.Comm.msgBox.setMessage(99, MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(213), t.Desc, t.Number, MT3SETB_Comm_1.Comm.getThousandsNum5(t.Amount))); else if (5 == t.PrizeType) {
            var o = MT3SETB_Comm_1.Comm.app.getItemData();
            if (o[t.PrizeSubType]) {
              this.bShowItemTip = true;
              MT3SETB_Comm_1.Comm.msgBox.setMessage(99, MT3SETB_utils2_1.sprintf(MT3SETB_language_1.GetLanguage(1008), t.Desc, t.Number, MT3SETB_language_1.GetLanguage(o[t.PrizeSubType].cardText), t.Expired));
            }
          }
        }
      }
      hitSync(e, t, o, n, i) {
        this.shadowMgr.HitSync(e, t, o, n, i);
      }
      checkLobbyItemData() {
        "undefined" != typeof LobbyData && LobbyData.backpack && LobbyData.backpack.itemindex && (LobbyData.backpack = null);
      }
      onResize() {
        let ds = cc.view.getDesignResolutionSize(), size = MT3SETB_Comm_1.Comm.app.winSizeFactor, height = size.height, width = Math.min(ds.width, size.width), scale = Math.min(1, size.height / ds.height);
        let canvas = cc.find("Canvas");
        let stage = cc.find("Stage", canvas);
        let display = cc.find("Display", stage);
        stage.height = canvas.height;
        display.scale = scale;
        display.x = size.x;
        let leftBound = cc.find("Boundary/Left", stage), rightBound = cc.find("Boundary/Right", stage), topBound = cc.find("Boundary/Top", stage), bottomBound = cc.find("Boundary/Bottom", stage);
        leftBound.x = .5 * -width;
        rightBound.x = .5 * width;
        topBound.y = .5 * height;
        bottomBound.y = .5 * -height;
        let shadowLayer = cc.find("ShadowLayer", display);
        shadowLayer && (shadowLayer.width = width / scale);
      }
      checkChangeGame() {
        return new Promise(function(e) {
          MT3SETB_Comm_1.Comm.msgBox.setMessage_callback(2, MT3SETB_LangList_1.LangList.getString(258), function() {
            return e(true);
          }, function() {
            return e(false);
          });
        });
      }
    };
    __decorate([ property([ MT3SETB_Turret_1.Turret ]) ], GameCtrl.prototype, "turrets", void 0);
    GameCtrl = __decorate([ ccclass ], GameCtrl);
    exports.GameCtrl = GameCtrl;
    cc._RF.pop();
  }, {
    "../../res/Common/script/MT3SETB-BonusCardMgr": "MT3SETB-BonusCardMgr",
    "../../res/Common/script/MT3SETB-FreeBulletMgr": "MT3SETB-FreeBulletMgr",
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-event": "MT3SETB-event",
    "../common/api/MT3SETB-language": "MT3SETB-language",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../common/api/MT3SETB-profile": "MT3SETB-profile",
    "../common/api/MT3SETB-timeline": "MT3SETB-timeline",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../common/api/MT3SETB-webObject": "MT3SETB-webObject",
    "../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "../shadow/MT3SETB-ShadowMgr": "MT3SETB-ShadowMgr",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "../system/MT3SETB-LangList": "MT3SETB-LangList",
    "./MT3SETB-AwakenGiantCrocodileAttack": "MT3SETB-AwakenGiantCrocodileAttack",
    "./MT3SETB-AwakenNightBeastEffect": "MT3SETB-AwakenNightBeastEffect",
    "./MT3SETB-AwakenedKingCrabBombEffect": "MT3SETB-AwakenedKingCrabBombEffect",
    "./MT3SETB-AwakenedKingOctopusBombEffect": "MT3SETB-AwakenedKingOctopusBombEffect",
    "./MT3SETB-BetRecord": "MT3SETB-BetRecord",
    "./MT3SETB-BombCrabEffect": "MT3SETB-BombCrabEffect",
    "./MT3SETB-DinghyBombEffect": "MT3SETB-DinghyBombEffect",
    "./MT3SETB-DrillGun": "MT3SETB-DrillGun",
    "./MT3SETB-DrillGunDrop": "MT3SETB-DrillGunDrop",
    "./MT3SETB-FlameStormFishGun": "MT3SETB-FlameStormFishGun",
    "./MT3SETB-FlameStormGun": "MT3SETB-FlameStormGun",
    "./MT3SETB-MermaidEffect": "MT3SETB-MermaidEffect",
    "./MT3SETB-PhoenixBombEffect": "MT3SETB-PhoenixBombEffect",
    "./MT3SETB-SoundConst": "MT3SETB-SoundConst",
    "./MT3SETB-ThunderDragonEffect": "MT3SETB-ThunderDragonEffect",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-GameMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "68fefrA3vtNa63jPLtwAqf9", "MT3SETB-GameMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.GameMgr = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_LoadEnd_1 = require("./MT3SETB-LoadEnd");
    const MT3SETB_glue_1 = __importDefault(require("../common/api/MT3SETB-glue"));
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_FishEater_1 = __importDefault(require("./LS/MT3SETB-FishEater"));
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let GameMgr = class GameMgr extends cc.Component {
      constructor() {
        super();
        this.loadEnd = null;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.gameMgr = this;
        MT3SETB_glue_1.default.bankSys_addServerCoin = function(e, t) {
          return MT3SETB_Comm_1.Comm.bankSys.addServerCoin(e, t);
        };
        MT3SETB_glue_1.default.bankSys_addClientCoin = function(e, t) {
          return MT3SETB_Comm_1.Comm.bankSys.addClientCoin(e, t);
        };
        MT3SETB_glue_1.default.bankSys_addClientTypeCoin = function(e, t, o) {
          return MT3SETB_Comm_1.Comm.bankSys.addCoin(e, t, o);
        };
        MT3SETB_glue_1.default.gameCtrl_updateTurretCoin = function(e) {
          return MT3SETB_Comm_1.Comm.gameCtrl.addCoin(e, 0);
        };
        MT3SETB_glue_1.default.gameCtrl_getPlayerSeat = function() {
          return MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat();
        };
        MT3SETB_glue_1.default.gameCtrl_checkChangeGame = function() {
          return MT3SETB_Comm_1.Comm.gameCtrl.checkChangeGame();
        };
        MT3SETB_glue_1.default.backpack_setImage = function(e, t) {
          return null;
        };
      }
      start() {
        var e = this;
        MT3SETB_Comm_1.Comm.runTask({
          times: cc.macro.REPEAT_FOREVER
        }, function(t) {
          if (false === MT3SETB_Comm_1.Comm.app.loadingFlag && e.loadEnd.isDone) {
            MT3SETB_Comm_1.Comm.app.setCommand(e.onCommand.bind(e));
            MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_TABLE_INFO_REQ, null);
            MT3SETB_Comm_1.Comm.delTask(t);
          }
        });
      }
      onCommand(e, t) {
        var _a;
        if (true !== MT3SETB_Comm_1.Comm.gameCtrl.isTimeout) {
          var o, i;
          switch (e) {
           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_LOGIN_ACK:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.LoginDataAck.decode(t);
            this.loginAck(o);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_TABLE_INFO_ACK:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.TableInfoAck.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.tableSetting(o);
            MT3SETB_Comm_1.Comm.vipDisplayCtrl.UpdateVip(o.players);
            MT3SETB_Comm_1.Comm.app.clearMail();
            MT3SETB_platform_1.SendSubAgentLog();
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_JOIN_NOTIFY:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.JoinNotification.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.joinNotify(o.user.seat, o.user.name, o.user.coin, o.user.skin);
            MT3SETB_Comm_1.Comm.vipDisplayCtrl.UpdateVip([ o.user ]);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_LEAVE_NOTIFY:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.LeaveNotification.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.leaveNotify(o.seat);
            MT3SETB_Comm_1.Comm.vipDisplayCtrl.ClearVip(o.seat);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_SKIN_NOTIFY:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.SkinChangeAck.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.skinChangeNotify(o);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_LEAVE_TABLE_ACK:
            MT3SETB_Comm_1.Comm.gameCtrl.leaveTable(false);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_LOCKFISH_NOTIFY:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.LockFishData.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.updateNonLocalLaserStatus(o.seat, o.fishTag, o.fishId);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_GUNSETTING_NOTIFY:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.GunSettingData.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.updateNonLocalGunSetting(o.seat, o);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_SHOOT_ACK:
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_SHOOT_NOTIFY:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.ShootNotifyData.decode(t);
            o.data.type === MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.BOMB && (o.coin = o.coin * MT3SETB_Comm_1.Comm.shootMgr.torpedoHitCount);
            if (MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() !== o.seat && MT3SETB_Comm_1.Comm.bankSys.getClientCoin(o.seat) > 0) {
              MT3SETB_Comm_1.Comm.gameCtrl.shoot(o.seat, cc.v2(o.data.point.x, o.data.point.y), o.data.bulletId, o.data.type, o.data.fishId, o.data.bet);
              MT3SETB_Comm_1.Comm.gameCtrl.updateCoinBetNotify(o.seat, o.coin, o.data.bet);
            }
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_DRILL_FIRE_NOTIFY:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.DrillFireNotifyData.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() !== o.seat && MT3SETB_Comm_1.Comm.gameCtrl.fireNonLocalDrill(o.seat, cc.v2(o.point.x, o.point.y));
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_HIT_ACK:
            let hitAck = MT3SETB_mtf_pb_wrapper_1.mtf.HitAckData.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat();
            hitAck.seat;
            this.setMeteoriteValue_Client(hitAck);
            MT3SETB_Comm_1.Comm.bankSys.setServerCoin(hitAck.seat, hitAck.remain);
            MT3SETB_Comm_1.Comm.bankSys.updateCoin(hitAck.seat);
            MT3SETB_Comm_1.Comm.gameCtrl.shootCount_forLog = 0;
            MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() === hitAck.seat && MT3SETB_Comm_1.Comm.bulletMgr.delBulletData(hitAck.bulletId);
            if (hitAck.result === MT3SETB_mtf_pb_wrapper_1.mtf.HitResult.HR_FAILED) {
              MT3SETB_Comm_1.Comm.gameCtrl.hitFailCount_forLog = 0;
              MT3SETB_Comm_1.Comm.fishMgr.showDamage(hitAck.fishId);
            } else if (hitAck.result === MT3SETB_mtf_pb_wrapper_1.mtf.HitResult.HR_SUCCESS) {
              MT3SETB_Comm_1.Comm.gameCtrl.hitFailCount_forLog = 0;
              let multiKillFishAck = null;
              let normalFishAcks = [];
              for (let deadAck of hitAck.dead) {
                let fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(deadAck.id);
                if (!fish) continue;
                if (MT3SETB_Comm_1.Comm.fishMgr.isMultiKillFish(fish)) {
                  null != multiKillFishAck && console.warn("Multiple multi-kill fishes should not be killed in one hit");
                  multiKillFishAck = deadAck;
                } else normalFishAcks.push(deadAck);
              }
              const constructFishHitData = function(deadAck) {
                return {
                  result: MT3SETB_mtf_pb_wrapper_1.mtf.HitResult.HR_SUCCESS,
                  seat: hitAck.seat,
                  coin: deadAck.coin,
                  fishId: deadAck.id,
                  type: hitAck.type,
                  remain: hitAck.remain,
                  bulletId: hitAck.bulletId,
                  bet: hitAck.bet,
                  dead: hitAck.dead,
                  bonus: hitAck.bonus,
                  skinEnergy: hitAck.skinEnergy,
                  seed: hitAck.seed,
                  collateralFish: []
                };
              };
              if (multiKillFishAck) {
                let hitData = constructFishHitData(multiKillFishAck);
                for (let fishAck of normalFishAcks) hitData.collateralFish.push(constructFishHitData(fishAck));
                MT3SETB_Comm_1.Comm.gameCtrl.hitFish(hitData);
              } else for (let normalFishAck of normalFishAcks) {
                let hitData = constructFishHitData(normalFishAck);
                MT3SETB_Comm_1.Comm.gameCtrl.hitFish(hitData);
              }
            } else if (hitAck.result === MT3SETB_mtf_pb_wrapper_1.mtf.HitResult.HR_FISH_ALREADY_DEAD) {
              MT3SETB_Comm_1.Comm.gameCtrl.hitFailCount_forLog++;
              MT3SETB_Comm_1.Comm.gameCtrl.hitFailCount_forLog > 30 && MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Error_CrazyCancle);
              MT3SETB_Comm_1.Comm.gameCtrl.addCoin(hitAck.seat, hitAck.coin);
              hitAck.type === MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.BOMB && hitAck.seat === MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() && MT3SETB_Comm_1.Comm.effectMgr.showRefund(hitAck.seat, hitAck.coin);
              var u = -1, d = MT3SETB_Comm_1.Comm.fishMgr.getFishById(hitAck.fishId);
              d && (u = d.getFishNo());
              MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_Game_fakeFish, hitAck.bulletId + ", " + hitAck.coin + ", " + hitAck.fishId + ", " + u);
            }
            MT3SETB_Comm_1.Comm.gameCtrl.addCoin(hitAck.seat, hitAck.coin);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_FLAMESTORM_HIT_ACK:
            let fsHitAck = MT3SETB_mtf_pb_wrapper_1.mtf.HitAckData.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.shootCount_forLog = 0;
            MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() === fsHitAck.seat && MT3SETB_Comm_1.Comm.bulletMgr.delBulletData(fsHitAck.bulletId);
            if (fsHitAck.result === MT3SETB_mtf_pb_wrapper_1.mtf.HitResult.HR_FAILED) {
              MT3SETB_Comm_1.Comm.gameCtrl.hitFailCount_forLog = 0;
              MT3SETB_Comm_1.Comm.gameCtrl.hurtFish(fsHitAck);
            } else if (fsHitAck.result === MT3SETB_mtf_pb_wrapper_1.mtf.HitResult.HR_SUCCESS) {
              MT3SETB_Comm_1.Comm.gameCtrl.hitFailCount_forLog = 0;
              for (let deadAck of fsHitAck.dead) MT3SETB_Comm_1.Comm.gameCtrl.killFishWithFlamestorm({
                result: MT3SETB_mtf_pb_wrapper_1.mtf.HitResult.HR_SUCCESS,
                seat: fsHitAck.seat,
                coin: deadAck.coin,
                fishId: deadAck.id,
                type: fsHitAck.type,
                remain: fsHitAck.remain,
                bulletId: fsHitAck.bulletId,
                bet: fsHitAck.bet,
                dead: fsHitAck.dead,
                bonus: fsHitAck.bonus,
                skinEnergy: fsHitAck.skinEnergy,
                collateralFish: []
              });
            } else if (fsHitAck.result === MT3SETB_mtf_pb_wrapper_1.mtf.HitResult.HR_FISH_ALREADY_DEAD) {
              MT3SETB_Comm_1.Comm.gameCtrl.hitFailCount_forLog++;
              MT3SETB_Comm_1.Comm.gameCtrl.hitFailCount_forLog > 30 && MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Error_CrazyCancle);
              MT3SETB_Comm_1.Comm.gameCtrl.addCoin(fsHitAck.seat, fsHitAck.coin);
              var u = -1, d = MT3SETB_Comm_1.Comm.fishMgr.getFishById(fsHitAck.fishId);
              d && (u = d.getFishNo());
              MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_Game_fakeFish, fsHitAck.bulletId + ", " + fsHitAck.coin + ", " + fsHitAck.fishId + ", " + u);
            }
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_HIT_SPECIAL_ACK:
            let hitSpecialAck = MT3SETB_mtf_pb_wrapper_1.mtf.HitSpecialAckData.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.hitFishWithDrill(hitSpecialAck);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_HIT_SEPCIAL_START:
            let explosionAck = MT3SETB_mtf_pb_wrapper_1.mtf.BombAckData.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.explodeDrill(explosionAck);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_HIT_SPECIAL_END:
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_BOMB_ACK:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.BombAckData.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.bombFishes(o);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_DEATH_EFFECT_NOTIFY:
            let deathEffectNotifyData = MT3SETB_mtf_pb_wrapper_1.mtf.FishDeathEffectNotification.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.handleOngoingFishDeathEffect(deathEffectNotifyData);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_CANNON_ACK:
            let cannonNotifyData = MT3SETB_mtf_pb_wrapper_1.mtf.CannonNotifyData.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.nonLocalPlayerLoadCompleteNotify(cannonNotifyData.seat);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_BROADCAST:
           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_BROADCASTV2:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.BroadcastData.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.showBroadcast(e, o.theme, o.name, o.coin, o.fish, o.odds);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_MAIL:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.Mail.decode(t);
            MT3SETB_Comm_1.Comm.gameCtrl.S2C_mail(o);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_CARD_USE_ACK:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.CardUseAck.decode(t);
            MT3SETB_Comm_1.Comm.uiCtrl.updateFreezeNum();
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_FREEZE_ACK:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.FreezeAck.decode(t);
            MT3SETB_Comm_1.Comm.effectMgr.freezeFishes();
            if (o.coin > 0) {
              MT3SETB_Comm_1.Comm.bankSys.setServerCoin(o.seat, o.remain);
              MT3SETB_Comm_1.Comm.bankSys.updateCoin(o.seat);
              MT3SETB_Comm_1.Comm.gameCtrl.addCoin(o.seat, 0);
            }
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_EATFISH_ACK:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.EatFishAck.decode(t);
            for (let eatenFishId of o.fishesEaten) MT3SETB_Comm_1.Comm.fishMgr.delFish(eatenFishId, false, true);
            let fishEater = null === (_a = MT3SETB_Comm_1.Comm.fishMgr.getFishNodeById(o.eater)) || void 0 === _a ? void 0 : _a.getComponent(MT3SETB_FishEater_1.default);
            fishEater && fishEater.handleFishesEaten(o.eaterOdds);
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_DEBUG_ACK:
            MT3SETB_Comm_1.Comm.debug.onAck(MT3SETB_mtf_pb_wrapper_1.mtf.DebugAck.decode(t));
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_FISHODDS_UPDATE:
            o = MT3SETB_mtf_pb_wrapper_1.mtf.UpdateFishOdds.decode(t);
            var fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(o.fishTag);
            fish && fish.updateOddsText(o.odds);
          }
        }
      }
      leaveTable() {
        MT3SETB_Comm_1.Comm.app.setCommand(this.onCommand.bind(this));
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_LEAVE_TABLE_REQ, null);
      }
      loginAck(e) {
        if (e.result === MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_RELOGIN) MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME_END); else {
          e.result === MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_DUPLICATE ? MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME_END, 3) : e.result === MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_INVALID_ACCOUNT ? MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME_END, 2) : e.result === MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_FULL ? MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME_END, 4) : e.result === MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_MAINTAIN ? MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME_END, 7) : MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME_END, 1);
          MT3SETB_Comm_1.Comm.gameCtrl.leaveTable(false);
          MT3SETB_Comm_1.Comm.app.disconnection();
          MT3SETB_Comm_1.Comm.app.shutdownByMsgBox(8);
        }
      }
      sendLockFishUpdate(notification) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.LockFishData.encode(notification);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_LOCKFISH_NOTIFY, t);
      }
      sendGunSettingUpdate(notification) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.GunSettingData.encode(notification);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_GUNSETTING_NOTIFY, t);
      }
      shoot(e) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.ShootReqData.encode(e);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_SHOOT_REQ, t);
      }
      fireDrill(e) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.DrillFireNotifyData.encode(e);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DRILL_FIRE_NOTIFY, t);
      }
      debugHitRequest(e) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.HitReqData.encode(e);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DEBUG_HIT_REQ, t);
      }
      hitRequest(e) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.HitReqData.encode(e);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_HIT_REQ, t);
      }
      drillRequest(e) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.HitSpecialStartReqData.encode(e);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_HIT_SPCIAL_START_REQ, t);
      }
      bombRequest(e) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.BombReqData.encode(e);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_BOMB_REQ, t);
      }
      flameStormHitRequest(e) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.HitReqData.encode(e);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_FLAMESTORM_HIT_REQ, t);
      }
      notifyCaptureProgress(e) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.FishDeathEffectNotification.encode(e);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DEATH_EFFECT_NOTIFY, t);
      }
      setMeteoriteValue(e) {
        var _a, _b, _c, _d, _e;
        null === (_a = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _a ? void 0 : _a.setMeteor(0 == (null === (_b = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _b ? void 0 : _b.getMeteor()) ? e : null === (_c = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _c ? void 0 : _c.getMeteor());
        null === (_d = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _d ? void 0 : _d.setMeteorS(e);
        MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret() && (null === (_e = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _e ? void 0 : _e.updateByBet(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet()));
      }
      setMeteoriteValue_Client(e) {
        var _a, _b, _c, _d, _e;
        MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() == e.seat && null != e.result && (e.result !== MT3SETB_mtf_pb_wrapper_1.mtf.HitResult.HR_FAILED && e.result !== MT3SETB_mtf_pb_wrapper_1.mtf.HitResult.HR_SUCCESS || (e.type === MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.BOMB ? null === (_a = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _a ? void 0 : _a.setMeteor((null === (_b = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _b ? void 0 : _b.getMeteor()) + .01 * e.bet * MT3SETB_Comm_1.Comm.shootMgr.torpedoHitCount) : e.type != MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL && e.type != MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK || (null === (_c = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _c ? void 0 : _c.setMeteor((null === (_d = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _d ? void 0 : _d.getMeteor()) + .01 * e.bet)), 
        null === (_e = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _e ? void 0 : _e.updateByBet(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet())));
      }
      getJpDetail() {
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_JP_DETAIL_REQ, null);
      }
      getLevelReward(e) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.LevelRewardReq.encode(e);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_LEVEL_REWARD_REQ, t);
        cc.log(e);
      }
      getWeekLevelReward(e) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.LevelRewardReq.encode(e);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_WEEK_REWARD_REQ, t);
        cc.log(e);
      }
      getKillBoxReward(e) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.LevelRewardReq.encode(e);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_KILL_REWARD_REQ, t);
        cc.log(e);
      }
      cardRequest(e) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.CardUseReq.encode(e);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_CARD_USE_REQ, t);
      }
      useFreeze() {
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_FREEZE_REQ, null);
      }
      eatFishes(eater, toEat) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.EatFishReq.encode(new MT3SETB_mtf_pb_wrapper_1.mtf.EatFishReq({
          eater: eater,
          toEat: toEat
        }));
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_EATFISH_REQ, t);
      }
    };
    __decorate([ property(MT3SETB_LoadEnd_1.LoadEnd) ], GameMgr.prototype, "loadEnd", void 0);
    GameMgr = __decorate([ ccclass ], GameMgr);
    exports.GameMgr = GameMgr;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-glue": "MT3SETB-glue",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "./LS/MT3SETB-FishEater": "MT3SETB-FishEater",
    "./MT3SETB-LoadEnd": "MT3SETB-LoadEnd"
  } ],
  "MT3SETB-GameTable": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "284f6GJDzFO5JMOR7ZJEcyc", "MT3SETB-GameTable");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let GameTable = class GameTable extends cc.Component {
      constructor() {
        super(...arguments);
        this.tableNoText = null;
        this.emptySeatButtons = [];
        this.occupiedSeatButtons = [];
      }
      init(tableData) {
        this.tableNo = tableData.tableNo;
        this.tableNoText.string = tableData.tableNo.toString().padStart(4, "0");
        for (let button of this.emptySeatButtons) button.node.active = true;
        for (let button of this.occupiedSeatButtons) button.node.active = false;
        for (let playerData of tableData.players) if (playerData && this.occupiedSeatButtons[playerData.seat]) {
          this.occupiedSeatButtons[playerData.seat].node.active = true;
          this.emptySeatButtons[playerData.seat].node.active = false;
        }
      }
      onClickJoinTable(evt, seatNo) {
        var _a;
        null === (_a = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _a ? void 0 : _a.JoinSelectedDesk(this.tableNo, seatNo);
      }
      onClickJoinOccupiedSeat() {
        var _a;
        null === (_a = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _a ? void 0 : _a.OnJoinFail();
      }
    };
    __decorate([ property(cc.Label) ], GameTable.prototype, "tableNoText", void 0);
    __decorate([ property([ cc.Button ]) ], GameTable.prototype, "emptySeatButtons", void 0);
    __decorate([ property([ cc.Button ]) ], GameTable.prototype, "occupiedSeatButtons", void 0);
    GameTable = __decorate([ ccclass ], GameTable);
    exports.default = GameTable;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-Game": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "3857b5TnitAcpUrb4TRcLH2", "MT3SETB-Game");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.poolMaxCoinNum = exports.preloadCoinNum = exports.preloadBulletNum = exports.isFishMultiFish = exports.isFishHaveAdditionalSprites = exports.getFishOverrideChildIds = exports.poolMaxFishNum = exports.preloadFishNum = exports.mtfFishEvent = exports.eFishMedal = exports.eFishKind = exports.eFishNo = exports.mtfBFishNo = exports.ePhoenixFx = exports.eOtherNo = exports.eEffectNo = exports.lsEffectNo = exports.eCoinRefundNo = exports.eCoinAddNo = exports.eBulletZIndex = exports.eZIndex = exports.eAvatarEFNo = exports.eBulletNo = exports.eAvatarNo = void 0;
    var eAvatarNo;
    (function(eAvatarNo) {
      eAvatarNo[eAvatarNo["Normal_Lv3"] = 2] = "Normal_Lv3";
      eAvatarNo[eAvatarNo["Aim"] = 10] = "Aim";
      eAvatarNo[eAvatarNo["Torpedo"] = 4] = "Torpedo";
      eAvatarNo[eAvatarNo["GoldToad"] = 5] = "GoldToad";
      eAvatarNo[eAvatarNo["Honor"] = 6] = "Honor";
      eAvatarNo[eAvatarNo["DKing_Lv1"] = 7] = "DKing_Lv1";
      eAvatarNo[eAvatarNo["DKing_Lv2"] = 8] = "DKing_Lv2";
      eAvatarNo[eAvatarNo["DKing_Lv3"] = 9] = "DKing_Lv3";
    })(eAvatarNo = exports.eAvatarNo || (exports.eAvatarNo = {}));
    var eBulletNo;
    (function(eBulletNo) {
      eBulletNo[eBulletNo["Aim"] = 3] = "Aim";
      eBulletNo[eBulletNo["Torpedo"] = 4] = "Torpedo";
      eBulletNo[eBulletNo["GoldToad"] = 5] = "GoldToad";
      eBulletNo[eBulletNo["Honor"] = 6] = "Honor";
      eBulletNo[eBulletNo["DKing_Normal"] = 7] = "DKing_Normal";
      eBulletNo[eBulletNo["DKing_Skill"] = 8] = "DKing_Skill";
    })(eBulletNo = exports.eBulletNo || (exports.eBulletNo = {}));
    var eAvatarEFNo;
    (function(eAvatarEFNo) {
      eAvatarEFNo[eAvatarEFNo["DKing_Lv1"] = 0] = "DKing_Lv1";
      eAvatarEFNo[eAvatarEFNo["DKing_Lv2"] = 1] = "DKing_Lv2";
      eAvatarEFNo[eAvatarEFNo["DKing_Lv3"] = 2] = "DKing_Lv3";
      eAvatarEFNo[eAvatarEFNo["DKing_Energy"] = 3] = "DKing_Energy";
      eAvatarEFNo[eAvatarEFNo["DKing_Lightning"] = 4] = "DKing_Lightning";
    })(eAvatarEFNo = exports.eAvatarEFNo || (exports.eAvatarEFNo = {}));
    var eZIndex;
    (function(eZIndex) {
      eZIndex[eZIndex["Default"] = 0] = "Default";
      eZIndex[eZIndex["Coin_1"] = 101] = "Coin_1";
      eZIndex[eZIndex["Coin_2"] = 102] = "Coin_2";
      eZIndex[eZIndex["Coin_3"] = 103] = "Coin_3";
      eZIndex[eZIndex["GameSystem"] = 501] = "GameSystem";
    })(eZIndex = exports.eZIndex || (exports.eZIndex = {}));
    var eBulletZIndex;
    (function(eBulletZIndex) {
      eBulletZIndex[eBulletZIndex["OtherBomb"] = 0] = "OtherBomb";
      eBulletZIndex[eBulletZIndex["Other"] = 1] = "Other";
      eBulletZIndex[eBulletZIndex["OtherHit"] = 2] = "OtherHit";
      eBulletZIndex[eBulletZIndex["SelfBomb"] = 10] = "SelfBomb";
      eBulletZIndex[eBulletZIndex["Self"] = 11] = "Self";
      eBulletZIndex[eBulletZIndex["SelfHit"] = 12] = "SelfHit";
      eBulletZIndex[eBulletZIndex["OtherLaser"] = 20] = "OtherLaser";
      eBulletZIndex[eBulletZIndex["SelfLaser"] = 21] = "SelfLaser";
    })(eBulletZIndex = exports.eBulletZIndex || (exports.eBulletZIndex = {}));
    var eCoinAddNo;
    (function(eCoinAddNo) {
      eCoinAddNo[eCoinAddNo["Normal"] = 0] = "Normal";
      eCoinAddNo[eCoinAddNo["Reverse"] = 1] = "Reverse";
    })(eCoinAddNo = exports.eCoinAddNo || (exports.eCoinAddNo = {}));
    var eCoinRefundNo;
    (function(eCoinRefundNo) {
      eCoinRefundNo[eCoinRefundNo["Normal"] = 0] = "Normal";
      eCoinRefundNo[eCoinRefundNo["Reverse"] = 1] = "Reverse";
    })(eCoinRefundNo = exports.eCoinRefundNo || (exports.eCoinRefundNo = {}));
    var lsEffectNo;
    (function(lsEffectNo) {
      lsEffectNo[lsEffectNo["Bomb"] = 0] = "Bomb";
      lsEffectNo[lsEffectNo["ShuangCi"] = 1] = "ShuangCi";
      lsEffectNo[lsEffectNo["Cs_Bomb"] = 2] = "Cs_Bomb";
    })(lsEffectNo = exports.lsEffectNo || (exports.lsEffectNo = {}));
    var eEffectNo;
    (function(eEffectNo) {
      eEffectNo[eEffectNo["WheelDragonReward"] = 3] = "WheelDragonReward";
      eEffectNo[eEffectNo["FortuneGodReward"] = 4] = "FortuneGodReward";
      eEffectNo[eEffectNo["PumpkinBomb"] = 5] = "PumpkinBomb";
      eEffectNo[eEffectNo["FlameStormFishGun"] = 6] = "FlameStormFishGun";
      eEffectNo[eEffectNo["FuwangEntrance"] = 7] = "FuwangEntrance";
      eEffectNo[eEffectNo["Cs_MultiBomb"] = 8] = "Cs_MultiBomb";
      eEffectNo[eEffectNo["CycloneEffect"] = 9] = "CycloneEffect";
      eEffectNo[eEffectNo["DinghyBombEffect"] = 10] = "DinghyBombEffect";
      eEffectNo[eEffectNo["DinghyExplodeEffect"] = 11] = "DinghyExplodeEffect";
      eEffectNo[eEffectNo["DrillGun"] = 12] = "DrillGun";
      eEffectNo[eEffectNo["DrillHitFx"] = 13] = "DrillHitFx";
      eEffectNo[eEffectNo["LightningShark"] = 14] = "LightningShark";
      eEffectNo[eEffectNo["ScreamingTigerVortex"] = 15] = "ScreamingTigerVortex";
      eEffectNo[eEffectNo["UncleCatBoard"] = 16] = "UncleCatBoard";
      eEffectNo[eEffectNo["ThunderDragonEffect"] = 17] = "ThunderDragonEffect";
      eEffectNo[eEffectNo["PhoenixBombEffect"] = 18] = "PhoenixBombEffect";
      eEffectNo[eEffectNo["MermaidEffect"] = 19] = "MermaidEffect";
      eEffectNo[eEffectNo["WakeUpKingCrabEffect"] = 20] = "WakeUpKingCrabEffect";
      eEffectNo[eEffectNo["AwakenNightBeast"] = 21] = "AwakenNightBeast";
      eEffectNo[eEffectNo["WakeupKingOctopusEffect"] = 22] = "WakeupKingOctopusEffect";
      eEffectNo[eEffectNo["AwakenGiantCrocodileAttack"] = 23] = "AwakenGiantCrocodileAttack";
      eEffectNo[eEffectNo["ScreenAuraHearts"] = 24] = "ScreenAuraHearts";
      eEffectNo[eEffectNo["ScreenAuraLightning"] = 25] = "ScreenAuraLightning";
      eEffectNo[eEffectNo["ScreenAuraBlackFlame"] = 26] = "ScreenAuraBlackFlame";
    })(eEffectNo = exports.eEffectNo || (exports.eEffectNo = {}));
    var eOtherNo;
    (function(eOtherNo) {
      eOtherNo[eOtherNo["FishWave"] = 0] = "FishWave";
      eOtherNo[eOtherNo["FishComing"] = 1] = "FishComing";
      eOtherNo[eOtherNo["BossDebutt"] = 2] = "BossDebutt";
      eOtherNo[eOtherNo["BossWarningRed"] = 3] = "BossWarningRed";
      eOtherNo[eOtherNo["BossWarningPurple"] = 4] = "BossWarningPurple";
      eOtherNo[eOtherNo["BisonComing"] = 5] = "BisonComing";
      eOtherNo[eOtherNo["HaiWangLaiXi"] = 6] = "HaiWangLaiXi";
      eOtherNo[eOtherNo["JueXing"] = 7] = "JueXing";
    })(eOtherNo = exports.eOtherNo || (exports.eOtherNo = {}));
    var ePhoenixFx;
    (function(ePhoenixFx) {
      ePhoenixFx[ePhoenixFx["BG"] = 0] = "BG";
      ePhoenixFx[ePhoenixFx["Main"] = 1] = "Main";
      ePhoenixFx[ePhoenixFx["Bird"] = 2] = "Bird";
      ePhoenixFx[ePhoenixFx["Bomb"] = 3] = "Bomb";
      ePhoenixFx[ePhoenixFx["Counter"] = 4] = "Counter";
      ePhoenixFx[ePhoenixFx["Rebirth"] = 5] = "Rebirth";
      ePhoenixFx[ePhoenixFx["Egg"] = 6] = "Egg";
      ePhoenixFx[ePhoenixFx["Ice"] = 7] = "Ice";
    })(ePhoenixFx = exports.ePhoenixFx || (exports.ePhoenixFx = {}));
    var mtfBFishNo;
    (function(mtfBFishNo) {
      mtfBFishNo[mtfBFishNo["GhanaFish"] = 0] = "GhanaFish";
      mtfBFishNo[mtfBFishNo["ClownFish"] = 1] = "ClownFish";
      mtfBFishNo[mtfBFishNo["DishFish"] = 2] = "DishFish";
      mtfBFishNo[mtfBFishNo["Puffer"] = 3] = "Puffer";
      mtfBFishNo[mtfBFishNo["LionFish"] = 4] = "LionFish";
      mtfBFishNo[mtfBFishNo["OtterFish"] = 5] = "OtterFish";
      mtfBFishNo[mtfBFishNo["Lobster"] = 6] = "Lobster";
      mtfBFishNo[mtfBFishNo["SailFish"] = 7] = "SailFish";
      mtfBFishNo[mtfBFishNo["JellyFish"] = 8] = "JellyFish";
      mtfBFishNo[mtfBFishNo["OctopusFish"] = 9] = "OctopusFish";
      mtfBFishNo[mtfBFishNo["LanternFish"] = 10] = "LanternFish";
      mtfBFishNo[mtfBFishNo["Tortoise"] = 11] = "Tortoise";
      mtfBFishNo[mtfBFishNo["SawtoothShark"] = 12] = "SawtoothShark";
      mtfBFishNo[mtfBFishNo["MantaRay"] = 13] = "MantaRay";
      mtfBFishNo[mtfBFishNo["GiantClownFish"] = 14] = "GiantClownFish";
      mtfBFishNo[mtfBFishNo["GiantDishFish"] = 15] = "GiantDishFish";
      mtfBFishNo[mtfBFishNo["Shark"] = 16] = "Shark";
      mtfBFishNo[mtfBFishNo["Whale"] = 17] = "Whale";
      mtfBFishNo[mtfBFishNo["GiantPuffer"] = 18] = "GiantPuffer";
      mtfBFishNo[mtfBFishNo["Cycle_GhanaFish"] = 100] = "Cycle_GhanaFish";
      mtfBFishNo[mtfBFishNo["Cycle_ClownFish"] = 101] = "Cycle_ClownFish";
      mtfBFishNo[mtfBFishNo["Cycle_DishFish"] = 102] = "Cycle_DishFish";
      mtfBFishNo[mtfBFishNo["Cycle_Puffer"] = 103] = "Cycle_Puffer";
      mtfBFishNo[mtfBFishNo["Cycle_LionFish"] = 104] = "Cycle_LionFish";
      mtfBFishNo[mtfBFishNo["Cycle_OtterFish"] = 105] = "Cycle_OtterFish";
      mtfBFishNo[mtfBFishNo["Cycle_Lobster"] = 106] = "Cycle_Lobster";
      mtfBFishNo[mtfBFishNo["Cycle_SailFish"] = 107] = "Cycle_SailFish";
      mtfBFishNo[mtfBFishNo["Cycle_JellyFish"] = 108] = "Cycle_JellyFish";
      mtfBFishNo[mtfBFishNo["Cycle_OctopusFish"] = 109] = "Cycle_OctopusFish";
      mtfBFishNo[mtfBFishNo["Cycle_LanternFish"] = 110] = "Cycle_LanternFish";
      mtfBFishNo[mtfBFishNo["Cycle_Tortoise"] = 111] = "Cycle_Tortoise";
      mtfBFishNo[mtfBFishNo["Cycle_SawtoothShark"] = 112] = "Cycle_SawtoothShark";
      mtfBFishNo[mtfBFishNo["LightningShark"] = 200] = "LightningShark";
      mtfBFishNo[mtfBFishNo["DrillCrab"] = 201] = "DrillCrab";
      mtfBFishNo[mtfBFishNo["BombCrab"] = 202] = "BombCrab";
      mtfBFishNo[mtfBFishNo["MultipleBombCrab"] = 203] = "MultipleBombCrab";
      mtfBFishNo[mtfBFishNo["FlamesStorm"] = 204] = "FlamesStorm";
      mtfBFishNo[mtfBFishNo["WheelsOfGodDragon"] = 205] = "WheelsOfGodDragon";
      mtfBFishNo[mtfBFishNo["UncleCat"] = 206] = "UncleCat";
      mtfBFishNo[mtfBFishNo["FlamingPhoenix"] = 207] = "FlamingPhoenix";
      mtfBFishNo[mtfBFishNo["AmethystMermaid"] = 208] = "AmethystMermaid";
      mtfBFishNo[mtfBFishNo["GreenMermaid"] = 209] = "GreenMermaid";
      mtfBFishNo[mtfBFishNo["BombSpeedBoat"] = 210] = "BombSpeedBoat";
      mtfBFishNo[mtfBFishNo["WakeupKingCrab"] = 211] = "WakeupKingCrab";
      mtfBFishNo[mtfBFishNo["AwakenNightBeast"] = 212] = "AwakenNightBeast";
      mtfBFishNo[mtfBFishNo["AwakenGiantCrocodile"] = 213] = "AwakenGiantCrocodile";
      mtfBFishNo[mtfBFishNo["WakeupKingOctopus"] = 214] = "WakeupKingOctopus";
      mtfBFishNo[mtfBFishNo["ThunderDragon"] = 215] = "ThunderDragon";
      mtfBFishNo[mtfBFishNo["NightBeast"] = 300] = "NightBeast";
      mtfBFishNo[mtfBFishNo["ScreamingTiger"] = 301] = "ScreamingTiger";
      mtfBFishNo[mtfBFishNo["KingCrab"] = 303] = "KingCrab";
      mtfBFishNo[mtfBFishNo["KingSquid"] = 305] = "KingSquid";
      mtfBFishNo[mtfBFishNo["FireDragon"] = 309] = "FireDragon";
      mtfBFishNo[mtfBFishNo["IceDragon"] = 310] = "IceDragon";
      mtfBFishNo[mtfBFishNo["KingOctopus"] = 312] = "KingOctopus";
      mtfBFishNo[mtfBFishNo["GoldenClownFish"] = 320] = "GoldenClownFish";
      mtfBFishNo[mtfBFishNo["GoldenDishFish"] = 321] = "GoldenDishFish";
      mtfBFishNo[mtfBFishNo["GoldenPuffer"] = 322] = "GoldenPuffer";
      mtfBFishNo[mtfBFishNo["GoldenShark"] = 323] = "GoldenShark";
      mtfBFishNo[mtfBFishNo["GoldenWhale"] = 324] = "GoldenWhale";
      mtfBFishNo[mtfBFishNo["LanternFestival"] = 325] = "LanternFestival";
      mtfBFishNo[mtfBFishNo["ClownFishLearner"] = 326] = "ClownFishLearner";
      mtfBFishNo[mtfBFishNo["GoldenToad"] = 327] = "GoldenToad";
      mtfBFishNo[mtfBFishNo["GodOfWealth"] = 330] = "GodOfWealth";
      mtfBFishNo[mtfBFishNo["Pegasus"] = 331] = "Pegasus";
      mtfBFishNo[mtfBFishNo["NianMonster"] = 332] = "NianMonster";
      mtfBFishNo[mtfBFishNo["BlackDragon"] = 333] = "BlackDragon";
      mtfBFishNo[mtfBFishNo["GodArrived"] = 335] = "GodArrived";
      mtfBFishNo[mtfBFishNo["BisonComing"] = 336] = "BisonComing";
      mtfBFishNo[mtfBFishNo["Pumpkin"] = 337] = "Pumpkin";
      mtfBFishNo[mtfBFishNo["CombinedFish1"] = 350] = "CombinedFish1";
      mtfBFishNo[mtfBFishNo["CombinedFish2"] = 351] = "CombinedFish2";
      mtfBFishNo[mtfBFishNo["CombinedFish3"] = 352] = "CombinedFish3";
      mtfBFishNo[mtfBFishNo["CombinedFish4"] = 353] = "CombinedFish4";
      mtfBFishNo[mtfBFishNo["CombinedFish5"] = 354] = "CombinedFish5";
      mtfBFishNo[mtfBFishNo["CombinedFish6"] = 355] = "CombinedFish6";
      mtfBFishNo[mtfBFishNo["CombinedFish7"] = 356] = "CombinedFish7";
    })(mtfBFishNo = exports.mtfBFishNo || (exports.mtfBFishNo = {}));
    var eFishNo;
    (function(eFishNo) {
      eFishNo[eFishNo["None"] = 0] = "None";
      eFishNo[eFishNo["Greenfish"] = 1] = "Greenfish";
      eFishNo[eFishNo["Clownfish"] = 2] = "Clownfish";
      eFishNo[eFishNo["Godfish"] = 3] = "Godfish";
      eFishNo[eFishNo["Flatfish"] = 4] = "Flatfish";
      eFishNo[eFishNo["Blowfish"] = 5] = "Blowfish";
      eFishNo[eFishNo["SeaTurtle"] = 6] = "SeaTurtle";
      eFishNo[eFishNo["Jellyfish"] = 7] = "Jellyfish";
      eFishNo[eFishNo["Lionfish"] = 8] = "Lionfish";
      eFishNo[eFishNo["Lobster"] = 9] = "Lobster";
      eFishNo[eFishNo["Octopus"] = 10] = "Octopus";
      eFishNo[eFishNo["Swordfish"] = 11] = "Swordfish";
      eFishNo[eFishNo["Manta"] = 12] = "Manta";
      eFishNo[eFishNo["Taroshark"] = 13] = "Taroshark";
      eFishNo[eFishNo["GoldGodfish"] = 14] = "GoldGodfish";
      eFishNo[eFishNo["GoldClownfish"] = 15] = "GoldClownfish";
      eFishNo[eFishNo["GoldManta"] = 16] = "GoldManta";
      eFishNo[eFishNo["Armourfish"] = 20] = "Armourfish";
      eFishNo[eFishNo["Lanternfish"] = 21] = "Lanternfish";
      eFishNo[eFishNo["GoldTurtle"] = 22] = "GoldTurtle";
      eFishNo[eFishNo["ElectricShark"] = 25] = "ElectricShark";
      eFishNo[eFishNo["BombsCrab"] = 26] = "BombsCrab";
      eFishNo[eFishNo["Anemone"] = 27] = "Anemone";
      eFishNo[eFishNo["Phoenix"] = 28] = "Phoenix";
      eFishNo[eFishNo["Pumpkin"] = 29] = "Pumpkin";
      eFishNo[eFishNo["BossSquid"] = 30] = "BossSquid";
      eFishNo[eFishNo["BossShark"] = 31] = "BossShark";
      eFishNo[eFishNo["Cornucopia_1"] = 32] = "Cornucopia_1";
      eFishNo[eFishNo["Cornucopia_2"] = 33] = "Cornucopia_2";
      eFishNo[eFishNo["JPFish"] = 35] = "JPFish";
      eFishNo[eFishNo["JPDragon"] = 36] = "JPDragon";
      eFishNo[eFishNo["BossPickup"] = 37] = "BossPickup";
      eFishNo[eFishNo["BossPickup_MC"] = 38] = "BossPickup_MC";
      eFishNo[eFishNo["BossLuckyBag"] = 39] = "BossLuckyBag";
      eFishNo[eFishNo["BossPenguin"] = 40] = "BossPenguin";
      eFishNo[eFishNo["BossDragonBoat"] = 41] = "BossDragonBoat";
      eFishNo[eFishNo["BossRabbit"] = 42] = "BossRabbit";
      eFishNo[eFishNo["BossSoccer"] = 43] = "BossSoccer";
    })(eFishNo = exports.eFishNo || (exports.eFishNo = {}));
    var eFishKind;
    (function(eFishKind) {
      eFishKind[eFishKind["None"] = 0] = "None";
      eFishKind[eFishKind["GodArrived"] = 1] = "GodArrived";
      eFishKind[eFishKind["GoldGodfish"] = 14] = "GoldGodfish";
      eFishKind[eFishKind["GoldClownfish"] = 15] = "GoldClownfish";
      eFishKind[eFishKind["GoldManta"] = 16] = "GoldManta";
      eFishKind[eFishKind["ElectricShark"] = 25] = "ElectricShark";
      eFishKind[eFishKind["BombCrab"] = 26] = "BombCrab";
      eFishKind[eFishKind["Anemone"] = 27] = "Anemone";
      eFishKind[eFishKind["Pumpkin"] = 29] = "Pumpkin";
      eFishKind[eFishKind["MultiBombCrab"] = 44] = "MultiBombCrab";
      eFishKind[eFishKind["WheelDragon"] = 45] = "WheelDragon";
      eFishKind[eFishKind["DinghyBomb"] = 46] = "DinghyBomb";
      eFishKind[eFishKind["DrillCrab"] = 47] = "DrillCrab";
      eFishKind[eFishKind["NightBeast"] = 48] = "NightBeast";
      eFishKind[eFishKind["SimpleShake"] = 49] = "SimpleShake";
      eFishKind[eFishKind["KingOctopus"] = 50] = "KingOctopus";
      eFishKind[eFishKind["UncleCat"] = 51] = "UncleCat";
      eFishKind[eFishKind["ThunderDragon"] = 52] = "ThunderDragon";
      eFishKind[eFishKind["FlamePhoenix"] = 53] = "FlamePhoenix";
      eFishKind[eFishKind["Mermaid"] = 54] = "Mermaid";
      eFishKind[eFishKind["BisonComing"] = 55] = "BisonComing";
      eFishKind[eFishKind["GoldenToad"] = 56] = "GoldenToad";
      eFishKind[eFishKind["WakeupKingCrab"] = 57] = "WakeupKingCrab";
      eFishKind[eFishKind["AwakenNightBeast"] = 58] = "AwakenNightBeast";
      eFishKind[eFishKind["WakeupKingOctopus"] = 59] = "WakeupKingOctopus";
      eFishKind[eFishKind["AwakenGiantCrocodile"] = 60] = "AwakenGiantCrocodile";
    })(eFishKind = exports.eFishKind || (exports.eFishKind = {}));
    var eFishMedal;
    (function(eFishMedal) {
      eFishMedal[eFishMedal["None"] = 0] = "None";
      eFishMedal[eFishMedal["Medal_1"] = 1] = "Medal_1";
      eFishMedal[eFishMedal["JpMedal"] = 2] = "JpMedal";
      eFishMedal[eFishMedal["Redenvelope"] = 3] = "Redenvelope";
      eFishMedal[eFishMedal["GoldGodfish"] = 14] = "GoldGodfish";
      eFishMedal[eFishMedal["GoldClownfish"] = 15] = "GoldClownfish";
      eFishMedal[eFishMedal["GoldManta"] = 16] = "GoldManta";
      eFishMedal[eFishMedal["Armourfish"] = 20] = "Armourfish";
      eFishMedal[eFishMedal["Lanternfish"] = 21] = "Lanternfish";
      eFishMedal[eFishMedal["GoldTurtle"] = 22] = "GoldTurtle";
      eFishMedal[eFishMedal["ElectricShark"] = 25] = "ElectricShark";
      eFishMedal[eFishMedal["BombsCrab"] = 26] = "BombsCrab";
      eFishMedal[eFishMedal["Anemone"] = 27] = "Anemone";
      eFishMedal[eFishMedal["Phoenix"] = 28] = "Phoenix";
      eFishMedal[eFishMedal["Pumpkin"] = 29] = "Pumpkin";
      eFishMedal[eFishMedal["BossSquid"] = 30] = "BossSquid";
      eFishMedal[eFishMedal["BossShark"] = 31] = "BossShark";
      eFishMedal[eFishMedal["Cornucopia_1"] = 32] = "Cornucopia_1";
      eFishMedal[eFishMedal["Cornucopia_2"] = 33] = "Cornucopia_2";
      eFishMedal[eFishMedal["JPFish"] = 35] = "JPFish";
      eFishMedal[eFishMedal["JPDragon"] = 36] = "JPDragon";
      eFishMedal[eFishMedal["Retain"] = 40] = "Retain";
      eFishMedal[eFishMedal["Item_Light"] = 41] = "Item_Light";
      eFishMedal[eFishMedal["BossPickup"] = 42] = "BossPickup";
      eFishMedal[eFishMedal["BossPickup_MC"] = 43] = "BossPickup_MC";
      eFishMedal[eFishMedal["BossLuckyBag"] = 44] = "BossLuckyBag";
      eFishMedal[eFishMedal["BossPenguin"] = 45] = "BossPenguin";
      eFishMedal[eFishMedal["BossDragonBoat"] = 46] = "BossDragonBoat";
      eFishMedal[eFishMedal["BossRabbit"] = 47] = "BossRabbit";
      eFishMedal[eFishMedal["BossSoccer"] = 48] = "BossSoccer";
    })(eFishMedal = exports.eFishMedal || (exports.eFishMedal = {}));
    var mtfFishEvent;
    (function(mtfFishEvent) {
      mtfFishEvent[mtfFishEvent["None"] = 0] = "None";
      mtfFishEvent[mtfFishEvent["SetFishAttackable"] = 3] = "SetFishAttackable";
      mtfFishEvent[mtfFishEvent["SetFishNonAttackable"] = 4] = "SetFishNonAttackable";
      mtfFishEvent[mtfFishEvent["ScreamingTigerStartVortex"] = 1e3] = "ScreamingTigerStartVortex";
      mtfFishEvent[mtfFishEvent["ScreamingTigerEndVortex"] = 1001] = "ScreamingTigerEndVortex";
      mtfFishEvent[mtfFishEvent["ScreenShake"] = 1100] = "ScreenShake";
      mtfFishEvent[mtfFishEvent["PlayBuffaloMove"] = 1200] = "PlayBuffaloMove";
    })(mtfFishEvent = exports.mtfFishEvent || (exports.mtfFishEvent = {}));
    function preloadFishNum(fishNo) {
      switch (fishNo) {
       case mtfBFishNo.GhanaFish:
       case mtfBFishNo.ClownFish:
       case mtfBFishNo.DishFish:
       case mtfBFishNo.Puffer:
       case mtfBFishNo.LionFish:
       case mtfBFishNo.OtterFish:
       case mtfBFishNo.Lobster:
       case mtfBFishNo.SailFish:
       case mtfBFishNo.JellyFish:
       case mtfBFishNo.OctopusFish:
       case mtfBFishNo.LanternFish:
       case mtfBFishNo.Tortoise:
       case mtfBFishNo.SawtoothShark:
       case mtfBFishNo.MantaRay:
        return 8;

       case mtfBFishNo.GiantClownFish:
       case mtfBFishNo.GiantDishFish:
       case mtfBFishNo.Shark:
       case mtfBFishNo.Whale:
       case mtfBFishNo.GiantPuffer:
        return 3;

       case mtfBFishNo.Cycle_GhanaFish:
       case mtfBFishNo.Cycle_ClownFish:
       case mtfBFishNo.Cycle_DishFish:
       case mtfBFishNo.Cycle_Puffer:
       case mtfBFishNo.Cycle_LionFish:
       case mtfBFishNo.Cycle_OtterFish:
       case mtfBFishNo.Cycle_Lobster:
       case mtfBFishNo.Cycle_SailFish:
       case mtfBFishNo.Cycle_JellyFish:
       case mtfBFishNo.Cycle_OctopusFish:
       case mtfBFishNo.Cycle_LanternFish:
       case mtfBFishNo.Cycle_Tortoise:
       case mtfBFishNo.Cycle_SawtoothShark:
        return 3;

       case mtfBFishNo.LightningShark:
        return 1;

       case mtfBFishNo.GoldenClownFish:
       case mtfBFishNo.GoldenDishFish:
       case mtfBFishNo.GoldenPuffer:
       case mtfBFishNo.GoldenShark:
       case mtfBFishNo.GoldenToad:
       case mtfBFishNo.GoldenWhale:
        return 3;

       case mtfBFishNo.BombCrab:
       case mtfBFishNo.MultipleBombCrab:
        return 1;

       case mtfBFishNo.DrillCrab:
       case mtfBFishNo.FlamesStorm:
        return 1;

       case mtfBFishNo.WheelsOfGodDragon:
       case mtfBFishNo.UncleCat:
       case mtfBFishNo.FlamingPhoenix:
       case mtfBFishNo.AmethystMermaid:
       case mtfBFishNo.GreenMermaid:
       case mtfBFishNo.AwakenNightBeast:
       case mtfBFishNo.AwakenGiantCrocodile:
       case mtfBFishNo.ThunderDragon:
       case mtfBFishNo.NightBeast:
       case mtfBFishNo.ScreamingTiger:
       case mtfBFishNo.KingSquid:
       case mtfBFishNo.FireDragon:
       case mtfBFishNo.IceDragon:
       case mtfBFishNo.GodArrived:
       case mtfBFishNo.GodOfWealth:
       case mtfBFishNo.Pegasus:
       case mtfBFishNo.NianMonster:
       case mtfBFishNo.BlackDragon:
       case mtfBFishNo.BisonComing:
       case mtfBFishNo.LanternFestival:
       case mtfBFishNo.Pumpkin:
       case mtfBFishNo.BombSpeedBoat:
       case mtfBFishNo.ClownFishLearner:
        return 1;

       case mtfBFishNo.KingCrab:
       case mtfBFishNo.WakeupKingCrab:
        return 2;

       case mtfBFishNo.WakeupKingOctopus:
       case mtfBFishNo.KingOctopus:
        return 3;

       case mtfBFishNo.CombinedFish1:
       case mtfBFishNo.CombinedFish2:
       case mtfBFishNo.CombinedFish3:
       case mtfBFishNo.CombinedFish4:
       case mtfBFishNo.CombinedFish5:
       case mtfBFishNo.CombinedFish6:
       case mtfBFishNo.CombinedFish7:
       default:
        return 1;
      }
    }
    exports.preloadFishNum = preloadFishNum;
    function poolMaxFishNum(fishNo) {
      switch (fishNo) {
       case mtfBFishNo.GhanaFish:
       case mtfBFishNo.ClownFish:
       case mtfBFishNo.DishFish:
       case mtfBFishNo.Puffer:
       case mtfBFishNo.LionFish:
       case mtfBFishNo.OtterFish:
       case mtfBFishNo.Lobster:
       case mtfBFishNo.SailFish:
       case mtfBFishNo.JellyFish:
       case mtfBFishNo.OctopusFish:
       case mtfBFishNo.LanternFish:
       case mtfBFishNo.Tortoise:
       case mtfBFishNo.SawtoothShark:
       case mtfBFishNo.MantaRay:
        return 32;

       case mtfBFishNo.GiantClownFish:
       case mtfBFishNo.GiantDishFish:
       case mtfBFishNo.Shark:
       case mtfBFishNo.Whale:
       case mtfBFishNo.GiantPuffer:
        return 8;

       case mtfBFishNo.Cycle_GhanaFish:
       case mtfBFishNo.Cycle_ClownFish:
       case mtfBFishNo.Cycle_DishFish:
       case mtfBFishNo.Cycle_Puffer:
       case mtfBFishNo.Cycle_LionFish:
       case mtfBFishNo.Cycle_OtterFish:
       case mtfBFishNo.Cycle_Lobster:
       case mtfBFishNo.Cycle_SailFish:
       case mtfBFishNo.Cycle_JellyFish:
       case mtfBFishNo.Cycle_OctopusFish:
       case mtfBFishNo.Cycle_LanternFish:
       case mtfBFishNo.Cycle_Tortoise:
       case mtfBFishNo.Cycle_SawtoothShark:
        return 12;

       case mtfBFishNo.LightningShark:
        return 3;

       case mtfBFishNo.GoldenClownFish:
       case mtfBFishNo.GoldenDishFish:
       case mtfBFishNo.GoldenPuffer:
       case mtfBFishNo.GoldenShark:
       case mtfBFishNo.GoldenToad:
       case mtfBFishNo.GoldenWhale:
        return 12;

       case mtfBFishNo.BombCrab:
       case mtfBFishNo.MultipleBombCrab:
        return 3;

       case mtfBFishNo.DrillCrab:
       case mtfBFishNo.FlamesStorm:
        return 3;

       case mtfBFishNo.WheelsOfGodDragon:
       case mtfBFishNo.UncleCat:
       case mtfBFishNo.FlamingPhoenix:
       case mtfBFishNo.AmethystMermaid:
       case mtfBFishNo.GreenMermaid:
       case mtfBFishNo.AwakenNightBeast:
       case mtfBFishNo.AwakenGiantCrocodile:
       case mtfBFishNo.ThunderDragon:
       case mtfBFishNo.NightBeast:
       case mtfBFishNo.ScreamingTiger:
       case mtfBFishNo.KingSquid:
       case mtfBFishNo.FireDragon:
       case mtfBFishNo.IceDragon:
       case mtfBFishNo.GodArrived:
       case mtfBFishNo.GodOfWealth:
       case mtfBFishNo.Pegasus:
       case mtfBFishNo.NianMonster:
       case mtfBFishNo.BlackDragon:
       case mtfBFishNo.BisonComing:
       case mtfBFishNo.LanternFestival:
       case mtfBFishNo.Pumpkin:
       case mtfBFishNo.BombSpeedBoat:
       case mtfBFishNo.ClownFishLearner:
        return 1;

       case mtfBFishNo.KingCrab:
       case mtfBFishNo.WakeupKingCrab:
        return 2;

       case mtfBFishNo.WakeupKingOctopus:
       case mtfBFishNo.KingOctopus:
        return 3;

       case mtfBFishNo.CombinedFish1:
       case mtfBFishNo.CombinedFish2:
       case mtfBFishNo.CombinedFish3:
       case mtfBFishNo.CombinedFish4:
       case mtfBFishNo.CombinedFish5:
       case mtfBFishNo.CombinedFish6:
       case mtfBFishNo.CombinedFish7:
        return 6;

       default:
        return 1;
      }
    }
    exports.poolMaxFishNum = poolMaxFishNum;
    function getFishOverrideChildIds(fishNo, childId) {
      return childId;
    }
    exports.getFishOverrideChildIds = getFishOverrideChildIds;
    function isFishHaveAdditionalSprites(fishNo) {
      return false;
    }
    exports.isFishHaveAdditionalSprites = isFishHaveAdditionalSprites;
    function isFishMultiFish(fishNo) {
      return false;
    }
    exports.isFishMultiFish = isFishMultiFish;
    function preloadBulletNum(...args) {
      return 8;
    }
    exports.preloadBulletNum = preloadBulletNum;
    function preloadCoinNum(...args) {
      return 8;
    }
    exports.preloadCoinNum = preloadCoinNum;
    function poolMaxCoinNum(...args) {
      return 24;
    }
    exports.poolMaxCoinNum = poolMaxCoinNum;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-GoldPillar": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "bdb96Du9BhGeJXM04Ci8dfZ", "MT3SETB-GoldPillar");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
      function adopt(value) {
        return value instanceof P ? value : new P(function(resolve) {
          resolve(value);
        });
      }
      return new (P || (P = Promise))(function(resolve, reject) {
        function fulfilled(value) {
          try {
            step(generator.next(value));
          } catch (e) {
            reject(e);
          }
        }
        function rejected(value) {
          try {
            step(generator["throw"](value));
          } catch (e) {
            reject(e);
          }
        }
        function step(result) {
          result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
        }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
      });
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.GoldPillar = void 0;
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let GoldPillar = class GoldPillar extends cc.Component {
      constructor() {
        super(...arguments);
        this.aniNode = null;
        this.txtLabel = null;
        this.stackNode = null;
        this.bgcRoot = null;
        this._orgStackHeight = 0;
      }
      execAni(odds, gold, startPoint, startX) {
        return __awaiter(this, void 0, void 0, function*() {
          let lengthValue = Math.min(odds, 19.5) / 64;
          let lengthTime = 30 * Math.min(odds, 30) / 1e3;
          0 == this._orgStackHeight && (this._orgStackHeight = this.stackNode.height);
          this.txtLabel.string = MT3SETB_Comm_1.Comm.toDecimal(gold);
          this.node.position = new cc.Vec3(startX, 0);
          this.txtLabel.node.active = false;
          this.aniNode.opacity = 255;
          let scaleY = lengthValue;
          this.stackNode.height = .01;
          this.bgcRoot.active = false;
          yield new Promise(resolve => {
            cc.tween(this.stackNode).to(lengthTime, {
              height: this._orgStackHeight * scaleY
            }).call(() => {
              this.bgcRoot.active = true;
              this.bgcRoot.position = new cc.Vec3(0, this.stackNode.height);
              this.txtLabel.node.active = true;
              resolve();
            }).start();
          });
          startX != startPoint && (yield new Promise(resolve => {
            cc.tween(this.node).to(.5, {
              position: cc.v3(startPoint, 0, 0)
            }).call(() => resolve()).start();
          }));
          yield new Promise(resolve => {
            cc.tween(this.aniNode).delay(.3).to(.7, {
              opacity: 0
            }, {
              easing: "sineOutIn"
            }).call(() => resolve()).start();
          });
          this.node.position = cc.Vec3.ZERO;
        });
      }
    };
    __decorate([ property(cc.Node) ], GoldPillar.prototype, "aniNode", void 0);
    __decorate([ property(cc.Label) ], GoldPillar.prototype, "txtLabel", void 0);
    __decorate([ property(cc.Node) ], GoldPillar.prototype, "stackNode", void 0);
    __decorate([ property(cc.Node) ], GoldPillar.prototype, "bgcRoot", void 0);
    GoldPillar = __decorate([ ccclass ], GoldPillar);
    exports.GoldPillar = GoldPillar;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-GoldenToad": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "b81446xbRNFII2v5S7lcC8g", "MT3SETB-GoldenToad");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const ANIM_LIST = {
      0: "SWIM",
      1: "CATCH",
      2: "INTO"
    };
    let GoldenToad = class GoldenToad extends MT3SETB_Fish_1.Fish {
      constructor() {
        super(...arguments);
        this.currAnimIndex = -1;
      }
      onLoad() {
        super.onLoad();
        this.node.on(MT3SETB_Fish_1.Fish.ActionEventChanged, this.onToadActionEventChanged.bind(this));
      }
      onToadActionEventChanged(event, oldEvent) {
        if (!event) return;
        if (this.currAnimIndex != event.animIndex) {
          this.playSplineAnimation(ANIM_LIST[event.animIndex]);
          this.currAnimIndex = event.animIndex;
        }
      }
      postInit() {
        super.postInit();
        let animIndex = this.fishMoveAction.events[0].animIndex;
        this.playSplineAnimation(ANIM_LIST[animIndex]);
        this.currAnimIndex = animIndex;
      }
      playSplineAnimation(animName) {
        for (var r = 0, c = this.spineAnims; r < c.length; r++) {
          var d = c[r];
          d.timeScale = 1;
          d.paused = false;
          d.setAnimation(0, animName, true);
        }
      }
    };
    GoldenToad = __decorate([ ccclass ], GoldenToad);
    exports.default = GoldenToad;
    cc._RF.pop();
  }, {
    "./MT3SETB-Fish": "MT3SETB-Fish"
  } ],
  "MT3SETB-HaiWangLaiXi": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d416fZXjedPL4bMrlYq7Ifs", "MT3SETB-HaiWangLaiXi");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.HaiWangLaiXi = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_BossComing_1 = require("./MT3SETB-BossComing");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let HaiWangLaiXi = class HaiWangLaiXi extends MT3SETB_BossComing_1.BossComing {
      constructor() {
        super(...arguments);
        this.effect = null;
        this.bossSprite = null;
        this.tips1Sprite = null;
        this.tips2Sprite = null;
        this.tips3Sprite = null;
        this.textOdds = null;
        this.bossAtlas = null;
        this.tipsAtlas = null;
      }
      init() {
        this.node.setPosition(cc.Vec2.ZERO);
        this.node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
      }
      setSprites(bossSprite, tipsSprite) {
        this.bossSprite.spriteFrame = this.bossAtlas.getSpriteFrame(bossSprite);
        this.tips2Sprite.spriteFrame = this.tipsAtlas.getSpriteFrame(tipsSprite);
      }
      setShowInfo(e, t) {
        this.textOdds.string = e.ratio;
        switch (e.fishType) {
         case 300:
          this.setSprites("texiao_anyejushou_big", "texiao_anyejushou_ziti");
          break;

         case 308:
          this.setSprites("texiao_shiqianjue_big", "texiao_shiqianjueziti");
          break;

         case 303:
          this.setSprites("texiao_pangxie_big", "texiao_bawangxieziti");
          break;

         case 312:
          this.setSprites("texiao_bazhuazhangyu_big", "texiao_bazhuazhangyu_ziti");
          break;

         case 212:
          this.setSprites("texiao_juexing_anyejushou", "texiao_anyejushou_ziti");
          break;

         case 213:
          this.setSprites("texiao_juexing_shiqianjue", "texiao_shiqianjueziti");
          break;

         case 211:
          this.setSprites("texiao_juexing_pangxie", "texiao_bawangxieziti");
          break;

         case 214:
          this.setSprites("texiao_juexing_zhangyu", "texiao_bazhuazhangyu_ziti");
        }
      }
      checkShow(e) {}
      play(bossComingData) {
        var me = this;
        this.checkShow(true);
        this.setShowInfo(bossComingData, true);
        this.node.active = true;
        this.effect.node.active = true;
        var trackEntry = this.effect.setAnimation(0, "haiwanglaixi_anyejushou", false);
        this.effect.setTrackCompleteListener(trackEntry, function() {
          me.node.destroy();
          me.node.active = false;
          me.effect.node.active = false;
        });
      }
    };
    __decorate([ property(sp.Skeleton) ], HaiWangLaiXi.prototype, "effect", void 0);
    __decorate([ property(cc.Sprite) ], HaiWangLaiXi.prototype, "bossSprite", void 0);
    __decorate([ property(cc.Sprite) ], HaiWangLaiXi.prototype, "tips1Sprite", void 0);
    __decorate([ property(cc.Sprite) ], HaiWangLaiXi.prototype, "tips2Sprite", void 0);
    __decorate([ property(cc.Sprite) ], HaiWangLaiXi.prototype, "tips3Sprite", void 0);
    __decorate([ property(cc.Label) ], HaiWangLaiXi.prototype, "textOdds", void 0);
    __decorate([ property(cc.SpriteAtlas) ], HaiWangLaiXi.prototype, "bossAtlas", void 0);
    __decorate([ property(cc.SpriteAtlas) ], HaiWangLaiXi.prototype, "tipsAtlas", void 0);
    HaiWangLaiXi = __decorate([ ccclass ], HaiWangLaiXi);
    exports.HaiWangLaiXi = HaiWangLaiXi;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-BossComing": "MT3SETB-BossComing"
  } ],
  "MT3SETB-IMoveModule": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "1770ckDQZZB9J3NM8EDzUnL", "MT3SETB-IMoveModule");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Waypoint = exports.Path = void 0;
    class Path {}
    exports.Path = Path;
    class Waypoint {}
    exports.Waypoint = Waypoint;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-IdleToast": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d96272y+axMNJkydN9xEA72", "MT3SETB-IdleToast");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.IdleToast = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Toast_1 = require("./MT3SETB-Toast");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let IdleToast = class IdleToast extends MT3SETB_Toast_1.Toast {
      onLoad() {
        MT3SETB_Comm_1.Comm.idleToast = this;
      }
    };
    IdleToast = __decorate([ ccclass ], IdleToast);
    exports.IdleToast = IdleToast;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-Toast": "MT3SETB-Toast"
  } ],
  "MT3SETB-IframeCommandManager": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "539baZHAT9KXaGPsSeepWuT", "MT3SETB-IframeCommandManager");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.iframeCommandManager = void 0;
    var n = {
      StopAutoplay: "stopAutoplay"
    }, i = "CloseWebView";
    class IframeCommandManager {
      constructor() {
        var e = this;
        this.m_iframeCommandCbs = [];
        this.m_idx = 0;
        cc.sys.isNative || window.addEventListener("message", function(t) {
          var o, a, r, s;
          if (t.data == i) for (var c = 0; c < e.m_iframeCommandCbs.length; c++) null === (a = null === (o = e.m_iframeCommandCbs[c]) || void 0 === o ? void 0 : o.CloseWebView) || void 0 === a || a.call(o, t.origin); else {
            var l = t.data;
            if (l.name) switch (l.name) {
             case n.StopAutoplay:
              for (c = 0; c < e.m_iframeCommandCbs.length; c++) null === (s = null === (r = e.m_iframeCommandCbs[c]) || void 0 === r ? void 0 : r.StopAutoCb) || void 0 === s || s.call(r);
            }
          }
        }, false);
      }
      AddCb(e) {
        this.m_idx++;
        e.Idx = this.m_idx;
        this.m_iframeCommandCbs.push(e);
        return this.m_idx;
      }
      DelCb(e) {
        if (e && !(e <= 0)) {
          var t = this.m_iframeCommandCbs.findIndex(function(t) {
            return t.Idx == e;
          });
          t >= 0 && this.m_iframeCommandCbs.splice(t, 1);
        }
      }
    }
    exports.iframeCommandManager = new IframeCommandManager();
    cc._RF.pop();
  }, {} ],
  "MT3SETB-InGamePanelLS": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "519e3CpGpJM7Jt772N1GfyN", "MT3SETB-InGamePanelLS");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const {ccclass: ccclass, property: property} = cc._decorator;
    const MT3SETB_LangFishImg_1 = require("./MT3SETB-LangFishImg");
    const SHOW_ANIM = "panel_in_anim";
    const HIDE_ANIM = "panel_out_anim";
    let InGamePanelLS = class InGamePanelLS extends cc.Component {
      constructor() {
        super(...arguments);
        this.panelAnimation = null;
        this.hasRefreshLocale = false;
      }
      show() {
        this.panelAnimation.play(SHOW_ANIM);
        if (!this.hasRefreshLocale) {
          var localeComponents = this.getComponentsInChildren(MT3SETB_LangFishImg_1.LangFishImg);
          localeComponents.forEach(function(e) {
            e.refreshImg();
          });
          this.hasRefreshLocale = true;
        }
      }
      onClickBacking() {
        this.panelAnimation.play(HIDE_ANIM);
      }
    };
    __decorate([ property(cc.Animation) ], InGamePanelLS.prototype, "panelAnimation", void 0);
    InGamePanelLS = __decorate([ ccclass ], InGamePanelLS);
    exports.default = InGamePanelLS;
    cc._RF.pop();
  }, {
    "./MT3SETB-LangFishImg": "MT3SETB-LangFishImg"
  } ],
  "MT3SETB-ItemBombShow": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ebecczF+rNARJkznK5kVF/m", "MT3SETB-ItemBombShow");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ItemBombShow = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let ItemBombShow = class ItemBombShow extends cc.Component {
      constructor() {
        super();
        this.coin = null;
        this.moveNode = [];
        this.sprNode = null;
        this.nameNode = null;
        this.starNode = [];
        this.curr = 0;
        this.next = 0;
        this.delta = 0;
        this.bLoopEnd = false;
        this.task = null;
        this.pointCnt = 0;
      }
      init(e, t) {
        var o = this.node.getComponent(cc.Animation);
        o && o.play("GameCardReward_in");
        this.next = e;
        this.delta = e / 2;
        this.pointCnt = this.next.toString().split(".")[1] ? this.next.toString().split(".")[1].length : 0;
        var i = MT3SETB_Comm_1.Comm.app.getItemData();
        for (var r = i[t].star, s = 0; s < this.starNode.length; ++s) this.starNode[s].active = s < r;
      }
      update(e) {
        if (this.next > this.curr) {
          this.curr += this.delta * e;
          this.curr >= this.next && (this.curr = this.next, this.bLoopEnd = true, this.delta = 0);
          this.coin.string = MT3SETB_Comm_1.Comm.getThousandsNum(parseFloat(this.curr.toFixed(this.pointCnt)));
        }
      }
      playLoop() {
        var e = this.node.getComponent(cc.Animation);
        e && e.play("GameCardReward_loop");
      }
      playEnd() {
        var e = this;
        if (!this.task) {
          var t = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
          if (t) {
            var o = t.getRewardPosNode();
            if (o) for (var i = o.getPosition(), a = 0; a < this.moveNode.length; ++a) cc.tween(this.moveNode[a]).to(.15, {
              position: i,
              scale: .6
            }).delay(1).call(function() {
              var t = e.node.getComponent(cc.Animation);
              t && t.play("GameCardReward_out");
            }).start();
          }
        }
      }
      playBig() {}
      clear() {
        this.node.destroy();
      }
    };
    __decorate([ property(cc.Label) ], ItemBombShow.prototype, "coin", void 0);
    __decorate([ property(cc.Node) ], ItemBombShow.prototype, "moveNode", void 0);
    __decorate([ property({
      type: cc.Sprite,
      tooltip: "\u9053\u5177\u5716\u7247"
    }) ], ItemBombShow.prototype, "sprNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u9053\u5177\u540d\u7a31"
    }) ], ItemBombShow.prototype, "nameNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u661f\u6578\u7bc0\u9ede"
    }) ], ItemBombShow.prototype, "starNode", void 0);
    ItemBombShow = __decorate([ ccclass ], ItemBombShow);
    exports.ItemBombShow = ItemBombShow;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-JPListUI": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "16286tDC4BP+oOWlLwl/sHc", "MT3SETB-JPListUI");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.JPListUI = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_ui_1 = require("../common/api/MT3SETB-ui");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let JPListUI = class JPListUI extends cc.Component {
      constructor() {
        super();
        this.pagePrefab = null;
        this.pageLayout = null;
        this.pageLabel = null;
        this.delayCloseTask = null;
        this.totalPages = 1;
        this.pages = [];
      }
      onLoad() {
        var e = this;
        MT3SETB_Comm_1.Comm.jpListUI = this;
        this.pageLayout = this.node.getChildByName("Root").getChildByName("GameRulesView").getChildByName("View").getChildByName("content");
        this.node.getChildByName("Root").getChildByName("GameRulesView").on("page-turning", function(t) {
          e.pageLabel.string = cc.misc.clampf(t.getCurrentPageIndex() + 1, 1, e.totalPages).toString() + "/" + e.totalPages.toString();
          if (e.delayCloseTask) {
            MT3SETB_Comm_1.Comm.delTask(e.delayCloseTask);
            e.delayCloseTask = null;
          }
        });
        this.pageLabel.string = "1/" + this.totalPages.toString();
      }
      show() {
        this.updateData();
        this.node.getChildByName("Root").active = true;
        this.node.getChildByName("Root").getChildByName("GameRulesView").getComponent(cc.PageView).scrollToPage(0, .5);
      }
      close() {
        var e = this;
        MT3SETB_ui_1.CloseUIByOrder(MT3SETB_ui_1.UIType.JpList, function() {
          e.node.getChildByName("Root").active = false;
          if (e.delayCloseTask) {
            MT3SETB_Comm_1.Comm.delTask(e.delayCloseTask);
            e.delayCloseTask = null;
          }
        });
      }
      updateData() {
        MT3SETB_Comm_1.Comm.gameMgr.getJpDetail();
      }
      updateUI(e) {
        for (var t = this, o = 0; o < e.list.length; o++) {
          var a = Math.floor(o / 6);
          this.pages[a] || this.createOnePage();
          var r = this.pages[a].getChildByName("PlayerNode_0" + o % 6), s = e.list[o].name == MT3SETB_Comm_1.Comm.app.getPlayer().name ? e.list[o].name : MT3SETB_Comm_1.Comm.hideName(e.list[o].name);
          r.getChildByName("Day").getComponent(cc.Label).string = new Date(1e3 * (e.list[o].create.toNumber() - 28800)).toLocaleDateString(void 0, {
            month: "numeric",
            day: "numeric"
          });
          r.getChildByName("Bet").getComponent(cc.Label).string = e.list[o].bet.toString();
          r.getChildByName("Player").getComponent(cc.Label).string = s;
          r.getChildByName("GetMoney").getComponent(cc.Label).string = MT3SETB_Comm_1.Comm.getThousandsNum(e.list[o].win);
          r.getChildByName("Crown").active = e.list[o].bet >= 80;
          r.parent.getChildByName("JPTag").getChildByName("JP2X_0" + o % 6).active = e.list[o].bet >= 10 && e.list[o].bet < 80;
          r.parent.getChildByName("JPTag").getChildByName("JP4X_0" + o % 6).active = e.list[o].bet >= 80;
        }
        this.totalPages = cc.misc.clampf(Math.floor((e.list.length - 1) / 6) + 1, 1, 3);
        this.pageLabel.string = "1/" + this.totalPages.toString();
        MT3SETB_Comm_1.Comm.app.isJPListshowed || MT3SETB_ui_1.ShowUIByOrder(MT3SETB_ui_1.UIType.JpList, function() {
          t.node.getChildByName("Root").active = true;
          MT3SETB_Comm_1.Comm.app.isJPListshowed = true;
        });
      }
      createOnePage() {
        var e = cc.instantiate(this.pagePrefab);
        this.node.getChildByName("Root").getChildByName("GameRulesView").getComponent(cc.PageView).addPage(e);
        this.pages.push(e);
      }
      onRight() {
        var e = this.node.getChildByName("Root").getChildByName("GameRulesView").getComponent(cc.PageView);
        if (e) {
          var t = e.getPages(), o = e.getCurrentPageIndex() + 1;
          t[o] && e.scrollToPage(o, .5);
        }
      }
      onLeft() {
        var e = this.node.getChildByName("Root").getChildByName("GameRulesView").getComponent(cc.PageView);
        if (e) {
          var t = e.getCurrentPageIndex() - 1;
          t >= 0 && e.scrollToPage(t, .5);
        }
      }
      delayClose(e) {
        var t = this;
        this.delayCloseTask = MT3SETB_Comm_1.Comm.runTask(e, function() {
          t.close();
        });
      }
    };
    __decorate([ property(cc.Prefab) ], JPListUI.prototype, "pagePrefab", void 0);
    __decorate([ property(cc.Node) ], JPListUI.prototype, "pageLayout", void 0);
    __decorate([ property(cc.Label) ], JPListUI.prototype, "pageLabel", void 0);
    JPListUI = __decorate([ ccclass ], JPListUI);
    exports.JPListUI = JPListUI;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-ui": "MT3SETB-ui"
  } ],
  "MT3SETB-JoystickCtrl": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "fdcf16fZxdE9In4F2cHIdYy", "MT3SETB-JoystickCtrl");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.JoystickCtrl = void 0;
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let JoystickCtrl = class JoystickCtrl extends cc.Component {
      constructor() {
        super(...arguments);
        this.joystick = null;
        this.knob = null;
        this.range = 120;
        this.startX = 0;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.joystick = this;
      }
      handleJoystickInput(event) {
        let touchPos = this.joystick.convertToNodeSpaceAR(event.getLocation());
        let x = cc.misc.clampf(touchPos.x, -this.range, this.range);
        this.knob.x = x;
        this.knob.scale = 1.1;
        let ratio = -x / this.range;
        let joystickRad = cc.misc.degreesToRadians(90 * ratio);
        let playerTurret = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        const distance = 100;
        let vector = cc.v2(-Math.sin(joystickRad) * distance, Math.cos(joystickRad) * distance);
        let targetPos = playerTurret.pivotPosBL.add(vector);
        if (MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown) {
          targetPos.x = -targetPos.x;
          targetPos.y = -targetPos.y;
        }
        playerTurret.isLockedOn || (MT3SETB_Comm_1.Comm.shootMgr.shootPosFL = targetPos);
        MT3SETB_Comm_1.Comm.shootMgr.isJoystickMode = true;
      }
      resetHandle() {
        let playerTurret = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        playerTurret.isLockedOn || (this.knob.x = this.startX);
        this.knob.scale = 1;
        MT3SETB_Comm_1.Comm.shootMgr.isJoystickMode = false;
      }
      turnJoystickOn() {
        this.joystick.active = true;
        this.knob = this.joystick.getChildByName("knob");
        this.startX = this.knob.x;
        this.registerEvents(this.joystick);
      }
      turnJoystickOff() {
        this.joystick.active = false;
        this.resetHandle();
        this.knob = null;
        this.deregisterEvents(this.joystick);
      }
      registerEvents(joystick) {
        joystick.on(cc.Node.EventType.TOUCH_START, this.handleJoystickInput, this);
        joystick.on(cc.Node.EventType.TOUCH_MOVE, this.handleJoystickInput, this);
        joystick.on(cc.Node.EventType.TOUCH_END, this.resetHandle, this);
        joystick.on(cc.Node.EventType.TOUCH_CANCEL, this.resetHandle, this);
      }
      deregisterEvents(joystick) {
        joystick.off(cc.Node.EventType.TOUCH_START, this.handleJoystickInput, this);
        joystick.off(cc.Node.EventType.TOUCH_MOVE, this.handleJoystickInput, this);
        joystick.off(cc.Node.EventType.TOUCH_END, this.resetHandle, this);
        joystick.off(cc.Node.EventType.TOUCH_CANCEL, this.resetHandle, this);
      }
    };
    __decorate([ property(cc.Node) ], JoystickCtrl.prototype, "joystick", void 0);
    JoystickCtrl = __decorate([ ccclass ], JoystickCtrl);
    exports.JoystickCtrl = JoystickCtrl;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-JueXing": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e752920+cBEUqG8wULfDP/h", "MT3SETB-JueXing");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_BossComing_1 = require("./MT3SETB-BossComing");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let JueXing = class JueXing extends MT3SETB_BossComing_1.BossComing {
      constructor() {
        super(...arguments);
        this.effect = null;
      }
      init() {
        this.node.setPosition(cc.Vec2.ZERO);
        this.node.parent = MT3SETB_Comm_1.Comm.node.noticeLayer;
      }
      play(bossComingData) {
        var me = this;
        this.node.active = true;
        var trackEntry = this.effect.setAnimation(0, "fish_juexing", false);
        this.effect.setTrackCompleteListener(trackEntry, function() {
          me.node.active = false;
          me.effect.node.active = false;
          me.node.destroy();
        });
      }
    };
    __decorate([ property(sp.Skeleton) ], JueXing.prototype, "effect", void 0);
    JueXing = __decorate([ ccclass ], JueXing);
    exports.default = JueXing;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-BossComing": "MT3SETB-BossComing"
  } ],
  "MT3SETB-KingOctopusBackground": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "eea39DkKspKYZ/leFbRy+D4", "MT3SETB-KingOctopusBackground");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const {ccclass: ccclass, property: property} = cc._decorator;
    let KingOctopusBackground = class KingOctopusBackground extends cc.Component {
      constructor() {
        super(...arguments);
        this.octopusSpawnNodes = [];
        this.octopusAnimation = null;
        this.octopusBGSkeleton = null;
        this.octopusRotatorBone = null;
      }
      start() {
        this.octopusRotatorBone = this.octopusBGSkeleton.findBone("main");
      }
      getSpawnNodeByIndex(index) {
        if (this.octopusSpawnNodes[index]) return this.octopusSpawnNodes[index];
        return null;
      }
      update(dt) {
        this.octopusRotatorBone && (this.octopusAnimation.angle = this.octopusRotatorBone.arotation);
      }
    };
    __decorate([ property([ cc.Node ]) ], KingOctopusBackground.prototype, "octopusSpawnNodes", void 0);
    __decorate([ property(cc.Node) ], KingOctopusBackground.prototype, "octopusAnimation", void 0);
    __decorate([ property(sp.Skeleton) ], KingOctopusBackground.prototype, "octopusBGSkeleton", void 0);
    KingOctopusBackground = __decorate([ ccclass ], KingOctopusBackground);
    exports.default = KingOctopusBackground;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-KingOctopusFish": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d50e8KkkOZJR6nPd1wmLxl9", "MT3SETB-KingOctopusFish");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const MT3SETB_KingOctopusBackground_1 = __importDefault(require("./MT3SETB-KingOctopusBackground"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    const OCTOPUS_LEAVE_DELAY = 1;
    let KingOctopusFish = class KingOctopusFish extends MT3SETB_Fish_1.Fish {
      constructor() {
        super(...arguments);
        this.animatedCrossHairNode = null;
        this.crossHairDisplay = null;
        this.occupiedIdx = -1;
        this.hasSpawned = false;
        this.isActive = false;
        this.resizeCbIndex = null;
        this.targetAngle = 0;
      }
      onLoad() {
        super.onLoad();
        null == this.resizeCbIndex && (this.resizeCbIndex = MT3SETB_Comm_1.Comm.app.registResizeCallback(this.onResize.bind(this)));
        this.spineAnims[0].setCompleteListener(entry => {
          "LEAVE" == entry.animation.name ? this.dispose() : "INTO" == entry.animation.name && this.onEntryDisplayCrossHair();
        });
      }
      postInit() {
        if (!this.fishData.createParams) {
          this.pushToPool();
          return;
        }
        this.occupiedIdx = this.fishData.createParams.slotIndex;
        if (this.occupiedIdx < 0 || this.occupiedIdx >= 4) {
          this.dispose();
          return;
        }
        this.hasSpawned = false;
        this.isActive = false;
        this.crossHairDisplay.active = false;
        this.setAttackableState(false);
        this.trySpawn();
      }
      trySpawn() {
        let bgNode = MT3SETB_Comm_1.Comm.gameCtrl.bgNode;
        if (!bgNode) return false;
        this.octopusBackground = bgNode.getComponent(MT3SETB_KingOctopusBackground_1.default);
        if (!this.octopusBackground) return false;
        let spawnNode = this.octopusBackground.getSpawnNodeByIndex(this.occupiedIdx);
        this.no == MT3SETB_Game_1.mtfBFishNo.WakeupKingOctopus && (this.targetAngle = 1 == this.occupiedIdx ? 40 : 25);
        this.node.setParent(spawnNode);
        this.node.setPosition(new cc.Vec2(0, 0));
        this.node.angle = 0;
        this.crossHairDisplay.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
        this.hasSpawned = true;
        return true;
      }
      InitPath(fishData, delay, elapsed) {
        super.InitPath(fishData, delay, elapsed);
        this.node.opacity = 255;
        this.node.angle = this.targetAngle;
        this.onResize();
      }
      shiftPosition(elapseBy) {
        this.elapsed += elapseBy;
        let spineAnim = this.spineAnims[0];
        let entryDuration = spineAnim.findAnimation("INTO").duration;
        spineAnim.timeScale = 1;
        spineAnim.paused = false;
        if (this.elapsed > entryDuration) {
          this.onEntryDisplayCrossHair();
          spineAnim.setAnimation(0, "SWIM", true);
        } else {
          spineAnim.setAnimation(0, "INTO", false);
          spineAnim.addAnimation(0, "SWIM", true);
        }
      }
      onEntryDisplayCrossHair() {
        this.updateCrossHairPosition();
        this.isActive = true;
        this.crossHairDisplay.active = true;
        this.setAttackableState(true);
        this.crossHairDisplay.runAction(cc.rotateBy(2.5, 360).repeatForever());
      }
      pushToPool() {
        super.pushToPool();
        this.node.opacity = 0;
        this.hasSpawned = false;
        this.isActive = false;
        this.crossHairDisplay.setParent(this.node);
        this.crossHairDisplay.active = false;
      }
      dispose() {
        this.pushToPool();
      }
      onResize() {}
      updateCrossHairPosition() {
        let pos = MT3SETB_Comm_1.Comm.transPos3D(MT3SETB_Comm_1.Comm.node.effectLayer, this.animatedCrossHairNode.parent, this.animatedCrossHairNode.position);
        this.crossHairDisplay.setPosition(pos);
      }
      update(dt) {
        this.hasSpawned || this.trySpawn();
        if (this.pathEnd) return;
        this.elapsed += dt;
        this.node.setPosition(new cc.Vec2(0, 0));
        if (!this.isActive) return;
        this.crossHairDisplay && this.animatedCrossHairNode && this.updateCrossHairPosition();
        if (this.elapsed > this.duration - OCTOPUS_LEAVE_DELAY) {
          this.isActive = false;
          this.crossHairDisplay.active = false;
          this.setAttackableState(false, false);
          let spineAnim = this.spineAnims[0];
          spineAnim.timeScale = 1;
          spineAnim.paused = false;
          spineAnim.setAnimation(0, "LEAVE", false);
        } else this.crossHairDisplay.active = !this.isDying();
        this._isLockPosDirty = true;
      }
    };
    __decorate([ property(cc.Node) ], KingOctopusFish.prototype, "animatedCrossHairNode", void 0);
    __decorate([ property(cc.Node) ], KingOctopusFish.prototype, "crossHairDisplay", void 0);
    KingOctopusFish = __decorate([ ccclass ], KingOctopusFish);
    exports.default = KingOctopusFish;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-Fish": "MT3SETB-Fish",
    "./MT3SETB-KingOctopusBackground": "MT3SETB-KingOctopusBackground"
  } ],
  "MT3SETB-LabelExtraOutline": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "cbd64MUy4hMNaL+OageE5fP", "MT3SETB-LabelExtraOutline");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_LabelExt_1 = __importDefault(require("./MT3SETB-LabelExt"));
    const {ccclass: ccclass, property: property, menu: menu, executeInEditMode: executeInEditMode, requireComponent: requireComponent} = cc._decorator;
    let LabelExtraOutline = class LabelExtraOutline extends cc.Component {
      constructor() {
        super(...arguments);
        this._color = cc.Color.WHITE;
        this._width = 1;
      }
      get color() {
        return this._color;
      }
      set color(value) {
        this._color.equals(value) || this._color.set(value);
        this._updateRenderData();
      }
      get width() {
        return this._width;
      }
      set width(value) {
        if (this._width === value) return;
        this._width = value;
        this._updateRenderData();
      }
      onEnable() {
        this._updateRenderData();
      }
      onDisable() {
        this._updateRenderData();
      }
      _updateRenderData() {
        let label = this.node.getComponent(cc.Label);
        label && label["setVertsDirty"]();
      }
    };
    __decorate([ property ], LabelExtraOutline.prototype, "_color", void 0);
    __decorate([ property({
      tooltip: false
    }) ], LabelExtraOutline.prototype, "color", null);
    __decorate([ property ], LabelExtraOutline.prototype, "_width", void 0);
    __decorate([ property({
      tooltip: false,
      range: [ 0, 512 ]
    }) ], LabelExtraOutline.prototype, "width", null);
    LabelExtraOutline = __decorate([ ccclass, executeInEditMode, requireComponent(MT3SETB_LabelExt_1.default), menu("i18n:MAIN_MENU.component.renderers/LabelExtraOutline") ], LabelExtraOutline);
    exports.default = LabelExtraOutline;
    cc._RF.pop();
  }, {
    "./MT3SETB-LabelExt": "MT3SETB-LabelExt"
  } ],
  "MT3SETB-LabelExt": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d1e82sBWkJL7JG3wFaqydW+", "MT3SETB-LabelExt");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const {ccclass: ccclass, property: property, menu: menu, inspector: inspector} = cc._decorator;
    let LabelExt = class LabelExt extends cc.Label {};
    LabelExt = __decorate([ ccclass, menu("i18n:MAIN_MENU.component.renderers/LabelExt"), inspector("packages://inspector/inspectors/comps/label.js") ], LabelExt);
    exports.default = LabelExt;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-LabelGradient": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "1b3ccEK4pdAobwzQ5WjsE79", "MT3SETB-LabelGradient");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_LabelExt_1 = __importDefault(require("./MT3SETB-LabelExt"));
    const {ccclass: ccclass, property: property, menu: menu, executeInEditMode: executeInEditMode, requireComponent: requireComponent} = cc._decorator;
    let LabelGradient = class LabelGradient extends cc.Component {
      constructor() {
        super(...arguments);
        this._color = new cc.Gradient();
      }
      get color() {
        return this._color;
      }
      set color(v) {
        if (true, this._color === v) return;
        this._color = v;
        this._updateRenderData();
      }
      onEnable() {
        this._updateRenderData();
      }
      onDisable() {
        this._updateRenderData();
      }
      _updateRenderData() {
        let label = this.node.getComponent(cc.Label);
        label && label["setVertsDirty"]();
      }
    };
    __decorate([ property ], LabelGradient.prototype, "_color", void 0);
    __decorate([ property({
      tooltip: false,
      type: [ cc.Gradient ]
    }) ], LabelGradient.prototype, "color", null);
    LabelGradient = __decorate([ ccclass, executeInEditMode, requireComponent(MT3SETB_LabelExt_1.default), menu("i18n:MAIN_MENU.component.renderers/LabelGradient") ], LabelGradient);
    exports.default = LabelGradient;
    cc._RF.pop();
  }, {
    "./MT3SETB-LabelExt": "MT3SETB-LabelExt"
  } ],
  "MT3SETB-LabelRegister": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "15390CQTRVB64OtsqLoHXHb", "MT3SETB-LabelRegister");
    "use strict";
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_webObject_1 = require("../../common/api/MT3SETB-webObject");
    const MT3SETB_LabelExt_1 = __importDefault(require("./MT3SETB-LabelExt"));
    const MT3SETB_ttfExt_1 = __importDefault(require("./MT3SETB-ttfExt"));
    const CCAssembler = cc["Assembler"];
    const Label = cc.Label;
    MT3SETB_LabelExt_1.default["_canvasPool"] = {
      pool: [],
      get() {
        let data = this.pool.pop();
        data || (data = MT3SETB_webObject_1.webObjLabelRegisterGetData());
        return data;
      },
      put(canvas) {
        if (this.pool.length >= 32) return;
        this.pool.push(canvas);
      }
    };
    CCAssembler.register(MT3SETB_LabelExt_1.default, {
      getConstructor(label) {
        const TTF = MT3SETB_ttfExt_1.default;
        const Bmfont = cc.Label["__assembler__"].Bmfont;
        const Letter = cc.Label["__assembler__"].Letter;
        const TTF3D = cc.Label["__assembler__"].TTF3D;
        const Bmfont3D = cc.Label["__assembler__"].Bmfont3D;
        const Letter3D = cc.Label["__assembler__"].Letter3D;
        const NativeTTF = cc.Label["__assembler__"].NativeTTF;
        let is3DNode = label.node.is3DNode;
        let ctor = is3DNode ? TTF3D : TTF;
        label.font instanceof cc.BitmapFont ? ctor = is3DNode ? Bmfont3D : Bmfont : label.cacheMode === Label.CacheMode.CHAR && ((true, 
        !is3DNode) && !!jsb["LabelRenderer"] && label.font instanceof cc.TTFFont && label._useNativeTTF() ? ctor = NativeTTF : cc.sys.platform === cc.sys.WECHAT_GAME_SUB ? cc.warn("sorry, subdomain does not support CHAR mode currently!") : ctor = is3DNode ? Letter3D : Letter);
        return ctor;
      }
    });
    cc._RF.pop();
  }, {
    "../../common/api/MT3SETB-webObject": "MT3SETB-webObject",
    "./MT3SETB-LabelExt": "MT3SETB-LabelExt",
    "./MT3SETB-ttfExt": "MT3SETB-ttfExt"
  } ],
  "MT3SETB-LabelUtils": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "55b49OT6QlGe4+jX7tatrQr", "MT3SETB-LabelUtils");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.getFontFamily = exports.deleteFromDynamicAtlas = void 0;
    const dynamicAtlasManager = cc.dynamicAtlasManager;
    const deleteFromDynamicAtlas = function(comp, frame) {
      if (frame && true && frame._original && dynamicAtlasManager) {
        dynamicAtlasManager["deleteAtlasSpriteFrame"](frame);
        frame._resetDynamicAtlasFrame();
      }
    };
    exports.deleteFromDynamicAtlas = deleteFromDynamicAtlas;
    const getFontFamily = function(comp) {
      if (comp.useSystemFont) return comp.fontFamily || "Arial";
      if (comp.font) {
        if (comp.font._nativeAsset) return comp.font._nativeAsset;
        cc.assetManager.postLoadNative(comp.font, function(err) {
          comp.isValid && comp.setVertsDirty();
        });
        return "Arial";
      }
      return "Arial";
    };
    exports.getFontFamily = getFontFamily;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-LangFishImg": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "68cfd0MGUVK+bQ/c/ww2Pwq", "MT3SETB-LangFishImg");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.LangFishImg = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let LangFishImg = class LangFishImg extends cc.Component {
      constructor() {
        super();
        this.anim = null;
        this.atlasString = "";
      }
      start() {
        this.refreshImg();
      }
      refreshImg() {
        this.loadTexture();
        this.setAnimationClip();
      }
      loadTexture() {
        let sf = this.getComponent(cc.Sprite).spriteFrame;
        this.updateLocaleTexture(sf);
      }
      setAnimationClip() {
        var _a, _b, _c, _d;
        if (!this.anim) return;
        let clips = this.anim.getClips();
        for (let clip of clips) {
          let comps = null === (_c = null === (_b = null === (_a = clip.curveData) || void 0 === _a ? void 0 : _a.paths) || void 0 === _b ? void 0 : _b.img) || void 0 === _c ? void 0 : _c.comps;
          if (!comps) continue;
          let spriteFrame = null === (_d = comps["cc.Sprite"]) || void 0 === _d ? void 0 : _d.spriteFrame;
          for (let sfFrame of spriteFrame) this.updateLocaleTexture(sfFrame.value);
        }
      }
      updateLocaleTexture(sf) {
        let tex = null;
        tex = "" != this.atlasString ? MT3SETB_Comm_1.Comm.i18n.getFishLangImgByKey(this.atlasString) : MT3SETB_Comm_1.Comm.i18n.getFishLangImg();
        sf.setTexture(tex, sf.getRect(), sf.isRotated(), sf.getOffset(), sf.getOriginalSize());
      }
    };
    __decorate([ property(cc.Animation) ], LangFishImg.prototype, "anim", void 0);
    __decorate([ property(cc.String) ], LangFishImg.prototype, "atlasString", void 0);
    LangFishImg = __decorate([ ccclass ], LangFishImg);
    exports.LangFishImg = LangFishImg;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-LangImgForCommon": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "30960RSbydJ1aUzg/l1Ls3V", "MT3SETB-LangImgForCommon");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.LangImgForCommon = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let LangImgForCommon = class LangImgForCommon extends cc.Component {
      constructor() {
        super();
        this.spriteName = "";
      }
      onLoad() {}
      start() {
        this.setSpriteFrame();
      }
      setSpriteFrame(e) {
        let t = e || this.spriteName;
        let o = this.getComponent(cc.Sprite), a = MT3SETB_Comm_1.Comm.i18n.getCommLangImg().getSpriteFrame(t);
        o && a && (o.spriteFrame = a);
      }
      setSpriteName(e) {
        this.spriteName = e;
        this.setSpriteFrame();
      }
    };
    __decorate([ property ], LangImgForCommon.prototype, "spriteName", void 0);
    LangImgForCommon = __decorate([ ccclass ], LangImgForCommon);
    exports.LangImgForCommon = LangImgForCommon;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-LangImgForLobby": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e2337jA5xNAQqWAm+Ck6bAi", "MT3SETB-LangImgForLobby");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.LangImgForLobby = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let LangImgForLobby = class LangImgForLobby extends cc.Component {
      constructor() {
        super();
        this.spriteName = "";
      }
      onLoad() {}
      start() {
        this.setSpriteFrame();
      }
      setSpriteFrame() {
        var e = this;
        this.scheduleOnce(function() {
          if (MT3SETB_Comm_1.Comm.commonTransfer) {
            var t = MT3SETB_Comm_1.Comm.commonTransfer.getLangImgForLobby(e.spriteName), o = e.node.getComponent(cc.Sprite);
            o && (o.spriteFrame = t || MT3SETB_Comm_1.Comm.commonTransfer.getLangImgForLobby(e.spriteName + "_" + MT3SETB_Comm_1.Comm.commonTransfer.geti18nLang()));
          }
        });
      }
      setSpriteName(e) {
        this.spriteName = e;
        this.setSpriteFrame();
      }
    };
    __decorate([ property ], LangImgForLobby.prototype, "spriteName", void 0);
    LangImgForLobby = __decorate([ ccclass ], LangImgForLobby);
    exports.LangImgForLobby = LangImgForLobby;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-LangImgToggleForLobby": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "54969rsEpxCRbskpnjPoj62", "MT3SETB-LangImgToggleForLobby");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.LangImgToggleForLobby = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let LangImgToggleForLobby = class LangImgToggleForLobby extends cc.Component {
      constructor() {
        super();
        this.pressedSpriteName = "";
        this.normalSpriteName = "";
      }
      onLoad() {}
      start() {
        this.setSpriteFrame();
      }
      setSpriteFrame() {
        var e = this;
        this.scheduleOnce(function() {
          if (MT3SETB_Comm_1.Comm.commonTransfer) {
            var o = e.node.getComponent(cc.Toggle);
            if (o) {
              var pressedSpriteImg = MT3SETB_Comm_1.Comm.commonTransfer.getLangImgForLobby(this.pressedSpriteName);
              o.pressedSprite = pressedSpriteImg;
              var normalSpriteImg = MT3SETB_Comm_1.Comm.commonTransfer.getLangImgForLobby(this.normalSpriteName);
              o.normalSprite = normalSpriteImg;
            }
          }
        });
      }
    };
    __decorate([ property ], LangImgToggleForLobby.prototype, "pressedSpriteName", void 0);
    __decorate([ property ], LangImgToggleForLobby.prototype, "normalSpriteName", void 0);
    LangImgToggleForLobby = __decorate([ ccclass ], LangImgToggleForLobby);
    exports.LangImgToggleForLobby = LangImgToggleForLobby;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-LangImg": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "6b062SD8cNCYoho8pjpAqAt", "MT3SETB-LangImg");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.LangImg = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let LangImg = class LangImg extends cc.Component {
      constructor() {
        super();
        this.spriteName = "";
        this.anim = null;
        this.atlasString = "";
      }
      start() {
        this.setSpriteFrame();
        this.setAnimationClip();
      }
      setSpriteFrame(e) {
        var t;
        t = e || this.spriteName;
        var o = this.getComponent(cc.Sprite), a = MT3SETB_LangList_1.LangList.langImg.getSpriteFrame(t);
        o && a && (o.spriteFrame = a);
      }
      changeSpriteFrame(e) {
        this.spriteName !== e && (this.spriteName = e, this.setSpriteFrame());
      }
      setAnimationClip(...args) {
        var _a, _b, _c, _d;
        if (!this.anim) return;
        let clips = this.anim.getClips();
        console.log(clips);
        for (let clip of clips) {
          let comps = null === (_c = null === (_b = null === (_a = clip.curveData) || void 0 === _a ? void 0 : _a.paths) || void 0 === _b ? void 0 : _b.img) || void 0 === _c ? void 0 : _c.comps;
          if (!comps) continue;
          let spriteFrame = null === (_d = comps["cc.Sprite"]) || void 0 === _d ? void 0 : _d.spriteFrame;
          for (let sfFrame of spriteFrame) this.updateLocaleTexture(sfFrame.value);
        }
      }
      updateLocaleTexture(sf) {
        let tex = null;
        tex = "" != this.atlasString ? MT3SETB_Comm_1.Comm.i18n.getFishLangImgByKey(this.atlasString) : MT3SETB_Comm_1.Comm.i18n.getFishLangImg();
        sf.setTexture(tex, sf.getRect(), sf.isRotated(), sf.getOffset(), sf.getOriginalSize());
      }
    };
    __decorate([ property ], LangImg.prototype, "spriteName", void 0);
    __decorate([ property(cc.Animation) ], LangImg.prototype, "anim", void 0);
    __decorate([ property(cc.String) ], LangImg.prototype, "atlasString", void 0);
    LangImg = __decorate([ ccclass ], LangImg);
    exports.LangImg = LangImg;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-LangList": "MT3SETB-LangList"
  } ],
  "MT3SETB-LangList": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ccc01SITvZIYr9dw6Ujzayj", "MT3SETB-LangList");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.LangList = void 0;
    class LangList {
      constructor() {}
      static onDestroy() {
        this.list = null;
        this.lang = null;
        this.langImg = null;
      }
      static init(e, t, o) {
        this.list = t;
        this.lang = e;
        this.langImg = o;
      }
      static getString(e) {
        if (!this.list[e]) {
          cc.log("String is not found. no = " + e + ".");
          return e.toString();
        }
        if (null == this.list[e][this.lang]) {
          var t = this.lang;
          cc.log("No." + e + " string is not found in " + t + " lang.");
          return this.list[e]["en-US"];
        }
        return this.list[e][this.lang];
      }
    }
    exports.LangList = LangList;
    LangList.list = null;
    LangList.lang = null;
    LangList.langImg = null;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-LangPos": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "67578OVVGVKQJUIB5JRRqVO", "MT3SETB-LangPos");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let LangPos = class LangPos extends cc.Component {
      constructor() {
        super(...arguments);
        this.posAnim = null;
      }
      start() {
        this.posAnim.play(`${MT3SETB_Comm_1.Comm.i18n.langCode}`);
      }
    };
    __decorate([ property(cc.Animation) ], LangPos.prototype, "posAnim", void 0);
    LangPos = __decorate([ ccclass ], LangPos);
    exports.default = LangPos;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-LangTxt": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "1c782+R1sdPXoqrcf7NfLbq", "MT3SETB-LangTxt");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.LangTxt = void 0;
    const MT3SETB_language_1 = require("../common/api/MT3SETB-language");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let FontSettings = class FontSettings {
      constructor() {
        this.lang = "";
        this.fontSize = 20;
        this.lineHeight = 20;
      }
    };
    __decorate([ property(cc.String) ], FontSettings.prototype, "lang", void 0);
    __decorate([ property(cc.Float) ], FontSettings.prototype, "fontSize", void 0);
    __decorate([ property(cc.Float) ], FontSettings.prototype, "lineHeight", void 0);
    FontSettings = __decorate([ ccclass("MT3SETB-FontSettings") ], FontSettings);
    let LangTxt = class LangTxt extends cc.Component {
      constructor() {
        super();
        this.textkey = "0";
        this.fontSettings = [];
        this.textComponent = null;
      }
      start() {
        this.setText();
      }
      setText() {
        var _a;
        if (null == this.textComponent) {
          this.textComponent = this.getComponent(cc.Label);
          this.textComponent || (this.textComponent = this.getComponent(cc.RichText));
        }
        for (let setting of this.fontSettings) if (setting.lang == MT3SETB_LangList_1.LangList.lang) {
          this.textComponent.fontSize = setting.fontSize;
          this.textComponent.lineHeight = setting.lineHeight;
          break;
        }
        if (this.textComponent && this.textkey.length > 0) {
          var t = this.textkey;
          this.textComponent.string = MT3SETB_LangList_1.LangList.getString(t);
          this.textComponent.font || (this.textComponent.font = MT3SETB_language_1.GetFont());
          (_a = this.textComponent).enableBold && (_a.enableBold = MT3SETB_language_1.GetBold());
        }
      }
    };
    __decorate([ property ], LangTxt.prototype, "textkey", void 0);
    __decorate([ property([ FontSettings ]) ], LangTxt.prototype, "fontSettings", void 0);
    LangTxt = __decorate([ ccclass ], LangTxt);
    exports.LangTxt = LangTxt;
    cc._RF.pop();
  }, {
    "../common/api/MT3SETB-language": "MT3SETB-language",
    "../system/MT3SETB-LangList": "MT3SETB-LangList"
  } ],
  "MT3SETB-LanternFestivalEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "dbcccBYpWxGYbi1xO3+5Fhe", "MT3SETB-LanternFestivalEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const {ccclass: ccclass, property: property} = cc._decorator;
    const EFFECT_WAIT_DURATION = 3;
    let LanternFestivalEffect = class LanternFestivalEffect extends cc.Component {
      constructor() {
        super(...arguments);
        this.lanternEffect = null;
      }
      start() {
        this.schedule(this.playLanternEffect, EFFECT_WAIT_DURATION);
      }
      playLanternEffect() {
        this.lanternEffect.setAnimation(0, "fish_yuanxiao", false);
      }
      onDestroy() {
        this.unschedule(this.playLanternEffect);
      }
    };
    __decorate([ property(sp.Skeleton) ], LanternFestivalEffect.prototype, "lanternEffect", void 0);
    LanternFestivalEffect = __decorate([ ccclass ], LanternFestivalEffect);
    exports.default = LanternFestivalEffect;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-LightningSharkEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "8fd17wVbU5K6LvpJI6TpR0i", "MT3SETB-LightningSharkEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_BaseEffect_1 = __importDefault(require("./MT3SETB-BaseEffect"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    const CHAIN_SCALE_FACTOR = 1 / 301;
    const FISH_HIT_FX_SCALE_FACTOR = .02;
    const ELECTROCUTE_DURATION = 2;
    const PRE_MASS_DEATH_DELAY = .5;
    let LightningSharkEffect = class LightningSharkEffect extends MT3SETB_BaseEffect_1.default {
      constructor() {
        super(...arguments);
        this.lightningChainPrefab = null;
        this.lightningHitPrefab = null;
        this.shark = null;
        this.turret = null;
        this.hitData = null;
        this.sharkHitFx = null;
        this.lightningChains = [];
        this.lightningHits = [];
      }
      init(hitData) {
        this.shark = MT3SETB_Comm_1.Comm.fishMgr.getFishById(hitData.fishId);
        this.turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        this.initPlayer(this.turret);
        this.hitData = hitData;
        this.startSequence();
      }
      startSequence() {
        var _a;
        MT3SETB_Comm_1.Comm.fishMgr.setFishPredead(this.shark.id);
        this.shark.dying = true;
        this.shark.fishAnims[0].play("shandiansha_die");
        this.sharkHitFx = this.shark.node.getChildByName("fx_main");
        this.sharkHitFx.active = true;
        for (let fishHitData of this.hitData.collateralFish) {
          let fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(fishHitData.fishId);
          if (null == fish || !fish.isUsed()) continue;
          fish.dying = true;
          fish.pathEnd = true;
          fish.setAnimSpeed(0);
          let chainNode = MT3SETB_Comm_1.Comm.dataMgr.getLightningChainFx(this.lightningChainPrefab);
          let chainStartPos = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.fishLayer, this.sharkHitFx.parent, this.sharkHitFx.position);
          let fishPos = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.fishLayer, fish.node.parent, fish.node.position);
          chainNode.setParent(MT3SETB_Comm_1.Comm.node.fishLayer);
          chainNode.setPosition(new cc.Vec2((chainStartPos.x + fishPos.x) / 2, (chainStartPos.y + fishPos.y) / 2));
          let direction = fishPos.subtract(chainStartPos);
          chainNode.angle = cc.misc.radiansToDegrees(cc.Vec2.UP.signAngle(direction));
          let distance = Math.abs(direction.mag());
          chainNode.getChildByName("img").setScale(distance * CHAIN_SCALE_FACTOR, 1);
          this.lightningChains.push(chainNode);
          let hitNode = MT3SETB_Comm_1.Comm.dataMgr.getLightningHitFx(this.lightningHitPrefab);
          hitNode.setParent(MT3SETB_Comm_1.Comm.node.fishLayer);
          hitNode.setPosition(MT3SETB_Comm_1.Comm.transPos(hitNode.parent, fish.node));
          let imgNode = null !== (_a = fish.fishTint.targets[0].node) && void 0 !== _a ? _a : fish.node;
          let fishRadius = Math.max(imgNode.getContentSize().width, imgNode.getContentSize().height) / imgNode.scale / 2;
          hitNode.setScale(fishRadius * FISH_HIT_FX_SCALE_FACTOR);
          this.lightningHits.push(hitNode);
        }
        this.node.runAction(cc.sequence(cc.delayTime(ELECTROCUTE_DURATION), cc.callFunc(this.endSequence, this)));
      }
      endSequence() {
        this.shark.fishAnims[0].play();
        this.sharkHitFx.active = false;
        MT3SETB_Comm_1.Comm.effectMgr.showCommonFishDeath(this.shark, 0, false);
        MT3SETB_Comm_1.Comm.fishMgr.delFish(this.shark, true, false);
        let totalWin = this.hitData.coin;
        let collateralWin = 0;
        for (let fishHitData of this.hitData.collateralFish) collateralWin += fishHitData.coin;
        let sharkWin = totalWin - collateralWin;
        let isLocal = this.hitData.seat == MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
        let sharkCoinTextPos = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, this.shark.node.parent, this.shark.node.position);
        MT3SETB_Comm_1.Comm.effectMgr.showCoinText(sharkWin, sharkCoinTextPos, isLocal);
        MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", this.hitData.seat, -totalWin);
        MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.hitData.seat, totalWin, this.hitData.type);
        this.node.runAction(cc.sequence(cc.delayTime(PRE_MASS_DEATH_DELAY), cc.callFunc(() => {
          this.disposeChains();
          this.disposeHits();
          for (let fishHitData of this.hitData.collateralFish) {
            let fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(fishHitData.fishId);
            if (null == fish || !fish.isUsed()) continue;
            MT3SETB_Comm_1.Comm.effectMgr.showCommonFishDeath(fish, 0, false);
            MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, 0, false);
            let coinTextPos = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, fish.node.parent, fish.node.position);
            MT3SETB_Comm_1.Comm.effectMgr.showCoinText(fishHitData.coin, coinTextPos, isLocal);
          }
          if (collateralWin > 0) {
            let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat;
            MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, this.hitData.seat, collateralWin, isLocalPlayer, this.hitData.bet, this.hitData.bonus, MT3SETB_Game_1.mtfBFishNo.LightningShark);
          }
          this.destroyEffect();
        }, this)));
      }
      disposeChains() {
        while (this.lightningChains.length > 0) MT3SETB_Comm_1.Comm.dataMgr.returnLightningChainFx(this.lightningChains.pop());
      }
      disposeHits() {
        while (this.lightningHits.length > 0) MT3SETB_Comm_1.Comm.dataMgr.returnLightningHitFx(this.lightningHits.pop());
      }
      destroyEffect() {
        this.shark && this.shark.isUsed && MT3SETB_Comm_1.Comm.fishMgr.delFish(this.shark, false, true);
        for (let fishHitData of this.hitData.collateralFish) {
          let fish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(fishHitData.fishId);
          if (null == fish || !fish.isUsed()) continue;
          MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, 0, false);
        }
        this.disposeChains();
        this.disposeHits();
        this.node.stopAllActions();
        this.node.destroy();
      }
    };
    __decorate([ property(cc.Prefab) ], LightningSharkEffect.prototype, "lightningChainPrefab", void 0);
    __decorate([ property(cc.Prefab) ], LightningSharkEffect.prototype, "lightningHitPrefab", void 0);
    LightningSharkEffect = __decorate([ ccclass ], LightningSharkEffect);
    exports.default = LightningSharkEffect;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-BaseEffect": "MT3SETB-BaseEffect"
  } ],
  "MT3SETB-LinearMoveModule": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "10f5flZ5/1MJ5/ooMMosI6y", "MT3SETB-LinearMoveModule");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.LinearMoveModule = void 0;
    class LinearMoveModule {
      constructor(fish) {
        this.path = null;
        this.fish = null;
        this.t = 0;
        this.ot = 0;
        this.idx = 0;
        this.dist = 0;
        this.dir = cc.Vec3.UP;
        this.angle = 0;
        this.lastPos = cc.Vec3.ZERO;
        this.fish = fish;
      }
      get pathEnd() {
        return this.idx == this.path.points.length - 1;
      }
      get waypoints() {
        var _a;
        return null === (_a = this.path) || void 0 === _a ? void 0 : _a.points;
      }
      get isLoop() {
        var _a;
        return (null === (_a = this.path) || void 0 === _a ? void 0 : _a.isLoop) || false;
      }
      setPath(path) {
        this.path = path;
      }
      init(delay) {
        this.lastPos.x = this.fish.node.position.x;
        this.lastPos.y = this.fish.node.position.y;
      }
      reset() {
        this.t = 0;
        this.dist = 0;
        this.idx = 0;
        this.path = null;
      }
      updatePath(dt) {
        if (!this.fish || !this.waypoints) return;
        this.t += dt;
        if (this.t < 0) return;
        let pt1 = this.updatePosition(dt, this.fish.moveSpeed);
        this.fish.node.setPosition(this.fish.checkPathRatio(pt1));
        let newDir = pt1.sub(this.lastPos);
        if (newDir.magSqr() > 0) {
          this.dir = newDir.normalize();
          this.lastPos = pt1;
        }
      }
      updatePosition(dt, speed, rotateSpeed) {
        if (!this.path) return;
        let disp = speed * dt;
        this.dist += disp;
        let {distance: distance, index: index, pathEnd: pathEnd} = this.resolveDistanceAndIndex(this.dist, this.idx);
        if (pathEnd) {
          let fish = this.fish;
          fish.setOpacity(0);
          fish.pathEnd = true;
        }
        this.idx = index;
        this.dist = distance;
        let wp = this.waypoints[this.idx];
        let pt = wp.point.add(wp.direction.mul(this.dist));
        if (rotateSpeed) {
          this.angle = (this.angle + rotateSpeed * dt) % 360;
          pt = cc.v3(cc.v2(pt).rotate(this.angle / 180 * Math.PI));
        }
        return pt;
      }
      getPositionAfterTime(dt) {
        let speed = this.fish.moveSpeed;
        let disp = speed * dt;
        let {distance: distance, index: index} = this.resolveDistanceAndIndex(this.dist + disp, this.idx);
        let wp = this.waypoints[index];
        let pt = wp.point.add(wp.direction.mul(distance));
        return pt;
      }
      getIndex(idx) {
        return (idx + this.waypoints.length) % this.waypoints.length;
      }
      resolveDistanceAndIndex(distance, index) {
        let isPathEnd = false;
        let wp = this.waypoints[index];
        if (distance > 0) while (distance > wp.distance) {
          distance -= wp.distance;
          let idx = this.getIndex(index + 1);
          if (idx < index && !this.isLoop) {
            isPathEnd = true;
            break;
          }
          index = idx;
          wp = this.waypoints[index];
        } else while (distance < 0) {
          let idx = this.getIndex(index - 1);
          let wp = this.waypoints[index];
          distance = wp.distance + distance;
          index = idx;
        }
        return {
          distance: distance,
          index: index,
          pathEnd: isPathEnd
        };
      }
      updateRotation() {
        if (!this.fish || !this.waypoints) return;
        let dir = this.dir;
        if (this.fish.moveSpeed < 0) {
          dir.x = -dir.x;
          dir.y = -dir.y;
        }
        let newAngle = Math.atan2(dir.y, dir.x);
        newAngle *= 180 / Math.PI;
        this.fish.node.angle = newAngle - 90;
      }
    }
    exports.LinearMoveModule = LinearMoveModule;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-LoadEnd": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "7042e51wDFOtZFZuUSiwr8d", "MT3SETB-LoadEnd");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.LoadEnd = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass} = cc._decorator;
    let LoadEnd = class LoadEnd extends cc.Component {
      constructor() {
        super();
        this.isDone = false;
        this.startTime = 0;
      }
      start() {
        var e = this;
        MT3SETB_Comm_1.Comm.runTask(0, function() {
          e.isDone = true;
          e.startTime = Date.now();
        });
      }
    };
    LoadEnd = __decorate([ ccclass ], LoadEnd);
    exports.LoadEnd = LoadEnd;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-LogoHide": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "10a51hh2ThJ3oYpM62mFwWt", "MT3SETB-LogoHide");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.LogoHide = void 0;
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let LogoHide = class LogoHide extends cc.Component {
      constructor() {
        super();
        this.list = [];
      }
      start() {
        for (var e = [ 691 ], t = MT3SETB_platform_1.GetApiID(), o = 0; o < e.length; ++o) if (t == e[o]) {
          this.list.forEach(function(e) {
            e.active = false;
          });
          break;
        }
      }
    };
    __decorate([ property(cc.Node) ], LogoHide.prototype, "list", void 0);
    LogoHide = __decorate([ ccclass ], LogoHide);
    exports.LogoHide = LogoHide;
    cc._RF.pop();
  }, {
    "../common/api/MT3SETB-platform": "MT3SETB-platform"
  } ],
  "MT3SETB-LotteryMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "785d7Rrt+VIc7ZbhNOocxKW", "MT3SETB-LotteryMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.LotteryMgr = void 0;
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_ChangeCoinSprite_1 = require("./MT3SETB-ChangeCoinSprite");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_LangImg_1 = require("./MT3SETB-LangImg");
    const MT3SETB_Roulette_1 = require("./MT3SETB-Roulette");
    const MT3SETB_ui_1 = require("../common/api/MT3SETB-ui");
    const MT3SETB_utils2_1 = require("../framework/framework/MT3SETB-utils2");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let m = [ 0, 0, 0 ], g = [ [ 283, 317 ] ], _ = [ [ 43, 77 ] ], y = [ [ 163, 197 ] ], v = [ [ 203, 237 ], [ 323, 357 ], [ 83, 117 ] ], b = [ [ 3, 37 ], [ 243, 277 ], [ 123, 157 ] ], w = [ "Roulette_JP01", "Roulette_JP02", "Roulette_JP03", "Roulette_88", "Roulette_168", "Roulette_240", "Roulette_320" ];
    let LotteryMgr = class LotteryMgr extends cc.Component {
      constructor() {
        super();
        this.jpShowPrefab = null;
        this.jpWheelPrefab = null;
        this.jpFishBallPrefab = null;
        this.lotteryNode = null;
        this.lotteryBGLight = [];
        this.doubleNumShow = [];
        this.lotteryTotalNum = [];
        this.lotteryShowMask = null;
        this.lotteryHintPage = [];
        this.lotteryHintText = [];
        this.lotteryNum = [];
        this.lotteryWheelSprite = [];
        this.jpTip = null;
        this.welcomePrefab = null;
        this.welcomePageNode = null;
        this.isWelcomePageOpen = false;
        this.rewardNum = 0;
        this.rewardNum1 = 0;
        this.rewardNum2 = 0;
        this.rewardType = 0;
        this.callBack = null;
        this.showRewardFlag = false;
        this.showRewardFlag2 = false;
        this.jpNum = [];
        this.jpNumNew = [];
        this.countdownNum_show = 0;
        this.countdownNum_board = [];
        this.firstChangeBet_flag = true;
        this.lastBet = 0;
        this.jpShowNode = null;
        this.rewardCallback = null;
        this.welcomeNode = null;
        this.hintPageNode = [];
        this.hintTipBG = null;
        this.hintActiveTime = [ 0, 0, 0 ];
        this.hintCD = [ 0, 0, 0 ];
        this.hintTipCD = 0;
        this.p_idx = 0;
        this.p_dt = 0;
        this.p_t = .8;
        this.jpBetStage = [ .2, .6, .8, 2, 5, 10, 80 ];
        this.countdownNum_default = 1500;
        this.isShowingJP = false;
        this.shining = null;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.lotteryMgr = this;
      }
      start() {
        this.hintTipBG = cc.find("Background", this.jpTip);
        for (var e = 0; e < this.lotteryHintPage.length; ++e) this.hintPageNode[e] = cc.find("Node", this.lotteryHintPage[e]);
      }
      update(e) {
        this.updateJPBoard(e), this.updateJPShow(e), this.updateJPHint(e);
      }
      show(e, t, o, n) {
        var a = this;
        if (!this.showRewardFlag) {
          this.showRewardFlag = true, this.rewardType = e, t = MT3SETB_Comm_1.Comm.toDecimal3(t), 
          this.rewardNum = t, this.rewardNum1 = t, this.rewardNum2 = 0, this.jpShowNode = cc.instantiate(this.jpShowPrefab), 
          this.lotteryNode.getChildByName("Show").addChild(this.jpShowNode);
          var r = MT3SETB_Comm_1.Comm.find("label/coin", this.jpShowNode, cc.Label);
          r.string = MT3SETB_Comm_1.Comm.toDecimal2(this.rewardNum2), r.node.scale = .6, this.lotteryTotalNum[e - 1].string = MT3SETB_Comm_1.Comm.toDecimal2(this.rewardNum);
          var s = this.jpShowNode.getComponent(cc.Animation), c = s.getClips(), l = cc.find("JP_01/JP_01_Dark", this.lotteryNode), u = cc.find("JP_03_02/JP_02_Dark", this.lotteryNode), d = cc.find("JP_03_02/JP_03_Dark", this.lotteryNode), p = cc.find("JP_01/Text_1_Dark", this.lotteryNode), h = [ cc.find("JP_01/JP_01_Shine", this.lotteryNode), cc.find("JP_02/JP_02_Shine", this.lotteryNode), cc.find("JP_03/JP_03_Shine", this.lotteryNode) ], f = [ this.lotteryTotalNum[0].node, this.lotteryTotalNum[1].node, this.lotteryTotalNum[2].node ], m = [ cc.find("JP_Choice_ef_01", this.lotteryNode), cc.find("JP_Choice_ef_03", this.lotteryNode), cc.find("JP_Choice_ef_02", this.lotteryNode) ], g = false;
          if (o) {
            l.active = 1 !== e, u.active = 2 !== e, d.active = 3 !== e, p.active = 1 !== e, 
            h.forEach(function(e) {
              return e.opacity = 0;
            });
            var _ = this.lotteryNode.getComponent(cc.Animation);
            _.play(_.getClips()[e].name), this.rewardType;
            this.setBGLight(e - 1), s.play(c[3 * this.rewardType - 2].name), s.once("finished", function() {
              a.showRewardFlag2 = true, a.lotteryShowMask.active = true, s.play(c[3 * a.rewardType - 1].name), 
              a.mountain_move();
            });
          } else s.play(c[0].name), MT3SETB_Comm_1.Comm.runTask({
            delay: .2,
            target: this
          }, function() {
            l.active = false, u.active = false, d.active = false, p.active = false, h.forEach(function(e) {
              return e.active = true;
            }), h.forEach(function(e) {
              return e.opacity = 0;
            });
            var t = 0, o = .7, n = 2, r = 0, _ = cc.speed(cc.repeatForever(cc.sequence(cc.callFunc(function() {
              h[r].runAction(cc.fadeOut(.12)), h[n].runAction(cc.fadeIn(.12));
              var y = f[n].scale;
              if (f[n].runAction(cc.sequence(cc.scaleTo(.08, 1.3 * y).easing(cc.easeIn(1.5)), cc.delayTime(.04), cc.scaleTo(.04, y))), 
              m[r].active = false, m[n].active = true, m[n].getComponent(cc.Animation).play(), 
              r = n, n = n - 1 < 0 ? 2 : n - 1, _.setSpeed(o), o *= t <= .4 ? 1.03 : .8, o = cc.misc.clampf(o, .3, 1.5), 
              t += .033, g && r + 1 === e) {
                l.active = 1 !== e, u.active = 2 !== e, d.active = 3 !== e, p.active = 1 !== e, 
                h.forEach(function(e) {
                  return e.opacity = 0;
                }), a.node.stopAction(_);
                var v = a.lotteryNode.getComponent(cc.Animation);
                v.play(v.getClips()[e].name), MT3SETB_Comm_1.Comm.runTask({
                  delay: 1,
                  target: v
                }, function() {
                  a.rewardType;
                  a.setBGLight(e - 1), s.play(c[3 * a.rewardType - 2].name), s.once("finished", function() {
                    a.showRewardFlag2 = true, a.lotteryShowMask.active = true, s.play(c[3 * a.rewardType - 1].name), 
                    a.mountain_move();
                  });
                });
              }
            }), cc.delayTime(.1))), 1);
            a.node.runAction(_);
          });
          s.once("finished", function() {
            MT3SETB_Comm_1.Comm.runTask({
              delay: 0,
              target: a
            }, function() {
              g = true;
            });
          }), this.countdownNum_show = this.countdownNum_default, this.rewardNum >= 50 * this.countdownNum_default ? this.countdownNum_show = this.rewardNum / this.countdownNum_default : this.rewardNum < this.countdownNum_default && (this.countdownNum_show = this.rewardNum), 
          this.callBack = n, MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat(), true, 60);
        }
      }
      mountain_move() {
        if (this.jpShowNode) {
          var e = [ this.jpShowNode.getChildByName("JP_MoneyMountain_01"), this.jpShowNode.getChildByName("JP_MoneyMountain_02"), this.jpShowNode.getChildByName("JP_MoneyMountain_03") ], t = [ this.jpShowNode.getChildByName("JP_MoneyMountain_01").getComponent(cc.Animation), this.jpShowNode.getChildByName("JP_MoneyMountain_02").getComponent(cc.Animation), this.jpShowNode.getChildByName("JP_MoneyMountain_03").getComponent(cc.Animation) ], o = [], n = [], a = [];
          if (this.rewardType <= 2) for (var r = 0; r < e.length; r++) e[r].active = true;
          this.rewardType <= 2 && (o.push(cc.delayTime(.8)), o.push(cc.callFunc(function() {
            t[0].play(t[0].getClips()[0].name), t[0].on("finished", function() {
              t[0].play(t[0].getClips()[1].name);
            });
          })), o.push(cc.moveBy(.2, cc.v2(0, 80))), n.push(cc.delayTime(1.3)), n.push(cc.callFunc(function() {
            t[1].play(t[1].getClips()[0].name), t[1].on("finished", function() {
              t[1].play(t[1].getClips()[1].name);
            });
          })), n.push(cc.moveBy(.2, cc.v2(0, 90))), a.push(cc.delayTime(1.8)), a.push(cc.callFunc(function() {
            t[2].play(t[2].getClips()[0].name), t[2].on("finished", function() {
              t[2].play(t[2].getClips()[1].name);
            });
          })), a.push(cc.moveBy(.2, cc.v2(0, 100)))), 1 == this.rewardType && (o.push(cc.delayTime(4)), 
          o.push(cc.callFunc(function() {
            t[0].play(t[0].getClips()[0].name);
          })), o.push(cc.moveBy(.2, cc.v2(0, 40))), n.push(cc.delayTime(3)), n.push(cc.callFunc(function() {
            t[1].play(t[1].getClips()[0].name);
          })), n.push(cc.moveBy(.2, cc.v2(0, 50))), a.push(cc.delayTime(3.5)), a.push(cc.callFunc(function() {
            t[2].play(t[2].getClips()[0].name);
          })), a.push(cc.moveBy(.2, cc.v2(0, 60))), o.push(cc.delayTime(2.5)), o.push(cc.callFunc(function() {
            t[0].play(t[0].getClips()[0].name);
          })), o.push(cc.moveBy(.2, cc.v2(0, 50))), n.push(cc.delayTime(3.5)), n.push(cc.callFunc(function() {
            t[1].play(t[1].getClips()[0].name);
          })), n.push(cc.moveBy(.2, cc.v2(0, 60))), a.push(cc.delayTime(3.5)), a.push(cc.callFunc(function() {
            t[2].play(t[2].getClips()[0].name);
          })), a.push(cc.moveBy(.2, cc.v2(0, 60)))), e[0].runAction(cc.sequence(o)), e[1].runAction(cc.sequence(n)), 
          e[2].runAction(cc.sequence(a));
        }
      }
      setBGLight(e = null) {
        for (var t = 0; t < 3; t++) this.lotteryBGLight[t].opacity = 0;
        e && (this.lotteryBGLight[e].opacity = 255);
      }
      setTotalNum(e, t) {
        if (!this.isShowingJP) for (var o = 0; o < 3; o++) t[o] = t[o] / MT3SETB_Comm_1.Comm.jpRate, 
        "login" == e && (window["jpNum" + o] ? this.jpNum[o] = window["jpNum" + o] : this.jpNum[o] = .98 * t[o]), 
        this.jpNumNew[o] = t[o], this.jpNum[o] > this.jpNumNew[o] && (this.jpNum[o] = .98 * this.jpNumNew[o]), 
        this.countdownNum_board[o] = (this.jpNumNew[o] - this.jpNum[o]) / 30;
      }
      maskEvent(e, t) {
        "0" == t ? (this.rewardNum1 = 0, this.rewardNum2 = this.rewardNum) : "1" == t ? this.hintTipBG.active ? this.clickHideTip() : this.clickShowTip() : "2" == t ? this.hintTipBG.active ? this.clickHideTip() : this.clickShowTip() : "3" == t ? this.hintTipBG.active ? this.clickHideTip() : this.clickShowTip() : "welcome" == t && this.welcomePageClose();
      }
      setJPBoard(e) {
        var t = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        if (t) {
          var o = t.getBet();
          if (e) {
            var a = MT3SETB_Comm_1.Comm.getThousandsNum(.2 * MT3SETB_Comm_1.Comm.coinRatio), r = MT3SETB_Comm_1.Comm.getThousandsNum(.8 * MT3SETB_Comm_1.Comm.coinRatio), s = MT3SETB_Comm_1.Comm.getThousandsNum(5 * MT3SETB_Comm_1.Comm.coinRatio);
            this.lotteryHintText[0].getComponent(cc.RichText).string = MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(178), s);
            this.lotteryHintText[1].getComponent(cc.RichText).string = MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(177), r);
            this.lotteryHintText[2].getComponent(cc.RichText).string = MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(176), a);
          }
          for (var l = cc.find("JP_01/JP_01_Dark", this.lotteryNode), u = cc.find("JP_03_02/JP_02_Dark", this.lotteryNode), d = cc.find("JP_03_02/JP_03_Dark", this.lotteryNode), p = cc.find("JP_01/Text_1_Dark", this.lotteryNode), h = 0; h < this.lotteryNum.length; h++) this.lotteryNum[h].opacity = 255;
          for (h = 0; h < this.lotteryHintText.length; h++) this.lotteryHintText[h].opacity = 0;
          this.lotteryHintText[0].stopAllActions(), this.lotteryHintText[1].stopAllActions(), 
          this.lotteryHintText[2].stopAllActions();
          var f = function(e) {
            var t = this;
            this.lotteryHintText[e].runAction(cc.repeatForever(cc.sequence(cc.callFunc(function() {
              t.lotteryNum[e].opacity = 255, t.lotteryHintText[e].opacity = 0;
            }), cc.delayTime(5), cc.callFunc(function() {
              t.lotteryNum[e].opacity = 0, t.lotteryHintText[e].opacity = 255;
            }), cc.delayTime(2.5))));
          }.bind(this);
          o >= this.jpBetStage[5] || o >= this.jpBetStage[4] ? (l.active = false, p.active = false, 
          u.active = false, d.active = false) : o >= this.jpBetStage[3] || o >= this.jpBetStage[2] ? (l.active = true, 
          p.active = true, u.active = false, d.active = false, f(0)) : o >= this.jpBetStage[1] || o >= this.jpBetStage[0] ? (l.active = true, 
          p.active = true, u.active = true, d.active = false, f(0), f(1)) : (l.active = true, 
          p.active = true, u.active = true, d.active = true, f(0), f(1), f(2)), e || (this.lastBet < this.jpBetStage[0] && o >= this.jpBetStage[0] ? (t.showJPLockMsg("unlock", 2, MT3SETB_LangList_1.LangList.getString(160)), 
          this.showHintPage(2, 7, true)) : this.lastBet < this.jpBetStage[1] && o >= this.jpBetStage[1] ? (this.doubleNumShow[2].getComponent(cc.Animation).play(), 
          t.showJPLockMsg("double", 2, MT3SETB_LangList_1.LangList.getString(163))) : this.lastBet < this.jpBetStage[2] && o >= this.jpBetStage[2] ? (t.showJPLockMsg("unlock", 1, MT3SETB_LangList_1.LangList.getString(161)), 
          this.showHintPage(1, 7, true)) : this.lastBet < this.jpBetStage[3] && o >= this.jpBetStage[3] ? (this.doubleNumShow[1].getComponent(cc.Animation).play(), 
          t.showJPLockMsg("double", 1, MT3SETB_LangList_1.LangList.getString(164))) : this.lastBet < this.jpBetStage[4] && o >= this.jpBetStage[4] ? (t.showJPLockMsg("unlock", 0, MT3SETB_LangList_1.LangList.getString(162)), 
          this.showHintPage(0, 7, true)) : this.lastBet < this.jpBetStage[5] && o >= this.jpBetStage[5] ? (this.doubleNumShow[0].getComponent(cc.Animation).play(), 
          t.showJPLockMsg("double", 0, MT3SETB_LangList_1.LangList.getString(165))) : this.lastBet < this.jpBetStage[6] && o >= this.jpBetStage[6] ? (this.doubleNumShow[0].getComponent(cc.Animation).play(), 
          t.showJPLockMsg("double", 0, MT3SETB_LangList_1.LangList.getString(165))) : this.lastBet >= this.jpBetStage[6] && o < this.jpBetStage[6] ? t.showJPLockMsg("unDouble", 0, MT3SETB_LangList_1.LangList.getString(171)) : this.lastBet >= this.jpBetStage[5] && o < this.jpBetStage[5] ? t.showJPLockMsg("unDouble", 0, MT3SETB_LangList_1.LangList.getString(171)) : this.lastBet >= this.jpBetStage[4] && o < this.jpBetStage[4] ? t.showJPLockMsg("lock", 0, MT3SETB_LangList_1.LangList.getString(168)) : this.lastBet >= this.jpBetStage[3] && o < this.jpBetStage[3] ? t.showJPLockMsg("unDouble", 1, MT3SETB_LangList_1.LangList.getString(170)) : this.lastBet >= this.jpBetStage[2] && o < this.jpBetStage[2] ? t.showJPLockMsg("lock", 1, MT3SETB_LangList_1.LangList.getString(167)) : this.lastBet >= this.jpBetStage[1] && o < this.jpBetStage[1] ? t.showJPLockMsg("unDouble", 2, MT3SETB_LangList_1.LangList.getString(169)) : this.lastBet >= this.jpBetStage[0] && o < this.jpBetStage[0] ? t.showJPLockMsg("lock", 2, MT3SETB_LangList_1.LangList.getString(166)) : o > this.jpBetStage[5] && o > this.lastBet ? (this.doubleNumShow[0].getComponent(cc.Animation).play(this.doubleNumShow[0].getComponent(cc.Animation).getClips()[1].name), 
          t.showJPLockMsg("none", null, null)) : t.showJPLockMsg("none", null, null)), this.lastBet = o;
        }
      }
      changeBet() {
        this.firstChangeBet_flag ? (this.jpBetStage = MT3SETB_Comm_1.Comm.getCoinTypeBet(this.jpBetStage), 
        this.countdownNum_default = this.countdownNum_default / MT3SETB_Comm_1.Comm.jpRate, 
        this.firstChangeBet_flag = false, this.setJPBoard(true)) : this.setJPBoard(false);
      }
      updateJPBoard(e) {
        if (0 != this.jpNum.length && !this.showRewardFlag) for (var t = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet(), o = 0; o < 3; o++) {
          var n = 0;
          if (this.jpNum[o] > this.jpNumNew[o]) this.jpNum[o] = this.jpNumNew[o]; else {
            if (this.jpNum[o] = this.jpNum[o] + e * this.countdownNum_board[o], this.jpNum[o] > this.jpNumNew[o] && (this.jpNum[o] = this.jpNumNew[o]), 
            window["jpNum" + o] = this.jpNum[o], t >= this.jpBetStage[6]) {
              var a = [ .5, 1, 1 ];
              n = this.jpNum[o] / a[o];
            } else t >= this.jpBetStage[5] ? (a = [ 1, 1, 1 ], n = this.jpNum[o] / a[o]) : t >= this.jpBetStage[3] ? (a = [ 2, 1, 1 ], 
            n = this.jpNum[o] / a[o]) : t >= this.jpBetStage[1] ? (a = [ 2, 2, 1 ], n = this.jpNum[o] / a[o]) : (a = [ 2, 2, 2 ], 
            n = this.jpNum[o] / a[o]);
            this.lotteryTotalNum[o].string = MT3SETB_Comm_1.Comm.toDecimal2(n);
          }
        }
      }
      updateJPShow(e) {
        var t = this;
        if (this.showRewardFlag2 && this.jpShowNode) {
          var o = MT3SETB_Comm_1.Comm.find("label/coin", this.jpShowNode, cc.Label), n = [ MT3SETB_Comm_1.Comm.find("CoinJP" + this.rewardType + "_01", this.jpShowNode, cc.ParticleSystem), MT3SETB_Comm_1.Comm.find("CoinJP" + this.rewardType + "_02", this.jpShowNode, cc.ParticleSystem), MT3SETB_Comm_1.Comm.find("CoinJP" + this.rewardType + "_03", this.jpShowNode, cc.ParticleSystem) ];
          if (this.rewardNum1 = this.rewardNum1 - e * this.countdownNum_show, this.rewardNum2 = this.rewardNum2 + e * this.countdownNum_show, 
          this.rewardNum1 > 0) {
            this.lotteryTotalNum[this.rewardType - 1].string = MT3SETB_Comm_1.Comm.toDecimal2(this.rewardNum1);
            var a = this.rewardNum2 / this.rewardNum;
            if (o.string = MT3SETB_Comm_1.Comm.toDecimal2(this.rewardNum2), o.node.scale = MT3SETB_Comm_1.Comm.lerp(.6, 1, 1 + --a * Math.pow(a, 4)), 
            this.p_dt <= 0) {
              for (var r = this.p_idx; r === this.p_idx; ) r = MT3SETB_Comm_1.Comm.iRand(0, n.length - 1);
              false === n[r].node.active ? n[r].node.active = true : n[r].resetSystem(), this.p_dt = this.p_t, 
              this.p_idx = r;
            }
            this.p_dt -= e;
          } else MT3SETB_Comm_1.Comm.snd.stopEffect(37), this.showRewardFlag2 = false, this.rewardNum1 = 0, 
          this.lotteryTotalNum[this.rewardType - 1].string = MT3SETB_Comm_1.Comm.toDecimal2(this.rewardNum1), 
          this.rewardNum2 = this.rewardNum, o.string = MT3SETB_Comm_1.Comm.toDecimal2(this.rewardNum2), 
          o.node.scale = 1, this.scheduleOnce(function() {
            MT3SETB_Comm_1.Comm.snd.stopEffect(42), MT3SETB_Comm_1.Comm.snd.stopEffect(43), 
            MT3SETB_Comm_1.Comm.snd.stopEffect(44);
            var e = t.lotteryNode.getComponent(cc.Animation);
            e.play(e.getClips()[0].name);
            var o = t.jpShowNode.getComponent(cc.Animation), n = o.getClips();
            o.play(n[3 * t.rewardType].name);
            o.once("finished", function() {
              t.showRewardFlag = false;
              t.lotteryShowMask.active = false;
              t.setJPBoard(true);
              t.setBGLight();
              t.jpShowNode.destroy();
              t.jpShowNode = null;
              MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(MT3SETB_Game_1.eFishMedal.JpMedal, MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat(), 0, true, 1, 0, t.rewardType, t.rewardNum);
              MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat(), false);
              MT3SETB_Comm_1.Comm.snd.stopEffect(37);
              MT3SETB_Comm_1.Comm.snd.stopEffect(42);
              MT3SETB_Comm_1.Comm.snd.stopEffect(43);
              MT3SETB_Comm_1.Comm.snd.stopEffect(44);
              t.callBack && (t.callBack(), t.callBack = null);
            });
          }, 3);
        }
      }
      resetJpBoardNum(e) {
        this.jpNum[e] = m[e] / MT3SETB_Comm_1.Comm.jpRate * .98;
        this.jpNumNew[e] = m[e] / MT3SETB_Comm_1.Comm.jpRate;
        this.countdownNum_board[e] = (this.jpNumNew[e] - this.jpNum[e]) / 30;
      }
      jpFishWheel(e, t, o, n, a, r, c, l) {
        var p = this;
        if (t) {
          MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat(), true);
          c && l && (this.isShowingJP = true);
        }
        var h = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(o), f = cc.instantiate(this.jpFishBallPrefab);
        f.parent = MT3SETB_Comm_1.Comm.node.effectLayer;
        f.position = cc.v3(e);
        f.zIndex = MT3SETB_Game_1.eZIndex.Coin_2;
        var m = f.getComponent(cc.Animation), k = m.getClips(), S = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, h.getRewardPosNode()), C = cc.v2(S.x, S.y - 215);
        m.play(k[0].name);
        m.once("finished", function() {
          m.play(k[1].name);
          f.runAction(cc.sequence(cc.moveTo(.5, C), cc.callFunc(function() {
            f.destroy();
            f = null;
            var e = cc.instantiate(p.jpWheelPrefab);
            e.parent = h.getRewardPosNode();
            e.position = cc.v3(0, -215, 0);
            var m = [];
            m[0] = e.getChildByName("Roulette_Inside").getChildByName("RouletteInside_04");
            m[1] = e.getChildByName("Roulette_Inside").getChildByName("RouletteInside_07");
            m[2] = e.getChildByName("Roulette_Inside").getChildByName("RouletteInside_01");
            m[3] = e.getChildByName("Roulette_Inside").getChildByName("RouletteInside_02");
            m[4] = e.getChildByName("Roulette_Inside").getChildByName("RouletteInside_05");
            m[5] = e.getChildByName("Roulette_Inside").getChildByName("RouletteInside_08");
            m[6] = e.getChildByName("Roulette_Inside").getChildByName("RouletteInside_03");
            m[7] = e.getChildByName("Roulette_Inside").getChildByName("RouletteInside_06");
            m[8] = e.getChildByName("Roulette_Inside").getChildByName("RouletteInside_09");
            var k = [];
            k[0] = e.getChildByName("RouletteInsideGet").getChildByName("RouletteInsideGet_01");
            k[1] = e.getChildByName("RouletteInsideGet").getChildByName("RouletteInsideGet_02");
            k[2] = e.getChildByName("RouletteInsideGet").getChildByName("RouletteInsideGet_03");
            k[3] = e.getChildByName("RouletteInsideGet").getChildByName("RouletteInsideGet_07");
            k[4] = e.getChildByName("RouletteInsideGet").getChildByName("RouletteInsideGet_08");
            k[5] = e.getChildByName("RouletteInsideGet").getChildByName("RouletteInsideGet_09");
            k[6] = e.getChildByName("RouletteInsideGet").getChildByName("RouletteInsideGet_04");
            k[7] = e.getChildByName("RouletteInsideGet").getChildByName("RouletteInsideGet_05");
            k[8] = e.getChildByName("RouletteInsideGet").getChildByName("RouletteInsideGet_06");
            if (a >= p.jpBetStage[5] || a >= p.jpBetStage[4]) ; else if (a >= p.jpBetStage[3] || a >= p.jpBetStage[2]) {
              m[0].getChildByName("Roulette_Name").getComponent(MT3SETB_LangImg_1.LangImg).changeSpriteFrame(w[2]);
              k[0].getChildByName("Roulette_Name").getComponent(MT3SETB_LangImg_1.LangImg).changeSpriteFrame(w[2]);
              m[0].getComponent(cc.Sprite).spriteFrame = p.lotteryWheelSprite[2];
              k[0].getComponent(cc.Sprite).spriteFrame = p.lotteryWheelSprite[2];
            } else if (a >= p.jpBetStage[1] || a >= p.jpBetStage[0]) for (var S = 0; S < 3; S++) {
              m[S].getChildByName("Roulette_Name").getComponent(MT3SETB_LangImg_1.LangImg).changeSpriteFrame(w[2]);
              k[S].getChildByName("Roulette_Name").getComponent(MT3SETB_LangImg_1.LangImg).changeSpriteFrame(w[2]);
              m[S].getComponent(cc.Sprite).spriteFrame = p.lotteryWheelSprite[2];
              k[S].getComponent(cc.Sprite).spriteFrame = p.lotteryWheelSprite[2];
            }
            if (r == MT3SETB_Game_1.eFishKind.JPFish) ; else if (r == MT3SETB_Game_1.eFishKind.JPDragon) {
              for (S = 3; S < 6; S++) {
                m[S].getChildByName("Roulette_Name").setAnchorPoint(m[6].getChildByName("Roulette_Name").anchorX, m[6].getChildByName("Roulette_Name").anchorY);
                k[S].getChildByName("Roulette_Name").setAnchorPoint(k[6].getChildByName("Roulette_Name").anchorX, k[6].getChildByName("Roulette_Name").anchorY);
                m[S].getChildByName("Roulette_Name").getComponent(MT3SETB_LangImg_1.LangImg).changeSpriteFrame(w[5]);
                k[S].getChildByName("Roulette_Name").getComponent(MT3SETB_LangImg_1.LangImg).changeSpriteFrame(w[5]);
              }
              for (S = 6; S < 9; S++) {
                m[S].getChildByName("Roulette_Name").getComponent(MT3SETB_LangImg_1.LangImg).changeSpriteFrame(w[6]);
                k[S].getChildByName("Roulette_Name").getComponent(MT3SETB_LangImg_1.LangImg).changeSpriteFrame(w[6]);
              }
            }
            if (t) {
              e.getChildByName("black").active = true;
              p.scheduleOnce(function() {
                e.getChildByName("mask").active = true;
                e.getChildByName("hint_text").active = true;
                var t = 5;
                e.runAction(cc.repeatForever(cc.sequence(cc.callFunc(function() {
                  var o = e.getChildByName("hint_text");
                  if (false != o.active) {
                    o.getChildByName("hint_label").getComponent(cc.Label).string = t.toString();
                    t = t - 1 > 0 ? t - 1 : 0;
                  }
                }), cc.delayTime(1))));
              }, 1.5);
            } else {
              e.opacity = 150;
              e.scale = .8;
            }
            var C = n / a, N = v[0], B = 0;
            if (c && l) switch (c) {
             case 1:
              N = g[0];
              break;

             case 2:
              N = _[0];
              break;

             case 3:
              N = y[0];
            } else {
              B = MT3SETB_Comm_1.Comm.iRand(0, 2);
              N = 88 == C || 240 == C ? v[B] : 168 == C || 320 == C ? b[B] : v[B];
            }
            var T = e.getComponent(MT3SETB_Roulette_1.Roulette), P = e.getComponent(cc.Animation), L = P.getClips();
            P.play(L[0].name);
            t;
            p.scheduleOnce(function() {
              t;
              T.reset();
              T.perform(1, 5, MT3SETB_Comm_1.Comm.iRand(N[0], N[1]), function() {
                t;
                var u = e.getChildByName("RouletteInsideGet").getComponent(cc.Animation), d = u.getClips();
                if (c && l) switch (P.play(L[2].name), c) {
                 case 1:
                  u.play(d[6].name);
                  break;

                 case 2:
                  u.play(d[7].name);
                  break;

                 case 3:
                  u.play(d[8].name);
                } else {
                  P.play(L[1].name);
                  88 == C || 240 == C ? u.play(d[B].name) : 168 == C || 320 == C ? u.play(d[B + 3].name) : u.play(d[B].name);
                }
                p.scheduleOnce(function() {
                  P.play(L[3].name);
                  e.getChildByName("RouletteInsideGet").active = false;
                  P.once("finished", function() {
                    e.destroy();
                    e = null;
                    c && l ? t ? (p.showRewardFlag ? MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(MT3SETB_Game_1.eFishMedal.JpMedal, o, 0, true, a, 0, c, l) : p.show(c, l, true, function() {}), 
                    MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(r, o, n, t, a, 0), p.isShowingJP = false) : (MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(MT3SETB_Game_1.eFishMedal.JpMedal, o, 0, true, a, 0, c, l), 
                    MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(r, o, n, t, a, 0)) : (MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(r, o, n, t, a, 0), 
                    t && MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat(), false));
                  });
                }, 2);
              });
            }, .5);
          })));
        });
      }
      shiningJpBoard(e) {
        var t = this;
        this.shining && (this.node.stopAction(this.shining), this.shining = null);
        this.rewardCallback && (this.rewardCallback(), this.rewardCallback = null);
        this.rewardCallback = e;
        var o = cc.find("JP_01/JP_01_Dark", this.lotteryNode), n = cc.find("JP_03_02/JP_02_Dark", this.lotteryNode), a = cc.find("JP_03_02/JP_03_Dark", this.lotteryNode), r = cc.find("JP_01/Text_1_Dark", this.lotteryNode);
        o.active = false;
        n.active = false;
        a.active = false;
        r.active = false;
        var s = [ cc.find("JP_01/JP_01_Shine", this.lotteryNode), cc.find("JP_02/JP_02_Shine", this.lotteryNode), cc.find("JP_03/JP_03_Shine", this.lotteryNode) ];
        s.forEach(function(e) {
          return e.active = true;
        });
        s.forEach(function(e) {
          return e.opacity = 0;
        });
        for (var c = [], l = 0; l < 15; l++) {
          c.push(cc.callFunc(function() {
            s.forEach(function(e) {
              return e.opacity = 255;
            });
          }));
          c.push(cc.delayTime(.1));
          c.push(cc.callFunc(function() {
            s.forEach(function(e) {
              return e.opacity = 0;
            });
          }));
          c.push(cc.delayTime(.2));
        }
        c.push(cc.callFunc(function() {
          if (t.rewardCallback) {
            t.rewardCallback();
            t.rewardCallback = null;
          }
          t.setBGLight();
          t.setJPBoard(true);
          t.shining = null;
        }));
        this.shining = cc.sequence(c);
        this.node.runAction(this.shining);
      }
      getjpBetStage() {
        return this.jpBetStage;
      }
      updateJPHint(e) {
        for (var t = 0; t < this.hintActiveTime.length; ++t) {
          if (this.hintActiveTime[t] > 0) {
            this.hintActiveTime[t] -= e;
            this.hintActiveTime[t] <= 0 && this.hideHintPage(t);
          }
          this.hintCD[t] > 0 && (this.hintCD[t] -= e);
        }
        this.hintTipCD > 0 && (this.hintTipCD -= e);
      }
      showHintPage(e, t, o) {
        var n;
        if (0 == this.hintPageNode[e].active) if (o) {
          if (this.hintCD[e] <= 0) {
            (n = this.lotteryHintPage[e].getComponent(cc.Animation)).play(n.getClips()[0].name);
            this.hintActiveTime[e] = t;
            this.hintCD[e] = 300;
            this.changeCoinShow("NodeA", this.lotteryHintPage[e]);
            this.changeCoinShow("NodeB", this.lotteryHintPage[e]);
            this.changeCoinShow("NodeC", this.lotteryHintPage[e]);
          }
        } else {
          (n = this.lotteryHintPage[e].getComponent(cc.Animation)).play(n.getClips()[0].name);
          this.hintActiveTime[e] = t;
          this.changeCoinShow("NodeA", this.lotteryHintPage[e]);
          this.changeCoinShow("NodeB", this.lotteryHintPage[e]);
          this.changeCoinShow("NodeC", this.lotteryHintPage[e]);
        }
      }
      changeCoinShow(e, t) {
        var o = cc.find("Node/" + e, t);
        if (o) {
          var n = o.getComponent(MT3SETB_ChangeCoinSprite_1.ChangeCoinSprite);
          n && n.show();
        }
      }
      hideHintPage(e) {
        var t = this.lotteryHintPage[e].getComponent(cc.Animation);
        t.play(t.getClips()[1].name);
      }
      showHintPageByTip(e) {
        var t = this;
        if (!(this.hintTipCD > 0)) {
          this.hintTipBG.active = true;
          for (var o = 0; o < this.lotteryHintPage.length; ++o) this.showHintPage(o, e), this.hintActiveTime[o] = e;
          this.jpTip.runAction(cc.sequence(cc.delayTime(e), cc.callFunc(function() {
            t.hintTipBG.active = false;
          })));
          this.hintTipCD = .5;
        }
      }
      clickShowTip() {
        this.showHintPageByTip(7);
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_tool_JPOn);
      }
      clickHideTip() {
        if (!(this.hintTipCD > 0)) {
          this.jpTip.stopAllActions();
          for (var e = 0; e < this.lotteryHintPage.length; ++e) {
            this.hideHintPage(e);
            this.hintActiveTime[e] = 0;
          }
          this.hintTipCD = .5;
          this.hintTipBG.active = false;
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_tool_JPOff);
        }
      }
      welcomePage() {
        var e = this;
        this.showHintPageByTip(60);
        this.isWelcomePageOpen = true;
        this.welcomeNode = cc.instantiate(this.welcomePrefab);
        this.welcomePageNode.getChildByName("show").addChild(this.welcomeNode);
        this.welcomePageNode.getChildByName("WelcomeMask").active = true;
        var t = this.welcomeNode.getComponent(cc.Animation), o = t.getClips();
        if (window.welcomePage) 1 == MT3SETB_Comm_1.Comm.app.theme ? t.play(o[3].name) : 1 == MT3SETB_Comm_1.Comm.app.room ? t.play(o[5].name) : t.play(o[4].name); else {
          window.welcomePage = 1;
          1 == MT3SETB_Comm_1.Comm.app.theme ? t.play(o[3].name) : 1 == MT3SETB_Comm_1.Comm.app.room ? t.play(o[5].name) : t.play(o[4].name);
        }
        t.once("finished", function() {
          e.welcomePageClose();
        });
      }
      welcomePageClose() {
        var e = this;
        MT3SETB_ui_1.CloseUIByOrder(MT3SETB_ui_1.UIType.Welcome, function() {
          e.isWelcomePageOpen = false;
          e.welcomeNode.destroy();
          e.welcomeNode = null;
          e.welcomePageNode.getChildByName("WelcomeMask").active = false;
          e.showHintPageByTip(7);
        });
      }
    };
    __decorate([ property(cc.Prefab) ], LotteryMgr.prototype, "jpShowPrefab", void 0);
    __decorate([ property(cc.Prefab) ], LotteryMgr.prototype, "jpWheelPrefab", void 0);
    __decorate([ property(cc.Prefab) ], LotteryMgr.prototype, "jpFishBallPrefab", void 0);
    __decorate([ property(cc.Node) ], LotteryMgr.prototype, "lotteryNode", void 0);
    __decorate([ property(cc.Node) ], LotteryMgr.prototype, "lotteryBGLight", void 0);
    __decorate([ property(cc.Node) ], LotteryMgr.prototype, "doubleNumShow", void 0);
    __decorate([ property(cc.Label) ], LotteryMgr.prototype, "lotteryTotalNum", void 0);
    __decorate([ property(cc.Node) ], LotteryMgr.prototype, "lotteryShowMask", void 0);
    __decorate([ property(cc.Node) ], LotteryMgr.prototype, "lotteryHintPage", void 0);
    __decorate([ property(cc.Node) ], LotteryMgr.prototype, "lotteryHintText", void 0);
    __decorate([ property(cc.Node) ], LotteryMgr.prototype, "lotteryNum", void 0);
    __decorate([ property(cc.SpriteFrame) ], LotteryMgr.prototype, "lotteryWheelSprite", void 0);
    __decorate([ property(cc.Node) ], LotteryMgr.prototype, "jpTip", void 0);
    __decorate([ property(cc.Prefab) ], LotteryMgr.prototype, "welcomePrefab", void 0);
    __decorate([ property(cc.Node) ], LotteryMgr.prototype, "welcomePageNode", void 0);
    LotteryMgr = __decorate([ ccclass ], LotteryMgr);
    exports.LotteryMgr = LotteryMgr;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../common/api/MT3SETB-ui": "MT3SETB-ui",
    "../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "../system/MT3SETB-LangList": "MT3SETB-LangList",
    "./MT3SETB-ChangeCoinSprite": "MT3SETB-ChangeCoinSprite",
    "./MT3SETB-LangImg": "MT3SETB-LangImg",
    "./MT3SETB-Roulette": "MT3SETB-Roulette"
  } ],
  "MT3SETB-LsBullet": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "78338vS5mlFNKLk6jNxFbCN", "MT3SETB-LsBullet");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const MT3SETB_Bullet_1 = require("../MT3SETB-Bullet");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let LsBullet = class LsBullet extends MT3SETB_Bullet_1.Bullet {
      constructor() {
        super(...arguments);
        this.hitFishNode = null;
        this.hitFish = null;
      }
      setup() {
        super.setup();
        this.node.opacity = 255;
      }
      update(e) {
        super.update(e);
        if (this.hitFish && this.hitFishId && this.used) {
          if (!this.hitFishNode.isValid || !this.hitFish.isUsed()) {
            this.hitFishId = 0;
            this.hitFish = null;
            this.hitFishNode = null;
            return;
          }
          {
            let lockPos = MT3SETB_Comm_1.Comm.shootMgr.getLockPosition(false, this.hitFish.node);
            this.endPos = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.bulletLayer, MT3SETB_Comm_1.Comm.node.fishLayer, lockPos);
          }
          let dist = this.endPos.sub(cc.v2(this.node.position));
          if (dist.magSqr() < this.speed * this.speed * e * e) if (this.hitFishNode.isValid && this.hitFish.isUsed()) this.aimFinished(); else {
            this.destroyBullet();
            MT3SETB_Comm_1.Comm.bankSys.addCoin("bullet", this.owner, -this.bet);
            MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.owner, this.bet);
          } else {
            const dir = dist.normalize();
            this.node.angle = cc.misc.radiansToDegrees(Math.atan2(dir.y, dir.x)) - 90;
            this.vel = dir.mul(this.speed);
            this.updatePos(e);
          }
        }
      }
      aiming() {
        var _a;
        if (this.hitFishId > 0) {
          this.hitFish = MT3SETB_Comm_1.Comm.fishMgr.getFishById(this.hitFishId);
          this.hitFishNode = null === (_a = this.hitFish) || void 0 === _a ? void 0 : _a.lockNode;
          this.endPos = cc.v2(this.hitFishNode.position);
        } else {
          this.hitFish = null;
          this.hitFishNode = null;
        }
      }
      changeTarget(newTargetId) {
        super.changeTarget(newTargetId);
        this.aiming();
      }
      updateOpacity() {
        this.node.opacity = 255;
      }
      destroyBullet() {
        super.destroyBullet();
        this.isMe && MT3SETB_Comm_1.Comm.gameCtrl.reduceShootCnt();
        this.hitFishId = 0;
        this.hitFish = null;
        this.hitFishNode = null;
      }
    };
    LsBullet = __decorate([ ccclass ], LsBullet);
    exports.default = LsBullet;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm",
    "../MT3SETB-Bullet": "MT3SETB-Bullet"
  } ],
  "MT3SETB-LsEffectMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "9a78fkTBEtHiJkThcI7XjNF", "MT3SETB-LsEffectMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const MT3SETB_timeline_1 = require("../../common/api/MT3SETB-timeline");
    const MT3SETB_Game_1 = require("../../system/MT3SETB-Game");
    const MT3SETB_EffectMgr_1 = require("../MT3SETB-EffectMgr");
    const MT3SETB_LsRewardCircle_1 = __importDefault(require("./MT3SETB-LsRewardCircle"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    const COIN_DISTANCE = 50;
    const COIN_MOVE_DELAY = .1;
    const COIN_JUMP_TIME = .2;
    const COIN_JUMP_PAUSE = .4;
    const COIN_JUMP_HEIGHT = 50;
    const COIN_MOVE_TIME = .5;
    const COIN_FADE_TIME = .5;
    const BUBBLE_SET_COUNT = 30;
    const BUBBLE_SET_MAX = 40;
    const BUBBLE_POS_X_MIN = -300;
    const BUBBLE_POS_X_MAX = 1580;
    const BUBBLE_START_POS_Y_RANGE = 2150;
    const BUBBLE_END_POS_Y = 1e3;
    const MAX_HEIGHT = 720;
    const MIN_HEIGHT = 10;
    const MAX_TIME = .6;
    const MIN_TIME = .1;
    let LsEffectMgr = class LsEffectMgr extends MT3SETB_EffectMgr_1.EffectMgr {
      getBgImagePath() {
        return "bg";
      }
      getRandomVector(xMin, xMax, yMin, yMax) {
        return new cc.Vec2(Math.random() * (xMax - xMin) + xMin, Math.random() * (yMax - yMin) + yMin);
      }
      showFishWave() {
        let me = this;
        let waveParent = new cc.Node("fishWave");
        let totalAnimDuration = 0;
        for (let i = 0; i < BUBBLE_SET_COUNT; i++) for (let j = 0; j <= BUBBLE_SET_MAX - i - 1; j++) {
          let bubble = MT3SETB_Comm_1.Comm.dataMgr.bubbleFxPool.get();
          bubble.setScale(i / BUBBLE_SET_COUNT * 2.3 + .3);
          let startPosMaxY = -700 * i / BUBBLE_SET_COUNT;
          let startPosMinY = -BUBBLE_START_POS_Y_RANGE - startPosMaxY;
          let startPos = this.getRandomVector(BUBBLE_POS_X_MIN, BUBBLE_POS_X_MAX, startPosMinY, startPosMaxY);
          let endPos = this.getRandomVector(BUBBLE_POS_X_MIN, BUBBLE_POS_X_MAX, BUBBLE_END_POS_Y, BUBBLE_END_POS_Y + 1);
          let bubbleDuration = (1e3 - startPos.y) / 1550;
          totalAnimDuration = Math.max(totalAnimDuration, bubbleDuration);
          bubble.setPosition(startPos);
          bubble.setParent(waveParent);
          bubble.runAction(cc.sequence(cc.moveTo(bubbleDuration, endPos), cc.callFunc(() => MT3SETB_Comm_1.Comm.dataMgr.bubbleFxPool.return(bubble))));
        }
        waveParent.setParent(cc.director.getScene());
        waveParent.runAction(cc.sequence(cc.delayTime(totalAnimDuration), cc.callFunc(() => me.isFishWaving = false)));
      }
      getCoinMoveTime(coinPos, targetPos) {
        let d = Math.abs(coinPos.y - targetPos.y);
        let s = (MAX_TIME - MIN_TIME) / (MAX_HEIGHT - MIN_HEIGHT);
        let moveTime = s * (d - MIN_HEIGHT) + MIN_TIME;
        return moveTime;
      }
      showGetCoinForFish(seat, fish, amount, fishPos, coinIndex, i = false, a = true, r = null, s = true, c = false) {
        let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == seat;
        a && fish.id > 0 && this.showCoinText(amount, fishPos, isLocalPlayer);
        if (MT3SETB_Comm_1.Comm.fishMgr.isGroupFish(fish)) return;
        let d = this, dataMgr = MT3SETB_Comm_1.Comm.dataMgr, turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(seat), fishMul = 2, coinData = {
          coinCount: 1,
          coinAnimName: "coin_gold"
        };
        if (fish) {
          fishMul = fish.getOdds();
          coinData = this.getCoinData(fishMul, isLocalPlayer);
        }
        let coinNodes = dataMgr.getLsCoins(coinData.coinCount);
        let translatedFishPos = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.rewardLayer, MT3SETB_Comm_1.Comm.node.effectLayer, fishPos);
        this.arrangeCoinPositions(coinData.coinAnimName, coinNodes, translatedFishPos);
        let coinNum = 1;
        for (let coin of coinNodes) {
          coin.active = true;
          coin.parent = MT3SETB_Comm_1.Comm.node.rewardLayer;
          coin.setSiblingIndex(MT3SETB_Comm_1.Comm.node.rewardLayer.childrenCount);
          let coinAnim = coin.getComponentInChildren(cc.Animation);
          coinAnim && (coinAnim.hasAnimationState(coinData.coinAnimName) ? coinAnim.play(coinData.coinAnimName) : coinAnim.play());
          let isFirstCoin = 1 == coinNum;
          let coinPos = new cc.Vec2(coin.position.x, coin.position.y);
          let jumpPosY = 0;
          coin.opacity = 0;
          if (MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown) {
            coin.scaleX = -1;
            coin.scaleY = -1;
            jumpPosY = coinPos.y - COIN_JUMP_HEIGHT;
          } else {
            coin.scaleX = 1;
            coin.scaleY = 1;
            jumpPosY = coinPos.y + COIN_JUMP_HEIGHT;
          }
          coin.runAction(cc.sequence(cc.delayTime(COIN_MOVE_DELAY * coinNum), cc.callFunc(() => coin.opacity = 255), cc.moveTo(COIN_JUMP_TIME, new cc.Vec2(coinPos.x, jumpPosY)), cc.delayTime(COIN_JUMP_PAUSE), cc.moveTo(COIN_JUMP_TIME, coinPos), cc.delayTime(COIN_JUMP_PAUSE), cc.moveTo(this.getCoinMoveTime(coinPos, turret.goldCoinPosEL), turret.goldCoinPosEL), cc.callFunc(() => {
            if (isFirstCoin) {
              turret.showBalanceUpdate(fishMul, amount);
              d.showBalanceIncreaseAmount(amount, turret, isLocalPlayer);
            }
          }), cc.fadeOut(COIN_FADE_TIME), cc.callFunc(function() {
            coin.active = false;
            dataMgr.returnLsCoin(coin);
          })));
          coinNum++;
        }
      }
      showCoinText(amount, pos, isLocalPlayer = true) {
        var n = MT3SETB_Comm_1.Comm.dataMgr.getCoin(isLocalPlayer ? 0 : 1), i = this.fishAmtPopupParent;
        n.parent = i || MT3SETB_Comm_1.Comm.node.effectLayer;
        n.parent && n.setSiblingIndex(n.parent.childrenCount);
        n.setPosition(pos);
        n.opacity = 255;
        n.zIndex = MT3SETB_Game_1.eZIndex.Coin_3;
        n.getComponentInChildren(cc.Label).string = MT3SETB_Comm_1.Comm.getThousandsNum4(amount);
        n.runAction(cc.sequence(cc.delayTime(.5), cc.fadeOut(.2).easing(cc.easeIn(2)), cc.callFunc(function() {
          MT3SETB_Comm_1.Comm.dataMgr.setCoin(n);
        })));
      }
      rewardCircle(medal, seat, winAmount, isPlayer, bet, bonus, fishNo, s, c) {
        var rewardCircle = MT3SETB_Comm_1.Comm.dataMgr.getRewardCircle(fishNo).getComponent(MT3SETB_LsRewardCircle_1.default);
        rewardCircle && rewardCircle.init(isPlayer, medal, seat, winAmount, Date.now(), 6, bet, bonus, null, s, c);
        rewardCircle.setFishNo(fishNo);
        var playerTurret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(seat);
        if (playerTurret) {
          var rewardInfo = playerTurret.getRewardInfo();
          MT3SETB_Comm_1.Comm.runTask(0, function() {
            rewardInfo.list.push(rewardCircle), rewardInfo.list.sort(function(e, t) {
              return e.getWeight() === t.getWeight() ? e.getTime() - t.getTime() : t.getWeight() - e.getWeight();
            });
          });
        }
        return rewardCircle;
      }
      showRainbowWheel(medal, seat, winAmount, isPlayer, bet, bonus, fishNo) {
        this.rewardCircle(medal, seat, winAmount, isPlayer, bet, bonus, fishNo);
      }
      showBalanceIncreaseAmount(amount, turret, isLocalPlayer) {
        var textNode = MT3SETB_Comm_1.Comm.dataMgr.getCoin(isLocalPlayer ? 0 : 1);
        textNode.parent = this.fishAmtPopupParent || MT3SETB_Comm_1.Comm.node.effectLayer;
        let direction = turret.isUpsideDown() ? -1 : 1;
        let turretCoinTextPos = MT3SETB_Comm_1.Comm.transPos(textNode.parent, turret.coinText.node.parent, turret.coinText.node.position);
        let coinTextPos = new cc.Vec2(turretCoinTextPos.x, turretCoinTextPos.y + 90 * direction);
        textNode.setPosition(coinTextPos);
        textNode.opacity = 255;
        textNode.scale = 0;
        textNode.zIndex = MT3SETB_Game_1.eZIndex.Coin_3;
        textNode.getComponentInChildren(cc.Label).string = `+${MT3SETB_Comm_1.Comm.getThousandsNum4(amount)}`;
        textNode.runAction(cc.sequence(cc.scaleTo(.1, 1), cc.moveBy(.5, 0, 20 * direction), cc.callFunc(function() {
          textNode.opacity = 0;
          MT3SETB_Comm_1.Comm.dataMgr.setCoin(textNode);
        })));
      }
      getCoinData(fishMul, isLocalPlayer) {
        let flyCoinName = isLocalPlayer ? "coin_gold" : "coin_silver";
        let count = 2;
        return {
          coinCount: count,
          coinAnimName: flyCoinName
        };
      }
      arrangeCoinPositions(coinName, coinNodes, fishPos) {
        let startPos = fishPos.x - COIN_DISTANCE * (coinNodes.length - 1) / 2;
        for (let i = 0; i < coinNodes.length; i++) {
          let coinNode = coinNodes[i];
          coinNode.x = startPos + COIN_DISTANCE * i;
          coinNode.y = fishPos.y;
        }
      }
      freezeFishes() {
        let timeline = MT3SETB_timeline_1.GetTimeLine();
        if (!timeline) return;
        if (timeline.pauseTime > 0 || this.isfreezing) return;
        this.isfreezing = true;
        timeline.enable = false;
        timeline.pauseTime = 5;
        const effectMgr = this;
        MT3SETB_Comm_1.Comm.runTask({
          target: this,
          times: cc.macro.REPEAT_FOREVER
        }, function(task) {
          if (timeline.pauseTime > 0) return;
          timeline.enable = true;
          effectMgr.isfreezing = false;
          MT3SETB_Comm_1.Comm.delTask(task);
        });
      }
    };
    LsEffectMgr = __decorate([ ccclass ], LsEffectMgr);
    exports.default = LsEffectMgr;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm",
    "../../common/api/MT3SETB-timeline": "MT3SETB-timeline",
    "../../system/MT3SETB-Game": "MT3SETB-Game",
    "../MT3SETB-EffectMgr": "MT3SETB-EffectMgr",
    "./MT3SETB-LsRewardCircle": "MT3SETB-LsRewardCircle"
  } ],
  "MT3SETB-LsFishMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "71959Bo1ExHDpwPhH7r7hzT", "MT3SETB-LsFishMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_FishMgr_1 = require("../MT3SETB-FishMgr");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let LsFishMgr = class LsFishMgr extends MT3SETB_FishMgr_1.FishMgr {
      onFishSpawnEvent(e) {}
    };
    LsFishMgr = __decorate([ ccclass ], LsFishMgr);
    exports.default = LsFishMgr;
    cc._RF.pop();
  }, {
    "../MT3SETB-FishMgr": "MT3SETB-FishMgr"
  } ],
  "MT3SETB-LsLotteryMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ad0f1CpmulFFpj+Jjh9gYKY", "MT3SETB-LsLotteryMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_LotteryMgr_1 = require("../MT3SETB-LotteryMgr");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let LsLotteryMgr = class LsLotteryMgr extends MT3SETB_LotteryMgr_1.LotteryMgr {
      start() {}
      update(e) {}
      show(e, t, o, n) {}
      mountain_move() {}
      setBGLight(e) {}
      setTotalNum(e, t) {}
      maskEvent(e, t) {}
      setJPBoard(e) {}
      changeBet() {}
      updateJPBoard(e) {}
      updateJPShow(e) {}
      resetJpBoardNum(e) {}
      jpFishWheel(e, t, o, n, a, r, c, l) {}
      shiningJpBoard(e) {}
      getjpBetStage() {
        return [];
      }
      updateJPHint(e) {}
      showHintPage(e, t, o) {}
      changeCoinShow(e, t) {}
      hideHintPage(e) {}
      showHintPageByTip(e) {}
      clickShowTip() {}
      clickHideTip() {}
      welcomePage() {}
      welcomePageClose() {}
    };
    LsLotteryMgr = __decorate([ ccclass ], LsLotteryMgr);
    exports.default = LsLotteryMgr;
    cc._RF.pop();
  }, {
    "../MT3SETB-LotteryMgr": "MT3SETB-LotteryMgr"
  } ],
  "MT3SETB-LsRewardCircle": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "acda9X+7opKh5u15Hbcq2gh", "MT3SETB-LsRewardCircle");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const MT3SETB_RewardCircle_1 = require("../MT3SETB-RewardCircle");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let LsRewardCircle = class LsRewardCircle extends MT3SETB_RewardCircle_1.RewardCircle {
      constructor() {
        super(...arguments);
        this.spineAnim = null;
        this.fishSprite = null;
        this.fishName = null;
        this.fishNo = 0;
      }
      init(e, t, o, n, i, a, r, s, c, l, u) {
        super.init(e, t, o, n, i, a, r, s, c, l, u);
      }
      setFishNo(fishNo) {
        this.fishNo = fishNo;
      }
      getCirclePosition(turret) {
        let pos = turret.getEffectPointPos(true);
        let offset = 45;
        turret.uiNo < 3 && (offset = -offset);
        turret.isUpsideDown() && (pos = cc.v2(pos.x, -pos.y + offset));
        return pos;
      }
      formatMoneyText() {
        return MT3SETB_Comm_1.Comm.getThousandsNum4(this.money);
      }
      play() {
        var _a;
        this.node.scale = 1;
        this.spineAnim.node.active = true;
        this.coin.node.active = true;
        this.changeCoin();
        let deathEffectInfo = null === (_a = MT3SETB_Comm_1.Comm.dataMgr.fishJsonData[this.fishNo]) || void 0 === _a ? void 0 : _a.DeathEffectInfo;
        if (deathEffectInfo) {
          let imageName = deathEffectInfo.avatar.split(".")[0];
          let fishUiAtlas = MT3SETB_Comm_1.Comm.dataMgr.fishData.fishUiAtlas;
          var spriteFrame = fishUiAtlas.getSpriteFrame(imageName);
          this.fishSprite.spriteFrame = spriteFrame;
          this.fishSprite.node.active = true;
          let bannerName = deathEffectInfo.banner.split(".")[0];
          let fishTextUiAtlas = MT3SETB_Comm_1.Comm.dataMgr.fishData.fishTextUiAtlas;
          this.fishName.spriteFrame = fishTextUiAtlas.getSpriteFrame(bannerName);
          this.fishName.node.active = true;
        }
        let self = this;
        this.spineAnim.setAnimation(0, "zhuanpanzhuandong", false);
        this.spineAnim.setCompleteListener(() => {
          self.spineAnim.node.active = false;
          self.coin.node.active = false;
          self.fishSprite.node.active = false;
          self.fishName.node.active = false;
        });
      }
      playSound() {}
    };
    __decorate([ property(sp.Skeleton) ], LsRewardCircle.prototype, "spineAnim", void 0);
    __decorate([ property(cc.Sprite) ], LsRewardCircle.prototype, "fishSprite", void 0);
    __decorate([ property(cc.Sprite) ], LsRewardCircle.prototype, "fishName", void 0);
    LsRewardCircle = __decorate([ ccclass ], LsRewardCircle);
    exports.default = LsRewardCircle;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm",
    "../MT3SETB-RewardCircle": "MT3SETB-RewardCircle"
  } ],
  "MT3SETB-LuckyBagMoveMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "5160a+SnoFNlY2MkzuNdEa6", "MT3SETB-LuckyBagMoveMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.LuckyBagMoveMgr = void 0;
    const MT3SETB_timeline_1 = require("../common/api/MT3SETB-timeline");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const {ccclass: ccclass} = cc._decorator;
    let LuckyBagMoveMgr = class LuckyBagMoveMgr extends cc.Component {
      constructor() {
        super();
        this.duration = 0;
        this.moveStart = false;
        this.moveRange = null;
        this.isJumping = false;
        this.isJumpingIn = true;
        this.fish = null;
        this.isMirror = false;
      }
      init(e, t) {
        this.moveRange = new cc.Rect(t.x - 500, t.y - 300, 1e3, 500);
        this.duration = e;
        this.fish = this.getComponent(MT3SETB_Fish_1.Fish);
        this.isMirror = 0 != MT3SETB_Comm_1.Comm.node.fishLayer.angle;
      }
      update() {
        if (this.moveStart) {
          if (!this.isJumping) {
            this.isJumping = true;
            this.jump();
          }
        } else this.readyToJump();
      }
      readyToJump() {
        var e = this;
        this.fish.stopPathMove();
        this.node.setPosition(cc.v3(this.moveRange.center).add(cc.v3(1e3, 0)));
        this.node.opacity = 255;
        this.getComponent(MT3SETB_Fish_1.Fish).spineAnims[0].setAnimation(0, "animation", true);
        MT3SETB_timeline_1.getPathMoveMgr().addAction(cc.speed(cc.repeatForever(cc.sequence(cc.delayTime(.1), cc.callFunc(function() {
          e.duration -= .1;
        }))), 1), this.node, false);
        this.moveStart = true;
      }
      jump() {
        var e = this, t = this.duration <= 0, o = this.node.position, r = null, s = 0;
        if (this.isJumpingIn) {
          r = cc.v3(this.moveRange.center);
          s = this.isMirror ? Math.min(o.y, r.y) - 200 : Math.max(o.y, r.y) + 200;
          this.isJumpingIn = false;
        } else if (t) {
          r = cc.v3(this.moveRange.center).add(cc.v3(Math.random() > .5 ? 1e3 : -1e3, 0));
          s = this.isMirror ? Math.min(o.y, r.y) - 200 : Math.max(o.y, r.y) + 200;
        } else {
          do {
            r = cc.v3(MT3SETB_Comm_1.Comm.iRand(this.moveRange.xMin, this.moveRange.xMax), MT3SETB_Comm_1.Comm.iRand(this.moveRange.yMin, this.moveRange.yMax));
          } while (r.sub(o).mag() < 250);
          r = o.add(r.sub(o).normalize().mul(250));
          s = this.isMirror ? Math.min(o.y, r.y) - 150 : Math.max(o.y, r.y) + 150;
        }
        var c = cc.tween(this.node).parallel(cc.tween(this.node).by(.33, {
          y: s - o.y
        }, {
          easing: function(e) {
            return 1 - Math.pow(1 - e, 2);
          }
        }), cc.tween(this.node).by(.33, {
          x: (r.x - o.x) / 2
        })).parallel(cc.tween(this.node).by(.33, {
          y: r.y - s
        }, {
          easing: function(e) {
            return Math.pow(e, 2);
          }
        }), cc.tween(this.node).by(.33, {
          x: (r.x - o.x) / 2
        })).call(function() {
          e.node.getChildByName("NewYearPack_smoke").getComponent(cc.Animation).play();
        }).delay(1.34).call(function() {
          t ? e.getComponent(MT3SETB_Fish_1.Fish).destroyFish(false, true) : e.jump();
        });
        this.fish.speedAction = cc.speed(c.union()._actions[0], 1);
        MT3SETB_timeline_1.getPathMoveMgr().addAction(this.fish.speedAction, this.node, false);
      }
    };
    LuckyBagMoveMgr = __decorate([ ccclass ], LuckyBagMoveMgr);
    exports.LuckyBagMoveMgr = LuckyBagMoveMgr;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-timeline": "MT3SETB-timeline",
    "./MT3SETB-Fish": "MT3SETB-Fish"
  } ],
  "MT3SETB-Mask": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "f8ab27TJHROyr2132jPCbRO", "MT3SETB-Mask");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Mask = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let Mask = class Mask extends cc.Component {
      constructor() {
        super();
        this.top = null;
        this.bottom = null;
        this.left = null;
        this.right = null;
      }
      start() {
        MT3SETB_Comm_1.Comm.app.registResizeCallback(this.maskSetup.bind(this));
        this.maskSetup();
      }
      maskSetup() {}
    };
    __decorate([ property(cc.Node) ], Mask.prototype, "top", void 0);
    __decorate([ property(cc.Node) ], Mask.prototype, "bottom", void 0);
    __decorate([ property(cc.Node) ], Mask.prototype, "left", void 0);
    __decorate([ property(cc.Node) ], Mask.prototype, "right", void 0);
    Mask = __decorate([ ccclass ], Mask);
    exports.Mask = Mask;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-Menu": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "f84d6qam4hFgL4Pd0dW91Mr", "MT3SETB-Menu");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const MT3SETB_platform_1 = require("../../common/api/MT3SETB-platform");
    const MT3SETB_track_1 = require("../../common/api/MT3SETB-track");
    const MT3SETB_WebPage_1 = require("../../system/MT3SETB-WebPage");
    const MT3SETB_SoundConst_1 = require("../MT3SETB-SoundConst");
    const MT3SETB_InGamePanelLS_1 = __importDefault(require("../MT3SETB-InGamePanelLS"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let Menu = class Menu extends cc.Component {
      constructor() {
        super(...arguments);
        this.anim = null;
        this.exitBtn = null;
        this.broadcastOffMark = null;
        this.soundOffMark = null;
        this.joystickOffMark = null;
        this.cannonBtn = null;
        this.fishShadowBtn = null;
        this.fishShadowOffmark = null;
        this.reportBtn = null;
        this.serviceBtn = null;
        this.fishRate = null;
        this.skinChange = null;
        this.backingExitNode = null;
        this.backToLobbyBtn = null;
        this.showMenu = false;
      }
      start() {
        MT3SETB_Comm_1.Comm.generalmenu = this;
        this.node.active = false;
        this.joystickOffMark.active = true;
        this.backingExitNode.active = false;
        this.fishShadowBtn.active = false;
        this.fishShadowOffmark.active = false;
        this.cannonBtn.active = false;
        this.loadMenuSettings();
        MT3SETB_Comm_1.Comm.app.registResizeCallback(this.onResize.bind(this));
        this.onResize();
      }
      ToggleBroadcast() {
        MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.SIDEBAR_CLICK);
        this.broadcastOffMark.active ? this.broadcastOffMark.active = false : this.broadcastOffMark.active || (this.broadcastOffMark.active = true);
        this.saveMenuSettings();
      }
      ToggleSound() {
        if (this.soundOffMark.active) {
          this.soundOffMark.active = false;
          this.setSound(this.soundOffMark.active);
          MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.SIDEBAR_CLICK);
        } else {
          this.soundOffMark.active = true;
          this.setSound(this.soundOffMark.active);
        }
        this.saveMenuSettings();
      }
      setSound(s) {
        if (s) {
          MT3SETB_Comm_1.Comm.snd.closeBackgroundMusic();
          MT3SETB_Comm_1.Comm.snd.closeEffect();
        } else {
          MT3SETB_Comm_1.Comm.snd.openBackgroundMusic();
          MT3SETB_Comm_1.Comm.snd.openEffect();
        }
      }
      ToggleJoystick() {
        MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.SIDEBAR_CLICK);
        if (this.joystickOffMark.active) {
          this.joystickOffMark.active = false;
          MT3SETB_Comm_1.Comm.joystick.turnJoystickOn();
        } else if (!this.joystickOffMark.active) {
          this.joystickOffMark.active = true;
          MT3SETB_Comm_1.Comm.joystick.turnJoystickOff();
        }
      }
      ToggleFishShadow() {
        MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.SIDEBAR_CLICK);
        this.fishShadowOffmark.active = !this.fishShadowOffmark.active;
        this.fishShadowOffmark.active ? MT3SETB_Comm_1.Comm.shadowCtrl.disableShadow() : MT3SETB_Comm_1.Comm.shadowCtrl.enableShadow();
        this.saveMenuSettings();
      }
      ToggleCannon() {
        MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.SIDEBAR_CLICK);
        this.skinChange && this.skinChange.show();
      }
      get isShowMenu() {
        return this.showMenu;
      }
      set active(v) {
        this.node.active = v;
      }
      get active() {
        return this.node.active;
      }
      ToggleMenu() {
        this.exitBtn && (this.exitBtn.active = !MT3SETB_Comm_1.Comm.app.isSelectRoom);
        let broadcastBtn = this.broadcastOffMark.parent.parent;
        broadcastBtn && (broadcastBtn.active = !MT3SETB_Comm_1.Comm.app.isSelectRoom);
        let joystickBtn = this.joystickOffMark.parent.parent;
        joystickBtn && (joystickBtn.active = !MT3SETB_Comm_1.Comm.app.isSelectRoom);
        this.fishShadowBtn && (this.fishShadowBtn.active = !MT3SETB_Comm_1.Comm.app.isSelectRoom);
        this.cannonBtn && (this.cannonBtn.active = !MT3SETB_Comm_1.Comm.app.isSelectRoom);
        this.reportBtn && (this.reportBtn.active = !MT3SETB_platform_1.IsDisableShowReport());
        this.serviceBtn && (this.serviceBtn.active = !MT3SETB_platform_1.IsDisableShowCustomerService());
        this.backToLobbyBtn && (this.backToLobbyBtn.active = cc.sys.isNative);
        this.showMenu = !this.showMenu;
        this.backingExitNode.active = this.showMenu;
        this.showMenu ? this.anim.play("btns_more_in_amin") : this.anim.play("btns_more_out_amin");
      }
      ToggleRate(e, t, o = true) {
        MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.SIDEBAR_CLICK);
        this.fishRate.show();
      }
      ClickReport(e, t, o = true) {
        MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.SIDEBAR_CLICK);
        var e = MT3SETB_platform_1.GetOfficialUrl();
        e.match("%s") || e.match("undefined") || (cc.sys.isNative ? e += "&device=mobileapp&zoomstyle=app&" : MT3SETB_Comm_1.Comm.app.getLobbyID() > 0 && (e += "&device=webapp&zoomstyle=webapp&"), 
        MT3SETB_platform_1.GetLobbyHM() && (e += "gp=true&"), cc.find("Report", MT3SETB_Comm_1.Comm.node.uiLayer).getComponent(MT3SETB_WebPage_1.WebPage).setUrl(e), 
        cc.find("Report", MT3SETB_Comm_1.Comm.node.uiLayer).getComponent(MT3SETB_WebPage_1.WebPage).show());
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_lobby_ReportOn, e);
      }
      ClickCustomerService() {
        MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.SIDEBAR_CLICK);
      }
      ToggleExit(e, t, o = true) {
        MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.SIDEBAR_CLICK);
        MT3SETB_Comm_1.Comm.uiCtrl && MT3SETB_Comm_1.Comm.uiCtrl.toolEvent(e, t, o);
        this.ToggleMenu();
      }
      onClickBackToLobby() {
        MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.SIDEBAR_CLICK);
        let stage = cc.find("Canvas/Stage");
        if (stage) {
          MT3SETB_Comm_1.Comm.app.unscheduleAllCallbacks();
          stage.destroy();
          console.warn("stage is destroyed");
        }
        MT3SETB_Comm_1.Comm.gameCtrl.leaveTable(false);
      }
      saveMenuSettings() {
        var prefs = {
          broadcast: !this.broadcastOffMark.active,
          sound: !this.soundOffMark.active,
          shadow: !this.fishShadowOffmark.active
        };
        cc.sys.localStorage.setItem("menuSettings", JSON.stringify(prefs));
      }
      loadMenuSettings() {
        this.broadcastOffMark.active = false;
        this.fishShadowOffmark.active = false;
        this.soundOffMark.active = !MT3SETB_Comm_1.Comm.snd.isMusicOpen();
        var s = cc.sys.localStorage.getItem("menuSettings");
        if (!s) return;
        try {
          var settings = JSON.parse(s);
          if (!settings) return;
          this.broadcastOffMark.active = !settings.broadcast;
          this.soundOffMark.active = !settings.sound;
          this.fishShadowOffmark.active = !settings.shadow;
        } catch (e) {
          console.error("Failed to load menu settings:", e);
          return;
        }
        this.setSound(this.soundOffMark.active);
      }
      onResize() {
        let ds = cc.view.getDesignResolutionSize(), size = MT3SETB_Comm_1.Comm.app.winSizeFactor, height = size.height;
        let canvas = cc.find("Canvas");
        this.node.x = size.x + size.x;
        this.node.y = canvas.y;
        this.node.height = height;
        this.node.scale = Math.min(1, height / ds.height);
        this.node.getComponentsInChildren(cc.Widget).forEach(widget => {
          widget.updateAlignment();
        });
      }
    };
    __decorate([ property(cc.Animation) ], Menu.prototype, "anim", void 0);
    __decorate([ property(cc.Node) ], Menu.prototype, "exitBtn", void 0);
    __decorate([ property(cc.Node) ], Menu.prototype, "broadcastOffMark", void 0);
    __decorate([ property(cc.Node) ], Menu.prototype, "soundOffMark", void 0);
    __decorate([ property(cc.Node) ], Menu.prototype, "joystickOffMark", void 0);
    __decorate([ property(cc.Node) ], Menu.prototype, "cannonBtn", void 0);
    __decorate([ property(cc.Node) ], Menu.prototype, "fishShadowBtn", void 0);
    __decorate([ property(cc.Node) ], Menu.prototype, "fishShadowOffmark", void 0);
    __decorate([ property(cc.Node) ], Menu.prototype, "reportBtn", void 0);
    __decorate([ property(cc.Node) ], Menu.prototype, "serviceBtn", void 0);
    __decorate([ property(MT3SETB_InGamePanelLS_1.default) ], Menu.prototype, "fishRate", void 0);
    __decorate([ property(MT3SETB_InGamePanelLS_1.default) ], Menu.prototype, "skinChange", void 0);
    __decorate([ property(cc.Node) ], Menu.prototype, "backingExitNode", void 0);
    __decorate([ property(cc.Node) ], Menu.prototype, "backToLobbyBtn", void 0);
    Menu = __decorate([ ccclass ], Menu);
    exports.default = Menu;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm",
    "../../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../../common/api/MT3SETB-track": "MT3SETB-track",
    "../../system/MT3SETB-WebPage": "MT3SETB-WebPage",
    "../MT3SETB-InGamePanelLS": "MT3SETB-InGamePanelLS",
    "../MT3SETB-SoundConst": "MT3SETB-SoundConst"
  } ],
  "MT3SETB-MermaidEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "71a36c35h5OkoXPqbrKRofC", "MT3SETB-MermaidEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_random_1 = require("../framework/framework/MT3SETB-random");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_FishScreenAura_1 = __importDefault(require("./MT3SETB-FishScreenAura"));
    const MT3SETB_SoundConst_1 = require("./MT3SETB-SoundConst");
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const BASE_WIN_PERCENT = .3;
    const MUL_INTERVAL = 100;
    const BOOM_COIN_SECS = 1;
    const HEART_MOVE_SECS = 1;
    const BOOM_LOOP_SECS = 4.86667;
    const TIME_TO_BOMB = 2.8;
    const MOVE_TO_PLAYER_SECS = 2.5;
    const SHOW_SECS = 1.5;
    const NUM_MERMAIDS = 5;
    const SHAKE_AMOUNT = 24;
    const SHAKE_DURATION = .5;
    const UI_SCALE_DURATION = .2;
    const UI_SCALE_COUNTER = .75;
    const UI_SCALE_PANEL = 1.25;
    const UI_PLAYER_OFFSET = cc.v2(0, 80);
    const ANIM_MERMAID = "ATK";
    const ANIM_HEART_SPIN = "fish_meirenyu_stayheart";
    const ANIM_HEART_BOOM = "fish_meirenyu_effect";
    var State;
    (function(State) {
      State[State["BoomCoin"] = 0] = "BoomCoin";
      State[State["HeartMoveToCenter"] = 1] = "HeartMoveToCenter";
      State[State["Boom"] = 2] = "Boom";
      State[State["HeartMoveToPlayer"] = 3] = "HeartMoveToPlayer";
      State[State["Show"] = 4] = "Show";
    })(State || (State = {}));
    let MermaidEffect = class MermaidEffect extends cc.Component {
      constructor() {
        super(...arguments);
        this.pointsContainer = null;
        this.centerHeart = null;
        this.pointsPanel = null;
        this.pointsPanelBackingGreen = null;
        this.pointsPanelBackingAmethyst = null;
        this.pointsLabel = null;
        this.explosionCounter = null;
        this.explosionCounterLabel = null;
        this.boomCoinAnim = null;
        this.mermaidGreen = null;
        this.mermaidAmethyst = null;
        this.screenAura = null;
        this.fishLayerStartPos = cc.Vec3.ZERO;
        this.hitData = null;
        this.turret = null;
        this.fishNo = -1;
        this.startTimeMs = 0;
        this.baseWin = 0;
        this.explosionWinnings = [];
        this.totalBombTimes = 0;
        this.remainingBombs = 0;
        this.bombTimes = 0;
        this.currentPoints = 0;
        this.timeLeft = 0;
        this.hasScaledPointsPanel = false;
        this.hasBoom = false;
        this.timeToBomb = 0;
        this.mermaids = [];
        this.state = State.BoomCoin;
        this.random = null;
        this.newPlayerJoinedHandler = null;
      }
      initialize(fishLayerStartPos, hitData, mermaid = null) {
        var _a, _b;
        this.fishLayerStartPos = fishLayerStartPos;
        this.hitData = hitData;
        this.turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(this.hitData.seat);
        this.fishNo = mermaid ? mermaid.no : hitData.fishId;
        this.startTimeMs = Date.now();
        this.random = new MT3SETB_random_1.PseudoRandom(hitData.seed);
        this.initExplosions();
        null === (_a = this.screenAura) || void 0 === _a ? void 0 : _a.startAura();
        if (null != mermaid) {
          MT3SETB_Comm_1.Comm.fishMgr.playDeathFishSoundEffect(mermaid.getFishNo());
          mermaid.node.runAction(cc.sequence(cc.repeat(cc.sequence(cc.callFunc(() => {
            mermaid.damageTint(true, 255);
          }), cc.moveBy(.025, 15, 0), cc.moveBy(.025, -15, 0), cc.moveBy(.025, 0, 15), cc.moveBy(.025, 0, -15)), 20), cc.callFunc(() => {
            MT3SETB_Comm_1.Comm.fishMgr.delFish(mermaid, false, true);
            if (cc.isValid(this, true)) {
              this.updatePlayerBalance(this.baseWin);
              let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat;
              MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, this.hitData.seat, this.baseWin, isLocalPlayer, this.hitData.bet, 0, this.fishNo);
            }
          })));
        } else this.updatePlayerBalance(this.baseWin);
        this.pointsContainer.parent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
        if (this.bombTimes > 0) {
          this.hasScaledPointsPanel = true;
          this.pointsPanel.scale = UI_SCALE_PANEL;
        }
        this.pointsPanelBackingGreen.active = this.fishNo == MT3SETB_Game_1.mtfBFishNo.GreenMermaid;
        this.pointsPanelBackingAmethyst.active = this.fishNo == MT3SETB_Game_1.mtfBFishNo.AmethystMermaid;
        let counterValue = Math.min(this.bombTimes + 1, this.totalBombTimes);
        this.explosionCounterLabel.string = `${counterValue}`;
        if (this.state == State.BoomCoin) {
          let boomPos = MT3SETB_Comm_1.Comm.transPos3D(this.boomCoinAnim.node.parent, MT3SETB_Comm_1.Comm.node.fishLayer, fishLayerStartPos);
          this.boomCoinAnim.node.setPosition(boomPos);
          this.boomCoinAnim.node.opacity = 255;
          this.boomCoinAnim.play();
        } else this.boomCoinAnim.node.opacity = 0;
        let mermaidPrefab = this.fishNo == MT3SETB_Game_1.mtfBFishNo.GreenMermaid ? this.mermaidGreen : this.mermaidAmethyst;
        for (let i = 0; i < NUM_MERMAIDS; i++) {
          let mermaid = null === (_b = cc.instantiate(mermaidPrefab)) || void 0 === _b ? void 0 : _b.getComponent(sp.Skeleton);
          if (mermaid) {
            mermaid.node.setParent(this.node);
            mermaid.node.setPosition(0, 0);
            mermaid.node.angle = 360 / NUM_MERMAIDS * i;
            mermaid.node.opacity = 0;
            this.mermaids.push(mermaid);
          }
        }
        if (this.state == State.Boom) {
          let animSecs = BOOM_LOOP_SECS - this.timeLeft;
          for (let mermaid of this.mermaids) {
            let track = mermaid.setAnimation(0, ANIM_MERMAID, false);
            track.trackTime = animSecs;
            mermaid.node.opacity = 255;
          }
        }
        this.centerHeart.setAnimation(0, ANIM_HEART_SPIN, true);
        this.centerHeart.node.opacity = this.state > State.BoomCoin ? 255 : 0;
        this.state == State.HeartMoveToCenter ? this.moveHeartToCenter() : this.state == State.HeartMoveToPlayer ? this.moveHeartToPlayer() : this.state == State.Show && this.pointsContainer.setPosition(this.getHeartPlayerPos());
      }
      initExplosions() {
        this.baseWin = Math.floor(this.hitData.coin * BASE_WIN_PERCENT);
        let explosionsWin = this.hitData.coin - this.baseWin;
        let mul = explosionsWin / this.hitData.bet;
        this.totalBombTimes = Math.ceil(mul / MUL_INTERVAL);
        this.remainingBombs = this.totalBombTimes;
        let winPerExplosion = Math.floor(explosionsWin / this.totalBombTimes);
        for (let i = 0; i < this.totalBombTimes; i++) {
          this.explosionWinnings.push(winPerExplosion);
          explosionsWin -= winPerExplosion;
        }
        this.explosionWinnings[this.explosionWinnings.length - 1] += explosionsWin;
        this.bombTimes = 0;
        this.state = State.BoomCoin;
        this.timeLeft = BOOM_COIN_SECS;
        if (this.hitData.time) {
          let totalBombDuration = BOOM_LOOP_SECS * this.totalBombTimes;
          let statesData = [ {
            state: State.BoomCoin,
            duration: BOOM_COIN_SECS
          }, {
            state: State.HeartMoveToCenter,
            duration: HEART_MOVE_SECS
          }, {
            state: State.Boom,
            duration: totalBombDuration
          }, {
            state: State.HeartMoveToPlayer,
            duration: MOVE_TO_PLAYER_SECS
          }, {
            state: State.Show,
            duration: SHOW_SECS
          } ];
          let nextStateTime = 0;
          for (let stateData of statesData) {
            nextStateTime += stateData.duration;
            if (this.hitData.time < nextStateTime) {
              this.state = stateData.state;
              this.timeLeft = nextStateTime - this.hitData.time;
              break;
            }
          }
          if (this.state == State.Boom) {
            this.bombTimes = Math.floor((totalBombDuration - this.timeLeft) / BOOM_LOOP_SECS);
            this.remainingBombs -= this.bombTimes;
            this.timeLeft -= (this.remainingBombs - 1) * BOOM_LOOP_SECS;
            this.timeToBomb = this.timeLeft - (BOOM_LOOP_SECS - TIME_TO_BOMB);
            this.hasBoom = this.timeToBomb <= 0;
          } else if (this.state > State.Boom) {
            this.bombTimes = this.totalBombTimes;
            this.remainingBombs = 0;
          }
        }
        let winnings = 0;
        for (let i = 0; i < this.bombTimes; i++) winnings += this.explosionWinnings[i];
        this.currentPoints = winnings;
        this.updatePlayerBalance(winnings);
      }
      update(dt) {
        if (null == this.turret || this.turret.state == MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          this.dispose();
          return;
        }
        this.timeLeft = Math.max(0, this.timeLeft - dt);
        if (0 == this.timeLeft) if (this.state == State.BoomCoin) {
          this.state = State.HeartMoveToCenter;
          this.timeLeft = HEART_MOVE_SECS;
          this.moveHeartToCenter();
        } else if (this.state == State.HeartMoveToCenter) {
          this.state = State.Boom;
          this.resetBoomState();
        } else if (this.state == State.Boom) {
          this.remainingBombs--;
          if (this.remainingBombs <= 0) {
            this.state = State.HeartMoveToPlayer;
            this.timeLeft = MOVE_TO_PLAYER_SECS;
            this.centerHeart.setAnimation(0, ANIM_HEART_SPIN, true);
            this.moveHeartToPlayer();
            for (let mermaid of this.mermaids) mermaid.node.opacity = 0;
          } else {
            this.bombTimes++;
            this.resetBoomState();
          }
        } else if (this.state == State.HeartMoveToPlayer) {
          this.state = State.Show;
          this.timeLeft = SHOW_SECS;
        } else if (this.state == State.Show) {
          let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat;
          let winSum = this.explosionWinnings.reduce((one, two) => one + two, 0);
          MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, this.hitData.seat, winSum, isLocalPlayer, this.hitData.bet, 0, this.fishNo);
          this.dispose();
        }
        if (this.state == State.Boom && !this.hasBoom) {
          this.timeToBomb -= dt;
          if (this.timeToBomb <= 0) {
            this.boom();
            this.hasBoom = true;
          }
        }
        let times = this.bombTimes;
        this.hasBoom && this.remainingBombs > 1 && times++;
        let showUi = this.state > State.HeartMoveToCenter;
        this.pointsPanel.opacity = showUi ? 255 : 0;
        this.explosionCounter.opacity = showUi ? 255 : 0;
        this.explosionCounterLabel.string = `${times + 1}`;
        this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.currentPoints);
      }
      moveHeartToCenter() {
        let startPos = MT3SETB_Comm_1.Comm.transPos3D(this.centerHeart.node.parent, MT3SETB_Comm_1.Comm.node.fishLayer, this.fishLayerStartPos);
        this.centerHeart.node.setPosition(startPos);
        this.centerHeart.node.runAction(cc.moveTo(this.timeLeft, cc.Vec2.ZERO));
        this.centerHeart.node.opacity = 255;
      }
      moveHeartToPlayer() {
        this.pointsContainer.runAction(cc.moveTo(this.timeLeft, this.getHeartPlayerPos()));
      }
      getHeartPlayerPos() {
        let offset = MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? UI_PLAYER_OFFSET.neg() : UI_PLAYER_OFFSET;
        let worldPos = this.turret.getRewardPosNode().convertToWorldSpaceAR(offset);
        return this.pointsContainer.parent.convertToNodeSpaceAR(worldPos);
      }
      boom() {
        let increment = this.explosionWinnings[this.bombTimes];
        this.doBombDamage(increment);
        this.currentPoints += increment;
        this.updatePlayerBalance(increment);
        if (!this.hasScaledPointsPanel) {
          this.hasScaledPointsPanel = true;
          this.pointsPanel.runAction(cc.scaleTo(UI_SCALE_DURATION, UI_SCALE_PANEL));
        }
        let counterScale = this.explosionCounter.scale;
        this.explosionCounter.runAction(cc.sequence(cc.scaleTo(UI_SCALE_DURATION, UI_SCALE_COUNTER), cc.scaleTo(UI_SCALE_DURATION, counterScale)));
        MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, SHAKE_DURATION, SHAKE_AMOUNT, SHAKE_AMOUNT);
        MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.BOMB_CATCH);
      }
      updatePlayerBalance(increment) {
        if (this.turret && this.turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", this.hitData.seat, -increment);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.hitData.seat);
        }
      }
      doBombDamage(maxWin) {
        let remainingWin = maxWin;
        let fishes = MT3SETB_Comm_1.Comm.fishMgr.getAllFishes(fish => MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish));
        fishes = this.random.shuffle(fishes);
        for (let fish of fishes) {
          let win = fish.odds * this.hitData.bet;
          if (remainingWin - win >= 0) {
            remainingWin -= win;
            let hitData = {
              seat: this.hitData.seat,
              bet: this.hitData.bet,
              coin: win
            };
            fish.pathEnd = true;
            fish.dying = true;
            MT3SETB_Comm_1.Comm.gameCtrl.onFishDeathPlayEffect(fish, hitData, false);
            MT3SETB_Comm_1.Comm.gameCtrl.showGetCoin(hitData.seat, fish, hitData.coin);
            MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
          }
        }
      }
      sendBombReq(maxWin) {
        let bombReq = new MT3SETB_mtf_pb_wrapper_1.mtf.BombReqData();
        bombReq.seat = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
        bombReq.bet = this.hitData.bet;
        bombReq.target = this.hitData.fishId;
        bombReq.fish = [];
        let remainingWin = maxWin;
        for (let id in MT3SETB_Comm_1.Comm.fishMgr.fishes) {
          let fish = MT3SETB_Comm_1.Comm.fishMgr.fishes[id];
          if (fish && MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish)) {
            let win = fish.odds * this.hitData.bet;
            if (remainingWin - win >= 0) {
              bombReq.fish.push(fish.getFishId());
              remainingWin -= win;
            }
          }
        }
        MT3SETB_Comm_1.Comm.gameMgr.bombRequest(bombReq);
      }
      resetBoomState() {
        this.timeLeft = BOOM_LOOP_SECS;
        this.timeToBomb = TIME_TO_BOMB;
        this.hasBoom = false;
        for (let mermaid of this.mermaids) {
          mermaid.setAnimation(0, ANIM_MERMAID, false);
          mermaid.node.opacity = 255;
        }
        this.centerHeart.setAnimation(0, ANIM_HEART_BOOM, false);
      }
      onNewPlayerJoined(seat) {
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: this.fishNo,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: this.fishLayerStartPos.x,
            y: this.fishLayerStartPos.y
          }),
          bet: this.hitData.bet,
          win: this.hitData.coin,
          secondsElapsed: (Date.now() - this.startTimeMs) / 1e3,
          collateralDead: []
        };
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
      dispose() {
        var _a;
        null === (_a = this.screenAura) || void 0 === _a ? void 0 : _a.stopAura();
        MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat && this.turret.removeNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        this.pointsContainer.destroy();
        this.node.destroy();
      }
    };
    __decorate([ property(cc.Node) ], MermaidEffect.prototype, "pointsContainer", void 0);
    __decorate([ property(sp.Skeleton) ], MermaidEffect.prototype, "centerHeart", void 0);
    __decorate([ property(cc.Node) ], MermaidEffect.prototype, "pointsPanel", void 0);
    __decorate([ property(cc.Node) ], MermaidEffect.prototype, "pointsPanelBackingGreen", void 0);
    __decorate([ property(cc.Node) ], MermaidEffect.prototype, "pointsPanelBackingAmethyst", void 0);
    __decorate([ property(cc.Label) ], MermaidEffect.prototype, "pointsLabel", void 0);
    __decorate([ property(cc.Node) ], MermaidEffect.prototype, "explosionCounter", void 0);
    __decorate([ property(cc.Label) ], MermaidEffect.prototype, "explosionCounterLabel", void 0);
    __decorate([ property(cc.Animation) ], MermaidEffect.prototype, "boomCoinAnim", void 0);
    __decorate([ property(cc.Prefab) ], MermaidEffect.prototype, "mermaidGreen", void 0);
    __decorate([ property(cc.Prefab) ], MermaidEffect.prototype, "mermaidAmethyst", void 0);
    __decorate([ property(MT3SETB_FishScreenAura_1.default) ], MermaidEffect.prototype, "screenAura", void 0);
    MermaidEffect = __decorate([ ccclass ], MermaidEffect);
    exports.default = MermaidEffect;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../framework/framework/MT3SETB-random": "MT3SETB-random",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-FishScreenAura": "MT3SETB-FishScreenAura",
    "./MT3SETB-SoundConst": "MT3SETB-SoundConst",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-MsgBox": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "7d746iykLFB0IJBI4yqkb09", "MT3SETB-MsgBox");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.MsgBox = void 0;
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let MsgBox = class MsgBox extends cc.Component {
      constructor() {
        super();
        this.msgNode = null;
        this.messageText = null;
        this.titleText = null;
        this.confirmBtnNode = null;
        this.cancelBtnNode = null;
        this.toggleNode = null;
        this.toggleBtn = null;
        this.toggleTxt = null;
        this.bClose = false;
        this.bDisconnect = false;
        this.bBackToLobby = false;
        this.bExitGame = false;
        this.func_Yes = null;
        this.func_No = null;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.msgBox = this;
      }
      start() {
        this.bDisconnect = false;
        this.bClose = false;
        this.bBackToLobby = false;
        this.setActive(false);
      }
      setMessage_callback(e, t, o, n) {
        this.setMessage(e, t);
        this.func_Yes = o;
        this.func_No = n;
      }
      setMessage(e, t) {
        var o = "string" == typeof t ? t : MT3SETB_LangList_1.LangList.getString(t);
        this.cancelBtnNode.active = false;
        this.toggleNode.active = false;
        o = o || "No text.";
        switch (e) {
         case 0:
          if (!this.bDisconnect) {
            this.bDisconnect = true;
            this.bClose = true;
            this.messageText.string = o;
            "undefined" != typeof LobbyData ? 13 == t && (this.bBackToLobby = true) : MT3SETB_platform_1.GetPlatformType() == MT3SETB_platform_1.platformType.app && MT3SETB_platform_1.GetClosePageUrl() || 1 != MT3SETB_platform_1.GetLobbyMode() || MT3SETB_Comm_1.Comm.app.isDisconnection || (this.bBackToLobby = true);
            this.bBackToLobby || MT3SETB_Comm_1.Comm.app.disconnection();
          }
          break;

         case 1:
          this.messageText.string = o;
          break;

         case 2:
          this.messageText.string = o;
          this.cancelBtnNode.active = true;
          break;

         case 3:
          this.messageText.string = o;
          this.bExitGame = true;
          this.cancelBtnNode.active = true;
          break;

         case 5:
          this.messageText.string = o;
          this.cancelBtnNode.active = true;
          this.toggleNode.active = true;
          break;

         default:
          this.messageText.string = o;
        }
        this.setActive(true);
      }
      setTitle(e) {
        this.titleText.string = e;
      }
      buttonEvent() {
        this.setActive(false);
        var e = function() {
          if (cc.sys.isNative) return;
          window.opener = null;
          window.open("", "_self", "");
          window.close();
          window.open("", "_top", "");
          window.top.close();
          window.location.href = "about:blank";
          window.close();
        };
        if (this.bClose) {
          this.bClose = false;
          "undefined" != typeof LobbyData ? MT3SETB_Comm_1.Comm.app.transferRequest(LobbyData.lobbyID) : MT3SETB_platform_1.GetPlatformType() == MT3SETB_platform_1.platformType.app && MT3SETB_platform_1.GetClosePageUrl() ? window.top == window.self ? window.location.href = MT3SETB_platform_1.GetClosePageUrl() : top.location.href = MT3SETB_platform_1.GetClosePageUrl() : 1 != MT3SETB_platform_1.GetLobbyMode() || MT3SETB_Comm_1.Comm.app.isDisconnection ? 2 == MT3SETB_platform_1.GetLobbyMode() && "" != MT3SETB_platform_1.GetHomeUrl() ? window.top == window.self ? window.location.href = MT3SETB_platform_1.GetHomeUrl() : top.location.href = MT3SETB_platform_1.GetHomeUrl() : 3 == MT3SETB_platform_1.GetLobbyMode() ? window.parent.postMessage({
            name: "closed",
            sender: "game"
          }, "*") : 4 == MT3SETB_platform_1.GetLobbyMode() && "" != MT3SETB_platform_1.GetHomeUrl() ? window.location.href = MT3SETB_platform_1.GetHomeUrl() : e() : (MT3SETB_Comm_1.Comm.app.transferRequest(80), 
          MT3SETB_Comm_1.Comm.runTask(2, function() {
            e();
          }));
        }
        if (this.bExitGame) {
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_tool_leave);
          this.bExitGame = false;
        }
        this.func_Yes && this.func_Yes();
        this.func_Yes = null;
        this.func_No = null;
      }
      buttonCancel() {
        this.setActive(false);
        this.bExitGame = false;
        this.func_No && this.func_No();
        this.func_No = null;
        this.func_Yes = null;
      }
      buttonOther() {
        this.cancelBtnNode.active ? this.buttonCancel() : this.buttonEvent();
      }
      setActive(e) {
        this.msgNode.active = e;
        this.toggleBtn.isChecked && this.clickToggle();
      }
      clickToggle() {
        this.toggleBtn.node.emit("click");
      }
    };
    __decorate([ property(cc.Node) ], MsgBox.prototype, "msgNode", void 0);
    __decorate([ property(cc.Label) ], MsgBox.prototype, "messageText", void 0);
    __decorate([ property(cc.Label) ], MsgBox.prototype, "titleText", void 0);
    __decorate([ property(cc.Node) ], MsgBox.prototype, "confirmBtnNode", void 0);
    __decorate([ property(cc.Node) ], MsgBox.prototype, "cancelBtnNode", void 0);
    __decorate([ property(cc.Node) ], MsgBox.prototype, "toggleNode", void 0);
    __decorate([ property(cc.Toggle) ], MsgBox.prototype, "toggleBtn", void 0);
    __decorate([ property(cc.Label) ], MsgBox.prototype, "toggleTxt", void 0);
    MsgBox = __decorate([ ccclass ], MsgBox);
    exports.MsgBox = MsgBox;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../system/MT3SETB-LangList": "MT3SETB-LangList"
  } ],
  "MT3SETB-OtherData": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "7e4cdfxSlNFF49mv5eq4mXn", "MT3SETB-OtherData");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.OtherData = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let OtherData = class OtherData extends cc.Component {
      constructor() {
        super(...arguments);
        this.others = [];
        this.toolUIFrames = [];
        this.coinRefund = [];
        this.fishmenu = null;
        this.redenvelope = null;
        this.rankItem = [];
        this.Banner = [];
        this.jpListUI = null;
      }
    };
    __decorate([ property([ cc.Prefab ]) ], OtherData.prototype, "others", void 0);
    __decorate([ property([ cc.SpriteFrame ]) ], OtherData.prototype, "toolUIFrames", void 0);
    __decorate([ property([ cc.Prefab ]) ], OtherData.prototype, "coinRefund", void 0);
    __decorate([ property(cc.Prefab) ], OtherData.prototype, "fishmenu", void 0);
    __decorate([ property(cc.Prefab) ], OtherData.prototype, "redenvelope", void 0);
    __decorate([ property([ cc.Prefab ]) ], OtherData.prototype, "rankItem", void 0);
    __decorate([ property([ cc.Prefab ]) ], OtherData.prototype, "Banner", void 0);
    __decorate([ property(cc.Prefab) ], OtherData.prototype, "jpListUI", void 0);
    OtherData = __decorate([ ccclass ], OtherData);
    exports.OtherData = OtherData;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-PageItem": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d6d7a9LtltIN7mkO7xcsPT7", "MT3SETB-PageItem");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_GameTable_1 = __importDefault(require("./MT3SETB-GameTable"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let PageItem = class PageItem extends cc.Component {
      constructor() {
        super(...arguments);
        this.gameTables = [];
        this.gameTableContainers = [];
        this.animation = null;
        this.isInit = false;
      }
      playEntryAnimation() {
        this.animation.play();
      }
      initUI(data) {
        if (null == data) return;
        if (data.length > 2) return;
        this.gameTableContainers[0].active = false;
        this.gameTableContainers[1].active = false;
        if (data[0]) {
          this.gameTableContainers[0].active = true;
          this.gameTables[0].init(data[0]);
        }
        if (data[1]) {
          this.gameTableContainers[1].active = true;
          this.gameTables[1].init(data[1]);
        }
      }
      start() {
        if (!this.isInit) {
          this.resizeCbIndex = null;
          null == this.resizeCbIndex && (this.resizeCbIndex = MT3SETB_Comm_1.Comm.app.registResizeCallback(this.onResize.bind(this)));
          this.onResize();
          this.isInit = true;
        }
      }
      onDestroy() {
        null != this.resizeCbIndex && MT3SETB_Comm_1.Comm.app.cancelResizeCallback(this.resizeCbIndex);
        this.resizeCbIndex = null;
      }
      onResize() {
        const size = MT3SETB_Comm_1.Comm.app.winSizeFactor;
        this.node.setContentSize(size.width, size.height);
        this.node.parent.setContentSize(size.width, size.height);
        const scaleX = size.width / cc.view.getDesignResolutionSize().width;
        const scaleY = size.height / cc.view.getDesignResolutionSize().height;
        const uniformScale = Math.min(scaleX, scaleY);
        if (this.gameTableContainers) {
          null != this.gameTableContainers[0] && (this.gameTableContainers[0].scale = uniformScale);
          null != this.gameTableContainers[1] && (this.gameTableContainers[1].scale = uniformScale);
        }
        const layout = this.getComponent(cc.Layout);
        layout && layout.updateLayout();
      }
    };
    __decorate([ property([ MT3SETB_GameTable_1.default ]) ], PageItem.prototype, "gameTables", void 0);
    __decorate([ property([ cc.Node ]) ], PageItem.prototype, "gameTableContainers", void 0);
    __decorate([ property(cc.Animation) ], PageItem.prototype, "animation", void 0);
    PageItem = __decorate([ ccclass ], PageItem);
    exports.default = PageItem;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-GameTable": "MT3SETB-GameTable"
  } ],
  "MT3SETB-PageViewButton": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "63fb7fdgX9BU6SNmv52q3vc", "MT3SETB-PageViewButton");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.PageViewButton = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let PageViewButton = class PageViewButton extends cc.Component {
      constructor() {
        super();
        this.pageNum = null;
        this.left = null;
        this.right = null;
        this.num = 0;
        this.pageView = null;
      }
      onLoad() {
        this.pageView = this.node.getComponent(cc.PageView);
      }
      onPearl(e) {
        this.pageView.setCurrentPageIndex(e);
        this.setPageNum(e + 1);
        this.right.active = true;
        this.left.active = true;
        e >= this.num - 1 && (this.right.active = false);
        e <= 0 && (this.left.active = false);
      }
      onLeft() {
        var e = this.pageView.getCurrentPageIndex() - 1;
        this.pageView.scrollToPage(e, .5);
        this.setPageNum(e + 1);
        this.right.active = true;
        e <= 0 && (this.left.active = false);
      }
      onRight() {
        var e = this.pageView.getCurrentPageIndex() + 1;
        this.pageView.scrollToPage(e, .3);
        this.setPageNum(e + 1);
        this.left.active = true;
        e >= this.num - 1 && (this.right.active = false);
      }
      onPageEvents(e, t) {
        if (t == cc.PageView.EventType.PAGE_TURNING) {
          var o = this.pageView.getCurrentPageIndex() + 1;
          if (1 == this.num) this.right.active = false, this.left.active = false; else if (o <= this.num) {
            this.setPageNum(o);
            0 == e.getCurrentPageIndex() ? (this.left.active = false, this.right.active = true) : e.getCurrentPageIndex() == this.num - 1 ? (this.left.active = true, 
            this.right.active = false) : (this.left.active = true, this.right.active = true);
          }
        }
      }
      setPageNum(e) {
        this.left.getComponent(cc.Button).clickEvents[0].target = this.node;
        this.right.getComponent(cc.Button).clickEvents[0].target = this.node;
        this.pageNum && (this.pageNum.string = e + "/" + this.num);
      }
      setPageMax(e) {
        this.num = e;
        this.pageNum && (this.pageNum.string = "1/" + this.num);
        1 == this.num && (this.right.active = false, this.left.active = false);
      }
    };
    __decorate([ property(cc.Label) ], PageViewButton.prototype, "pageNum", void 0);
    __decorate([ property(cc.Node) ], PageViewButton.prototype, "left", void 0);
    __decorate([ property(cc.Node) ], PageViewButton.prototype, "right", void 0);
    __decorate([ property ], PageViewButton.prototype, "num", void 0);
    PageViewButton = __decorate([ ccclass ], PageViewButton);
    exports.PageViewButton = PageViewButton;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-Phaser": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "4d71179yY9NurH1sG+1FGIU", "MT3SETB-Phaser");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Phaser = void 0;
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const MT3SETB_script_1 = require("../common/api/MT3SETB-script");
    const MT3SETB_tableSelect_pb_wrapper_1 = require("../common/api/MT3SETB-tableSelect_pb_wrapper");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const {ccclass: ccclass} = cc._decorator;
    let Phaser = class Phaser extends cc.Component {
      constructor() {
        super();
        this.lock = false;
        this.version = 0;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.phaser = this;
      }
      start() {
        MT3SETB_Comm_1.Comm.app.setCommand(this.onCommand.bind(this));
      }
      onCommand(e, t) {
        var _a, _b, _c, _d, _e;
        switch (e) {
         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_LOGIN_ACK:
          var o = MT3SETB_mtf_pb_wrapper_1.mtf.LoginDataAck.decode(t);
          null === (_a = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _a ? void 0 : _a.updatePlayerWallet(o);
          this.login(o);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_CONFIG_INFO:
          var agentConfig = MT3SETB_mtf_pb_wrapper_1.mtf.AgentConfig.decode(t);
          this.roomInfo(agentConfig);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_JOIN_TABLE_ACK:
          var joinTableAck = MT3SETB_tableSelect_pb_wrapper_1.tableSelect.JoinTableAck.decode(t);
          joinTableAck.joinResult != MT3SETB_tableSelect_pb_wrapper_1.tableSelect.JoinResult.JR_SUCCESS ? null === (_b = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _b ? void 0 : _b.OnJoinFail() : MT3SETB_Comm_1.Comm.app.onClickJoinRoom(joinTableAck.theme, joinTableAck.room);
          break;

         case MT3SETB_tableSelect_pb_wrapper_1.tableSelect.ServerToUser.S2U_GET_TABLE_INFO_ACK:
          var getTableInfoAck = MT3SETB_tableSelect_pb_wrapper_1.tableSelect.GetTableInfoAck.decode(t);
          null === (_c = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _c ? void 0 : _c.updateTablesData(getTableInfoAck);
          MT3SETB_Comm_1.Comm.app.isTableInfoRetrieved = true;
          break;

         case MT3SETB_tableSelect_pb_wrapper_1.tableSelect.ServerToUser.S2U_UPDATE_TABLE_NOTIFY:
          var tableNotify = MT3SETB_tableSelect_pb_wrapper_1.tableSelect.UpdateTableNotify.decode(t);
          null === (_d = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _d ? void 0 : _d.updateSingleTableData(tableNotify);
          break;

         case MT3SETB_tableSelect_pb_wrapper_1.tableSelect.ServerToUser.S2U_UPDATE_TABLE_INFO_NOTIFY:
          var getUpdateTableInfoAck = MT3SETB_tableSelect_pb_wrapper_1.tableSelect.GetTableInfoAck.decode(t);
          null === (_e = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _e ? void 0 : _e.updateTablesData(getUpdateTableInfoAck, true);
        }
      }
      login(e) {
        var _a;
        false;
        if (e.result === MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_SUCCESS || e.result === MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_RELOGIN) {
          this.profile(e.player);
          this.version = Number(e.version);
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gsReq_success, MT3SETB_Comm_1.Comm.app.isLogin ? "1" : "0");
          MT3SETB_Comm_1.Comm.app.loginTime = new Date();
          MT3SETB_Comm_1.Comm.app.isLogin = true;
          false;
          MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME_END);
          null === (_a = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _a ? void 0 : _a.init();
          cc.log("Login success.");
        } else {
          e.result === MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_DUPLICATE ? (MT3SETB_Comm_1.Comm.app.shutdownByMsgBox(10), 
          MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME_END, 3), MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gsReq_duplicate, MT3SETB_Comm_1.Comm.app.isLogin ? "1" : "0")) : e.result === MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_INVALID_ACCOUNT ? (MT3SETB_Comm_1.Comm.app.shutdownByMsgBox(11), 
          MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME_END, 2), MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gsReq_invalid, MT3SETB_Comm_1.Comm.app.isLogin ? "1" : "0")) : e.result === MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_FULL ? (MT3SETB_Comm_1.Comm.app.shutdownByMsgBox(12), 
          MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME_END, 4), MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gsReq_full, MT3SETB_Comm_1.Comm.app.isLogin ? "1" : "0")) : e.result === MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_MAINTAIN ? (MT3SETB_Comm_1.Comm.app.shutdownByMsgBox(14), 
          MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME_END, 7), MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gsReq_maintain, MT3SETB_Comm_1.Comm.app.isLogin ? "1" : "0")) : (MT3SETB_Comm_1.Comm.app.shutdownByMsgBox(12), 
          MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME_END, 1), MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gsReq_fail, MT3SETB_Comm_1.Comm.app.isLogin ? "1" : "0"));
          MT3SETB_Comm_1.Comm.app.closeLogoPage();
          MT3SETB_Comm_1.Comm.app.disconnection();
        }
        MT3SETB_Comm_1.Comm.app.isProfileDone = true;
      }
      roomInfo(agentConfig) {
        var _a;
        MT3SETB_Comm_1.Comm.agentConfig = {
          roomList: {}
        };
        for (let roomData of agentConfig.roomList) MT3SETB_Comm_1.Comm.agentConfig.roomList[roomData.roomID] = {
          bet: roomData.betList,
          ratio: roomData.ratio
        };
        null === (_a = MT3SETB_Comm_1.Comm.fishRoom) || void 0 === _a ? void 0 : _a.updateRoomData(agentConfig);
      }
      profile(e) {
        MT3SETB_Comm_1.Comm.app.setPlayer(e);
        MT3SETB_Comm_1.Comm.app.isProfileDone = true;
        MT3SETB_Comm_1.Comm.toast.hide();
      }
      toGame(e, t = 0) {
        if (!this.lock) {
          cc.sys.localStorage.setItem("player_theme", e.toString());
          cc.sys.localStorage.setItem("player_room", t.toString());
          this.lock = true;
          this.load();
        }
      }
      join(e, t) {
        MT3SETB_Comm_1.Comm.app.setCommand(this.onCommand.bind(this));
        var o = MT3SETB_mtf_pb_wrapper_1.mtf.JoinTableReq.create();
        o.theme = e;
        o.room = t;
        var i = MT3SETB_mtf_pb_wrapper_1.mtf.JoinTableReq.encode(o);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_JOIN_TABLE_REQ, i);
      }
      load() {
        MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.GAME_LOADING);
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_loading);
        var e = new Date();
        if (0 !== this.version && this.version !== MT3SETB_script_1.GetScriptVersion()) {
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_Game_Version);
          cc.log("Fish script is incorrect.");
          cc.log("Server ver = " + this.version + ", Client ver = " + MT3SETB_script_1.GetScriptVersion() + ".");
          MT3SETB_Comm_1.Comm.app.shutdownByMsgBox(8);
          return;
        }
        MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.GAME_MAIN_STAGE);
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_mainScene);
        if (window.isFirstTimeLobby) {
          var t = new Date().getTime() - e.getTime();
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Load_game_time, t.toString());
          window.isFirstTimeLobby = false;
        }
        MT3SETB_Comm_1.Comm.app.loadingFlag = false;
        this.lock = false;
        MT3SETB_Comm_1.Comm.app.isSelectRoom = false;
        MT3SETB_Comm_1.Comm.generalmenu.isShowMenu && MT3SETB_Comm_1.Comm.generalmenu.ToggleMenu();
      }
    };
    Phaser = __decorate([ ccclass ], Phaser);
    exports.Phaser = Phaser;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../common/api/MT3SETB-script": "MT3SETB-script",
    "../common/api/MT3SETB-tableSelect_pb_wrapper": "MT3SETB-tableSelect_pb_wrapper",
    "../common/api/MT3SETB-track": "MT3SETB-track"
  } ],
  "MT3SETB-PhoenixBombEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "a02418mv1lOHYmjkPsPEd70", "MT3SETB-PhoenixBombEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_random_1 = require("../framework/framework/MT3SETB-random");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_BaseEffect_1 = __importDefault(require("./MT3SETB-BaseEffect"));
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const {ccclass: ccclass, property: property} = cc._decorator;
    var State;
    (function(State) {
      State[State["None"] = 0] = "None";
      State[State["CoinUpAnim"] = 1] = "CoinUpAnim";
      State[State["FeatherAnim"] = 2] = "FeatherAnim";
      State[State["FeatherMove"] = 3] = "FeatherMove";
      State[State["FeatherAnim2"] = 4] = "FeatherAnim2";
      State[State["DieAnim"] = 5] = "DieAnim";
      State[State["Group"] = 6] = "Group";
      State[State["Show"] = 7] = "Show";
    })(State || (State = {}));
    const CoinUpAnimDuration = 1;
    const FeatherAnimDuration = .67;
    const MoveToPlayer = 1;
    const DieAnimDuration = 1.2;
    const useBulletCountPerSecond = 40;
    const durationToGroupState = CoinUpAnimDuration + FeatherAnimDuration + MoveToPlayer + FeatherAnimDuration + DieAnimDuration;
    const PhoenixCoinUpAnim = "phoenix_coin_up";
    const PhoenixFeatherAnim = "phoenix_feather";
    const PhoenixDieAnim = "phoenix_die";
    let PhoenixBombEffect = class PhoenixBombEffect extends MT3SETB_BaseEffect_1.default {
      constructor() {
        super(...arguments);
        this.miniPhoenixPrefab = null;
        this.miniPhoenixParent = null;
        this.groupUIContainer = null;
        this.phoenixEffectAnim = null;
        this.comboLabel = null;
        this.scoreLabel = null;
        this.isInited = false;
        this.curState = State.None;
        this.curTime = 0;
        this.useBulletCountPerFrame = Math.floor(useBulletCountPerSecond / 10);
        this.lastCreateTime = -10;
        this.createCd = .35;
        this.bulletTime = 0;
        this.deathFishCount = 0;
        this.lastDeathFishCount = 0;
        this.scoreValue = 0;
        this.startTimeMs = 0;
        this.random = null;
        this.hitData = null;
        this.turret = null;
        this.targetId = -1;
        this.localCollateralFish = [];
        this.newPlayerJoinedHandler = null;
        this.isDisposed = false;
      }
      static getTotalDuration(rate) {
        var bulletTime = rate / useBulletCountPerSecond;
        return durationToGroupState + bulletTime;
      }
      init(hitData, targetPos, player) {
        if (!this.isInited) {
          var e = this;
          this.phoenixEffectAnim.on("finished", this.onPhoenixEffectAnimComplete.bind(this));
          this.isInited = true;
        }
        this.isDisposed = false;
        MT3SETB_Comm_1.Comm.phoenixUI = this;
        this.groupUIContainer.active = false;
        this.comboLabel.string = "0";
        this.scoreLabel.string = "0";
        this.scoreValue = 0;
        this.lastDeathFishCount = -1;
        this.deathFishCount = 0;
        this.localCollateralFish = [];
        this.startTimeMs = Date.now();
        this.random = new MT3SETB_random_1.PseudoRandom(hitData.seed);
        this.phoenixEffectAnim.node.scale = 1.75;
        this.miniPhoenixParent.angle = MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? 180 : 0;
        this.initPlayer(player);
        this.hitData = hitData;
        var rate = Math.round(hitData.coin / hitData.bet);
        this.bulletTime = rate / useBulletCountPerSecond;
        this.turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(this.hitData.seat);
        this.startPos = MT3SETB_Comm_1.Comm.transPos(this.node.parent, MT3SETB_Comm_1.Comm.fishMgr.getSpawnNode(), targetPos);
        this.curState = State.CoinUpAnim;
        this.phoenixEffectAnim.node.setPosition(this.startPos);
        this.phoenixEffectAnim.play("phoenix_coin_up");
        this.groupUIContainer.setParent(this.node);
        this.groupUIContainer.angle = 0;
        if (null != hitData.time) {
          this.curTime = hitData.time;
          if (hitData.time >= durationToGroupState) {
            this.curTime = hitData.time - durationToGroupState;
            this.curState = State.Group;
          } else {
            const timeline = [ {
              name: "Phase 1 - Coin Up",
              duration: CoinUpAnimDuration,
              action: (localTime, startTime) => {
                this.phoenixEffectAnim.play(PhoenixCoinUpAnim);
                this.phoenixEffectAnim.setCurrentTime(hitData.time);
              }
            }, {
              name: "Phase 2 - Feather Anim",
              duration: FeatherAnimDuration,
              action: (localTime, startTime) => {
                this.curState = State.FeatherAnim;
                this.phoenixEffectAnim.play(PhoenixFeatherAnim);
                this.phoenixEffectAnim.setCurrentTime(localTime);
              }
            }, {
              name: "Phase 3 - Feather Move",
              duration: MoveToPlayer,
              action: (localTime, startTime) => {
                this.curState = State.FeatherMove;
                this.curTime = localTime;
              }
            }, {
              name: "Phase 4 - Feather Anim 2",
              duration: FeatherAnimDuration,
              action: (localTime, startTime) => {
                this.curState = State.FeatherAnim2;
                this.phoenixEffectAnim.play(PhoenixFeatherAnim);
                this.phoenixEffectAnim.setCurrentTime(localTime);
              }
            }, {
              name: "Phase 5 - Die Anim",
              duration: DieAnimDuration,
              action: (localTime, startTime) => {
                this.curTime = hitData.time;
                this.curState = State.DieAnim;
                this.phoenixEffectAnim.play(PhoenixDieAnim);
                this.phoenixEffectAnim.node.scale = 4.11;
              }
            } ];
            var accumulatedTime = 0;
            for (let i = 0; i < timeline.length; i++) {
              const phase = timeline[i];
              const phaseEndTime = accumulatedTime + phase.duration;
              if (hitData.time < phaseEndTime) {
                const timeInPhase = hitData.time - accumulatedTime;
                phase.action(timeInPhase, accumulatedTime);
                break;
              }
              accumulatedTime += phase.duration;
            }
          }
          for (let collateral of this.hitData.collateralFish) {
            this.scoreValue += collateral.coin;
            this.deathFishCount++;
          }
        }
      }
      onPhoenixEffectAnimComplete() {
        if (!this.phoenixEffectAnim) return;
        switch (this.curState) {
         case State.CoinUpAnim:
          this.curState = State.FeatherAnim;
          this.phoenixEffectAnim.node.scale = 1.5;
          this.phoenixEffectAnim.play(PhoenixFeatherAnim);
          break;

         case State.FeatherAnim:
          this.curState = State.FeatherMove;
          break;

         case State.FeatherAnim2:
          this.curState = State.DieAnim;
          this.curTime = 0;
          this.phoenixEffectAnim.play(PhoenixDieAnim);
          this.phoenixEffectAnim.node.scale = 4.11;
        }
      }
      update(dt) {
        if (this.curState == State.DieAnim) {
          this.curTime = this.curTime + dt;
          if (this.curTime >= DieAnimDuration) {
            this.curState = State.Group;
            this.curTime = 0;
            this.phoenixEffectAnim.node.active = false;
            this.groupUIContainer.active = true;
          }
        } else if (this.curState == State.FeatherMove) {
          this.curTime = this.curTime + dt;
          this.updateFeatherMovePos();
        } else if (this.curState == State.Group) {
          this.curTime = this.curTime + dt;
          this.updateGroupState(dt);
          this.updateComboCounter();
          if (this.curTime >= this.bulletTime) {
            this.curState = State.Show;
            this.curTime = 0;
            this.moveRewardToPlayer();
          }
        }
      }
      showRainboWheel() {
        let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat;
        MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, this.hitData.seat, this.hitData.coin, isLocalPlayer, this.hitData.bet, this.hitData.coin, MT3SETB_Game_1.mtfBFishNo.FlamingPhoenix);
        this.updateBalance(this.hitData.coin);
      }
      destroyEffect() {
        if (this.isDisposed) return;
        this.isDisposed = true;
        MT3SETB_Comm_1.Comm.phoenixUI = null;
        MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat && this.turret.removeNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        this.groupUIContainer.setParent(this.node);
        MT3SETB_Comm_1.Comm.effectMgr.togglePhoenixScreenEdgeFireEffect(false);
        this.node.stopAllActions();
        this.node.destroy();
      }
      moveRewardToPlayer() {
        this.groupUIContainer.setParent(MT3SETB_Comm_1.Comm.node.rewardLayer);
        this.groupUIContainer.angle = MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? 180 : 0;
        let worldPos = this.turret.node.convertToWorldSpaceAR(cc.v2(0, 200));
        this.destPos = this.groupUIContainer.parent.convertToNodeSpaceAR(worldPos);
        var e = this;
        this.groupUIContainer.runAction(cc.sequence(cc.delayTime(1), cc.moveTo(1, this.destPos), cc.delayTime(2), cc.callFunc(function() {
          e.showRainboWheel();
          e.destroyEffect();
        })));
      }
      updateFeatherMovePos() {
        var percent = Math.min(1, this.curTime);
        var posX = this.startPos.x + -this.startPos.x * percent;
        var posY = this.startPos.y + -this.startPos.y * percent;
        this.phoenixEffectAnim.node.setPosition(posX, posY);
        if (this.curTime >= 1) {
          this.curState = State.FeatherAnim2;
          this.phoenixEffectAnim.play("phoenix_feather");
        }
      }
      doBombDamage() {
        if (this.scoreValue >= this.hitData.coin) return;
        let fishes = MT3SETB_Comm_1.Comm.fishMgr.getAllFishes(fish => MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish));
        let fishBombed = [];
        fishes = this.random.shuffle(fishes);
        var noOfFishes = this.random.next(0, 4);
        if (0 == noOfFishes) return;
        for (let fish of fishes) {
          if (fishBombed.length >= noOfFishes) break;
          if (fishBombed.length >= this.useBulletCountPerFrame) break;
          fishBombed.push(fish);
        }
        for (var deadFish of fishBombed) {
          this.groupUIContainer.active = true;
          if (this.curTime <= this.bulletTime - 1.5) {
            if (this.curTime - this.lastCreateTime >= this.createCd) {
              this.lastCreateTime = this.curTime;
              var times = this.random.next(2, 3);
              for (var i = 0; i < times; i++) {
                var randY = this.random.next(-300, 300);
                var randX = this.random.next(-1540, -1460);
                var phoenixNode = cc.instantiate(this.miniPhoenixPrefab);
                phoenixNode.active = true;
                phoenixNode.setParent(this.miniPhoenixParent);
                phoenixNode.setPosition(randX, randY);
                phoenixNode.runAction(cc.sequence(cc.moveTo(1.5, cc.v2(-randX, randY)), cc.removeSelf()));
              }
              let win = deadFish.odds * this.hitData.bet;
              this.scoreValue += win;
              this.deathFishCount++;
              let hitData = {
                seat: this.hitData.seat,
                bet: this.hitData.bet,
                coin: win
              };
              if (this.scoreValue >= this.hitData.coin) {
                this.scoreValue = this.hitData.coin;
                this.bulletTime = this.curTime + 1.5;
              }
              deadFish.pathEnd = true;
              deadFish.dying = true;
              MT3SETB_Comm_1.Comm.gameCtrl.onFishDeathPlayEffect(deadFish, hitData, false);
              MT3SETB_Comm_1.Comm.gameCtrl.showGetCoin(hitData.seat, deadFish, hitData.coin);
              MT3SETB_Comm_1.Comm.fishMgr.delFish(deadFish, true, false);
            }
          } else if (this.scoreValue < this.hitData.coin) {
            this.scoreValue = this.hitData.coin;
            this.deathFishCount++;
          }
        }
      }
      sendBombReq() {
        if (MT3SETB_Comm_1.Comm.gameCtrl.playerSeat != this.hitData.seat) return;
        if (this.scoreValue >= this.hitData.coin) return;
        let bombReq = new MT3SETB_mtf_pb_wrapper_1.mtf.BombReqData();
        bombReq.seat = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
        bombReq.bet = this.hitData.bet;
        bombReq.target = MT3SETB_Game_1.mtfBFishNo.FlamingPhoenix;
        bombReq.fish = [];
        var noOfFishes = MT3SETB_Comm_1.Comm.iRand(0, 3);
        if (0 == noOfFishes) return;
        for (let id in MT3SETB_Comm_1.Comm.fishMgr.fishes) {
          if (bombReq.fish.length >= noOfFishes) break;
          if (bombReq.fish.length >= this.useBulletCountPerFrame) break;
          let fish = MT3SETB_Comm_1.Comm.fishMgr.fishes[id];
          fish && MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish) && bombReq.fish.push(fish.getFishId());
        }
        bombReq.fish.length > 0 && MT3SETB_Comm_1.Comm.gameMgr.bombRequest(bombReq);
      }
      updateComboCounter() {
        if (this.lastDeathFishCount != this.deathFishCount) {
          this.lastDeathFishCount = this.deathFishCount;
          this.comboLabel.string = Math.round(this.lastDeathFishCount).toString();
          this.scoreLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.scoreValue);
          this.comboLabel.node.runAction(cc.sequence(cc.scaleTo(.05, 1.25), cc.scaleTo(.05, 1)));
          MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, .075, 6, 6);
        }
      }
      updateGroupState(dt) {
        this.doBombDamage();
      }
      onBombFishAckUpdate(bombAckData) {
        for (var deadFish of bombAckData.fish) {
          this.deathFishCount++;
          this.scoreValue += deadFish.coin;
          if (this.scoreValue >= this.hitData.coin) {
            this.scoreValue = this.hitData.coin;
            this.bulletTime = this.curTime + 1.5;
          }
          var hitAckFish = new MT3SETB_mtf_pb_wrapper_1.mtf.HitAckData.Fish();
          hitAckFish.coin = deadFish.coin;
          hitAckFish.id = deadFish.fish;
          this.localCollateralFish.push(hitAckFish);
        }
      }
      updateBalance(increment) {
        if (this.turret && this.turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", this.hitData.seat, -increment);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.hitData.seat);
        }
      }
      onNewPlayerJoined(seat) {
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: MT3SETB_Game_1.mtfBFishNo.FlamingPhoenix,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: 0,
            y: 0
          }),
          bet: this.hitData.bet,
          win: this.hitData.coin,
          secondsElapsed: (Date.now() - this.startTimeMs) / 1e3,
          collateralDead: this.localCollateralFish
        };
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
    };
    __decorate([ property(cc.Node) ], PhoenixBombEffect.prototype, "miniPhoenixPrefab", void 0);
    __decorate([ property(cc.Node) ], PhoenixBombEffect.prototype, "miniPhoenixParent", void 0);
    __decorate([ property(cc.Node) ], PhoenixBombEffect.prototype, "groupUIContainer", void 0);
    __decorate([ property(cc.Animation) ], PhoenixBombEffect.prototype, "phoenixEffectAnim", void 0);
    __decorate([ property(cc.Label) ], PhoenixBombEffect.prototype, "comboLabel", void 0);
    __decorate([ property(cc.Label) ], PhoenixBombEffect.prototype, "scoreLabel", void 0);
    PhoenixBombEffect = __decorate([ ccclass ], PhoenixBombEffect);
    exports.default = PhoenixBombEffect;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../framework/framework/MT3SETB-random": "MT3SETB-random",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-BaseEffect": "MT3SETB-BaseEffect",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-PhoenixRewardCircle": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "255f9ilZVhJd6Y40RWrx7Il", "MT3SETB-PhoenixRewardCircle");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_LsRewardCircle_1 = __importDefault(require("./LS/MT3SETB-LsRewardCircle"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let PhoenixRewardCircle = class PhoenixRewardCircle extends MT3SETB_LsRewardCircle_1.default {
      play() {
        this.node.scale = 1;
        this.spineAnim.node.active = true;
        this.coin.node.active = true;
        this.changeCoin();
        this.fishSprite.node.active = true;
        this.fishName.node.active = true;
        let self = this;
        this.spineAnim.setAnimation(0, "zhuanpanzhuandong", false);
        this.spineAnim.setCompleteListener(() => {
          self.spineAnim.node.active = false;
          self.coin.node.active = false;
          self.fishSprite.node.active = false;
          self.fishName.node.active = false;
        });
      }
    };
    PhoenixRewardCircle = __decorate([ ccclass ], PhoenixRewardCircle);
    exports.default = PhoenixRewardCircle;
    cc._RF.pop();
  }, {
    "./LS/MT3SETB-LsRewardCircle": "MT3SETB-LsRewardCircle"
  } ],
  "MT3SETB-Phoenix": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "c048aUFZh5H0L7KF56L9o5n", "MT3SETB-Phoenix");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Phoenix = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let Phoenix = class Phoenix extends MT3SETB_Fish_1.Fish {
      init(fishData, isRotated) {
        super.init(fishData, isRotated);
        MT3SETB_Comm_1.Comm.effectMgr.togglePhoenixScreenEdgeFireEffect(true);
      }
      destroyFish(e, isCaught) {
        super.destroyFish(e, isCaught);
        isCaught || MT3SETB_Comm_1.Comm.effectMgr.scheduleOnce(() => {
          MT3SETB_Comm_1.Comm.effectMgr.togglePhoenixScreenEdgeFireEffect(false);
        }, 3);
      }
    };
    Phoenix.isSpawned = false;
    Phoenix = __decorate([ ccclass ], Phoenix);
    exports.Phoenix = Phoenix;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-Fish": "MT3SETB-Fish"
  } ],
  "MT3SETB-PickupBigAward": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "7b4feEaMt1FE5ePMYJSPjH2", "MT3SETB-PickupBigAward");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var PickupBigAward_1;
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.PickupBigAward = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let PickupBigAward = PickupBigAward_1 = class PickupBigAward extends cc.Component {
      constructor() {
        super();
        this.root = null;
        this.anim = null;
        this.coinNum = null;
      }
      static new() {
        var e = MT3SETB_Comm_1.Comm.dataMgr.getPickupReward();
        return MT3SETB_Comm_1.Comm.get(e, PickupBigAward_1);
      }
      static new_MC() {
        var e = MT3SETB_Comm_1.Comm.dataMgr.getPickupReward_MC();
        return MT3SETB_Comm_1.Comm.get(e, PickupBigAward_1);
      }
      play(e, t, o) {
        var i = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e), a = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat() === e, r = this.node;
        if (!i) return o && o(), void r.destroy();
        var s = cc.v3(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.uiLayer, i.getRewardPosNode())), c = this.coinNum, l = this.root, u = this.anim;
        if (!a) {
          var d = MT3SETB_Comm_1.Comm.get(this.node, "Root/Broad/particlesystem");
          d && (d.active = false);
        }
        l.once(cc.Node.EventType.TOUCH_START, function() {
          var e = u.getAnimationState("Pika_board_In");
          e.isPlaying && (e.speed = 5);
        });
        c.string = MT3SETB_Comm_1.Comm.getThousandsNum(t);
        r.parent = MT3SETB_Comm_1.Comm.node.uiLayer;
        r.name = "PickupBigAwardNode";
        r.opacity = a ? 255 : 150;
        var p = function() {
          o && o();
          r.destroy();
        };
        if (a) MT3SETB_Comm_1.Comm.playAnime(u, "Pika_board_In", null, function() {
          cc.tween(r).to(.5, {
            scale: .5,
            position: s
          }).call(function() {
            MT3SETB_Comm_1.Comm.playAnime(u, "Pika_board_Out", null, function() {
              return p();
            });
          }).start();
        }); else {
          r.scale = .35;
          r.position = s;
          MT3SETB_Comm_1.Comm.playAnime(u, "Pika_board_In", null, function() {
            cc.tween(r).delay(.5).call(function() {
              MT3SETB_Comm_1.Comm.playAnime(u, "SharedBigAward_Out_", null, function() {
                return p();
              });
            }).start();
          });
        }
      }
    };
    __decorate([ property(cc.Node) ], PickupBigAward.prototype, "root", void 0);
    __decorate([ property(cc.Animation) ], PickupBigAward.prototype, "anim", void 0);
    __decorate([ property(cc.Label) ], PickupBigAward.prototype, "coinNum", void 0);
    PickupBigAward = PickupBigAward_1 = __decorate([ ccclass ], PickupBigAward);
    exports.PickupBigAward = PickupBigAward;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-PickupRewardShow": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ac4d2GNONdP3rkobf7P6Ozv", "MT3SETB-PickupRewardShow");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var PickupRewardShow_1;
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.PickupRewardShow = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_PickupBigAward_1 = require("./MT3SETB-PickupBigAward");
    const MT3SETB_PickupRouletteCnter_1 = require("./MT3SETB-PickupRouletteCnter");
    const MT3SETB_PickupRouletteCtrl_1 = require("./MT3SETB-PickupRouletteCtrl");
    const {ccclass: ccclass} = cc._decorator;
    let PickupRewardShow = PickupRewardShow_1 = class PickupRewardShow extends cc.Component {
      constructor() {
        super();
        this.fish = null;
        this.ack = null;
      }
      static init() {
        this.ackQueue = [];
        this.ackQueue_MC = [];
        this.fishQueue = [];
        this.fishQueue_MC = [];
        this.isPlaying = false;
        this.isPlaying_MC = false;
      }
      static new(e, t) {
        var n = new cc.Node();
        n.setParent(MT3SETB_Comm_1.Comm.node.effectLayer);
        var i = n.addComponent(PickupRewardShow_1);
        i.fish = e;
        i.ack = t;
        return i;
      }
      static checkNextShowInQueue() {
        if (PickupRewardShow_1.ackQueue.length > 0) {
          var e = PickupRewardShow_1.ackQueue.shift(), t = PickupRewardShow_1.fishQueue.shift();
          if (t && t.getSpecialShow()) t.getSpecialShow().showStart(e); else {
            MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", e.seat, -e.coin);
            MT3SETB_Comm_1.Comm.gameCtrl.addCoin(e.seat, e.coin);
          }
          if (Math.round(e.coin / e.bet / (1 + e.bonus)) >= 100) {
            var i = MT3SETB_PickupRouletteCnter_1.PickupRouletteCnter.getCnterFromScene(e.seat);
            i && i.decrease();
          }
        }
      }
      static checkNextShowInQueue_MC() {
        if (PickupRewardShow_1.ackQueue_MC.length > 0) {
          var e = PickupRewardShow_1.ackQueue_MC.shift(), t = PickupRewardShow_1.fishQueue_MC.shift();
          if (t && t.getSpecialShow()) t.getSpecialShow().showStart(e); else {
            MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", e.seat, -e.coin);
            MT3SETB_Comm_1.Comm.gameCtrl.addCoin(e.seat, e.coin);
          }
          if (Math.round(e.coin / e.bet / (1 + e.bonus)) >= 400) {
            var i = MT3SETB_PickupRouletteCnter_1.PickupRouletteCnter.getCnterFromScene_MC(e.seat);
            i && i.decrease();
          }
        }
      }
      static showHurt(e) {
        var t = e.spineAnims[0];
        "run" === t.animation && MT3SETB_Comm_1.Comm.playSpine(t, "hit", false, function() {
          MT3SETB_Comm_1.Comm.playSpine(t, "run", true);
        });
      }
      play() {
        var e = this.ack, t = this.fish, o = Math.round(e.coin / e.bet / (1 + e.bonus));
        o < 100 ? this.playSmallReward(e, t) : o < 600 ? this.playSmallRoulette(e, t) : this.playBigRoulette(e, t);
      }
      playRewardCircle() {
        var e = this.ack;
        if (MT3SETB_Comm_1.Comm.gameCtrl.isPageVisible) MT3SETB_Comm_1.Comm.runTask(.8, function() {
          MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(MT3SETB_Game_1.eFishMedal.BossPickup, e.seat, e.coin, true, e.bet, e.bonus);
        }); else {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", e.seat, -e.coin);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(e.seat, e.coin);
        }
      }
      playSmallReward(e, t) {
        var n = this;
        PickupRewardShow_1.showHurt(t);
        MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, .8, 30, 10);
        cc.tween(this.node).call(function() {
          if (t && t.isUsed()) {
            var o = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, t.node);
            MT3SETB_Comm_1.Comm.effectMgr.showGetCoin(e.seat, -1, o, 4, false, false);
          }
        }).delay(1.5).call(function() {
          PickupRewardShow_1.checkNextShowInQueue();
          n.playRewardCircle();
          n.node.destroy();
        }).start();
      }
      playSmallRoulette(e, t) {
        var n = this;
        PickupRewardShow_1.isPlaying = true;
        PickupRewardShow_1.showHurt(t);
        MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, .8, 30, 10);
        var a = e.seat, r = Math.round(e.coin / e.bet / (1 + e.bonus)), c = cc.v2(0, 0);
        t && t.isUsed() && (c = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, t.node));
        MT3SETB_PickupRouletteCtrl_1.PickupRouletteCtrl.new(MT3SETB_PickupRouletteCtrl_1.PickupRouletteCtrl.type.Small).play(a, r, c, function() {
          PickupRewardShow_1.isPlaying = false;
          PickupRewardShow_1.checkNextShowInQueue();
          n.playRewardCircle();
          n.node.destroy();
        });
      }
      playBigRoulette(e, t) {
        var n = this;
        PickupRewardShow_1.isPlaying = true;
        PickupRewardShow_1.showHurt(t);
        MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, .8, 30, 10);
        var r = e.seat, c = Math.round(e.coin / e.bet / (1 + e.bonus)), l = cc.v2(0, 0);
        t && t.isUsed() && (l = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, t.node));
        MT3SETB_PickupRouletteCtrl_1.PickupRouletteCtrl.new(MT3SETB_PickupRouletteCtrl_1.PickupRouletteCtrl.type.Big).play(r, c, l, function() {
          PickupRewardShow_1.isPlaying = false;
          PickupRewardShow_1.checkNextShowInQueue();
          MT3SETB_PickupBigAward_1.PickupBigAward.new().play(e.seat, e.coin, function() {
            MT3SETB_Comm_1.Comm.snd.stopEffect(82);
            MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", e.seat, -e.coin);
            MT3SETB_Comm_1.Comm.gameCtrl.addCoin(e.seat, e.coin);
          });
          n.node.destroy();
        });
      }
      play_MC() {
        var e = this.ack, t = this.fish;
        Math.round(e.coin / e.bet / (1 + e.bonus)) < 400 ? this.playSmallReward_MC(e, t) : this.playBigRoulette_MC(e, t);
      }
      playRewardCircle_MC() {
        var e = this.ack;
        if (MT3SETB_Comm_1.Comm.gameCtrl.isPageVisible) MT3SETB_Comm_1.Comm.runTask(.8, function() {
          MT3SETB_Comm_1.Comm.effectMgr.rewardCircle(MT3SETB_Game_1.eFishMedal.BossPickup_MC, e.seat, e.coin, true, e.bet, e.bonus);
        }); else {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", e.seat, -e.coin);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(e.seat, e.coin);
        }
      }
      playSmallReward_MC(e, t) {
        var n = this;
        PickupRewardShow_1.showHurt(t);
        MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, .8, 30, 10);
        cc.tween(this.node).call(function() {
          if (t && t.isUsed()) {
            var o = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, t.node);
            MT3SETB_Comm_1.Comm.effectMgr.showGetCoin(e.seat, -1, o, 4, false, false);
          }
        }).delay(1.5).call(function() {
          PickupRewardShow_1.checkNextShowInQueue_MC();
          n.playRewardCircle_MC();
          n.node.destroy();
        }).start();
      }
      playBigRoulette_MC(e, t) {
        var n = this;
        PickupRewardShow_1.isPlaying_MC = true;
        PickupRewardShow_1.showHurt(t);
        MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, .8, 30, 10);
        var r = e.seat, c = Math.round(e.coin / e.bet / (1 + e.bonus)), l = cc.v2(0, 0);
        t && t.isUsed() && (l = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, t.node));
        MT3SETB_PickupRouletteCtrl_1.PickupRouletteCtrl.new(MT3SETB_PickupRouletteCtrl_1.PickupRouletteCtrl.type.MC).play(r, c, l, function() {
          PickupRewardShow_1.isPlaying_MC = false;
          PickupRewardShow_1.checkNextShowInQueue_MC();
          MT3SETB_PickupBigAward_1.PickupBigAward.new_MC().play(e.seat, e.coin, function() {
            MT3SETB_Comm_1.Comm.snd.stopEffect(82);
            MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", e.seat, -e.coin);
            MT3SETB_Comm_1.Comm.gameCtrl.addCoin(e.seat, e.coin);
          });
          n.node.destroy();
        });
      }
    };
    PickupRewardShow.ackQueue = [];
    PickupRewardShow.ackQueue_MC = [];
    PickupRewardShow.fishQueue = [];
    PickupRewardShow.fishQueue_MC = [];
    PickupRewardShow.isPlaying = false;
    PickupRewardShow.isPlaying_MC = false;
    PickupRewardShow = PickupRewardShow_1 = __decorate([ ccclass ], PickupRewardShow);
    exports.PickupRewardShow = PickupRewardShow;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-PickupBigAward": "MT3SETB-PickupBigAward",
    "./MT3SETB-PickupRouletteCnter": "MT3SETB-PickupRouletteCnter",
    "./MT3SETB-PickupRouletteCtrl": "MT3SETB-PickupRouletteCtrl"
  } ],
  "MT3SETB-PickupRouletteCnter": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "746e37GlzpPPo0jS+ORNUQg", "MT3SETB-PickupRouletteCnter");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var PickupRouletteCnter_1;
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.PickupRouletteCnter = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let PickupRouletteCnter = PickupRouletteCnter_1 = class PickupRouletteCnter extends cc.Component {
      constructor() {
        super();
        this.bgImg = null;
        this.countTxt = null;
        this.count = 0;
        this.increaseTweening = null;
      }
      static new(e) {
        var t = MT3SETB_Comm_1.Comm.dataMgr.getPickupRouletteCnter();
        t.name = "PickupRouletteCnter_" + e;
        return MT3SETB_Comm_1.Comm.get(t, PickupRouletteCnter_1);
      }
      static new_MC(e) {
        var t = MT3SETB_Comm_1.Comm.dataMgr.getPickupRouletteCnter();
        t.name = "PickupRouletteCnter_MC_" + e;
        return MT3SETB_Comm_1.Comm.get(t, PickupRouletteCnter_1);
      }
      static getCnterFromScene(e) {
        return MT3SETB_Comm_1.Comm.get(MT3SETB_Comm_1.Comm.node.rewardLayer, "PickupRouletteCnter_" + e, PickupRouletteCnter_1);
      }
      static getCnterFromScene_MC(e) {
        return MT3SETB_Comm_1.Comm.get(MT3SETB_Comm_1.Comm.node.rewardLayer, "PickupRouletteCnter_MC_" + e, PickupRouletteCnter_1);
      }
      increase() {
        var e = this;
        this.count += 1;
        this.countTxt.string = this.count.toFixed();
        this.increaseTweening && this.increaseTweening.stop();
        this.increaseTweening = cc.tween(this.node).to(.07, {
          scale: 1.4
        }).to(.12, {
          scale: 1
        }).call(function() {
          e.increaseTweening = null;
        }).start();
      }
      decrease() {
        this.count -= 1;
        this.countTxt.string = this.count.toFixed();
      }
      update(e) {
        this.bgImg.node.angle += 15 * e;
        if (this.count <= 0) {
          if (this.increaseTweening) {
            this.increaseTweening.stop();
            this.increaseTweening = null;
          }
          this.node.destroy();
        }
      }
    };
    __decorate([ property(cc.Sprite) ], PickupRouletteCnter.prototype, "bgImg", void 0);
    __decorate([ property(cc.Label) ], PickupRouletteCnter.prototype, "countTxt", void 0);
    PickupRouletteCnter = PickupRouletteCnter_1 = __decorate([ ccclass ], PickupRouletteCnter);
    exports.PickupRouletteCnter = PickupRouletteCnter;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-PickupRouletteCtrl": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e66905/oIBPfq0xy2NCEU0G", "MT3SETB-PickupRouletteCtrl");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var PickupRouletteCtrl_1;
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.PickupRouletteCtrl = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let PickupRouletteCtrl = PickupRouletteCtrl_1 = class PickupRouletteCtrl extends cc.Component {
      constructor() {
        super();
        this.anim = null;
        this.pivot = null;
        this.items = [];
        this.type = -1;
        this.seat = -1;
        this.goalNum = -1;
        this.itemNum = [];
        this.endFunc = null;
      }
      static new(e) {
        var t = null;
        e === PickupRouletteCtrl_1.type.Small && (t = MT3SETB_Comm_1.Comm.dataMgr.getPickupSmallRoulette());
        e === PickupRouletteCtrl_1.type.Big && (t = MT3SETB_Comm_1.Comm.dataMgr.getPickupBigRoulette());
        e === PickupRouletteCtrl_1.type.MC && (t = MT3SETB_Comm_1.Comm.dataMgr.getPickupBigRoulette());
        if (t) {
          var i = t.getComponent(PickupRouletteCtrl_1);
          i.type = e;
          return i;
        }
        return null;
      }
      rouletteSetup() {
        var e = this.items, t = [ 350, 150, 200, 250, 100, 150, 100, 250, 100 ], n = [ 1e3, 650, 700, 850, 600, 700, 600, 850, 600 ], i = [ 1200, 550, 950, 700, 400, 950, 550, 700, 400 ];
        if (this.type === PickupRouletteCtrl_1.type.Small) {
          this.itemNum = t.map(function(e) {
            return e;
          });
          e.forEach(function(e, o) {
            return e.string = t[o].toFixed(0) + "X";
          });
        }
        if (this.type === PickupRouletteCtrl_1.type.Big) {
          this.itemNum = n.map(function(e) {
            return e;
          });
          e.forEach(function(e, t) {
            return e.string = n[t].toFixed(0) + "X";
          });
        }
        if (this.type === PickupRouletteCtrl_1.type.MC) {
          this.itemNum = i.map(function(e) {
            return e;
          });
          e.forEach(function(e, t) {
            return e.string = i[t].toFixed(0) + "X";
          });
        }
      }
      play(e, t, o, i = null) {
        var a = this;
        var r = this.node, s = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(e);
        r.setParent(MT3SETB_Comm_1.Comm.node.rewardLayer);
        r.setPosition(o);
        this.rouletteSetup();
        if (!s) return i && (console.log("Turret is not found."), i()), void r.destroy();
        if (-1 === this.itemNum.findIndex(function(e) {
          return e === t;
        })) {
          i && (console.log("Odds is not found."), i());
          return void r.destroy();
        }
        this.seat = e;
        this.goalNum = t;
        this.endFunc = i;
        var c = cc.v2(0, -210), l = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, s.getRewardPosNode()).addSelf(c);
        cc.tween(r).to(.5, {
          position: cc.v3(l)
        }, {
          easing: function(e) {
            return 1 - Math.pow(1 - e, 1.5);
          }
        }).call(function() {
          MT3SETB_Comm_1.Comm.playAnime(r, "Engine_wheel_Start", cc.WrapMode.Normal, function() {
            a.startRotation();
          });
        }).start();
      }
      startRotation() {
        var e = this, t = this.node, o = this.pivot;
        MT3SETB_Comm_1.Comm.playAnime(t, "Engine_wheel_Loop", cc.WrapMode.Loop);
        cc.tween(o).by(.5, {
          angle: 120
        }, {
          easing: function(e) {
            return Math.pow(e, 2);
          }
        }).call(function() {
          cc.tween(o).by(1, {
            angle: 480
          }).union().repeatForever().start();
          cc.tween(o).delay(1).call(function() {
            e.addNodeForTap2Stop();
          }).start();
        }).start();
      }
      addNodeForTap2Stop() {
        var e = this, t = this.node, o = new cc.Node("TouchPanel");
        o.addComponent(cc.BlockInputEvents);
        o.setContentSize(1e4, 1e4);
        o.setParent(t);
        var n = cc.tween(o).delay(5).call(function() {
          e.startStopRoulette(), o.destroy();
        }).start();
        o.once(cc.Node.EventType.TOUCH_START, function() {
          n && n.stop();
          n = null;
          e.startStopRoulette();
          o.destroy();
        });
      }
      startStopRoulette() {
        var e = this, t = this.node, o = this.pivot, i = this.goalNum, a = [];
        this.itemNum.forEach(function(e, t) {
          if (e === i) {
            var o = 40 * t;
            a.push(o);
          }
        });
        var r = Math.sign(o.angle), s = MT3SETB_Comm_1.Comm.rItem(a), c = r * (Math.abs(o.angle) % 360);
        cc.Tween.stopAllByTarget(o);
        var l = (s += c > s + 180 ? 720 : 360) - c, u = l / 360 * .75 + .5;
        cc.tween(o).call(function() {}).by(u, {
          angle: l
        }, {
          easing: "sineOut"
        }).call(function() {
          MT3SETB_Comm_1.Comm.snd.stopEffect(79);
          MT3SETB_Comm_1.Comm.snd.stopEffect(80);
          MT3SETB_Comm_1.Comm.playAnime(t, "Engine_wheel_End", cc.WrapMode.Normal, function() {
            e.startRouletteEnd();
          });
        }).start();
      }
      startRouletteEnd() {
        this.endFunc && this.endFunc();
        this.node.destroy();
      }
    };
    PickupRouletteCtrl.type = {
      Small: 1,
      Big: 2,
      MC: 3
    };
    __decorate([ property(cc.Animation) ], PickupRouletteCtrl.prototype, "anim", void 0);
    __decorate([ property(cc.Node) ], PickupRouletteCtrl.prototype, "pivot", void 0);
    __decorate([ property([ cc.Label ]) ], PickupRouletteCtrl.prototype, "items", void 0);
    PickupRouletteCtrl = PickupRouletteCtrl_1 = __decorate([ ccclass ], PickupRouletteCtrl);
    exports.PickupRouletteCtrl = PickupRouletteCtrl;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-PumpkinEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "b063e9PuEZL44ZIKvhOAo2x", "MT3SETB-PumpkinEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_BaseEffect_1 = __importDefault(require("./MT3SETB-BaseEffect"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let PumpkinEffect = class PumpkinEffect extends MT3SETB_BaseEffect_1.default {
      constructor() {
        super(...arguments);
        this.pumpkinEffectAnim = null;
      }
      init(fish, player) {
        this.initPlayer(player);
        this.fish = fish;
        this.node.runAction(cc.sequence(cc.delayTime(2), cc.callFunc(() => {
          this.pumpkinEffectAnim.play();
          if (this.fish) {
            MT3SETB_Comm_1.Comm.fishMgr.delFish(this.fish, false, true);
            this.fish = null;
          }
        }), cc.delayTime(1), cc.callFunc(() => {
          this.destroyEffect();
        })));
      }
      destroyEffect() {
        this.node.stopAllActions();
        this.node.destroy();
      }
    };
    __decorate([ property(cc.Animation) ], PumpkinEffect.prototype, "pumpkinEffectAnim", void 0);
    PumpkinEffect = __decorate([ ccclass ], PumpkinEffect);
    exports.default = PumpkinEffect;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-BaseEffect": "MT3SETB-BaseEffect"
  } ],
  "MT3SETB-RankboardItem": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "09398HyrgZKwJ4wV64RMaGC", "MT3SETB-RankboardItem");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.RankboardItem = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const MT3SETB_LangImgForCommon_1 = require("./MT3SETB-LangImgForCommon");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let ItemInfo = class ItemInfo {
      constructor() {
        this.No = 0;
        this.frame = null;
      }
    };
    __decorate([ property(cc.Integer) ], ItemInfo.prototype, "No", void 0);
    __decorate([ property(cc.SpriteFrame) ], ItemInfo.prototype, "frame", void 0);
    ItemInfo = __decorate([ ccclass("MT3SETB-ItemInfoC") ], ItemInfo);
    let RankboardItem = class RankboardItem extends cc.Component {
      constructor() {
        super();
        this.level = null;
        this.score = null;
        this.userName = null;
        this.ItemInfo = [];
        this.itemFrame = null;
        this.groupNode = [];
        this.cardSprNode = null;
        this.cardNameNode = null;
        this.cardPixNode = null;
        this.cardStarNode = [];
        this.cardCount = null;
        this.redDiamondSpr = null;
      }
      start() {}
      init(e, t, o) {
        this.level.string = e;
        this.score.string = t > 0 ? MT3SETB_Comm_1.Comm.getThousandsNum3(t) : MT3SETB_LangList_1.LangList.getString(215);
        o && (this.userName.string = o);
      }
      initReward(e, t) {
        this.level.string = e;
        this.score.string = MT3SETB_Comm_1.Comm.getThousandsNum5(t);
        for (var o = 0; o < this.groupNode.length; ++o) this.groupNode[o].active = true;
      }
      initRedDiamond(e, t) {
        this.level.string = e;
        this.score.string = MT3SETB_Comm_1.Comm.getThousandsNum5(t);
        var o = cc.find("Money150", this.node);
        if (o) {
          var n = o.getComponent(cc.Sprite);
          n && (n.spriteFrame = this.redDiamondSpr);
        }
        for (var i = 0; i < this.groupNode.length; ++i) this.groupNode[i].active = true;
      }
      initItem(e, t) {
        this.level.string = e;
        for (var o = 0; o < this.ItemInfo.length; ++o) if (this.ItemInfo[o].No == t) {
          this.itemFrame.spriteFrame = this.ItemInfo[o].frame;
          break;
        }
        for (o = 0; o < this.groupNode.length; ++o) this.groupNode[o].active = false;
      }
      initCard(e, t, o, i, r, s) {
        this.cardCount.node.active = true;
        this.level.string = e;
        this.cardCount.getComponent(cc.Label).string = "*" + s.toString();
        var c = this.cardNameNode.getComponent(MT3SETB_LangImgForCommon_1.LangImgForCommon);
        c && c.setSpriteName(t);
        for (var l = 0; l < this.cardStarNode.length; ++l) this.cardStarNode[l].active = l < r;
        for (l = 0; l < this.groupNode.length; ++l) this.groupNode[l].active = false;
      }
      setName(e) {
        this.userName.string = e;
      }
    };
    __decorate([ property(cc.Label) ], RankboardItem.prototype, "level", void 0);
    __decorate([ property(cc.Label) ], RankboardItem.prototype, "score", void 0);
    __decorate([ property(cc.Label) ], RankboardItem.prototype, "userName", void 0);
    __decorate([ property(ItemInfo) ], RankboardItem.prototype, "ItemInfo", void 0);
    __decorate([ property(cc.Sprite) ], RankboardItem.prototype, "itemFrame", void 0);
    __decorate([ property(cc.Node) ], RankboardItem.prototype, "groupNode", void 0);
    __decorate([ property({
      type: cc.Sprite,
      tooltip: "\u9053\u5177\u5716\u7247"
    }) ], RankboardItem.prototype, "cardSprNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u9053\u5177\u540d\u7a31"
    }) ], RankboardItem.prototype, "cardNameNode", void 0);
    __decorate([ property({
      type: cc.Sprite,
      tooltip: "\u9053\u5177\u6578\u91cf\u5e95\u5716"
    }) ], RankboardItem.prototype, "cardPixNode", void 0);
    __decorate([ property({
      type: cc.Node,
      tooltip: "\u661f\u6578\u7bc0\u9ede"
    }) ], RankboardItem.prototype, "cardStarNode", void 0);
    __decorate([ property({
      type: cc.Label,
      tooltip: "\u661f\u6578\u7bc0\u9ede"
    }) ], RankboardItem.prototype, "cardCount", void 0);
    __decorate([ property(cc.SpriteFrame) ], RankboardItem.prototype, "redDiamondSpr", void 0);
    RankboardItem = __decorate([ ccclass ], RankboardItem);
    exports.RankboardItem = RankboardItem;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-LangList": "MT3SETB-LangList",
    "./MT3SETB-LangImgForCommon": "MT3SETB-LangImgForCommon"
  } ],
  "MT3SETB-Rankboard": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "b936eT8KABE051Xr3xneswV", "MT3SETB-Rankboard");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Rankboard = exports.itemData = exports.rankInfo = exports.RewardInfo = void 0;
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const MT3SETB_RankboardItem_1 = require("./MT3SETB-RankboardItem");
    const MT3SETB_WebPage_1 = require("../system/MT3SETB-WebPage");
    const MT3SETB_ui_1 = require("../common/api/MT3SETB-ui");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const MT3SETB_utils2_1 = require("../framework/framework/MT3SETB-utils2");
    const {ccclass: ccclass, property: property} = cc._decorator;
    class RewardInfo {
      constructor() {
        this.PrizeType = 0;
        this.PrizeSubType = 0;
        this.Amount = 0;
      }
    }
    exports.RewardInfo = RewardInfo;
    class rankInfo {
      constructor() {
        this.rank = "";
        this.name = "";
        this.score = 0;
      }
    }
    exports.rankInfo = rankInfo;
    class itemData {
      constructor() {
        this.localNode = null;
        this.dataNode = null;
        this.height = 0;
      }
    }
    exports.itemData = itemData;
    let Rankboard = class Rankboard extends cc.Component {
      constructor() {
        super();
        this.listNode = null;
        this.iconNode = null;
        this.iconTime = null;
        this.pageNode1 = null;
        this.pageNode2 = null;
        this.pageNode3 = null;
        this.myRankNode = null;
        this.scrollBar = null;
        this.scrollView = null;
        this.bannerNode = null;
        this.subTitle = null;
        this.show = false;
        this.myRank = null;
        this.rank = [];
        this.page = 1;
        this.scrollShowMax = 5;
        this.updateTime = 0;
        this.actionStartTime = null;
        this.actionEndTime = null;
        this.bActionStart = false;
        this.nickname = "";
        this.myRankitemNode = null;
        this.actionType = 1;
        this.rewardRank = [];
        this.rewardInfo = [];
        this.rankList = [];
        this.extraWebView = 0;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.rankboard = this;
      }
      start() {
        this.getRankInfo();
      }
      update(e) {
        this.updateTime -= e;
        this.updateActionTime();
        this.updateRankContent();
      }
      toolEvent(e, t) {
        var o = this;
        switch (t) {
         case "1":
          if (this.show) this.toolEvent(null, "2"); else if (this.bActionStart) {
            this.show = true;
            (n = this.getComponent(cc.Animation)).play(n.getClips()[0].name);
            (u = this.iconNode.getComponent(cc.Animation)).play(u.getClips()[0].name);
            1 == this.page ? this.getRankInfo() : this.toolEvent(null, "3");
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_rankopen);
          } else this.toolEvent(null, "5");
          break;

         case "2":
          var n;
          this.show = false;
          (n = this.getComponent(cc.Animation)).play(n.getClips()[1].name);
          (u = this.iconNode.getComponent(cc.Animation)).play(u.getClips()[1].name);
          MT3SETB_ui_1.CloseUIByOrder(MT3SETB_ui_1.UIType.RankBanner, function() {
            o.getComponent(MT3SETB_WebPage_1.WebPage).close();
          });
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_rankclose);
          break;

         case "3":
          if (1 != this.page) {
            var c = this.pageNode1.getComponent(cc.Animation), u = this.pageNode2.getComponent(cc.Animation);
            this.pageNode1.getComponent(cc.Animation).play(c.getClips()[0].name);
            this.pageNode2.getComponent(cc.Animation).play(u.getClips()[1].name);
            this.updateRank();
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_rank1);
            this.myRankNode.active = true;
          }
          break;

         case "4":
          if (2 != this.page) {
            c = this.pageNode1.getComponent(cc.Animation);
            u = this.pageNode2.getComponent(cc.Animation);
            this.pageNode1.getComponent(cc.Animation).play(c.getClips()[1].name);
            this.pageNode2.getComponent(cc.Animation).play(u.getClips()[0].name);
            this.updateReward();
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_rank2);
          }
          break;

         case "5":
          this.pageNode3.getComponent(cc.Animation).play();
          var d = this.getComponent(MT3SETB_WebPage_1.WebPage);
          if (d.isShow()) MT3SETB_ui_1.CloseUIByOrder(MT3SETB_ui_1.UIType.RankBanner, function() {
            o.getComponent(MT3SETB_WebPage_1.WebPage).close();
          }); else {
            d.setUrl(MT3SETB_platform_1.GetEventWebUrl());
            d.show();
          }
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_rank3);
          break;

         case "6":
          MT3SETB_ui_1.CloseUIByOrder(MT3SETB_ui_1.UIType.RankBanner, function() {
            o.getComponent(MT3SETB_WebPage_1.WebPage).close();
          });
        }
      }
      getRankInfo() {
        var e = this;
        if (this.updateTime <= 0 && "" != this.nickname && !MT3SETB_Comm_1.Comm.lotteryMgr.isWelcomePageOpen) {
          this.updateTime = 120;
          MT3SETB_platform_1.GetRank().then(function(t) {
            var o = null == t ? void 0 : t.data;
            e.extraWebView = o.ExtraWebView;
            if (o.NeedWebView) {
              var i = cc.sys.localStorage.getItem("EventRedPoint" + MT3SETB_platform_1.GetGameID());
              (!i || Date.now() - Number(i) > 864e5) && (window.RankBoardNeedWebView = true);
            } else window.RankBoardNeedWebView = false;
            if (o && o.Data) {
              var r = new Date(o.Start), s = new Date();
              if (s < r) {
                var c = r.getTime() - s.getTime();
                if (Math.floor(c / 864e5) >= 7) return;
              }
              e.rank.length = 0;
              o.Data.forEach(function(t) {
                if ("" === t.Error) {
                  if ("0" != t.Sn) for (var o in t.Users) {
                    var i = new rankInfo();
                    if (i.rank = (parseInt(o) + 1).toString(), i.score = t.Users[o].Score, i.name = t.Users[o].Nickname, 
                    e.nickname != t.Users[o].Nickname) {
                      for (var a = t.Users[o].Nickname, r = "", s = a.length, c = 0; c < 4; ++c) r += "*";
                      r += a.substring(4, s), i.name = r;
                    }
                    e.rank.push(i);
                  }
                  e.myRank = new rankInfo(), e.myRank.rank = "0" == t.Score ? "500+" : parseInt(t.Number) > 500 ? "500+" : t.Number, 
                  e.myRank.score = t.Score, e.myRank.name = e.nickname, e.actionStartTime = new Date(t.Start), 
                  e.actionEndTime = new Date(t.Ended);
                  var l = "";
                  t.VipGroup && (t.VipGroup.length > 1 ? l = MT3SETB_utils2_1.sprintf("LV%d ~ LV%d", t.VipGroup[0], t.VipGroup[t.VipGroup.length - 1]) : 1 == t.VipGroup.length && (l = MT3SETB_utils2_1.sprintf("LV%d", t.VipGroup[0])));
                  e.subTitle.string = l;
                  1 == e.page && e.updateRank();
                  e.setRewardRank(t.Prizes);
                  e.autoShowBanner();
                }
              });
            } else e.iconNode.active = false;
          });
        }
      }
      updateRank() {
        if (this.page = 1, this.listNode.destroyAllChildren(), this.rankList.length = 0, 
        this.myRankitemNode && (this.myRankitemNode.destroy(), this.myRankitemNode = null), 
        this.updateTime <= 0) this.getRankInfo(); else {
          this.myRankitemNode = this.getRankNode(this.myRank.rank), this.myRankitemNode.getComponent(MT3SETB_RankboardItem_1.RankboardItem).init(this.myRank.rank, this.myRank.score, this.myRank.name), 
          this.myRankitemNode.parent = this.myRankNode;
          for (var e = 0, t = this.listNode.getComponent(cc.Layout).spacingY, o = this.getRankNode("3").getContentSize(), n = 0; n < this.rank.length; ++n) {
            var i = new cc.Node();
            i.width = o.width, i.height = o.height, i.parent = this.listNode;
            var a = new itemData();
            a.localNode = i, a.info = this.rank[n], a.height = o.height + t, this.rankList.push(a), 
            e += a.height;
          }
          this.listNode.height = e, this.scrollView.height = 360, this.scrollBar.height = 372, 
          this.scrollBar.getComponent(cc.ScrollView).scrollToTop();
        }
      }
      updateActionTime() {
        if (this.actionStartTime) {
          this.iconNode.active = true;
          var e = new Date();
          if (e < this.actionStartTime) {
            var t = this.actionStartTime.getTime() - e.getTime(), o = Math.floor(t / 864e5), i = Math.floor(t / 36e5) - 24 * o, a = Math.floor(t / 6e4) - 60 * (24 * o + i);
            this.iconTime.string = o >= 1 ? MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(209) + "D", o) : i >= 1 ? MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(209) + "H", i) : a >= 1 ? MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(209) + "m", a) : MT3SETB_LangList_1.LangList.getString(214), 
            this.bActionStart = false, this.actionType = 1;
          } else e >= this.actionEndTime ? (this.iconTime.string = MT3SETB_LangList_1.LangList.getString(211), 
          this.bActionStart = false, this.actionType = 3, t = e.getTime() - this.actionEndTime.getTime(), 
          (o = Math.floor(t / 864e5)) >= 1 && (this.iconNode.active = false), this.updateTime <= 0 && this.getRankInfo()) : (t = this.actionEndTime.getTime() - e.getTime(), 
          o = Math.floor(t / 864e5), i = Math.floor(t / 36e5) - 24 * o, a = Math.floor(t / 6e4) - 60 * (24 * o + i), 
          this.iconTime.string = o >= 1 ? MT3SETB_utils2_1.sprintf("%sD %sH", o, i) : i >= 1 || a >= 1 ? MT3SETB_utils2_1.sprintf("%sH %sm", i, a) : MT3SETB_LangList_1.LangList.getString(210), 
          this.bActionStart = true, this.actionType = 2);
        } else this.getRankInfo();
      }
      updateRankContent() {
        var e = this.scrollBar.getComponent(cc.ScrollView);
        if (1 == this.page && e) {
          var t = e.getContentPosition();
          if (this.rankList.length > 0) {
            for (var o = Math.floor(t.y / this.rankList[0].height), n = (o = o < 0 ? 0 : o) + this.scrollShowMax > this.rankList.length - 1 ? this.rankList.length - 1 : o + this.scrollShowMax, i = o; i <= n; ++i) this.rankList[i].dataNode ? this.rankList[i].dataNode.active = true : (this.rankList[i].dataNode = this.getRankNode(this.rankList[i].info.rank), 
            this.rankList[i].dataNode.getComponent(MT3SETB_RankboardItem_1.RankboardItem).init(this.rank[i].rank, this.rank[i].score, this.rank[i].name), 
            this.rankList[i].dataNode.parent = this.rankList[i].localNode);
            var a = o - 1, r = n + 1;
            a > 0 && this.rankList[a].dataNode && (this.rankList[a].dataNode.active = false), 
            r < this.rankList.length && this.rankList[r].dataNode && (this.rankList[r].dataNode.active = false);
          }
        }
      }
      updateReward() {
        this.page = 2, this.listNode.destroyAllChildren(), this.myRankNode.active = false;
        for (var e = 0, t = this.listNode.getComponent(cc.Layout).spacingY, o = 0; o < this.rewardRank.length; ++o) {
          var n = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getRankItem(4));
          if (1 == this.rewardInfo[o].PrizeType) n.getComponent(MT3SETB_RankboardItem_1.RankboardItem).initReward(this.rewardRank[o], this.rewardInfo[o].Amount); else if (3 == this.rewardInfo[o].PrizeType) n.getComponent(MT3SETB_RankboardItem_1.RankboardItem).initItem(this.rewardRank[o], this.rewardInfo[o].PrizeSubType); else if (5 == this.rewardInfo[o].PrizeType) {
            var a = MT3SETB_Comm_1.Comm.app.getItemData(), r = this.rewardInfo[o].PrizeSubType;
            a && a[r] && n.getComponent(MT3SETB_RankboardItem_1.RankboardItem).initCard(this.rewardRank[o], a[r].name, a[r].cardPix, a[r].cardName, a[r].star, this.rewardInfo[o].Amount);
          } else 6 == this.rewardInfo[o].PrizeType && n.getComponent(MT3SETB_RankboardItem_1.RankboardItem).initRedDiamond(this.rewardRank[o], this.rewardInfo[o].Amount);
          e += n.height + t, n.parent = this.listNode;
        }
        this.listNode.height = e, this.scrollView.height = 434, this.scrollBar.height = 446, 
        this.scrollBar.getComponent(cc.ScrollView).scrollToTop();
      }
      getRankNode(e) {
        var t = "3" == e ? 2 : "2" == e ? 1 : "1" == e ? 0 : 3;
        return cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getRankItem(t));
      }
      setNickname(e) {
        this.nickname = e, this.myRankitemNode && this.myRankitemNode.getComponent(MT3SETB_RankboardItem_1.RankboardItem).setName(this.nickname);
      }
      autoShowBanner() {
        this.updateActionTime();
        var e = cc.sys.localStorage.getItem("eventPage20"), t = cc.sys.localStorage.getItem("eventPageCount20"), o = new Date();
        if (e) {
          var n = new Date(e), i = o.getFullYear(), c = o.getMonth() + 1, u = o.getDate(), d = n.getFullYear(), p = n.getMonth() + 1, h = n.getDate(), f = t ? parseInt(t) : 0;
          if (i != d || c != p || u != h) {
            if (this.actionType < 3) {
              cc.sys.localStorage.setItem("eventPage20", i + "/" + c + "/" + u), cc.sys.localStorage.setItem("eventPageCount20", "1"), 
              this.show || this.toolEvent(null, "1");
              var m = this.getComponent(MT3SETB_WebPage_1.WebPage);
              m.isShow() || MT3SETB_ui_1.ShowUIByOrder(MT3SETB_ui_1.UIType.RankBanner, function() {
                m.setUrl(MT3SETB_platform_1.GetEventWebUrl()), m.show();
              }), MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_rankpage);
            }
          } else if (f < 2) {
            if (this.actionType < 3) {
              cc.sys.localStorage.setItem("eventPageCount20", (f + 1).toString()), this.show || this.toolEvent(null, "1");
              var g = this.getComponent(MT3SETB_WebPage_1.WebPage);
              g.isShow() || MT3SETB_ui_1.ShowUIByOrder(MT3SETB_ui_1.UIType.RankBanner, function() {
                g.setUrl(MT3SETB_platform_1.GetEventWebUrl()), g.show();
              }), MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_rankpage);
            }
          } else MT3SETB_ui_1.CloseUIByOrder(MT3SETB_ui_1.UIType.RankBanner, function() {});
        } else if (this.actionType < 3) {
          var _ = o.getFullYear(), y = o.getMonth() + 1, v = o.getDate();
          cc.sys.localStorage.setItem("eventPage20", _ + "/" + y + "/" + v), cc.sys.localStorage.setItem("eventPageCount20", "1"), 
          this.show || this.toolEvent(null, "1");
          var b = this.getComponent(MT3SETB_WebPage_1.WebPage);
          b.isShow() || MT3SETB_ui_1.ShowUIByOrder(MT3SETB_ui_1.UIType.RankBanner, function() {
            b.setUrl(MT3SETB_platform_1.GetEventWebUrl()), b.show();
          }), MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_rankpage);
        }
      }
      setRewardRank(e) {
        if (e) for (var t = 0; t < e.length; ++t) {
          var o = e[t].EndRanking - e[t].BeginRanking;
          this.rewardRank[t] = o > 1 ? MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(212), e[t].BeginRanking, e[t].EndRanking - 1) : MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(208), e[t].BeginRanking);
          var i = new RewardInfo();
          i.PrizeType = e[t].PrizeType, i.PrizeSubType = e[t].PrizeSubType, i.Amount = e[t].Amount, 
          this.rewardInfo[t] = i;
        }
      }
    };
    __decorate([ property(cc.Node) ], Rankboard.prototype, "listNode", void 0);
    __decorate([ property(cc.Node) ], Rankboard.prototype, "iconNode", void 0);
    __decorate([ property(cc.Label) ], Rankboard.prototype, "iconTime", void 0);
    __decorate([ property(cc.Node) ], Rankboard.prototype, "pageNode1", void 0);
    __decorate([ property(cc.Node) ], Rankboard.prototype, "pageNode2", void 0);
    __decorate([ property(cc.Node) ], Rankboard.prototype, "pageNode3", void 0);
    __decorate([ property(cc.Node) ], Rankboard.prototype, "myRankNode", void 0);
    __decorate([ property(cc.Node) ], Rankboard.prototype, "scrollBar", void 0);
    __decorate([ property(cc.Node) ], Rankboard.prototype, "scrollView", void 0);
    __decorate([ property(cc.Node) ], Rankboard.prototype, "bannerNode", void 0);
    __decorate([ property(cc.Label) ], Rankboard.prototype, "subTitle", void 0);
    Rankboard = __decorate([ ccclass ], Rankboard);
    exports.Rankboard = Rankboard;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../common/api/MT3SETB-ui": "MT3SETB-ui",
    "../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "../system/MT3SETB-LangList": "MT3SETB-LangList",
    "../system/MT3SETB-WebPage": "MT3SETB-WebPage",
    "./MT3SETB-RankboardItem": "MT3SETB-RankboardItem"
  } ],
  "MT3SETB-Redenvelope": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "75d2f7kRF5PeqBqll/RL5Tb", "MT3SETB-Redenvelope");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Redenvelope = void 0;
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const {ccclass: ccclass, property: property} = cc._decorator;
    var n;
    (function(n) {
      n[n["IDLE"] = 0] = "IDLE";
      n[n["SHOW"] = 1] = "SHOW";
      n[n["SHOWING"] = 2] = "SHOWING";
      n[n["WAITWASH"] = 3] = "WAITWASH";
      n[n["ZOOMOUT"] = 10] = "ZOOMOUT";
      n[n["ZOOMOUTING"] = 11] = "ZOOMOUTING";
      n[n["WASH"] = 4] = "WASH";
      n[n["WASHING"] = 5] = "WASHING";
      n[n["WAITOPEN"] = 6] = "WAITOPEN";
      n[n["OPEN"] = 7] = "OPEN";
      n[n["OPENING"] = 8] = "OPENING";
      n[n["RECEIVE"] = 9] = "RECEIVE";
      n[n["RECEIVEING"] = 12] = "RECEIVEING";
    })(n || (n = {}));
    let Redenvelope = class Redenvelope extends cc.Component {
      constructor() {
        super();
        this.root = null;
        this.timeLabel = null;
        this.box = [];
        this.reveiveItem = null;
        this.reveiveLabel = null;
        this.lotteryList = [];
        this.chooseTime = 11;
        this.lotteryData = null;
        this.bChoose = false;
        this.aniNode = [];
        this.numNode = [];
        this.numDarkNode = [];
        this.stage = n.IDLE;
        this.candidateList = [];
        this.showBetLow = [ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 ];
        this.showBetLow_Mid = [ 8, 10, 12, 14, 16, 18, 20, 24, 30, 50 ];
        this.showBetMid = [ 12, 14, 16, 18, 20, 24, 30, 50, 60, 70 ];
        this.showBetMid_High = [ 16, 18, 20, 24, 30, 50, 60, 70, 80, 90 ];
        this.showBetHigh = [ 24, 30, 50, 60, 70, 80, 90, 100, 150, 200 ];
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.redenv = this;
      }
      start() {
        for (var e = this, t = 0; t < this.box.length; ++t) {
          var o = this.box[t].getComponent(cc.Animation), i = cc.find("RedEnvelopeOpen01/RedEnvelopeOpen01_Num", this.box[t]), a = cc.find("RedEnvelopeOpen01/RedEnvelopeOpen01_NumDark", this.box[t]);
          this.aniNode.push(o);
          this.numNode.push(i.getComponent(cc.Label));
          this.numDarkNode.push(a.getComponent(cc.Label));
          o.on("finished", function() {
            e.stage == n.SHOWING ? e.stage = n.WAITWASH : e.stage == n.ZOOMOUTING ? e.stage = n.WASH : e.stage == n.OPENING && (e.stage = n.RECEIVE);
          }, this);
        }
        this.root.getComponent(cc.Animation).on("finished", function() {
          e.stage == n.IDLE ? e.stage = n.SHOW : e.stage == n.WASHING && (e.stage = n.WAITOPEN);
        }, this);
      }
      update(e) {
        if (this.lotteryData) this.updateStage(e); else if (!MT3SETB_Comm_1.Comm.app.isNetBreak) {
          var t = this.lotteryList.shift();
          t && this.showUI(t);
        }
      }
      init() {
        for (var e = 0; e < this.box.length; ++e) this.aniNode[e].play(this.aniNode[e].getClips()[4].name);
        this.bChoose = false;
        this.stage = n.IDLE;
        this.candidateList = [];
      }
      updateTime(e, t) {
        if (this.chooseTime > 0) {
          Math.floor(this.chooseTime);
          this.chooseTime -= e;
          Math.floor(this.chooseTime);
          if (this.chooseTime <= 0) {
            this.chooseTime = 0;
            this.stage = t;
          }
          this.timeLabel.string = Math.floor(this.chooseTime).toString();
        }
      }
      updateStage(e) {
        if (this.stage == n.IDLE) ; else if (this.stage == n.SHOW) {
          this.createOtherCoin();
          for (var t = 0; t < this.box.length; ++t) {
            this.aniNode[t].play(this.aniNode[t].getClips()[1].name);
            this.numNode[t].string = this.candidateList[t];
            this.numDarkNode[t].string = this.candidateList[t];
          }
          this.stage = n.SHOWING;
        } else if (this.stage == n.SHOWING) this.chooseTime = .5; else if (this.stage == n.WAITWASH) this.updateTime(e, n.ZOOMOUT); else if (this.stage == n.ZOOMOUT) {
          for (t = 0; t < this.box.length; ++t) this.aniNode[t].play(this.aniNode[t].getClips()[3].name);
          this.stage = n.ZOOMOUTING;
        } else if (this.stage == n.ZOOMOUTING) ; else if (this.stage == n.WASH) {
          var o = this.root.getComponent(cc.Animation);
          o.play(o.getClips()[1].name);
          this.node.runAction(cc.sequence(cc.delayTime(.25), cc.callFunc(function() {})));
          this.stage = n.WASHING;
        } else this.stage == n.WASHING ? this.chooseTime = 6 : this.stage == n.WAITOPEN ? this.updateTime(e, n.OPEN) : this.stage == n.OPEN ? (this.click(null, "0"), 
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_redenvelope_auto), 
        this.stage = n.OPENING) : this.stage == n.OPENING ? this.chooseTime = 2 : this.stage == n.RECEIVE ? this.updateTime(e, n.RECEIVEING) : this.stage == n.RECEIVEING && (this.hideUI(), 
        this.receiveToPlayer(), this.stage = n.IDLE);
      }
      toolEvent(e, t) {
        switch (t) {
         case "wash":
          this.stage == n.WAITWASH ? this.stage = n.ZOOMOUT : this.stage == n.RECEIVE && (this.stage = n.RECEIVEING);
          break;

         case "open1":
          if (this.stage == n.WAITOPEN) {
            this.click(null, "0");
            this.stage = n.OPENING;
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_redenvelope_click, "0");
          }
          break;

         case "open2":
          if (this.stage == n.WAITOPEN) {
            this.click(null, "1");
            this.stage = n.OPENING;
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_redenvelope_click, "1");
          }
          break;

         case "open3":
          if (this.stage == n.WAITOPEN) {
            this.click(null, "2");
            this.stage = n.OPENING;
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_redenvelope_click, "2");
          }
          break;

         case "open4":
          if (this.stage == n.WAITOPEN) {
            this.click(null, "3");
            this.stage = n.OPENING;
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_redenvelope_click, "3");
          }
          break;

         case "open5":
          if (this.stage == n.WAITOPEN) {
            this.click(null, "4");
            this.stage = n.OPENING;
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_redenvelope_click, "4");
          }
        }
      }
      setRedenvelopeData(e) {
        this.lotteryList.push(e);
      }
      showUI(e) {
        this.root.active = true;
        var t = this.root.getComponent(cc.Animation);
        t.play(t.getClips()[0].name);
        this.lotteryData = e;
        MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat(), true);
        this.init();
      }
      hideUI() {
        this.root.active = false;
        this.reveiveItem.active = true;
      }
      createOtherCoin() {
        var e;
        e = this.lotteryData.odds <= this.showBetLow[4] ? this.showBetLow : this.lotteryData.odds <= this.showBetLow_Mid[4] ? this.showBetLow_Mid : this.lotteryData.odds <= this.showBetMid[4] ? this.showBetMid : this.lotteryData.odds <= this.showBetMid_High[4] ? this.showBetMid_High : this.showBetHigh;
        this.candidateList.push(MT3SETB_Comm_1.Comm.getThousandsNum(this.lotteryData.coin));
        for (var t = 0; t < this.box.length - 1; ++t) {
          var o = e[Math.floor(Math.random() * e.length)] * this.lotteryData.bet;
          this.candidateList.push(MT3SETB_Comm_1.Comm.getThousandsNum(o));
        }
        this.candidateList.sort(function() {
          return .5 - Math.random();
        });
      }
      click(e, t) {
        if (null != this.lotteryData && !this.bChoose) {
          for (var o = Number(t), n = MT3SETB_Comm_1.Comm.getThousandsNum(this.lotteryData.coin), i = 0; i < this.box.length; ++i) if (this.candidateList[i] == n) {
            var r = this.candidateList[o];
            this.candidateList[o] = this.candidateList[i];
            this.candidateList[i] = r;
          }
          var s = function(e) {
            if (o == e) {
              c.aniNode[e].play(c.aniNode[e].getClips()[0].name);
              c.numNode[e].string = c.candidateList[e];
              c.numDarkNode[e].string = c.candidateList[e];
              c.reveiveLabel.string = c.candidateList[e];
              c.reveiveItem.position = cc.v3(MT3SETB_Comm_1.Comm.transPos(c.root.parent, c.box[e]));
            } else c.scheduleOnce(function() {
              this.aniNode[e].play(this.aniNode[e].getClips()[2].name);
              this.numNode[e].string = this.candidateList[e];
              this.numDarkNode[e].string = this.candidateList[e];
            }, 1.62);
          }, c = this;
          for (i = 0; i < this.box.length; ++i) s(i);
          this.bChoose = true;
          this.timeLabel.node.active = false;
        }
      }
      receiveToPlayer() {
        var e = this, t = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        if (t) {
          var o = t.getAheadPos(), n = this.reveiveItem.position.sub(cc.v3(o)), i = cc.misc.radiansToDegrees(cc.Vec2.UP.signAngle(cc.v2(n)));
          this.reveiveItem.angle = i;
          this.reveiveItem.scale = 1;
          this.reveiveItem.runAction(cc.sequence(cc.spawn(cc.moveTo(.5, o), cc.scaleTo(.5, .1)), cc.callFunc(function() {
            e.reveiveItem.active = false;
            MT3SETB_Comm_1.Comm.effectMgr.rewardRedCircle(MT3SETB_Game_1.eFishMedal.Redenvelope, e.lotteryData.seat, e.lotteryData.coin, true, e.lotteryData.bet);
            MT3SETB_Comm_1.Comm.gameCtrl.stopShooting(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat(), false);
            e.lotteryData = null;
          })));
        }
      }
      checkBannerRedDotTime() {
        var e = false, t = MT3SETB_platform_1.GetGameID(), o = cc.sys.localStorage.getItem("redBanner" + t);
        if (o) {
          var n = new Date(), a = n.getUTCFullYear(), s = n.getUTCMonth(), c = n.getUTCDate();
          e = o == `${a}${s}${c}`;
        }
        return e;
      }
    };
    __decorate([ property(cc.Node) ], Redenvelope.prototype, "root", void 0);
    __decorate([ property(cc.Label) ], Redenvelope.prototype, "timeLabel", void 0);
    __decorate([ property(cc.Node) ], Redenvelope.prototype, "box", void 0);
    __decorate([ property(cc.Node) ], Redenvelope.prototype, "reveiveItem", void 0);
    __decorate([ property(cc.Label) ], Redenvelope.prototype, "reveiveLabel", void 0);
    Redenvelope = __decorate([ ccclass ], Redenvelope);
    exports.Redenvelope = Redenvelope;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../system/MT3SETB-Game": "MT3SETB-Game"
  } ],
  "MT3SETB-ResizeToFit": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e6b0eu+EW1KpZcyAotxTVCu", "MT3SETB-ResizeToFit");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ResizeToFit = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let ResizeToFit = class ResizeToFit extends cc.Component {
      start() {
        for (let child of this.node.children) child.on(cc.Node.EventType.SIZE_CHANGED, this.updateSize, this);
      }
      updateSize() {
        var _a;
        let newWidth = 0, newHeight = 0;
        for (let child of this.node.children) {
          newWidth = Math.max(child.width);
          newHeight = Math.max(child.height);
        }
        this.node.setContentSize(newWidth, newHeight);
        let parentWidget = null === (_a = this.node.parent) || void 0 === _a ? void 0 : _a.getComponent(cc.Layout);
        parentWidget && parentWidget.updateLayout();
      }
    };
    ResizeToFit = __decorate([ ccclass ], ResizeToFit);
    exports.ResizeToFit = ResizeToFit;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-RetainMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "a560bbuBWRDgZjaW6w9/ytj", "MT3SETB-RetainMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.RetainMgr = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let l = 180, u = Math.pow(10, -7);
    let RetainMgr = class RetainMgr extends cc.Component {
      constructor() {
        super();
        this.barNode = null;
        this.meteorS = 0;
        this.meteor = 0;
        this.currValue = 0;
        this.progressBar = null;
        this.progressBarAnim = null;
        this.shootBtn = null;
        this.efNode1 = null;
        this.addEfNode = null;
        this.addEfDiffY = 0;
        this.countdownText = null;
        this.refreshLock = false;
        this.countdown = l;
        this.fingerNode = null;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.retainMgr = this;
        this.barNode.active = false;
      }
      init(e = 0) {
        this.meteor = e;
        this.progressBar = this.barNode.getChildByName("EnergyBarNew_02").getComponent(cc.ProgressBar);
        this.progressBarAnim = this.barNode.getComponent(cc.Animation);
        this.shootBtn = this.barNode.getChildByName("ShootBtn").getComponent(cc.Button);
        this.efNode1 = this.barNode.getChildByName("EnergyBarNew_01").getChildByName("Dot_1").getChildByName("1316-3");
        this.addEfNode = this.barNode.getChildByName("Slider");
        this.addEfDiffY = this.progressBar.node.getChildByName("EnergyBarNew_03").getContentSize().height;
        this.countdownText = this.barNode.getChildByName("CD_label").getComponent(cc.Label);
        this.fingerNode = this.barNode.getChildByName("Finger");
        this.progressBarAnim.play("EnergyIcon_Idle");
        this.updateByBet(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet());
        this.barNode.active = !MT3SETB_platform_1.isDisable0Bet();
      }
      setProgress(e) {
        this.currValue = cc.misc.clamp01(e);
        this.refreshUI();
      }
      refreshUI() {
        var e = this.compare(this.progressBar.progress, 0) ? 0 : this.compare(this.progressBar.progress, 1) ? 1 : (this.progressBar.progress - .03) / .93;
        this.meteorS >= 50 * MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet() ? (this.progressBar.progress = 1, 
        this.addEfNode.getChildByName("Handle").y = this.addEfDiffY * this.progressBar.progress, 
        this.efNode1.active || (this.progressBarAnim.stop("EnergyIcon_Idle"), this.progressBarAnim.play("EnergyIcon_Full")), 
        this.fingerNode.active = true, MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().showRetainHintMsg()) : (this.progressBar.progress = this.compare(this.currValue, 0) ? 0 : .93 * this.currValue + .03, 
        this.addEfNode.getChildByName("Handle").y = this.addEfDiffY * this.progressBar.progress, 
        this.efNode1.active && (this.progressBarAnim.stop("EnergyIcon_Full"), this.progressBarAnim.play("EnergyIcon_Idle")), 
        this.fingerNode.active = false, e != this.currValue && (this.addEfNode.stopAllActions(), 
        this.addEfNode.opacity = 150, this.addEfNode.runAction(cc.fadeOut(.5))));
      }
      update(e) {
        MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret() && (this.meteorS >= 50 * MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet() ? (this.countdown > 0 && this.countdown <= 30.9 && (this.countdownText.node.active = true, 
        this.countdownText.string = (0 | this.countdown).toString()), this.countdown <= 0 && this.shoot(), 
        this.countdown -= e) : (this.countdownText.node.active = false, this.countdown = l));
      }
      shoot() {}
      getProgress() {
        return this.currValue;
      }
      isFull() {
        return this.compare(this.getProgress(), 1);
      }
      updateByBet(e, t) {
        if (!this.refreshLock && this.meteor != t) {
          t && this.setMeteor(t);
          var o = Math.min(this.calcProgressByBet(e), 1);
          this.setProgress(o);
        }
      }
      calcProgressByBet(e) {
        var t = this.meteor / e / 50;
        return .9032210234 * Math.atan(2 * t);
      }
      hide() {}
      compare(e, t) {
        return Math.abs(e - t) < u;
      }
      cleanProgress() {
        var e = this, t = function(o) {
          var n = cc.misc.clamp01(e.currValue - o);
          e.setProgress(Math.pow(n, 1.1));
          e.currValue <= 0 && (e.unschedule(t), e.refreshLock = false);
        };
        this.setMeteor(0);
        this.meteorS = 0;
        this.refreshLock = true;
        this.schedule(t, 0);
      }
      setMeteor(e) {
        this.meteor = e;
      }
      getMeteor() {
        return this.meteor;
      }
      setMeteorS(e) {
        this.meteorS = e;
      }
    };
    __decorate([ property(cc.Node) ], RetainMgr.prototype, "barNode", void 0);
    RetainMgr = __decorate([ ccclass ], RetainMgr);
    exports.RetainMgr = RetainMgr;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-platform": "MT3SETB-platform"
  } ],
  "MT3SETB-RewardCircle": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "a1a84BiCkRD0KDWV//7kUei", "MT3SETB-RewardCircle");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.RewardCircle = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let RewardCircle = class RewardCircle extends cc.Component {
      constructor() {
        super();
        this.coin = null;
        this.rateLabel = null;
        this.bonusIcon = null;
        this.default_odds = [];
        this.isPlay = false;
        this.isMe = false;
        this.medal = 0;
        this.seat = 0;
        this.money = 0;
        this.time = 0;
        this.weight = 0;
        this.odds = 1;
        this.bet = 1;
        this.bonus = 0;
        this.map = null;
        this.jpType = null;
        this.jpMoney = null;
        this.currentWin = 0;
        this.updateWinSpeed = [];
        this.updateWinSpeed_type = 0;
        this.updateWinFlag = [ false, false, false ];
      }
      onLoad() {}
      start() {}
      init(e, t, o, n, i, a, r, s, c, l, u) {
        this.isMe = e;
        this.medal = t;
        this.seat = o;
        this.money = n;
        this.time = i;
        this.weight = a;
        this.odds = n / r;
        this.bet = r;
        this.bonus = s;
        this.map = c;
        this.jpType = l;
        this.jpMoney = u;
        this.isPlay = false;
        this.node.setScale(.8);
      }
      getIsPlay() {
        return this.isPlay;
      }
      getCoin() {
        return this.money;
      }
      getTime() {
        return this.time;
      }
      getWeight() {
        return this.weight;
      }
      changeCoin() {
        this.coin.string = this.formatMoneyText();
        MT3SETB_Comm_1.Comm.effectMgr.playUserCoinNumAnim(this.seat, this.money);
      }
      formatMoneyText() {
        return MT3SETB_Comm_1.Comm.getThousandsNum(this.money);
      }
      play() {
        var e = this;
        this.isPlay = true;
        this.bonusIcon && (this.bonusIcon.active = this.bonus > 0);
        var t = this.node.getComponent(cc.Animation), o = t.getClips();
        if (this.medal == MT3SETB_Game_1.eFishMedal.JpMedal) {
          this.node.setScale(.5);
          this.node.getChildByName("Black").active = false;
          this.node.getChildByName("JP_MoneyMountain_01").destroy();
          this.node.getChildByName("JP_MoneyMountain_02").destroy();
          this.node.getChildByName("JP_MoneyMountain_03").destroy();
          t.play(o[this.jpType + 9].name);
          this.scheduleOnce(function() {
            e.node.emit("resetReward");
          }, 3);
          this.coin.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.jpMoney);
          MT3SETB_Comm_1.Comm.effectMgr.playUserCoinNumAnim(this.seat, this.jpMoney);
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", this.seat, -this.jpMoney);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.seat, this.jpMoney);
          MT3SETB_Comm_1.Comm.lotteryMgr.resetJpBoardNum(this.jpType - 1);
        } else if (this.default_odds.length > 0) {
          t.play(o[0].name);
          if (Math.random() >= .75) {
            this.currentWin = this.default_odds[0] * this.bet;
            this.coin.string = MT3SETB_Comm_1.Comm.getThousandsNum(this.currentWin);
            this.updateWinSpeed[0] = (this.default_odds[1] - this.default_odds[0]) * this.bet;
            this.updateWinSpeed[1] = (this.default_odds[2] - this.default_odds[1]) * this.bet;
            this.updateWinSpeed_type = 0;
            var a = [];
            a.push(cc.delayTime(1.5));
            a.push(cc.callFunc(function() {
              t.stop();
              for (var o = 0; o < e.updateWinFlag.length; o++) e.updateWinFlag[o] = true;
            }));
            this.node.runAction(cc.sequence(a));
            var r = 3;
            this.default_odds[1] * this.bet == this.money ? r = 4.5 : this.default_odds[2] * this.bet == this.money && (r = 6.5);
            MT3SETB_Comm_1.Comm.runTask(r, function() {
              MT3SETB_Comm_1.Comm.effectMgr.playUserCoinNumAnim(e.seat, e.money);
            });
          } else {
            t.play(o[0].name);
            t.once("finished", function() {
              this.node.emit("resetReward");
            }.bind(this));
            this.coin.string = MT3SETB_Comm_1.Comm.getThousandsNum(this.money);
            MT3SETB_Comm_1.Comm.runTask(3, function() {
              MT3SETB_Comm_1.Comm.effectMgr.playUserCoinNumAnim(e.seat, e.money);
            });
          }
        } else {
          t.play(o[0].name);
          t.once("finished", function() {
            this.node.emit("resetReward");
          }.bind(this));
          this.changeCoin();
        }
      }
      playSound() {
        if (this.isMe) switch (this.medal) {
         case MT3SETB_Game_1.eFishMedal.GoldGodfish:
         case MT3SETB_Game_1.eFishMedal.GoldClownfish:
         case MT3SETB_Game_1.eFishMedal.GoldManta:
         case MT3SETB_Game_1.eFishMedal.ElectricShark:
         case MT3SETB_Game_1.eFishMedal.BombsCrab:
         case MT3SETB_Game_1.eFishMedal.Anemone:
          break;

         case MT3SETB_Game_1.eFishMedal.Armourfish:
         case MT3SETB_Game_1.eFishMedal.Lanternfish:
         case MT3SETB_Game_1.eFishMedal.GoldTurtle:
          break;

         case MT3SETB_Game_1.eFishMedal.BossSquid:
         case MT3SETB_Game_1.eFishMedal.BossShark:
         case MT3SETB_Game_1.eFishMedal.Cornucopia_1:
         case MT3SETB_Game_1.eFishMedal.Cornucopia_2:
         case MT3SETB_Game_1.eFishMedal.JPFish:
         case MT3SETB_Game_1.eFishMedal.JPDragon:
         case MT3SETB_Game_1.eFishMedal.Phoenix:
         case MT3SETB_Game_1.eFishMedal.Redenvelope:
         case MT3SETB_Game_1.eFishMedal.JpMedal:
        }
      }
      baseShow() {
        var turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(this.seat);
        if (turret) {
          let rewardParent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
          let worldPos = turret.getRewardPosNode().convertToWorldSpaceAR(this.getCirclePosition(turret));
          let translatedPos = rewardParent.convertToNodeSpaceAR(worldPos);
          this.node.setParent(MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent);
          this.node.position = translatedPos;
          this.play();
          this.playSound();
        }
      }
      getCirclePosition(turret) {
        return turret.getEffectPointPos(false);
      }
      updateCoin(e) {
        var t = this;
        if (this.updateWinFlag[0]) {
          this.currentWin = this.currentWin + e * this.updateWinSpeed[this.updateWinSpeed_type] * 2;
          this.coin.node.scale = this.coin.node.scale + e;
          if (this.currentWin >= this.money) {
            this.updateWinFlag[0] = false;
            this.currentWin = this.money;
            var o = 1.3;
            this.updateWinFlag[2] || (o = 1.8);
            this.coin.node.runAction(cc.sequence(cc.delayTime(.8), cc.scaleTo(.1, o)));
            this.scheduleOnce(function() {
              t.node.emit("resetReward");
            }, 1.5);
          } else if (this.currentWin >= this.default_odds[0] * this.bet && this.updateWinFlag[1]) {
            this.updateWinFlag[1] = false;
            this.currentWin = this.default_odds[0] * this.bet;
            this.updateWinSpeed_type = 0;
          } else if (this.currentWin >= this.default_odds[1] * this.bet && this.updateWinFlag[2]) {
            this.updateWinFlag[0] = false;
            this.updateWinFlag[1] = false;
            this.updateWinFlag[2] = false;
            this.currentWin = this.default_odds[1] * this.bet;
            this.updateWinSpeed_type = 1;
            this.coin.node.runAction(cc.sequence(cc.delayTime(.8), cc.callFunc(function() {
              t.updateWinFlag[0] = true;
            })));
          }
          this.bet >= 1 ? this.coin.string = MT3SETB_Comm_1.Comm.getThousandsNum2(this.currentWin) : this.coin.string = MT3SETB_Comm_1.Comm.getThousandsNum(this.currentWin);
        }
      }
      update(e) {
        this.updateCoin(e);
      }
    };
    __decorate([ property(cc.Label) ], RewardCircle.prototype, "coin", void 0);
    __decorate([ property(cc.Label) ], RewardCircle.prototype, "rateLabel", void 0);
    __decorate([ property(cc.Node) ], RewardCircle.prototype, "bonusIcon", void 0);
    __decorate([ property([ cc.Integer ]) ], RewardCircle.prototype, "default_odds", void 0);
    RewardCircle = __decorate([ ccclass ], RewardCircle);
    exports.RewardCircle = RewardCircle;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game"
  } ],
  "MT3SETB-RewardData": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "04965w5FRNECba6MiYxn+FC", "MT3SETB-RewardData");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.RewardData = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let RewardData = class RewardData extends cc.Component {
      constructor() {
        super(...arguments);
        this.goldPillar = null;
        this.rewardCircle = null;
        this.phoenixRewardCircle = null;
        this.rewards = [];
        this.redenvelope = null;
        this.levelup = null;
        this.pickupReward = null;
        this.pickupReward_MC = null;
        this.pickupSmallRoulette = null;
        this.pickupBigRoulette = null;
        this.pickupRouletteCnter = null;
        this.redEnvelope_CNY = null;
        this.richBag_CNY = null;
        this.catchRewardShow_CNY = null;
      }
    };
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "goldPillar", void 0);
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "rewardCircle", void 0);
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "phoenixRewardCircle", void 0);
    __decorate([ property([ cc.Prefab ]) ], RewardData.prototype, "rewards", void 0);
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "redenvelope", void 0);
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "levelup", void 0);
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "pickupReward", void 0);
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "pickupReward_MC", void 0);
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "pickupSmallRoulette", void 0);
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "pickupBigRoulette", void 0);
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "pickupRouletteCnter", void 0);
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "redEnvelope_CNY", void 0);
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "richBag_CNY", void 0);
    __decorate([ property(cc.Prefab) ], RewardData.prototype, "catchRewardShow_CNY", void 0);
    RewardData = __decorate([ ccclass ], RewardData);
    exports.RewardData = RewardData;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-Roulette": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "fb8e57Ev3xLYaz65lTUeZpY", "MT3SETB-Roulette");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Roulette = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let Roulette = class Roulette extends cc.Component {
      constructor() {
        super();
        this.rotator = null;
        this.rotator2 = null;
        this.isRoting = false;
        this.isParking = false;
        this.onStop = null;
        this.lerper = null;
        this.rate = 0;
        this.rotGoal = 0;
        this.checkPt = 0;
        this.curTime = 0;
        this.threshold = 0;
        this.accelTime = 0;
        this.stableTime = 0;
        this.forceStopFlag = false;
        this.isStopFlag = false;
      }
      onLoad() {
        this.lerper = new cc.Node();
        this.lerper.parent = this.node;
      }
      reset() {
        this.isRoting = false;
        this.isParking = false;
        this.forceStopFlag = false;
        this.isStopFlag = false;
        this.onStop = null;
        this.curTime = 0;
        this.rate = 0;
        this.lerper.stopAllActions();
        this.lerper.x = 0;
        this.rotator.stopAllActions();
        this.rotator.angle = 0;
        this.rotator2.stopAllActions();
        this.rotator2.angle = 0;
      }
      perform(e, t, o, n) {
        this.accelTime = e;
        this.stableTime = t;
        this.rotGoal = o % 360;
        this.onStop = n;
        this.threshold = e + t;
        this.checkPt = this.rotGoal - 260;
        this.checkPt < 0 && (this.checkPt += 360);
        this.startRotation();
      }
      startRotation() {
        var e = this;
        this.isRoting = true;
        this.lerper.runAction(cc.moveTo(this.accelTime, cc.v2(1, 0)).easing(cc.easeIn(1.2)));
        MT3SETB_Comm_1.Comm.runTask(this.threshold + 3, function() {
          e.isRoting && (e.isRoting = false, e.startParking());
        });
      }
      startParking() {
        var e = this;
        this.rotator.runAction(cc.sequence(cc.rotateTo(1.4, this.rotGoal).easing(cc.easeOut(1.2)), cc.delayTime(.1), cc.callFunc(function() {
          e.onStop && (e.onStop(), e.onStop = null);
        })));
        this.rotator2.angle = -this.rotGoal;
      }
      update(e) {
        if (this.isRoting) if (this.isParking) {
          if (this.rotator.angle <= 30 - this.rotGoal && this.rotator.angle >= -this.rotGoal) return this.isRoting = false, 
          void this.startParking();
          this.rate = this.rate - .023 > .1 ? this.rate - .023 : .1;
          this.rotator.angle -= 520 * e * this.rate;
          this.rotator.angle %= 360;
        } else {
          if (!this.forceStopFlag && this.curTime < this.threshold) this.rate = this.lerper.x; else if (MT3SETB_Comm_1.Comm.find("hint_text", this.node).active = false, 
          this.rotator.angle <= 30 - this.checkPt && this.rotator.angle >= -this.checkPt) return void (this.isParking = true);
          this.rotator.angle -= 520 * e * this.rate;
          this.rotator.angle %= 360;
          this.curTime += e;
        }
      }
      maskEvent(e, t) {
        if ("stop" == t) {
          if (this.isStopFlag) return;
          this.curTime <= this.threshold && (this.isStopFlag = true, this.forceStopFlag = true);
        }
      }
    };
    __decorate([ property(cc.Node) ], Roulette.prototype, "rotator", void 0);
    __decorate([ property(cc.Node) ], Roulette.prototype, "rotator2", void 0);
    Roulette = __decorate([ ccclass ], Roulette);
    exports.Roulette = Roulette;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-ScrollingToast": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "8dd79Ru4zxGT7KyFYDTMKAT", "MT3SETB-ScrollingToast");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let ScrollingToast = class ScrollingToast extends cc.Component {
      constructor() {
        super();
        this.root = null;
        this.toastPrefab = null;
        this.initCount = 5;
        this.toastPool = null;
        this.toastList = [];
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.scrollingToast = this;
      }
      start() {
        this.toastPool = new cc.NodePool();
        for (let i = 0; i < this.initCount; ++i) {
          let toastPrefab = cc.instantiate(this.toastPrefab);
          this.toastPool.put(toastPrefab);
        }
      }
      getToastPrefab() {
        let toast = null;
        toast = this.toastPool.size() > 0 ? this.toastPool.get() : cc.instantiate(this.toastPrefab);
        return toast;
      }
      setText(e, delay, fadeOut) {
        if (this.toastList.length >= 1) {
          var curIdx = 0;
          for (let i = this.toastList.length - 1; i >= 0; i--) {
            this.toastList[i].setPosition(new cc.Vec2(0, curIdx * this.toastList[i].height));
            this.toastList[i].runAction(cc.moveBy(.15, new cc.Vec2(0, this.toastList[i].height)));
            curIdx++;
          }
        }
        var newToast = this.getToastPrefab();
        if (null == newToast) {
          console.log("unable to get toast!");
          return;
        }
        newToast.parent = this.node;
        newToast.setPosition(cc.v2(0, 0));
        newToast.opacity = 255;
        newToast.scale = 0;
        newToast.getComponentInChildren(cc.Label).string = e;
        this.toastList.push(newToast);
        newToast.runAction(cc.sequence(cc.scaleTo(.075, 1, 1), cc.delayTime(delay || 2.5), cc.fadeOut(fadeOut), cc.callFunc(() => {
          this.toastPool.put(newToast);
          cc.js.array.remove(this.toastList, newToast);
        }, newToast)));
      }
    };
    __decorate([ property(cc.Node) ], ScrollingToast.prototype, "root", void 0);
    __decorate([ property(cc.Prefab) ], ScrollingToast.prototype, "toastPrefab", void 0);
    ScrollingToast = __decorate([ ccclass ], ScrollingToast);
    exports.default = ScrollingToast;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-Setting": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "7d3beFedJlPu5joMvD2LGAp", "MT3SETB-Setting");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_InGamePanelLS_1 = __importDefault(require("./MT3SETB-InGamePanelLS"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let Setting = class Setting extends cc.Component {
      constructor() {
        super(...arguments);
        this.panelNode = null;
        this.inGamePanel = null;
        this.sfxSlider = null;
        this.sfxFillSprite = null;
        this.bgmSlider = null;
        this.bgmFillSprite = null;
      }
      start() {
        MT3SETB_Comm_1.Comm.setting = this;
        this.sfxSlider.node.on("slide", this.onSlideUpdateSFXVolume, this);
        this.bgmSlider.node.on("slide", this.onSlideUpdateBGMVolume, this);
      }
      show() {
        this.sfxSlider.progress = MT3SETB_Comm_1.Comm.snd.effectVol;
        this.bgmSlider.progress = MT3SETB_Comm_1.Comm.snd.musicVol;
        this.onSlideUpdateSFXVolume(this.sfxSlider);
        this.onSlideUpdateBGMVolume(this.bgmSlider);
        this.inGamePanel.show();
      }
      onSlideUpdateSFXVolume(slider) {
        this.sfxFillSprite.progress = slider.progress;
        MT3SETB_Comm_1.Comm.snd.setEffect(slider.progress);
      }
      onSlideUpdateBGMVolume(slider) {
        this.bgmFillSprite.progress = slider.progress;
        MT3SETB_Comm_1.Comm.snd.setBackgroundMusic(slider.progress);
      }
    };
    __decorate([ property(cc.Node) ], Setting.prototype, "panelNode", void 0);
    __decorate([ property(MT3SETB_InGamePanelLS_1.default) ], Setting.prototype, "inGamePanel", void 0);
    __decorate([ property(cc.Slider) ], Setting.prototype, "sfxSlider", void 0);
    __decorate([ property(cc.ProgressBar) ], Setting.prototype, "sfxFillSprite", void 0);
    __decorate([ property(cc.Slider) ], Setting.prototype, "bgmSlider", void 0);
    __decorate([ property(cc.ProgressBar) ], Setting.prototype, "bgmFillSprite", void 0);
    Setting = __decorate([ ccclass ], Setting);
    exports.default = Setting;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-InGamePanelLS": "MT3SETB-InGamePanelLS"
  } ],
  "MT3SETB-ShadowAccountant": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "f675bdrpdxDgIq6QnGNnAZm", "MT3SETB-ShadowAccountant");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ShadowAccountant = void 0;
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    class a {
      constructor(e, t) {
        this.odds = e;
        this.chance = t;
      }
      GetChance() {
        return this.chance;
      }
      GetOdds() {
        return this.odds;
      }
    }
    class r {
      constructor(e) {
        this.odds = e;
        this.sp = [];
      }
      GetOdds() {
        return this.odds;
      }
      PushSp(e, t) {
        var o = new a(e, t);
        this.sp.push(o);
      }
      RandSp() {
        if (this.sp.length <= 0) return this.odds;
        for (var e = Math.random(), t = 0, o = 0, n = this.sp; o < n.length; o++) {
          var i = n[o];
          if ((t += i.GetChance()) > e) return i.GetOdds();
        }
        return 0;
      }
    }
    class ShadowAccountant {
      static Init() {
        this[MT3SETB_Game_1.eFishNo.None.toString()] = new r(0);
        this[MT3SETB_Game_1.eFishNo.Greenfish.toString()] = new r(2);
        this[MT3SETB_Game_1.eFishNo.Clownfish.toString()] = new r(3);
        this[MT3SETB_Game_1.eFishNo.Godfish.toString()] = new r(4);
        this[MT3SETB_Game_1.eFishNo.Flatfish.toString()] = new r(5);
        this[MT3SETB_Game_1.eFishNo.Blowfish.toString()] = new r(6);
        this[MT3SETB_Game_1.eFishNo.SeaTurtle.toString()] = new r(8);
        this[MT3SETB_Game_1.eFishNo.Jellyfish.toString()] = new r(10);
        this[MT3SETB_Game_1.eFishNo.Lionfish.toString()] = new r(15);
        this[MT3SETB_Game_1.eFishNo.Lobster.toString()] = new r(12);
        this[MT3SETB_Game_1.eFishNo.Octopus.toString()] = new r(20);
        this[MT3SETB_Game_1.eFishNo.Swordfish.toString()] = new r(25);
        this[MT3SETB_Game_1.eFishNo.Manta.toString()] = new r(30);
        this[MT3SETB_Game_1.eFishNo.Taroshark.toString()] = new r(35);
        this[MT3SETB_Game_1.eFishNo.GoldGodfish.toString()] = new r(50);
        this[MT3SETB_Game_1.eFishNo.GoldClownfish.toString()] = new r(55);
        this[MT3SETB_Game_1.eFishNo.GoldManta.toString()] = new r(60);
        this[MT3SETB_Game_1.eFishNo.Armourfish.toString()] = new r(27.1);
        this[MT3SETB_Game_1.eFishNo.Armourfish.toString()].PushSp(20, .6);
        this[MT3SETB_Game_1.eFishNo.Armourfish.toString()].PushSp(30, .36);
        this[MT3SETB_Game_1.eFishNo.Armourfish.toString()].PushSp(100, .034);
        this[MT3SETB_Game_1.eFishNo.Armourfish.toString()].PushSp(150, .006);
        this[MT3SETB_Game_1.eFishNo.Lanternfish.toString()] = new r(38.7);
        this[MT3SETB_Game_1.eFishNo.Lanternfish.toString()].PushSp(30, .6);
        this[MT3SETB_Game_1.eFishNo.Lanternfish.toString()].PushSp(40, .36);
        this[MT3SETB_Game_1.eFishNo.Lanternfish.toString()].PushSp(150, .034);
        this[MT3SETB_Game_1.eFishNo.Lanternfish.toString()].PushSp(200, .006);
        this[MT3SETB_Game_1.eFishNo.GoldTurtle.toString()] = new r(50.3);
        this[MT3SETB_Game_1.eFishNo.GoldTurtle.toString()].PushSp(40, .6);
        this[MT3SETB_Game_1.eFishNo.GoldTurtle.toString()].PushSp(50, .36);
        this[MT3SETB_Game_1.eFishNo.GoldTurtle.toString()].PushSp(200, .034);
        this[MT3SETB_Game_1.eFishNo.GoldTurtle.toString()].PushSp(250, .006);
        this[MT3SETB_Game_1.eFishNo.ElectricShark.toString()] = new r(76);
        this[MT3SETB_Game_1.eFishNo.ElectricShark.toString()].PushSp(70, .7);
        this[MT3SETB_Game_1.eFishNo.ElectricShark.toString()].PushSp(90, .3);
        this[MT3SETB_Game_1.eFishNo.BombsCrab.toString()] = new r(86);
        this[MT3SETB_Game_1.eFishNo.BombsCrab.toString()].PushSp(80, .7);
        this[MT3SETB_Game_1.eFishNo.BombsCrab.toString()].PushSp(100, .3);
        this[MT3SETB_Game_1.eFishNo.Anemone.toString()] = new r(96);
        this[MT3SETB_Game_1.eFishNo.Anemone.toString()].PushSp(90, .7);
        this[MT3SETB_Game_1.eFishNo.Anemone.toString()].PushSp(110, .3);
        this[MT3SETB_Game_1.eFishNo.BossSquid.toString()] = new r(90);
        this[MT3SETB_Game_1.eFishNo.BossSquid.toString()].PushSp(60, .6);
        this[MT3SETB_Game_1.eFishNo.BossSquid.toString()].PushSp(120, .3);
        this[MT3SETB_Game_1.eFishNo.BossSquid.toString()].PushSp(180, .1);
        this[MT3SETB_Game_1.eFishNo.BossShark.toString()] = new r(120);
        this[MT3SETB_Game_1.eFishNo.BossShark.toString()].PushSp(80, .6);
        this[MT3SETB_Game_1.eFishNo.BossShark.toString()].PushSp(160, .3);
        this[MT3SETB_Game_1.eFishNo.BossShark.toString()].PushSp(240, .1);
        this[MT3SETB_Game_1.eFishNo.Cornucopia_1.toString()] = new r(12.86);
        this[MT3SETB_Game_1.eFishNo.Cornucopia_1.toString()].PushSp(3, .95);
        this[MT3SETB_Game_1.eFishNo.Cornucopia_1.toString()].PushSp(168, .047);
        this[MT3SETB_Game_1.eFishNo.Cornucopia_1.toString()].PushSp(666, .0025);
        this[MT3SETB_Game_1.eFishNo.Cornucopia_1.toString()].PushSp(888, 5e-4);
        this[MT3SETB_Game_1.eFishNo.Cornucopia_2.toString()] = new r(12.75);
        this[MT3SETB_Game_1.eFishNo.Cornucopia_2.toString()].PushSp(3, .95);
        this[MT3SETB_Game_1.eFishNo.Cornucopia_2.toString()].PushSp(168, .047);
        this[MT3SETB_Game_1.eFishNo.Cornucopia_2.toString()].PushSp(666, .003);
        this[MT3SETB_Game_1.eFishNo.JPFish.toString()] = new r(0);
        this[MT3SETB_Game_1.eFishNo.JPFish.toString()].PushSp(66, .6);
        this[MT3SETB_Game_1.eFishNo.JPFish.toString()].PushSp(88, .3);
        this[MT3SETB_Game_1.eFishNo.JPFish.toString()].PushSp(168, .1);
        this[MT3SETB_Game_1.eFishNo.JPDragon.toString()] = new r(0);
        this[MT3SETB_Game_1.eFishNo.JPDragon.toString()].PushSp(160, .6);
        this[MT3SETB_Game_1.eFishNo.JPDragon.toString()].PushSp(240, .3);
        this[MT3SETB_Game_1.eFishNo.JPDragon.toString()].PushSp(320, .1);
      }
      static HitBullseye(e) {
        var o = e.toString();
        if (this[o]) {
          var n = Math.random(), i = this[o].GetOdds();
          return 0 == i || n > .95 / i ? 0 : this[o].RandSp();
        }
        return 0;
      }
      static GetFishOdds(e) {
        var o = e.toString();
        return this[o] ? this[o].RandSp() : 0;
      }
      static HitSpecialOne(...args) {
        return 0;
      }
      static HitBonusGame(...args) {
        return false;
      }
      static AnalyzeMedal() {
        return 0;
      }
      static ItemToBonus(e) {
        switch (e) {
         case 1:
          return 1.1;

         case 2:
          return 1.2;

         case 3:
          return 1.3;

         default:
          return 1;
        }
      }
    }
    exports.ShadowAccountant = ShadowAccountant;
    cc._RF.pop();
  }, {
    "../system/MT3SETB-Game": "MT3SETB-Game"
  } ],
  "MT3SETB-ShadowBody": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "65421ImMw1FHahb2czLWw15", "MT3SETB-ShadowBody");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ShadowBody = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_ShootMgr_1 = require("../gameplay/MT3SETB-ShootMgr");
    const MT3SETB_ShadowAccountant_1 = require("./MT3SETB-ShadowAccountant");
    const MT3SETB_ShadowCore_1 = require("./MT3SETB-ShadowCore");
    let s = 120;
    class ShadowBody {
      constructor(e, t, o, a) {
        var c = this;
        this.isReal = false;
        this.seat = -1;
        this.name = "";
        this.coin = 0;
        this.coinLevel = -1;
        this.bet = 0;
        this.betLevel = 1;
        this.sCore = null;
        this.posX = 0;
        this.posY = -400;
        this.bulletId = 0;
        this.bulletType = MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL;
        this.armorBeamCount = 0;
        this.meteorPower = 0;
        this.spArmorBet = 0;
        this.spArmorWin = 0;
        this.spArmorMaxOdds = 0;
        this.bulletCD = null;
        this.bonusStep = 0;
        this.bonus = 1;
        this.targetX = 0;
        this.targetY = 0;
        this.process = function() {
          if (!MT3SETB_Comm_1.Comm.app.isNetBreak && !MT3SETB_Comm_1.Comm.app.isDisconnection) switch (c.sCore.tick()) {
           case MT3SETB_ShadowCore_1.shadow.State.State_Init:
            c.sCore.setState(MT3SETB_ShadowCore_1.shadow.State.State_Join);
            break;

           case MT3SETB_ShadowCore_1.shadow.State.State_Join:
            c.sCore.isEntering() && (c.sendJoin(), c.changeBet(true));
            c.sCore.setState(MT3SETB_ShadowCore_1.shadow.State.State_Play);
            break;

           case MT3SETB_ShadowCore_1.shadow.State.State_Play:
            if (c.sCore.isEntering()) {
              c.stayIdle(MT3SETB_ShadowCore_1.shadow.State.State_Play);
              break;
            }
            var e = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(c.seat);
            c.isPrepared() && 0 == e.isLocked() && (c.isArmor() ? c.doSpecialShoot() : c.bonusStep > 0 || c.doAim());
            break;

           case MT3SETB_ShadowCore_1.shadow.State.State_Leave:
            if (c.sCore.isEntering()) {
              c.stayIdle(MT3SETB_ShadowCore_1.shadow.State.State_Leave);
              break;
            }
            c.isPrepared() && c.doLeave();
            break;

           case MT3SETB_ShadowCore_1.shadow.State.State_Destroy:
            break;

           default:
            cc.log("\u672a\u77e5\u72c0\u614b: ", c.sCore.getCurState());
          }
        };
        this.bulletCoolDown = function() {
          clearTimeout(c.bulletCD);
          c.bulletCD = null;
        };
        this.isReal = o;
        this.name = t;
        if (0 == o) {
          var l = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().nameText.string;
          this.seat = e;
          this.sCore = new MT3SETB_ShadowCore_1.ShadowCore();
          this.name = this.sCore.createName(l);
          this.coin = this.sCore.initCoin(a);
          this.coinLevel = this.sCore.checkCoinLv(this.coin);
          this.reactInterval = s;
          this.pid = setInterval(this.process, this.reactInterval);
        }
      }
      checkName(e) {
        return this.name == e;
      }
      isRealOne() {
        return this.isReal;
      }
      changeBet(e) {
        var t = .999, o = this.sCore.checkCoinLv(this.coin);
        o != this.coinLevel && (t = .4);
        var n = Math.random();
        if (e || !(n < t)) {
          this.coinLevel = o;
          var i = this.sCore.changeBetLv(this.coinLevel), a = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(this.seat);
          this.betLevel = i;
          this.bet = a.getBetAtIndex(this.betLevel);
        }
      }
      isPrepared() {
        return null == this.bulletCD;
      }
      stayIdle(e) {
        var t = 0;
        switch (e) {
         case MT3SETB_ShadowCore_1.shadow.State.State_Play:
          t = MT3SETB_Comm_1.Comm.iRand(5e3, 2e4);
          break;

         case MT3SETB_ShadowCore_1.shadow.State.State_Leave:
          t = MT3SETB_Comm_1.Comm.iRand(3e3, 6e3);
          break;

         default:
          return;
        }
        this.bulletCoolDown();
        this.bulletCD = setTimeout(this.bulletCoolDown, t);
      }
      reloadBullet() {
        var e;
        this.bulletCoolDown();
        e = MT3SETB_Comm_1.Comm.iRand(900, 1800);
        this.bulletCD = setTimeout(this.bulletCoolDown, e);
      }
      useNormalShoot() {
        this.bulletCoolDown();
        var e = 300, t = Math.random();
        if (!(t < .98)) {
          e = t < .999 ? MT3SETB_Comm_1.Comm.iRand(300, 900) : MT3SETB_Comm_1.Comm.iRand(300, 2100);
          this.bulletCD = setTimeout(this.bulletCoolDown, e);
        }
      }
      isArmor() {
        return this.armorBeamCount > 0;
      }
      reloadArmorBeam(e) {
        this.armorBeamCount = 1;
        this.spArmorWin = 0;
        this.spArmorBet = this.bet;
        this.spArmorMaxOdds = e;
        this.bulletCoolDown();
        this.bulletCD = setTimeout(this.bulletCoolDown, 4e3);
      }
      useArmorBeam() {
        var e;
        if (this.isArmor()) {
          this.bulletCoolDown();
          e = MT3SETB_Comm_1.Comm.iRand(8e3, 12e3);
          this.bulletCD = setTimeout(this.bulletCoolDown, e);
        }
        this.armorBeamCount--;
      }
      useThunder() {
        this.bulletCoolDown();
        var e;
        e = Math.random() < .8 ? MT3SETB_Comm_1.Comm.iRand(900, 1800) : MT3SETB_Comm_1.Comm.iRand(900, 4500);
        this.bulletCD = setTimeout(this.bulletCoolDown, e);
      }
      useBomb() {
        this.bulletCoolDown();
        var e;
        e = Math.random() < .8 ? MT3SETB_Comm_1.Comm.iRand(300, 1500) : MT3SETB_Comm_1.Comm.iRand(300, 3600);
        this.bulletCD = setTimeout(this.bulletCoolDown, e);
      }
      useMeteor() {
        this.bulletCoolDown();
        var e;
        e = Math.random() < .8 ? MT3SETB_Comm_1.Comm.iRand(300, 600) : MT3SETB_Comm_1.Comm.iRand(300, 1500);
        this.bulletCD = setTimeout(this.bulletCoolDown, e);
      }
      stayInBonus() {
        var e;
        this.bulletCoolDown();
        e = MT3SETB_Comm_1.Comm.iRand(2e4, 4e4);
        this.bulletCD = setTimeout(this.bulletCoolDown, e);
      }
      onDestroyImmediately() {
        if (false == this.isReal) {
          this.sCore.setState(MT3SETB_ShadowCore_1.shadow.State.State_Destroy);
          this.sCore.destroyAimedFishIds();
          MT3SETB_ShadowCore_1.shadow.NotifyManagerDestroy(this.seat);
          clearInterval(this.pid);
        }
      }
      onPrepareToLeave() {
        false == this.isReal && this.sCore.getCurState() < MT3SETB_ShadowCore_1.shadow.State.State_Leave && this.sCore.setState(MT3SETB_ShadowCore_1.shadow.State.State_Leave);
      }
      doLeave() {
        var e = new MT3SETB_mtf_pb_wrapper_1.mtf.LeaveNotification();
        e.seat = this.seat;
        this.sendLeave(e);
        this.sCore.setState(MT3SETB_ShadowCore_1.shadow.State.State_Destroy);
      }
      doAim() {
        if (this.meteorPower > 50 * this.bet) this.doMeteor(); else if (this.sCore.anyWanted()) {
          var e = this.sCore.scanAimedFishIds(), t = this.sCore.searchFish(cc.v2(this.targetX, this.targetY), false, e), o = t[0];
          if (o > 0) {
            this.targetX = t[1].x;
            this.targetY = t[1].y;
            u = this.sCore.tryMove(this.targetX, this.posX, this.posY);
            this.posX = u.x;
            this.posY = u.y;
            var i = MT3SETB_Comm_1.Comm.fishMgr.getFishById(o), a = i.getFishNo(), s = this.sCore.chooseBullet(a);
            if (t[1].y < this.sCore.getMoveRangeMaxY() && s == MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL) {
              this.sCore.forcedAddAimedFishIds(o);
              this.notifyLockfishOff();
              return;
            }
            (null == this.lockfish || this.lockfish.id != i.id) && i.getOdds() >= MT3SETB_ShootMgr_1.LS_LOCKON_MIN_MUL && this.notifyLockfishOn(i);
            this.sCore.tryAddAimedFishIds(o);
            if (this.bulletType != s) {
              this.reloadBullet();
              return void (this.bulletType = s);
            }
            this.bulletType = s;
            this.changeBet(false);
            if (999 == s) {
              var c = null;
              null != i.getRewardShow() && (c = i.getRewardShow().medal);
              this.doBomb(o, a, c);
            } else this.doShoot(o, s);
          } else this.notifyLockfishOff();
        } else {
          var l = this.sCore.rakeFish();
          this.targetX = l.x;
          this.targetY = l.y;
          this.notifyLockfishOff();
          var u = this.sCore.tryMove(this.targetX, this.posX, this.posY);
          this.posX = u.x;
          this.posY = u.y;
          this.changeBet(false);
          this.doShoot(0, MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL);
        }
      }
      notifyLockfishOn(lockfish) {
        this.lockfish = lockfish;
        let notification = new MT3SETB_mtf_pb_wrapper_1.mtf.LockFishData();
        notification.seat = this.seat;
        notification.fishTag = this.lockfish.id;
        notification.fishId = this.lockfish.no;
        MT3SETB_Comm_1.Comm.gameMgr.sendLockFishUpdate(notification);
      }
      notifyLockfishOff() {
        if (null == this.lockfish) return;
        this.lockfish = null;
        let notification = new MT3SETB_mtf_pb_wrapper_1.mtf.LockFishData();
        notification.seat = this.seat;
        notification.fishTag = 0;
        MT3SETB_Comm_1.Comm.gameMgr.sendLockFishUpdate(notification);
      }
      doShoot(e, t) {
        var o = this.bet;
        t == MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.BOMB && (o *= 6);
        if (this.coin < o) this.sCore.setState(MT3SETB_ShadowCore_1.shadow.State.State_Leave); else {
          this.coin -= o;
          var a = new MT3SETB_mtf_pb_wrapper_1.mtf.ShootReqData();
          a.bet = this.bet;
          a.type = t;
          a.bulletId = this.bulletId++;
          a.fishId = e;
          a.point = new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: this.targetX,
            y: this.targetY
          });
          var r = new MT3SETB_mtf_pb_wrapper_1.mtf.ShootNotifyData();
          r.seat = this.seat;
          r.coin = -a.bet;
          r.data = a;
          this.sendShoot(r);
          switch (t) {
           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL:
            this.useNormalShoot();
            break;

           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.BOMB:
            this.useBomb();

           case MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK:
            this.onHitEntrance(a.bulletId, [ a.fishId ], a.bet, t);
            break;

           default:
            cc.log("Unknown bulletType:", t);
          }
        }
      }
      onHitEntrance(e, t, o, n) {
        if (false == this.isReal && this.sCore.getCurState() == MT3SETB_ShadowCore_1.shadow.State.State_Play) if (0 == t.length) ; else if (t.length > 1) console.log("unvalid bullet type", n); else {
          var a = t[0], s = MT3SETB_Comm_1.Comm.fishMgr.getFishById(a);
          if (!s) return;
          var c = s.getFishNo();
          this.onHit(e, a, c, o, n);
        }
      }
      onHit(e, t, o, r, s) {
        if (this.sCore.getCurState() == MT3SETB_ShadowCore_1.shadow.State.State_Play) {
          var c = r;
          s == MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.BOMB && (c = 6 * r);
          var l = MT3SETB_ShadowAccountant_1.ShadowAccountant.HitBullseye(o);
          if (l > 0) {
            var u = r * l * this.bonus;
            this.coin += u;
            var d = new MT3SETB_mtf_pb_wrapper_1.mtf.HitAckData();
            d.result = MT3SETB_mtf_pb_wrapper_1.mtf.HitResult.HR_SUCCESS;
            d.seat = this.seat;
            d.bet = r;
            d.bulletId = e;
            d.coin = u;
            d.fishId = t;
            d.type = s;
            d.remain = this.coin;
            d.dead = [ new MT3SETB_mtf_pb_wrapper_1.mtf.HitAckData.Fish({
              coin: u,
              id: t
            }) ];
            MT3SETB_ShadowAccountant_1.ShadowAccountant.HitSpecialOne(o) > 0 && this.reloadArmorBeam(l);
            MT3SETB_ShadowAccountant_1.ShadowAccountant.HitBonusGame(o, l) && this.stayInBonus();
            this.sendHit(d);
          }
        }
      }
      onDrillHit() {
        this.sCore.getCurState();
        MT3SETB_ShadowCore_1.shadow.State.State_Play;
      }
      onDrillEnd() {
        this.sCore.getCurState();
        MT3SETB_ShadowCore_1.shadow.State.State_Play;
      }
      doBomb(e, t, ...args) {
        var o = 15 * this.bet;
        if (this.coin < o) this.sCore.setState(MT3SETB_ShadowCore_1.shadow.State.State_Leave); else {
          this.coin -= o;
          this.useThunder();
          var s = 0, c = new MT3SETB_mtf_pb_wrapper_1.mtf.BombAckData();
          c.seat = this.seat;
          c.bet = this.bet;
          c.target = e;
          var l = 0, u = MT3SETB_ShadowAccountant_1.ShadowAccountant.HitBullseye(t);
          if (u > 0) {
            var d = new MT3SETB_mtf_pb_wrapper_1.mtf.BombDeadFish();
            l = this.bet * u * this.bonus;
            d.fish = e;
            d.coin = l;
            c.fish.push(d);
            s += l;
          }
          for (var p = MT3SETB_Comm_1.Comm.fishMgr.getListInOddsSum(99999, cc.v2(60, 40), function() {
            return true;
          }), h = 0; h < 15 && 0 != p.length; ) {
            var f = MT3SETB_Comm_1.Comm.iRand(0, p.length - 1), m = p[f];
            if (e != m) {
              var g = MT3SETB_Comm_1.Comm.fishMgr.getFishById(m), _ = MT3SETB_ShadowAccountant_1.ShadowAccountant.HitBullseye(g.getFishNo());
              _ > 0 && (l = this.bet * _ * this.bonus, (d = new MT3SETB_mtf_pb_wrapper_1.mtf.BombDeadFish()).fish = m, 
              d.coin = l, c.fish.push(d), s += l, p.splice(f, 1)), ++h;
            } else p.splice(f, 1);
          }
          c.coin = s, this.coin += s, c.remain = this.coin, this.sendBomb(c);
        }
      }
      doSpecialShoot() {}
      doMeteor() {
        this.meteorPower = 0;
        this.useMeteor();
        var e = 0, t = new MT3SETB_mtf_pb_wrapper_1.mtf.BombAckData();
        t.seat = this.seat;
        t.bet = this.bet;
        var o = 0, i = MT3SETB_Comm_1.Comm.fishMgr.getListInOddsSum(99999, cc.v2(40, 40), function() {
          return true;
        });
        i.sort(function(e, t) {
          return MT3SETB_Comm_1.Comm.fishMgr.getFishById(e).getOdds() - MT3SETB_Comm_1.Comm.fishMgr.getFishById(t).getOdds();
        });
        for (var s = 0; s < 100 && 0 != i.length; ) {
          var c = MT3SETB_Comm_1.Comm.iRand(0, i.length - 1), l = i[c], u = MT3SETB_Comm_1.Comm.fishMgr.getFishById(l), d = MT3SETB_ShadowAccountant_1.ShadowAccountant.HitBullseye(u.getFishNo());
          if (d > 0) {
            o = this.bet * d * this.bonus;
            var p = new MT3SETB_mtf_pb_wrapper_1.mtf.BombDeadFish();
            p.fish = l, p.coin = o, t.fish.push(p), e += o, i.splice(c, 1);
          }
          ++s;
        }
        t.coin = e, this.coin += e, t.remain = this.coin, this.sendMeteor(t);
      }
      sendJoin() {
        if (!MT3SETB_ShadowCore_1.shadow.GetShutdownSignal()) {
          var e = new MT3SETB_mtf_pb_wrapper_1.mtf.JoinNotification();
          e.user = new MT3SETB_mtf_pb_wrapper_1.mtf.PlayerInfo(), e.user.seat = this.seat, 
          e.user.name = this.name, e.user.coin = this.coin;
          var t = MT3SETB_mtf_pb_wrapper_1.mtf.JoinNotification.encode(e);
          MT3SETB_Comm_1.Comm.gameMgr.onCommand(MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_JOIN_NOTIFY, t);
        }
      }
      sendLeave(e) {
        if (!MT3SETB_ShadowCore_1.shadow.GetShutdownSignal()) {
          var t = MT3SETB_mtf_pb_wrapper_1.mtf.LeaveNotification.encode(e);
          MT3SETB_Comm_1.Comm.gameMgr.onCommand(MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_LEAVE_NOTIFY, t);
        }
      }
      sendShoot(e) {
        if (!MT3SETB_ShadowCore_1.shadow.GetShutdownSignal()) {
          var t = MT3SETB_mtf_pb_wrapper_1.mtf.ShootNotifyData.encode(e);
          MT3SETB_Comm_1.Comm.gameMgr.onCommand(MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_SHOOT_NOTIFY, t);
        }
      }
      sendHit(e) {
        if (!MT3SETB_ShadowCore_1.shadow.GetShutdownSignal()) {
          var t = MT3SETB_mtf_pb_wrapper_1.mtf.HitAckData.encode(e);
          MT3SETB_Comm_1.Comm.gameMgr.onCommand(MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_HIT_ACK, t);
        }
      }
      sendBomb(e) {
        if (!MT3SETB_ShadowCore_1.shadow.GetShutdownSignal()) {
          var t = MT3SETB_mtf_pb_wrapper_1.mtf.BombAckData.encode(e);
          MT3SETB_Comm_1.Comm.gameMgr.onCommand(MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_BOMB_ACK, t);
        }
      }
      sendMeteor(e) {
        if (!MT3SETB_ShadowCore_1.shadow.GetShutdownSignal()) {
          var t = MT3SETB_mtf_pb_wrapper_1.mtf.BombAckData.encode(e);
          MT3SETB_Comm_1.Comm.gameMgr.onCommand(MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_BOMB_ACK, t);
        }
      }
    }
    exports.ShadowBody = ShadowBody;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../gameplay/MT3SETB-ShootMgr": "MT3SETB-ShootMgr",
    "./MT3SETB-ShadowAccountant": "MT3SETB-ShadowAccountant",
    "./MT3SETB-ShadowCore": "MT3SETB-ShadowCore"
  } ],
  "MT3SETB-ShadowCaster": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "2dd532/DEFJQ727psksFIwV", "MT3SETB-ShadowCaster");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ShadowCaster = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_SpriteShadow_1 = require("./MT3SETB-SpriteShadow");
    const {ccclass: ccclass, property: property, executeInEditMode: executeInEditMode, requireComponent: requireComponent} = cc._decorator;
    let ShadowCaster = class ShadowCaster extends cc.Component {
      constructor() {
        super(...arguments);
        this._sprite = null;
        this._spriteShadow = null;
        this._skel = null;
        this._skelShadow = null;
        this._shadowCtrl = null;
        this._color = cc.Color.BLACK;
        this._offsetX = 1;
        this._offsetY = 1;
        this._spineMaterial = null;
      }
      get color() {
        return this._color;
      }
      set color(value) {
        this._color.equals(value) || this._color.set(value);
      }
      get offsetX() {
        return this._offsetX;
      }
      set offsetX(value) {
        if (this._offsetX === value) return;
        this._offsetX = value;
      }
      get offsetY() {
        return this._offsetY;
      }
      set offsetY(value) {
        if (this._offsetY === value) return;
        this._offsetY = value;
      }
      get spineMaterial() {
        false;
        return this._spineMaterial;
      }
      set spineMaterial(mat) {
        this._spineMaterial = mat;
      }
      onLoad() {
        false;
        this._sprite = this.getComponent(cc.Sprite);
        this._sprite && this.handleSpriteShadow();
        this._skel = this.getComponent(sp.Skeleton);
        this._skel && this.handleSkelShadow();
        this._shadowCtrl = MT3SETB_Comm_1.Comm.shadowCtrl;
        this._shadowCtrl && this._shadowCtrl.node.on(MT3SETB_SpriteShadow_1.SpriteShadow.SHADOW_TOGGLE_EVENT, this.onToggleShadow, this);
      }
      onEnable() {
        false;
        this._shadowCtrl && this.enableShadow(this._shadowCtrl.isEnableShadow);
      }
      onDestroy() {
        false;
        this._shadowCtrl && this._shadowCtrl.node && this._shadowCtrl.node.off(MT3SETB_SpriteShadow_1.SpriteShadow.SHADOW_TOGGLE_EVENT, this.onToggleShadow, this);
        if (this._spriteShadow && this._spriteShadow.node) {
          this._spriteShadow.node.destroy();
          this._spriteShadow = null;
        }
        if (this._skelShadow && this._skelShadow.node) {
          this._skelShadow.node.destroy();
          this._skelShadow = null;
        }
      }
      onToggleShadow(b) {
        this.enableShadow(b);
      }
      enableShadow(b) {
        this._spriteShadow && (this._spriteShadow.node.active = b);
        this._skelShadow && (this._skelShadow.node.active = b);
      }
      lateUpdate(dt) {
        false;
        this._sprite && this.updateSpriteShadow();
        this._skel && this.updateSkelShadow();
      }
      handleSpriteShadow() {
        const newNode = new cc.Node("spriteShadow");
        this._spriteShadow = newNode.addComponent(cc.Sprite);
        newNode.parent = this.node.parent;
        newNode.setSiblingIndex(this._sprite.node.getSiblingIndex());
        newNode.setPosition(this.offsetX + this.node.x, this.offsetY + this.node.y);
        newNode.scale = this.node.scale;
        newNode.angle = this.node.angle;
        newNode.color = cc.color(this._color.r, this._color.g, this._color.b);
        newNode.opacity = this._color.a;
        this._spriteShadow.sizeMode = this._sprite.sizeMode;
        this._spriteShadow.trim = this._sprite.trim;
        this._spriteShadow.setMaterial(0, this._sprite.getMaterial(0));
        this.updateSpriteShadow();
      }
      updateSpriteShadow() {
        this._spriteShadow.spriteFrame = this._sprite.spriteFrame;
      }
      handleSkelShadow() {
        const newNode = new cc.Node("spineShadow");
        this._skelShadow = newNode.addComponent(sp.Skeleton);
        newNode.parent = this.node.parent;
        newNode.setSiblingIndex(this._skel.node.getSiblingIndex());
        newNode.setPosition(this.offsetX + this.node.x, this.offsetY + this.node.y);
        newNode.scale = this.node.scale;
        newNode.angle = this.node.angle;
        newNode.color = cc.color(this._color.r, this._color.g, this._color.b);
        newNode.opacity = this._color.a;
        this._skelShadow.skeletonData = this._skel.skeletonData;
        this._spineMaterial ? this._skelShadow.setMaterial(0, this._spineMaterial) : this._skelShadow.setMaterial(0, this._skel.getMaterial(0));
        this.updateSkelShadow();
      }
      updateSkelShadow() {
        this._skelShadow.node.angle = this._skel.node.angle;
        let track = this._skel.getCurrent(0);
        let shadowTrack = this._skelShadow.getCurrent(0);
        shadowTrack && shadowTrack.animation.name == track.animation.name || (shadowTrack = this._skelShadow.setAnimation(0, track.animation.name, track.loop));
        shadowTrack.trackTime = track.trackTime;
        shadowTrack.timeScale = track.timeScale;
        this._skelShadow.timeScale = this._skel.timeScale;
      }
    };
    __decorate([ property ], ShadowCaster.prototype, "_color", void 0);
    __decorate([ property({
      tooltip: false
    }) ], ShadowCaster.prototype, "color", null);
    __decorate([ property ], ShadowCaster.prototype, "_offsetX", void 0);
    __decorate([ property({
      tooltip: false
    }) ], ShadowCaster.prototype, "offsetX", null);
    __decorate([ property ], ShadowCaster.prototype, "_offsetY", void 0);
    __decorate([ property({
      tooltip: false
    }) ], ShadowCaster.prototype, "offsetY", null);
    __decorate([ property(cc.Material) ], ShadowCaster.prototype, "_spineMaterial", void 0);
    __decorate([ property(cc.Material) ], ShadowCaster.prototype, "spineMaterial", null);
    ShadowCaster = __decorate([ ccclass, executeInEditMode ], ShadowCaster);
    exports.ShadowCaster = ShadowCaster;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-SpriteShadow": "MT3SETB-SpriteShadow"
  } ],
  "MT3SETB-ShadowCore": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "0d070ci/RtJipa+81DdbJ2U", "MT3SETB-ShadowCore");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ShadowCore = exports.shadow = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_profile_1 = require("../common/api/MT3SETB-profile");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    class TargetData {
      constructor(e, t) {
        this.fishLv = e;
        this.shootMode = t;
      }
    }
    class shadow {
      static SetDestroyCb(cb) {
        this.destroyNotifyCb = cb;
      }
      static NotifyManagerDestroy(t) {
        this.destroyNotifyCb(t);
      }
      static InitShutdownSignal() {
        this.shutdownSignal = false;
      }
      static NotifyShutdown() {
        this.shutdownSignal = true;
      }
      static GetShutdownSignal() {
        return this.shutdownSignal;
      }
    }
    exports.shadow = shadow;
    shadow.State = {
      State_Void: -1,
      State_Init: 0,
      State_Join: 1,
      State_Play: 2,
      State_Leave: 3,
      State_Destroy: 4
    };
    shadow.FishLv = {
      SSR: 0,
      SR: 1,
      RPlus: 2,
      R: 3,
      N: 4
    };
    shadow.ShootMode = {
      None: 0,
      Normal: 1,
      LockOn: 2,
      Bomb: 3,
      Thunder: 4
    };
    shadow.Strategy = {
      Strategy_Shoot_Desc_Move0: 0,
      Strategy_Shoot_Desc_Move0_2: 1,
      Strategy_Shoot_Asc_Move0: 2,
      Strategy_Lockon_Desc_Move0: 3,
      Strategy_Lockon_UpSR_Move0: 4,
      Strategy_Lockon_OnlyUpSR_Move0: 5,
      Strategy_Lockon_OnlyRtoSR_Move0: 6,
      Strategy_Max: 9
    };
    shadow.Strategy_Shoot_NoAimed = [ new TargetData(shadow.FishLv.SSR, shadow.ShootMode.None), new TargetData(shadow.FishLv.SR, shadow.ShootMode.None), new TargetData(shadow.FishLv.RPlus, shadow.ShootMode.None), new TargetData(shadow.FishLv.R, shadow.ShootMode.None), new TargetData(shadow.FishLv.N, shadow.ShootMode.None) ];
    shadow.Strategy_Shoot_Desc = [ new TargetData(shadow.FishLv.SSR, shadow.ShootMode.Normal), new TargetData(shadow.FishLv.SR, shadow.ShootMode.Normal), new TargetData(shadow.FishLv.RPlus, shadow.ShootMode.Normal), new TargetData(shadow.FishLv.R, shadow.ShootMode.Normal), new TargetData(shadow.FishLv.N, shadow.ShootMode.Normal) ];
    shadow.Strategy_Shoot_Asc = [ new TargetData(shadow.FishLv.N, shadow.ShootMode.Normal), new TargetData(shadow.FishLv.R, shadow.ShootMode.Normal), new TargetData(shadow.FishLv.RPlus, shadow.ShootMode.Normal), new TargetData(shadow.FishLv.SR, shadow.ShootMode.Normal), new TargetData(shadow.FishLv.SSR, shadow.ShootMode.Normal) ];
    shadow.Strategy_Lockon_Desc = [ new TargetData(shadow.FishLv.SSR, shadow.ShootMode.LockOn), new TargetData(shadow.FishLv.SR, shadow.ShootMode.LockOn), new TargetData(shadow.FishLv.RPlus, shadow.ShootMode.LockOn), new TargetData(shadow.FishLv.R, shadow.ShootMode.LockOn), new TargetData(shadow.FishLv.N, shadow.ShootMode.LockOn) ];
    shadow.Strategy_Lockon_UpSR = [ new TargetData(shadow.FishLv.SSR, shadow.ShootMode.LockOn), new TargetData(shadow.FishLv.RPlus, shadow.ShootMode.LockOn), new TargetData(shadow.FishLv.SR, shadow.ShootMode.LockOn), new TargetData(shadow.FishLv.R, shadow.ShootMode.Normal), new TargetData(shadow.FishLv.N, shadow.ShootMode.Normal) ];
    shadow.Strategy_Lockon_OnlyUpSR = [ new TargetData(shadow.FishLv.SSR, shadow.ShootMode.LockOn), new TargetData(shadow.FishLv.SR, shadow.ShootMode.LockOn), new TargetData(shadow.FishLv.RPlus, shadow.ShootMode.None), new TargetData(shadow.FishLv.R, shadow.ShootMode.None), new TargetData(shadow.FishLv.N, shadow.ShootMode.None) ];
    shadow.Strategy_Lockon_OnlyRtoSR = [ new TargetData(shadow.FishLv.SR, shadow.ShootMode.LockOn), new TargetData(shadow.FishLv.R, shadow.ShootMode.LockOn), new TargetData(shadow.FishLv.RPlus, shadow.ShootMode.LockOn), new TargetData(shadow.FishLv.SSR, shadow.ShootMode.None), new TargetData(shadow.FishLv.N, shadow.ShootMode.None) ];
    shadow.Strategy_Bomb_UpSR = [ new TargetData(shadow.FishLv.SSR, shadow.ShootMode.Bomb), new TargetData(shadow.FishLv.SR, shadow.ShootMode.Bomb), new TargetData(shadow.FishLv.RPlus, shadow.ShootMode.Bomb), new TargetData(shadow.FishLv.R, shadow.ShootMode.Normal), new TargetData(shadow.FishLv.N, shadow.ShootMode.Normal) ];
    shadow.Strategy_Bomb_OnlyUpSR = [ new TargetData(shadow.FishLv.SSR, shadow.ShootMode.Bomb), new TargetData(shadow.FishLv.SR, shadow.ShootMode.Bomb), new TargetData(shadow.FishLv.RPlus, shadow.ShootMode.None), new TargetData(shadow.FishLv.R, shadow.ShootMode.None), new TargetData(shadow.FishLv.N, shadow.ShootMode.None) ];
    var c = 1e3, l = 100, u = 30, d = 90;
    class p {
      constructor(e) {
        this.id = e;
        this.count = MT3SETB_Comm_1.Comm.iRand(u, d);
      }
      getIdFish() {
        return this.id;
      }
      countDownToZero() {
        this.count--;
        return this.count <= 0;
      }
    }
    class ShadowCore {
      constructor() {
        this.curState = shadow.State.State_Init;
        this.nextState = shadow.State.State_Void;
        this.entering = false;
        this.moveRate = 0;
        switch (MT3SETB_Comm_1.Comm.iRand(0, shadow.Strategy.Strategy_Max - 1)) {
         case shadow.Strategy.Strategy_Shoot_Desc_Move0:
         case shadow.Strategy.Strategy_Shoot_Desc_Move0_2:
          this.strategy = shadow.Strategy_Shoot_Desc;
          break;

         case shadow.Strategy.Strategy_Shoot_Asc_Move0:
          this.strategy = shadow.Strategy_Shoot_Asc;
          break;

         case shadow.Strategy.Strategy_Lockon_Desc_Move0:
          this.strategy = shadow.Strategy_Lockon_Desc;
          break;

         case shadow.Strategy.Strategy_Lockon_UpSR_Move0:
          this.strategy = shadow.Strategy_Lockon_UpSR;
          break;

         case shadow.Strategy.Strategy_Lockon_OnlyUpSR_Move0:
          this.strategy = shadow.Strategy_Lockon_OnlyUpSR;
          break;

         case shadow.Strategy.Strategy_Lockon_OnlyRtoSR_Move0:
          this.strategy = shadow.Strategy_Lockon_OnlyRtoSR;
          break;

         default:
          this.strategy = shadow.Strategy_Shoot_Desc;
        }
        this.specificWantedList = [];
        this.bulletChoiceList = [ shadow.ShootMode.Normal, shadow.ShootMode.Normal, shadow.ShootMode.Normal, shadow.ShootMode.Normal, shadow.ShootMode.Normal ];
        for (var e = 0, t = this.strategy; e < t.length; e++) {
          var o = t[e];
          this.arrangeTarget(o.fishLv, o.shootMode);
        }
        this.myAimedFishIds = [];
      }
      createName(e) {
        var t = e.length, o = e.replace(/./gi, "*");
        return (o = o.substring(0, t - 3)) + MT3SETB_Comm_1.Comm.iRand(100, 999);
      }
      initCoin(e) {
        switch (e) {
         case 1:
         case 4:
          c = 1e3;
          l = 100;
          break;

         default:
          c = 5e3;
          l = 1e3;
        }
        c *= MT3SETB_profile_1.GetRatio();
        l *= MT3SETB_profile_1.GetRatio();
        return MT3SETB_Comm_1.Comm.iRand(l, c);
      }
      checkCoinLv(e) {
        return e <= c / 2 ? 0 : e < c ? 1 : e < 5 * c ? 2 : 3;
      }
      changeBetLv(e) {
        switch (e) {
         case 0:
          return MT3SETB_Comm_1.Comm.iRand(0, 1);

         case 1:
          return MT3SETB_Comm_1.Comm.iRand(2, 5);

         case 2:
          return MT3SETB_Comm_1.Comm.iRand(6, 9);

         case 3:
          return MT3SETB_Comm_1.Comm.iRand(10, 13);

         default:
          return 0;
        }
      }
      arrangeTarget(e, t) {
        switch (e) {
         case shadow.FishLv.SSR:
          if (t > shadow.ShootMode.None) {
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.JPDragon);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Cornucopia_1);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Cornucopia_2);
          }
          break;

         case shadow.FishLv.SR:
          if (t > shadow.ShootMode.None) {
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.BossShark);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.BossSquid);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.JPFish);
          }
          break;

         case shadow.FishLv.RPlus:
          if (t > shadow.ShootMode.None) {
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Anemone);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.BombsCrab);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.ElectricShark);
          }
          break;

         case shadow.FishLv.R:
          if (t > shadow.ShootMode.None) {
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.GoldManta);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.GoldTurtle);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Lanternfish);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Armourfish);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.GoldClownfish);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.GoldGodfish);
          }
          break;

         case shadow.FishLv.N:
          if (t > shadow.ShootMode.None) {
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Taroshark);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Manta);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Swordfish);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Lanternfish);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Octopus);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Lionfish);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Lobster);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Jellyfish);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.SeaTurtle);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Blowfish);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Flatfish);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Godfish);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Clownfish);
            this.specificWantedList.push(MT3SETB_Game_1.eFishNo.Greenfish);
          }
          break;

         default:
          return void cc.log("Unknown fishLv:", e);
        }
        this.bulletChoiceList[e] = t;
      }
      analyzeFishLv(e) {
        switch (e) {
         case MT3SETB_Game_1.eFishNo.JPDragon:
         case MT3SETB_Game_1.eFishNo.Cornucopia_1:
         case MT3SETB_Game_1.eFishNo.Cornucopia_2:
          return shadow.FishLv.SSR;

         case MT3SETB_Game_1.eFishNo.BossShark:
         case MT3SETB_Game_1.eFishNo.BossSquid:
         case MT3SETB_Game_1.eFishNo.JPFish:
          return shadow.FishLv.SR;

         case MT3SETB_Game_1.eFishNo.Anemone:
         case MT3SETB_Game_1.eFishNo.BombsCrab:
         case MT3SETB_Game_1.eFishNo.ElectricShark:
          return shadow.FishLv.RPlus;

         case MT3SETB_Game_1.eFishNo.GoldManta:
         case MT3SETB_Game_1.eFishNo.GoldTurtle:
         case MT3SETB_Game_1.eFishNo.Lanternfish:
         case MT3SETB_Game_1.eFishNo.Armourfish:
         case MT3SETB_Game_1.eFishNo.GoldClownfish:
         case MT3SETB_Game_1.eFishNo.GoldGodfish:
          return shadow.FishLv.R;

         case MT3SETB_Game_1.eFishNo.Taroshark:
         case MT3SETB_Game_1.eFishNo.Manta:
         case MT3SETB_Game_1.eFishNo.Swordfish:
         case MT3SETB_Game_1.eFishNo.Lanternfish:
         case MT3SETB_Game_1.eFishNo.Octopus:
         case MT3SETB_Game_1.eFishNo.Lobster:
         case MT3SETB_Game_1.eFishNo.Lionfish:
         case MT3SETB_Game_1.eFishNo.Jellyfish:
         case MT3SETB_Game_1.eFishNo.SeaTurtle:
         case MT3SETB_Game_1.eFishNo.Blowfish:
         case MT3SETB_Game_1.eFishNo.Flatfish:
         case MT3SETB_Game_1.eFishNo.Godfish:
         case MT3SETB_Game_1.eFishNo.Clownfish:
         case MT3SETB_Game_1.eFishNo.Greenfish:
          return shadow.FishLv.N;

         default:
          cc.log("Unknoen fishNo:", e);
          return shadow.FishLv.N;
        }
      }
      tick() {
        if (this.nextState != shadow.State.State_Void) {
          this.curState = this.nextState;
          this.nextState = shadow.State.State_Void;
          this.entering = true;
        } else this.entering = false;
        return this.curState;
      }
      setState(e) {
        this.nextState = e;
      }
      getCurState() {
        return this.curState;
      }
      isEntering() {
        return this.entering;
      }
      tryMove(e, t, o) {
        if (Math.random() < this.moveRate) {
          var n = e + MT3SETB_Comm_1.Comm.iRand(-30, 30), i = o + MT3SETB_Comm_1.Comm.iRand(-10, 10);
          return i = (i = i < -420 ? -420 : i) > -220 ? -220 : i, cc.v2(n, i);
        }
        return cc.v2(t, o);
      }
      getMoveRangeMaxY() {
        return -220;
      }
      chooseBullet(e) {
        var t = this.analyzeFishLv(e), o = this.bulletChoiceList[t];
        switch (o) {
         case shadow.ShootMode.None:
         case shadow.ShootMode.Normal:
          return MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL;

         case shadow.ShootMode.LockOn:
          return MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.LOCK;

         case shadow.ShootMode.Bomb:
          return MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.BOMB;

         case shadow.ShootMode.Thunder:
          return 999;

         default:
          cc.log("Unknown shootMode:", o);
          return MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.NORMAL;
        }
      }
      anyWanted() {
        return this.specificWantedList.length > 0;
      }
      searchFish(e, t, o) {
        return MT3SETB_Comm_1.Comm.shootMgr.searchLockFish_specificList(e, t, this.specificWantedList, o);
      }
      rakeFish() {
        var e = MT3SETB_Comm_1.Comm.iRand(-350, 350), t = MT3SETB_Comm_1.Comm.iRand(-280, 280);
        return cc.v2(e, t);
      }
      scanAimedFishIds() {
        for (var e = [], t = this.myAimedFishIds.length, o = 0; o < t; o++) if (this.myAimedFishIds[o]) {
          e.push(this.myAimedFishIds[o].getIdFish());
          if (this.myAimedFishIds[o].countDownToZero()) {
            this.myAimedFishIds.splice(o, 1);
            o--;
          }
        }
        return e;
      }
      destroyAimedFishIds() {
        delete this.myAimedFishIds;
      }
      tryAddAimedFishIds(e) {
        if (!(this.myAimedFishIds.length >= 5) && Math.random() < .006) {
          var t = new p(e);
          this.myAimedFishIds.push(t);
        }
      }
      forcedAddAimedFishIds(e) {
        var t = new p(e);
        this.myAimedFishIds.push(t);
      }
    }
    exports.ShadowCore = ShadowCore;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../common/api/MT3SETB-profile": "MT3SETB-profile",
    "../system/MT3SETB-Game": "MT3SETB-Game"
  } ],
  "MT3SETB-ShadowMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "3ead1Io2BdGC4XB0RdiqEL6", "MT3SETB-ShadowMgr");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ShadowMgr = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_ShadowAccountant_1 = require("./MT3SETB-ShadowAccountant");
    const MT3SETB_ShadowBody_1 = require("./MT3SETB-ShadowBody");
    const MT3SETB_ShadowCore_1 = require("./MT3SETB-ShadowCore");
    let s = 3, c = .08, l = .01, u = {};
    class ShadowMgr {
      constructor() {
        var e = this;
        this.listShadow = [ null, null, null, null ];
        this.realPlayerNum = 0;
        this.joinedNum = 0;
        this.joinedThemeId = 0;
        this.napTime = 0;
        this.process = function() {
          if (!(MT3SETB_Comm_1.Comm.app.isNetBreak || MT3SETB_Comm_1.Comm.app.isDisconnection || (e.napTime--, 
          e.napTime > 0))) for (var t = e.realPlayerNum >= 2, o = false, i = 0; i < s; i++) {
            var a = Math.random();
            if (null == e.listShadow[i]) {
              if (false == t && false == o) {
                o = true;
                if (2 == e.joinedNum) {
                  if (a < c / 10) {
                    e.listShadow[i] = new MT3SETB_ShadowBody_1.ShadowBody(i, "", false, e.joinedThemeId);
                    e.joinedNum++;
                    3 == e.joinedNum && (e.napTime = MT3SETB_Comm_1.Comm.iRand(4, 9));
                  }
                } else if (a < c) {
                  e.listShadow[i] = new MT3SETB_ShadowBody_1.ShadowBody(i, "", false, e.joinedThemeId);
                  e.joinedNum++;
                }
              }
            } else 0 == e.listShadow[i].isRealOne() && (true == t ? a < 60 * l && e.listShadow[i].onPrepareToLeave() : 3 == e.joinedNum ? a < 5 * l && e.listShadow[i].onPrepareToLeave() : a < l && e.listShadow[i].onPrepareToLeave());
          }
        };
        this.onDestroyCb = function(t) {
          e.listShadow[t] = null;
          e.joinedNum--;
        };
      }
      Init() {
        MT3SETB_ShadowAccountant_1.ShadowAccountant.Init();
        MT3SETB_ShadowCore_1.shadow.SetDestroyCb(this.onDestroyCb);
      }
      Start(e) {
        null != this.processId || this.checkBlackList() || (this.joinedNum = 0, this.realPlayerNum = 0, 
        this.joinedThemeId = e, this.napTime = 0, MT3SETB_ShadowCore_1.shadow.InitShutdownSignal());
      }
      End() {
        if (null != this.processId) {
          this.turnoff();
          MT3SETB_ShadowCore_1.shadow.NotifyShutdown();
          this.napTime = 0;
          for (var e = 0; e < s; e++) null != this.listShadow[e] && (0 == this.listShadow[e].isRealOne() ? this.listShadow[e].onDestroyImmediately() : this.listShadow[e] = null);
        }
      }
      ForceEnd() {
        if (null != this.processId) {
          this.turnoff();
          for (var e = 0; e < s; e++) null != this.listShadow[e] && (0 == this.listShadow[e].isRealOne() ? this.listShadow[e].onPrepareToLeave() : this.listShadow[e] = null);
        }
      }
      Switch() {
        if (null == this.processId) {
          console.log("\u966a\u6253\u6e96\u5099\u9032\u4f86");
          this.Start(2);
        } else {
          console.log("\u966a\u6253\u6e96\u5099\u96e2\u958b");
          this.ForceEnd();
        }
      }
      NotifyTableInfo(e, t, o) {
        if (null != this.processId) if (null != this.listShadow[e]) {
          if (0 == this.listShadow[e].checkName(t)) {
            if (0 == o && 0 == this.listShadow[e].isRealOne()) {
              this.listShadow[e].onDestroyImmediately();
              this.listShadow[e] = new MT3SETB_ShadowBody_1.ShadowBody(e, t, true, this.joinedThemeId);
              this.realPlayerNum++;
              this.joinedNum++;
            }
          } else if (1 == o) if (0 == this.listShadow[e].isRealOne()) this.listShadow[e].onDestroyImmediately(); else {
            this.listShadow[e] = null;
            this.realPlayerNum--;
            this.joinedNum--;
          }
        } else if (0 == o) {
          this.listShadow[e] = new MT3SETB_ShadowBody_1.ShadowBody(e, t, true, this.joinedThemeId);
          this.realPlayerNum++;
          this.joinedNum++;
        }
      }
      HitSync(e, t, o, n, i) {
        null != this.listShadow[i] && this.listShadow[i].onHitEntrance(e, t, o, n);
      }
      turnoff() {
        clearInterval(this.processId);
        this.processId = null;
      }
      checkBlackList() {
        var e = MT3SETB_Comm_1.Comm.app.getQuery("apiId");
        return u[e];
      }
    }
    exports.ShadowMgr = ShadowMgr;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-ShadowAccountant": "MT3SETB-ShadowAccountant",
    "./MT3SETB-ShadowBody": "MT3SETB-ShadowBody",
    "./MT3SETB-ShadowCore": "MT3SETB-ShadowCore"
  } ],
  "MT3SETB-Shadow": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "07de0//WpNFO6iZqIc3bctQ", "MT3SETB-Shadow");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Shadow = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let Shadow = class Shadow extends cc.Component {
      constructor() {
        super(...arguments);
        this.targets = [];
        this.shadow = null;
        this.myCam = null;
        this.myRT = null;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.node.shadowLayer = this.node;
        MT3SETB_Comm_1.Comm.shadowCtrl = this;
      }
      start() {
        if (!this.myRT) {
          this.myRT = new cc.RenderTexture();
          this.myRT.setFilters(cc.Texture2D.Filter.LINEAR, cc.Texture2D.Filter.LINEAR);
          this.myRT.initWithSize(this.shadow.node.width, this.shadow.node.height);
        }
        this.shadow.spriteFrame = new cc.SpriteFrame(this.myRT);
        this.shadow.node.color = cc.Color.BLACK;
        this.shadow.node.opacity = 150;
        this.myCam = cc.find("Canvas/Shadow Camera").getComponent(cc.Camera);
        this.enableShadow();
      }
      onDestroy() {
        this.disableShadow();
      }
      enableShadow() {
        this.myCam.node.active = true;
        this.myCam.targetTexture = this.myRT;
        this.myCam.node.active = false;
        cc.director.on(cc.Director.EVENT_BEFORE_DRAW, this.drawShadow, this);
      }
      disableShadow() {
        this.shadow.node.active = false;
        if (this.myCam) {
          this.myCam.targetTexture = null;
          this.myCam.node.active = false;
        }
        cc.director.off(cc.Director.EVENT_BEFORE_DRAW, this.drawShadow, this);
      }
      drawShadow() {
        this.myCam.clearFlags = cc.Camera.ClearFlags.COLOR;
        for (let i = 0; i < this.targets.length; i++) {
          let item = this.targets[i];
          this.myCam.render(item);
          this.myCam.clearFlags = 0;
        }
        this.shadow.node.active || (this.shadow.node.active = true);
      }
    };
    __decorate([ property([ cc.Node ]) ], Shadow.prototype, "targets", void 0);
    __decorate([ property(cc.Sprite) ], Shadow.prototype, "shadow", void 0);
    Shadow = __decorate([ ccclass ], Shadow);
    exports.Shadow = Shadow;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-ShootMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "3db40P5etBE449e3hcE7Ri/", "MT3SETB-ShootMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ShootMgr = exports.LS_LOCKON_MIN_MUL = exports.cooldown = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const MT3SETB_WaterGameMgr_1 = require("./MT3SETB-WaterGameMgr");
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const MT3SETB_Bullet_1 = require("./MT3SETB-Bullet");
    const {ccclass: ccclass, property: property} = cc._decorator;
    exports.cooldown = {
      torpedo: .4,
      normal: .2,
      aim: .2,
      speedMul: 1.25
    };
    exports.LS_LOCKON_MIN_MUL = 10;
    let ShootMgr = class ShootMgr extends cc.Component {
      constructor() {
        super();
        this.aimNodes = [];
        this.isAuto = false;
        this.isAiming = false;
        this.isTorpedo = false;
        this.isAutoMatic = false;
        this.isRetain = false;
        this.torpedoHitCount = 6;
        this.shootPosFL = cc.Vec2.ZERO;
        this.lastShootPosFL = cc.Vec2.ZERO;
        this.originShootPos = null;
        this.shootCircle = exports.cooldown.normal;
        this.isPressed = false;
        this.halfSize = null;
        this.priorityLockFishNode = null;
        this.lockFishNode = null;
        this.lockFishNo = 0;
        this.lockFishUniqueId = 0;
        this.lockFishUniqueIdPrev = -1;
        this.bulletId = 0;
        this.lockNode = null;
        this.otherLockNode = [];
        this.touchNode = null;
        this.aimUINode = null;
        this.autoMaticFishIDList = [];
        this.lockposDict = {};
      }
      onLoad() {
        var e = cc.view.getDesignResolutionSize();
        this.halfSize = cc.v2(e.width / 2, e.height / 2);
        MT3SETB_Comm_1.Comm.shootMgr = this;
      }
      start() {
        var e = this;
        this.aimUINode = cc.find("Canvas/Stage/Display/AimUI");
        this.touchNode = cc.instantiate(this.aimNodes[0]);
        this.touchNode.parent = this.aimUINode;
        this.touchNode.active = false;
        this.lockNode = cc.instantiate(this.aimNodes[1]);
        this.lockNode.parent = this.aimUINode;
        this.lockNode.active = false;
        this.lockNode.setSiblingIndex(this.lockNode.parent.childrenCount - 1);
      }
      update(e) {
        var _a;
        this.shootCircle -= e;
        if (this.lockFishNode && this.lockFishNode.isValid) {
          let lockedFish = this.getLockFish();
          if (this.lockFishNode.parent && lockedFish.isUsed() && MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(lockedFish)) MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().isMovingCrosshair || this.lockNode.setPosition(MT3SETB_Comm_1.Comm.transPos(this.aimUINode, MT3SETB_Comm_1.Comm.node.fishLayer, this.getLockPosition(false))); else {
            let playerTurret = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
            if ((null === playerTurret || void 0 === playerTurret ? void 0 : playerTurret.isLockedOn) && ((null === playerTurret || void 0 === playerTurret ? void 0 : playerTurret.isAutoOn) || (null === playerTurret || void 0 === playerTurret ? void 0 : playerTurret.isSpeedOn))) {
              this.lockFishNode = null;
              this.searchLockFish_automatic();
              this.lockFishUniqueIdPrev <= 0 || this.lockFishUniqueIdPrev == this.lockFishUniqueId ? this.clearLockOn() : this.redirectBulletsToNewTarget(this.lockFishUniqueId);
            } else this.clearLockOn();
          }
        } else this.clearLockOn();
        if (this.shootCircle <= 0) if (this.autoMaticFishIDList.length > 0) {
          this.searchLockFish_automatic();
          if (this.checkDrillShoot(1) && this.lockFishNode && this.lockFishNode.isValid) {
            this.shootPosFL = this.getLockPosition(false);
            this.readyToShoot();
          }
        } else {
          let playerTurret = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
          (null === playerTurret || void 0 === playerTurret ? void 0 : playerTurret.isLockedOn) && ((null === playerTurret || void 0 === playerTurret ? void 0 : playerTurret.isAutoOn) || (null === playerTurret || void 0 === playerTurret ? void 0 : playerTurret.isSpeedOn)) && this.searchLockFish_automatic();
          if (this.isAiming) {
            if (this.checkDrillShoot(1) && this.lockFishNode && this.lockFishNode.isValid) {
              this.shootPosFL = this.getLockPosition(false);
              this.readyToShoot();
            }
          } else if (this.isAuto) {
            if (this.checkDrillShoot(2)) {
              this.shootPosFL = this.lastShootPosFL;
              this.touchNode.active = true;
              this.touchNode.setPosition(MT3SETB_Comm_1.Comm.transPos(this.aimUINode, MT3SETB_Comm_1.Comm.node.fishLayer, this.shootPosFL));
              this.readyToShoot();
            }
          } else if (playerTurret && playerTurret.gunType != MT3SETB_Turret_1.GunType.FlameStorm) {
            let isLightningActive = (null === playerTurret || void 0 === playerTurret ? void 0 : playerTurret.isLockedOn) && (null === playerTurret || void 0 === playerTurret ? void 0 : playerTurret.isSpeedOn);
            let isJoystickFiring = this.isJoystickMode && !(null === playerTurret || void 0 === playerTurret ? void 0 : playerTurret.isLockedOn);
            let isNormalFiring = ((null === playerTurret || void 0 === playerTurret ? void 0 : playerTurret.isAutoOn) || this.isPressed) && (!(null === playerTurret || void 0 === playerTurret ? void 0 : playerTurret.isLockedOn) || null != this.lockFishNode);
            (isLightningActive || isJoystickFiring || isNormalFiring) && this.readyToShoot();
          }
        }
        for (let i = 0; i < this.otherLockNode.length; i++) if (this.otherLockNode[i].active) if (this.otherLockNode[i].parent && MT3SETB_Comm_1.Comm.gameCtrl.turrets[i].state != MT3SETB_Turret_1.Turret.eState.NoPlayer && (null === (_a = this.lockposDict[i]) || void 0 === _a ? void 0 : _a.isUsed())) this.otherLockNode[i].setPosition(MT3SETB_Comm_1.Comm.transPos(this.aimUINode, MT3SETB_Comm_1.Comm.node.fishLayer, this.getLockPosition(false, this.lockposDict[i].node))); else {
          this.otherLockNode[i].active = false;
          this.lockposDict[i] = null;
        }
      }
      readyToShoot() {
        MT3SETB_Comm_1.Comm.gameCtrl.initCurrIdleTime();
        var e = exports.cooldown.normal, t = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        if (t && !t.isLocked()) {
          var n = null;
          if (MT3SETB_WaterGameMgr_1.WaterGameMgr.showingGame) e = 0; else if (this.isTorpedo) {
            var s = this.lockFishNode ? this.lockFishNode.getComponent(MT3SETB_Fish_1.Fish) : MT3SETB_Comm_1.Comm.fishMgr.getFishByPos(this.originShootPos);
            if (!s || s.getOdds() <= MT3SETB_Comm_1.Comm.fishMgr.getHalfOpacityOdds()) return;
            n = s.getFishId();
            e = exports.cooldown.torpedo;
          } else this.isAiming && (e = exports.cooldown.aim);
          MT3SETB_Comm_1.Comm.gameCtrl.readyToShoot(this.createBulletId(), this.shootPosFL, n);
        }
        this.shootCircle = this.adjustShootCircle(e);
        this.lastShootPosFL = this.shootPosFL;
      }
      adjustShootCircle(e) {
        return e;
      }
      startTouchShoot(location) {
        this.isPressed = true;
        let playerTurret = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        if (location && playerTurret && playerTurret.isLockedOn && !playerTurret.isLocked()) {
          playerTurret.setPlayerUsedFlag(true);
          let fish = MT3SETB_Comm_1.Comm.fishMgr.getFishByPos(location);
          if (fish && fish.no >= MT3SETB_Turret_1.AUTO_TARGET_MIN_ID && MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish)) {
            this.lockFishUniqueIdPrev = this.lockFishUniqueId;
            this.lockFishNo = fish.getFishNo();
            this.lockFishUniqueId = fish.getFishId();
            this.lockNode.active = true;
            this.lockFishNode = fish.node;
            fish.hasLongBody && !fish.isLockNodeOnScreen && this.lockNode.setPosition(MT3SETB_Comm_1.Comm.transPos(this.aimUINode, MT3SETB_Comm_1.Comm.node.fishLayer, this.getLockPosition(false)));
            if (this.lockFishUniqueIdPrev != this.lockFishUniqueId) {
              let isChangingTarget = this.lockFishUniqueIdPrev > 0;
              playerTurret.showCrosshairOnFish(isChangingTarget);
              playerTurret.playLocalLockOnAnim();
              isChangingTarget && this.redirectBulletsToNewTarget(this.lockFishUniqueId);
            }
            playerTurret.isSpeedOn && MT3SETB_Comm_1.Comm.bulletMgr.showLaser(MT3SETB_Comm_1.Comm.gameCtrl.playerSeat, this.lockFishUniqueId);
          }
        } else if (playerTurret.isLocked() && playerTurret.gunType == MT3SETB_Turret_1.GunType.FreeDrill) {
          this.shootPosFL = MT3SETB_Comm_1.Comm.node.fishLayer.convertToNodeSpaceAR(location);
          let aimPos = MT3SETB_Comm_1.Comm.node.bulletLayer.convertToNodeSpaceAR(location);
          aimPos = playerTurret.checkAimPos(aimPos);
          playerTurret.aimAt(aimPos);
        }
        if (location) {
          this.shootPosFL = MT3SETB_Comm_1.Comm.node.fishLayer.convertToNodeSpaceAR(location);
          this.lastShootPosFL = this.shootPosFL;
          this.touchNode.setPosition(MT3SETB_Comm_1.Comm.node.effectLayer.convertToNodeSpaceAR(location));
          this.originShootPos = location;
        }
        this.touchNode.active = true;
      }
      touchShoot(isPressed, location) {
        this.isPressed = isPressed;
        let playerTurret = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        if (location && playerTurret) {
          this.shootPosFL = MT3SETB_Comm_1.Comm.node.fishLayer.convertToNodeSpaceAR(location);
          this.lastShootPosFL = this.shootPosFL;
          this.touchNode.setPosition(MT3SETB_Comm_1.Comm.node.effectLayer.convertToNodeSpaceAR(location));
          this.originShootPos = location;
        }
        isPressed ? this.touchNode.active = isPressed : this.isAuto || (this.touchNode.active = isPressed);
      }
      redirectBulletsToNewTarget(newTargetId) {
        for (let child of MT3SETB_Comm_1.Comm.node.bulletLayer.children) {
          let bullet = child.getComponent(MT3SETB_Bullet_1.Bullet);
          bullet && bullet.isMe && bullet.used && bullet.changeTarget(newTargetId);
        }
      }
      clearLockOn() {
        if (!this.lockNode.active) return;
        this.lockFishUniqueIdPrev = -1;
        this.lockFishUniqueId = 0;
        this.lockFishNo = 0;
        this.lockFishNode = null;
        this.lockNode.active = false;
        let playerTurret = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        if (playerTurret) {
          playerTurret.sendLockFishUpdate(MT3SETB_Turret_1.LaserUpdate.SpeedOff);
          MT3SETB_Comm_1.Comm.bulletMgr.stopLaser(MT3SETB_Comm_1.Comm.gameCtrl.playerSeat);
        }
      }
      checkShoot(e, d) {
        var t = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        if (t) {
          if (this.isAiming) if (o = MT3SETB_Comm_1.Comm.fishMgr.getFishByPos(e)) if (this.lockFishNode === o.node) this.clearLockOn(); else {
            if (this.isTorpedo && o.getOdds() <= MT3SETB_Comm_1.Comm.fishMgr.getHalfOpacityOdds()) return;
            this.lockFishUniqueIdPrev = this.lockFishUniqueId;
            this.lockFishUniqueId = o.getFishId();
            this.lockFishNo = o.getFishNo();
            this.lockFishNode = o.node;
            this.lockFishNode ? this.lockNode.active = t.getCurrentAvatarNo() !== MT3SETB_Game_1.eAvatarNo.Aim : this.lockNode.active = false;
          } else this.clearLockOn(); else if (this.isAutoMatic && !this.isAuto || t.isLockedOn) {
            var o;
            if (o = MT3SETB_Comm_1.Comm.fishMgr.getFishByPos(e)) {
              if (this.isTorpedo && o.getOdds() <= MT3SETB_Comm_1.Comm.fishMgr.getHalfOpacityOdds()) return;
              if (t.isLockedOn && o.no >= MT3SETB_Turret_1.AUTO_TARGET_MIN_ID) return;
            }
          }
        } else cc.log("Turret is not found.");
      }
      checkRange(e) {
        var t = Math.abs(e.x), o = Math.abs(e.y);
        return t < this.halfSize.x && o < this.halfSize.y;
      }
      checkLockFish(e) {
        this.lockFishNode !== e.node || e.isUsed() || (this.lockNode.active = false, this.lockFishNode = null), 
        this.priorityLockFishNode === e.node && (this.priorityLockFishNode = null);
      }
      setButtonSwitch(e) {
        switch (e) {
         case "AimingOn":
          this.isAiming = true, this.lockFishNo = 0, this.lockFishUniqueId = 0, this.lockFishUniqueIdPrev = -1, 
          (o = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret()) && (this.isTorpedo || o.switchAvatar(MT3SETB_Game_1.eAvatarNo.Aim));
          break;

         case "AimingOff":
          this.closeShootState("Aiming"), (o = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret()) && (this.isTorpedo || o.switchAvatar());
          break;

         case "AutoOn":
          this.isAuto = true, (o = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret()) && (o.getCurrentAvatarNo() <= MT3SETB_Game_1.eAvatarNo.Normal_Lv3 ? o.switchAvatar() : o.switchAvatar(MT3SETB_Game_1.eAvatarNo.Aim));
          break;

         case "AutoOff":
          if (this.closeShootState("Auto"), (o = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret()) && o.drillNode) {
            var t = o.drillNode.getChildByName("Time");
            t && (t.active = false);
          }
          break;

         case "TorpedoOn":
          this.isTorpedo = true, (o = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret()) && o.switchAvatar(MT3SETB_Game_1.eAvatarNo.Torpedo), 
          MT3SETB_Comm_1.Comm.fishMgr.setTorpedoFilter(true);
          break;

         case "TorpedoOff":
          var o;
          this.closeShootState("Torpedo"), (o = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret()) && (this.isAiming || this.isAutoMatic ? o.switchAvatar(MT3SETB_Game_1.eAvatarNo.Aim) : o.switchAvatar());
        }
      }
      closeShootState(e) {
        if (!this.isAuto || null != e && "Auto" != e || (this.isAuto = false, this.touchNode.active = false), 
        !this.isAiming || null != e && "Aiming" != e || (this.isAiming = false, this.lockNode.active = false, 
        this.lockFishNode = null, this.lockFishNo = 0, this.lockFishUniqueId = 0, this.lockFishUniqueIdPrev = -1), 
        !this.isTorpedo || null != e && "Torpedo" != e || (this.isTorpedo = false, MT3SETB_Comm_1.Comm.fishMgr.setTorpedoFilter(false)), 
        this.isAutoMatic && (null == e || "AutoMatic" == e)) {
          this.isAutoMatic = false, this.lockNode.active = false, this.autoMaticFishIDList = [], 
          this.lockFishNode = null, this.priorityLockFishNode = null, this.isRetain = false;
          var t = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
          t && t.switchAvatar(), MT3SETB_Comm_1.Comm.uiCtrl.setShootCount(0), MT3SETB_Comm_1.Comm.bulletMgr.stopLaser(MT3SETB_Comm_1.Comm.gameCtrl.playerSeat);
        }
      }
      getLockPosition(predictPos, e) {
        e || (e = this.lockFishNode);
        if (!e) return cc.log("fishNode is null."), cc.Vec2.ZERO;
        if (!e.active) return cc.Vec2.ZERO;
        var fish = e.getComponent(MT3SETB_Fish_1.Fish);
        var t = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.fishLayer, fish.getLockPosition());
        if (predictPos) {
          var fishVelocity = fish.getVelocity();
          var cannonPos = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBulletSpwanPos();
          var bulletSpeed = 1300;
          var predictedPos = this.getPredictedPos(t, fishVelocity, cannonPos, bulletSpeed);
          predictedPos && (t = predictedPos);
        }
        return t;
      }
      getPredictedPos(fishPos, fishVelocity, bulletOrigin, bulletSpeed) {
        var dx = fishPos.x - bulletOrigin.x;
        var dy = fishPos.y - bulletOrigin.y;
        var vx = fishVelocity.x;
        var vy = fishVelocity.y;
        var a = vx * vx + vy * vy - bulletSpeed * bulletSpeed;
        var b = 2 * (dx * vx + dy * vy);
        var c = dx * dx + dy * dy;
        var discriminant = b * b - 4 * a * c;
        if (discriminant < 0 || Math.abs(a) < 1e-5) return null;
        var sqrtDisc = Math.sqrt(discriminant);
        var t1 = (-b + sqrtDisc) / (2 * a);
        var t2 = (-b - sqrtDisc) / (2 * a);
        var t = Math.min(t1, t2) > 0 ? Math.min(t1, t2) : Math.max(t1, t2);
        if (t < 0) return null;
        return fishPos.add(fishVelocity.mul(t));
      }
      searchLockFish() {
        var e = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        if (e) if (this.lockFishNode && this.lockFishNode.getComponent(MT3SETB_Fish_1.Fish).isUsed() && this.checkRange(this.getLockPosition(false))) this.lockNode.active = e.getCurrentAvatarNo() !== MT3SETB_Game_1.eAvatarNo.Aim; else if (this.lockFishNo > 0) {
          var t = MT3SETB_Comm_1.Comm.fishMgr.getListByNo(this.lockFishNo);
          if (t.length >= 2) {
            var o = cc.v3(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.fishMgr.getSpawnNode(), MT3SETB_Comm_1.Comm.node.fishLayer, this.shootPosFL));
            t.sort(function(e, t) {
              return t.node.position.sub(o).magSqr() - e.node.position.sub(o).magSqr();
            });
          }
          for (;t.length >= 1 && (this.lockFishNode = t.pop().node, !this.checkRange(this.getLockPosition(false))); ) this.lockFishNode = null;
          if (this.lockFishNode) {
            this.lockNode.active = e.getCurrentAvatarNo() !== MT3SETB_Game_1.eAvatarNo.Aim;
            if (this.lockFishNode.getComponent(MT3SETB_Fish_1.Fish).id != this.lockFishUniqueIdPrev) {
              let isChangingTarget = this.lockFishUniqueIdPrev > 0;
              e.showCrosshairOnFish(isChangingTarget);
              e.playLocalLockOnAnim();
              isChangingTarget && this.redirectBulletsToNewTarget(this.lockFishUniqueId);
            }
          } else this.lockNode.active = false;
        }
      }
      searchLockFish_specificList(e, t, o, n) {
        for (var r = null, s = -1, c = function(o) {
          var c = MT3SETB_Comm_1.Comm.fishMgr.getListByNo(o), u = null;
          if (c.length <= 0) return "continue";
          if (c.length >= 2) {
            var d = cc.v3(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.fishMgr.getSpawnNode(), MT3SETB_Comm_1.Comm.node.fishLayer, e));
            c.sort(function(e, t) {
              return t.node.position.sub(d).magSqr() - e.node.position.sub(d).magSqr();
            });
          }
          for (;c.length >= 1; ) if (r = c.pop().node, l.checkRange(l.getLockPosition(false, r))) {
            var p = true;
            u = r.getComponent(MT3SETB_Fish_1.Fish), s = u.getFishId();
            for (var h = 0, f = n; h < f.length; h++) {
              var m = f[h];
              if (s == m) {
                p = false;
                break;
              }
            }
            if (p) {
              if (t && u.getOdds() <= MT3SETB_Comm_1.Comm.fishMgr.getHalfOpacityOdds()) {
                r = null;
                break;
              }
              return {
                value: [ s, l.getLockPosition(false, r) ]
              };
            }
            if (n.length <= 0) {
              if (t && u.getOdds() <= MT3SETB_Comm_1.Comm.fishMgr.getHalfOpacityOdds()) {
                r = null;
                break;
              }
              return {
                value: [ s, l.getLockPosition(false, r) ]
              };
            }
            if (null == r) break;
          } else r = null;
          return r ? {
            value: [ s = -1, cc.Vec2.ZERO ]
          } : void 0;
        }, l = this, u = 0, d = o; u < d.length; u++) {
          var p = c(d[u]);
          if ("object" == typeof p) return p.value;
        }
        return [ s, cc.Vec2.ZERO ];
      }
      searchLockFish_automatic() {
        var e = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        if (e.isLocked()) return;
        if (e) {
          var t = this.lockFishNode;
          if (!this.lockFishNode) {
            var s = MT3SETB_Comm_1.Comm.fishMgr.getAllFishes().filter(f => MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(f) && f.isUsed() && !f.isDying());
            if (s.length >= 1) {
              s.sort((one, two) => one.priority - two.priority);
              let r = this;
              for (;s.length >= 1 && (r.lockFishNode = s.pop().node, !r.checkRange(r.getLockPosition(false))); ) r.lockFishNode = null;
              if (r.lockFishNode) {
                var l = r.lockFishNode.getComponent(MT3SETB_Fish_1.Fish);
                return r.isTorpedo && l.getOdds() <= MT3SETB_Comm_1.Comm.fishMgr.getHalfOpacityOdds() ? (r.lockFishNode = null, 
                "continue") : (r.lockFishUniqueIdPrev = r.lockFishUniqueId, r.lockFishUniqueId = l.getFishId(), 
                r.lockFishNo = l.getFishNo(), r.lockNode.active = e.getCurrentAvatarNo() !== MT3SETB_Game_1.eAvatarNo.Aim, 
                t != r.lockFishNode && r.lockFishNode.getComponent(MT3SETB_Fish_1.Fish).id != r.lockFishUniqueIdPrev && e.showCrosshairOnFish(r.lockFishUniqueIdPrev > 0) && e.playLocalLockOnAnim() && r.lockFishUniqueIdPrev > 0 && r.redirectBulletsToNewTarget(r.lockFishUniqueId), 
                "break");
              }
              r.lockNode.active = false;
            }
            this.lockFishNode || this.clearLockOn();
          }
        }
      }
      getLockFishNo() {
        return this.lockFishNo;
      }
      getLockFish() {
        return this.lockFishNode ? this.lockFishNode.getComponent(MT3SETB_Fish_1.Fish) : null;
      }
      getShootPosFL() {
        return this.shootPosFL;
      }
      getLastShootPosFL() {
        return this.lastShootPosFL;
      }
      checkDrillShoot(e) {
        var t = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        if (t) switch (e) {
         case 1:
          if (t.drillNode) return (o = cc.find("Time", t.drillNode)) && (o.active = false), 
          false;
          break;

         case 2:
          var o;
          if (t.drillNode) return (o = cc.find("Time", t.drillNode)) && (t.isDrillReady && (o.active = true), 
          o.getComponent(cc.Label).string = Math.floor(t.drillCountdown).toString()), t.drillCountdown <= 0;
        }
        return true;
      }
      createBulletId() {
        return this.bulletId += 1, this.bulletId;
      }
      setAutoFishIDList(e) {
        if (e.length > 0) {
          if (!this.isTorpedo) {
            var t = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
            t && t.switchAvatar(MT3SETB_Game_1.eAvatarNo.Aim);
          }
          this.autoMaticFishIDList = e;
        }
        this.isAutoMatic = true, MT3SETB_Comm_1.Comm.uiCtrl.switchChipState("AutoMatic", true);
      }
      checkShootCount() {
        var e = false;
        false == this.isAutoMatic && (e = true);
        return e;
      }
      setIsRetain(e) {
        this.isRetain = e;
      }
    };
    __decorate([ property([ cc.Prefab ]) ], ShootMgr.prototype, "aimNodes", void 0);
    ShootMgr = __decorate([ ccclass ], ShootMgr);
    exports.ShootMgr = ShootMgr;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-Bullet": "MT3SETB-Bullet",
    "./MT3SETB-Fish": "MT3SETB-Fish",
    "./MT3SETB-Turret": "MT3SETB-Turret",
    "./MT3SETB-WaterGameMgr": "MT3SETB-WaterGameMgr"
  } ],
  "MT3SETB-SkinChange": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ff9000gi5tKep+2m8h1irrE", "MT3SETB-SkinChange");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_LangImgForCommon_1 = require("./MT3SETB-LangImgForCommon");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const CANNON_LABEL_MAP = {
      0: "venussnow",
      1: "skystorm",
      2: "flamecrown",
      3: "brasslightning",
      4: "bloodsuzaku",
      5: "yinyunqinglong",
      6: "inkunicorn"
    };
    let SkinChange = class SkinChange extends cc.Component {
      constructor() {
        super(...arguments);
        this.cannonLabelSprite = null;
        this.cannonLabelSprites = [];
        this.skinAvatars = [];
        this.curLabelSprite = null;
        this.curSkinSprite = null;
        this.cycleSkinButtons = [];
        this.equipCannonButton = null;
        this.curCannonSkinIdx = 0;
        this.playerSkinIdx = -1;
      }
      start() {
        MT3SETB_Comm_1.Comm.skinChange = this;
      }
      initCannonInfo(playerSkinIdx) {
        this.playerSkinIdx = playerSkinIdx;
        this.curCannonSkinIdx = playerSkinIdx;
        this.curSkinSprite.spriteFrame = this.skinAvatars[this.curCannonSkinIdx];
        this.cannonLabelSprite.setSpriteName(`${CANNON_LABEL_MAP[this.curCannonSkinIdx]}`);
        this.cycleSkinButtons[0].active = this.curCannonSkinIdx > 0;
        this.cycleSkinButtons[1].active = this.curCannonSkinIdx < this.skinAvatars.length - 1;
        this.equipCannonButton.active = this.curCannonSkinIdx != this.playerSkinIdx;
      }
      onClickCycleCannonSkin(evt, increment) {
        this.curCannonSkinIdx = 1 == increment ? ++this.curCannonSkinIdx : --this.curCannonSkinIdx;
        this.curSkinSprite.spriteFrame = this.skinAvatars[this.curCannonSkinIdx];
        this.cannonLabelSprite.setSpriteName(`${CANNON_LABEL_MAP[this.curCannonSkinIdx]}`);
        this.cycleSkinButtons[0].active = this.curCannonSkinIdx > 0;
        this.cycleSkinButtons[1].active = this.curCannonSkinIdx < this.skinAvatars.length - 1;
        this.equipCannonButton.active = this.curCannonSkinIdx != this.playerSkinIdx;
      }
      onClickEquipCannonSkin() {
        var skinChangeReq = MT3SETB_mtf_pb_wrapper_1.mtf.SkinChangeReq.create();
        skinChangeReq.skin = this.curCannonSkinIdx;
        var n = MT3SETB_mtf_pb_wrapper_1.mtf.SkinChangeReq.encode(skinChangeReq);
        MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_SKIN_CHANGE_REQ, n);
      }
    };
    __decorate([ property(MT3SETB_LangImgForCommon_1.LangImgForCommon) ], SkinChange.prototype, "cannonLabelSprite", void 0);
    __decorate([ property([ cc.SpriteFrame ]) ], SkinChange.prototype, "cannonLabelSprites", void 0);
    __decorate([ property([ cc.SpriteFrame ]) ], SkinChange.prototype, "skinAvatars", void 0);
    __decorate([ property(cc.Sprite) ], SkinChange.prototype, "curLabelSprite", void 0);
    __decorate([ property(cc.Sprite) ], SkinChange.prototype, "curSkinSprite", void 0);
    __decorate([ property([ cc.Node ]) ], SkinChange.prototype, "cycleSkinButtons", void 0);
    __decorate([ property(cc.Node) ], SkinChange.prototype, "equipCannonButton", void 0);
    SkinChange = __decorate([ ccclass ], SkinChange);
    exports.default = SkinChange;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-LangImgForCommon": "MT3SETB-LangImgForCommon"
  } ],
  "MT3SETB-SkinItem": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d7614d6UEJF4Imc5jdrYMH8", "MT3SETB-SkinItem");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SkinItem = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_utils2_1 = require("../framework/framework/MT3SETB-utils2");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let SkinItem = class SkinItem extends cc.Component {
      constructor() {
        super();
        this.nameLabel = null;
        this.timeLabel = null;
        this.source = null;
        this.desc = null;
        this.timesLabel = null;
        this.lockNode = null;
        this.wearNode = null;
        this.wearButton = null;
        this.useNode = null;
        this.helpNode = null;
        this.helpNode2 = null;
        this.cannonSpr = null;
        this.cannonSpriteFrame = [];
        this.skinNo = 0;
        this.sourceNo = 0;
        this.longDescNo = 0;
      }
      updateItem(e, t, o, a, s, c, l, u, d, p) {
        this.nameLabel.string = MT3SETB_LangList_1.LangList.getString(o);
        this.desc.string = MT3SETB_LangList_1.LangList.getString(s);
        this.skinNo = e;
        this.sourceNo = a;
        this.longDescNo = c;
        var h = !!MT3SETB_Comm_1.Comm.skinMgr.getSPSkinData(e);
        this.cannonSpriteFrame[t] && (this.cannonSpr.spriteFrame = this.cannonSpriteFrame[t]);
        if (d) {
          this.lockNode.active = false;
          this.wearNode.active = true;
          this.useNode.active = true;
          this.source.node.active = false;
          this.helpNode.active = false;
          this.helpNode2.active = h;
          this.timesLabel.node.active = h;
          h && (this.timesLabel.string = MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(254), l - u));
          null == p ? this.timeLabel.node.active = false : (this.checkTime(p), this.timeLabel.node.active = true);
        } else {
          -1 == p ? (this.lockNode.active = true, this.timeLabel.node.active = false, this.wearButton.interactable = false, 
          this.source.node.active = true, this.helpNode.active = true, this.helpNode2.active = false, 
          this.timesLabel.node.active = false) : (this.helpNode2.active = h, this.timesLabel.node.active = h, 
          this.source.node.active = false, this.helpNode.active = false, null == p ? (this.lockNode.active = false, 
          this.timeLabel.node.active = false, this.wearButton.interactable = true) : (this.checkTime(p), 
          this.timeLabel.node.active = true), h && (this.timesLabel.string = MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(254), l - u)));
          this.wearNode.active = false;
          this.useNode.active = false;
        }
      }
      checkTime(e) {
        var t = new Date(), o = new Date(e);
        if (t.getTime() >= o.getTime()) {
          this.timeLabel.string = MT3SETB_LangList_1.LangList.getString(224);
          this.wearButton.interactable = false;
          this.lockNode.active = true;
          this.helpNode2.active = false;
          this.timesLabel.node.active = false;
        } else {
          var n = o.getTime() - t.getTime(), i = Math.floor(n / 864e5), a = Math.floor(n / 36e5) - 24 * i, s = Math.floor(n / 6e4) - 60 * (24 * i + a);
          this.timeLabel.string = i >= 1 ? MT3SETB_LangList_1.LangList.getString(225) + i + "D" + a + "H" : a >= 1 ? MT3SETB_LangList_1.LangList.getString(225) + a + "H" + s + "M" : s >= 1 ? MT3SETB_LangList_1.LangList.getString(225) + s + "M" : MT3SETB_LangList_1.LangList.getString(225) + "<1M";
          this.wearButton.interactable = true;
          this.lockNode.active = false;
        }
      }
      wearEquip() {
        var e = this;
        MT3SETB_Comm_1.Comm.skinMgr.showSwitchTip(function() {
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_skinSwitchManual, e.skinNo.toString());
          e.node.parent.parent.emit("wearEquip", e.skinNo);
        });
      }
      showSource() {
        MT3SETB_Comm_1.Comm.msgBox.setMessage(1, MT3SETB_LangList_1.LangList.getString(this.sourceNo));
      }
      showLongDesc() {
        MT3SETB_Comm_1.Comm.msgBox.setMessage(1, MT3SETB_LangList_1.LangList.getString(this.longDescNo));
      }
    };
    __decorate([ property(cc.Label) ], SkinItem.prototype, "nameLabel", void 0);
    __decorate([ property(cc.Label) ], SkinItem.prototype, "timeLabel", void 0);
    __decorate([ property(cc.Label) ], SkinItem.prototype, "source", void 0);
    __decorate([ property(cc.Label) ], SkinItem.prototype, "desc", void 0);
    __decorate([ property(cc.Label) ], SkinItem.prototype, "timesLabel", void 0);
    __decorate([ property(cc.Node) ], SkinItem.prototype, "lockNode", void 0);
    __decorate([ property(cc.Node) ], SkinItem.prototype, "wearNode", void 0);
    __decorate([ property(cc.Button) ], SkinItem.prototype, "wearButton", void 0);
    __decorate([ property(cc.Node) ], SkinItem.prototype, "useNode", void 0);
    __decorate([ property(cc.Node) ], SkinItem.prototype, "helpNode", void 0);
    __decorate([ property(cc.Node) ], SkinItem.prototype, "helpNode2", void 0);
    __decorate([ property(cc.Sprite) ], SkinItem.prototype, "cannonSpr", void 0);
    __decorate([ property(cc.SpriteFrame) ], SkinItem.prototype, "cannonSpriteFrame", void 0);
    SkinItem = __decorate([ ccclass ], SkinItem);
    exports.SkinItem = SkinItem;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "../system/MT3SETB-LangList": "MT3SETB-LangList"
  } ],
  "MT3SETB-SkinMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "1e2a1aHF75HjrDCqDfqKHa+", "MT3SETB-SkinMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SkinMgr = exports.skinItemData = exports.skinInfo = void 0;
    const MT3SETB_numeral_1 = require("../common/api/MT3SETB-numeral");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const MT3SETB_SkinItem_1 = require("./MT3SETB-SkinItem");
    const MT3SETB_VersionDifference_1 = require("./MT3SETB-VersionDifference");
    const MT3SETB_utils2_1 = require("../framework/framework/MT3SETB-utils2");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let m = Math.pow(10, -7);
    class skinInfo {
      constructor() {
        this.skinNo = 0;
        this.clientNo = 0;
        this.nameNo = 0;
        this.sourceNo = 0;
        this.descNo = 0;
        this.longDescNo = 0;
        this.weights = 0;
        this.time = -1;
        this.equip = false;
        this.shootCount = 0;
        this.perHit = 0;
        this.dailyLimit = 0;
        this.dailyUsage = 0;
      }
    }
    exports.skinInfo = skinInfo;
    class skinItemData {
      constructor() {
        this.localNode = null;
        this.dataNode = null;
        this.width = 0;
      }
    }
    exports.skinItemData = skinItemData;
    let SkinMgr = class SkinMgr extends cc.Component {
      constructor() {
        super();
        this.root = null;
        this.listNode = null;
        this.scrollBar = null;
        this.scrollView = null;
        this.root = null;
        this.listNode = null;
        this.scrollBar = null;
        this.scrollView = null;
        this.skinData = null;
        this.scrollShowMax = 4;
        this.isSend = false;
        this.bInit = false;
        this.updateCD = 0;
        this.skinList = [];
        this.skinInfoList_have = [];
        this.skinInfoList_havent = [];
        this.skinInfoList_complex = [];
        this.nowSkinNo = 0;
        this.isSPSkin = false;
        this.nowSkinInfo = null;
        this.isFGPlaying = false;
        this.nowShootCount = 0;
        this.barNode = null;
        this.meteor = 0;
        this.currValue = 0;
        this.progressBar = null;
        this.progressBarAnim = null;
        this.efNode1 = null;
        this.shootBtn = null;
        this.addEfNode = null;
        this.addEfDiffY = 0;
        this.refreshLock = false;
        this.fingerNode = null;
        this.fingerTipNode = null;
        this.nowEfState = 0;
        this.titleNode = null;
        this.titleStr = null;
        this.todayEndTime_UTC8 = 0;
        this.crossDayCB = [];
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.skinMgr = this;
        this.listNode.on("wearEquip", this.U2S_WearEquip.bind(this));
      }
      start() {
        this.skinData = MT3SETB_Comm_1.Comm.app.getSkinData();
        this.initCrossDay();
        this.bInit || (this.bInit = true, this.init());
      }
      init() {
        var e, t = this.listNode.getComponent(cc.Layout).spacingX, o = MT3SETB_Comm_1.Comm.dataMgr.getSkinItem().getContentSize();
        cc.find("App").getComponent(MT3SETB_VersionDifference_1.VersionDifference).switchCall(function() {
          e = 2;
        }, function() {
          e = 3;
        });
        for (var n = 0; this.skinData[n]; ) {
          if (1 == this.skinData[n].version || this.skinData[n].version == e) {
            var a = new cc.Node();
            a.width = o.width;
            a.height = o.height;
            a.parent = this.listNode;
            var s = new skinItemData();
            s.localNode = a;
            s.width = o.width + t;
            this.skinList.push(s);
            var c = new skinInfo();
            c.skinNo = this.skinData[n].skinNo;
            c.clientNo = this.skinData[n].clientNo;
            c.nameNo = this.skinData[n].name;
            c.sourceNo = this.skinData[n].source;
            c.descNo = this.skinData[n].desc;
            c.longDescNo = this.skinData[n].longDesc;
            c.weights = this.skinData[n].weights;
            this.skinInfoList_havent.push(c);
          }
          n += 1;
        }
        var l = new MT3SETB_mtf_pb_wrapper_1.mtf.PlayerInfo.Skin();
        l.skin = 0;
        l.expiration = null;
        this.addSkinInfo(l);
        this.complexSkinInfo();
        this.updateSkinView();
        this.equip(0);
      }
      update(e) {
        this.root.active && (this.updateCD <= 0 && (this.updateSkinView(), this.updateCD = .2), 
        this.updateCD -= e);
        this.updateCrossDay();
      }
      show() {
        this.root.active = true;
        this.bInit || (this.bInit = true, this.init());
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_skinShow);
      }
      close() {
        this.root.active = false;
      }
      hide() {
        this.close();
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_skinHide);
      }
      updateSkinView() {
        var e = this.scrollBar.getComponent(cc.ScrollView);
        if (e) {
          var t = e.getContentPosition();
          if (this.skinList.length > 0) {
            for (var o = Math.floor(Math.abs(t.x) / this.skinList[0].width), n = (o = o < 0 ? 0 : o) + this.scrollShowMax > this.skinList.length - 1 ? this.skinList.length - 1 : o + this.scrollShowMax, a = o; a <= n; ++a) if (this.skinList[a].dataNode) {
              this.skinList[a].dataNode.getComponent(MT3SETB_SkinItem_1.SkinItem).updateItem(this.skinInfoList_complex[a].skinNo, this.skinInfoList_complex[a].clientNo, this.skinInfoList_complex[a].nameNo, this.skinInfoList_complex[a].sourceNo, this.skinInfoList_complex[a].descNo, this.skinInfoList_complex[a].longDescNo, this.skinInfoList_complex[a].dailyLimit, this.skinInfoList_complex[a].dailyUsage, this.skinInfoList_complex[a].equip, this.skinInfoList_complex[a].time);
              this.skinList[a].dataNode.active = true;
            } else {
              this.skinList[a].dataNode = MT3SETB_Comm_1.Comm.dataMgr.getSkinItem();
              this.skinList[a].dataNode.parent = this.skinList[a].localNode;
            }
            var r = o - 1, s = n + 1;
            r > 0 && this.skinList[r].dataNode && (this.skinList[r].dataNode.active = false);
            s < this.skinList.length && this.skinList[s].dataNode && (this.skinList[s].dataNode.active = false);
          }
        }
      }
      addSkinInfo(e) {
        this.bInit || (this.bInit = true, this.init());
        for (var t = 0; t < this.skinInfoList_have.length; ++t) if (this.skinInfoList_have[t].skinNo == e.skin) return;
        for (t = 0; t < this.skinInfoList_havent.length; ++t) if (this.skinInfoList_havent[t].skinNo == e.skin) {
          this.skinInfoList_havent[t].time = e.expiration ? 1e3 * e.expiration.toNumber() : null, 
          this.skinInfoList_havent[t].dailyLimit = e.limit, this.skinInfoList_havent[t].dailyUsage = e.usage, 
          this.skinInfoList_havent[t].shootCount = e.value1, this.skinInfoList_havent[t].perHit = e.value2, 
          this.skinInfoList_have.push(this.skinInfoList_havent[t]), this.skinInfoList_havent.splice(t, 1);
          break;
        }
        this.skinInfoList_have.sort(function(e, t) {
          return t.weights - e.weights;
        }), this.checkSeriesSkin(), this.complexSkinInfo();
      }
      complexSkinInfo() {
        var e, t;
        this.skinInfoList_complex = [], (e = this.skinInfoList_complex).push.apply(e, this.skinInfoList_have), 
        (t = this.skinInfoList_complex).push.apply(t, this.skinInfoList_havent);
      }
      checkSeriesSkin() {
        for (var e = this, t = function(t) {
          for (var o = 0; o < e.skinInfoList_have.length; o++) if (e.skinInfoList_have[o].skinNo == t) return true;
          return false;
        }, o = function(t) {
          for (var o = 0; o < e.skinInfoList_have.length; o++) if (e.skinInfoList_have[o].skinNo == t) return e.skinInfoList_have.splice(o, 1), 
          void ((n = e.skinList.pop()).localNode && n.localNode.destroy());
          for (o = 0; o < e.skinInfoList_havent.length; o++) {
            var n;
            if (e.skinInfoList_havent[o].skinNo == t) return e.skinInfoList_havent.splice(o, 1), 
            void ((n = e.skinList.pop()).localNode && n.localNode.destroy());
          }
        }, n = [ 104, 103, 102 ], i = false, a = 0; a < n.length; a++) i ? o(n[a]) : i = t(n[a]);
      }
      equip(e) {
        for (var t = 0; t < this.skinInfoList_complex.length; ++t) this.skinInfoList_complex[t].skinNo == e ? this.skinInfoList_complex[t].equip = true : this.skinInfoList_complex[t].equip = false;
        this.isSend = false, this.switchSkin(e);
      }
      U2S_WearEquip(e) {
        if (!this.isSend) {
          var t = new MT3SETB_mtf_pb_wrapper_1.mtf.SkinChangeReq();
          t.skin = e, MT3SETB_Comm_1.Comm.gameMgr.wearEquip(t), this.isSend = true, MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_skinSwitch, e.toString());
        }
      }
      convertSNo2CNo(e) {
        for (var t = 0, o = 0; this.skinData[o]; ) {
          if (this.skinData[o].skinNo == e) {
            t = this.skinData[o].clientNo;
            break;
          }
          o += 1;
        }
        return t;
      }
      getMessageString(e, t) {
        for (var o = "", i = 0; this.skinData[i]; ) {
          if (this.skinData[i].skinNo == e) {
            var a = new Date(1e3 * t);
            o = MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(226), MT3SETB_LangList_1.LangList.getString(this.skinData[i].name), a.getFullYear(), MT3SETB_numeral_1.numeral(a.getMonth() + 1).format("00"), MT3SETB_numeral_1.numeral(a.getDate()).format("00"), MT3SETB_numeral_1.numeral(a.getHours()).format("00"), MT3SETB_numeral_1.numeral(a.getMinutes()).format("00"));
            break;
          }
          i += 1;
        }
        return o;
      }
      switchSkin(e) {
        this.nowSkinNo = e;
        var t = this.getSPSkinData(e);
        t && t.dailyUsage < t.dailyLimit ? (this.isSPSkin = true, this.nowSkinInfo = t, 
        this.meteor = 0, this.updateByBet(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet())) : (this.isSPSkin = false, 
        this.nowSkinInfo = null, this.isFGPlaying = false, this.hideFGUI(true));
        this.playFG_end();
        this.checkSPRedPoint() && MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().showRedPoint("ChangeCannon", true);
      }
      getSPSkinData(e) {
        if (e < MT3SETB_mtf_pb_wrapper_1.mtf.BulletType.Skin) return null;
        for (var t = 0; t <= this.skinInfoList_have.length - 1; t++) if (this.skinInfoList_have[t].skinNo == e && this.skinInfoList_have[t].dailyLimit > 0) return this.skinInfoList_have[t];
        for (t = 0; t <= this.skinInfoList_havent.length - 1; t++) if (this.skinInfoList_havent[t].skinNo == e) return this.skinInfoList_havent[t];
        return null;
      }
      shoot() {
        if (this.isFGPlaying) {
          this.nowShootCount -= 1;
          var e = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet();
          this.meteor = 80 * e * this.nowShootCount / this.nowSkinInfo.shootCount;
          this.updateByBet(e);
          this.nowShootCount <= 0 ? this.playFG_end() : this.titleStr && (this.titleStr.string = this.nowShootCount.toString());
        }
      }
      crossDay() {
        var e = this;
        this.skinInfoList_have.forEach(function(t) {
          t.dailyUsage = 0, MT3SETB_Comm_1.Comm.app.setSkinUsage(t.skinNo, 0), e.nowSkinNo == t.skinNo && e.getSPSkinData(e.nowSkinNo) && Date.now() < t.time && (e.isSPSkin = true, 
          e.nowSkinInfo = t, e.hideFGUI(false), MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret() && (e.meteor >= 80 * MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet() ? (e.nowSkinInfo.clientNo == MT3SETB_Game_1.eAvatarNo.DKing_Lv1 ? MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(0) : e.nowSkinInfo.clientNo == MT3SETB_Game_1.eAvatarNo.DKing_Lv2 ? MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(1) : e.nowSkinInfo.clientNo == MT3SETB_Game_1.eAvatarNo.DKing_Lv3 && MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(2), 
          e.nowEfState = 1) : (MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(3), 
          e.nowEfState = 0)), e.refreshUI());
        });
      }
      checkSPRedPoint() {
        for (var e = 0; e <= this.skinInfoList_have.length - 1; e++) if (this.skinInfoList_have[e].skinNo > 100 && this.skinInfoList_have[e].dailyLimit > 0 && this.skinInfoList_have[e].dailyUsage < this.skinInfoList_have[e].dailyLimit && this.skinInfoList_have[e].time > Date.now() && this.skinInfoList_have[e].skinNo != this.nowSkinNo) return true;
        return false;
      }
      getNowSkinNo() {
        return this.nowSkinNo;
      }
      initFGUI(e, t = 0) {
        var o = this;
        this.meteor = t, this.barNode = e, this.progressBar = this.barNode.getChildByName("EnergyBarNew_02").getComponent(cc.ProgressBar), 
        this.progressBarAnim = this.barNode.getComponent(cc.Animation), this.shootBtn = this.barNode.getChildByName("ShootBtn").getComponent(cc.Button), 
        this.efNode1 = this.barNode.getChildByName("EnergyBarNew_02").getChildByName("EnergyBarNew_03Ef"), 
        this.addEfNode = this.barNode.getChildByName("Slider"), this.addEfDiffY = this.progressBar.node.getChildByName("EnergyBarNew_03").getContentSize().width, 
        this.fingerNode = this.barNode.getChildByName("Finger"), this.fingerTipNode = this.barNode.getChildByName("FingerTip"), 
        this.updateByBet(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet()), this.progressBarAnim.play("CannonEnergeBar_Idle"), 
        this.addCrossDayEvent(function() {
          o.crossDay();
        });
      }
      setProgress(e) {
        this.currValue = cc.misc.clamp01(e), this.refreshUI();
      }
      refreshUI() {
        if (this.isSPSkin) {
          var e = this.compare(this.progressBar.progress, 0) ? 0 : this.compare(this.progressBar.progress, 1) ? 1 : (this.progressBar.progress - .03) / .93;
          this.meteor >= 80 * MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet() ? (this.progressBar.progress = 1, 
          this.addEfNode.getChildByName("Handle").y = this.addEfDiffY * this.progressBar.progress, 
          0 == this.nowEfState && (this.nowSkinInfo.clientNo == MT3SETB_Game_1.eAvatarNo.DKing_Lv1 ? MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(0) : this.nowSkinInfo.clientNo == MT3SETB_Game_1.eAvatarNo.DKing_Lv2 ? MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(1) : this.nowSkinInfo.clientNo == MT3SETB_Game_1.eAvatarNo.DKing_Lv3 && MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(2), 
          this.nowEfState = 1), this.efNode1.active || (this.progressBarAnim.stop("CannonEnergeBar_Idle"), 
          this.progressBarAnim.play("CannonEnergeBar_Full"), this.fingerNode.active = true, 
          this.fingerTipNode.active = true, this.fingerTipNode.getComponent(cc.Animation).play(), 
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fullPower, MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet().toString())), 
          this.shootBtn.node.active = true) : (this.progressBar.progress = this.compare(this.currValue, 0) ? 0 : .93 * this.currValue + .03, 
          this.addEfNode.getChildByName("Handle").y = this.addEfDiffY * this.progressBar.progress, 
          1 == this.nowEfState && (MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(3), 
          this.nowEfState = 0), this.efNode1.active && (this.progressBarAnim.stop("CannonEnergeBar_Full"), 
          this.progressBarAnim.play("CannonEnergeBar_Idle"), this.fingerNode.active = false, 
          this.fingerTipNode.getComponent(cc.Animation).stop(), this.fingerTipNode.active = false), 
          this.shootBtn.node.active = false, e != this.currValue && (this.addEfNode.stopAllActions(), 
          this.addEfNode.opacity = 150, this.addEfNode.runAction(cc.fadeOut(.5))));
        }
      }
      playFG() {
        if (!MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().isLocked()) if (this.meteor < 80 * MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet()) MT3SETB_Comm_1.Comm.toast.setText(MT3SETB_LangList_1.LangList.getString(222)); else if (Date.now() > this.nowSkinInfo.time) MT3SETB_Comm_1.Comm.toast.setText(MT3SETB_LangList_1.LangList.getString(248)); else if (!this.isFGPlaying) {
          var e = new MT3SETB_mtf_pb_wrapper_1.mtf.SkinSkillReq();
          e.no = this.nowSkinInfo.skinNo, e.bet = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet(), 
          MT3SETB_Comm_1.Comm.gameMgr.playSkinSkill(e);
        }
      }
      startFG() {
        this.isFGPlaying = true, this.nowShootCount = this.nowSkinInfo.shootCount, this.nowSkinInfo.dailyUsage += 1, 
        MT3SETB_Comm_1.Comm.app.setSkinUsage(this.nowSkinInfo.skinNo, this.nowSkinInfo.dailyUsage), 
        MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().lockBet(true), MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().lock(true), 
        this.titleNode = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.getEffectPf(MT3SETB_Game_1.eEffectNo.DkingWord)), 
        this.titleNode.parent = MT3SETB_Comm_1.Comm.node.effectLayer, this.titleNode.getComponent(cc.Animation).play("DkingFreeBulletWord_In"), 
        this.titleNode.getComponent(cc.Animation).on("finished", function(e, t) {
          "DkingFreeBulletWord_In" === t.name ? this.titleNode.getComponent(cc.Animation).play("DkingFreeBulletWord_Out") : "DkingFreeBulletWord_Out" === t.name && MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().lock(false);
        }.bind(this)), this.titleStr = this.titleNode.getChildByName("DkingWord").getChildByName("DkingFreeBullet").getChildByName("label").getComponent(cc.Label), 
        this.titleStr.string = this.nowShootCount.toString(), MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(4), 
        this.fingerNode.active = false, this.fingerTipNode.getComponent(cc.Animation).stop(), 
        this.fingerTipNode.active = false, this.nowEfState = 2, MT3SETB_Comm_1.Comm.uiCtrl.initAllState(), 
        MT3SETB_Comm_1.Comm.shootMgr.isTorpedo && (MT3SETB_Comm_1.Comm.uiCtrl.setTorpedoCoin(0), 
        MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("TorpedoOff")), MT3SETB_Comm_1.Comm.shootMgr.isAutoMatic && MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("AutoMaticOff"), 
        MT3SETB_Comm_1.Comm.shootMgr.isAiming && MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("AimingOff"), 
        MT3SETB_Comm_1.Comm.uiCtrl.hideTABtn(true), this.hideFGUI(true);
      }
      playFG_end() {
        var e = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        this.isFGPlaying = false, e && e.lockBet(false), !this.nowSkinInfo || this.nowSkinInfo.dailyUsage >= this.nowSkinInfo.dailyLimit ? (this.hideFGUI(true), 
        e && e.switchEffect(-1)) : (this.hideFGUI(false), e && e.switchEffect(3)), this.titleNode && (this.titleNode.destroy(), 
        this.titleNode = null, this.titleStr = null), this.nowEfState = 0, MT3SETB_Comm_1.Comm.uiCtrl.hideTABtn(false), 
        e && e.lock(false);
      }
      checkEffectState() {
        this.isSPSkin && 2 != this.nowEfState && (this.meteor >= 80 * MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet() ? this.nowSkinInfo.clientNo == MT3SETB_Game_1.eAvatarNo.DKing_Lv1 ? MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(0) : this.nowSkinInfo.clientNo == MT3SETB_Game_1.eAvatarNo.DKing_Lv2 ? MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(1) : this.nowSkinInfo.clientNo == MT3SETB_Game_1.eAvatarNo.DKing_Lv3 && MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(2) : (MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().switchEffect(3), 
        this.nowEfState = 0));
      }
      getProgress() {
        return this.currValue;
      }
      isFull() {
        return this.compare(this.getProgress(), 1);
      }
      updateByBet(e, t) {
        if (this.isSPSkin && !this.refreshLock) {
          t && (this.meteor = t);
          var o = Math.min(this.calcProgressByBet(e), 1);
          this.setProgress(o);
        }
      }
      calcProgressByBet(e) {
        var t = this.meteor / e / 80;
        return .9032210234 * Math.atan(2 * t);
      }
      hideFGUI(e) {
        this.barNode && (this.barNode.active = !e, e || this.updateByBet(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet()));
      }
      compare(e, t) {
        return Math.abs(e - t) < m;
      }
      cleanProgress() {
        var e = this, t = function(o) {
          var n = cc.misc.clamp01(e.currValue - o);
          e.setProgress(Math.pow(n, 1.1)), e.currValue <= 0 && (e.unschedule(t), e.refreshLock = false);
        };
        this.meteor = 0, this.refreshLock = true, this.schedule(t, 0);
      }
      showSwitchTip(e) {
        this.isSPSkin && this.meteor > 0 ? MT3SETB_Comm_1.Comm.msgBox.setMessage_callback(2, 247, e) : e();
      }
      initCrossDay() {
        var e = new Date(Date.now()).setHours(0, 0, 0, 0) + 864e5, t = new Date().getTimezoneOffset() / 60;
        this.todayEndTime_UTC8 = e + 36e5 * (-8 - t), t < -8 && (this.todayEndTime_UTC8 -= 864e5);
      }
      updateCrossDay() {
        Date.now() > this.todayEndTime_UTC8 && (this.todayEndTime_UTC8 += 864e5, this.crossDayCB.forEach(function(e) {
          e();
        }));
      }
      addCrossDayEvent(e) {
        this.crossDayCB.push(e);
      }
    };
    __decorate([ property(cc.Node) ], SkinMgr.prototype, "root", void 0);
    __decorate([ property(cc.Node) ], SkinMgr.prototype, "listNode", void 0);
    __decorate([ property(cc.Node) ], SkinMgr.prototype, "scrollBar", void 0);
    __decorate([ property(cc.Node) ], SkinMgr.prototype, "scrollView", void 0);
    SkinMgr = __decorate([ ccclass ], SkinMgr);
    exports.SkinMgr = SkinMgr;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../common/api/MT3SETB-numeral": "MT3SETB-numeral",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "../system/MT3SETB-LangList": "MT3SETB-LangList",
    "./MT3SETB-SkinItem": "MT3SETB-SkinItem",
    "./MT3SETB-VersionDifference": "MT3SETB-VersionDifference"
  } ],
  "MT3SETB-SoccerGame": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "2defav5oCVGG7Z5VtkfuhL1", "MT3SETB-SoccerGame");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SoccerGame = void 0;
    const MT3SETB_Comm_1 = require("../../../../../script/MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let SoccerGame = class SoccerGame extends cc.Component {
      constructor() {
        super();
        this.step1Sp = null;
        this.step2Sp = null;
        this.touch = null;
        this.finger = null;
        this.scoreUI = null;
        this.scoreStr = null;
        this.timeUI = null;
        this.timeStr = null;
        this.roundUI = null;
        this.roundLightSPs = [];
        this.fireBallEf = null;
        this.curWin = 0;
        this.totalWin = 0;
        this.shootTimes = 0;
        this.resultList = [];
        this.isShootable = false;
        this.shootCD = 0;
        this.fireBallPos = [ cc.v3(-340, -85), cc.v3(-340, 20), cc.v3(-350, 125), cc.v3(-200, 125), cc.v3(0, 145), cc.v3(210, 125), cc.v3(360, 135), cc.v3(340, 0), cc.v3(340, -85) ];
      }
      onLoad() {
        var e = this;
        this.touch.on(cc.Node.EventType.TOUCH_START, function(t) {
          e.clickShoot(t.getLocation());
          t.stopPropagation();
        });
        this.step1Sp.setSkin("Skin3");
        this.step2Sp.setSkin("Skin1");
        MT3SETB_Comm_1.Comm.playSpine(this.step2Sp, "MG_Idle", true);
        MT3SETB_Comm_1.Comm.playSpineAdditive(this.step2Sp, "Track_GoldenBall", 2, true);
        MT3SETB_Comm_1.Comm.playSpineAdditive(this.step2Sp, "Track_FG_PK_Audience", 3, true);
        MT3SETB_Comm_1.Comm.playSpineAdditive(this.step2Sp, "Track_FG_PK_Flag", 4, true);
        MT3SETB_Comm_1.Comm.playSpineAdditive(this.step2Sp, "Track_FG_PK_Flash", 5, true);
        var t = cc.find("Canvas/Stage");
        this.node.scale = t.getContentSize().height / 640;
      }
      update(e) {
        if (this.isShootable) {
          this.shootCD -= e;
          this.timeStr.string = Math.max(Math.floor(this.shootCD), 0).toString();
          this.shootCD <= 0 && this.shoot(MT3SETB_Comm_1.Comm.rInt(1, 9));
        }
      }
      startGame(e, t, o, i, a) {
        var r = this;
        this.node.active = false;
        var s = cc.instantiate(MT3SETB_Comm_1.Comm.dataMgr.effectData.soccerEf[1]);
        s.parent = MT3SETB_Comm_1.Comm.node.effectLayer;
        s.setPosition(i);
        var c = s.getPosition().x > 0 ? -1 : 1;
        s.scaleX = c;
        cc.tween(s).to(.4, {
          scaleX: 2 * c,
          scaleY: 2
        }).by(.6, {
          position: cc.v3(1e3 * c, 1e3),
          scaleX: 5 * c,
          scaleY: 5
        }).to(1, {
          position: cc.v3(),
          scaleX: 12 * -c,
          scaleY: 12
        }).to(1, {
          position: cc.v3(),
          scaleX: 20 * -c,
          scaleY: 20
        }).call(function() {
          s.destroy();
        }).start();
        cc.tween(s).delay(2.2).call(function() {
          r.node.active = true;
          r.totalWin = e;
          var i = 0;
          switch (t) {
           case 100:
            i = 0;
            break;

           case 280:
            i = 1;
            break;

           case 460:
            i = 2;
            break;

           case 640:
            i = 3;
            break;

           case 820:
            i = 4;
            break;

           case 1e3:
            i = 5;
          }
          for (var s = 0; s < 5; s++) {
            var c = s < i;
            r.resultList[s] = {
              win: o * (c ? 200 : 20),
              isGoal: c
            };
          }
          MT3SETB_Comm_1.Comm.shuffleSelf(r.resultList);
          r.endCB = a;
          r.step2Sp.node.active = false;
          r.playGame();
        }).start();
      }
      playGame() {
        var e = this;
        MT3SETB_Comm_1.Comm.playSpine(this.step1Sp, "PK_Intro", false, function() {
          e.isShootable = true;
          e.shootCD = 5.9;
          e.timeStr.string = Math.max(Math.floor(e.shootCD), 0).toString();
          e.finger.active = true;
          cc.tween(e.timeUI).to(.2, {
            position: cc.v3(0, 0)
          }).start();
        });
        cc.tween(this.node).delay(.5).call(function() {
          e.step2Sp.node.active = true;
          MT3SETB_Comm_1.Comm.playSpineAdditive(e.step2Sp, "Track_PK_Goalkeeper_05", 7, false);
        }).delay(.5).call(function() {
          e.step2Sp.clearTrack(7);
          MT3SETB_Comm_1.Comm.playSpineAdditive(e.step2Sp, "Track_MG_Idle", 1, true);
          MT3SETB_Comm_1.Comm.playSpine(e.step2Sp, "PK_Idle", true);
        }).start();
      }
      clickShoot(e) {
        this.touch.convertToNodeSpaceAR(e);
        if (this.isShootable) {
          var t = this.touch.convertToNodeSpaceAR(e), o = cc.misc.clampf(.85 * cc.misc.radiansToDegrees(cc.Vec2.UP.signAngle(t)), -90, 90);
          this.shoot(Math.ceil((90 - o) / 20));
        }
      }
      shoot(e) {
        var t = this;
        if (this.isShootable) {
          this.isShootable = false;
          this.finger.active = false;
          this.timeStr.string = "";
          cc.tween(this.timeUI).to(.2, {
            position: cc.v3(400, 0)
          }).start();
          cc.tween(this.roundUI).to(.2, {
            position: cc.v3(0, -200)
          }).start();
          cc.tween(this.node).delay(1).call(function() {}).delay(.6).call(function() {}).delay(.4).call(function() {
            o;
          }).start();
          var o = this.resultList[this.shootTimes].isGoal;
          MT3SETB_Comm_1.Comm.playSpine(this.step2Sp, "PK_Shoot", false, function() {
            o && MT3SETB_Comm_1.Comm.playSpineAdditive(t.step2Sp, "Track_MG_Win", 1, true);
          });
          MT3SETB_Comm_1.Comm.playSpineAdditive(this.step2Sp, "Track_PK_Ball_0" + e, 6, false);
          var i = o ? MT3SETB_Comm_1.Comm.rItem([ 1, 2, 3, 4, 5, 6, 7, 8, 9 ].filter(function(t) {
            return t != e;
          })) : e;
          MT3SETB_Comm_1.Comm.playSpineAdditive(this.step2Sp, "Track_PK_Goalkeeper_0" + i, 7, false);
          o && MT3SETB_Comm_1.Comm.playSpineAdditive(this.step2Sp, "Track_PK_Net_0" + e, 8, false);
          MT3SETB_Comm_1.Comm.playSpineAdditive(this.step2Sp, o ? "Track_PK_Hit_Goal" : "Track_PK_Hit_Miss", 9, false);
          cc.tween(this.node).delay(2).call(function() {
            cc.tween(t.roundUI).to(.2, {
              position: cc.v3(0, 0)
            }).start();
            t.fireBallEf.node.setPosition(t.fireBallPos[e - 1]);
            t.fireBallEf.emissionRate = 100;
            cc.tween(t.fireBallEf.node).delay(.3).to(.3, {
              position: cc.v3(0, 270)
            }).call(function() {
              t.fireBallEf.emissionRate = 0;
            }).start();
          }).delay(.6).call(function() {
            t.scoreUI.getComponentInChildren(cc.ParticleSystem).resetSystem();
            t.scoreUI.getComponent(cc.Animation).play("SoccerGameAddScore");
            t.curWin += t.resultList[t.shootTimes].win;
            t.shootTimes >= 5 && (t.curWin = t.totalWin);
            t.scoreStr.string = MT3SETB_Comm_1.Comm.getThousandsNum(t.curWin);
            t.roundLightSPs[t.shootTimes].node.active = true;
            MT3SETB_Comm_1.Comm.playSpine(t.roundLightSPs[t.shootTimes], o ? "PK_Score_Goal" : "PK_Score_Miss");
          }).delay(2).call(function() {
            t.shootTimes++;
            t.shootTimes < 5 ? t.playGame() : t.playEnd();
          }).start();
        }
      }
      playEnd() {
        var e = this;
        this.step1Sp.node.active = false;
        cc.tween(this.step2Sp.node).to(.5, {
          opacity: 0
        }).call(function() {
          e.step2Sp.node.active = false;
        }).start();
        cc.tween(this.roundUI).to(.5, {
          opacity: 0
        }).call(function() {
          e.roundUI.active = false;
        }).start();
        this.scoreUI.getComponent(cc.Animation).play("SoccerGameResult");
        this.scoreUI.getComponent(cc.Animation).once("finished", function() {
          e.node.destroy();
          e.endCB && e.endCB();
        });
      }
    };
    __decorate([ property(sp.Skeleton) ], SoccerGame.prototype, "step1Sp", void 0);
    __decorate([ property(sp.Skeleton) ], SoccerGame.prototype, "step2Sp", void 0);
    __decorate([ property(cc.Node) ], SoccerGame.prototype, "touch", void 0);
    __decorate([ property(cc.Node) ], SoccerGame.prototype, "finger", void 0);
    __decorate([ property(cc.Node) ], SoccerGame.prototype, "scoreUI", void 0);
    __decorate([ property(cc.Label) ], SoccerGame.prototype, "scoreStr", void 0);
    __decorate([ property(cc.Node) ], SoccerGame.prototype, "timeUI", void 0);
    __decorate([ property(cc.Label) ], SoccerGame.prototype, "timeStr", void 0);
    __decorate([ property(cc.Node) ], SoccerGame.prototype, "roundUI", void 0);
    __decorate([ property([ sp.Skeleton ]) ], SoccerGame.prototype, "roundLightSPs", void 0);
    __decorate([ property(cc.ParticleSystem) ], SoccerGame.prototype, "fireBallEf", void 0);
    SoccerGame = __decorate([ ccclass ], SoccerGame);
    exports.SoccerGame = SoccerGame;
    cc._RF.pop();
  }, {
    "../../../../../script/MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-SoundConst": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "21816LKIW1MtqKrB15K1IGo", "MT3SETB-SoundConst");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.FLAMESTORM_SFX = exports.LASER_SFX = exports.DEATH_TALK_MUSIC_PROBABILITY = exports.EffectSound = exports.BGMSound = void 0;
    var BGMSound;
    (function(BGMSound) {
      BGMSound[BGMSound["BGM"] = 0] = "BGM";
      BGMSound[BGMSound["BGM_1"] = 1] = "BGM_1";
      BGMSound[BGMSound["BGM_2"] = 2] = "BGM_2";
      BGMSound[BGMSound["BGM_3"] = 3] = "BGM_3";
      BGMSound[BGMSound["BGM_VN"] = 4] = "BGM_VN";
    })(BGMSound = exports.BGMSound || (exports.BGMSound = {}));
    var EffectSound;
    (function(EffectSound) {
      EffectSound[EffectSound["HIT_COIN"] = 0] = "HIT_COIN";
      EffectSound[EffectSound["NET_1"] = 1001] = "NET_1";
      EffectSound[EffectSound["PAO_1"] = 11] = "PAO_1";
      EffectSound[EffectSound["PAO_2"] = 1e3] = "PAO_2";
      EffectSound[EffectSound["FISH_HIT"] = 12] = "FISH_HIT";
      EffectSound[EffectSound["BOMB_CATCH"] = 23] = "BOMB_CATCH";
      EffectSound[EffectSound["SIDEBAR_CLICK"] = 19] = "SIDEBAR_CLICK";
      EffectSound[EffectSound["DRILL_BOMB"] = 999] = "DRILL_BOMB";
    })(EffectSound = exports.EffectSound || (exports.EffectSound = {}));
    exports.DEATH_TALK_MUSIC_PROBABILITY = .2;
    exports.LASER_SFX = "ThunderDragonElectricity";
    exports.FLAMESTORM_SFX = "storm_shoot";
    cc._RF.pop();
  }, {} ],
  "MT3SETB-SoundList": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "85779FL8hlHdLXQzI9HlWnN", "MT3SETB-SoundList");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SoundList = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let SoundList = class SoundList extends cc.Component {
      constructor() {
        super(...arguments);
        this.Mp3Music = [];
        this.Mp3Effect = [];
      }
    };
    __decorate([ property({
      type: cc.AudioClip
    }) ], SoundList.prototype, "Mp3Music", void 0);
    __decorate([ property({
      type: cc.AudioClip
    }) ], SoundList.prototype, "Mp3Effect", void 0);
    SoundList = __decorate([ ccclass ], SoundList);
    exports.SoundList = SoundList;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-Sound": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ad6d4ytwQ1D0Z87BIVAkU9W", "MT3SETB-Sound");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Sound = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_SoundList_1 = require("./MT3SETB-SoundList");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const ROOM_MUSIC_LIST_START = 1;
    const ROOM_MUSIC_LIST_END = 3;
    const SFX_GAP_DELAY = .2;
    let Sound = class Sound extends cc.Component {
      constructor() {
        super();
        this.List = null;
        this.effectPlayMoment = {};
        this.List = null;
        this.musicClip = [];
        this.effectClip = [];
        this.musicIdClip = {};
        this.effectIdClip = {};
        this.effectPlayMoment = {};
        this.musicVol = 1;
        this.effectVol = 1;
        this.effectId = [];
        this.loadingEffectId = {};
        this.effectCd = [];
        this.currBGM = 0;
        this.currBGMNo = -1;
        this.musicOpen = true;
        this.effectOpen = true;
        this.loopEfList = [];
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.snd = this;
        var e = cc.instantiate(this.List).getComponent(MT3SETB_SoundList_1.SoundList);
        this.musicClip = e.Mp3Music, this.effectClip = e.Mp3Effect;
        var clipIdx = 0;
        for (let mClip of this.musicClip) if (mClip) {
          this.musicIdClip[mClip.name] = {
            clip: mClip,
            idx: clipIdx
          };
          clipIdx++;
        }
        clipIdx = 0;
        for (let aClip of this.effectClip) if (aClip) {
          this.effectIdClip[aClip.name] = {
            clip: aClip,
            idx: clipIdx
          };
          clipIdx++;
        }
      }
      start() {
        var e = this;
        this.currBGMNo = -1, this.playMusic(0);
        for (var t = 0, o = this.effectClip.length; t < o; ++t) this.effectCd.push(0);
        "undefined" != typeof LobbyData && LobbyData.mute && (this.musicVol = 0, this.effectVol = 0, 
        this.musicOpen = false, this.effectOpen = false);
        cc.audioEngine.setMusicVolume(this.musicVol), cc.audioEngine.setEffectsVolume(this.effectVol), 
        cc.game.on(cc.game.EVENT_HIDE, function() {
          e.playBackMusic(true);
          e.closeEffect();
        }), cc.game.on(cc.game.EVENT_SHOW, function() {
          e.playBackMusic(false);
          e.isMusicOpen() && e.openEffect();
        });
      }
      playBackMusic(isPaused) {
        isPaused ? cc.audioEngine.pauseMusic() : cc.audioEngine.resumeMusic();
      }
      playMusic(e) {
        if (this.currBGMNo == e) return;
        var t = this;
        this.currBGMNo = e, -1 === e || (cc.audioEngine.stop(this.currBGM), this.musicClip[e] && cc.assetManager.postLoadNative(this.musicClip[e], function() {
          t.currBGM = cc.audioEngine.playMusic(t.musicClip[e], true);
        }));
      }
      playMusicByName(name) {
        if (void 0 === name) return;
        if (!this.musicIdClip[name]) {
          console.warn("warning, failed to find music: " + name);
          return;
        }
        this.playMusic(this.musicIdClip[name].idx);
      }
      playNextRoomMusic() {
        this.currBGMNo += 1;
        this.currBGMNo = this.currBGMNo > ROOM_MUSIC_LIST_END ? ROOM_MUSIC_LIST_START : this.currBGMNo;
        this.playMusic(this.currBGMNo);
      }
      playEffectByName(name, loop = false, noLayering = false) {
        if (void 0 === name) return;
        var idData = this.effectIdClip[name];
        if (void 0 === idData) {
          console.warn("cannot find id data of " + name);
          return;
        }
        this.playEffect(idData.idx, loop, noLayering);
      }
      playEffect(idx, loop = false, noLayering = false) {
        var n = this;
        var moment = this.effectPlayMoment[idx];
        var now = Date.now();
        if (moment) {
          var timeDiff = (now - moment) / 1e3;
          if (timeDiff < SFX_GAP_DELAY) return;
        }
        this.effectPlayMoment[idx] = now;
        if (void 0 === loop && (loop = false), void 0 === noLayering && (noLayering = false), 
        !(-1 === idx || Math.abs(this.effectVol) <= 1e-4)) {
          if (noLayering) {
            var i = this.effectId[idx];
            if (!isNaN(i)) {
              if (!(i >= 0)) return;
              cc.audioEngine.stop(this.effectId[idx]);
            }
          }
          if (this.effectId[idx] = -1, this.effectClip[idx]) {
            idx;
            this.loadingEffectId[idx] = true;
            cc.assetManager.postLoadNative(this.effectClip[idx], function() {
              if (!n.loadingEffectId[idx]) return;
              delete n.loadingEffectId[idx];
              n.effectId[idx] = cc.audioEngine.playEffect(n.effectClip[idx], loop), loop && n.loopEfList.push({
                no: idx,
                id: n.effectId[idx]
              });
            });
          }
        }
      }
      stopEffect(idx) {
        if (this.loadingEffectId[idx]) {
          delete this.loadingEffectId[idx];
          return;
        }
        for (var t = 0; t < this.loopEfList.length; t++) if (this.loopEfList[t].no == idx) return cc.audioEngine.stop(this.loopEfList[t].id), 
        void this.loopEfList.splice(t, 1);
        var o = this.effectId[idx];
        isNaN(o) || cc.audioEngine.stop(this.effectId[idx]);
      }
      stopEffectByName(name) {
        if (void 0 === name) return;
        var idData = this.effectIdClip[name];
        if (void 0 === idData) {
          console.warn("cannot find id data of " + name);
          return;
        }
        this.stopEffect(idData.idx);
      }
      setFinishCallback(e, t) {
        t || (t = function() {}), this.effectId[e] && cc.audioEngine.setFinishCallback(this.effectId[e], t);
      }
      setBackgroundMusic(value) {
        this.musicVol = value;
        cc.audioEngine.setMusicVolume(this.musicVol);
      }
      getBackgroundMusicVolume() {
        return this.musicOpen ? this.musicVol : 0;
      }
      openBackgroundMusic() {
        this.musicOpen = true;
        this.musicVol = 1;
        this.playMusic(this.currBGMNo);
        cc.audioEngine.setMusicVolume(this.musicVol);
      }
      closeBackgroundMusic() {
        this.musicOpen = false;
        this.musicVol = 0;
        cc.audioEngine.setMusicVolume(0);
      }
      setEffect(value) {
        this.effectVol = value;
        cc.audioEngine.setEffectsVolume(this.effectVol);
        this.effectOpen = this.effectVol > 0;
      }
      openEffect() {
        this.effectOpen = true;
        this.effectVol = 1;
        cc.audioEngine.setEffectsVolume(this.effectVol);
        cc.audioEngine.setMusicVolume(this.musicVol);
      }
      closeEffect() {
        this.effectOpen = false;
        this.effectVol = 0;
        cc.audioEngine.setEffectsVolume(0);
        cc.audioEngine.setMusicVolume(this.musicVol);
      }
      setMute(e) {
        if (e) {
          cc.audioEngine.setEffectsVolume(0);
          cc.audioEngine.stop(this.currBGM);
          this.effectVol = 0;
        } else {
          this.effectOpen ? this.openEffect() : this.closeEffect();
          this.musicOpen ? this.openBackgroundMusic() : this.closeBackgroundMusic();
        }
      }
      stopAll() {
        cc.audioEngine.stopAll();
      }
      stopMusic() {
        cc.audioEngine.stopMusic();
        this.currBGM = 0;
        this.currBGMNo = -1;
      }
      stopAllEffects() {
        cc.audioEngine.stopAllEffects();
      }
      isMusicOpen() {
        return this.musicOpen;
      }
      getCurrBGMNo() {
        return this.currBGMNo;
      }
      isEffectOpen() {
        return this.effectOpen;
      }
    };
    __decorate([ property(cc.Prefab) ], Sound.prototype, "List", void 0);
    Sound = __decorate([ ccclass ], Sound);
    exports.Sound = Sound;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-SoundList": "MT3SETB-SoundList"
  } ],
  "MT3SETB-SplineFishPathUtil": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "aefaaZRtVtP17VppDkBgSLd", "MT3SETB-SplineFishPathUtil");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SplineFishPathUtil = void 0;
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const MT3SETB_utils2_1 = require("../../framework/framework/MT3SETB-utils2");
    class SplineFishPathUtil {
      static Lerp(a, b, t) {
        t = MT3SETB_utils2_1.limit(t, 0, 1);
        return a * (1 - t) + b * t;
      }
      static cardinalSplineAt(p0, p1, p2, p3, tension, t) {
        var t2 = t * t;
        var t3 = t2 * t;
        var s = (1 - tension) / 2;
        var b1 = s * (2 * t2 - t3 - t);
        var b2 = s * (-t3 + t2) + (2 * t3 - 3 * t2 + 1);
        var b3 = s * (t3 - 2 * t2 + t) + (-2 * t3 + 3 * t2);
        var b4 = s * (t3 - t2);
        var x = p0.x * b1 + p1.x * b2 + p2.x * b3 + p3.x * b4;
        var y = p0.y * b1 + p1.y * b2 + p2.y * b3 + p3.y * b4;
        return cc.v2(x, y);
      }
      static getControlPointAt(controlPoints, pos) {
        var p = Math.min(controlPoints.length - 1, Math.max(pos, 0));
        return controlPoints[p];
      }
      static initPath(fish) {
        let totalSeg = 0;
        for (let pt of fish._points) totalSeg += pt.numSegments;
        let acc = 0;
        for (let pt of fish._points) {
          pt.weight = pt.numSegments / totalSeg;
          acc += pt.weight;
          pt.accWeight = acc;
        }
        let pos = cc.v2(fish._points[0].x, fish._points[0].y);
        let nextPos = cc.v2(fish._points[1].x, fish._points[1].y);
        let faceDir = nextPos.sub(pos).normalizeSelf();
        fish.lastPos = fish.checkPathRatio(pos.sub(faceDir));
        this.updatePath(fish, 0);
      }
      static doLerp(ps, dt) {
        let x = this.Lerp(ps[0].x, ps[1].x, dt);
        let y = this.Lerp(ps[0].y, ps[1].y, dt);
        return cc.v2(x, y);
      }
      static doSpline(ps, dt) {
        var _a;
        let p, lt;
        p = Math.floor(dt * ps.length);
        lt = dt * ps.length - Math.floor(dt * ps.length);
        let tension = (null === (_a = ps[p]) || void 0 === _a ? void 0 : _a.tension) || .3;
        var newPos = this.cardinalSplineAt(this.getControlPointAt(ps, p - 1), this.getControlPointAt(ps, p - 0), this.getControlPointAt(ps, p + 1), this.getControlPointAt(ps, p + 2), tension, lt);
        return newPos;
      }
      static doSplineLoop(ps, dt) {
        var _a;
        let p, lt;
        p = Math.floor(dt * ps.length);
        lt = dt * ps.length - Math.floor(dt * ps.length);
        let tension = (null === (_a = ps[p]) || void 0 === _a ? void 0 : _a.tension) || .3;
        var newPos = this.cardinalSplineAt(this.getControlPointAt(ps, (p - 1) % ps.length), this.getControlPointAt(ps, (p - 0) % ps.length), this.getControlPointAt(ps, (p + 1) % ps.length), this.getControlPointAt(ps, (p + 2) % ps.length), tension, lt);
        return newPos;
      }
      static getActionTime(fish, time) {
        if (!fish.fishMoveAction) return time;
        let t1 = Math.floor(time / fish.fishMoveAction.totalSeconds) * fish.fishMoveAction.totalSeconds;
        let animTime = time - t1;
        let currEvent = fish.fishMoveAction.events[0];
        for (let event of fish.fishMoveAction.events) {
          if (event.time > animTime) break;
          currEvent = event;
        }
        let t2 = currEvent.accWeight + (animTime - currEvent.time) / currEvent.duration * currEvent.weight;
        t2 *= fish.fishMoveAction.totalSeconds;
        return t1 + t2;
      }
      static updatePath(fish, dt) {
        let p, lt, newPos;
        let ps = fish._points;
        if (!ps) return;
        let tension = .3;
        fish._elapsed += dt;
        if (fish._elapsed < 0) return;
        let elapsed = this.getActionTime(fish, fish._elapsed);
        let t = elapsed / fish._duration;
        newPos = ps.length > 2 ? this.doSpline(ps, t) : this.doLerp(ps, t);
        if (fish._subPathPoints) {
          let sps = fish._subPathPoints;
          let st = (elapsed + fish._subPathData.offsetTime) / 4;
          st -= Math.floor(st);
          newPos = sps.length > 2 ? newPos.add(this.doSplineLoop(sps, st)) : newPos.add(this.doLerp(sps, st));
        }
        if (t >= 1) {
          fish.setOpacity(0);
          fish.pathEnd = true;
          fish.nextFrame(function() {
            return MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, false, false);
          });
        }
        let lastPos = fish.node.getPosition();
        let pos = fish.checkPathRatio(newPos);
        pos = pos.add(fish.offset);
        fish.node.setPosition(cc.v2(pos.x, pos.y));
      }
      static updateRotation(fish, dir) {
        if (dir.magSqr() < .01) return;
        let newAngle = Math.atan2(dir.y, dir.x);
        newAngle *= 180 / Math.PI;
        fish.node.angle = newAngle - 90;
      }
    }
    exports.SplineFishPathUtil = SplineFishPathUtil;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm",
    "../../framework/framework/MT3SETB-utils2": "MT3SETB-utils2"
  } ],
  "MT3SETB-SplineMoveModule": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "3f5792j+upBLJBvAWzgbNKf", "MT3SETB-SplineMoveModule");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SplineMoveModule = void 0;
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const MT3SETB_SplineUtil_1 = require("./MT3SETB-SplineUtil");
    class SplineMoveModule {
      constructor(fish) {
        this.path = null;
        this.subPath = null;
        this.fish = null;
        this.t = 0;
        this.delay = 0;
        this.fish = fish;
      }
      get points() {
        return this.path.points;
      }
      setPath(path) {
        this.path = path;
      }
      init(delay) {
        this.delay = delay;
        this.speedRatio = 1;
        let fish = this.fish, path = this.path;
        let pos = cc.v2(path.points[0].point.x, path.points[0].point.y);
        let faceDir = cc.v2(path.points[0].direction.x, path.points[0].direction.y);
        this.lastPos = fish.checkPathRatio(pos.sub(faceDir));
        this.updatePath(0);
      }
      reset() {
        throw new Error("Method not implemented.");
      }
      updatePath(dt) {
        let pos = this.updatePosition(dt, 100);
        this.fish.node.setPosition(cc.v2(pos.x, pos.y));
      }
      updatePosition(dt, duration) {
        let fish = this.fish, path = this.path;
        let p, lt, newPos;
        let ps = path.points;
        if (!ps) return;
        this.t += dt;
        if (this.t < 0) return;
        let elapsed = this.getActionTime(this.t);
        let t = elapsed / fish.duration;
        newPos = ps.length > 2 ? MT3SETB_SplineUtil_1.SplineUtil.Spline(ps, t) : MT3SETB_SplineUtil_1.SplineUtil.Lerp(ps, t);
        if (t >= 1) {
          fish.setOpacity(0);
          fish.pathEnd = true;
          fish.nextFrame(function() {
            return MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, false, false);
          });
        }
        let lastPos = fish.node.getPosition();
        let pos = fish.checkPathRatio(newPos);
        return cc.v3(pos.add(fish.offset));
      }
      updateRotation() {
        let pos = this.fish.node.position;
        let dir = cc.v2(pos.x, pos.y).sub(this.lastPos);
        if (dir.magSqr() < 1) return;
        let newAngle = Math.atan2(dir.y, dir.x);
        newAngle *= 180 / Math.PI;
        this.fish.node.angle = newAngle - 90;
        this.lastPos.x = pos.x;
        this.lastPos.y = pos.y;
      }
      getActionTime(time) {
        if (!this.fish.fishMoveAction) return time;
        let t1 = Math.floor(time / this.fish.fishMoveAction.totalSeconds) * this.fish.fishMoveAction.totalSeconds;
        let animTime = time - t1;
        let currEvent = this.fish.fishMoveAction.events[0];
        for (let event of this.fish.fishMoveAction.events) {
          if (event.time > animTime) break;
          currEvent = event;
        }
        let t2 = currEvent.accWeight + (animTime - currEvent.time) / currEvent.duration * currEvent.weight;
        t2 *= this.fish.fishMoveAction.totalSeconds;
        return t1 + t2;
      }
    }
    exports.SplineMoveModule = SplineMoveModule;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-SplineUtil": "MT3SETB-SplineUtil"
  } ],
  "MT3SETB-SplineUtil": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e5594U6H0dEl4iSMo1Vaw3b", "MT3SETB-SplineUtil");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SplineUtil = exports.limit = void 0;
    function limit(n, min, max) {
      if (isNaN(n)) return min;
      void 0 === max && (max = Number.MAX_VALUE);
      if (n < min) return min;
      if (n > max) return max;
      return n;
    }
    exports.limit = limit;
    class SplineUtil {
      static isCircularArc(points, tolerance = 2) {
        if (points.length < 3) return false;
        const circle = this.fitCircle(points);
        if (!circle) return false;
        const {cx: cx, cy: cy, r: r} = circle;
        let maxError = 0;
        for (const p of points) {
          const d = Math.hypot(p.x - cx, p.y - cy);
          maxError = Math.max(maxError, Math.abs(d - r));
          if (maxError > tolerance) return false;
        }
        return true;
      }
      static fitCircle(points) {
        let sumX = 0, sumY = 0, sumX2 = 0, sumY2 = 0, sumXY = 0;
        let sumX3 = 0, sumY3 = 0, sumXY2 = 0, sumX2Y = 0;
        const n = points.length;
        for (const p of points) {
          const x = p.x, y = p.y;
          const x2 = x * x, y2 = y * y;
          sumX += x;
          sumY += y;
          sumX2 += x2;
          sumY2 += y2;
          sumXY += x * y;
          sumX3 += x2 * x;
          sumY3 += y2 * y;
          sumX2Y += x2 * y;
          sumXY2 += x * y2;
        }
        const C = n * sumX2 - sumX * sumX;
        const D = n * sumXY - sumX * sumY;
        const E = n * sumY2 - sumY * sumY;
        const G = .5 * (n * sumX3 + n * sumXY2 - sumX * (sumX2 + sumY2));
        const H = .5 * (n * sumY3 + n * sumX2Y - sumY * (sumX2 + sumY2));
        const denom = C * E - D * D;
        if (Math.abs(denom) < 1e-12) return null;
        const cx = (G * E - D * H) / denom;
        const cy = (C * H - D * G) / denom;
        const r = Math.hypot(points[0].x - cx, points[0].y - cy);
        return {
          cx: cx,
          cy: cy,
          r: r
        };
      }
      static interpolateAngle(a0, a1, t) {
        let diff = a1 - a0;
        diff > Math.PI ? diff -= 2 * Math.PI : diff < -Math.PI && (diff += 2 * Math.PI);
        return a0 + diff * t;
      }
      static lerp(a, b, t) {
        t = limit(t, 0, 1);
        return a * (1 - t) + b * t;
      }
      static Lerp(ps, dt) {
        let x = this.lerp(ps[0].x, ps[1].x, dt);
        let y = this.lerp(ps[0].y, ps[1].y, dt);
        return cc.v2(x, y);
      }
      static Spline(ps, dt) {
        var _a;
        let p, lt;
        p = Math.floor(dt * ps.length);
        lt = dt * ps.length - Math.floor(dt * ps.length);
        let tension = (null === (_a = ps[p]) || void 0 === _a ? void 0 : _a.tension) || .3;
        var newPos = this.cardinalSplineAt(this.getControlPointAt(ps, p - 1), this.getControlPointAt(ps, p - 0), this.getControlPointAt(ps, p + 1), this.getControlPointAt(ps, p + 2), tension, lt);
        return newPos;
      }
      static SplineLoop(ps, dt) {
        var _a;
        let p, lt;
        p = Math.floor(dt * ps.length);
        lt = dt * ps.length - Math.floor(dt * ps.length);
        let tension = (null === (_a = ps[p]) || void 0 === _a ? void 0 : _a.tension) || .3;
        var newPos = this.cardinalSplineAt(this.getControlPointAt(ps, (p - 1) % ps.length), this.getControlPointAt(ps, (p - 0) % ps.length), this.getControlPointAt(ps, (p + 1) % ps.length), this.getControlPointAt(ps, (p + 2) % ps.length), tension, lt);
        return newPos;
      }
      static cardinalSplineAt(p0, p1, p2, p3, tension, t) {
        var t2 = t * t;
        var t3 = t2 * t;
        var s = (1 - tension) / 2;
        var b1 = s * (2 * t2 - t3 - t);
        var b2 = s * (-t3 + t2) + (2 * t3 - 3 * t2 + 1);
        var b3 = s * (t3 - 2 * t2 + t) + (-2 * t3 + 3 * t2);
        var b4 = s * (t3 - t2);
        var x = p0.x * b1 + p1.x * b2 + p2.x * b3 + p3.x * b4;
        var y = p0.y * b1 + p1.y * b2 + p2.y * b3 + p3.y * b4;
        return cc.v2(x, y);
      }
      static Bezier(ps, dt) {
        var _a;
        let p, lt;
        p = Math.floor(dt * ps.length);
        lt = dt * ps.length - Math.floor(dt * ps.length);
        let tension = (null === (_a = ps[p]) || void 0 === _a ? void 0 : _a.tension) || .3;
        let p1 = this.getControlPointAt(ps, p - 1), p2 = this.getControlPointAt(ps, p - 0), p3 = this.getControlPointAt(ps, p + 1), p4 = this.getControlPointAt(ps, p + 2);
        let x = this.bezierAt(p1.x, p2.x, p3.x, p4.x, lt), y = this.bezierAt(p1.y, p2.y, p3.y, p4.y, lt);
        let newPos = cc.v2(x, y);
        console.log("" + newPos, lt);
        return newPos;
      }
      static BezierLoop(ps, dt) {
        var _a;
        let p, lt;
        p = Math.floor(dt * ps.length);
        lt = dt * ps.length - Math.floor(dt * ps.length);
        let tension = (null === (_a = ps[p]) || void 0 === _a ? void 0 : _a.tension) || .3;
        let p1 = this.getControlPointAt(ps, (p - 1) % ps.length), p2 = this.getControlPointAt(ps, (p - 0) % ps.length), p3 = this.getControlPointAt(ps, (p + 1) % ps.length), p4 = this.getControlPointAt(ps, (p + 2) % ps.length);
        let x = this.bezierAt(p1.x, p2.x, p3.x, p4.x, lt), y = this.bezierAt(p1.y, p2.y, p3.y, p4.y, lt);
        let newPos = cc.v2(x, y);
        console.log("" + newPos, lt);
        return newPos;
      }
      static bezierAt(a, b, c, d, t) {
        return Math.pow(1 - t, 3) * a + 3 * t * Math.pow(1 - t, 2) * b + 3 * Math.pow(t, 2) * (1 - t) * c + Math.pow(t, 3) * d;
      }
      static Spline2(ps, dt) {
        var _a;
        let p, lt;
        p = Math.floor(dt * ps.length);
        lt = dt * ps.length - Math.floor(dt * ps.length);
        let tension = (null === (_a = ps[p]) || void 0 === _a ? void 0 : _a.tension) || .3;
        var newPos = this.catmullRom(this.getControlPointAt(ps, p - 1), this.getControlPointAt(ps, p - 0), this.getControlPointAt(ps, p + 1), this.getControlPointAt(ps, p + 2), lt);
        return newPos;
      }
      static SplineLoop2(ps, dt) {
        var _a;
        let p, lt;
        p = Math.floor(dt * ps.length);
        lt = dt * ps.length - Math.floor(dt * ps.length);
        let tension = (null === (_a = ps[p]) || void 0 === _a ? void 0 : _a.tension) || .3;
        var newPos = this.catmullRom(this.getControlPointAt(ps, (p - 1) % ps.length), this.getControlPointAt(ps, (p - 0) % ps.length), this.getControlPointAt(ps, (p + 1) % ps.length), this.getControlPointAt(ps, (p + 2) % ps.length), lt);
        return newPos;
      }
      static catmullRom(p0, p1, p2, p3, t) {
        const t2 = t * t;
        const t3 = t2 * t;
        const x = .5 * (2 * p1.x + (-p0.x + p2.x) * t + (2 * p0.x - 5 * p1.x + 4 * p2.x - p3.x) * t2 + (-p0.x + 3 * p1.x - 3 * p2.x + p3.x) * t3);
        const y = .5 * (2 * p1.y + (-p0.y + p2.y) * t + (2 * p0.y - 5 * p1.y + 4 * p2.y - p3.y) * t2 + (-p0.y + 3 * p1.y - 3 * p2.y + p3.y) * t3);
        return cc.v2(x, y);
      }
      static generateTensionSpline(points) {
        var _a, _b;
        const out = [];
        const n = points.length;
        for (let i = 0; i < n - 1; i++) {
          let pPrev = null !== (_a = points[i - 1]) && void 0 !== _a ? _a : points[i];
          pPrev = cc.v3(pPrev.x, pPrev.y, pPrev.z);
          let p0 = points[i];
          p0 = cc.v3(p0.x, p0.y, p0.z);
          let p1 = points[i + 1];
          p1 = cc.v3(p1.x, p1.y, p1.z);
          let pNext = null !== (_b = points[i + 2]) && void 0 !== _b ? _b : points[i + 1];
          pNext = cc.v3(pNext.x, pNext.y, pNext.z);
          const t0 = 1 - points[i].tension;
          const t1 = 1 - points[i + 1].tension;
          const m0 = p1.sub(pPrev).mul(.5 * t0);
          const m1 = pNext.sub(p0).mul(.5 * t1);
          const segPoints = points[i].numSegments;
          for (let j = 0; j <= segPoints; j++) {
            const t = j / segPoints;
            out.push(this.hermite(p0, p1, m0, m1, t));
          }
        }
        return out;
      }
      static hermite(p0, p1, m0, m1, t) {
        const t2 = t * t;
        const t3 = t2 * t;
        const h00 = 2 * t3 - 3 * t2 + 1;
        const h10 = t3 - 2 * t2 + t;
        const h01 = -2 * t3 + 3 * t2;
        const h11 = t3 - t2;
        return cc.v3(h00 * p0.x + h10 * m0.x + h01 * p1.x + h11 * m1.x, h00 * p0.y + h10 * m0.y + h01 * p1.y + h11 * m1.y, h00 * p0.z + h10 * m0.z + h01 * p1.z + h11 * m1.z);
      }
      static getControlPointAt(controlPoints, pos) {
        var p = Math.min(controlPoints.length - 1, Math.max(pos, 0));
        return controlPoints[p];
      }
    }
    exports.SplineUtil = SplineUtil;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-SpriteShadow": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "2e522ew4fxJU6XxUUaP1XUl", "MT3SETB-SpriteShadow");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var SpriteShadow_1;
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SpriteShadow = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let SpriteShadow = SpriteShadow_1 = class SpriteShadow extends cc.Component {
      constructor() {
        super(...arguments);
        this.isEnableShadow = false;
        this.shadowCasters = [];
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.node.shadowLayer = this.node;
        MT3SETB_Comm_1.Comm.shadowCtrl = this;
      }
      start() {
        this.isEnableShadow = !MT3SETB_Comm_1.Comm.generalmenu.fishShadowOffmark.active;
        this.isEnableShadow ? this.enableShadow() : this.disableShadow();
      }
      onDestroy() {
        this.disableShadow();
      }
      enableShadow() {
        this.isEnableShadow = true;
        this.node.emit(SpriteShadow_1.SHADOW_TOGGLE_EVENT, this.isEnableShadow);
      }
      disableShadow() {
        this.isEnableShadow = false;
        this.node.emit(SpriteShadow_1.SHADOW_TOGGLE_EVENT, this.isEnableShadow);
      }
    };
    SpriteShadow.SHADOW_TOGGLE_EVENT = "SHADOW_ENABLED";
    SpriteShadow = SpriteShadow_1 = __decorate([ ccclass ], SpriteShadow);
    exports.SpriteShadow = SpriteShadow;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-StackableMoveModule": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "38761uhUz5MEIzsTo3AglgX", "MT3SETB-StackableMoveModule");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.StackableMoveModule = void 0;
    const MT3SETB_LinearMoveModule_1 = require("./MT3SETB-LinearMoveModule");
    class StackableMoveModule extends MT3SETB_LinearMoveModule_1.LinearMoveModule {
      constructor(fish) {
        super(fish);
        this.subPathInfo = null;
        this.rotateRadian = 0;
        this.rotateSpeedRad = Math.PI / 2;
        this.subModule = new MT3SETB_LinearMoveModule_1.LinearMoveModule(fish);
      }
      setSubPathData(subPathInfo) {
        this.subPathInfo = subPathInfo;
        if (this.subPathInfo) {
          this.subModule.setPath(this.subPathInfo.pathData);
          this.subModule.updatePosition(this.subPathInfo.offsetTime, this.subPathInfo.speed);
        }
      }
      init(delay) {
        super.init(delay);
      }
      reset() {
        super.reset();
        if (this.subPathInfo) {
          this.subModule.reset();
          this.subPathInfo = null;
        }
        this.rotateRadian = 0;
      }
      updatePath(dt) {
        if (!this.fish || !this.waypoints) return;
        this.t += dt;
        if (this.t < 0) return;
        let pt1 = this.updatePosition(dt, this.fish.moveSpeed * this.fish.speedRatio);
        pt1 = pt1.add(cc.v3(this.fish.offset));
        pt1 = cc.v3(this.fish.checkPathRatio(pt1));
        if (this.subPathInfo) {
          let pt2 = this.subModule.updatePosition(dt, this.subPathInfo.speed);
          let newDir = pt2.sub(this.subModule.lastPos);
          if (newDir.magSqr() > 0) {
            this.subModule.dir = newDir.normalize();
            this.subModule.lastPos = cc.v3(pt2);
          }
          if (this.subPathInfo.rotatePath) {
            this.rotateRadian += dt * this.rotateSpeedRad;
            this.rotateRadian > Math.PI && (this.rotateRadian -= 2 * Math.PI);
            pt2.rotateSelf(this.rotateRadian);
          }
          let posForRotation = pt1;
          this.subPathInfo.useAngle && (posForRotation = pt1.add(pt2));
          let dir = posForRotation.sub(this.lastPos);
          if (dir.magSqr() > 0) {
            this.dir = dir.normalize();
            this.lastPos = cc.v3(posForRotation);
          }
          this.fish.node.setPosition(pt1.add(pt2));
        } else {
          let newDir = pt1.sub(this.lastPos);
          if (newDir.magSqr() > 0) {
            this.dir = newDir.normalize();
            this.lastPos = cc.v3(pt1);
          }
          this.fish.node.setPosition(pt1);
        }
      }
      updateRotation() {
        if (!this.fish || !this.waypoints) return;
        if (this.subPathInfo && this.subPathInfo.useAngle) {
          let dir = this.subModule.dir;
          let newAngle = Math.atan2(dir.y, dir.x);
          newAngle = newAngle * (180 / Math.PI) - 90;
          newAngle = (newAngle + this.rotateRadian / Math.PI * 180) % 360;
          this.fish.node.angle = newAngle;
        } else super.updateRotation();
      }
    }
    exports.StackableMoveModule = StackableMoveModule;
    cc._RF.pop();
  }, {
    "./MT3SETB-LinearMoveModule": "MT3SETB-LinearMoveModule"
  } ],
  "MT3SETB-SwipeScreen": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e8221XHpBhKXqQ5hc7JigEO", "MT3SETB-SwipeScreen");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SwipeScreen = void 0;
    const MT3SETB_webObject_1 = require("./common/api/MT3SETB-webObject");
    const {ccclass: ccclass, property: property} = cc._decorator;
    class r {
      constructor(e, t, o, n, i, a) {
        this.name = e;
        this.height = t;
        this.width = o;
        this.ratio = n;
        this.statusHeight = i;
        this.homeHeight = a;
      }
    }
    let s = [ new r("iPhone 6.5-inch", 896, 414, 3, 44, 34), new r("iPhone 6.1-inch", 896, 414, 2, 44, 34), new r("iPhone 5.8-inch", 812, 375, 3, 44, 34), new r("iPhone 5.5-inch", 736, 414, 3, 18, 0), new r("iPhone 4.7-inch", 667, 375, 2, 20, 0), new r("iPhone 4-inch", 568, 320, 2, 20, 0), new r("iPhone 3.5-inch", 480, 320, 2, 20, 0), new r("iPhone(Legacy) & iPod Touch", 480, 320, 1, 20, 0), new r("iPad Pro 12.9-inch", 1366, 1024, 2, 20, 0), new r("iPad Pro 10.5-inch", 1112, 834, 2, 20, 0), new r("iPad 9.7-inch Retina", 1024, 768, 2, 20, 0), new r("iPad", 1024, 768, 1, 20, 0), new r("iPad Mini Retina", 1024, 768, 2, 20, 0), new r("iPad Mini", 1024, 768, 1, 20, 0) ], c = {
      tw: [ "\u6ed1\u52d5\u7121\u6548\u6642, \u8acb\u9ede\u64ca\u6b64\u8655\u9032\u5165\u904a\u6232. \u274e", "\u8acb\u89e3\u9664\u8c4e\u6392\u65b9\u5411\u9396\u5b9a, \u4e26\u5c07\u624b\u6a5f\u6c34\u5e73\u653e\u7f6e." ],
      cn: [ "\u6ed1\u52a8\u65e0\u6548\u65f6, \u8bf7\u70b9\u51fb\u6b64\u5904\u8fdb\u5165\u6e38\u620f. \u274e", "\u8bf7\u89e3\u9664\u7ad6\u6392\u65b9\u5411\u9501\u5b9a, \u5e76\u5c06\u624b\u673a\u6c34\u5e73\u653e\u7f6e." ],
      th: [ "\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e2a\u0e44\u0e25\u0e14\u0e4c\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e40\u0e01\u0e21 \u274e", "\u0e42\u0e1b\u0e23\u0e14\u0e17\u0e33\u0e01\u0e32\u0e23\u0e1b\u0e25\u0e14\u0e25\u0e47\u0e2d\u0e01\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e17\u0e34\u0e28\u0e17\u0e32\u0e07 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e17\u0e34\u0e28\u0e17\u0e32\u0e07\u0e15\u0e32\u0e21\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c\u0e44\u0e14\u0e49" ],
      vn: [ "N\u1ebfu kh\xf4ng th\u1ec3 lthao t\xe1c, h\xe3y ch\u1ea1m v\xe0o \u0111\xe2y \u0111\u1ec3 v\xe0o game. \u274e", "H\xe3y m\u1edf kh\xf3a xoay h\u01b0\u1edbng, \u0111\u1ed3ng th\u1eddi xoay ngang m\xe0n h\xecnh." ],
      id: [ "Klik di sini untuk masuk ke permainan, ketika tidak bisa di scroll. \u274e", "Silakan buka kunci posisi vertikal, dan letakkan telepon seluler secara horizontal." ],
      mm: [ "When the slide is invalid, please click here. \u274e", "Please unlock the vertical direction and place the phone horizontally." ],
      jp: [ "\u30b9\u30e9\u30a4\u30c9\u3067\u5165\u308c\u306a\u3044\u5834\u5408\u306f\u3001\u3053\u3053\u3092\u30bf\u30c3\u30d7\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \u274e", "\u5782\u76f4\u56fa\u5b9a\u3092\u89e3\u9664\u3057\u3001\u7aef\u672b\u3092\u6c34\u5e73\u65b9\u5411\u306b\u7f6e\u3044\u3066\u304f\u3060\u3055\u3044\u3002" ],
      en: [ "If swiping does not work, please tap here. \u274e", "Please unlock screen rotation and hold the phone horizontally." ]
    }, l = [ "tw", "zh-TW" ], u = [ "cn", "zh-CN" ], d = [ "en", "en-US" ], p = [ "th", "th-TH" ], h = [ "vn", "vi-VN" ], f = [ "id", "id-ID" ], m = [ "hi", "hi-IN" ], g = [ "ta", "ta-IN" ], _ = [ "mm", "my-MM" ], y = [ "jp", "ja-JP" ];
    let SwipeScreen = class SwipeScreen extends cc.Component {
      constructor() {
        super();
        this.isLandscape = false;
        this.isIOS = true;
        this.m_mask = null;
        this.m_isScrolling = false;
      }
      onLoad() {
        cc.sys.isNative || this.Init();
      }
      onDestroy() {
        if (this.m_scrollInterval) {
          clearInterval(this.m_scrollInterval);
          clearTimeout(this.m_scrollTimeOut);
          this.m_scrollInterval = null;
        }
      }
      GetDeviceName() {
        if (cc.sys.os === cc.sys.OS_IOS) {
          var e = this.GetiOSDevice();
          if (e) return e.name;
        } else if (cc.sys.os === cc.sys.OS_ANDROID) {
          var t = /Mozilla\/5.0\s*\([^\(\)]*?(Android[^\(\)]*?);\s*([^\(\)]*?)\)/g.exec(navigator.userAgent);
          if (t && t.length > 2) return t[2].split(" Build")[0];
        }
        return "unknown";
      }
      CreateHtmlTag() {
        MT3SETB_webObject_1.webObjSwipeScreenCreateHtmlTag(this);
      }
      Init() {
        var e = this, t = false;
        "undefined" != typeof LobbyData && (t = LobbyData.pwa);
        t || MT3SETB_webObject_1.webObjSwipeScreenInit(this);
      }
      SetCloseContent() {
        MT3SETB_webObject_1.webObjSwipeScreenSetCloseContent(this, c, d);
      }
      GetLang(e) {
        var t = cc.sys.localStorage.getItem("LobbyLanguage");
        if (!t || "" == t) {
          if (-1 != (t = "undefined" != typeof LobbyData ? LobbyData.url : window.location.href).indexOf("?")) for (var o = t.split("?")[1].split("&"), n = 0; n < o.length; n++) if (o[n].split("=")[0] == e) return o[n].split("=")[1];
          return d[0];
        }
        return t;
      }
      ChangeLang(e) {
        switch (e) {
         case l[1]:
          return l[0];

         case u[1]:
          return u[0];

         case p[1]:
          return p[0];

         case h[1]:
          return h[0];

         case f[1]:
          return f[0];

         case m[1]:
          return m[0];

         case g[1]:
          return g[0];

         case _[1]:
          return _[0];

         case y[1]:
          return y[0];

         default:
          return d[0];
        }
      }
      ShowMask() {
        MT3SETB_webObject_1.webObjSwipeScreenShowMask(this);
      }
      ScrollReset() {
        var e = this;
        window.scrollTo(0, 0);
        this.m_scrollTimeOut && clearTimeout(this.m_scrollTimeOut);
        this.m_scrollTimeOut = setTimeout(function() {
          window.scrollTo(0, 0);
          clearInterval(e.m_scrollInterval);
          e.m_scrollInterval = null;
        }, 250);
      }
      HideMask() {
        MT3SETB_webObject_1.webObjSwipeScreenHideMask(this);
      }
      AddGameViewMask() {
        MT3SETB_webObject_1.webObjSwipeScreenAddGameViewMask(this);
      }
      IsWebview() {
        var e = navigator.userAgent, t = new RegExp("(" + [ "WebView", "(iPhone|iPod|iPad)(?!.*Safari/)", "Android.*(wv|.0.0.0)" ].join("|") + ")", "ig");
        return Boolean(e.match(t));
      }
      IsChrome() {
        return /CriOS/.test(navigator.userAgent);
      }
      GetiOSDevice() {
        for (var e = 0, t = s; e < t.length; e++) {
          var o = t[e];
          if (screen.height === o.height && screen.width === o.width && window.devicePixelRatio === o.ratio) return o;
        }
        return null;
      }
      HasFullscreen() {
        return MT3SETB_webObject_1.webObjSwipeScreenHasFullscreen();
      }
      IsFullscreen() {
        return MT3SETB_webObject_1.webObjSwipeScreenIsFullscreen();
      }
      Fullscreen() {
        MT3SETB_webObject_1.webObjSwipeScreenFullscreen(this);
      }
    };
    __decorate([ property(cc.Boolean) ], SwipeScreen.prototype, "isLandscape", void 0);
    __decorate([ property(cc.Boolean) ], SwipeScreen.prototype, "isIOS", void 0);
    SwipeScreen = __decorate([ ccclass ], SwipeScreen);
    exports.SwipeScreen = SwipeScreen;
    cc._RF.pop();
  }, {
    "./common/api/MT3SETB-webObject": "MT3SETB-webObject"
  } ],
  "MT3SETB-SwitchImage": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "16ca8fHOudN8acppWQdds6R", "MT3SETB-SwitchImage");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SwitchImage = void 0;
    const MT3SETB_platform_1 = require("../api/MT3SETB-platform");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let SwitchImage = class SwitchImage extends cc.Component {
      constructor() {
        super();
        this.normalImage = [];
        this.switchImage_india = [];
        this.switchImage_TaDa = [];
        this.switchImage_JiliStar = [];
        this.check = null;
      }
      start() {
        var e = this;
        this.check = function() {
          if (MT3SETB_platform_1.GetApiID() > 0) {
            e.setting();
            e.unschedule(e.check);
          }
        };
        this.check();
        this.schedule(this.check, .1);
      }
      setting() {
        var e = this.normalImage;
        MT3SETB_platform_1.checkIndiaApp() ? this.switchImage_india.length > 0 && (e = this.switchImage_india) : MT3SETB_platform_1.checkTaDaVersion() ? this.switchImage_TaDa.length > 0 && (e = this.switchImage_TaDa) : MT3SETB_platform_1.checkJiliStarVersion() && this.switchImage_JiliStar.length > 0 && (e = this.switchImage_JiliStar);
        var t = this.node.getComponent(cc.Sprite);
        t && e[0] && (t.spriteFrame = e[0]);
        var o = this.node.getComponent(cc.Button);
        if (o && o.transition == cc.Button.Transition.SPRITE && e[0]) {
          o.normalSprite = e[0];
          o.pressedSprite = e[1];
          o.hoverSprite = e[2];
          o.disabledSprite = e[3];
        }
      }
    };
    __decorate([ property(cc.SpriteFrame) ], SwitchImage.prototype, "normalImage", void 0);
    __decorate([ property(cc.SpriteFrame) ], SwitchImage.prototype, "switchImage_india", void 0);
    __decorate([ property(cc.SpriteFrame) ], SwitchImage.prototype, "switchImage_TaDa", void 0);
    __decorate([ property(cc.SpriteFrame) ], SwitchImage.prototype, "switchImage_JiliStar", void 0);
    SwitchImage = __decorate([ ccclass ], SwitchImage);
    exports.SwitchImage = SwitchImage;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-platform": "MT3SETB-platform"
  } ],
  "MT3SETB-SwitchMenu": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "9498bC362tAz6r1tDM5iQis", "MT3SETB-SwitchMenu");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SwitchMenu = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_LangList_1 = require("../system/MT3SETB-LangList");
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_utils2_1 = require("../framework/framework/MT3SETB-utils2");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let SwitchMenu = class SwitchMenu extends cc.Component {
      constructor() {
        super();
        this.text = [];
        this.touch = [];
        this.finger = null;
        this.anim = null;
        this.isMenuOpen = false;
        this.themeText = null;
        this.tipText = null;
      }
      onLoad() {
        this.node.on("SwitchThemeHint", this.showFingerAnim.bind(this));
      }
      start() {
        var e = this, t = null, o = null, a = MT3SETB_LangList_1.LangList.getString(221);
        MT3SETB_LangList_1.LangList.getString(5);
        switch (MT3SETB_Comm_1.Comm.app.theme) {
         case 1:
          t = [ 283, 284, 284 ];
          o = [ "", "", a ];
          break;

         case 2:
          t = [ 284, 283, 284 ];
          o = 0 === MT3SETB_Comm_1.Comm.app.room ? [ "", "", a ] : [ a, "", "" ];
        }
        this.text[0].string = MT3SETB_utils2_1.sprintf("%s%s", MT3SETB_LangList_1.LangList.getString(t[0]), o[0]);
        this.text[1].string = MT3SETB_utils2_1.sprintf("%s%s", MT3SETB_LangList_1.LangList.getString(t[1]), o[1]);
        this.text[2].string = MT3SETB_utils2_1.sprintf("%s%s", MT3SETB_LangList_1.LangList.getString(t[2]), o[2]);
        var s = null;
        switch (MT3SETB_Comm_1.Comm.app.theme) {
         case 1:
          s = [ "Theme_1", "Theme_2", "Theme_3" ];
          break;

         case 2:
          s = 0 === MT3SETB_Comm_1.Comm.app.room ? [ "Theme_2", "Theme_1", "Theme_3" ] : [ "Theme_3", "Theme_1", "Theme_2" ];
        }
        this.touch[1].on(cc.Node.EventType.TOUCH_END, function() {
          return e.switchEvent(null, s[1], e.text[1].string, o[1]);
        });
        this.touch[2].on(cc.Node.EventType.TOUCH_END, function() {
          return e.switchEvent(null, s[2], e.text[2].string, o[2]);
        });
        this.themeText = MT3SETB_Comm_1.Comm.find("Title/BG_01/Theme_01", MT3SETB_Comm_1.Comm.node.uiLayer, cc.Label);
        this.tipText = MT3SETB_Comm_1.Comm.find("Title/BG_01/ThemeTip", MT3SETB_Comm_1.Comm.node.uiLayer, cc.Label);
        this.menuEvent(null, "Open", false);
      }
      switchEvent(e, t, o, s, c = true) {
        var l = false;
        switch (t) {
         case "Theme_1":
          MT3SETB_Comm_1.Comm.app.nextTheme = 1;
          MT3SETB_Comm_1.Comm.app.nextRoom = 0;
          l = true;
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_switch_room1);
          break;

         case "Theme_2":
          MT3SETB_Comm_1.Comm.app.nextTheme = 2;
          MT3SETB_Comm_1.Comm.app.nextRoom = 0;
          l = true;
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_switch_room2);
          break;

         case "Theme_3":
          MT3SETB_Comm_1.Comm.app.nextTheme = 2;
          MT3SETB_Comm_1.Comm.app.nextRoom = 1;
          l = true;
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_switch_room3);
        }
        l && MT3SETB_Comm_1.Comm.msgBox.setMessage_callback(2, MT3SETB_utils2_1.sprintf(MT3SETB_LangList_1.LangList.getString(18), o), function() {
          MT3SETB_Comm_1.Comm.gameMgr.leaveTable();
        });
        c;
      }
      menuEvent(e, t, o = true) {
        var n = this;
        switch (t) {
         case "Open":
          var a = false === this.isMenuOpen ? 0 : 1;
          this.anim.unscheduleAllCallbacks();
          this.anim.play(this.anim.getClips()[a].name);
          this.isMenuOpen = !this.isMenuOpen;
          this.tipText.node.active = this.isMenuOpen;
          if (this.isMenuOpen) {
            var r = 4;
            this.anim.schedule(function(e) {
              if (r <= 0) {
                n.anim.unscheduleAllCallbacks();
                n.anim.play(n.anim.getClips()[1].name);
                n.isMenuOpen = false;
                return void (n.tipText.node.active = false);
              }
              MT3SETB_Comm_1.Comm.lotteryMgr.isWelcomePageOpen || (r -= e);
            }, 0, cc.macro.REPEAT_FOREVER);
            if (this.finger.active) {
              this.finger.stopAllActions();
              this.finger.active = false;
            }
          }
        }
        o;
      }
      showFingerAnim() {
        var e = this;
        window.SwitchThemeFingerFlag || this.isMenuOpen || (window.SwitchThemeFingerFlag = true, 
        this.finger.active = true, this.finger.stopAllActions(), this.finger.runAction(cc.sequence(cc.delayTime(10), cc.callFunc(function() {
          return e.finger.active = false;
        }))));
      }
    };
    __decorate([ property([ cc.Label ]) ], SwitchMenu.prototype, "text", void 0);
    __decorate([ property([ cc.Node ]) ], SwitchMenu.prototype, "touch", void 0);
    __decorate([ property(cc.Node) ], SwitchMenu.prototype, "finger", void 0);
    __decorate([ property(cc.Animation) ], SwitchMenu.prototype, "anim", void 0);
    SwitchMenu = __decorate([ ccclass ], SwitchMenu);
    exports.SwitchMenu = SwitchMenu;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "../system/MT3SETB-LangList": "MT3SETB-LangList"
  } ],
  "MT3SETB-ThunderDragonEffect": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e19e1lY4YNL5ZsYwH/q0wP2", "MT3SETB-ThunderDragonEffect");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_random_1 = require("../framework/framework/MT3SETB-random");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_SoundConst_1 = require("./MT3SETB-SoundConst");
    const MT3SETB_Turret_1 = require("./MT3SETB-Turret");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const BASE_WIN_PERCENT = .125;
    const BASE_WIN_MIN_MUL = 50;
    const MUL_INTERVAL = 100;
    const UI_TWEEN_INTERVAL = 30;
    const DRAGON_MOVE_SECS = 5;
    const COOLDOWN_CHECK_SECS = 2.5;
    const MOVE_TO_PLAYER_SECS = 2.5;
    const SHOW_SECS = 1.5;
    const EXPLOSIONS_COLS = 5;
    const EXPLOSIONS_ROWS = 3;
    const EXPLOSIONS_X_START = -1e3;
    const EXPLOSIONS_X_INTERVAL = 500;
    const EXPLOSIONS_Y_START = -240;
    const EXPLOSIONS_Y_INTERVAL = 240;
    const EXPLOSIONS_RAND_SHIFT = 100;
    const SHAKE_AMOUNT = 16;
    const SHAKE_DURATION = .5;
    const UI_SCALE_DURATION = .25;
    const UI_SCALE_BALL = 2.5;
    const UI_SCALE_PANEL = 1.25;
    const UI_PLAYER_OFFSET = cc.v2(0, 80);
    const ANIM_DRAGON = "SWIM";
    const ANIM_LIGHTNING = "fish_jxsd";
    const ANIM_EXPLOSION = "fish_lbl_baozha";
    var State;
    (function(State) {
      State[State["DragonMove"] = 0] = "DragonMove";
      State[State["BallMoveToPlayer"] = 1] = "BallMoveToPlayer";
      State[State["Show"] = 2] = "Show";
    })(State || (State = {}));
    let ThunderDragonEffect = class ThunderDragonEffect extends cc.Component {
      constructor() {
        super(...arguments);
        this.pointsContainer = null;
        this.thunderBall = null;
        this.pointsPanel = null;
        this.pointsLabel = null;
        this.boomCoinAnim = null;
        this.lightningSpine = null;
        this.explosionPrefab = null;
        this.dragons = [];
        this.hitData = null;
        this.turret = null;
        this.startTimeMs = 0;
        this.random = null;
        this.baseWin = 0;
        this.explosionWinnings = [];
        this.totalBombTimes = 0;
        this.bombLeftTimes = 0;
        this.bombTimes = 0;
        this.timeLeft = 0;
        this.hasBomb = false;
        this.hasScaledUi = false;
        this.useSecs = 0;
        this.isMovingToPlayer = false;
        this.uiCurValue = 0;
        this.uiDestValue = 0;
        this.animTime = 0;
        this.state = State.DragonMove;
        this.newPlayerJoinedHandler = null;
      }
      initialize(fishLayerStartPos, hitData, dragon = null) {
        this.hitData = hitData;
        this.turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(this.hitData.seat);
        this.startTimeMs = Date.now();
        this.random = new MT3SETB_random_1.PseudoRandom(hitData.seed);
        this.initExplosions();
        if (null != dragon) {
          MT3SETB_Comm_1.Comm.fishMgr.playDeathFishSoundEffect(dragon.getFishNo());
          dragon.node.runAction(cc.sequence(cc.repeat(cc.sequence(cc.moveBy(.025, 15, 0), cc.moveBy(.025, -15, 0), cc.moveBy(.025, 0, 15), cc.moveBy(.025, 0, -15)), 20), cc.callFunc(() => {
            MT3SETB_Comm_1.Comm.fishMgr.delFish(dragon, false, true);
            if (cc.isValid(this, true)) {
              this.updatePlayerBalance(this.baseWin);
              let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat;
              MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, this.hitData.seat, this.baseWin, isLocalPlayer, this.hitData.bet, 0, MT3SETB_Game_1.mtfBFishNo.ThunderDragon);
            }
          })));
        }
        let animSecs = DRAGON_MOVE_SECS - this.timeLeft;
        for (let dragon of this.dragons) {
          let animTrack = dragon.setAnimation(0, ANIM_DRAGON, false);
          animTrack.trackTime = animSecs;
          dragon.node.opacity = 0;
        }
        this.pointsContainer.parent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
        if (this.bombTimes > 0) {
          this.hasScaledUi = true;
          this.thunderBall.node.scale = UI_SCALE_BALL;
          this.pointsPanel.scale = UI_SCALE_PANEL;
        }
        if (this.useSecs < 1) {
          let boomPos = MT3SETB_Comm_1.Comm.transPos3D(this.boomCoinAnim.node.parent, MT3SETB_Comm_1.Comm.node.fishLayer, fishLayerStartPos);
          this.boomCoinAnim.node.setPosition(boomPos);
          this.boomCoinAnim.node.opacity = 255;
          this.boomCoinAnim.play();
        } else this.boomCoinAnim.node.opacity = 0;
        this.lightningSpine.node.opacity = 0;
      }
      initExplosions() {
        console.warn("init thunder dragon explosion for ", this.hitData.seat);
        this.baseWin = Math.max(this.hitData.bet * BASE_WIN_MIN_MUL, Math.floor(this.hitData.coin * BASE_WIN_PERCENT));
        let explosionsWin = this.hitData.coin - this.baseWin;
        let mul = explosionsWin / this.hitData.bet;
        this.totalBombTimes = Math.ceil(mul / MUL_INTERVAL);
        this.bombLeftTimes = this.totalBombTimes;
        let winPerExplosion = Math.floor(explosionsWin / this.totalBombTimes);
        for (let i = 0; i < this.totalBombTimes; i++) {
          this.explosionWinnings.push(winPerExplosion);
          explosionsWin -= winPerExplosion;
        }
        this.explosionWinnings[this.explosionWinnings.length - 1] += explosionsWin;
        this.bombTimes = 0;
        if (this.hitData.time) {
          this.bombTimes = Math.floor(this.hitData.time / DRAGON_MOVE_SECS);
          this.bombLeftTimes -= this.bombTimes + 1;
          let totalBombDuration = DRAGON_MOVE_SECS * this.totalBombTimes;
          if (this.bombTimes < this.totalBombTimes) {
            this.state = State.DragonMove;
            this.timeLeft = DRAGON_MOVE_SECS - this.hitData.time % DRAGON_MOVE_SECS;
          } else if (this.hitData.time < totalBombDuration + MOVE_TO_PLAYER_SECS) {
            this.state = State.BallMoveToPlayer;
            this.timeLeft = totalBombDuration + MOVE_TO_PLAYER_SECS - this.hitData.time;
          } else {
            this.state = State.Show;
            this.timeLeft = totalBombDuration + MOVE_TO_PLAYER_SECS + SHOW_SECS - this.hitData.time;
          }
        }
        let winnings = 0;
        for (let i = 0; i < this.bombTimes; i++) winnings += this.explosionWinnings[i];
        this.updatePlayerBalance(winnings);
        this.uiCurValue = winnings;
        this.uiDestValue = winnings;
      }
      update(dt) {
        var _a;
        if (null == this.turret || this.turret.state == MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          this.dispose();
          return;
        }
        this.useSecs += dt;
        let timeLeft = this.timeLeft - dt;
        this.timeLeft = Math.max(0, timeLeft);
        if (0 == this.timeLeft) if (this.state == State.DragonMove) {
          this.bombLeftTimes--;
          if (this.bombLeftTimes < 0) {
            this.state = State.BallMoveToPlayer;
            this.timeLeft = MOVE_TO_PLAYER_SECS;
            for (let dragon of this.dragons) dragon.node.opacity = 0;
          } else {
            this.resetBombState(-timeLeft);
            this.resetActions();
          }
        } else if (this.state == State.BallMoveToPlayer) {
          this.state = State.Show;
          this.timeLeft = SHOW_SECS;
        } else if (this.state == State.Show) {
          let isLocalPlayer = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat;
          let winSum = this.explosionWinnings.reduce((one, two) => one + two, 0);
          MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, this.hitData.seat, winSum, isLocalPlayer, this.hitData.bet, 0, MT3SETB_Game_1.mtfBFishNo.ThunderDragon);
          this.dispose();
        }
        if (this.state == State.DragonMove && !this.hasBomb && this.timeLeft <= DRAGON_MOVE_SECS - COOLDOWN_CHECK_SECS) {
          this.hasBomb = true;
          let increment = this.explosionWinnings[this.bombTimes];
          this.doBombDamage(increment);
          MT3SETB_Comm_1.Comm.snd.playEffect(MT3SETB_SoundConst_1.EffectSound.BOMB_CATCH);
          this.uiDestValue += increment;
          this.animTime = 0;
          this.updatePlayerBalance(increment);
          this.bombTimes++;
          this.lightningSpine.node.opacity = 255;
          this.lightningSpine.setAnimation(0, ANIM_LIGHTNING, false);
          MT3SETB_Comm_1.Comm.shakeNode(MT3SETB_Comm_1.Comm.node.bgLayer, SHAKE_DURATION, SHAKE_AMOUNT, SHAKE_AMOUNT);
          let x = EXPLOSIONS_X_START;
          for (let i = 0; i < EXPLOSIONS_COLS; i++) {
            let y = EXPLOSIONS_Y_START;
            for (let j = 0; j < EXPLOSIONS_ROWS; j++) {
              let exPos = new cc.Vec2(x + this.getRandomInRange(-EXPLOSIONS_RAND_SHIFT, EXPLOSIONS_RAND_SHIFT), y + this.getRandomInRange(-EXPLOSIONS_RAND_SHIFT, EXPLOSIONS_RAND_SHIFT));
              let explosion = null === (_a = cc.instantiate(this.explosionPrefab)) || void 0 === _a ? void 0 : _a.getComponent(sp.Skeleton);
              if (explosion) {
                explosion.node.setParent(this.node);
                explosion.node.setPosition(exPos);
                explosion.setAnimation(0, ANIM_EXPLOSION, false);
                explosion.setCompleteListener(() => {
                  var _a;
                  return null === (_a = null === explosion || void 0 === explosion ? void 0 : explosion.node) || void 0 === _a ? void 0 : _a.destroy();
                });
              }
              y += EXPLOSIONS_Y_INTERVAL;
            }
            x += EXPLOSIONS_X_INTERVAL;
          }
          if (!this.hasScaledUi) {
            this.hasScaledUi = true;
            this.thunderBall.node.runAction(cc.scaleTo(UI_SCALE_DURATION, UI_SCALE_BALL));
            this.pointsPanel.runAction(cc.scaleTo(UI_SCALE_DURATION, UI_SCALE_PANEL));
          }
        }
        let showActions = this.state == State.DragonMove;
        for (let dragon of this.dragons) dragon.node.opacity = showActions ? 255 : 0;
        let offset = MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown ? UI_PLAYER_OFFSET.neg() : UI_PLAYER_OFFSET;
        let worldPos = this.turret.getRewardPosNode().convertToWorldSpaceAR(offset);
        let translatedPlayerPos = this.pointsContainer.parent.convertToNodeSpaceAR(worldPos);
        if (this.state == State.BallMoveToPlayer) {
          if (!this.isMovingToPlayer) {
            this.isMovingToPlayer = true;
            this.pointsContainer.runAction(cc.moveTo(this.timeLeft, translatedPlayerPos));
          }
        } else this.state == State.Show && this.pointsContainer.setPosition(translatedPlayerPos);
        this.updateUiValue(dt);
      }
      updateUiValue(dt) {
        if (this.uiCurValue != this.uiDestValue) {
          this.animTime += dt;
          this.animTime = Math.min(this.animTime, 1);
          let delta = (this.uiDestValue - this.uiCurValue) * cc.easing.sineOut(this.animTime);
          let nextValue = this.uiCurValue + delta;
          if (nextValue >= this.uiDestValue) {
            this.animTime = 1;
            this.uiCurValue = this.uiDestValue;
            this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.uiDestValue);
          } else this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum6(nextValue);
        } else this.pointsLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.uiCurValue);
      }
      updatePlayerBalance(increment) {
        if (this.turret && this.turret.state != MT3SETB_Turret_1.Turret.eState.NoPlayer) {
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", this.hitData.seat, -increment);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.hitData.seat);
        }
      }
      doBombDamage(maxWin) {
        let remainingWin = maxWin;
        let fishes = MT3SETB_Comm_1.Comm.fishMgr.getAllFishes(fish => MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish));
        fishes = this.random.shuffle(fishes);
        for (let fish of fishes) {
          let win = fish.odds * this.hitData.bet;
          if (remainingWin - win >= 0) {
            remainingWin -= win;
            let hitData = {
              seat: this.hitData.seat,
              bet: this.hitData.bet,
              coin: win
            };
            fish.pathEnd = true;
            fish.dying = true;
            MT3SETB_Comm_1.Comm.gameCtrl.onFishDeathPlayEffect(fish, hitData, false);
            MT3SETB_Comm_1.Comm.gameCtrl.showGetCoin(hitData.seat, fish, hitData.coin);
            MT3SETB_Comm_1.Comm.fishMgr.delFish(fish, true, false);
          }
        }
      }
      sendBombReq(maxWin) {
        let bombReq = new MT3SETB_mtf_pb_wrapper_1.mtf.BombReqData();
        bombReq.seat = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
        bombReq.bet = this.hitData.bet;
        bombReq.target = this.hitData.fishId;
        bombReq.fish = [];
        let remainingWin = maxWin;
        for (let id in MT3SETB_Comm_1.Comm.fishMgr.fishes) {
          let fish = MT3SETB_Comm_1.Comm.fishMgr.fishes[id];
          if (fish && MT3SETB_Comm_1.Comm.fishMgr.isFishOnScreen(fish) && MT3SETB_Comm_1.Comm.fishMgr.isCollateralFish(fish)) {
            let win = fish.odds * this.hitData.bet;
            if (remainingWin - win >= 0) {
              bombReq.fish.push(fish.getFishId());
              remainingWin -= win;
            }
          }
        }
        MT3SETB_Comm_1.Comm.gameMgr.bombRequest(bombReq);
      }
      onNewPlayerJoined(seat) {
        console.warn("sending notify dragon effect data to ", seat);
        let notifyData = {
          seat: seat,
          effectSeat: MT3SETB_Comm_1.Comm.gameCtrl.playerSeat,
          fishId: MT3SETB_Game_1.mtfBFishNo.ThunderDragon,
          targetPos: new MT3SETB_mtf_pb_wrapper_1.mtf.Point({
            x: 0,
            y: 0
          }),
          bet: this.hitData.bet,
          win: this.hitData.coin,
          secondsElapsed: (Date.now() - this.startTimeMs) / 1e3,
          collateralDead: []
        };
        MT3SETB_Comm_1.Comm.gameMgr.notifyCaptureProgress(notifyData);
      }
      resetBombState(dt) {
        dt = dt || 0;
        this.timeLeft = DRAGON_MOVE_SECS;
        this.hasBomb = false;
      }
      resetActions() {
        for (let dragon of this.dragons) dragon.setAnimation(0, ANIM_DRAGON, false);
      }
      getRandomInRange(minInclusive, maxInclusive) {
        return Math.random() * (maxInclusive - minInclusive + 1) + minInclusive;
      }
      dispose() {
        MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat && this.turret.removeNewPlayerJoinedListener(this.newPlayerJoinedHandler);
        this.pointsContainer.destroy();
        this.node.destroy();
      }
    };
    __decorate([ property(cc.Node) ], ThunderDragonEffect.prototype, "pointsContainer", void 0);
    __decorate([ property(cc.Animation) ], ThunderDragonEffect.prototype, "thunderBall", void 0);
    __decorate([ property(cc.Node) ], ThunderDragonEffect.prototype, "pointsPanel", void 0);
    __decorate([ property(cc.Label) ], ThunderDragonEffect.prototype, "pointsLabel", void 0);
    __decorate([ property(cc.Animation) ], ThunderDragonEffect.prototype, "boomCoinAnim", void 0);
    __decorate([ property(sp.Skeleton) ], ThunderDragonEffect.prototype, "lightningSpine", void 0);
    __decorate([ property(cc.Prefab) ], ThunderDragonEffect.prototype, "explosionPrefab", void 0);
    __decorate([ property([ sp.Skeleton ]) ], ThunderDragonEffect.prototype, "dragons", void 0);
    ThunderDragonEffect = __decorate([ ccclass ], ThunderDragonEffect);
    exports.default = ThunderDragonEffect;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../framework/framework/MT3SETB-random": "MT3SETB-random",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-SoundConst": "MT3SETB-SoundConst",
    "./MT3SETB-Turret": "MT3SETB-Turret"
  } ],
  "MT3SETB-Toast": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "7ed27Y552FInY25fAs/v81X", "MT3SETB-Toast");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Toast = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let Toast = class Toast extends cc.Component {
      constructor() {
        super();
        this.root = null;
        this.text = null;
      }
      onLoad() {
        MT3SETB_Comm_1.Comm.toast = this;
      }
      start() {
        this.hide();
      }
      setText(e, delay = 2.5, fadeOut = .5) {
        this.show();
        this.root.stopAllActions();
        this.text.string = e;
        this.root.runAction(cc.sequence(cc.delayTime(delay), cc.fadeOut(fadeOut), cc.callFunc(this.hide, this)));
      }
      show() {
        this.root.active = true;
        this.root.opacity = 255;
      }
      hide() {
        this.root.active = false;
      }
    };
    __decorate([ property(cc.Node) ], Toast.prototype, "root", void 0);
    __decorate([ property(cc.Label) ], Toast.prototype, "text", void 0);
    Toast = __decorate([ ccclass ], Toast);
    exports.Toast = Toast;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-TurretData": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "da4d5yMmyFF7oBZ0oyhM4W1", "MT3SETB-TurretData");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.TurretData = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let TurretData = class TurretData extends cc.Component {
      constructor() {
        super(...arguments);
        this.cannons = [];
        this.betBackings = [];
      }
      getBetBackingForSeat(isMainPlayer) {
        if (this.betBackings.length < 2) return;
        return isMainPlayer ? this.betBackings[0] : this.betBackings[1];
      }
    };
    __decorate([ property([ cc.Prefab ]) ], TurretData.prototype, "cannons", void 0);
    __decorate([ property([ cc.SpriteFrame ]) ], TurretData.prototype, "betBackings", void 0);
    TurretData = __decorate([ ccclass ], TurretData);
    exports.TurretData = TurretData;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-Turret": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "c18e8Ps62FMcJ9VPLx1Ro6R", "MT3SETB-Turret");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
      function adopt(value) {
        return value instanceof P ? value : new P(function(resolve) {
          resolve(value);
        });
      }
      return new (P || (P = Promise))(function(resolve, reject) {
        function fulfilled(value) {
          try {
            step(generator.next(value));
          } catch (e) {
            reject(e);
          }
        }
        function rejected(value) {
          try {
            step(generator["throw"](value));
          } catch (e) {
            reject(e);
          }
        }
        function step(result) {
          result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
        }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
      });
    };
    var Turret_1;
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Turret = exports.AUTO_TARGET_MIN_ID = exports.LaserUpdate = exports.RewardInfo = exports.GunType = void 0;
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_profile_1 = require("../common/api/MT3SETB-profile");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const {ccclass: ccclass, property: property} = cc._decorator;
    const UPSIDE_DOWN_FIRST_SEAT_INDEX = 2;
    const MAX_REWARD_DISPLAYS = 1;
    var n;
    (function(n) {
      n[n["NoPlayer"] = 0] = "NoPlayer";
      n[n["MainPlayer"] = 1] = "MainPlayer";
      n[n["OtherPlayer"] = 2] = "OtherPlayer";
    })(n || (n = {}));
    var GunType;
    (function(GunType) {
      GunType[GunType["Normal"] = 0] = "Normal";
      GunType[GunType["Lightning"] = 1] = "Lightning";
      GunType[GunType["FlameStorm"] = 2] = "FlameStorm";
      GunType[GunType["FreeDrill"] = 3] = "FreeDrill";
    })(GunType = exports.GunType || (exports.GunType = {}));
    class RewardInfo {
      constructor(maxRewardDisplays) {
        this.index = [];
        this.list = [];
        this.isUsed = [];
        for (let i = 0; i < maxRewardDisplays; i++) this.isUsed.push(null);
      }
    }
    exports.RewardInfo = RewardInfo;
    var LaserUpdate;
    (function(LaserUpdate) {
      LaserUpdate[LaserUpdate["SpeedOff"] = 2] = "SpeedOff";
      LaserUpdate[LaserUpdate["SpeedOn"] = 3] = "SpeedOn";
    })(LaserUpdate = exports.LaserUpdate || (exports.LaserUpdate = {}));
    exports.AUTO_TARGET_MIN_ID = 0;
    const CANNON_CHANGE_AMT = 30;
    const CROSSHAIR_MOVE_SPEED = 1300;
    const CROSSHAIR_ANIM_LOCK_TIME = .1;
    let Turret = Turret_1 = class Turret extends cc.Component {
      constructor() {
        super();
        this.stageCannonNode = null;
        this.uiNode = null;
        this.isEnergyGunActive = false;
        this.exchangeRateToggle = null;
        this.exchangeRateCoin = null;
        this.exchangeRateCash = null;
        this.waitingNode = null;
        this.waitingNodeText = null;
        this.coinBox = null;
        this.nameBox = null;
        this.betNum = null;
        this.energyUiNode = null;
        this.energyUiAniNode = null;
        this.energyUiTween = null;
        this.autoLockFishIds = [];
        this.resizeCbIndex = null;
        this.bankruptNode = null;
        this.lockRotationNode = null;
        this.coinNum = null;
        this.coinNumTween = null;
        this._isMovingCrosshair = false;
        this._lastCrosshairDistance = 0;
        this.effectList = [];
        this.isBankruptRevealed = false;
        this.gunType = GunType.Normal;
        this.gunMaskNode = null;
        this.savedFiringState = null;
        this.newPlayerJoinedListeners = [];
        this.uiNo = -1;
        this.ahead = null;
        this.pivot = null;
        this.boardPivot = null;
        this.coinAdd = null;
        this.betTextParent = null;
        this.betText = null;
        this.coinText = null;
        this.nameText = null;
        this.betBtnsParent = null;
        this.plusBtn = null;
        this.minusBtn = null;
        this.pivotPosBL = null;
        this.changeAnim = null;
        this.cannonAnim = null;
        this.muzzle = null;
        this.aheadPosEL = null;
        this.goldCoinPosEL = null;
        this.rewardPosNode = null;
        this.retainHint = null;
        this.drillNode = null;
        this.drillCountdown = 0;
        this.isDrillReady = false;
        this.isDrilling = false;
        this.currAvatarNo = 0;
        this.avatarTable = [];
        this.betIndex = -1;
        this.bets = [];
        this.state = 0;
        this.lockFlag = false;
        this.lockBetFlag = false;
        this.playerUsedFlag = false;
        this.lockTimer = null;
        this.rewardInfo = null;
        this.effectPointPos = [];
        this.effectList = [];
      }
      get isMovingCrosshair() {
        return this._isMovingCrosshair;
      }
      set isMovingCrosshair(value) {
        this._isMovingCrosshair = value;
      }
      get seatNo() {
        return this.uiNo - 1;
      }
      onLoad() {
        var _a;
        this.uiNo = parseInt(this.stageCannonNode.name.split("_")[1]);
        var turretNode = cc.find("Turret", this.stageCannonNode);
        this.ahead = MT3SETB_Comm_1.Comm.find("EffectPos", turretNode);
        this.pivot = MT3SETB_Comm_1.Comm.find("Cannon", turretNode);
        this.boardPivot = MT3SETB_Comm_1.Comm.find("Board/Image", turretNode);
        this.changeAnim = MT3SETB_Comm_1.Comm.find("Fx", turretNode, cc.Animation);
        this.speedUpFX = MT3SETB_Comm_1.Comm.find("Fx/Speedy", turretNode);
        this.betTextParent = MT3SETB_Comm_1.Comm.find("BetNum", this.uiNode);
        this.betText = MT3SETB_Comm_1.Comm.find("Num", this.betTextParent, cc.Label);
        this.coinText = MT3SETB_Comm_1.Comm.find("CoinNum/Num", this.uiNode, cc.Label);
        this.nameText = MT3SETB_Comm_1.Comm.find("Name/Text", this.uiNode, cc.Label);
        this.betBtnsParent = MT3SETB_Comm_1.Comm.find("BetBtn", this.uiNode);
        this.plusBtn = MT3SETB_Comm_1.Comm.find("Plus/PlusBtn", this.betBtnsParent, cc.Button);
        this.minusBtn = MT3SETB_Comm_1.Comm.find("Minus/MinusBtn", this.betBtnsParent, cc.Button);
        this.coinAdd = MT3SETB_Comm_1.Comm.find("Coin/Add", this.stageCannonNode);
        this.rewardPosNode = MT3SETB_Comm_1.Comm.find("Pos_" + this.uiNo, MT3SETB_Comm_1.Comm.node.rewardLayer);
        this.pivot.childrenCount > 0 && this.pivot.destroyAllChildren();
        this.setEffectPointPos();
        this.gunMaskNode = cc.find("Location/Arrow", this.stageCannonNode);
        this.lightningBullet = MT3SETB_Comm_1.Comm.find("Fx/LightningBullet", turretNode);
        this.lightningBulletImg = MT3SETB_Comm_1.Comm.find("Body/Image", this.lightningBullet);
        this.lightningBulletHit = null === (_a = this.lightningBullet) || void 0 === _a ? void 0 : _a.getChildByName("Hit");
        let billboardNode = cc.find("Billboard", this.stageCannonNode);
        billboardNode && (billboardNode.active = false);
        this.lockRotationNode = cc.find("Turret/AimLockAnim", this.stageCannonNode);
        this.energyUiNode = cc.find("EnergyUi", this.uiNode);
        this.energyUiAniNode = cc.find("ani", this.energyUiNode);
        this.coinNum = cc.find("CoinNum", this.uiNode);
        this.bankruptNode = cc.find("Bankrupt", this.uiNode);
        this.nameBox = cc.find("Name", this.uiNode);
        this.coinBox = cc.find("CoinBox", this.uiNode);
        this.betNum = cc.find("BetNum/Num", this.uiNode);
        this.exchangeRateToggle = cc.find("ExchangeToggle", this.uiNode);
        this.exchangeRateCoin = cc.find("ExchangeToggle/Exchange/Coin", this.uiNode);
        this.exchangeRateCash = cc.find("ExchangeToggle/Exchange/Cash", this.uiNode);
        this.waitingNode = cc.find("WaitingUI", this.uiNode);
        this.waitingNodeText = cc.find("WaitImage", this.waitingNode);
        let fishIds = MT3SETB_Comm_1.Comm.fishMgr.getAllFishIds().reverse();
        for (let key of fishIds) {
          let id = Number(key);
          !isNaN(id) && id >= exports.AUTO_TARGET_MIN_ID && this.autoLockFishIds.push(id);
        }
      }
      start() {
        this.initRewardInfo(MAX_REWARD_DISPLAYS);
        null == this.resizeCbIndex && (this.resizeCbIndex = MT3SETB_Comm_1.Comm.app.registResizeCallback(this.onResize.bind(this)));
        this.onResize();
      }
      onDestroy() {
        null != this.resizeCbIndex && MT3SETB_Comm_1.Comm.app.cancelResizeCallback(this.resizeCbIndex);
        this.resizeCbIndex = null;
      }
      update(dt) {
        if (this.seatNo != MT3SETB_Comm_1.Comm.gameCtrl.playerSeat) return;
        this.isMovingCrosshair && null == MT3SETB_Comm_1.Comm.shootMgr.lockFishNode && this.finishMovingCrosshairToFish();
        if (this.isMovingCrosshair) {
          let crosshairNode = MT3SETB_Comm_1.Comm.shootMgr.lockNode;
          let targetPos = MT3SETB_Comm_1.Comm.transPos3D(MT3SETB_Comm_1.Comm.shootMgr.aimUINode, MT3SETB_Comm_1.Comm.node.fishLayer, MT3SETB_Comm_1.Comm.shootMgr.getLockPosition(false));
          let distanceRemaining = new cc.Vec2(targetPos.x - crosshairNode.x, targetPos.y - crosshairNode.y);
          let distanceToMove = CROSSHAIR_MOVE_SPEED * dt;
          let distanceRemainingMag = distanceRemaining.mag();
          let crosshairDistance = Math.round(10 * distanceRemainingMag);
          let isReachingTarget = Math.abs(distanceRemainingMag) <= distanceToMove || crosshairDistance == this._lastCrosshairDistance;
          if (isReachingTarget) {
            this._lastCrosshairDistance = 0;
            crosshairNode.position = targetPos;
            this.finishMovingCrosshairToFish();
          } else {
            this._lastCrosshairDistance = crosshairDistance;
            let direction = distanceRemaining.normalize();
            crosshairNode.position = new cc.Vec3(crosshairNode.x + distanceToMove * direction.x, crosshairNode.y + distanceToMove * direction.y);
          }
        }
        this.isLockedOn && MT3SETB_Comm_1.Comm.shootMgr.lockFishNode && this.aimAtFishNode(MT3SETB_Comm_1.Comm.shootMgr.lockFishNode);
      }
      setAimPivot() {
        this.aheadPosEL = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, this.ahead);
        this.goldCoinPosEL = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.rewardLayer, this.pivot);
        this.pivotPosBL = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.bulletLayer, this.pivot);
        Turret_1.lowAimPosYBL = Math.min(Turret_1.lowAimPosYBL, this.pivotPosBL.y - 30);
        Turret_1.highAimPosYBL = cc.view.getDesignResolutionSize().height / 2;
        let gunMaskParent = cc.find("GunMasks", MT3SETB_Comm_1.Comm.node.playerLayer);
        let translatedPos = MT3SETB_Comm_1.Comm.transPos3D(gunMaskParent, this.gunMaskNode);
        this.gunMaskNode.setParent(gunMaskParent);
        this.gunMaskNode.position = translatedPos;
        this.gunMaskNode.angle = MT3SETB_Comm_1.Comm.node.playerLayer.angle;
      }
      isUpsideDown() {
        let isScreenFlipped = 0 != MT3SETB_Comm_1.Comm.node.playerLayer.angle;
        let seatIndex = this.seatNo;
        return isScreenFlipped && seatIndex < UPSIDE_DOWN_FIRST_SEAT_INDEX || !isScreenFlipped && seatIndex >= UPSIDE_DOWN_FIRST_SEAT_INDEX;
      }
      pauseNormalFiringState(keepGunVisible = false, keepBetVisible = false) {
        if (MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.seatNo && null == this.savedFiringState) {
          this.savedFiringState = {
            gunType: this.gunType,
            auto: this.isAutoOn,
            lock: this.isLockedOn,
            speed: this.isSpeedOn
          };
          this.toggleAuto(false);
          this.toggleLockOn(false);
          this.toggleSpeed(false);
        }
        this.toggleGun(keepGunVisible);
        this.toggleGunUi(false, keepBetVisible);
      }
      resumeNormalFiringState() {
        if (MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.seatNo && null != this.savedFiringState) {
          this.gunType = this.savedFiringState.gunType;
          this.toggleAuto(this.savedFiringState.auto);
          this.toggleLockOn(this.savedFiringState.lock);
          this.toggleSpeed(this.savedFiringState.speed);
          this.savedFiringState = null;
        }
        this.toggleGun(true);
        this.toggleGunUi(true);
      }
      toggleGun(isVisible) {
        this.pivot.active = isVisible;
      }
      toggleGunUi(isVisible, keepBetVisible = false) {
        this.toggleBetAmount(isVisible || keepBetVisible);
        if (MT3SETB_Comm_1.Comm.gameCtrl.playerSeat != this.seatNo) return;
        this.betBtnsParent.active = isVisible;
        MT3SETB_Comm_1.Comm.uiCtrl.lsGunButtons.active = isVisible;
      }
      toggleBetAmount(isVisible) {
        this.betTextParent.active = isVisible;
      }
      playLocalLockOnAnim() {
        let lockfish = MT3SETB_Comm_1.Comm.shootMgr.getLockFish();
        let lockfishId = 0;
        let lockfishTag = 0;
        if (null != MT3SETB_Comm_1.Comm.shootMgr.getLockFish()) {
          lockfishTag = lockfish.id;
          lockfishId = lockfish.no;
        }
      }
      setNonLocalLockOnAnim(fishTag, fishId) {}
      fire(aimPos, playShootAnim = true) {
        this.playerUsedFlag || (this.setLocationHint(false), this.playerUsedFlag = true), 
        this.aimAt(aimPos), playShootAnim && this.playShoot();
      }
      aimAt(e) {
        var t = e.sub(this.pivotPosBL);
        if (0 !== t.x || 0 !== t.y) {
          var vector = this.isUpsideDown() ? new cc.Vec2(0, -1) : cc.Vec2.UP;
          var o = cc.misc.radiansToDegrees(vector.signAngle(t));
          this.pivot.angle = cc.misc.clampf(o, -90, 90);
        }
      }
      playShoot() {
        if (this.cannonAnim) {
          var e = this.cannonAnim.getClips();
          e && this.cannonAnim.playAdditive(e[1].name);
        }
      }
      checkAimPos(e) {
        var t = e.clone();
        t.y = cc.misc.clampf(e.y, Turret_1.lowAimPosYBL, Turret_1.highAimPosYBL);
        return t;
      }
      setTheme(e) {
        this.bets = MT3SETB_Comm_1.Comm.agentConfig.roomList[e].bet;
        switch (e) {
         case 1:
          this.avatarTable = Array(this.bets.length);
          this.avatarTable.fill(0, 0, 9);
          this.avatarTable.fill(1, 9, 18);
          this.avatarTable.fill(2, 18);
          MT3SETB_profile_1.CheckAPIBetForMinTheme(this.bets, this.avatarTable);
          break;

         case 2:
         case 3:
         case 4:
          this.avatarTable = Array(this.bets.length);
          this.avatarTable.fill(0, 0, 5);
          this.avatarTable.fill(1, 5, 13);
          this.avatarTable.fill(2, 13);
        }
        MT3SETB_profile_1.CheckAPIBet(this.bets, this.avatarTable);
        this.betIndex = 0;
        this.showBet(this.bets[this.betIndex]);
        this.switchAvatar();
      }
      setSkinAvatar(e) {
        this.currAvatarNo = e;
        this.switchAvatar();
      }
      switchAvatar(e) {
        this.switchCannon(this.currAvatarNo);
        if (this.pivot.childrenCount > 0) {
          var o = this.pivot.children[0];
          this.muzzle = cc.find("Muzzle", o), this.cannonAnim = o.getComponent(cc.Animation), 
          this.drillNode && this.drillNode.isValid && (this.drillNode.parent = this.muzzle);
        }
        this.cannonAnim && this.playChangeGunVfx();
      }
      playChangeGunVfx() {}
      switchCannon(e) {
        this.pivot.childrenCount > 0 && MT3SETB_Comm_1.Comm.dataMgr.setTurretCannon(this.pivot.children[0]), 
        MT3SETB_Comm_1.Comm.dataMgr.getTurretCannon(e).parent = this.pivot;
        if (this.pivot.childrenCount > 0) {
          var o = this.pivot.children[0];
          this.muzzle = cc.find("Muzzle", o), this.cannonAnim = o.getComponent(cc.Animation), 
          this.drillNode && this.drillNode.isValid && (this.drillNode.parent = this.muzzle);
        }
        if (this.pivot.childrenCount > 0) {
          let cannonNode = this.pivot.children[this.pivot.childrenCount - 1];
          let bodyAnim = MT3SETB_Comm_1.Comm.find("Body", cannonNode, cc.Animation);
          null === bodyAnim || void 0 === bodyAnim ? void 0 : bodyAnim.play(`gun_${this.currAvatarNo + 1}_${this.isEnergyGunActive ? "energy" : "normal"}`);
        }
      }
      showBet(e) {
        this.setBetEnable(), this.betText.string = this.formatBetText(e), this.state === n.MainPlayer && (MT3SETB_Comm_1.Comm.lotteryMgr.changeBet(), 
        MT3SETB_Comm_1.Comm.shootMgr.isTorpedo && MT3SETB_Comm_1.Comm.uiCtrl.setTorpedoCoin(e * MT3SETB_Comm_1.Comm.shootMgr.torpedoHitCount));
      }
      fakeShowBet(e) {
        this.betText.string = this.formatBetText(e), this.setBetEnable(false);
      }
      formatBetText(bet) {
        return MT3SETB_Comm_1.Comm.getThousandsNum4(bet);
      }
      setBet(e) {
        var t = this.betIndex;
        e <= 0 && MT3SETB_Comm_1.Comm.app.theme <= 4 && (this.betIndex = cc.misc.clampf(MT3SETB_profile_1.getPresetBetIndex(), 0, this.bets.length - 1));
        for (var o = this.bets[this.betIndex], n = 0, r = this.bets.length; n < r; ++n) if (e === this.bets[n]) {
          this.betIndex = n, o = e;
          break;
        }
        this.showBet(o);
      }
      setBetEnable(isEnabled = true) {
        this.plusBtn.interactable = isEnabled;
        this.minusBtn.interactable = isEnabled;
      }
      getBetAtIndex(e) {
        return e < 0 ? (console.log("getBetAtIndex out of range=", e), this.bets[0]) : e < this.bets.length ? this.bets[e] : (console.log("getBetAtIndex out of range=", e), 
        this.bets[0]);
      }
      getBet() {
        return this.bets[this.betIndex];
      }
      addEffect(e) {
        this.effectList.push(e);
      }
      removeEffect(e) {
        let idx = 0;
        for (let effect of this.effectList) {
          if (effect == e) break;
          idx++;
        }
        this.effectList.splice(idx, 1);
      }
      clearEffects() {
        for (let effect of this.effectList) cc.isValid(effect.node, true) && effect.destroyEffect();
        this.effectList = [];
      }
      setPlayer(e) {
        switch (this.state = e, e) {
         case Turret_1.eState.NoPlayer:
          this.currAvatarNo = 0, this.setLocationHint(false), this.setWaitingDisplay(true), 
          this.hideBetBtn(true);
          break;

         case Turret_1.eState.MainPlayer:
          this.setLocationHint(true), this.setWaitingDisplay(false), this.setWeakDisplay(false), 
          this.hideBetBtn(false);
          break;

         case Turret_1.eState.OtherPlayer:
          this.setLocationHint(false), this.setWaitingDisplay(false), this.setWeakDisplay(true), 
          this.hideBetBtn(true);
        }
      }
      lock(e, t) {
        var o = this;
        void 0 === t && (t = 30), this.lockTimer && (MT3SETB_Comm_1.Comm.delTask(this.lockTimer), 
        this.lockTimer = null), e && (this.lockTimer = MT3SETB_Comm_1.Comm.runTask(t, function() {
          o.lockFlag = false, o.lockTimer = null;
        })), this.lockFlag = e;
      }
      setPlayerUsedFlag(e) {
        this.playerUsedFlag !== e && (true === e && this.setLocationHint(false), this.playerUsedFlag = e);
      }
      isLocked() {
        return this.lockFlag;
      }
      lockBet(e) {
        this.lockBetFlag = e;
      }
      isBetLocked() {
        return this.lockBetFlag;
      }
      setCoin(coinVal) {
        var _a;
        if (this.state == Turret_1.eState.NoPlayer) return;
        coinVal = this.coin = null !== (_a = null !== coinVal && void 0 !== coinVal ? coinVal : this.coin) && void 0 !== _a ? _a : 0;
        MT3SETB_Comm_1.Comm.gameCtrl.ToggleCoinView ? coinVal /= MT3SETB_Comm_1.Comm.coinRatio : coinVal = coinVal;
        this.coinText.string = MT3SETB_Comm_1.Comm.getThousandsNum6(coinVal);
        if (null == coinVal) {
          coinVal = 0;
          console.log("Error! coin may be an inavlid value!");
        }
        if (coinVal <= 0 && !this.isBankruptRevealed) {
          this.isBankruptRevealed = true;
          this.bankruptNode.active = true;
          this.scheduleOnce(() => {
            var _a;
            let redAnimation = null === (_a = this.bankruptNode) || void 0 === _a ? void 0 : _a.getComponent(cc.Animation);
            redAnimation && redAnimation.play("BankruptFade");
          }, 2);
        } else if (coinVal > 0) {
          this.isBankruptRevealed = false;
          this.bankruptNode.active = false;
        }
        if (this.state == Turret_1.eState.MainPlayer && coinVal < this.getCurBaseBet() && (this.isAutoOn || this.isSpeedOn && this.isLockedOn)) {
          this.setInsufficientMoneyPopup();
          if (this.isAutoOn) {
            this.toggleAuto(false);
            MT3SETB_Comm_1.Comm.uiCtrl.toggleLsGunButtonState("auto", false);
          }
          if (this.isSpeedOn) {
            this.toggleSpeed(false);
            MT3SETB_Comm_1.Comm.uiCtrl.toggleLsGunButtonState("jisu", false);
          }
        }
      }
      setLocationHint(isActive) {
        this.gunMaskNode.active = isActive;
        isActive && this.stageCannonNode.setSiblingIndex(this.stageCannonNode.parent.children.length - 1);
      }
      setCannonHint(isActive) {
        this.setLocationHint(false);
      }
      hideBetBtn(e) {
        var _a;
        this.plusBtn.node.parent.parent.active = !e;
        this.exchangeRateToggle.active = !e;
        let background = null === (_a = cc.find("BetNum/Backing", this.uiNode)) || void 0 === _a ? void 0 : _a.getComponent(cc.Sprite);
        let turretData = MT3SETB_Comm_1.Comm.dataMgr.turretData;
        background && turretData && (background.spriteFrame = turretData.getBetBackingForSeat(!e));
        if (!e) {
          this.coinNum.y += 10;
          this.nameBox.y += 10;
          this.coinBox.y += 10;
        }
      }
      setWeakDisplay(e) {
        this.pivot.opacity = 255;
      }
      setWaitingDisplay(isWaiting) {
        var turretNode = cc.find("Turret", this.stageCannonNode);
        this.coinBox.active = !isWaiting, this.nameBox.active = !isWaiting, this.nameBox.active = !isWaiting, 
        this.betBtnsParent.active = !isWaiting, this.coinNum.active = !isWaiting, this.betTextParent.active = !isWaiting, 
        cc.find("Block", turretNode).active = !isWaiting, cc.find("Cannon", turretNode).active = !isWaiting, 
        cc.find("Board", turretNode).active = !isWaiting;
        let waitPanel = cc.find("Billboard", this.stageCannonNode);
        for (let child of waitPanel.children) child.active = isWaiting;
        this.energyUiNode && (this.energyUiNode.active = !isWaiting);
        this.waitingNode && (this.waitingNode.active = isWaiting);
        this.bankruptNode && (this.bankruptNode.active = !isWaiting);
        if (isWaiting) {
          this.bankruptNode.y = 0;
          this.nameText.x = 0;
          this.nameText.y = 0;
          this.toggleRotatingLock(false);
          this.isSpeedOn = false;
          this.ToggleSpeedUp();
        }
      }
      hidePlayer(e) {
        var t = this.uiNo, o = cc.find("Billboard", this.stageCannonNode);
        this.setWaitingDisplay(e), true === e ? (cc.find("Waiting_" + t, o).active = false, 
        cc.find("Text_" + t, o).active = false) : this.setPlayer(this.state);
      }
      getState() {
        return this.state;
      }
      getAngle() {
        return this.pivot.angle;
      }
      getDirection() {
        let vector = this.isUpsideDown() ? new cc.Vec2(0, -1) : cc.Vec2.UP;
        return vector.rotate(cc.misc.degreesToRadians(this.pivot.angle));
      }
      getCurrentBulletNo() {
        return this.currAvatarNo;
      }
      getCurrentAvatarNo() {
        return this.currAvatarNo;
      }
      getBulletSpwanPos() {
        if (this.muzzle && this.muzzle.isValid) return MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.bulletLayer, this.muzzle);
        if (this.pivot.children.length > 0) {
          var o = this.pivot.children[0];
          this.muzzle = cc.find("Muzzle", o);
          if (this.muzzle) return MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.bulletLayer, this.muzzle);
        }
        cc.log("The muzzle is null.");
        return MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.bulletLayer, this.pivot, cc.v2(0, 120));
      }
      setDrillCountdown(e) {
        this.drillNode && this.drillNode.destroy(), e && (this.drillCountdown = 10, this.unschedule(this.updateDrillCountdown), 
        this.schedule(this.updateDrillCountdown, 0, cc.macro.REPEAT_FOREVER), e.parent = this.muzzle), 
        this.drillNode = e;
      }
      updateDrillCountdown(e) {
        this.drillCountdown > 0 ? this.isDrillReady && (this.drillCountdown -= e) : (this.drillCountdown = 0, 
        this.unschedule(this.updateDrillCountdown));
      }
      changeBet(e, t) {
        var _a;
        if (this.bets[this.betIndex] && !this.lockBetFlag) {
          if ("+" === t && !this.plusBtn.interactable) return;
          if ("-" === t && !this.minusBtn.interactable) return;
          "+" === t ? MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_bet_increase) : "-" === t && MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_bet_decrease), 
          this.playerUsedFlag || (this.setLocationHint(false), this.playerUsedFlag = true);
          var o = this.betIndex;
          this.betIndex = this.updateBetIndex("+" === t ? 1 : -1);
          null === (_a = MT3SETB_Comm_1.Comm.retainMgr) || void 0 === _a ? void 0 : _a.updateByBet(this.getBet());
          this.showBet(this.bets[this.betIndex]);
          cc.sys.localStorage.setItem("bet" + MT3SETB_Comm_1.Comm.app.theme, this.getBet().toString());
        }
      }
      updateBetIndex(amount) {
        let updatedIndex = this.betIndex + amount;
        updatedIndex >= this.bets.length ? updatedIndex -= this.bets.length : updatedIndex < 0 && (updatedIndex = this.bets.length + updatedIndex);
        return updatedIndex;
      }
      toggleLockOn(isLockedOn) {
        this.isLockedOn = isLockedOn;
        this.sendGunSettingUpdate();
        if (isLockedOn) (this.isAutoOn || this.isSpeedOn) && this.startAutoTargeting(); else {
          MT3SETB_Comm_1.Comm.shootMgr.lockFishUniqueIdPrev = -1;
          MT3SETB_Comm_1.Comm.shootMgr.lockFishUniqueId = 0;
          MT3SETB_Comm_1.Comm.shootMgr.lockFishNo = -1;
          MT3SETB_Comm_1.Comm.shootMgr.lockNode.active = false;
          MT3SETB_Comm_1.Comm.shootMgr.priorityLockFishNode = null;
          MT3SETB_Comm_1.Comm.shootMgr.lockFishNode = null;
          this.stopAutoTargeting();
          MT3SETB_Comm_1.Comm.bulletMgr.stopLaser(this.seatNo);
          this.sendLockFishUpdate(LaserUpdate.SpeedOff);
        }
        if (this.lockRotationNode) {
          this.toggleRotatingLock(isLockedOn);
          isLockedOn && null == this.savedFiringState && this.spawnLockText();
        }
      }
      toggleSpeed(isSpeedOn) {
        this.isSpeedOn = isSpeedOn;
        this.ToggleSpeedUp();
        if (isSpeedOn || this.isAutoOn) {
          if (this.isLockedOn) {
            this.startAutoTargeting();
            isSpeedOn && (this.gunType = GunType.Lightning);
          }
        } else this.stopAutoTargeting();
        if (!isSpeedOn) {
          MT3SETB_Comm_1.Comm.bulletMgr.stopLaser(this.seatNo);
          this.sendLockFishUpdate(LaserUpdate.SpeedOff);
        }
        this.sendGunSettingUpdate();
      }
      ToggleSpeedUp() {
        this.speedUpFX && (this.speedUpFX.active = this.isSpeedOn);
      }
      toggleAuto(isAutoOn) {
        this.isAutoOn = isAutoOn;
        isAutoOn || this.isSpeedOn ? this.isLockedOn && this.startAutoTargeting() : this.stopAutoTargeting();
      }
      getRewardInfo() {
        return this.rewardInfo;
      }
      initRewardInfo(maxRewardDisplays) {
        this.rewardInfo || (this.rewardInfo = new RewardInfo(maxRewardDisplays));
      }
      getRewardPosNode() {
        return this.rewardPosNode;
      }
      setEffectPointPos() {
        this.effectPointPos[0] = cc.v2(0, 0), this.effectPointPos[1] = cc.v2(-125, -10), 
        this.effectPointPos[2] = cc.v2(125, -10);
      }
      getEffectPointPos(isDefaultPos) {
        let effectPtPos = isDefaultPos ? this.effectPointPos[0] : this.effectPointPos[this.getRewardIndex()];
        MT3SETB_Comm_1.Comm.gameCtrl.isUpsideDown && this.uiNo >= 3 && (effectPtPos = cc.v2(effectPtPos.x, -effectPtPos.y));
        return effectPtPos;
      }
      getRewardIndex() {
        for (var e = this.getRewardInfo(), t = 0, o = e.isUsed.length; t < o; ++t) if (!e.isUsed[t]) return t;
        var n = 0, i = Number.MAX_VALUE;
        for (t = 0, o = e.isUsed.length; t < o; ++t) (a = e.isUsed[t]) && a.getWeight() < 4 && a.getTime() < i && (n = t, 
        i = a.getTime());
        if (i === Number.MAX_VALUE) for (t = 0, o = e.isUsed.length; t < o; ++t) {
          var a;
          (a = e.isUsed[t]) && a.getWeight() < 7 && a.getTime() < i && (n = t, i = a.getTime());
        }
        return n;
      }
      getAheadPos() {
        return this.ahead ? cc.v2(this.ahead.position) : cc.Vec2.ZERO;
      }
      showJPLockMsg(e, t) {}
      showRetainHintMsg() {}
      notifyNewPlayerJoined(seat) {
        for (let listener of this.newPlayerJoinedListeners) listener(seat);
      }
      addNewPlayerJoinedListener(listener) {
        this.newPlayerJoinedListeners.push(listener);
      }
      removeNewPlayerJoinedListener(listener) {
        let index = this.newPlayerJoinedListeners.indexOf(listener);
        index >= 0 && this.newPlayerJoinedListeners.splice(index, 1);
      }
      startAutoTargeting() {
        MT3SETB_Comm_1.Comm.shootMgr.autoMaticFishIDList = [];
        MT3SETB_Comm_1.Comm.shootMgr.autoMaticFishIDList.push(...this.autoLockFishIds);
      }
      stopAutoTargeting() {
        MT3SETB_Comm_1.Comm.shootMgr.autoMaticFishIDList = [];
      }
      sendLockFishUpdate(fishTag, fishId) {
        let notification = new MT3SETB_mtf_pb_wrapper_1.mtf.LockFishData();
        notification.seat = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
        notification.fishTag = fishTag;
        notification.fishId = fishId;
        MT3SETB_Comm_1.Comm.gameMgr.sendLockFishUpdate(notification);
      }
      sendGunSettingUpdate() {
        let notification = new MT3SETB_mtf_pb_wrapper_1.mtf.GunSettingData();
        notification.seat = MT3SETB_Comm_1.Comm.gameCtrl.playerSeat;
        notification.lock = this.isLockedOn;
        notification.speed = this.isSpeedOn;
        MT3SETB_Comm_1.Comm.gameMgr.sendGunSettingUpdate(notification);
      }
      updateNonLocalGunSetting(notification) {
        this.isLockedOn = notification.lock;
        this.toggleRotatingLock(this.isLockedOn);
        this.isSpeedOn = notification.speed;
        this.ToggleSpeedUp();
      }
      updateLaserStatus(setting) {
        switch (setting) {
         case LaserUpdate.SpeedOff:
          MT3SETB_Comm_1.Comm.bulletMgr.stopLaser(this.seatNo);
          break;

         case LaserUpdate.SpeedOn:
          break;

         default:
          console.warn(`Unhandled gun setting update value: ${setting}`);
        }
      }
      aimAtFishNode(targetFishNode) {
        let lockPos = MT3SETB_Comm_1.Comm.shootMgr.getLockPosition(false, targetFishNode);
        let aimPos = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.bulletLayer, MT3SETB_Comm_1.Comm.node.fishLayer, lockPos);
        aimPos = this.checkAimPos(aimPos);
        this.aimAt(aimPos);
      }
      showCrosshairOnFish(wasOnOtherFish) {
        return __awaiter(this, void 0, void 0, function*() {
          if (this.isLockedOn && this.isSpeedOn) {
            MT3SETB_Comm_1.Comm.shootMgr.lockNode.active = false;
            MT3SETB_Comm_1.Comm.bulletMgr.showLaser(this.seatNo, MT3SETB_Comm_1.Comm.shootMgr.lockFishUniqueId);
            return;
          }
          wasOnOtherFish ? yield this.startMovingCrosshairToFish() : yield this.setCrosshairOnFish();
        });
      }
      setCrosshairOnFish() {
        return __awaiter(this, void 0, void 0, function*() {
          let animDuration = .25;
          this.lock(true, CROSSHAIR_ANIM_LOCK_TIME);
          let crosshairNode = MT3SETB_Comm_1.Comm.shootMgr.lockNode;
          crosshairNode.scale = 10;
          yield new Promise(resolve => {
            cc.tween(crosshairNode).to(animDuration, {
              scale: 1
            }).call(resolve).start();
          });
          if (!MT3SETB_Comm_1.Comm.effectMgr.isFishWaving) {
            this.lock(false, 0);
            MT3SETB_Comm_1.Comm.shootMgr.shootCircle = 0;
          }
        });
      }
      startMovingCrosshairToFish() {
        this.isAutoOn || this.lock(true, CROSSHAIR_ANIM_LOCK_TIME);
        this._isMovingCrosshair = true;
      }
      finishMovingCrosshairToFish() {
        this._isMovingCrosshair = false;
        if (!MT3SETB_Comm_1.Comm.effectMgr.isFishWaving) {
          this.isLocked() && this.lock(false, 0);
          MT3SETB_Comm_1.Comm.shootMgr.shootCircle = 0;
        }
      }
      setUpsideDownDisplay() {
        this.coinBox.angle = 180;
        this.coinNum.angle = 180;
        this.nameBox.angle = 180;
        this.waitingNodeText.angle = 180;
        this.betNum.angle = 180;
        this.bankruptNode.angle = 180;
        this.bankruptNode.y = 90;
        this.nameText.x = -37;
        this.nameText.y = -3;
      }
      setInsufficientMoneyPopup() {
        var _a, _b;
        let noMoneyNotif = MT3SETB_Comm_1.Comm.uiCtrl.noMoneyNotif.getComponent(cc.Animation);
        let coinBoxFlash = this.coinBox.getComponent(cc.Animation);
        noMoneyNotif && !(null === (_b = noMoneyNotif.getAnimationState(null === (_a = noMoneyNotif.currentClip) || void 0 === _a ? void 0 : _a.name)) || void 0 === _b ? void 0 : _b.isPlaying) && noMoneyNotif.play("insufficient_coinpopup") && coinBoxFlash.play("coinbox_flash");
      }
      getCurBaseBet() {
        return this.bets[this.betIndex];
      }
      toggleEnergyGun(isOn) {
        this.isEnergyGunActive = isOn;
        this.switchAvatar();
        this.energyUiAniNode.active = isOn;
        if (isOn && null == this.energyUiTween) this.energyUiTween = cc.tween(this.energyUiAniNode).repeatForever(cc.tween().to(2, {}, {
          onUpdate: (_, rate) => {
            let pos = cc.v2(20, 0).rotateSelf(cc.misc.degreesToRadians(360 * -rate));
            this.energyUiAniNode.setPosition(pos);
          }
        })).start(); else if (!isOn && null != this.energyUiTween) {
          this.energyUiTween.stop();
          this.energyUiTween = null;
        }
      }
      showBalanceUpdate(fishMul, winAmount) {
        var _a;
        return __awaiter(this, void 0, void 0, function*() {
          null === (_a = this.coinNumTween) || void 0 === _a ? void 0 : _a.stop();
          this.coinNum.scale = 1;
          let turret = this;
          this.coinNumTween = cc.tween(this.coinNum).to(.1, {
            scale: 1.2
          }).to(.1, {
            scale: 1
          }).call(() => turret.coinNumTween = null).start();
        });
      }
      onResize() {}
      toggleExchange() {
        MT3SETB_Comm_1.Comm.gameCtrl.ToggleCoinView = !MT3SETB_Comm_1.Comm.gameCtrl.ToggleCoinView;
        this.exchangeRateCoin.active = !this.exchangeRateCoin.active;
        this.exchangeRateCash.active = !this.exchangeRateCoin.active;
      }
      spawnLockText() {
        let popUpLockCopy = cc.instantiate(cc.find("Lock", this.lockRotationNode));
        let skeletonLockCopy = cc.instantiate(cc.find("LockSkeleton", this.lockRotationNode));
        skeletonLockCopy.active = true;
        let popUpLockAnim = null === popUpLockCopy || void 0 === popUpLockCopy ? void 0 : popUpLockCopy.getComponent(cc.Animation);
        let skeletonLockAnim = null === skeletonLockCopy || void 0 === skeletonLockCopy ? void 0 : skeletonLockCopy.getComponent(sp.Skeleton);
        let skeletonParent = cc.find("SkeletonParent", this.lockRotationNode);
        let popUpParent = cc.find("PopUpParent", this.lockRotationNode);
        skeletonParent.addChild(skeletonLockCopy);
        popUpParent.addChild(popUpLockCopy);
        popUpLockAnim && popUpLockAnim.play();
        skeletonLockAnim && skeletonLockAnim.setAnimation(0, "fish_suoding", false);
        popUpLockAnim.once("finished", function() {
          for (let i = 0; i < popUpParent.children.length - 2; i++) {
            popUpParent.removeChild(popUpParent.children[i]);
            popUpParent.children[i].destroy();
          }
          for (let i = 0; i < skeletonParent.children.length - 2; i++) {
            skeletonParent.removeChild(skeletonParent.children[i]);
            skeletonParent.children[i].destroy();
          }
        });
      }
      toggleRotatingLock(isLock) {
        let rotatingLock = cc.find("RotatingLock", this.lockRotationNode);
        rotatingLock.active = isLock;
      }
    };
    Turret.eState = n;
    Turret.lowAimPosYBL = Number.MAX_SAFE_INTEGER;
    Turret.highAimPosYBL = Number.MIN_SAFE_INTEGER;
    __decorate([ property(cc.Node) ], Turret.prototype, "stageCannonNode", void 0);
    __decorate([ property(cc.Node) ], Turret.prototype, "uiNode", void 0);
    Turret = Turret_1 = __decorate([ ccclass ], Turret);
    exports.Turret = Turret;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../common/api/MT3SETB-profile": "MT3SETB-profile",
    "../common/api/MT3SETB-track": "MT3SETB-track"
  } ],
  "MT3SETB-TweenManager": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "73655/aEYJNKrsC6MdFK2Pz", "MT3SETB-TweenManager");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.tweenManager = void 0;
    class CTweenManager {
      init() {
        this.reset();
      }
      reset() {}
      Linear(type, t, b, c, d) {
        let result = 0;
        switch (type) {
         case "easeNone":
         case "in":
         case "out":
         case "easeInOut":
          result = c * t / d + b;
        }
        return result;
      }
      Expo(type, t, b, c, d) {
        let result = 0;
        switch (type) {
         case "in":
          result = 0 == t ? b : c * Math.pow(2, 10 * (t / d - 1)) + b - .001 * c;
          break;

         case "out":
          result = t == d ? b + c : c * (1 - Math.pow(2, -10 * t / d)) + b;
          break;

         case "easeInOut":
          0 == t && (result = b);
          t == d && (result = b + c);
          (t /= .5 * d) < 1 && (result = .5 * c * Math.pow(2, 10 * (t - 1)) + b);
          result = .5 * c * (2 - Math.pow(2, -10 * --t)) + b;
        }
        return result;
      }
      Sine(type, t, b, c, d) {
        let result = 0;
        let _HALF_PI = .5 * Math.PI;
        switch (type) {
         case "in":
          result = -c * Math.cos(t / d * _HALF_PI) + c + b;
          break;

         case "out":
          result = c * Math.sin(t / d * _HALF_PI) + b;
          break;

         case "easeInOut":
          result = .5 * -c * (Math.cos(Math.PI * t / d) - 1) + b;
        }
        return result;
      }
      Call(functionName, easeType, t, b, c, d) {
        switch (functionName) {
         case "linear":
          return this.Linear(easeType, t, b, c, d);

         case "sine":
          return this.Sine(easeType, t, b, c, d);

         case "expo":
          return this.Expo(easeType, t, b, c, d);

         default:
          return 0;
        }
      }
    }
    exports.tweenManager = new CTweenManager();
    cc._RF.pop();
  }, {} ],
  "MT3SETB-UICtrl": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "f7428V/PNZDmbC52L+pykbA", "MT3SETB-UICtrl");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.UICtrl = void 0;
    const MT3SETB_DepositBtn_1 = require("../../res/Common/prefeb/DepositBtn/MT3SETB-DepositBtn");
    const MT3SETB_FreeBulletMgr_1 = require("../../res/Common/script/MT3SETB-FreeBulletMgr");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_IframeCommandManager_1 = require("../common/api/MT3SETB-IframeCommandManager");
    const MT3SETB_language_1 = require("../common/api/MT3SETB-language");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const MT3SETB_promotion_1 = require("../common/api/MT3SETB-promotion");
    const MT3SETB_track_1 = require("../common/api/MT3SETB-track");
    const MT3SETB_WaterGameMgr_1 = require("./MT3SETB-WaterGameMgr");
    const MT3SETB_glue_1 = __importDefault(require("../common/api/MT3SETB-glue"));
    const MT3SETB_WebPage_1 = require("../system/MT3SETB-WebPage");
    const MT3SETB_profile_1 = require("../common/api/MT3SETB-profile");
    const MT3SETB_ui_1 = require("../common/api/MT3SETB-ui");
    const MT3SETB_utils2_1 = require("../framework/framework/MT3SETB-utils2");
    const MT3SETB_mtf_pb_wrapper_1 = require("../common/api/MT3SETB-mtf_pb_wrapper");
    const MT3SETB_InGamePanelLS_1 = __importDefault(require("./MT3SETB-InGamePanelLS"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let UICtrl = class UICtrl extends cc.Component {
      constructor() {
        super();
        this.toolUIAnim = null;
        this.toolButton = null;
        this.toolRedPoint = null;
        this.gameBtn = null;
        this.gameFont = null;
        this.HomeButton = null;
        this.HomeFont = null;
        this.backpackNode = null;
        this.toolJpBtn = null;
        this.exchangeBtn = null;
        this.exchangeLogo = null;
        this.exchangeRed = null;
        this.promotionBtn = null;
        this.depositBtn = null;
        this.fishRatePanel = null;
        this.iconsPanel = null;
        this.noMoneyNotif = null;
        this.isLeaving = false;
        this.isIconsUIOpen = false;
        this.isToolUIOpen = false;
        this.checkToolUIOpen = null;
        this.toolUIFrames = null;
        this.isShootTypeBtnLock = false;
        this.isBulletTypeBtnLock = false;
        this.freezeCD = 14.5;
        this.freezeCDTimer = 0;
        this.freezeCost = 30;
        this.iframeCommonIdx = 0;
      }
      start() {
        var e = this;
        MT3SETB_Comm_1.Comm.uiCtrl = this;
        this.toolUIFrames = MT3SETB_Comm_1.Comm.dataMgr.otherData.toolUIFrames;
        MT3SETB_glue_1.default.uiCtrl_checkToolRedPoint = function() {
          return e.checkToolRedPoint();
        };
        this.iframeCommonIdx = MT3SETB_IframeCommandManager_1.iframeCommandManager.AddCb({
          StopAutoCb: function() {
            MT3SETB_Comm_1.Comm.shootMgr.isAiming && e.toolEvent(null, "Aim", false);
            (MT3SETB_Comm_1.Comm.shootMgr.isAutoMatic || MT3SETB_Comm_1.Comm.shootMgr.isAuto) && e.toolEvent(null, "AutoMatic", false);
          }
        });
        this.lsGunButtons = cc.find("LSItemPanel/right/moreRoot/list", MT3SETB_Comm_1.Comm.node.buttonLayer);
        this.lsIconButtonAnim = this.iconsPanel.getComponent(cc.Animation);
      }
      update(e) {}
      onDestroy() {
        MT3SETB_IframeCommandManager_1.iframeCommandManager.DelCb(this.iframeCommonIdx);
      }
      toolEvent(e, t, o = true) {
        var i = this;
        switch (t) {
         case "Setting":
          this.settingOnClick();
          break;

         case "FishRate":
          this.fishRateOnClick();
          break;

         case "FishCount":
          this.fishCountOnClick();
          break;

         case "More":
          this.iconsOnClick();
          break;

         case "Menu":
          this.menuOnClick();
          break;

         case "Report":
          this.reportOnClick();
          break;

         case "Sound":
          this.soundOnClick();
          break;

         case "Exit":
          this.exitOnClick();
          break;

         case "Auto":
         case "Aim":
         case "Torpedo":
         case "AutoMatic":
         case "LsAim":
         case "LsSpeed":
         case "LsAutoMatic":
          this.switchShootState(t);
          break;

         case "Banner":
          this.showBanner();
          break;

         case "Recommend":
         case "ReWater":
          break;

         case "Home":
          var r = MT3SETB_platform_1.GetHomeUrl();
          1 != MT3SETB_platform_1.GetLobbyMode() || MT3SETB_Comm_1.Comm.app.isDisconnection ? 2 == MT3SETB_platform_1.GetLobbyMode() && "" != r ? (MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_LOGOUT, null), 
          window.top == window.self ? window.location.href = r : top.location.href = r, MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_changeGameConfirm, r)) : 3 == MT3SETB_platform_1.GetLobbyMode() ? window.parent.postMessage({
            name: "closed",
            sender: "game"
          }, "*") : 4 == MT3SETB_platform_1.GetLobbyMode() ? (MT3SETB_Comm_1.Comm.app.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_LOGOUT, null), 
          window.location.href = r, MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_changeGameConfirm, r)) : (window.opener = null, 
          window.open("", "_self", ""), window.close(), window.open("", "_top", ""), window.top.close(), 
          window.location.href = "about:blank", window.close()) : (MT3SETB_Comm_1.Comm.app.transferRequest(80), 
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_changeGameConfirm, "80"));
          break;

         case "Freeze":
          if (this.freezeCDTimer > 0) return;
          if (MT3SETB_WaterGameMgr_1.WaterGameMgr.showingGame) return;
          if (MT3SETB_Comm_1.Comm.bankSys.getClientCoin(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat()) < this.freezeCost) return void MT3SETB_Comm_1.Comm.msgBox.setMessage(1, 9);
          var u = cc.sys.localStorage.getItem("UseFreezeByCoin" + MT3SETB_platform_1.GetGameID());
          if (u && "" != u) {
            MT3SETB_Comm_1.Comm.gameMgr.useFreeze();
            this.freezeCDTimer = this.freezeCD;
          } else {
            MT3SETB_Comm_1.Comm.msgBox.toggleTxt.string = MT3SETB_language_1.GetLanguage(1035);
            MT3SETB_Comm_1.Comm.msgBox.setMessage_callback(5, MT3SETB_utils2_1.sprintf(MT3SETB_language_1.GetLanguage(1034), MT3SETB_Comm_1.Comm.getThousandsNum(this.freezeCost * MT3SETB_Comm_1.Comm.coinRatio)), function() {
              MT3SETB_Comm_1.Comm.msgBox.toggleBtn.isChecked && cc.sys.localStorage.setItem("UseFreezeByCoin" + MT3SETB_platform_1.GetGameID(), "asked");
              MT3SETB_Comm_1.Comm.gameMgr.useFreeze();
              i.freezeCDTimer = i.freezeCD;
            });
          }
          break;

         case "exchange":
          MT3SETB_Comm_1.Comm.commonTransfer.showExchangeUI();
          break;

         default:
          cc.log("toolEvent case is not found, name = " + t + ".");
        }
      }
      settingOnClick() {
        MT3SETB_Comm_1.Comm.setting.show();
      }
      fishRateOnClick() {
        this.fishRatePanel.show();
      }
      fishCountOnClick() {
        MT3SETB_Comm_1.Comm.fishCount.show();
      }
      iconsOnClick() {
        this.isIconsUIOpen ? this.lsIconButtonAnim.play("btns_more_out_amin") : this.lsIconButtonAnim.play("btns_more_in_amin");
        this.isIconsUIOpen = !this.isIconsUIOpen;
      }
      isToolOpen() {
        return this.isToolUIOpen;
      }
      menuOnClick() {
        MT3SETB_Comm_1.Comm.fishmenu.show();
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_lobby_paytableOn);
      }
      reportOnClick() {
        if (MT3SETB_Comm_1.Comm.app.bDemo) MT3SETB_Comm_1.Comm.msgBox.setMessage(99, 260); else {
          var e = MT3SETB_platform_1.GetOfficialUrl();
          e.match("%s") || e.match("undefined") || (cc.sys.isNative ? e += "&device=mobileapp&zoomstyle=app&" : MT3SETB_Comm_1.Comm.app.getLobbyID() > 0 && (e += "&device=webapp&zoomstyle=webapp&"), 
          MT3SETB_platform_1.GetLobbyHM() && (e += "gp=true&"), cc.find("Report", MT3SETB_Comm_1.Comm.node.uiLayer).getComponent(MT3SETB_WebPage_1.WebPage).setUrl(e), 
          cc.find("Report", MT3SETB_Comm_1.Comm.node.uiLayer).getComponent(MT3SETB_WebPage_1.WebPage).show());
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_lobby_ReportOn, e);
        }
      }
      hideReport() {
        cc.find("Report", MT3SETB_Comm_1.Comm.node.uiLayer).getComponent(MT3SETB_WebPage_1.WebPage).close();
      }
      soundOnClick() {
        if (MT3SETB_Comm_1.Comm.snd.isMusicOpen()) {
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_tool_soundOn);
          MT3SETB_Comm_1.Comm.snd.closeBackgroundMusic();
          MT3SETB_Comm_1.Comm.snd.closeEffect();
        } else {
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_tool_soundOff);
          MT3SETB_Comm_1.Comm.snd.setMute(false);
          MT3SETB_Comm_1.Comm.snd.openBackgroundMusic();
          MT3SETB_Comm_1.Comm.snd.openEffect();
        }
      }
      exitOnClick() {
        if (!this.isLeaving) {
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_tool_leave);
          MT3SETB_Comm_1.Comm.gameMgr.leaveTable();
          this.isLeaving = true;
        }
      }
      initAllState() {
        var e = this;
        [ "Torpedo", "Aim", "AutoMatic" ].forEach(function(t) {
          e.switchChipState(t, false);
        });
      }
      switchChipState(e, t) {
        var o = cc.find("ItemPanel/Label/" + e, MT3SETB_Comm_1.Comm.node.buttonLayer), n = cc.find("ItemPanel/Button/" + e, MT3SETB_Comm_1.Comm.node.buttonLayer), i = n.getComponent(cc.Animation);
        o.scale = t ? 1.1 : 1;
        n.scale = t ? 1.1 : 1;
        if (t) {
          var r = i.currentClip;
          r && i.getAnimationState(r.name).isPlaying || i.play();
        } else {
          i.stop();
          n.children.forEach(function(e) {
            return e.active = false;
          });
        }
      }
      switchShootState(e) {
        var t = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        if (t) switch (e) {
         case "Aim":
          t.setPlayerUsedFlag(true);
          if (this.isShootTypeBtnLock) return void (MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat()] && MT3SETB_Comm_1.Comm.msgBox.setMessage(99, MT3SETB_language_1.GetLanguage(1042)));
          if (MT3SETB_Comm_1.Comm.shootMgr.isAutoMatic) {
            this.switchChipState("AutoMatic", false);
            MT3SETB_Comm_1.Comm.uiCtrl.setTorpedoCoin(0);
            MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("AutoMaticOff");
          }
          if (MT3SETB_Comm_1.Comm.shootMgr.isAiming) {
            this.switchChipState("Aim", false);
            MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("AimingOff");
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fire_lockOff);
          } else {
            this.switchChipState(e, true);
            MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("AimingOn");
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_fire_lockOn);
          }
          break;

         case "Torpedo":
          t.setPlayerUsedFlag(true);
          if (this.isBulletTypeBtnLock) return void (MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat()] && MT3SETB_Comm_1.Comm.msgBox.setMessage(99, MT3SETB_language_1.GetLanguage(1042)));
          if (MT3SETB_Comm_1.Comm.shootMgr.isAuto) {
            this.switchChipState("AutoMatic", false);
            MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("AutoMaticOff");
          }
          if (MT3SETB_Comm_1.Comm.shootMgr.isTorpedo) {
            this.switchChipState("Torpedo", false);
            MT3SETB_Comm_1.Comm.uiCtrl.setTorpedoCoin(0);
            MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("TorpedoOff");
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_TorpedoOff);
          } else {
            this.switchChipState(e, true);
            this.setTorpedoCoin(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().getBet() * MT3SETB_Comm_1.Comm.shootMgr.torpedoHitCount);
            MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("TorpedoOn");
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_TorpedoOn);
          }
          break;

         case "AutoMatic":
          t.setPlayerUsedFlag(true);
          if (this.isShootTypeBtnLock) return void (MT3SETB_FreeBulletMgr_1.FreeBulletMgr.showingFreeGame[MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat()] && MT3SETB_Comm_1.Comm.msgBox.setMessage(99, MT3SETB_language_1.GetLanguage(1042)));
          if (MT3SETB_Comm_1.Comm.shootMgr.isAiming) {
            this.switchChipState("Aim", false);
            MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("AimingOff");
          }
          if (MT3SETB_Comm_1.Comm.shootMgr.isTorpedo) {
            this.switchChipState("Torpedo", false);
            MT3SETB_Comm_1.Comm.uiCtrl.setTorpedoCoin(0);
            MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("TorpedoOff");
          }
          if (MT3SETB_Comm_1.Comm.shootMgr.isAutoMatic) {
            this.switchChipState("AutoMatic", false);
            MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("AutoMaticOff");
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_AutoMaticOff);
          } else {
            MT3SETB_Comm_1.Comm.shootMgr.setButtonSwitch("AutoMaticOn");
            MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_AutoMaticOn);
          }
          break;

         case "LsAim":
          if (t.isLockedOn) {
            this.toggleLsGunButtonState("lock", false);
            t.toggleLockOn(false);
          } else {
            this.toggleLsGunButtonState("lock", true);
            t.toggleLockOn(true);
          }
          break;

         case "LsSpeed":
          if (t.isSpeedOn) {
            t.toggleSpeed(false);
            this.toggleLsGunButtonState("jisu", false);
          } else {
            t.toggleSpeed(true);
            this.toggleLsGunButtonState("jisu", true);
          }
          break;

         case "LsAutoMatic":
          t.setPlayerUsedFlag(true);
          if (t.isAutoOn) {
            t.toggleAuto(false);
            this.toggleLsGunButtonState("auto", false);
          } else {
            let mainTurret = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
            if (null != mainTurret && MT3SETB_Comm_1.Comm.bankSys.getClientCoin(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat()) < mainTurret.getCurBaseBet()) {
              mainTurret.setInsufficientMoneyPopup();
              t.toggleAuto(false);
              t.toggleSpeed(false);
              this.toggleLsGunButtonState("auto", false);
              this.toggleLsGunButtonState("jisu", false);
              return;
            }
            t.toggleAuto(true);
            this.toggleLsGunButtonState("auto", true);
          }
        }
      }
      toggleLsGunButtonState(buttonName, isOn) {
        let deco = [ cc.find(`${buttonName}/activebg`, this.lsGunButtons), cc.find(`${buttonName}/active`, this.lsGunButtons) ];
        for (let node of deco) node && (node.opacity = isOn ? 255 : 0);
      }
      cancelAllButton() {
        MT3SETB_Comm_1.Comm.shootMgr.isAiming && this.switchShootState("Aim");
        MT3SETB_Comm_1.Comm.shootMgr.isAutoMatic && this.switchShootState("AutoMatic");
        MT3SETB_Comm_1.Comm.shootMgr.isTorpedo && this.switchShootState("Torpedo");
      }
      setShootCount(e) {}
      setTorpedoCoin(e) {}
      showRedDot(e) {}
      hideTABtn(e) {
        var t = MT3SETB_Comm_1.Comm.node.buttonLayer.getChildByName("ItemPanel"), o = e ? 100 : 255;
        t.getChildByName("Button").getChildByName("Torpedo").opacity = o;
        t.getChildByName("Button").getChildByName("Torpedo").getComponent(cc.Button).interactable = !e;
        t.getChildByName("Button").getChildByName("AutoMatic").opacity = o;
        t.getChildByName("Button").getChildByName("AutoMatic").getComponent(cc.Button).interactable = !e;
        t.getChildByName("Button").getChildByName("Aim").opacity = o;
        t.getChildByName("Button").getChildByName("Aim").getComponent(cc.Button).interactable = !e;
        t.getChildByName("LabelImg").getChildByName("Torpedo").opacity = o;
        t.getChildByName("LabelImg").getChildByName("AutoMatic").opacity = o;
        t.getChildByName("LabelImg").getChildByName("Aim").opacity = o;
      }
      checkToolRedPoint() {}
      updateFreezeNum() {}
      showBanner(e = false) {
        var t = this;
        var o = MT3SETB_profile_1.GetBanner();
        if (o.length > 0) if (e) this.showActivityBanner(o[0]); else {
          var n = 0, i = function() {
            if (o[n]) {
              t.showActivityBanner(o[n], function() {
                i();
              });
              n++;
            } else t.showRedenvelopeBanner();
          };
          i();
        } else this.showRedenvelopeBanner();
      }
      showRedenvelopeBanner(e) {
        MT3SETB_ui_1.ShowUIByOrder(MT3SETB_ui_1.UIType.Welcome, function() {
          var t = MT3SETB_Comm_1.Comm.dataMgr.getBannerNode(0);
          t.parent = cc.find("Banner", MT3SETB_Comm_1.Comm.node.uiLayer);
          t.getChildByName("black").on("click", function() {
            MT3SETB_ui_1.CloseUIByOrder(MT3SETB_ui_1.UIType.Welcome, function() {
              t.destroy();
              e && e();
            });
          });
          t.runAction(cc.sequence(cc.delayTime(10), cc.callFunc(function() {
            t.getChildByName("black").emit("click");
          })));
          var o = MT3SETB_platform_1.GetGameID(), i = new Date(), r = i.getUTCFullYear(), s = i.getUTCMonth(), u = `${r}${s}${l}`;
          cc.sys.localStorage.setItem("redBanner" + o, u);
          MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_redenvelope_banner);
        });
      }
      showActivityBanner(e, t) {
        MT3SETB_ui_1.ShowUIByOrder(MT3SETB_ui_1.UIType.ActiveBanner, function() {
          var o = MT3SETB_Comm_1.Comm.dataMgr.getBannerNode(1);
          o.parent = cc.find("Banner", MT3SETB_Comm_1.Comm.node.uiLayer);
          o.getChildByName("black").on("click", function() {
            MT3SETB_ui_1.CloseUIByOrder(MT3SETB_ui_1.UIType.ActiveBanner, function() {
              o.destroy();
              t && t();
            });
          });
          o.runAction(cc.sequence(cc.delayTime(10), cc.callFunc(function() {
            o.getChildByName("black").emit("click");
          })));
          cc.assetManager.loadRemote(e.image, {
            maxRetryCount: 0
          }, function(t, n) {
            null == t ? o.isValid && (o.getChildByName("Bg").getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(n)) : cc.assetManager.loadRemote(e.image_default, function(e, t) {
              null == e && o.isValid && (o.getChildByName("Bg").getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(t));
            });
          });
        });
      }
      showExchangeLogo() {
        this.exchangeBtn.active = true;
      }
      checkExchangeRed() {
        var e = MT3SETB_Comm_1.Comm.commonTransfer.checkExchangeRed();
        this.exchangeRed.active = e;
        return e;
      }
      showPromotionBtn() {
        var e = MT3SETB_promotion_1.HasPromotionData();
        this.promotionBtn.active = e && !MT3SETB_platform_1.GetLobbyHM();
      }
    };
    __decorate([ property(cc.Animation) ], UICtrl.prototype, "toolUIAnim", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "toolButton", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "toolRedPoint", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "gameBtn", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "gameFont", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "HomeButton", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "HomeFont", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "backpackNode", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "toolJpBtn", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "exchangeBtn", void 0);
    __decorate([ property(cc.Sprite) ], UICtrl.prototype, "exchangeLogo", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "exchangeRed", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "promotionBtn", void 0);
    __decorate([ property(MT3SETB_DepositBtn_1.DepositBtn) ], UICtrl.prototype, "depositBtn", void 0);
    __decorate([ property(MT3SETB_InGamePanelLS_1.default) ], UICtrl.prototype, "fishRatePanel", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "iconsPanel", void 0);
    __decorate([ property(cc.Node) ], UICtrl.prototype, "noMoneyNotif", void 0);
    UICtrl = __decorate([ ccclass ], UICtrl);
    exports.UICtrl = UICtrl;
    cc._RF.pop();
  }, {
    "../../res/Common/prefeb/DepositBtn/MT3SETB-DepositBtn": "MT3SETB-DepositBtn",
    "../../res/Common/script/MT3SETB-FreeBulletMgr": "MT3SETB-FreeBulletMgr",
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-IframeCommandManager": "MT3SETB-IframeCommandManager",
    "../common/api/MT3SETB-glue": "MT3SETB-glue",
    "../common/api/MT3SETB-language": "MT3SETB-language",
    "../common/api/MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../common/api/MT3SETB-profile": "MT3SETB-profile",
    "../common/api/MT3SETB-promotion": "MT3SETB-promotion",
    "../common/api/MT3SETB-track": "MT3SETB-track",
    "../common/api/MT3SETB-ui": "MT3SETB-ui",
    "../framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "../system/MT3SETB-WebPage": "MT3SETB-WebPage",
    "./MT3SETB-InGamePanelLS": "MT3SETB-InGamePanelLS",
    "./MT3SETB-WaterGameMgr": "MT3SETB-WaterGameMgr"
  } ],
  "MT3SETB-UncleCatBoard": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "03807HgeEVNzagyvSVj26Vb", "MT3SETB-UncleCatBoard");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_UncleCatShell_1 = __importDefault(require("./MT3SETB-UncleCatShell"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    const DEFAULT_LOCALE = "en";
    const ROUNDS_MIN = 3;
    const ROUNDS_MAX = 6;
    const TIMEOUT = 8;
    const FINGER_POS_OFFSET = new cc.Vec2(45, -70);
    const ANIM_START_NOTICE = "fish_cat_6add1";
    const ANIM_START_GAME = "fish_cat_start";
    const BGM_BOARD = "OneOutOfSix_BG";
    const SFX_GAME_DECLARE = "MiniGame_Declare";
    const SFX_ADD_ROUND = "OneOutOfSix_AddRound";
    const SFX_SHELL_CLOSE = "OneOutOfSix_ShellClose";
    const SFX_COUNTDOWN = "OneOutOfSix_Countdown";
    const SFX_SHELL_OPEN = "OneOutOfSix_ShellOpen";
    const SFX_GET_COIN = "OneOutOfSix_GetCoin";
    const SFX_GET_SNAKE = "OneOutOfSix_GetSnake";
    const SFX_END = "PK_game_end";
    let UncleCatBoard = class UncleCatBoard extends cc.Component {
      constructor() {
        super(...arguments);
        this.startNoticeSpine = null;
        this.startNoticeText = null;
        this.backgroundNode = null;
        this.boardNode = null;
        this.boardScaler = null;
        this.tipNode = null;
        this.startGameSpine = null;
        this.startGameText = null;
        this.endGameSprite = null;
        this.timerLabel = null;
        this.roundLabel = null;
        this.goldLabel = null;
        this.goldImg = null;
        this.goldTrail = null;
        this.goldSparkle = null;
        this.fingerOne = null;
        this.fingerTwo = null;
        this.shells = [];
        this.hitData = null;
        this.turret = null;
        this.lastBgmVol = 1;
        this.totalRounds = 0;
        this.rounds = 0;
        this.awards = [];
        this.time = 0;
        this.coin = 0;
        this.timerAction = null;
      }
      initialize(hitData) {
        this.hitData = hitData;
        this.turret = MT3SETB_Comm_1.Comm.gameCtrl.getTurret(hitData.seat);
        this.node.setParent(cc.director.getScene());
        this.node.setSiblingIndex(MT3SETB_Comm_1.Comm.msgBox.node.getSiblingIndex());
        let screenSize = cc.view.getVisibleSize();
        this.backgroundNode.setContentSize(screenSize);
        (this.boardScaler.width > screenSize.width || this.boardScaler.height > screenSize.height) && (screenSize.width >= screenSize.height ? this.boardScaler.scale = screenSize.height / this.boardScaler.height : this.boardScaler.scale = screenSize.width / this.boardScaler.width);
        this.boardNode.scale = 0;
        this.tipNode.scale = 0;
        this.startGameText.node.opacity = 0;
        this.endGameSprite.node.scale = 0;
        this.endGameSprite.node.opacity = 0;
        this.goldLabel.string = "0";
        this.goldTrail.node.active = false;
        this.goldSparkle.node.active = false;
        for (let shell of this.shells) shell.node.active = false;
        this.totalRounds = this.getRandomIntRange(ROUNDS_MIN, ROUNDS_MAX);
        this.awards = this.initAwards(hitData.coin, this.totalRounds);
        this.turret.isMovingCrosshair = false;
        this.turret.pauseNormalFiringState();
        this.turret.lock(true, 5);
        let board = this;
        for (let i = 0; i < this.shells.length; i++) {
          let shell = this.shells[i];
          let index = i;
          shell.closedShellInputCallback = () => {
            board.stopTimerTimeout();
            board.selected(index);
          };
        }
        this.startNoticeSpine.setAnimation(0, ANIM_START_NOTICE, false);
        this.startNoticeSpine.setCompleteListener(() => board.showBoard());
        this.startNoticeText.node.opacity = 255;
        this.startNoticeText.node.runAction(cc.sequence(cc.delayTime(1.5), cc.fadeOut(.5)));
        MT3SETB_Comm_1.Comm.snd.playEffectByName(BGM_BOARD, true, true);
        this.lastBgmVol = MT3SETB_Comm_1.Comm.snd.getBackgroundMusicVolume();
        MT3SETB_Comm_1.Comm.snd.setBackgroundMusic(0);
        this.node.runAction(cc.sequence(cc.delayTime(1.5), cc.callFunc(() => MT3SETB_Comm_1.Comm.snd.playEffectByName(SFX_GAME_DECLARE))));
      }
      showBoard() {
        this.boardNode.scale = 1;
        this.boardNode.runAction(cc.sequence(cc.scaleTo(.15, 1.1), cc.scaleTo(.05, 1), cc.callFunc(this.playTip, this)));
        this.node.runAction(cc.sequence(cc.delayTime(3), cc.callFunc(this.checkStatus, this)));
      }
      initAwards(winAmount, round) {
        let {times: times, score: score} = this.calcTimesScore(winAmount, round);
        let mean = Math.floor(score / round);
        let rest = score - mean * round;
        let awards = [];
        for (let i = 0; i < round; i++) awards.push(mean);
        awards[awards.length - 1] += rest;
        for (let i = 0; i < awards.length; i++) {
          let id = this.getRandomIntRange(0, awards.length - 1);
          id == i && (id = i + 1);
          id >= awards.length && (id = 0);
          let exchange = Math.floor(Math.random() * (Math.floor(awards[id]) - 1));
          awards[i] += exchange;
          awards[id] -= exchange;
        }
        awards.push(0);
        for (let i = 0; i < awards.length; i++) awards[i] *= times;
        return awards;
      }
      calcTimesScore(score, round) {
        let times = 1;
        while (score % 10 == 0) {
          score /= 10;
          times *= 10;
        }
        if (score < round) {
          score *= 10;
          times /= 10;
        }
        return {
          times: times,
          score: score
        };
      }
      playTip() {
        this.tipNode.setScale(0);
        this.tipNode.runAction(cc.sequence(cc.show(), cc.delayTime(.5), cc.scaleTo(.2, 1.08), cc.scaleTo(.05, 1), cc.delayTime(1.5), cc.spawn(cc.scaleTo(.05, 0), cc.fadeOut(.05)), cc.hide(), cc.callFunc(() => {
          this.startGameSpine.setAnimation(0, ANIM_START_GAME, false);
          this.startGameText.node.opacity = 255;
          this.startGameText.node.scale = 0;
          this.startGameText.node.runAction(cc.sequence(cc.scaleTo(.2, 1.1), cc.scaleTo(.1, 1), cc.delayTime(.3), cc.fadeOut(.2)));
        }, this)));
      }
      checkStatus() {
        0 == this.awards.length ? this.end() : this.choose();
      }
      choose() {
        MT3SETB_Comm_1.Comm.snd.playEffectByName(SFX_ADD_ROUND);
        MT3SETB_Comm_1.Comm.snd.playEffectByName(SFX_SHELL_CLOSE);
        this.rounds++;
        this.roundLabel.string = `${this.rounds - 1}`;
        for (let shell of this.shells) {
          shell.node.active = true;
          shell.closeShell();
          shell.isInputEnabled = true;
        }
        this.time = TIMEOUT;
        this.timerLabel.string = `${this.time}`;
        this.setTimerTimeout(1, this.onTimeTick);
      }
      setTimerTimeout(sec, handler) {
        this.timerAction = this.node.runAction(cc.sequence(cc.delayTime(sec), cc.callFunc(handler, this)));
      }
      stopTimerTimeout() {
        if (this.timerAction) {
          this.node.stopAction(this.timerAction);
          this.timerAction = null;
        }
      }
      onTimeTick() {
        this.time--;
        this.time <= 0 && (this.time = 0);
        this.timerLabel.string = `${this.time}`;
        3 == this.time && MT3SETB_Comm_1.Comm.snd.playEffectByName(SFX_COUNTDOWN);
        0 == this.time ? this.selected(1) : this.setTimerTimeout(1, this.onTimeTick);
      }
      selected(index) {
        for (let shell of this.shells) shell.isInputEnabled = false;
        MT3SETB_Comm_1.Comm.gameCtrl.initCurrIdleTime();
        MT3SETB_Comm_1.Comm.snd.playEffectByName(SFX_SHELL_OPEN);
        let coin = this.awards.shift();
        let board = this.makeBoard(coin, index);
        let selectedShell = this.shells[index];
        let shellPos = selectedShell.node.convertToWorldSpaceAR(cc.Vec2.ZERO);
        shellPos = this.node.convertToNodeSpaceAR(shellPos);
        this.node.runAction(cc.sequence(cc.callFunc(() => this.playFingerAni(shellPos), this), cc.delayTime(.5), cc.callFunc(selectedShell.playSelectAni, selectedShell), cc.delayTime(.2), cc.callFunc(() => {
          selectedShell.showWithCoin(coin, true);
          if (0 != coin) {
            this.playLiziAni(shellPos);
            MT3SETB_Comm_1.Comm.snd.playEffectByName(SFX_GET_COIN);
          } else MT3SETB_Comm_1.Comm.snd.playEffectByName(SFX_GET_SNAKE);
        }, this), cc.delayTime(.7), cc.callFunc(() => {
          this.coin += coin;
          this.goldLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(this.coin);
        }, this), cc.delayTime(.8), cc.callFunc(() => {
          MT3SETB_Comm_1.Comm.snd.playEffectByName(SFX_SHELL_OPEN);
          for (let i = 0; i < this.shells.length; i++) {
            if (i == index) continue;
            let shell = this.shells[i];
            shell.showWithCoin(board[i], false);
            if (0 == board[i]) continue;
            let delay = .1 * i;
            shell.playShowAni(delay);
          }
        }, this), cc.delayTime(1.8), cc.callFunc(this.checkStatus, this)));
      }
      makeBoard(coin, index) {
        let snakeCount = 0;
        let snakeProbability = [ .04, .13, .35, .37, .11 ];
        let rand = this.getRandomIntRange(1, 100) / 100;
        let rate = 0;
        for (let i = 0; i < snakeProbability.length; i++) {
          rate += snakeProbability[i];
          if (rand < rate) {
            snakeCount = i + 1;
            break;
          }
        }
        snakeCount = snakeCount || 1;
        0 == coin && (snakeCount -= 1);
        let {times: times, score: score} = this.calcTimesScore(this.hitData.coin, this.totalRounds);
        let mean = Math.floor(score / this.totalRounds);
        0 == coin && (coin = mean);
        let board = [];
        for (let i = 0; i < snakeCount; i++) board.push(0);
        for (let i = board.length; i < this.shells.length; i++) {
          let value = this.getRandomIntRange(1, Math.floor(1.5 * mean)) * times;
          board.push(value);
        }
        board = this.shuffle(board);
        board[index] = coin;
        return board;
      }
      shuffle(toShuffle) {
        let shuffled = [];
        while (toShuffle.length > 0) {
          let index = this.getRandomIntRange(0, toShuffle.length);
          let v = toShuffle.splice(index, 1);
          shuffled.push(...v);
        }
        return shuffled;
      }
      playFingerAni(shellRootPos) {
        this.fingerOne.setPosition(shellRootPos.add(FINGER_POS_OFFSET));
        this.fingerTwo.setPosition(shellRootPos.add(FINGER_POS_OFFSET));
        this.node.runAction(cc.sequence(cc.callFunc(() => {
          this.fingerOne.active = true;
          this.fingerTwo.active = false;
        }, this), cc.delayTime(.15), cc.callFunc(() => {
          this.fingerOne.active = false;
          this.fingerTwo.active = true;
        }, this), cc.delayTime(.15), cc.callFunc(() => {
          this.fingerOne.active = false;
          this.fingerTwo.active = false;
        }, this)));
      }
      playLiziAni(shellRootPos) {
        this.goldTrail.node.active = true;
        this.goldTrail.node.setPosition(shellRootPos);
        this.goldTrail.resetSystem();
        let destination = this.goldImg.node.parent.convertToWorldSpaceAR(this.goldImg.node.getPosition());
        destination = this.node.convertToNodeSpaceAR(destination);
        this.goldSparkle.node.setPosition(destination);
        this.goldTrail.node.runAction(cc.sequence(cc.moveTo(.8, destination), cc.delayTime(.2), cc.callFunc(() => {
          this.goldSparkle.node.active = true;
          this.goldSparkle.resetSystem();
        }, this), cc.scaleTo(.6, .1), cc.callFunc(() => this.goldTrail.node.active = false, this), cc.delayTime(.4), cc.callFunc(() => this.goldSparkle.node.active = false, this)));
      }
      end() {
        this.node.runAction(cc.sequence(cc.callFunc(() => {
          MT3SETB_Comm_1.Comm.snd.playEffect(SFX_END);
          this.endGameSprite.node.opacity = 255;
          this.endGameSprite.node.runAction(cc.sequence(cc.scaleTo(.2, 1.1), cc.scaleTo(.1, 1), cc.delayTime(.5), cc.fadeOut(.2)));
        }, this), cc.delayTime(1.4), cc.callFunc(() => {
          this.boardNode.runAction(cc.scaleTo(.2, 0));
        }), cc.delayTime(.2), cc.callFunc(() => {
          MT3SETB_Comm_1.Comm.snd.stopEffectByName(BGM_BOARD);
          MT3SETB_Comm_1.Comm.snd.setBackgroundMusic(MT3SETB_Comm_1.Comm.snd.isMusicOpen() && this.lastBgmVol);
          MT3SETB_Comm_1.Comm.effectMgr.showRainbowWheel(MT3SETB_Game_1.eFishMedal.Medal_1, this.hitData.seat, this.hitData.coin, MT3SETB_Comm_1.Comm.gameCtrl.playerSeat == this.hitData.seat, this.hitData.bet, this.hitData.coin, MT3SETB_Game_1.mtfBFishNo.UncleCat);
          MT3SETB_Comm_1.Comm.bankSys.addCoin("reward", this.hitData.seat, -this.hitData.coin);
          MT3SETB_Comm_1.Comm.gameCtrl.addCoin(this.hitData.seat);
          this.turret.resumeNormalFiringState();
          this.node.destroy();
        }, this)));
      }
      getLocalizedSpineAnimName(spine, baseName) {
        let locale = MT3SETB_Comm_1.Comm.i18n.getLocal().split("-")[0];
        let localizedName = `${baseName}_${locale}`;
        return spine.findAnimation(localizedName) ? localizedName : `${baseName}_${DEFAULT_LOCALE}`;
      }
      getRandomIntRange(minInclusive, maxInclusive) {
        return Math.floor(Math.random() * (maxInclusive - minInclusive + 1)) + minInclusive;
      }
    };
    __decorate([ property(sp.Skeleton) ], UncleCatBoard.prototype, "startNoticeSpine", void 0);
    __decorate([ property(cc.Sprite) ], UncleCatBoard.prototype, "startNoticeText", void 0);
    __decorate([ property(cc.Node) ], UncleCatBoard.prototype, "backgroundNode", void 0);
    __decorate([ property(cc.Node) ], UncleCatBoard.prototype, "boardNode", void 0);
    __decorate([ property(cc.Node) ], UncleCatBoard.prototype, "boardScaler", void 0);
    __decorate([ property(cc.Node) ], UncleCatBoard.prototype, "tipNode", void 0);
    __decorate([ property(sp.Skeleton) ], UncleCatBoard.prototype, "startGameSpine", void 0);
    __decorate([ property(cc.Sprite) ], UncleCatBoard.prototype, "startGameText", void 0);
    __decorate([ property(cc.Sprite) ], UncleCatBoard.prototype, "endGameSprite", void 0);
    __decorate([ property(cc.Label) ], UncleCatBoard.prototype, "timerLabel", void 0);
    __decorate([ property(cc.Label) ], UncleCatBoard.prototype, "roundLabel", void 0);
    __decorate([ property(cc.Label) ], UncleCatBoard.prototype, "goldLabel", void 0);
    __decorate([ property(cc.Sprite) ], UncleCatBoard.prototype, "goldImg", void 0);
    __decorate([ property(cc.ParticleSystem) ], UncleCatBoard.prototype, "goldTrail", void 0);
    __decorate([ property(cc.ParticleSystem) ], UncleCatBoard.prototype, "goldSparkle", void 0);
    __decorate([ property(cc.Node) ], UncleCatBoard.prototype, "fingerOne", void 0);
    __decorate([ property(cc.Node) ], UncleCatBoard.prototype, "fingerTwo", void 0);
    __decorate([ property([ MT3SETB_UncleCatShell_1.default ]) ], UncleCatBoard.prototype, "shells", void 0);
    UncleCatBoard = __decorate([ ccclass ], UncleCatBoard);
    exports.default = UncleCatBoard;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-UncleCatShell": "MT3SETB-UncleCatShell"
  } ],
  "MT3SETB-UncleCatShell": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d2784DA7FhPfo/CkoOabSss", "MT3SETB-UncleCatShell");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let UncleCatShell = class UncleCatShell extends cc.Component {
      constructor() {
        super(...arguments);
        this.closed = null;
        this.open = null;
        this.openSelected = null;
        this.snake = null;
        this.coinBg = null;
        this.coinLabel = null;
        this.isInputEnabled = false;
        this.closedShellInputCallback = null;
      }
      closeShell() {
        this.closed.opacity = 255;
        this.open.opacity = 0;
        this.openSelected.opacity = 0;
        this.snake.opacity = 0;
        this.coinLabel.node.opacity = 0;
        this.coinBg.opacity = 0;
        this.node.opacity = 255;
      }
      playSelectAni() {
        let closedScale = this.closed.scale;
        this.closed.runAction(cc.sequence(cc.scaleTo(.1, .6 * closedScale), cc.delayTime(.05), cc.scaleTo(.08, closedScale)));
      }
      showWithCoin(coin, isSelected) {
        this.closed.opacity = 0;
        this.open.opacity = isSelected ? 0 : 255;
        this.openSelected.opacity = isSelected ? 255 : 0;
        if (0 == coin) {
          this.snake.opacity = 255;
          this.coinLabel.node.opacity = 0;
          this.coinBg.opacity = 0;
        } else {
          this.snake.opacity = 0;
          this.coinLabel.node.opacity = 255;
          this.coinLabel.string = MT3SETB_Comm_1.Comm.getThousandsNum4(coin);
          this.coinBg.opacity = 255;
        }
      }
      playShowAni(delay) {
        let coinBgScale = this.coinBg.scale;
        let coinLabelScale = this.coinLabel.node.scale;
        this.coinLabel.node.setScale(0);
        this.coinBg.setScale(0);
        this.node.runAction(cc.sequence(cc.delayTime(delay || 0), cc.callFunc(() => {
          this.coinBg.runAction(cc.sequence(cc.scaleTo(.2, 1.2 * coinBgScale), cc.scaleTo(.1, 1 * coinBgScale)));
          this.coinLabel.node.runAction(cc.sequence(cc.scaleTo(.2, 1.2 * coinLabelScale), cc.scaleTo(.2, 1 * coinLabelScale)));
        }, this)));
      }
      handleClick() {
        this.isInputEnabled && this.closedShellInputCallback();
      }
    };
    __decorate([ property(cc.Node) ], UncleCatShell.prototype, "closed", void 0);
    __decorate([ property(cc.Node) ], UncleCatShell.prototype, "open", void 0);
    __decorate([ property(cc.Node) ], UncleCatShell.prototype, "openSelected", void 0);
    __decorate([ property(cc.Node) ], UncleCatShell.prototype, "snake", void 0);
    __decorate([ property(cc.Node) ], UncleCatShell.prototype, "coinBg", void 0);
    __decorate([ property(cc.Label) ], UncleCatShell.prototype, "coinLabel", void 0);
    UncleCatShell = __decorate([ ccclass ], UncleCatShell);
    exports.default = UncleCatShell;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-VersionDifference": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "4c174tPxmFA/6RDY5Fw60g0", "MT3SETB-VersionDifference");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.VersionDifference = void 0;
    const {ccclass: ccclass} = cc._decorator;
    let VersionDifference = class VersionDifference extends cc.Component {
      constructor() {
        super();
        this.versionType = "zh-CN";
      }
      isVaildType(e) {
        return this.versionType === e;
      }
      switchCall(e, t) {
        switch (this.versionType) {
         case "zh-CN":
          e && e();
          break;

         case "th-TH":
          t && t();
        }
      }
    };
    VersionDifference = __decorate([ ccclass ], VersionDifference);
    exports.VersionDifference = VersionDifference;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-VipDisplayCtrl": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e0716r/A1FAepMSZHgRYrDO", "MT3SETB-VipDisplayCtrl");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.VipDisplayCtrl = void 0;
    const MT3SETB_platform_1 = require("../../common/api/MT3SETB-platform");
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let VipDisplayCtrl = class VipDisplayCtrl extends cc.Component {
      constructor() {
        super(...arguments);
        this.vipSprites = [];
        this.vipAtlas = null;
        this.players = {};
      }
      start() {
        MT3SETB_Comm_1.Comm.vipDisplayCtrl = this;
      }
      UpdateVip(playerInfos) {
        if (MT3SETB_platform_1.canBeVip()) return;
        for (let player of playerInfos) this.players[player.seat] = player;
        this.UpdateVipSprite();
      }
      ClearVip(seat) {
        this.players[seat] = void 0;
        this.UpdateVipSprite();
      }
      UpdateVipSprite() {
        for (let sprite of this.vipSprites) sprite.node.parent.active = false;
        let vipSpr_name = "lv";
        var e = MT3SETB_platform_1.GetApiID();
        e >= 100 && e <= 499 && (vipSpr_name = "vip");
        for (let seat in this.players) {
          if (!this.players[seat]) continue;
          let player = this.players[seat], sprite = this.vipSprites[seat], level = cc.misc.clampf(player.vip, 0, 8), vipSpr = vipSpr_name + level.toString();
          console.log("player", player.uid, "name", player.name, "seat", player.seat, "vip", player.vip);
          if (!player.uid) continue;
          sprite.spriteFrame = this.vipAtlas.getSpriteFrame(vipSpr);
          sprite.node.parent.active = true;
          sprite.node.opacity = 255;
        }
      }
    };
    __decorate([ property([ cc.Sprite ]) ], VipDisplayCtrl.prototype, "vipSprites", void 0);
    __decorate([ property(cc.SpriteAtlas) ], VipDisplayCtrl.prototype, "vipAtlas", void 0);
    VipDisplayCtrl = __decorate([ ccclass ], VipDisplayCtrl);
    exports.VipDisplayCtrl = VipDisplayCtrl;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm",
    "../../common/api/MT3SETB-platform": "MT3SETB-platform"
  } ],
  "MT3SETB-WaterGameBullet": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "fbb6dxr0rRCdJMmrKxVmGWn", "MT3SETB-WaterGameBullet");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.WaterGameBullet = void 0;
    const {ccclass: ccclass} = cc._decorator;
    let WaterGameBullet = class WaterGameBullet extends cc.Component {
      constructor() {
        super();
        this.inBoxFish = [];
      }
      onCollisionEnter(e) {
        if (2 === e.tag) {
          var t = e.node;
          this.inBoxFish.push(t);
        }
      }
      onCollisionExit(e) {
        if (2 === e.tag) for (var t = e.node, o = 0; o < this.inBoxFish.length; o++) if (this.inBoxFish[o] == t) {
          this.inBoxFish.splice(o, 1);
          break;
        }
      }
    };
    WaterGameBullet = __decorate([ ccclass ], WaterGameBullet);
    exports.WaterGameBullet = WaterGameBullet;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-WaterGameMgr": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "f66c6I9hJBGv7wl4dhwTZXZ", "MT3SETB-WaterGameMgr");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var WaterGameMgr_1;
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.WaterGameMgr = void 0;
    const MT3SETB_WaterGameBullet_1 = require("../../res/Common/script/MT3SETB-WaterGameBullet");
    const MT3SETB_WaterGameUI_1 = require("../../res/Common/script/MT3SETB-WaterGameUI");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_Game_1 = require("../system/MT3SETB-Game");
    const MT3SETB_Fish_1 = require("./MT3SETB-Fish");
    const {ccclass: ccclass} = cc._decorator;
    let WaterGameMgr = WaterGameMgr_1 = class WaterGameMgr extends cc.Component {
      constructor() {
        super();
        this.waterRemain = 0;
        this.waterRealRemain = 0;
        this.bet = 0;
        this.coin = 0;
        this.bonus = 0;
        this.targetOdds = 0;
        this.alreadyHitOdds = 0;
        this.hitDistance = 150;
        this.isCreatingFish = false;
        this.isShooting = false;
        this.waterBullet = null;
        this.fakerFishes = [];
        this.UINode = null;
        this.perHitFishCD = .2;
        this.hitFishCDTimer = 0;
        this.perCreateFishCD = .3;
        this.createFishCDTimer = 0;
        this.showCoin = 0;
        this.targetCoin = 0;
        this.endCB = null;
        this.rtp = 1;
      }
      update(e) {
        var t = this;
        if (this.UINode) {
          if (this.showCoin < this.targetCoin) {
            this.showCoin = Math.min(this.targetCoin, this.showCoin + Math.min(this.targetCoin - this.showCoin, 100 * e * this.bet));
            this.bet >= 1 ? this.UINode.scoreStr.string = MT3SETB_Comm_1.Comm.getThousandsNum2(this.showCoin) : this.UINode.scoreStr.string = MT3SETB_Comm_1.Comm.toDecimal2(this.showCoin);
          }
          if (this.isShooting && !MT3SETB_Comm_1.Comm.effectMgr.isFishWaving) {
            this.hitFishCDTimer -= e;
            if (this.hitFishCDTimer <= 0) {
              this.hitFishCDTimer = this.perHitFishCD;
              this.waterBullet && this.waterBullet.getComponent(MT3SETB_WaterGameBullet_1.WaterGameBullet).inBoxFish.forEach(function(e) {
                e && e.getComponent(MT3SETB_Fish_1.Fish) && t.hitFish(e.getComponent(MT3SETB_Fish_1.Fish));
              });
            }
          }
          if (this.isCreatingFish) {
            this.createFishCDTimer -= e;
            if (this.createFishCDTimer <= 0) {
              this.createFakerFish();
              this.createFishCDTimer = this.perCreateFishCD;
            }
          }
          !this.isShooting || MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret().isLocked() || MT3SETB_Comm_1.Comm.effectMgr.isFishWaving || (this.setProgress(this.waterRemain - .1 * e), 
          this.waterRealRemain -= .1 * e);
          this.isShooting && this.alreadyHitOdds >= this.targetOdds && this.waterRemain <= 0 && this.waterRealRemain <= 0 && this.showCoin >= this.targetCoin && this.gameOver();
          this.updateWaterBulletPos();
        }
      }
      createFakerFish() {
        var e = Math.random() > .8 ? MT3SETB_Comm_1.Comm.iRand(12, 16) : MT3SETB_Comm_1.Comm.iRand(1, 11), t = MT3SETB_Comm_1.Comm.dataMgr.getFish(e - 1), o = t.getComponent(MT3SETB_Fish_1.Fish);
        MT3SETB_Comm_1.Comm.fishMgr.getSpawnNode().addChild(t, o.getZIndex());
        this.fakerFishes.push(o);
        var a = {
          id: -1,
          no: e,
          duration: 0,
          joinTime: 0
        };
        o.init(a, MT3SETB_Comm_1.Comm.fishMgr.isLayerRotated());
        o.setUsed(false);
        var r = MT3SETB_Comm_1.Comm.iRand(-30, 30) + (Math.random() > .5 ? 0 : 180), s = {
          wp: [ {
            spline: {
              pt: [ {
                x: 800,
                y: MT3SETB_Comm_1.Comm.iRand(-300, 300),
                duration: 0,
                wait: 0
              }, {
                x: 0,
                y: MT3SETB_Comm_1.Comm.iRand(-300, 300),
                duration: 5 + 1 * Math.random(),
                wait: 0
              }, {
                x: -800,
                y: MT3SETB_Comm_1.Comm.iRand(-300, 300),
                duration: 7 + 1 * Math.random(),
                wait: 0
              } ]
            },
            wait: 0,
            duration: 0
          } ],
          distance: 0
        };
        s.wp[0].spline.pt.forEach(function(e) {
          var t = cc.v2(e).rotate(r * cc.macro.RAD);
          e.x = t.x + 568;
          e.y = t.y + 320;
          e.distance = 900;
        });
        s.wp[0].x = s.wp[0].spline.pt[0].x;
        s.wp[0].y = s.wp[0].spline.pt[0].y;
        o.pathMove(s, 0, 0);
      }
      startGame(e, t, i, a, r) {
        var self = this;
        WaterGameMgr_1.showingGame = this;
        this.UINode = this.getComponent(MT3SETB_WaterGameUI_1.WaterGameUI);
        var l = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        l.lock(true, 999);
        l.lockBet(true);
        this.targetOdds = e;
        this.bet = t;
        this.coin = i;
        this.bonus = a;
        this.endCB = r;
        this.setProgress(1);
        this.waterRealRemain = 1;
        this.isCreatingFish = true;
        this.node.setContentSize(cc.find("Canvas/Stage").getContentSize());
        this.UINode.scoreStr.string = "0";
        this.UINode.waterBarRoot.scale = 0;
        this.UINode.waterBarRoot.x = MT3SETB_Comm_1.Comm.transPos(this.node, l.pivot).x - 100;
        this.UINode.waterBarRoot.getComponent(cc.Widget).updateAlignment();
        MT3SETB_Comm_1.Comm.uiCtrl.cancelAllButton();
        MT3SETB_Comm_1.Comm.uiCtrl.isShootTypeBtnLock = true;
        MT3SETB_Comm_1.Comm.uiCtrl.isBulletTypeBtnLock = true;
        var u = cc.instantiate(this.UINode.openingAnimPrefab);
        u.parent = MT3SETB_Comm_1.Comm.node.effectLayer;
        var d = u.getComponent(cc.Animation);
        d.play("SongkranTitle_In");
        d.once("finished", function() {
          d.play("SongkranTitle_Out");
          d.once("finished", function() {
            cc.tween(self.node).call(function() {
              self.UINode.scoreAnim.play();
              cc.tween(self.UINode.waterBarRoot).delay(.4).to(.4, {
                scale: 1.2
              }).to(.2, {
                scale: 1
              }).start();
            }).delay(1).call(function() {
              self.waterBullet = cc.instantiate(self.UINode.waterBulletPrefab);
              self.waterBullet.parent = MT3SETB_Comm_1.Comm.node.bulletLayer;
              self.updateWaterBulletPos();
            }).delay(.5).call(function() {
              self.isShooting = true;
              l.lock(false);
            }).start();
            u.destroy();
          });
        });
      }
      gameOver() {
        var e = this;
        this.isShooting = false;
        this.isCreatingFish = false;
        cc.tween(this.waterBullet).to(1, {
          scaleX: 0,
          scaleZ: 0
        }).start();
        MT3SETB_Comm_1.Comm.snd.stopEffect(WaterGameMgr_1.soundStartIdx + 2);
        MT3SETB_Comm_1.Comm.runTask(.8, function() {
          cc.tween(e.node).to(.4, {
            opacity: 0
          }).call(function() {
            e.playReward();
            MT3SETB_Comm_1.Comm.runTask(4, function() {
              e.clear();
            });
          }).start();
        });
      }
      setProgress(e) {
        this.waterRemain = cc.misc.clamp01(e);
        this.UINode.waterBar.progress = this.waterRemain;
        this.UINode.waterBarNum.string = Math.floor(100 * this.waterRemain) + "%";
        this.UINode.waterBarMask1.height = this.UINode.waterBar.barSprite.node.height * this.waterRemain;
        this.UINode.waterBarMask2.height = this.UINode.waterBarMask1.height + 7;
      }
      updateWaterBulletPos() {
        if (this.waterBullet) {
          var e = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
          this.waterBullet.setPosition(e.getBulletSpwanPos());
          this.waterBullet.angle = e.pivot.angle;
        }
      }
      hitFish(e) {
        var t = this;
        this.showHitEf(e);
        if (!(this.targetOdds <= this.alreadyHitOdds)) {
          this.checkWaterDrop(e.node);
          var o = this.getFishOdds(e);
          if (!(o <= 0)) {
            o > this.targetOdds - this.alreadyHitOdds && (o = this.targetOdds - this.alreadyHitOdds);
            var i = this.rtp * (1 / o);
            if (Math.random() <= i) {
              var a = this.fakerFishes.indexOf(e);
              a >= 0 && (this.fakerFishes.splice(a, 1), e.__no = null);
              var r = o * this.bet, s = MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, e.node);
              o >= 20 && MT3SETB_Comm_1.Comm.effectMgr.showSpecialCoin(MT3SETB_Comm_1.Comm.gameCtrl.getPlayerSeat(), s, 2);
              MT3SETB_Comm_1.Comm.effectMgr.showCoinText(r, s);
              MT3SETB_Comm_1.Comm.fishMgr.isImmortalFish(e) ? MT3SETB_Comm_1.Comm.fishMgr.showHurt(e) : e.destroyFish(true, false);
              this.alreadyHitOdds = Math.min(this.targetOdds, this.alreadyHitOdds + o);
              MT3SETB_Comm_1.Comm.runTask(.7, function() {
                t.targetCoin = Math.min(t.targetOdds * t.bet, t.targetCoin + t.bet * o);
              });
            }
          }
        }
      }
      showHitEf(e) {
        var t = cc.instantiate(this.UINode.waterBulletHitPrefab);
        t.parent = MT3SETB_Comm_1.Comm.node.effectLayer;
        t.scale = .5 + Math.random();
        t.angle = MT3SETB_Comm_1.Comm.iRand(0, 360);
        t.setPosition(MT3SETB_Comm_1.Comm.transPos(MT3SETB_Comm_1.Comm.node.effectLayer, e.node));
        t.getComponent(cc.Animation).play();
        t.getComponent(cc.Animation).once("finished", function() {
          t.destroy();
        });
      }
      checkWaterDrop(e) {
        if (!(this.waterRealRemain >= .8 || this.alreadyHitOdds >= this.targetOdds)) {
          var t = this.alreadyHitOdds / this.targetOdds - .1;
          this.waterRealRemain < 1 - t ? this.waterRealRemain < .1 ? Math.random() < .05 && this.dropWater(e, .1) : Math.random() < .02 && this.dropWater(e, .2) : Math.random() < .005 && this.dropWater(e, .1);
        }
      }
      dropWater(e, t) {
        var i = this, a = cc.instantiate(this.UINode.dropWaterPrefab);
        a.parent = this.node;
        a.setPosition(MT3SETB_Comm_1.Comm.transPos(this.node, e));
        this.waterRealRemain += t;
        var r = a.position.normalize().mul(-1).rotate(MT3SETB_Comm_1.Comm.iRand(-90, 90) * cc.macro.RAD).mul(MT3SETB_Comm_1.Comm.iRand(30, 60));
        cc.tween(a).by(.3, {
          position: cc.v3(r)
        }, {
          easing: "sineOut"
        }).delay(.2).to(.3, {
          position: cc.v3(MT3SETB_Comm_1.Comm.transPos(this.node, this.UINode.waterBarRoot))
        }).call(function() {
          a.getComponent(cc.Animation).play();
          a.getComponent(cc.Animation).once("finished", function() {
            a.destroy();
          });
        }).delay(.25).call(function() {
          i.setProgress(i.waterRemain + t);
        }).start();
      }
      getFishOdds(e) {
        switch (e.getFishNo()) {
         case MT3SETB_Game_1.eFishNo.Greenfish:
          return 2;

         case MT3SETB_Game_1.eFishNo.Clownfish:
          return 3;

         case MT3SETB_Game_1.eFishNo.Godfish:
          return 4;

         case MT3SETB_Game_1.eFishNo.Flatfish:
          return 5;

         case MT3SETB_Game_1.eFishNo.Blowfish:
          return 6;

         case MT3SETB_Game_1.eFishNo.SeaTurtle:
          return 8;

         case MT3SETB_Game_1.eFishNo.Jellyfish:
          return 10;

         case MT3SETB_Game_1.eFishNo.Lionfish:
          return 12;

         case MT3SETB_Game_1.eFishNo.Lobster:
          return 15;

         case MT3SETB_Game_1.eFishNo.Octopus:
          return 20;

         case MT3SETB_Game_1.eFishNo.Swordfish:
          return 25;

         case MT3SETB_Game_1.eFishNo.Manta:
          return 30;

         case MT3SETB_Game_1.eFishNo.Taroshark:
          return 35;

         case MT3SETB_Game_1.eFishNo.GoldGodfish:
          return 50;

         case MT3SETB_Game_1.eFishNo.GoldClownfish:
          return 55;

         case MT3SETB_Game_1.eFishNo.GoldManta:
          return 60;

         case MT3SETB_Game_1.eFishNo.Armourfish:
          return Math.random() > .5 ? 20 : 30;

         case MT3SETB_Game_1.eFishNo.Lanternfish:
          return Math.random() > .5 ? 30 : 40;

         case MT3SETB_Game_1.eFishNo.GoldTurtle:
          return Math.random() > .5 ? 40 : 50;

         default:
          return 0;
        }
      }
      playReward() {
        var e = cc.instantiate(this.UINode.rewardPrefab);
        e.parent = MT3SETB_Comm_1.Comm.node.effectLayer, e.zIndex = 200;
        var t = this.endCB;
        this.bet >= 1 ? e.getChildByName("BG").getChildByName("label_number").getComponent(cc.Label).string = MT3SETB_Comm_1.Comm.getThousandsNum2(this.coin) : e.getChildByName("BG").getChildByName("label_number").getComponent(cc.Label).string = MT3SETB_Comm_1.Comm.toDecimal2(this.coin);
        e.getComponent(cc.Animation).play("Songkran_reward_start");
        e.getComponent(cc.Animation).once("finished", function() {
          e.getComponent(cc.Animation).play("Songkran_reward_loop");
          cc.tween(e).delay(3).to(.5, {
            opacity: 0
          }).call(function() {
            cc.tween(e.getChildByName("BlackBG01")).to(.2, {
              opacity: 0
            }).start();
          }).delay(.2).to(.3, {
            scale: 0
          }).call(function() {
            t && t();
          }).removeSelf().start();
        });
        e.getChildByName("Bonus").active = this.bonus > 0;
        MT3SETB_Comm_1.Comm.snd.stopMusic();
      }
      clear() {
        this.waterBullet && this.waterBullet.isValid && this.waterBullet.destroy();
        var e = MT3SETB_Comm_1.Comm.gameCtrl.getPlayerTurret();
        e.lock(false);
        e.lockBet(false);
        MT3SETB_Comm_1.Comm.uiCtrl.isBulletTypeBtnLock = false;
        MT3SETB_Comm_1.Comm.uiCtrl.isShootTypeBtnLock = false;
        MT3SETB_Comm_1.Comm.snd.stopEffect(WaterGameMgr_1.soundStartIdx + 2);
        this.node.destroy();
      }
      onDestroy() {
        WaterGameMgr_1.showingGame = null;
      }
    };
    WaterGameMgr.showingGame = null;
    WaterGameMgr.soundStartIdx = 102;
    WaterGameMgr = WaterGameMgr_1 = __decorate([ ccclass ], WaterGameMgr);
    exports.WaterGameMgr = WaterGameMgr;
    cc._RF.pop();
  }, {
    "../../res/Common/script/MT3SETB-WaterGameBullet": "MT3SETB-WaterGameBullet",
    "../../res/Common/script/MT3SETB-WaterGameUI": "MT3SETB-WaterGameUI",
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../system/MT3SETB-Game": "MT3SETB-Game",
    "./MT3SETB-Fish": "MT3SETB-Fish"
  } ],
  "MT3SETB-WaterGameUI": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "44ce7Q5jJFJPKbUrHhuzq0G", "MT3SETB-WaterGameUI");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.WaterGameUI = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let WaterGameUI = class WaterGameUI extends cc.Component {
      constructor() {
        super();
        this.waterBarRoot = null;
        this.waterBarAnim = null;
        this.waterBar = null;
        this.waterBarMask1 = null;
        this.waterBarMask2 = null;
        this.waterBarNum = null;
        this.scoreRoot = null;
        this.scoreStr = null;
        this.scoreAnim = null;
        this.openingAnimPrefab = null;
        this.waterBulletPrefab = null;
        this.waterBulletHitPrefab = null;
        this.dropWaterPrefab = null;
        this.rewardPrefab = null;
      }
    };
    __decorate([ property(cc.Node) ], WaterGameUI.prototype, "waterBarRoot", void 0);
    __decorate([ property(cc.Animation) ], WaterGameUI.prototype, "waterBarAnim", void 0);
    __decorate([ property(cc.ProgressBar) ], WaterGameUI.prototype, "waterBar", void 0);
    __decorate([ property(cc.Node) ], WaterGameUI.prototype, "waterBarMask1", void 0);
    __decorate([ property(cc.Node) ], WaterGameUI.prototype, "waterBarMask2", void 0);
    __decorate([ property(cc.Label) ], WaterGameUI.prototype, "waterBarNum", void 0);
    __decorate([ property(cc.Node) ], WaterGameUI.prototype, "scoreRoot", void 0);
    __decorate([ property(cc.Label) ], WaterGameUI.prototype, "scoreStr", void 0);
    __decorate([ property(cc.Animation) ], WaterGameUI.prototype, "scoreAnim", void 0);
    __decorate([ property(cc.Prefab) ], WaterGameUI.prototype, "openingAnimPrefab", void 0);
    __decorate([ property(cc.Prefab) ], WaterGameUI.prototype, "waterBulletPrefab", void 0);
    __decorate([ property(cc.Prefab) ], WaterGameUI.prototype, "waterBulletHitPrefab", void 0);
    __decorate([ property(cc.Prefab) ], WaterGameUI.prototype, "dropWaterPrefab", void 0);
    __decorate([ property(cc.Prefab) ], WaterGameUI.prototype, "rewardPrefab", void 0);
    WaterGameUI = __decorate([ ccclass ], WaterGameUI);
    exports.WaterGameUI = WaterGameUI;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-WaveFx": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "0b14dSPSgBAnJ6ihFAfOkA1", "MT3SETB-WaveFx");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.WaveFx = void 0;
    const {ccclass: ccclass} = cc._decorator;
    let WaveFx = class WaveFx extends cc.Component {
      constructor() {
        super();
        this.target = null;
        this.offset = cc.Vec2.ZERO;
      }
      onLoad() {
        this.target = this.getComponent(cc.Sprite);
      }
      update(e) {
        var t = this.target.getMaterial(0);
        if (t) {
          var o = this.offset;
          o.x -= .14 * e;
          o.y -= .1 * e;
          o.x >= 1 && (o.x -= 1);
          o.x <= -1 && (o.x += 1);
          o.y >= 1 && (o.y -= 1);
          o.y <= -1 && (o.y += 1);
          t.setProperty("offset", o, 0);
        }
      }
    };
    WaveFx = __decorate([ ccclass ], WaveFx);
    exports.WaveFx = WaveFx;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-WebPage": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "20032WdomBDnpukjqh5h1Oo", "MT3SETB-WebPage");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.WebPage = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let WebPage = class WebPage extends cc.Component {
      constructor() {
        super();
        this.pageNode = null;
        this.webView = null;
        this.redDot = null;
        this.logo = null;
        this.logoSpr = [];
        this.webPos = null;
      }
      start() {
        var e = this;
        this.webView.node.on("loaded", function() {
          e.webView.node.setPosition(e.webPos);
        });
        this.webPos = cc.v2(this.webView.node.position);
      }
      show() {
        var e = this;
        this.redDot && (this.redDot.active = false);
        this.webView.node.position = cc.v3(0, 1e4);
        this.changeLogo();
        this.pageNode.active = true;
        if (cc.sys.isNative) {
          this.webView.setJavascriptInterfaceScheme("wv2g");
          this.webView.setOnJSCallback(function(t, o) {
            "CloseWebView" === o.replace("wv2g://", "") && e.close();
          });
        } else window.addEventListener("message", function(t) {
          if ("CloseWebView" == t.data) {
            var o = MT3SETB_platform_1.GetWeb();
            t.origin == o && e.close();
          }
        }, false);
        var t = cc.director.getScene().getChildByName("LobbyBridge");
        t && t.emit("onSubGameSetBackBtnVisible", false);
      }
      close() {
        var e = this;
        if (this.webView) {
          this.webView.node.position = cc.v3(0, 1e4);
          this.node.runAction(cc.sequence(cc.delayTime(.1), cc.callFunc(function() {
            e.pageNode.active = false;
          })));
          var t = cc.director.getScene().getChildByName("LobbyBridge");
          t && t.emit("onSubGameSetBackBtnVisible", true);
        }
      }
      isShow() {
        return this.pageNode.active;
      }
      setUrl(e) {
        this.webView && (this.webView.url = e);
      }
      update() {
        MT3SETB_Comm_1.Comm.msgBox.msgNode.active && this.close();
      }
      changeLogo() {
        if (this.logo) switch (MT3SETB_platform_1.GetApiID()) {
         case 3:
          this.logo.getComponent(cc.Sprite).spriteFrame = this.logoSpr[0];
          break;

         case 8:
          this.logo.getComponent(cc.Sprite).spriteFrame = this.logoSpr[1];
          break;

         default:
          this.logo.getComponent(cc.Sprite).spriteFrame = null;
        }
      }
    };
    __decorate([ property(cc.Node) ], WebPage.prototype, "pageNode", void 0);
    __decorate([ property(cc.WebView) ], WebPage.prototype, "webView", void 0);
    __decorate([ property(cc.Node) ], WebPage.prototype, "redDot", void 0);
    __decorate([ property(cc.Node) ], WebPage.prototype, "logo", void 0);
    __decorate([ property(cc.SpriteFrame) ], WebPage.prototype, "logoSpr", void 0);
    WebPage = __decorate([ ccclass ], WebPage);
    exports.WebPage = WebPage;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-platform": "MT3SETB-platform"
  } ],
  "MT3SETB-WheelDragonReward": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "7ef26/J6G5I1JHFZ5RK1O3A", "MT3SETB-WheelDragonReward");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_BaseEffect_1 = __importDefault(require("./MT3SETB-BaseEffect"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    var rateInLevel = {
      1: {
        rates: [ 0, 350, 0, 300, 0, 250, 0, 200 ],
        iscenter: true,
        turns: 10,
        needleoffsety: 26
      },
      2: {
        rates: [ 400, 0, 600, 450, 0, 500 ],
        iscenter: false,
        turns: 8,
        needleoffsety: 34
      },
      3: {
        rates: [ 1e3, 0, 2e3 ],
        iscenter: false,
        turns: 6,
        needleoffsety: 46
      },
      4: {
        needleoffsety: 39
      }
    };
    let WheelDragonReward = class WheelDragonReward extends MT3SETB_BaseEffect_1.default {
      constructor() {
        super(...arguments);
        this.ringAnim1 = null;
        this.ringAnim2 = null;
        this.ringAnim3 = null;
        this.needle = null;
        this.needleFire = null;
        this.ingotAnim = null;
        this.tips = null;
        this.nodeList = {};
        this.c1 = null;
        this.c2 = null;
        this.c3 = null;
        this.c1NumRoot = null;
        this.c2NumRoot = null;
        this.c3NumRoot = null;
      }
      start() {
        this.nodeList = {
          c1: this.c1,
          c2: this.c2,
          c3: this.c3
        };
      }
      init(rate, fishWorldPos, player, callback) {
        this.rate = rate;
        rate < 400 ? this.level = 1 : rate < 1e3 ? this.level = 2 : rate < 1e4 ? this.level = 3 : 1e4 == rate && (this.level = 4);
        this.callback = callback;
        this.initPlayer(player);
        this.needle.opacity = 0;
        this.c1NumRoot.opacity = 0;
        this.c1NumRoot.opacity = 0;
        this.c3NumRoot.opacity = 0;
        this.ingotAnim.node.active = false;
        this.tips.active = false;
        let rewardParent = MT3SETB_Comm_1.Comm.effectMgr.gunRewardDisplayParent;
        let translatedFishPos = rewardParent.convertToNodeSpaceAR(fishWorldPos);
        let endPosY = player.seatNo >= 2 ? 125 : -125;
        let translatedPlayerPos = MT3SETB_Comm_1.Comm.transPos(rewardParent, player.getRewardPosNode(), cc.v2(0, endPosY));
        this.node.setPosition(translatedFishPos);
        this.moveToPlayerPosition(translatedPlayerPos);
      }
      moveToPlayerPosition(pos) {
        this.node.runAction(cc.sequence(cc.moveTo(.5, pos).easing(cc.easeOut(1)), cc.delayTime(.1), cc.callFunc(() => {
          this.c1NumRoot.opacity = 0;
          this.c1NumRoot.active = true;
          this.c1NumRoot.runAction(cc.fadeIn(.8));
          this.c2NumRoot.opacity = 0;
          this.c2NumRoot.active = true;
          this.c2NumRoot.runAction(cc.fadeIn(.8));
          this.c3NumRoot.opacity = 0;
          this.c3NumRoot.active = true;
          this.c3NumRoot.runAction(cc.fadeIn(.8));
          this.needle.opacity = 0;
          this.needle.active = true;
          this.needle.runAction(cc.fadeIn(.8));
        }), cc.delayTime(.8), cc.callFunc(() => {
          this.ingotAnim.node.setScale(1.2);
          this.ingotAnim.node.active = true;
          this.ingotAnim.node.runAction(cc.scaleTo(.5, 1));
          this.tips.setScale(.2);
          this.tips.active = true;
          this.tips.runAction(cc.scaleTo(.5, 1));
        }), cc.delayTime(.5), cc.callFunc(() => {
          this.ingotAnim.play();
          this.showTips();
        })));
      }
      showTips() {
        var pos = this.tips.getPosition();
        this.tips.runAction(cc.sequence(cc.moveTo(.2, new cc.Vec2(pos.x, pos.y + 20)), cc.moveTo(.2, new cc.Vec2(pos.x, pos.y)), cc.delayTime(.3), cc.fadeOut(.1), cc.callFunc(() => {
          this.ingotAnim.node.active = true;
          this.whirling(1);
        })));
      }
      whirling(level) {
        var result = this.calculateAngle(level);
        var angle = result.angle;
        var index = result.index;
        if (!angle) {
          console.error("error with angle calcs " + angle);
          return;
        }
        var glint = this.node.getChildByName("glint_" + level);
        glint.runAction(cc.sequence(cc.fadeIn(.4), cc.fadeOut(.4)));
        var rotate_node = this.nodeList["c" + level];
        rotate_node.runAction(cc.sequence(cc.rotateBy(3, .9 * angle), cc.callFunc(() => {
          this.needle.active = true;
          this.needleFire.play("fire");
          var pos = this.needle.getPosition();
          this.needle.runAction(cc.sequence(cc.moveTo(.3, new cc.Vec2(pos.x, pos.y - 20)), cc.moveTo(.3, new cc.Vec2(pos.x, pos.y))));
        }), cc.rotateBy(1.5, .1 * angle).easing(cc.easeSineOut()), cc.callFunc(() => {
          var show_node = rotate_node.getChildByName("t_" + index);
          var show_glint = show_node.getChildByName("glint");
          show_glint.opacity = 0;
          show_node.active = true;
          var fadein_action = cc.fadeIn(.2);
          var fadeout_action = cc.fadeOut(.2);
          show_glint.runAction(cc.sequence(cc.fadeIn(.2), cc.fadeOut(.2), cc.fadeIn(.2), cc.fadeOut(.2), cc.fadeIn(.2), cc.fadeOut(.2), cc.callFunc(() => {
            this.onceWhirlEnd(level);
          })));
        })));
      }
      onceWhirlEnd(level) {
        if (this.level == level) {
          this.ringAnim1.node.active = true;
          this.ringAnim2.node.active = true;
          this.ringAnim3.node.active = true;
          this.ringAnim1.node.angle = this.c1.angle;
          this.ringAnim2.node.angle = this.c2.angle;
          this.ringAnim3.node.angle = this.c3.angle;
          this.ringAnim1.play("whirl");
          this.ringAnim2.play("whirl");
          this.ringAnim3.play("whirl");
          this.ringAnim1.node.runAction(cc.rotateBy(3, 1e3));
          this.ringAnim2.node.runAction(cc.rotateBy(3, 1e3));
          this.ringAnim3.node.runAction(cc.rotateBy(3, 1e3));
          this.c1.runAction(cc.rotateBy(3, 1e3));
          this.c2.runAction(cc.rotateBy(3, -1e3));
          this.c3.runAction(cc.rotateBy(3, 1e3));
          this.node.runAction(cc.sequence(cc.delayTime(1.5), cc.callFunc(this.callback), cc.fadeOut(1), cc.callFunc(() => {
            this.destroyEffect();
          })));
        } else {
          var pos = this.needle.getPosition();
          var offsety = rateInLevel[level].needleoffsety;
          this.needle.runAction(cc.sequence(cc.moveTo(.3, new cc.Vec2(pos.x, pos.y - offsety)), cc.callFunc(() => {
            var nextlevel = level + 1;
            4 == nextlevel ? this.onceWhirlEnd(nextlevel) : this.whirling(level + 1);
          })));
        }
      }
      calculateAngle(level) {
        if (!level) return null;
        var config = rateInLevel[level];
        var rates = config.rates;
        var iscenter = config.iscenter;
        var angle_unit = 360 / rates.length;
        var turns = config.turns;
        var targetAngle = -1;
        var index;
        for (let i = 0; i < rates.length; i++) if (rates[i] === this.rate) {
          targetAngle = (i + 1) * angle_unit;
          index = i + 1;
          break;
        }
        var i = MT3SETB_Comm_1.Comm.iRand(0, 8);
        while (-1 == targetAngle) {
          if (0 == rates[i]) {
            targetAngle = (i + 1) * angle_unit;
            index = i + 1;
            break;
          }
          i += 1;
          i >= 8 && (i = 0);
        }
        iscenter || (targetAngle -= angle_unit / 2);
        var f = MT3SETB_Comm_1.Comm.iRand(2, 8) / 10;
        var resultAngle = Math.floor(targetAngle - angle_unit * f) + 360 * turns;
        return {
          angle: resultAngle,
          index: index
        };
      }
      destroyEffect() {
        this.node.stopAllActions();
        this.node.destroy();
      }
    };
    __decorate([ property(cc.Animation) ], WheelDragonReward.prototype, "ringAnim1", void 0);
    __decorate([ property(cc.Animation) ], WheelDragonReward.prototype, "ringAnim2", void 0);
    __decorate([ property(cc.Animation) ], WheelDragonReward.prototype, "ringAnim3", void 0);
    __decorate([ property(cc.Node) ], WheelDragonReward.prototype, "needle", void 0);
    __decorate([ property(cc.Animation) ], WheelDragonReward.prototype, "needleFire", void 0);
    __decorate([ property(cc.Animation) ], WheelDragonReward.prototype, "ingotAnim", void 0);
    __decorate([ property(cc.Node) ], WheelDragonReward.prototype, "tips", void 0);
    __decorate([ property(cc.Node) ], WheelDragonReward.prototype, "c1", void 0);
    __decorate([ property(cc.Node) ], WheelDragonReward.prototype, "c2", void 0);
    __decorate([ property(cc.Node) ], WheelDragonReward.prototype, "c3", void 0);
    __decorate([ property(cc.Node) ], WheelDragonReward.prototype, "c1NumRoot", void 0);
    __decorate([ property(cc.Node) ], WheelDragonReward.prototype, "c2NumRoot", void 0);
    __decorate([ property(cc.Node) ], WheelDragonReward.prototype, "c3NumRoot", void 0);
    WheelDragonReward = __decorate([ ccclass ], WheelDragonReward);
    exports.default = WheelDragonReward;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "./MT3SETB-BaseEffect": "MT3SETB-BaseEffect"
  } ],
  "MT3SETB-WinMoreUILoader": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "83715zIkeZIwYWqV0S7qJAP", "MT3SETB-WinMoreUILoader");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.WinMoreUILoader = void 0;
    const MT3SETB_win_more_menu_1 = require("../../res/Common/script/winmore/MT3SETB-win_more_menu");
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let WinMoreUILoader = class WinMoreUILoader extends cc.Component {
      constructor() {
        super();
        this.buttonRoot = null;
        this.buttonNode = null;
        this.redPointNode = null;
        this.menuNode = null;
        this.winMorePrefab = null;
        this.cardGetPrefab = null;
        this.winMoreMenu = null;
        this.canShowCardInfo = true;
      }
      start() {
        var e = this, t = cc.instantiate(this.winMorePrefab);
        t.setParent(this.menuNode);
        this.winMoreMenu = t.getComponent(MT3SETB_win_more_menu_1.win_more_menu);
        this.buttonNode.active = true;
        this.buttonRoot.active = false;
        this.buttonNode.on(cc.Node.EventType.TOUCH_START, function() {
          e.winMoreMenu.openMenu();
        });
        MT3SETB_Comm_1.Comm.runTask({
          times: cc.macro.REPEAT_FOREVER,
          target: this
        }, function(t) {
          if (e && e.isValid) {
            if (MT3SETB_Comm_1.Comm.app.isLogin) {
              e.buttonRoot.active = !MT3SETB_platform_1.GetLobbyHM() && !MT3SETB_platform_1.canBeWinMore();
              e.winMoreMenu.init();
              MT3SETB_Comm_1.Comm.delTask(t);
            }
          } else MT3SETB_Comm_1.Comm.delTask(t);
        });
      }
      checkTip() {
        if (!this.winMoreMenu) return false;
        var e = this.winMoreMenu.checkRedDotState();
        this.redPointNode.active = e;
        return e;
      }
      onCardAddAck(e) {
        var t = this;
        if (0 == e.source) {
          if (true === this.canShowCardInfo) {
            this.canShowCardInfo = false;
            this.scheduleOnce(function() {
              return t.canShowCardInfo = true;
            }, 2);
          }
        } else if (1 == e.source) ; else if (2 == e.source) {
          MT3SETB_Comm_1.Comm.gameCtrl.bShowItemTip = true;
          MT3SETB_Comm_1.Comm.uiCtrl.backpackBtn.check();
        }
      }
    };
    __decorate([ property(cc.Node) ], WinMoreUILoader.prototype, "buttonRoot", void 0);
    __decorate([ property(cc.Node) ], WinMoreUILoader.prototype, "buttonNode", void 0);
    __decorate([ property(cc.Node) ], WinMoreUILoader.prototype, "redPointNode", void 0);
    __decorate([ property(cc.Node) ], WinMoreUILoader.prototype, "menuNode", void 0);
    __decorate([ property(cc.Prefab) ], WinMoreUILoader.prototype, "winMorePrefab", void 0);
    __decorate([ property(cc.Prefab) ], WinMoreUILoader.prototype, "cardGetPrefab", void 0);
    WinMoreUILoader = __decorate([ ccclass ], WinMoreUILoader);
    exports.WinMoreUILoader = WinMoreUILoader;
    cc._RF.pop();
  }, {
    "../../res/Common/script/winmore/MT3SETB-win_more_menu": "MT3SETB-win_more_menu",
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-platform": "MT3SETB-platform"
  } ],
  "MT3SETB-WinMoreVip": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "83323EtbJZLs5yk6VyA/wqV", "MT3SETB-WinMoreVip");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.WinMoreVip = void 0;
    const MT3SETB_Comm_1 = require("../MT3SETB-Comm");
    const MT3SETB_WebPage_1 = require("../system/MT3SETB-WebPage");
    const MT3SETB_glue_1 = __importDefault(require("../common/api/MT3SETB-glue"));
    const MT3SETB_platform_1 = require("../common/api/MT3SETB-platform");
    const MT3SETB_vip_1 = require("../common/api/MT3SETB-vip");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let WinMoreVip = class WinMoreVip extends cc.Component {
      constructor() {
        super();
        this.webPage = null;
        this.vipSprites = [];
        this.commImg = null;
        this.vipSpr_name = "lv";
      }
      onLoad() {
        var e = this;
        MT3SETB_glue_1.default.openVipWeb = function() {
          return e.openVipWeb();
        };
      }
      start() {
        var e = this;
        for (let sprite of this.vipSprites) sprite.node.on(cc.Node.EventType.TOUCH_END, function() {
          return e.openVipWeb();
        });
        this.schedule(this.updateVipSprite.bind(this), 2, cc.macro.REPEAT_FOREVER, 1);
      }
      updateVipSprite() {
        if (false === MT3SETB_vip_1.HasVipData() || MT3SETB_platform_1.canBeVip()) {
          for (let sprite of this.vipSprites) sprite.node.parent.active = false;
          return;
        }
        var e = MT3SETB_platform_1.GetApiID();
        e >= 100 && e <= 499 && (this.vipSpr_name = "vip");
        var t = MT3SETB_vip_1.GetVipData(), o = MT3SETB_glue_1.default.gameCtrl_getPlayerSeat(), n = cc.misc.clampf(t.level, 0, 7), s = this.vipSpr_name + n.toString();
        for (let i = 0; i < this.vipSprites.length; i++) {
          let sprite = this.vipSprites[i];
          sprite.spriteFrame = this.commImg.getSpriteFrame(s);
          sprite.node.parent.active = i === o;
        }
      }
      openVipWeb() {
        var e = MT3SETB_platform_1.GetVipWebUrl();
        e.match("%s") || e.match("undefined") || (cc.sys.isNative ? e += "&device=mobileapp&zoomstyle=app&" : MT3SETB_Comm_1.Comm.app.getLobbyID() > 0 && (e += "&device=webapp&zoomstyle=webapp&"), 
        MT3SETB_platform_1.GetLobbyHM() && (e += "gp=true&"), this.webPage.setUrl(e), this.webPage.show());
      }
    };
    __decorate([ property(MT3SETB_WebPage_1.WebPage) ], WinMoreVip.prototype, "webPage", void 0);
    __decorate([ property([ cc.Sprite ]) ], WinMoreVip.prototype, "vipSprites", void 0);
    __decorate([ property(cc.SpriteAtlas) ], WinMoreVip.prototype, "commImg", void 0);
    WinMoreVip = __decorate([ ccclass ], WinMoreVip);
    exports.WinMoreVip = WinMoreVip;
    cc._RF.pop();
  }, {
    "../MT3SETB-Comm": "MT3SETB-Comm",
    "../common/api/MT3SETB-glue": "MT3SETB-glue",
    "../common/api/MT3SETB-platform": "MT3SETB-platform",
    "../common/api/MT3SETB-vip": "MT3SETB-vip",
    "../system/MT3SETB-WebPage": "MT3SETB-WebPage"
  } ],
  "MT3SETB-_main": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "8d6b14ECUBCbo/LQ05W47l9", "MT3SETB-_main");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.CMain = void 0;
    cc.sys.isNative && (window["URLSearchParams"] = class {
      constructor() {
        this.data = {};
        this.data = [];
      }
      append(name, value) {
        this.data[name] = value;
      }
      get(name) {
        return this.data[name];
      }
      toString() {
        return Object.keys(this.data).map(k => `${encodeURIComponent(k)}=${encodeURIComponent(this.data[k])}`).join("&");
      }
    });
    class CMain {
      static hideLoading() {
        var _a;
        null === (_a = cc.find("loading")) || void 0 === _a ? void 0 : _a.destroy();
        if (cc.sys.isNative) {
          if (!window["subGameManager"]) {
            console.error("window['subGameManager'] is undefined!");
            return;
          }
          let manager = window["subGameManager"];
          manager.hideLoading("");
        }
      }
      static backToLobby() {
        cc.sys.isNative ? window["subGameManager"] && window["subGameManager"].backGame() : window["kl"] && window["kl"].gameBack();
      }
      static initGroupList() {
        if (cc.game.config && cc.game.config.groupList) {
          let groupList = cc.game.config.groupList;
          this.originalGroupList.splice(0, this.originalGroupList.length);
          this.originalGroupList.push(...groupList);
          groupList.splice(0, groupList.length);
          groupList.push(...this.gameGroupList);
          let manager = cc.director.getCollisionManager();
          manager.enabled = true;
          let matrix = manager.collisionMatrix || manager._collisionMatrix || manager["collisionMatrix"];
          if (matrix) {
            this.originalCollisionMatrix = matrix.map(inner => [ ...inner ]);
            matrix = matrix.map(() => []);
          } else {
            manager.collisionMatrix = [];
            matrix = manager.collisionMatrix;
            cc.game.collisionMatrix && (this.originalCollisionMatrix = cc.game.collisionMatrix.map(inner => [ ...inner ]));
          }
          for (let i = 0; i < groupList.length; i++) {
            matrix[i] || (matrix[i] = []);
            for (let j = 0; j < groupList.length; j++) matrix[i][j] = false;
          }
          matrix[3][1] = matrix[3][2] = true;
          matrix[4][4] = true;
          cc.game.collisionMatrix = matrix.map(inner => [ ...inner ]);
        }
      }
      static revertGroupList() {
        let groupList = cc.game.config.groupList;
        if (groupList) {
          groupList.splice(0, groupList.length);
          groupList.push(...this.originalGroupList);
        }
        let collisionMatrix = cc.game.collisionMatrix;
        if (collisionMatrix) {
          collisionMatrix.splice(0, collisionMatrix.length);
          collisionMatrix = this.originalCollisionMatrix.map(inner => [ ...inner ]);
        }
      }
    }
    exports.CMain = CMain;
    CMain.gameGroupList = [ "Default", "Wall", "Fish", "Bullet", "UiTouch", "Effects" ];
    CMain.originalGroupList = [];
    CMain.originalCollisionMatrix = [];
    cc._RF.pop();
  }, {} ],
  "MT3SETB-axiosLite": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "252fduLLTRATIJikbjGZsb2", "MT3SETB-axiosLite");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.AxiosLite = void 0;
    class InterceptorManager {
      constructor() {
        this.handlers = [];
      }
      use(onFulfilled, onRejected) {
        this.handlers.push({
          onFulfilled: onFulfilled,
          onRejected: onRejected
        });
        return this.handlers.length - 1;
      }
      forEach(fn) {
        this.handlers.forEach(h => h && fn(h));
      }
    }
    class AxiosLite {
      constructor(config = {}) {
        this.interceptors = {
          request: new InterceptorManager(),
          response: new InterceptorManager()
        };
        this.defaults = config;
      }
      static create(config = {}) {
        return new AxiosLite(config);
      }
      request(config) {
        const merged = Object.assign(Object.assign(Object.assign({}, this.defaults), config), {
          headers: Object.assign(Object.assign({}, this.defaults.headers || {}), config.headers || {})
        });
        let url = (merged.baseURL || "") + (merged.url || "");
        if (merged.params && Object.keys(merged.params).length) {
          const qs = Object.keys(merged.params).map(k => encodeURIComponent(k) + "=" + encodeURIComponent(merged.params[k])).join("&");
          url += (url.includes("?") ? "&" : "?") + qs;
        }
        let promise = Promise.resolve(merged);
        this.interceptors.request.forEach(i => {
          (i.onFulfilled || i.onRejected) && (promise = promise.then(i.onFulfilled, i.onRejected));
        });
        const dispatch = finalCfg => new Promise((resolve, reject) => {
          const xhr = new XMLHttpRequest();
          xhr.open(finalCfg.method || "GET", url, true);
          finalCfg.timeout && (xhr.timeout = finalCfg.timeout);
          const headers = finalCfg.headers || {};
          Object.keys(headers).forEach(k => xhr.setRequestHeader(k, headers[k]));
          xhr.onreadystatechange = () => {
            if (4 !== xhr.readyState) return;
            const respHeaders = {};
            const raw = xhr.getAllResponseHeaders() || "";
            raw.trim().split(/[\r\n]+/).forEach(line => {
              const idx = line.indexOf(":");
              if (idx > 0) {
                const key = line.slice(0, idx).trim().toLowerCase();
                const val = line.slice(idx + 1).trim();
                respHeaders[key] = val;
              }
            });
            const status = xhr.status;
            const statusText = xhr.statusText;
            let data = xhr.responseText;
            const ct = respHeaders["content-type"] || "";
            try {
              data = JSON.parse(xhr.responseText);
            } catch (_a) {}
            const response = {
              data: data,
              status: status,
              statusText: statusText,
              headers: respHeaders,
              config: finalCfg,
              request: xhr
            };
            if (status >= 200 && status < 300) resolve(response); else {
              const error = Object.assign(new Error("Request failed with status code " + status), {
                config: finalCfg,
                request: xhr,
                response: response,
                isAxiosError: true
              });
              reject(error);
            }
          };
          xhr.ontimeout = () => {
            const error = Object.assign(new Error("timeout of " + (finalCfg.timeout || 0) + "ms exceeded"), {
              config: finalCfg,
              request: xhr,
              isAxiosError: true
            });
            reject(error);
          };
          let body = null;
          const ctHeader = headers["Content-Type"] || headers["Content-type"] || "";
          const data = finalCfg.data;
          if (null != data) if ("undefined" !== typeof URLSearchParams && data instanceof URLSearchParams) {
            body = data.toString();
            ctHeader || xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
          } else if (ctHeader.includes("application/x-www-form-urlencoded")) body = Object.keys(data).map(k => encodeURIComponent(k) + "=" + encodeURIComponent(data[k])).join("&"); else if (ctHeader.includes("application/json") || "" === ctHeader) {
            body = "string" === typeof data ? data : JSON.stringify(data);
            ctHeader || xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
          } else body = data;
          xhr.send(body);
        });
        promise = promise.then(dispatch);
        this.interceptors.response.forEach(i => {
          promise = promise.then(i.onFulfilled, i.onRejected);
        });
        return promise;
      }
      get(url, config = {}) {
        return this.request(Object.assign(Object.assign({}, config), {
          method: "GET",
          url: url
        }));
      }
      post(url, data, config = {}) {
        return this.request(Object.assign(Object.assign({}, config), {
          method: "POST",
          url: url,
          data: data
        }));
      }
      put(url, data, config = {}) {
        return this.request(Object.assign(Object.assign({}, config), {
          method: "PUT",
          url: url,
          data: data
        }));
      }
      delete(url, config = {}) {
        return this.request(Object.assign(Object.assign({}, config), {
          method: "DELETE",
          url: url
        }));
      }
    }
    exports.AxiosLite = AxiosLite;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-card_event": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "f080cdCj1REhJx9rQDiIiHu", "MT3SETB-card_event");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.card_event = void 0;
    const MT3SETB_card_1 = require("../api/MT3SETB-card");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let card_event = class card_event extends cc.Component {
      constructor() {
        super();
        this.onAddEvent = null;
        this.onUseEvent = null;
        this.onOpenEvent = null;
        this.onAddEvent = null;
        this.onUseEvent = null;
        this.onOpenEvent = null;
      }
      onEnable() {
        MT3SETB_card_1.SetCardHandler(this.onAddEvent, this.onUseEvent, this.onOpenEvent);
      }
      onDisable() {
        MT3SETB_card_1.RemoveCardHandler(this.onAddEvent, this.onUseEvent, this.onOpenEvent);
      }
    };
    __decorate([ property(cc.Component.EventHandler) ], card_event.prototype, "onAddEvent", void 0);
    __decorate([ property(cc.Component.EventHandler) ], card_event.prototype, "onUseEvent", void 0);
    __decorate([ property(cc.Component.EventHandler) ], card_event.prototype, "onOpenEvent", void 0);
    card_event = __decorate([ ccclass ], card_event);
    exports.card_event = card_event;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-card": "MT3SETB-card"
  } ],
  "MT3SETB-card": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "fae74LxjSxJCpHd5OGxQ9Sq", "MT3SETB-card");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.UseCard = exports.GetCardMessage = exports.GetCardList = exports.RemoveCardHandler = exports.SetCardHandler = exports.GetChip = exports.AddChip = exports.CheckCardTimeout = exports.UpdateChip = exports.RedeemCard = exports.UpdateCard = exports.SetCard = exports.AddCard = exports.CardMessage = void 0;
    const MT3SETB_event_1 = require("./MT3SETB-event");
    const MT3SETB_mtf_pb_wrapper_1 = require("./MT3SETB-mtf_pb_wrapper");
    const MT3SETB_platform_1 = require("./MT3SETB-platform");
    const MT3SETB_websocket_1 = require("./MT3SETB-websocket");
    class CardMessage extends MT3SETB_mtf_pb_wrapper_1.mtf.Card.Message {
      constructor(e) {
        super(e);
        this.date = new Date(1e3 * this.createTime);
      }
    }
    exports.CardMessage = CardMessage;
    var l = [], u = [], d = null;
    const AddCard = function(e) {
      l.push(e);
      var t = new CardMessage();
      t.cardId = e.cardId;
      t.date = new Date();
      t.createTime = t.date.getTime() / 1e3;
      t.gameId = e.gameId;
      t.msgId = 3;
      u.push(t);
      p.emit([ e ]);
    };
    exports.AddCard = AddCard;
    const SetCard = function(e) {
      d = null == e ? void 0 : e.chip;
      !e || l.length > 0 || (l = e.list, u = [], e.message.forEach(function(e) {
        u.push(new CardMessage(e));
      }), f.emit([]));
    };
    exports.SetCard = SetCard;
    const UpdateCard = function(e) {
      if (1 == e.success) {
        l = l.filter(function(t) {
          return t.index != e.index;
        });
        var t = new CardMessage();
        t.cardId = e.cardId;
        t.date = new Date();
        t.createTime = t.date.getTime() / 1e3;
        t.gameId = MT3SETB_platform_1.GetGameID();
        t.msgId = 1;
        u.push(t);
      }
      h.emit([ e ]);
    };
    exports.UpdateCard = UpdateCard;
    const RedeemCard = function(e) {
      var t = new MT3SETB_mtf_pb_wrapper_1.mtf.RedeemRequest();
      t.formulaId = e;
      var o = MT3SETB_mtf_pb_wrapper_1.mtf.RedeemRequest.encode(t);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_CARD_REDEEM, o);
    };
    exports.RedeemCard = RedeemCard;
    const UpdateChip = function(e) {
      if (d) {
        e.chips.forEach(function(e) {
          for (var t = 0; t < d.chips.length; t++) if (d.chips[t].id == e.id) {
            d.chips[t].amount -= e.amount;
            break;
          }
        });
        for (var t = 0; t < d.formulas.length; ++t) if (d.formulas[t].id == e.formulaId) {
          d.formulas[t].redeemed += 1;
          break;
        }
        MT3SETB_event_1.EventBus.post("chip_update", e);
      }
    };
    exports.UpdateChip = UpdateChip;
    const CheckCardTimeout = function() {
      for (var e = new Date().getTime(), t = 0; t < l.length; ) if (1e3 * l[t].end.toNumber() < e) {
        var o = new CardMessage();
        o.cardId = l[t].cardId;
        o.date = new Date();
        o.createTime = o.date.getTime() / 1e3;
        o.gameId = MT3SETB_platform_1.GetGameID();
        o.msgId = 2;
        u.push(o);
        l.splice(t, 1);
      } else t += 1;
    };
    exports.CheckCardTimeout = CheckCardTimeout;
    const AddChip = function(e) {
      if (d) {
        for (var t = 0; t < d.chips.length; t++) if (d.chips[t].id == e.id) {
          d.chips[t].amount += e.amount;
          break;
        }
        MT3SETB_event_1.EventBus.post("chip_add", e);
      } else MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_CARD_INFO, null);
    };
    exports.AddChip = AddChip;
    const GetChip = function() {
      return d;
    };
    exports.GetChip = GetChip;
    var p = new MT3SETB_event_1.EventHandler(), h = new MT3SETB_event_1.EventHandler(), f = new MT3SETB_event_1.EventHandler();
    const SetCardHandler = function(e, t, o) {
      p.add(e);
      h.add(t);
      f.add(o);
    };
    exports.SetCardHandler = SetCardHandler;
    const RemoveCardHandler = function(e, t, o) {
      p.remove(e);
      h.remove(t);
      f.remove(o);
    };
    exports.RemoveCardHandler = RemoveCardHandler;
    const GetCardList = function() {
      return l;
    };
    exports.GetCardList = GetCardList;
    const GetCardMessage = function() {
      return u;
    };
    exports.GetCardMessage = GetCardMessage;
    const UseCard = function(e) {
      var t = new MT3SETB_mtf_pb_wrapper_1.mtf.CardUseReq();
      t.index = e;
      var o = MT3SETB_mtf_pb_wrapper_1.mtf.CardUseReq.encode(t);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_CARD_USE_REQ, o);
    };
    exports.UseCard = UseCard;
    cc._RF.pop();
  }, {
    "./MT3SETB-event": "MT3SETB-event",
    "./MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-platform": "MT3SETB-platform",
    "./MT3SETB-websocket": "MT3SETB-websocket"
  } ],
  "MT3SETB-debris": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "27951lV/btBSZjq2ULcT4Y7", "MT3SETB-debris");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.clear = exports.Exchange = exports.GetExchangableCnt = exports.GetMyDebrisCount = exports.GetDebrisChangedCnt = exports.ExchangeDebris = exports.GetDebrisIconID = exports.GetDebrisActivityData = exports.GetDebrisData = exports.HasDebrisActivity = exports.SetDebrisData = exports.UpdateDebrisData = exports.DebrisNotify = exports.SetDebrisActivity = exports.GetDebrisActivity = void 0;
    const MT3SETB_event_1 = require("./MT3SETB-event");
    const MT3SETB_mtf_pb_wrapper_1 = require("./MT3SETB-mtf_pb_wrapper");
    const MT3SETB_websocket_1 = require("./MT3SETB-websocket");
    let r = null, s = null, c = null, l = null;
    function u() {
      var e = new MT3SETB_mtf_pb_wrapper_1.mtf.DebrisInfoReq();
      e.activityNo = r.no;
      var t = MT3SETB_mtf_pb_wrapper_1.mtf.DebrisInfoReq.encode(e);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DEBRIS_INFO, t);
    }
    function d(e) {
      for (var t = 0; t < s.debrislist.length; t++) if (s.debrislist[t].no == e) return s.debrislist[t].count;
      return 0;
    }
    const GetDebrisActivity = function() {
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DEBRIS_ACTIVITY, null);
      c = setInterval(function() {
        MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DEBRIS_ACTIVITY, null);
      }, 6e4);
    };
    exports.GetDebrisActivity = GetDebrisActivity;
    const SetDebrisActivity = function(e) {
      r = e;
      var t = Date.now();
      if (t >= 1e3 * r.start.toNumber()) if (t < 1e3 * r.end.toNumber()) {
        null == s && u();
        if (t < 1e3 * r.fall.toNumber()) null == l && (l = setInterval(function() {
          MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DEBRIS_GET, null);
        }, 15e3)); else {
          clearInterval(l);
          l = null;
        }
      } else {
        clearInterval(l);
        l = null;
        s = null;
      }
    };
    exports.SetDebrisActivity = SetDebrisActivity;
    const DebrisNotify = function(e) {
      e.get && (u(), MT3SETB_event_1.EventBus.post("DEBRIS_REDPOINT"));
    };
    exports.DebrisNotify = DebrisNotify;
    exports.UpdateDebrisData = u;
    const SetDebrisData = function(e) {
      s = e;
    };
    exports.SetDebrisData = SetDebrisData;
    const HasDebrisActivity = function() {
      return !!s;
    };
    exports.HasDebrisActivity = HasDebrisActivity;
    const GetDebrisData = function() {
      return s;
    };
    exports.GetDebrisData = GetDebrisData;
    const GetDebrisActivityData = function() {
      return r;
    };
    exports.GetDebrisActivityData = GetDebrisActivityData;
    const GetDebrisIconID = function(e) {
      for (var t = 0; t < r.debris.length; t++) if (r.debris[t].no == e) return r.debris[t].icon;
      return 0;
    };
    exports.GetDebrisIconID = GetDebrisIconID;
    const ExchangeDebris = function(e, t) {
      var o = new MT3SETB_mtf_pb_wrapper_1.mtf.DebrisExchangeReq();
      o.activityNo = r.no;
      o.amount = t;
      o.formula = e;
      var n = MT3SETB_mtf_pb_wrapper_1.mtf.DebrisExchangeReq.encode(o);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DEBRIS_EXCHANGE, n);
    };
    exports.ExchangeDebris = ExchangeDebris;
    const GetDebrisChangedCnt = function(e) {
      for (var t = 0; t < s.changelist.length; t++) if (s.changelist[t].formula == e) return s.changelist[t].count;
      return 0;
    };
    exports.GetDebrisChangedCnt = GetDebrisChangedCnt;
    exports.GetMyDebrisCount = d;
    const GetExchangableCnt = function(e) {
      for (var t = 0; t < r.formula.length; t++) if (r.formula[t].no == e) {
        for (var o = r.formula[t], n = 999, i = 0; i < o.dn.length && !(o.dc[i] <= 0); i++) n = Math.min(n, Math.floor(d(o.dn[i]) / o.dc[i]));
        return Math.max(0, n);
      }
      return 0;
    };
    exports.GetExchangableCnt = GetExchangableCnt;
    const Exchange = function(e, t) {
      var o = new MT3SETB_mtf_pb_wrapper_1.mtf.DebrisExchangeReq();
      o.activityNo = r.no;
      o.amount = t;
      o.formula = e;
      var n = MT3SETB_mtf_pb_wrapper_1.mtf.DebrisExchangeReq.encode(o);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_DEBRIS_EXCHANGE, n);
    };
    exports.Exchange = Exchange;
    const clear = function() {
      s = null;
      s = null;
      clearInterval(l);
      clearInterval(c);
    };
    exports.clear = clear;
    cc._RF.pop();
  }, {
    "./MT3SETB-event": "MT3SETB-event",
    "./MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-websocket": "MT3SETB-websocket"
  } ],
  "MT3SETB-device": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "7f387WGFg9M/aO5Mu5HaZtW", "MT3SETB-device");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.GetDeviceModel = exports.GetiOSDevice = void 0;
    var n = function(e, t, o, n, i, a) {
      this.name = e;
      this.height = t;
      this.width = o;
      this.ratio = n;
      this.statusHeight = i;
      this.homeHeight = a;
    }, i = [ new n("iPhone 6.7-inch", 926, 428, 3, 44, 34), new n("iPhone 6.5-inch", 896, 414, 3, 44, 34), new n("iPhone 6.1-inch", 896, 414, 2, 44, 34), new n("iPhone 5.8-inch", 812, 375, 3, 44, 34), new n("iPhone 5.5-inch", 736, 414, 3, 18, 0), new n("iPhone 4.7-inch", 667, 375, 2, 20, 0), new n("iPhone 4-inch", 568, 320, 2, 20, 0), new n("iPhone 3.5-inch", 480, 320, 2, 20, 0), new n("iPhone(Legacy) & iPod Touch", 480, 320, 1, 20, 0), new n("iPad Pro 12.9-inch", 1366, 1024, 2, 20, 0), new n("iPad Pro 10.5-inch", 1112, 834, 2, 20, 0), new n("iPad 9.7-inch Retina", 1024, 768, 2, 20, 0), new n("iPad", 1024, 768, 1, 20, 0), new n("iPad Mini Retina", 1024, 768, 2, 20, 0), new n("iPad Mini", 1024, 768, 1, 20, 0) ];
    function a() {
      for (var e = 0, t = i; e < t.length; e++) {
        var o = t[e];
        if (screen.height === o.height && screen.width === o.width && window.devicePixelRatio === o.ratio) return o;
      }
      return null;
    }
    exports.GetiOSDevice = a;
    const GetDeviceModel = function() {
      if (cc.sys.os == cc.sys.OS_IOS) {
        var e = a();
        if (null != e) return e.name;
      } else if (cc.sys.os == cc.sys.OS_ANDROID) {
        var t = /Mozilla\/5.0\s*\([^\(\)]*?(Android[^\(\)]*?);\s*([^\(\)]*?)\)/g.exec(navigator.userAgent);
        if (t && t.length > 2) return t[2].split(" Build")[0];
      }
      return "";
    };
    exports.GetDeviceModel = GetDeviceModel;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-event": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "4e180eUQNRLUK8DxzX160if", "MT3SETB-event");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.EventBus = exports.EventHandler = void 0;
    class n {
      constructor() {
        this.channel = new Map();
      }
      post(e, ...args) {
        for (var t, o = [], n = 1; n < arguments.length; n++) o[n - 1] = arguments[n];
        this.channel.has(e) && (t = this.channel.get(e)).post.apply(t, o);
      }
      register(e, t) {
        this.channel.has(e) || this.channel.set(e, new i());
        this.channel.get(e).register(t);
      }
      unregister(e, t) {
        this.channel.has(e) && this.channel.get(e).unregister(t) <= 0 && this.channel.delete(e);
      }
    }
    class i {
      constructor() {
        this.subscriber = [];
      }
      post(...args) {
        for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
        this.subscriber.forEach(function(t) {
          t.apply(void 0, e);
        });
      }
      register(e) {
        -1 == this.subscriber.indexOf(e) && this.subscriber.push(e);
        return this.subscriber.length;
      }
      unregister(e) {
        this.subscriber = this.subscriber.filter(function(t) {
          return t != e;
        });
        return this.subscriber.length;
      }
    }
    class EventHandler {
      constructor() {
        this.list = [];
      }
      add(e) {
        null != e && -1 == this.list.indexOf(e) && this.list.push(e);
      }
      remove(e) {
        null != e && (this.list = this.list.filter(function(t) {
          return t != e;
        }));
      }
      emit(e) {
        this.list.forEach(function(t) {
          t.emit(e);
        });
      }
    }
    exports.EventHandler = EventHandler;
    var r = new n();
    exports.EventBus = r;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-favorite": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "0d9a6fLmqFKAa7NsObYAhp7", "MT3SETB-favorite");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.GetGameIconUrl = exports.IsFavorite = exports.RemoveFavorite = exports.AddFavorite = exports.HasFavorite = exports.GetFavorite = exports.SetFavorite = exports.Favorite = void 0;
    const MT3SETB_mtf_pb_wrapper_1 = require("./MT3SETB-mtf_pb_wrapper");
    const MT3SETB_platform_1 = require("./MT3SETB-platform");
    const MT3SETB_websocket_1 = require("./MT3SETB-websocket");
    let s = [], c = false, l = function() {};
    function u(e) {
      var t = MT3SETB_platform_1.GetHost() + "smallicon/Icons/", o = new l();
      o.id = e.id;
      o.icon = t + `${e.id}_${d()}.jpg`;
      o.dau = e.dau;
      return o;
    }
    function d() {
      var e = MT3SETB_platform_1.GetLang().toLocaleLowerCase();
      return e.indexOf("tw") > -1 ? "tw" : e.indexOf("cn") > -1 ? "cn" : "en";
    }
    exports.Favorite = l;
    const SetFavorite = function(e) {
      if (e && 1 == e.enabled) {
        c = e.enabled;
        e.list.forEach(function(e) {
          s.push(u(e));
        });
      }
    };
    exports.SetFavorite = SetFavorite;
    const GetFavorite = function() {
      return s;
    };
    exports.GetFavorite = GetFavorite;
    const HasFavorite = function() {
      return c;
    };
    exports.HasFavorite = HasFavorite;
    const AddFavorite = function(e, t) {
      s.push(u({
        id: e,
        dau: t
      }));
      var o = new MT3SETB_mtf_pb_wrapper_1.mtf.GameId();
      o.game = e;
      var n = MT3SETB_mtf_pb_wrapper_1.mtf.GameId.encode(o);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_FAVORITE_ADD, n);
    };
    exports.AddFavorite = AddFavorite;
    const RemoveFavorite = function(e) {
      s = s.filter(function(t) {
        return t.id != e;
      });
      var t = new MT3SETB_mtf_pb_wrapper_1.mtf.GameId();
      t.game = e;
      var o = MT3SETB_mtf_pb_wrapper_1.mtf.GameId.encode(t);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_FAVORITE_REMOVE, o);
    };
    exports.RemoveFavorite = RemoveFavorite;
    const IsFavorite = function(e) {
      return s.filter(function(t) {
        return t.id == e;
      }).length > 0;
    };
    exports.IsFavorite = IsFavorite;
    const GetGameIconUrl = function(e) {
      return MT3SETB_platform_1.GetHost() + "smallicon/Icons/" + `${e}_${d()}.jpg`;
    };
    exports.GetGameIconUrl = GetGameIconUrl;
    cc._RF.pop();
  }, {
    "./MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-platform": "MT3SETB-platform",
    "./MT3SETB-websocket": "MT3SETB-websocket"
  } ],
  "MT3SETB-free_gift_node": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ad955baknBCz5VguDqitnar", "MT3SETB-free_gift_node");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.free_gift_node = void 0;
    const MT3SETB_language_1 = require("../../../../script/common/api/MT3SETB-language");
    const MT3SETB_numeral_1 = require("../../../../script/common/api/MT3SETB-numeral");
    const MT3SETB_platform_1 = require("../../../../script/common/api/MT3SETB-platform");
    const MT3SETB_vip_1 = require("../../../../script/common/api/MT3SETB-vip");
    const MT3SETB_utils2_1 = require("../../../../script/framework/framework/MT3SETB-utils2");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let free_gift_node = class free_gift_node extends cc.Component {
      constructor() {
        super();
        this.anim = null;
        this.lstChestIdle = [];
        this.lstChestOpen = [];
        this.progressBar = null;
        this.progressText = null;
        this.levelIcon = null;
        this.getText_1 = null;
        this.getText_2 = null;
        this.lockIcon = null;
        this.darkMask = null;
        this.tipText = null;
        this.commImg = null;
        this.vipSpr_name = "lv";
        this.lockText_no = 5048;
        this.giftData = null;
      }
      onLoad() {
        this.getText_1.string = "", this.getText_2.string = "";
        var e = MT3SETB_platform_1.GetApiID();
        e >= 100 && e <= 499 && (this.vipSpr_name = "vip", this.lockText_no = 5049);
      }
      updateGift(e) {
        this.giftData = e;
        this.setLevel(e.level);
        var t = cc.misc.clampf(e.exp, 0, e.maxExp);
        switch (e.state) {
         case 1:
          this.setDisplay("Lock");
          this.getText_1.string = MT3SETB_language_1.GetLanguage(4005);
          this.setProgressText(t, e.maxExp);
          this.setProgress(t / e.maxExp);
          break;

         case 2:
          this.setDisplay("Progress");
          this.getText_1.string = MT3SETB_language_1.GetLanguage(4005);
          this.setProgressText(t, e.maxExp);
          this.setProgress(t / e.maxExp);
          break;

         case 3:
          this.setDisplay("Reward");
          this.getText_2.string = MT3SETB_language_1.GetLanguage(4005);
          this.setProgressText(e.maxExp, e.maxExp);
          this.setProgress(1);
          break;

         case 4:
          this.setDisplay("Close");
          this.getText_1.string = MT3SETB_language_1.GetLanguage(4008);
          this.setProgressText(e.maxExp, e.maxExp);
          this.setProgress(1);
        }
      }
      setLevel(e) {
        var t = Math.min(this.lstChestIdle.length, this.lstChestOpen.length);
        e = cc.misc.clampf(e, 1, t);
        this.tipText.string = MT3SETB_utils2_1.sprintf(MT3SETB_language_1.GetLanguage(this.lockText_no), e.toFixed(0));
        var o = this.vipSpr_name + e.toString();
        this.levelIcon.spriteFrame = this.commImg.getSpriteFrame(o);
        for (var i = 1; i <= t; ++i) {
          var r = this.lstChestIdle[i - 1];
          r && (r.active = i === e);
          var s = this.lstChestOpen[i - 1];
          s && (s.active = i === e);
        }
      }
      setDisplay(e) {
        switch (e) {
         case "Lock":
          this.anim.play("VIP_Idle");
          this.lockIcon.active = true;
          this.darkMask.active = true;
          break;

         case "Progress":
          this.anim.play("VIP_Idle");
          this.lockIcon.active = false;
          this.darkMask.active = false;
          break;

         case "Reward":
          this.anim.play("VIP_Get");
          this.lockIcon.active = false;
          this.darkMask.active = false;
          break;

         case "Close":
          this.anim.play("VIP_End");
          this.lockIcon.active = false;
          this.darkMask.active = true;
        }
      }
      setProgress(e) {
        this.progressBar.progress = e;
      }
      setProgressText(e, t) {
        var o = MT3SETB_numeral_1.numeral(e).format("0,0.[00]"), n = MT3SETB_numeral_1.numeral(t).format("0,0.[00]");
        this.progressText.string = o + "/" + n;
      }
      sendGiftGetReward() {
        MT3SETB_vip_1.GetVipSignReward(this.giftData.index);
      }
    };
    __decorate([ property(cc.Animation) ], free_gift_node.prototype, "anim", void 0);
    __decorate([ property([ cc.Node ]) ], free_gift_node.prototype, "lstChestIdle", void 0);
    __decorate([ property([ cc.Node ]) ], free_gift_node.prototype, "lstChestOpen", void 0);
    __decorate([ property(cc.ProgressBar) ], free_gift_node.prototype, "progressBar", void 0);
    __decorate([ property(cc.Label) ], free_gift_node.prototype, "progressText", void 0);
    __decorate([ property(cc.Sprite) ], free_gift_node.prototype, "levelIcon", void 0);
    __decorate([ property(cc.Label) ], free_gift_node.prototype, "getText_1", void 0);
    __decorate([ property(cc.Label) ], free_gift_node.prototype, "getText_2", void 0);
    __decorate([ property(cc.Node) ], free_gift_node.prototype, "lockIcon", void 0);
    __decorate([ property(cc.Node) ], free_gift_node.prototype, "darkMask", void 0);
    __decorate([ property(cc.Label) ], free_gift_node.prototype, "tipText", void 0);
    __decorate([ property(cc.SpriteAtlas) ], free_gift_node.prototype, "commImg", void 0);
    free_gift_node = __decorate([ ccclass ], free_gift_node);
    exports.free_gift_node = free_gift_node;
    cc._RF.pop();
  }, {
    "../../../../script/common/api/MT3SETB-language": "MT3SETB-language",
    "../../../../script/common/api/MT3SETB-numeral": "MT3SETB-numeral",
    "../../../../script/common/api/MT3SETB-platform": "MT3SETB-platform",
    "../../../../script/common/api/MT3SETB-vip": "MT3SETB-vip",
    "../../../../script/framework/framework/MT3SETB-utils2": "MT3SETB-utils2"
  } ],
  "MT3SETB-free_gift_page": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "70127TnbgZNFaAk7QT90G0k", "MT3SETB-free_gift_page");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.free_gift_page = void 0;
    const MT3SETB_glue_1 = __importDefault(require("../../../../script/common/api/MT3SETB-glue"));
    const MT3SETB_language_1 = require("../../../../script/common/api/MT3SETB-language");
    const MT3SETB_platform_1 = require("../../../../script/common/api/MT3SETB-platform");
    const MT3SETB_vip_1 = require("../../../../script/common/api/MT3SETB-vip");
    const MT3SETB_free_gift_node_1 = require("./MT3SETB-free_gift_node");
    const MT3SETB_win_more_menu_1 = require("./MT3SETB-win_more_menu");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let free_gift_page = class free_gift_page extends cc.Component {
      constructor() {
        super();
        this.giftPrefab = null;
        this.scrollView = null;
        this.tipText = null;
        this.winMoreMenu = null;
        this.lstGift = [];
        this.tipText_no = 72;
      }
      onLoad() {
        this.winMoreMenu = MT3SETB_glue_1.default.lookup(this.node, MT3SETB_win_more_menu_1.win_more_menu);
        this.schedule(this.updateGiftUIData.bind(this, false), 1, cc.macro.REPEAT_FOREVER);
        var e = MT3SETB_platform_1.GetApiID();
        e >= 100 && e <= 499 && (this.tipText_no = 73);
      }
      onEnable() {
        this.updateGiftUIData();
      }
      updateGiftUIData(e = true) {
        if (false === MT3SETB_vip_1.HasVipData()) {
          this.lstGift.forEach(function(e) {
            return e.node.destroy();
          });
          return void (this.lstGift.length = 0);
        }
        var t = MT3SETB_vip_1.GetVipData(), o = t.treasure;
        this.checkGifts(o.length).forEach(function(e, t) {
          return e.updateGift(o[t]);
        });
        var n = t.treasure.findIndex(function(e) {
          return 3 === e.state;
        });
        this.winMoreMenu.showRedDot("FreeGift", n >= 0);
        if (true === e) if (n >= 0) this.scrollTo(n); else {
          var a = t.treasure.findIndex(function(e) {
            return 2 === e.state;
          });
          -1 === a && (a = t.level - 1);
          this.scrollTo(a);
        }
        this.tipText.string = MT3SETB_language_1.GetLanguage(this.tipText_no);
      }
      checkGifts(e) {
        if (this.lstGift.length !== e) {
          this.lstGift.forEach(function(e) {
            return e.node.destroy();
          });
          this.lstGift.length = 0;
          for (var t = 0; t < e; ++t) {
            var o = cc.instantiate(this.giftPrefab);
            o.setParent(this.scrollView.content);
            this.lstGift.push(o.getComponent(MT3SETB_free_gift_node_1.free_gift_node));
          }
        }
        return this.lstGift;
      }
      scrollTo(e) {
        var t = cc.misc.clamp01(e / this.lstGift.length * 2);
        this.scrollView.horizontal ? this.scrollView.scrollToPercentHorizontal(t, .5) : this.scrollView.scrollToPercentVertical(t, .5);
      }
      onVipSignAck() {
        MT3SETB_glue_1.default.uiCtrl_checkToolRedPoint();
        true === this.enabled && this.updateGiftUIData();
      }
      clickHintIcon() {
        MT3SETB_glue_1.default.openVipWeb && MT3SETB_glue_1.default.openVipWeb();
      }
    };
    __decorate([ property(cc.Prefab) ], free_gift_page.prototype, "giftPrefab", void 0);
    __decorate([ property(cc.ScrollView) ], free_gift_page.prototype, "scrollView", void 0);
    __decorate([ property(cc.Label) ], free_gift_page.prototype, "tipText", void 0);
    free_gift_page = __decorate([ ccclass ], free_gift_page);
    exports.free_gift_page = free_gift_page;
    cc._RF.pop();
  }, {
    "../../../../script/common/api/MT3SETB-glue": "MT3SETB-glue",
    "../../../../script/common/api/MT3SETB-language": "MT3SETB-language",
    "../../../../script/common/api/MT3SETB-platform": "MT3SETB-platform",
    "../../../../script/common/api/MT3SETB-vip": "MT3SETB-vip",
    "./MT3SETB-free_gift_node": "MT3SETB-free_gift_node",
    "./MT3SETB-win_more_menu": "MT3SETB-win_more_menu"
  } ],
  "MT3SETB-freechest_get": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "f4306UewhpFiIohJzTXyvXx", "MT3SETB-freechest_get");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.freechest_get = void 0;
    const MT3SETB_glue_1 = __importDefault(require("../../../../script/common/api/MT3SETB-glue"));
    const {ccclass: ccclass, property: property} = cc._decorator;
    let freechest_get = class freechest_get extends cc.Component {
      constructor() {
        super();
        this.treasureBoxPrefab = [];
        this.titleWord = [];
        this.boxNodes = [];
        this.canSelect = false;
        this.timer = 5;
      }
      playBoxOpen(e, t, o) {
        var i = this, a = [];
        this.boxNodes = [];
        this.canSelect = false;
        for (var r = 0; r < t.length; r++) a.push(t[r]);
        this.titleWord[e].active = true;
        var s = this.node.getChildByName("Root").getChildByName("RedEnvelopeItem"), c = function(r) {
          var c = cc.instantiate(l.treasureBoxPrefab[e]);
          s.getChildByName("TreasureItem0" + r).addChild(c);
          l.boxNodes.push(c);
          s.getChildByName("TreasureItem0" + r).on("click", function() {
            if (i.canSelect) {
              for (var e = [], a = 0; a < t.length; a++) t[a] != o && e.push(t[a]);
              var s = function(t) {
                var a = i.boxNodes[t - 1];
                if (r == t) {
                  a.getChildByName("RedEnvelopeOpen01").getChildByName("RedEnvelopeOpen01_Num").getComponent(cc.Label).string = MT3SETB_glue_1.default.getThousandsNum(o);
                  a.getComponent(cc.Animation).play(a.getComponent(cc.Animation).getClips()[0].name);
                } else {
                  var s = Math.floor(Math.random() * e.length);
                  a.getChildByName("RedEnvelopeOpen01").getChildByName("RedEnvelopeOpen01_Num").getComponent(cc.Label).string = MT3SETB_glue_1.default.getThousandsNum(e[s]);
                  a.getChildByName("RedEnvelopeOpen01").getChildByName("RedEnvelopeOpen01_NumDark").getComponent(cc.Label).string = MT3SETB_glue_1.default.getThousandsNum(e[s]);
                  e.splice(s, 1);
                  i.scheduleOnce(function() {
                    a.getComponent(cc.Animation).play("TreasureBowl_Open_03");
                  }, .8);
                }
              };
              for (a = 1; a <= 6; a++) s(a);
              i.scheduleOnce(function() {
                var e = MT3SETB_glue_1.default.gameCtrl_getPlayerSeat();
                MT3SETB_glue_1.default.bankSys_addClientTypeCoin("reward", e, -o);
                MT3SETB_glue_1.default.bankSys_addServerCoin(e, o);
                MT3SETB_glue_1.default.bankSys_addClientCoin(e, o);
                MT3SETB_glue_1.default.gameCtrl_updateTurretCoin(e);
                i.node.destroy();
              }, 3);
              i.node.getChildByName("Root").getChildByName("Countdown").active = false;
              i.scheduleOnce(function() {}, .4);
              i.canSelect = false;
            }
          });
          var u = Math.floor(Math.random() * a.length);
          c.getChildByName("RedEnvelopeOpen01").getChildByName("RedEnvelopeOpen01_Num").getComponent(cc.Label).string = MT3SETB_glue_1.default.getThousandsNum(a[u]);
          a.splice(u, 1);
        }, l = this;
        for (r = 1; r <= 6; r++) c(r);
        this.timer = 5;
        this.node.getChildByName("Root").getComponent(cc.Animation).play();
        this.node.getChildByName("Root").getComponent(cc.Animation).once("finished", function() {
          i.canSelect = true;
          var e = function() {
            if (i.node && i.canSelect) {
              i.timer--;
              if (i.timer > 0) i.node.getChildByName("Root").getChildByName("Countdown").getComponent(cc.Label).string = i.timer.toString(); else {
                var t = Math.floor(6 * Math.random()) + 1;
                s.getChildByName("TreasureItem0" + t).emit("click");
              }
            } else i.unschedule(e);
          };
          i.schedule(e, 1, cc.macro.REPEAT_FOREVER, 1);
        });
        this.scheduleOnce(function() {}, 2.33);
        this.scheduleOnce(function() {
          for (var e = function(e) {
            e.getComponent(cc.Animation).play("TreasureBowl_Open_02");
            e.getComponent(cc.Animation).once("finished", function() {
              e.getComponent(cc.Animation).play("TreasureBowl_Close");
            });
          }, t = 0, o = i.boxNodes; t < o.length; t++) e(o[t]);
        }, .9);
      }
    };
    __decorate([ property([ cc.Prefab ]) ], freechest_get.prototype, "treasureBoxPrefab", void 0);
    __decorate([ property([ cc.Node ]) ], freechest_get.prototype, "titleWord", void 0);
    freechest_get = __decorate([ ccclass ], freechest_get);
    exports.freechest_get = freechest_get;
    cc._RF.pop();
  }, {
    "../../../../script/common/api/MT3SETB-glue": "MT3SETB-glue"
  } ],
  "MT3SETB-freechest_page": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "3ba82lJ/ntERoaZQ/BtZAmH", "MT3SETB-freechest_page");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.freechest_page = void 0;
    const MT3SETB_glue_1 = __importDefault(require("../../../../script/common/api/MT3SETB-glue"));
    const MT3SETB_language_1 = require("../../../../script/common/api/MT3SETB-language");
    const MT3SETB_reward_1 = require("../../../../script/common/api/MT3SETB-reward");
    const MT3SETB_freechest_get_1 = require("./MT3SETB-freechest_get");
    const MT3SETB_win_more_menu_1 = require("./MT3SETB-win_more_menu");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let freechest_page = class freechest_page extends cc.Component {
      constructor() {
        super();
        this.switchPageAnim = null;
        this.moneyAnims = [];
        this.lockTxt = [];
        this.unLockTxt = [];
        this.goldNums = [];
        this.progressBar = null;
        this.getButton = null;
        this.getRewardAnim = null;
        this.winMoreMenu = null;
        this.currentPage = 0;
        this.getBtnAnim = null;
      }
      onLoad() {
        this.winMoreMenu = MT3SETB_glue_1.default.lookup(this.node, MT3SETB_win_more_menu_1.win_more_menu);
        this.schedule(this.updateUI.bind(this), 1, cc.macro.REPEAT_FOREVER);
        this.getBtnAnim = this.getButton.getComponent(cc.Animation);
      }
      onEnable() {
        this.currentPage = cc.misc.clampf(MT3SETB_reward_1.GetChestMaxLevel(), 0, 2);
        this.switchPage(null, this.currentPage.toString());
      }
      updateUI() {
        var e = this, t = MT3SETB_reward_1.GetChestRewadData(), o = t.exp >= t.reward[this.currentPage].expCost;
        this.moneyAnims.forEach(function(e) {
          var t = o ? "TreasureBack_Get" : "TreasureBack_Idle";
          e.getAnimationState(t).isPlaying || e.play(t);
        });
        this.lockTxt.forEach(function(e) {
          e.active = !o;
        });
        this.unLockTxt.forEach(function(e) {
          e.active = o;
        });
        this.goldNums.forEach(function(o, n) {
          o.string = t.reward[e.currentPage].rewardList[n].toString();
        });
        this.progressBar.progress = o ? 1 : t.exp / t.reward[this.currentPage].expCost * .97;
        this.getButton.interactable = o;
        o ? this.getBtnAnim.getAnimationState(this.getBtnAnim.defaultClip.name).isPlaying || this.getBtnAnim.play() : this.getBtnAnim.stop();
        var n = MT3SETB_reward_1.GetChestMaxLevel() >= 0;
        this.winMoreMenu.showRedDot("FreeChest", n);
      }
      switchPage(e, t) {
        var o = Number(t);
        if (true === MT3SETB_reward_1.HasChestRewadData() && o < MT3SETB_reward_1.GetChestMaxLevel()) MT3SETB_glue_1.default.msgOK(MT3SETB_language_1.GetLanguage(4010)); else {
          this.currentPage = o;
          this.switchPageAnim.play(this.switchPageAnim.getClips()[o].name);
          this.updateUI();
        }
      }
      getReward() {
        this.currentPage < MT3SETB_reward_1.GetChestMaxLevel() ? MT3SETB_glue_1.default.msgOK(MT3SETB_language_1.GetLanguage(4010)) : MT3SETB_reward_1.GetChestReward(this.currentPage + 1);
      }
      onLevelRewardAck(e) {
        this.updateUI();
        var t = MT3SETB_glue_1.default.gameCtrl_getPlayerSeat();
        MT3SETB_glue_1.default.bankSys_addClientTypeCoin("reward", t, e.reward);
        MT3SETB_glue_1.default.uiCtrl_checkToolRedPoint();
        var o = cc.instantiate(this.getRewardAnim);
        o.setParent(this.winMoreMenu.node);
        o.getComponent(MT3SETB_freechest_get_1.freechest_get).playBoxOpen(e.level - 1, MT3SETB_reward_1.GetChestRewadData().reward[e.level - 1].rewardList, e.reward);
      }
      showHelp() {
        MT3SETB_glue_1.default.msgOK(MT3SETB_language_1.GetLanguage(4009));
      }
    };
    __decorate([ property(cc.Animation) ], freechest_page.prototype, "switchPageAnim", void 0);
    __decorate([ property(cc.Animation) ], freechest_page.prototype, "moneyAnims", void 0);
    __decorate([ property(cc.Node) ], freechest_page.prototype, "lockTxt", void 0);
    __decorate([ property(cc.Node) ], freechest_page.prototype, "unLockTxt", void 0);
    __decorate([ property(cc.Label) ], freechest_page.prototype, "goldNums", void 0);
    __decorate([ property(cc.ProgressBar) ], freechest_page.prototype, "progressBar", void 0);
    __decorate([ property(cc.Button) ], freechest_page.prototype, "getButton", void 0);
    __decorate([ property(cc.Prefab) ], freechest_page.prototype, "getRewardAnim", void 0);
    freechest_page = __decorate([ ccclass ], freechest_page);
    exports.freechest_page = freechest_page;
    cc._RF.pop();
  }, {
    "../../../../script/common/api/MT3SETB-glue": "MT3SETB-glue",
    "../../../../script/common/api/MT3SETB-language": "MT3SETB-language",
    "../../../../script/common/api/MT3SETB-reward": "MT3SETB-reward",
    "./MT3SETB-freechest_get": "MT3SETB-freechest_get",
    "./MT3SETB-win_more_menu": "MT3SETB-win_more_menu"
  } ],
  "MT3SETB-game_logo": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "7a54ey6oy1BwZ1EoY4Gm3ZA", "MT3SETB-game_logo");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.game_logo = void 0;
    const MT3SETB_platform_1 = require("../api/MT3SETB-platform");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let game_logo = class game_logo extends cc.Component {
      constructor() {
        super();
        this.sprList = [];
        this.target = null;
        this.check = null;
      }
      onLoad() {}
      start() {
        var e = this;
        this.target = this.node.getComponent(cc.Sprite);
        if (this.target) {
          this.check = function() {
            var t = MT3SETB_platform_1.GetApiID();
            if (t > 0) {
              e.setLogo(t);
              e.unschedule(e.check);
            }
          };
          this.check();
          this.schedule(this.check, .1);
        }
      }
      setLogo(...args) {
        var e = this.sprList[0];
        MT3SETB_platform_1.checkIndiaApp() ? e = this.sprList[1] : MT3SETB_platform_1.checkTaDaVersion() ? e = this.sprList[2] : MT3SETB_platform_1.checkJiliStarVersion() && (e = this.sprList[3]);
        this.target.spriteFrame = e;
      }
    };
    __decorate([ property([ cc.SpriteFrame ]) ], game_logo.prototype, "sprList", void 0);
    game_logo = __decorate([ ccclass ], game_logo);
    exports.game_logo = game_logo;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-platform": "MT3SETB-platform"
  } ],
  "MT3SETB-glue": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "a392cKzLExDLZIIzd2MnPvC", "MT3SETB-glue");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.default = {
      msgOK: null,
      msgYesNo: null,
      getThousandsNum: null,
      bankSys_addServerCoin: null,
      bankSys_addClientCoin: null,
      bankSys_addClientTypeCoin: null,
      gameCtrl_updateTurretCoin: null,
      gameCtrl_getPlayerSeat: null,
      gameCtrl_checkChangeGame: null,
      backpack_getImage: null,
      backpack_setImage: null,
      backpack_setItemCardImg: null,
      backpack_addCard: null,
      uiCtrl_checkToolRedPoint: null,
      openVipWeb: null,
      playEffect: null,
      getCoinTypeStr: null,
      getBackpackXML: null,
      getXML: null,
      changeGameID: -1,
      lookup: function(e, t) {
        for (var o = e.parent; o; ) {
          var n = o.getComponent(t);
          if (n) return n;
          o = o.parent;
        }
        return null;
      },
      getGameName: function(t) {
        return this.getXML ? this.getXML("GAMEID_" + t) : "";
      }
    };
    cc._RF.pop();
  }, {} ],
  "MT3SETB-google-protobuf": [ function(require, module, exports) {
    (function(global) {
      "use strict";
      cc._RF.push(module, "372e7orsFhDA6atNTiiT3cX", "MT3SETB-google-protobuf");
      "use strict";
      "undefined" === typeof self && (window.self = window);
      var aa = "function" == typeof Object.defineProperties ? Object.defineProperty : function(a, b, c) {
        a != Array.prototype && a != Object.prototype && (a[b] = c.value);
      }, e = "undefined" != typeof window && void 0 === window ? void 0 : "undefined" != typeof global && null != global ? global : void 0;
      function ba(a, b) {
        if (b) {
          var c = e;
          a = a.split(".");
          for (var d = 0; d < a.length - 1; d++) {
            var f = a[d];
            f in c || (c[f] = {});
            c = c[f];
          }
          a = a[a.length - 1];
          d = c[a];
          b = b(d);
          b != d && null != b && aa(c, a, {
            configurable: !0,
            writable: !0,
            value: b
          });
        }
      }
      function ca(a) {
        var b = 0;
        return function() {
          return b < a.length ? {
            done: !1,
            value: a[b++]
          } : {
            done: !0
          };
        };
      }
      function da() {
        da = function da() {};
        e.Symbol || (e.Symbol = ea);
      }
      function fa(a, b) {
        this.a = a;
        aa(this, "description", {
          configurable: !0,
          writable: !0,
          value: b
        });
      }
      fa.prototype.toString = function() {
        return this.a;
      };
      var ea = function() {
        function a(c) {
          if (this instanceof a) throw new TypeError("Symbol is not a constructor");
          return new fa("jscomp_symbol_" + (c || "") + "_" + b++, c);
        }
        var b = 0;
        return a;
      }();
      function ha() {
        da();
        var a = e.Symbol.iterator;
        a || (a = e.Symbol.iterator = e.Symbol("Symbol.iterator"));
        "function" != typeof Array.prototype[a] && aa(Array.prototype, a, {
          configurable: !0,
          writable: !0,
          value: function value() {
            return ia(ca(this));
          }
        });
        ha = function ha() {};
      }
      function ia(a) {
        ha();
        a = {
          next: a
        };
        a[e.Symbol.iterator] = function() {
          return this;
        };
        return a;
      }
      function ja(a, b) {
        ha();
        a instanceof String && (a += "");
        var c = 0, d = {
          next: function next() {
            if (c < a.length) {
              var f = c++;
              return {
                value: b(f, a[f]),
                done: !1
              };
            }
            d.next = function() {
              return {
                done: !0,
                value: void 0
              };
            };
            return d.next();
          }
        };
        d[Symbol.iterator] = function() {
          return d;
        };
        return d;
      }
      ba("Array.prototype.entries", function(a) {
        return a || function() {
          return ja(this, function(b, c) {
            return [ b, c ];
          });
        };
      });
      var ka = (void 0, self);
      function g(a, b, c) {
        a = a.split(".");
        c = c || ka;
        a[0] in c || "undefined" == typeof c.execScript || c.execScript("var " + a[0]);
        for (var d; a.length && (d = a.shift()); ) a.length || void 0 === b ? c = c[d] && c[d] !== Object.prototype[d] ? c[d] : c[d] = {} : c[d] = b;
      }
      function k(a) {
        var b = typeof a;
        if ("object" == b) {
          if (!a) return "null";
          if (a instanceof Array) return "array";
          if (a instanceof Object) return b;
          var c = Object.prototype.toString.call(a);
          if ("[object Window]" == c) return "object";
          if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) return "array";
          if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) return "function";
        } else if ("function" == b && "undefined" == typeof a.call) return "object";
        return b;
      }
      function la(a) {
        var b = typeof a;
        return "object" == b && null != a || "function" == b;
      }
      function ma(a, b, c) {
        g(a, b, c);
      }
      function na(a, b) {
        function c() {}
        c.prototype = b.prototype;
        a.prototype = new c();
        a.prototype.constructor = a;
      }
      var oa = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
      function pa(a, b) {
        for (var c, d, f = 1; f < arguments.length; f++) {
          d = arguments[f];
          for (c in d) a[c] = d[c];
          for (var h = 0; h < oa.length; h++) c = oa[h], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);
        }
      }
      var qa = Array.prototype.forEach ? function(a, b) {
        Array.prototype.forEach.call(a, b, void 0);
      } : function(a, b) {
        for (var c = a.length, d = "string" === typeof a ? a.split("") : a, f = 0; f < c; f++) f in d && b.call(void 0, d[f], f, a);
      }, l = Array.prototype.map ? function(a, b) {
        return Array.prototype.map.call(a, b, void 0);
      } : function(a, b) {
        for (var c = a.length, d = Array(c), f = "string" === typeof a ? a.split("") : a, h = 0; h < c; h++) h in f && (d[h] = b.call(void 0, f[h], h, a));
        return d;
      };
      function ra(a, b, c) {
        return 2 >= arguments.length ? Array.prototype.slice.call(a, b) : Array.prototype.slice.call(a, b, c);
      }
      function sa(a, b, c, d) {
        var f = "Assertion failed";
        if (c) {
          f += ": " + c;
          var h = d;
        } else a && (f += ": " + a, h = b);
        throw Error(f, h || []);
      }
      function n(a, b, c) {
        for (var d = [], f = 2; f < arguments.length; ++f) d[f - 2] = arguments[f];
        a || sa("", null, b, d);
        return a;
      }
      function ta(a, b, c) {
        for (var d = [], f = 2; f < arguments.length; ++f) d[f - 2] = arguments[f];
        "string" !== typeof a && sa("Expected string but got %s: %s.", [ k(a), a ], b, d);
      }
      function ua(a, b, c) {
        for (var d = [], f = 2; f < arguments.length; ++f) d[f - 2] = arguments[f];
        Array.isArray(a) || sa("Expected array but got %s: %s.", [ k(a), a ], b, d);
      }
      function p(a, b) {
        for (var c = [], d = 1; d < arguments.length; ++d) c[d - 1] = arguments[d];
        throw Error("Failure" + (a ? ": " + a : ""), c);
      }
      function q(a, b, c, d) {
        for (var f = [], h = 3; h < arguments.length; ++h) f[h - 3] = arguments[h];
        a instanceof b || sa("Expected instanceof %s but got %s.", [ va(b), va(a) ], c, f);
      }
      function va(a) {
        return a instanceof Function ? a.displayName || a.name || "unknown type name" : a instanceof Object ? a.constructor.displayName || a.constructor.name || Object.prototype.toString.call(a) : null === a ? "null" : typeof a;
      }
      function r(a, b) {
        this.c = a;
        this.b = b;
        this.a = {};
        this.arrClean = !0;
        if (0 < this.c.length) {
          for (a = 0; a < this.c.length; a++) {
            b = this.c[a];
            var c = b[0];
            this.a[c.toString()] = new wa(c, b[1]);
          }
          this.arrClean = !0;
        }
      }
      g("jspb.Map", r, void 0);
      r.prototype.g = function() {
        if (this.arrClean) {
          if (this.b) {
            var a = this.a, b;
            for (b in a) if (Object.prototype.hasOwnProperty.call(a, b)) {
              var c = a[b].a;
              c && c.g();
            }
          }
        } else {
          this.c.length = 0;
          a = u(this);
          a.sort();
          for (b = 0; b < a.length; b++) {
            var d = this.a[a[b]];
            (c = d.a) && c.g();
            this.c.push([ d.key, d.value ]);
          }
          this.arrClean = !0;
        }
        return this.c;
      };
      r.prototype.toArray = r.prototype.g;
      r.prototype.Mc = function(a, b) {
        for (var c = this.g(), d = [], f = 0; f < c.length; f++) {
          var h = this.a[c[f][0].toString()];
          v(this, h);
          var m = h.a;
          m ? (n(b), d.push([ h.key, b(a, m) ])) : d.push([ h.key, h.value ]);
        }
        return d;
      };
      r.prototype.toObject = r.prototype.Mc;
      r.fromObject = function(a, b, c) {
        b = new r([], b);
        for (var d = 0; d < a.length; d++) {
          var f = a[d][0], h = c(a[d][1]);
          b.set(f, h);
        }
        return b;
      };
      function w(a) {
        this.a = 0;
        this.b = a;
      }
      w.prototype.next = function() {
        return this.a < this.b.length ? {
          done: !1,
          value: this.b[this.a++]
        } : {
          done: !0,
          value: void 0
        };
      };
      "undefined" != typeof Symbol && (w.prototype[Symbol.iterator] = function() {
        return this;
      });
      r.prototype.Jb = function() {
        return u(this).length;
      };
      r.prototype.getLength = r.prototype.Jb;
      r.prototype.clear = function() {
        this.a = {};
        this.arrClean = !1;
      };
      r.prototype.clear = r.prototype.clear;
      r.prototype.Cb = function(a) {
        a = a.toString();
        var b = this.a.hasOwnProperty(a);
        delete this.a[a];
        this.arrClean = !1;
        return b;
      };
      r.prototype.del = r.prototype.Cb;
      r.prototype.Eb = function() {
        var a = [], b = u(this);
        b.sort();
        for (var c = 0; c < b.length; c++) {
          var d = this.a[b[c]];
          a.push([ d.key, d.value ]);
        }
        return a;
      };
      r.prototype.getEntryList = r.prototype.Eb;
      r.prototype.entries = function() {
        var a = [], b = u(this);
        b.sort();
        for (var c = 0; c < b.length; c++) {
          var d = this.a[b[c]];
          a.push([ d.key, v(this, d) ]);
        }
        return new w(a);
      };
      r.prototype.entries = r.prototype.entries;
      r.prototype.keys = function() {
        var a = [], b = u(this);
        b.sort();
        for (var c = 0; c < b.length; c++) a.push(this.a[b[c]].key);
        return new w(a);
      };
      r.prototype.keys = r.prototype.keys;
      r.prototype.values = function() {
        var a = [], b = u(this);
        b.sort();
        for (var c = 0; c < b.length; c++) a.push(v(this, this.a[b[c]]));
        return new w(a);
      };
      r.prototype.values = r.prototype.values;
      r.prototype.forEach = function(a, b) {
        var c = u(this);
        c.sort();
        for (var d = 0; d < c.length; d++) {
          var f = this.a[c[d]];
          a.call(b, v(this, f), f.key, this);
        }
      };
      r.prototype.forEach = r.prototype.forEach;
      r.prototype.set = function(a, b) {
        var c = new wa(a);
        this.b ? (c.a = b, c.value = b.g()) : c.value = b;
        this.a[a.toString()] = c;
        this.arrClean = !1;
        return this;
      };
      r.prototype.set = r.prototype.set;
      function v(a, b) {
        return a.b ? (b.a || (b.a = new a.b(b.value)), b.a) : b.value;
      }
      r.prototype.get = function(a) {
        if (a = this.a[a.toString()]) return v(this, a);
      };
      r.prototype.get = r.prototype.get;
      r.prototype.has = function(a) {
        return a.toString() in this.a;
      };
      r.prototype.has = r.prototype.has;
      r.prototype.Jc = function(a, b, c, d, f) {
        var h = u(this);
        h.sort();
        for (var m = 0; m < h.length; m++) {
          var t = this.a[h[m]];
          b.Va(a);
          c.call(b, 1, t.key);
          this.b ? d.call(b, 2, v(this, t), f) : d.call(b, 2, t.value);
          b.Ya();
        }
      };
      r.prototype.serializeBinary = r.prototype.Jc;
      r.deserializeBinary = function(a, b, c, d, f, h, m) {
        for (;b.oa() && !b.bb(); ) {
          var t = b.c;
          1 == t ? h = c.call(b) : 2 == t && (a.b ? (n(f), m || (m = new a.b()), d.call(b, m, f)) : m = d.call(b));
        }
        n(void 0 != h);
        n(void 0 != m);
        a.set(h, m);
      };
      function u(a) {
        a = a.a;
        var b = [], c;
        for (c in a) Object.prototype.hasOwnProperty.call(a, c) && b.push(c);
        return b;
      }
      function wa(a, b) {
        this.key = a;
        this.value = b;
        this.a = void 0;
      }
      function xa(a) {
        if (8192 >= a.length) return String.fromCharCode.apply(null, a);
        for (var b = "", c = 0; c < a.length; c += 8192) b += String.fromCharCode.apply(null, ra(a, c, c + 8192));
        return b;
      }
      var ya = {
        "\0": "\\0",
        "\b": "\\b",
        "\f": "\\f",
        "\n": "\\n",
        "\r": "\\r",
        "\t": "\\t",
        "\v": "\\x0B",
        '"': '\\"',
        "\\": "\\\\",
        "<": "\\u003C"
      }, za = {
        "'": "\\'"
      };
      var Aa = {}, x = null;
      function Ba(a, b) {
        void 0 === b && (b = 0);
        Ca();
        b = Aa[b];
        for (var c = [], d = 0; d < a.length; d += 3) {
          var f = a[d], h = d + 1 < a.length, m = h ? a[d + 1] : 0, t = d + 2 < a.length, B = t ? a[d + 2] : 0, M = f >> 2;
          f = (3 & f) << 4 | m >> 4;
          m = (15 & m) << 2 | B >> 6;
          B &= 63;
          t || (B = 64, h || (m = 64));
          c.push(b[M], b[f], b[m] || "", b[B] || "");
        }
        return c.join("");
      }
      function Da(a) {
        var b = a.length, c = 3 * b / 4;
        c % 3 ? c = Math.floor(c) : -1 != "=.".indexOf(a[b - 1]) && (c = -1 != "=.".indexOf(a[b - 2]) ? c - 2 : c - 1);
        var d = new Uint8Array(c), f = 0;
        Ea(a, function(h) {
          d[f++] = h;
        });
        return d.subarray(0, f);
      }
      function Ea(a, b) {
        function c(B) {
          for (;d < a.length; ) {
            var M = a.charAt(d++), La = x[M];
            if (null != La) return La;
            if (!/^[\s\xa0]*$/.test(M)) throw Error("Unknown base64 encoding at char: " + M);
          }
          return B;
        }
        Ca();
        for (var d = 0; ;) {
          var f = c(-1), h = c(0), m = c(64), t = c(64);
          if (64 === t && -1 === f) break;
          b(f << 2 | h >> 4);
          64 != m && (b(h << 4 & 240 | m >> 2), 64 != t && b(m << 6 & 192 | t));
        }
      }
      function Ca() {
        if (!x) {
          x = {};
          for (var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""), b = [ "+/=", "+/", "-_=", "-_.", "-_" ], c = 0; 5 > c; c++) {
            var d = a.concat(b[c].split(""));
            Aa[c] = d;
            for (var f = 0; f < d.length; f++) {
              var h = d[f];
              void 0 === x[h] && (x[h] = f);
            }
          }
        }
      }
      g("jspb.ConstBinaryMessage", function() {}, void 0);
      g("jspb.BinaryMessage", function() {}, void 0);
      g("jspb.BinaryConstants.FieldType", {
        yb: -1,
        ee: 1,
        FLOAT: 2,
        ke: 3,
        te: 4,
        je: 5,
        xb: 6,
        wb: 7,
        BOOL: 8,
        re: 9,
        ie: 10,
        le: 11,
        ce: 12,
        se: 13,
        ge: 14,
        me: 15,
        ne: 16,
        oe: 17,
        pe: 18,
        he: 30,
        ve: 31
      }, void 0);
      g("jspb.BinaryConstants.WireType", {
        yb: -1,
        ue: 0,
        xb: 1,
        de: 2,
        qe: 3,
        fe: 4,
        wb: 5
      }, void 0);
      g("jspb.BinaryConstants.FieldTypeToWireType", function(a) {
        switch (a) {
         case 5:
         case 3:
         case 13:
         case 4:
         case 17:
         case 18:
         case 8:
         case 14:
         case 31:
          return 0;

         case 1:
         case 6:
         case 16:
         case 30:
          return 1;

         case 9:
         case 11:
         case 12:
          return 2;

         case 2:
         case 7:
         case 15:
          return 5;

         default:
          return -1;
        }
      }, void 0);
      g("jspb.BinaryConstants.INVALID_FIELD_NUMBER", -1, void 0);
      g("jspb.BinaryConstants.FLOAT32_EPS", 1401298464324817e-60, void 0);
      g("jspb.BinaryConstants.FLOAT32_MIN", 11754943508222875e-54, void 0);
      g("jspb.BinaryConstants.FLOAT32_MAX", 34028234663852886e22, void 0);
      g("jspb.BinaryConstants.FLOAT64_EPS", 5e-324, void 0);
      g("jspb.BinaryConstants.FLOAT64_MIN", 22250738585072014e-324, void 0);
      g("jspb.BinaryConstants.FLOAT64_MAX", 17976931348623157e292, void 0);
      g("jspb.BinaryConstants.TWO_TO_20", 1048576, void 0);
      g("jspb.BinaryConstants.TWO_TO_23", 8388608, void 0);
      g("jspb.BinaryConstants.TWO_TO_31", 2147483648, void 0);
      g("jspb.BinaryConstants.TWO_TO_32", 4294967296, void 0);
      g("jspb.BinaryConstants.TWO_TO_52", 4503599627370496, void 0);
      g("jspb.BinaryConstants.TWO_TO_63", 0x8000000000000000, void 0);
      g("jspb.BinaryConstants.TWO_TO_64", 0x10000000000000000, void 0);
      g("jspb.BinaryConstants.ZERO_HASH", "\0\0\0\0\0\0\0\0", void 0);
      var y = 0, z = 0;
      g("jspb.utils.getSplit64Low", function() {
        return y;
      }, void 0);
      g("jspb.utils.getSplit64High", function() {
        return z;
      }, void 0);
      function Fa(a) {
        var b = a >>> 0;
        a = Math.floor((a - b) / 4294967296) >>> 0;
        y = b;
        z = a;
      }
      g("jspb.utils.splitUint64", Fa, void 0);
      function A(a) {
        var b = 0 > a;
        a = Math.abs(a);
        var c = a >>> 0;
        a = Math.floor((a - c) / 4294967296);
        a >>>= 0;
        b && (a = ~a >>> 0, c = 1 + (~c >>> 0), 4294967295 < c && (c = 0, a++, 4294967295 < a && (a = 0)));
        y = c;
        z = a;
      }
      g("jspb.utils.splitInt64", A, void 0);
      function Ga(a) {
        var b = 0 > a;
        a = 2 * Math.abs(a);
        Fa(a);
        a = y;
        var c = z;
        b && (0 == a ? 0 == c ? c = a = 4294967295 : (c--, a = 4294967295) : a--);
        y = a;
        z = c;
      }
      g("jspb.utils.splitZigzag64", Ga, void 0);
      function Ha(a) {
        var b = 0 > a ? 1 : 0;
        a = b ? -a : a;
        if (0 === a) 0 < 1 / a ? y = z = 0 : (z = 0, y = 2147483648); else if (isNaN(a)) z = 0, 
        y = 2147483647; else if (34028234663852886e22 < a) z = 0, y = (b << 31 | 2139095040) >>> 0; else if (11754943508222875e-54 > a) a = Math.round(a / Math.pow(2, -149)), 
        z = 0, y = (b << 31 | a) >>> 0; else {
          var c = Math.floor(Math.log(a) / Math.LN2);
          a *= Math.pow(2, -c);
          a = Math.round(8388608 * a);
          16777216 <= a && ++c;
          z = 0;
          y = (b << 31 | c + 127 << 23 | 8388607 & a) >>> 0;
        }
      }
      g("jspb.utils.splitFloat32", Ha, void 0);
      function Ia(a) {
        var b = 0 > a ? 1 : 0;
        a = b ? -a : a;
        if (0 === a) z = 0 < 1 / a ? 0 : 2147483648, y = 0; else if (isNaN(a)) z = 2147483647, 
        y = 4294967295; else if (17976931348623157e292 < a) z = (b << 31 | 2146435072) >>> 0, 
        y = 0; else if (22250738585072014e-324 > a) a /= Math.pow(2, -1074), z = (b << 31 | a / 4294967296) >>> 0, 
        y = a >>> 0; else {
          var c = a, d = 0;
          if (2 <= c) for (;2 <= c && 1023 > d; ) d++, c /= 2; else for (;1 > c && -1022 < d; ) c *= 2, 
          d--;
          a *= Math.pow(2, -d);
          z = (b << 31 | d + 1023 << 20 | 1048576 * a & 1048575) >>> 0;
          y = 4503599627370496 * a >>> 0;
        }
      }
      g("jspb.utils.splitFloat64", Ia, void 0);
      function C(a) {
        var b = a.charCodeAt(4), c = a.charCodeAt(5), d = a.charCodeAt(6), f = a.charCodeAt(7);
        y = a.charCodeAt(0) + (a.charCodeAt(1) << 8) + (a.charCodeAt(2) << 16) + (a.charCodeAt(3) << 24) >>> 0;
        z = b + (c << 8) + (d << 16) + (f << 24) >>> 0;
      }
      g("jspb.utils.splitHash64", C, void 0);
      function D(a, b) {
        return 4294967296 * b + (a >>> 0);
      }
      g("jspb.utils.joinUint64", D, void 0);
      function E(a, b) {
        var c = 2147483648 & b;
        c && (a = 1 + ~a >>> 0, b = ~b >>> 0, 0 == a && (b = b + 1 >>> 0));
        a = D(a, b);
        return c ? -a : a;
      }
      g("jspb.utils.joinInt64", E, void 0);
      function Ja(a, b, c) {
        var d = b >> 31;
        return c(a << 1 ^ d, (b << 1 | a >>> 31) ^ d);
      }
      g("jspb.utils.toZigzag64", Ja, void 0);
      function Ka(a, b) {
        return Ma(a, b, E);
      }
      g("jspb.utils.joinZigzag64", Ka, void 0);
      function Ma(a, b, c) {
        var d = -(1 & a);
        return c((a >>> 1 | b << 31) ^ d, b >>> 1 ^ d);
      }
      g("jspb.utils.fromZigzag64", Ma, void 0);
      function Na(a) {
        var b = 2 * (a >> 31) + 1, c = a >>> 23 & 255;
        a &= 8388607;
        return 255 == c ? a ? NaN : Infinity * b : 0 == c ? b * Math.pow(2, -149) * a : b * Math.pow(2, c - 150) * (a + Math.pow(2, 23));
      }
      g("jspb.utils.joinFloat32", Na, void 0);
      function Oa(a, b) {
        var c = 2 * (b >> 31) + 1, d = b >>> 20 & 2047;
        a = 4294967296 * (1048575 & b) + a;
        return 2047 == d ? a ? NaN : Infinity * c : 0 == d ? c * Math.pow(2, -1074) * a : c * Math.pow(2, d - 1075) * (a + 4503599627370496);
      }
      g("jspb.utils.joinFloat64", Oa, void 0);
      function Pa(a, b) {
        return String.fromCharCode(a >>> 0 & 255, a >>> 8 & 255, a >>> 16 & 255, a >>> 24 & 255, b >>> 0 & 255, b >>> 8 & 255, b >>> 16 & 255, b >>> 24 & 255);
      }
      g("jspb.utils.joinHash64", Pa, void 0);
      g("jspb.utils.DIGITS", "0123456789abcdef".split(""), void 0);
      function F(a, b) {
        function c(f, h) {
          f = f ? String(f) : "";
          return h ? "0000000".slice(f.length) + f : f;
        }
        if (2097151 >= b) return "" + D(a, b);
        var d = (a >>> 24 | b << 8) >>> 0 & 16777215;
        b = b >> 16 & 65535;
        a = (16777215 & a) + 6777216 * d + 6710656 * b;
        d += 8147497 * b;
        b *= 2;
        1e7 <= a && (d += Math.floor(a / 1e7), a %= 1e7);
        1e7 <= d && (b += Math.floor(d / 1e7), d %= 1e7);
        return c(b, 0) + c(d, b) + c(a, 1);
      }
      g("jspb.utils.joinUnsignedDecimalString", F, void 0);
      function G(a, b) {
        var c = 2147483648 & b;
        c && (a = 1 + ~a >>> 0, b = ~b + (0 == a ? 1 : 0) >>> 0);
        a = F(a, b);
        return c ? "-" + a : a;
      }
      g("jspb.utils.joinSignedDecimalString", G, void 0);
      function Qa(a, b) {
        C(a);
        a = y;
        var c = z;
        return b ? G(a, c) : F(a, c);
      }
      g("jspb.utils.hash64ToDecimalString", Qa, void 0);
      g("jspb.utils.hash64ArrayToDecimalStrings", function(a, b) {
        for (var c = Array(a.length), d = 0; d < a.length; d++) c[d] = Qa(a[d], b);
        return c;
      }, void 0);
      function H(a) {
        function b(m, t) {
          for (var B = 0; 8 > B && (1 !== m || 0 < t); B++) t = m * f[B] + t, f[B] = 255 & t, 
          t >>>= 8;
        }
        function c() {
          for (var m = 0; 8 > m; m++) f[m] = 255 & ~f[m];
        }
        n(0 < a.length);
        var d = !1;
        "-" === a[0] && (d = !0, a = a.slice(1));
        for (var f = [ 0, 0, 0, 0, 0, 0, 0, 0 ], h = 0; h < a.length; h++) b(10, a.charCodeAt(h) - 48);
        d && (c(), b(1, 1));
        return xa(f);
      }
      g("jspb.utils.decimalStringToHash64", H, void 0);
      g("jspb.utils.splitDecimalString", function(a) {
        C(H(a));
      }, void 0);
      function Ra(a) {
        return String.fromCharCode(10 > a ? 48 + a : 87 + a);
      }
      function Sa(a) {
        return 97 <= a ? a - 97 + 10 : a - 48;
      }
      g("jspb.utils.hash64ToHexString", function(a) {
        var b = Array(18);
        b[0] = "0";
        b[1] = "x";
        for (var c = 0; 8 > c; c++) {
          var d = a.charCodeAt(7 - c);
          b[2 * c + 2] = Ra(d >> 4);
          b[2 * c + 3] = Ra(15 & d);
        }
        return b.join("");
      }, void 0);
      g("jspb.utils.hexStringToHash64", function(a) {
        a = a.toLowerCase();
        n(18 == a.length);
        n("0" == a[0]);
        n("x" == a[1]);
        for (var b = "", c = 0; 8 > c; c++) b = String.fromCharCode(16 * Sa(a.charCodeAt(2 * c + 2)) + Sa(a.charCodeAt(2 * c + 3))) + b;
        return b;
      }, void 0);
      g("jspb.utils.hash64ToNumber", function(a, b) {
        C(a);
        a = y;
        var c = z;
        return b ? E(a, c) : D(a, c);
      }, void 0);
      g("jspb.utils.numberToHash64", function(a) {
        A(a);
        return Pa(y, z);
      }, void 0);
      g("jspb.utils.countVarints", function(a, b, c) {
        for (var d = 0, f = b; f < c; f++) d += a[f] >> 7;
        return c - b - d;
      }, void 0);
      g("jspb.utils.countVarintFields", function(a, b, c, d) {
        var f = 0;
        d *= 8;
        if (128 > d) for (;b < c && a[b++] == d; ) for (f++; ;) {
          var h = a[b++];
          if (0 == (128 & h)) break;
        } else for (;b < c; ) {
          for (h = d; 128 < h; ) {
            if (a[b] != (127 & h | 128)) return f;
            b++;
            h >>= 7;
          }
          if (a[b++] != h) break;
          for (f++; h = a[b++], 0 != (128 & h); ) ;
        }
        return f;
      }, void 0);
      function Ta(a, b, c, d, f) {
        var h = 0;
        if (128 > d) for (;b < c && a[b++] == d; ) h++, b += f; else for (;b < c; ) {
          for (var m = d; 128 < m; ) {
            if (a[b++] != (127 & m | 128)) return h;
            m >>= 7;
          }
          if (a[b++] != m) break;
          h++;
          b += f;
        }
        return h;
      }
      g("jspb.utils.countFixed32Fields", function(a, b, c, d) {
        return Ta(a, b, c, 8 * d + 5, 4);
      }, void 0);
      g("jspb.utils.countFixed64Fields", function(a, b, c, d) {
        return Ta(a, b, c, 8 * d + 1, 8);
      }, void 0);
      g("jspb.utils.countDelimitedFields", function(a, b, c, d) {
        var f = 0;
        for (d = 8 * d + 2; b < c; ) {
          for (var h = d; 128 < h; ) {
            if (a[b++] != (127 & h | 128)) return f;
            h >>= 7;
          }
          if (a[b++] != h) break;
          f++;
          for (var m = 0, t = 1; h = a[b++], m += (127 & h) * t, t *= 128, 0 != (128 & h); ) ;
          b += m;
        }
        return f;
      }, void 0);
      g("jspb.utils.debugBytesToTextFormat", function(a) {
        var b = '"';
        if (a) {
          a = Ua(a);
          for (var c = 0; c < a.length; c++) b += "\\x", 16 > a[c] && (b += "0"), b += a[c].toString(16);
        }
        return b + '"';
      }, void 0);
      g("jspb.utils.debugScalarToTextFormat", function(a) {
        if ("string" === typeof a) {
          a = String(a);
          for (var b = [ '"' ], c = 0; c < a.length; c++) {
            var d = a.charAt(c), f = d.charCodeAt(0), h = c + 1, m;
            if (!(m = ya[d])) {
              if (!(31 < f && 127 > f)) if (f = d, f in za) d = za[f]; else if (f in ya) d = za[f] = ya[f]; else {
                m = f.charCodeAt(0);
                if (31 < m && 127 > m) d = f; else {
                  256 > m ? (d = "\\x", 16 > m || 256 < m) && (d += "0") : (d = "\\u", 4096 > m && (d += "0"));
                  d += m.toString(16).toUpperCase();
                }
                d = za[f] = d;
              }
              m = d;
            }
            b[h] = m;
          }
          b.push('"');
          a = b.join("");
        } else a = a.toString();
        return a;
      }, void 0);
      g("jspb.utils.stringToByteArray", function(a) {
        for (var b = new Uint8Array(a.length), c = 0; c < a.length; c++) {
          var d = a.charCodeAt(c);
          if (255 < d) throw Error("Conversion error: string contains codepoint outside of byte range");
          b[c] = d;
        }
        return b;
      }, void 0);
      function Ua(a) {
        if (a.constructor === Uint8Array) return a;
        if (a.constructor === ArrayBuffer) return new Uint8Array(a);
        if (a.constructor === Array) return new Uint8Array(a);
        if (a.constructor === String) return Da(a);
        if (a instanceof Uint8Array) return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
        p("Type not convertible to Uint8Array.");
        return new Uint8Array(0);
      }
      g("jspb.utils.byteSourceToUint8Array", Ua, void 0);
      function I(a, b, c) {
        this.b = null;
        this.a = this.c = this.h = 0;
        this.v = !1;
        a && this.H(a, b, c);
      }
      g("jspb.BinaryDecoder", I, void 0);
      var Va = [];
      I.getInstanceCacheLength = function() {
        return Va.length;
      };
      function Wa(a, b, c) {
        if (Va.length) {
          var d = Va.pop();
          a && d.H(a, b, c);
          return d;
        }
        return new I(a, b, c);
      }
      I.alloc = Wa;
      I.prototype.Ca = function() {
        this.clear();
        100 > Va.length && Va.push(this);
      };
      I.prototype.free = I.prototype.Ca;
      I.prototype.clone = function() {
        return Wa(this.b, this.h, this.c - this.h);
      };
      I.prototype.clone = I.prototype.clone;
      I.prototype.clear = function() {
        this.b = null;
        this.a = this.c = this.h = 0;
        this.v = !1;
      };
      I.prototype.clear = I.prototype.clear;
      I.prototype.Y = function() {
        return this.b;
      };
      I.prototype.getBuffer = I.prototype.Y;
      I.prototype.H = function(a, b, c) {
        this.b = Ua(a);
        this.h = void 0 !== b ? b : 0;
        this.c = void 0 !== c ? this.h + c : this.b.length;
        this.a = this.h;
      };
      I.prototype.setBlock = I.prototype.H;
      I.prototype.Db = function() {
        return this.c;
      };
      I.prototype.getEnd = I.prototype.Db;
      I.prototype.setEnd = function(a) {
        this.c = a;
      };
      I.prototype.setEnd = I.prototype.setEnd;
      I.prototype.reset = function() {
        this.a = this.h;
      };
      I.prototype.reset = I.prototype.reset;
      I.prototype.B = function() {
        return this.a;
      };
      I.prototype.getCursor = I.prototype.B;
      I.prototype.Ma = function(a) {
        this.a = a;
      };
      I.prototype.setCursor = I.prototype.Ma;
      I.prototype.advance = function(a) {
        this.a += a;
        n(this.a <= this.c);
      };
      I.prototype.advance = I.prototype.advance;
      I.prototype.ya = function() {
        return this.a == this.c;
      };
      I.prototype.atEnd = I.prototype.ya;
      I.prototype.Qb = function() {
        return this.a > this.c;
      };
      I.prototype.pastEnd = I.prototype.Qb;
      I.prototype.getError = function() {
        return this.v || 0 > this.a || this.a > this.c;
      };
      I.prototype.getError = I.prototype.getError;
      I.prototype.w = function(a) {
        for (var b = 128, c = 0, d = 0, f = 0; 4 > f && 128 <= b; f++) b = this.b[this.a++], 
        c |= (127 & b) << 7 * f;
        128 <= b && (b = this.b[this.a++], c |= (127 & b) << 28, d |= (127 & b) >> 4);
        if (128 <= b) for (f = 0; 5 > f && 128 <= b; f++) b = this.b[this.a++], d |= (127 & b) << 7 * f + 3;
        if (128 > b) return a(c >>> 0, d >>> 0);
        p("Failed to read varint, encoding is invalid.");
        this.v = !0;
      };
      I.prototype.readSplitVarint64 = I.prototype.w;
      I.prototype.ea = function(a) {
        return this.w(function(b, c) {
          return Ma(b, c, a);
        });
      };
      I.prototype.readSplitZigzagVarint64 = I.prototype.ea;
      I.prototype.ta = function(a) {
        var b = this.b, c = this.a;
        this.a += 8;
        for (var d = 0, f = 0, h = c + 7; h >= c; h--) d = d << 8 | b[h], f = f << 8 | b[h + 4];
        return a(d, f);
      };
      I.prototype.readSplitFixed64 = I.prototype.ta;
      I.prototype.kb = function() {
        for (;128 & this.b[this.a]; ) this.a++;
        this.a++;
      };
      I.prototype.skipVarint = I.prototype.kb;
      I.prototype.mb = function(a) {
        for (;128 < a; ) this.a--, a >>>= 7;
        this.a--;
      };
      I.prototype.unskipVarint = I.prototype.mb;
      I.prototype.o = function() {
        var a = this.b;
        var b = a[this.a];
        var c = 127 & b;
        if (128 > b) return this.a += 1, n(this.a <= this.c), c;
        b = a[this.a + 1];
        c |= (127 & b) << 7;
        if (128 > b) return this.a += 2, n(this.a <= this.c), c;
        b = a[this.a + 2];
        c |= (127 & b) << 14;
        if (128 > b) return this.a += 3, n(this.a <= this.c), c;
        b = a[this.a + 3];
        c |= (127 & b) << 21;
        if (128 > b) return this.a += 4, n(this.a <= this.c), c;
        b = a[this.a + 4];
        c |= (15 & b) << 28;
        if (128 > b) return this.a += 5, n(this.a <= this.c), c >>> 0;
        this.a += 5;
        128 <= a[this.a++] && 128 <= a[this.a++] && 128 <= a[this.a++] && 128 <= a[this.a++] && 128 <= a[this.a++] && n(!1);
        n(this.a <= this.c);
        return c;
      };
      I.prototype.readUnsignedVarint32 = I.prototype.o;
      I.prototype.da = function() {
        return ~~this.o();
      };
      I.prototype.readSignedVarint32 = I.prototype.da;
      I.prototype.O = function() {
        return this.o().toString();
      };
      I.prototype.Ea = function() {
        return this.da().toString();
      };
      I.prototype.readSignedVarint32String = I.prototype.Ea;
      I.prototype.Ia = function() {
        var a = this.o();
        return a >>> 1 ^ -(1 & a);
      };
      I.prototype.readZigzagVarint32 = I.prototype.Ia;
      I.prototype.Ga = function() {
        return this.w(D);
      };
      I.prototype.readUnsignedVarint64 = I.prototype.Ga;
      I.prototype.Ha = function() {
        return this.w(F);
      };
      I.prototype.readUnsignedVarint64String = I.prototype.Ha;
      I.prototype.sa = function() {
        return this.w(E);
      };
      I.prototype.readSignedVarint64 = I.prototype.sa;
      I.prototype.Fa = function() {
        return this.w(G);
      };
      I.prototype.readSignedVarint64String = I.prototype.Fa;
      I.prototype.Ja = function() {
        return this.w(Ka);
      };
      I.prototype.readZigzagVarint64 = I.prototype.Ja;
      I.prototype.fb = function() {
        return this.ea(Pa);
      };
      I.prototype.readZigzagVarintHash64 = I.prototype.fb;
      I.prototype.Ka = function() {
        return this.ea(G);
      };
      I.prototype.readZigzagVarint64String = I.prototype.Ka;
      I.prototype.Gc = function() {
        var a = this.b[this.a];
        this.a += 1;
        n(this.a <= this.c);
        return a;
      };
      I.prototype.readUint8 = I.prototype.Gc;
      I.prototype.Ec = function() {
        var a = this.b[this.a], b = this.b[this.a + 1];
        this.a += 2;
        n(this.a <= this.c);
        return a << 0 | b << 8;
      };
      I.prototype.readUint16 = I.prototype.Ec;
      I.prototype.m = function() {
        var a = this.b[this.a], b = this.b[this.a + 1], c = this.b[this.a + 2], d = this.b[this.a + 3];
        this.a += 4;
        n(this.a <= this.c);
        return (a << 0 | b << 8 | c << 16 | d << 24) >>> 0;
      };
      I.prototype.readUint32 = I.prototype.m;
      I.prototype.ga = function() {
        var a = this.m(), b = this.m();
        return D(a, b);
      };
      I.prototype.readUint64 = I.prototype.ga;
      I.prototype.ha = function() {
        var a = this.m(), b = this.m();
        return F(a, b);
      };
      I.prototype.readUint64String = I.prototype.ha;
      I.prototype.Xb = function() {
        var a = this.b[this.a];
        this.a += 1;
        n(this.a <= this.c);
        return a << 24 >> 24;
      };
      I.prototype.readInt8 = I.prototype.Xb;
      I.prototype.Vb = function() {
        var a = this.b[this.a], b = this.b[this.a + 1];
        this.a += 2;
        n(this.a <= this.c);
        return (a << 0 | b << 8) << 16 >> 16;
      };
      I.prototype.readInt16 = I.prototype.Vb;
      I.prototype.P = function() {
        var a = this.b[this.a], b = this.b[this.a + 1], c = this.b[this.a + 2], d = this.b[this.a + 3];
        this.a += 4;
        n(this.a <= this.c);
        return a << 0 | b << 8 | c << 16 | d << 24;
      };
      I.prototype.readInt32 = I.prototype.P;
      I.prototype.ba = function() {
        var a = this.m(), b = this.m();
        return E(a, b);
      };
      I.prototype.readInt64 = I.prototype.ba;
      I.prototype.ca = function() {
        var a = this.m(), b = this.m();
        return G(a, b);
      };
      I.prototype.readInt64String = I.prototype.ca;
      I.prototype.aa = function() {
        var a = this.m();
        return Na(a, 0);
      };
      I.prototype.readFloat = I.prototype.aa;
      I.prototype.Z = function() {
        var a = this.m(), b = this.m();
        return Oa(a, b);
      };
      I.prototype.readDouble = I.prototype.Z;
      I.prototype.pa = function() {
        return !!this.b[this.a++];
      };
      I.prototype.readBool = I.prototype.pa;
      I.prototype.ra = function() {
        return this.da();
      };
      I.prototype.readEnum = I.prototype.ra;
      I.prototype.fa = function(a) {
        var b = this.b, c = this.a;
        a = c + a;
        for (var d = [], f = ""; c < a; ) {
          var h = b[c++];
          if (128 > h) d.push(h); else {
            if (192 > h) continue;
            if (224 > h) {
              var m = b[c++];
              d.push((31 & h) << 6 | 63 & m);
            } else if (240 > h) {
              m = b[c++];
              var t = b[c++];
              d.push((15 & h) << 12 | (63 & m) << 6 | 63 & t);
            } else if (248 > h) {
              m = b[c++];
              t = b[c++];
              var B = b[c++];
              h = (7 & h) << 18 | (63 & m) << 12 | (63 & t) << 6 | 63 & B;
              h -= 65536;
              d.push(55296 + (h >> 10 & 1023), 56320 + (1023 & h));
            }
          }
          8192 <= d.length && (f += String.fromCharCode.apply(null, d), d.length = 0);
        }
        f += xa(d);
        this.a = c;
        return f;
      };
      I.prototype.readString = I.prototype.fa;
      I.prototype.Dc = function() {
        var a = this.o();
        return this.fa(a);
      };
      I.prototype.readStringWithLength = I.prototype.Dc;
      I.prototype.qa = function(a) {
        if (0 > a || this.a + a > this.b.length) return this.v = !0, p("Invalid byte length!"), 
        new Uint8Array(0);
        var b = this.b.subarray(this.a, this.a + a);
        this.a += a;
        n(this.a <= this.c);
        return b;
      };
      I.prototype.readBytes = I.prototype.qa;
      I.prototype.ia = function() {
        return this.w(Pa);
      };
      I.prototype.readVarintHash64 = I.prototype.ia;
      I.prototype.$ = function() {
        var a = this.b, b = this.a, c = a[b], d = a[b + 1], f = a[b + 2], h = a[b + 3], m = a[b + 4], t = a[b + 5], B = a[b + 6];
        a = a[b + 7];
        this.a += 8;
        return String.fromCharCode(c, d, f, h, m, t, B, a);
      };
      I.prototype.readFixedHash64 = I.prototype.$;
      function J(a, b, c) {
        this.a = Wa(a, b, c);
        this.O = this.a.B();
        this.b = this.c = -1;
        this.h = !1;
        this.v = null;
      }
      g("jspb.BinaryReader", J, void 0);
      var K = [];
      J.clearInstanceCache = function() {
        K = [];
      };
      J.getInstanceCacheLength = function() {
        return K.length;
      };
      function Xa(a, b, c) {
        if (K.length) {
          var d = K.pop();
          a && d.a.H(a, b, c);
          return d;
        }
        return new J(a, b, c);
      }
      J.alloc = Xa;
      J.prototype.zb = Xa;
      J.prototype.alloc = J.prototype.zb;
      J.prototype.Ca = function() {
        this.a.clear();
        this.b = this.c = -1;
        this.h = !1;
        this.v = null;
        100 > K.length && K.push(this);
      };
      J.prototype.free = J.prototype.Ca;
      J.prototype.Fb = function() {
        return this.O;
      };
      J.prototype.getFieldCursor = J.prototype.Fb;
      J.prototype.B = function() {
        return this.a.B();
      };
      J.prototype.getCursor = J.prototype.B;
      J.prototype.Y = function() {
        return this.a.Y();
      };
      J.prototype.getBuffer = J.prototype.Y;
      J.prototype.Hb = function() {
        return this.c;
      };
      J.prototype.getFieldNumber = J.prototype.Hb;
      J.prototype.Lb = function() {
        return this.b;
      };
      J.prototype.getWireType = J.prototype.Lb;
      J.prototype.Mb = function() {
        return 2 == this.b;
      };
      J.prototype.isDelimited = J.prototype.Mb;
      J.prototype.bb = function() {
        return 4 == this.b;
      };
      J.prototype.isEndGroup = J.prototype.bb;
      J.prototype.getError = function() {
        return this.h || this.a.getError();
      };
      J.prototype.getError = J.prototype.getError;
      J.prototype.H = function(a, b, c) {
        this.a.H(a, b, c);
        this.b = this.c = -1;
      };
      J.prototype.setBlock = J.prototype.H;
      J.prototype.reset = function() {
        this.a.reset();
        this.b = this.c = -1;
      };
      J.prototype.reset = J.prototype.reset;
      J.prototype.advance = function(a) {
        this.a.advance(a);
      };
      J.prototype.advance = J.prototype.advance;
      J.prototype.oa = function() {
        if (this.a.ya()) return !1;
        if (this.getError()) return p("Decoder hit an error"), !1;
        this.O = this.a.B();
        var a = this.a.o(), b = a >>> 3;
        a &= 7;
        if (0 != a && 5 != a && 1 != a && 2 != a && 3 != a && 4 != a) return p("Invalid wire type: %s (at position %s)", a, this.O), 
        this.h = !0, !1;
        this.c = b;
        this.b = a;
        return !0;
      };
      J.prototype.nextField = J.prototype.oa;
      J.prototype.Oa = function() {
        this.a.mb(this.c << 3 | this.b);
      };
      J.prototype.unskipHeader = J.prototype.Oa;
      J.prototype.Lc = function() {
        var a = this.c;
        for (this.Oa(); this.oa() && this.c == a; ) this.C();
        this.a.ya() || this.Oa();
      };
      J.prototype.skipMatchingFields = J.prototype.Lc;
      J.prototype.lb = function() {
        0 != this.b ? (p("Invalid wire type for skipVarintField"), this.C()) : this.a.kb();
      };
      J.prototype.skipVarintField = J.prototype.lb;
      J.prototype.gb = function() {
        if (2 != this.b) p("Invalid wire type for skipDelimitedField"), this.C(); else {
          var a = this.a.o();
          this.a.advance(a);
        }
      };
      J.prototype.skipDelimitedField = J.prototype.gb;
      J.prototype.hb = function() {
        5 != this.b ? (p("Invalid wire type for skipFixed32Field"), this.C()) : this.a.advance(4);
      };
      J.prototype.skipFixed32Field = J.prototype.hb;
      J.prototype.ib = function() {
        1 != this.b ? (p("Invalid wire type for skipFixed64Field"), this.C()) : this.a.advance(8);
      };
      J.prototype.skipFixed64Field = J.prototype.ib;
      J.prototype.jb = function() {
        var a = this.c;
        do {
          if (!this.oa()) {
            p("Unmatched start-group tag: stream EOF");
            this.h = !0;
            break;
          }
          if (4 == this.b) {
            this.c != a && (p("Unmatched end-group tag"), this.h = !0);
            break;
          }
          this.C();
        } while (1);
      };
      J.prototype.skipGroup = J.prototype.jb;
      J.prototype.C = function() {
        switch (this.b) {
         case 0:
          this.lb();
          break;

         case 1:
          this.ib();
          break;

         case 2:
          this.gb();
          break;

         case 5:
          this.hb();
          break;

         case 3:
          this.jb();
          break;

         default:
          p("Invalid wire encoding for field.");
        }
      };
      J.prototype.skipField = J.prototype.C;
      J.prototype.Hc = function(a, b) {
        null === this.v && (this.v = {});
        n(!this.v[a]);
        this.v[a] = b;
      };
      J.prototype.registerReadCallback = J.prototype.Hc;
      J.prototype.Ic = function(a) {
        n(null !== this.v);
        a = this.v[a];
        n(a);
        return a(this);
      };
      J.prototype.runReadCallback = J.prototype.Ic;
      J.prototype.Yb = function(a, b) {
        n(2 == this.b);
        var c = this.a.c, d = this.a.o();
        d = this.a.B() + d;
        this.a.setEnd(d);
        b(a, this);
        this.a.Ma(d);
        this.a.setEnd(c);
      };
      J.prototype.readMessage = J.prototype.Yb;
      J.prototype.Ub = function(a, b, c) {
        n(3 == this.b);
        n(this.c == a);
        c(b, this);
        this.h || 4 == this.b || (p("Group submessage did not end with an END_GROUP tag"), 
        this.h = !0);
      };
      J.prototype.readGroup = J.prototype.Ub;
      J.prototype.Gb = function() {
        n(2 == this.b);
        var a = this.a.o(), b = this.a.B(), c = b + a;
        a = Wa(this.a.Y(), b, a);
        this.a.Ma(c);
        return a;
      };
      J.prototype.getFieldDecoder = J.prototype.Gb;
      J.prototype.P = function() {
        n(0 == this.b);
        return this.a.da();
      };
      J.prototype.readInt32 = J.prototype.P;
      J.prototype.Wb = function() {
        n(0 == this.b);
        return this.a.Ea();
      };
      J.prototype.readInt32String = J.prototype.Wb;
      J.prototype.ba = function() {
        n(0 == this.b);
        return this.a.sa();
      };
      J.prototype.readInt64 = J.prototype.ba;
      J.prototype.ca = function() {
        n(0 == this.b);
        return this.a.Fa();
      };
      J.prototype.readInt64String = J.prototype.ca;
      J.prototype.m = function() {
        n(0 == this.b);
        return this.a.o();
      };
      J.prototype.readUint32 = J.prototype.m;
      J.prototype.Fc = function() {
        n(0 == this.b);
        return this.a.O();
      };
      J.prototype.readUint32String = J.prototype.Fc;
      J.prototype.ga = function() {
        n(0 == this.b);
        return this.a.Ga();
      };
      J.prototype.readUint64 = J.prototype.ga;
      J.prototype.ha = function() {
        n(0 == this.b);
        return this.a.Ha();
      };
      J.prototype.readUint64String = J.prototype.ha;
      J.prototype.zc = function() {
        n(0 == this.b);
        return this.a.Ia();
      };
      J.prototype.readSint32 = J.prototype.zc;
      J.prototype.Ac = function() {
        n(0 == this.b);
        return this.a.Ja();
      };
      J.prototype.readSint64 = J.prototype.Ac;
      J.prototype.Bc = function() {
        n(0 == this.b);
        return this.a.Ka();
      };
      J.prototype.readSint64String = J.prototype.Bc;
      J.prototype.Rb = function() {
        n(5 == this.b);
        return this.a.m();
      };
      J.prototype.readFixed32 = J.prototype.Rb;
      J.prototype.Sb = function() {
        n(1 == this.b);
        return this.a.ga();
      };
      J.prototype.readFixed64 = J.prototype.Sb;
      J.prototype.Tb = function() {
        n(1 == this.b);
        return this.a.ha();
      };
      J.prototype.readFixed64String = J.prototype.Tb;
      J.prototype.vc = function() {
        n(5 == this.b);
        return this.a.P();
      };
      J.prototype.readSfixed32 = J.prototype.vc;
      J.prototype.wc = function() {
        n(5 == this.b);
        return this.a.P().toString();
      };
      J.prototype.readSfixed32String = J.prototype.wc;
      J.prototype.xc = function() {
        n(1 == this.b);
        return this.a.ba();
      };
      J.prototype.readSfixed64 = J.prototype.xc;
      J.prototype.yc = function() {
        n(1 == this.b);
        return this.a.ca();
      };
      J.prototype.readSfixed64String = J.prototype.yc;
      J.prototype.aa = function() {
        n(5 == this.b);
        return this.a.aa();
      };
      J.prototype.readFloat = J.prototype.aa;
      J.prototype.Z = function() {
        n(1 == this.b);
        return this.a.Z();
      };
      J.prototype.readDouble = J.prototype.Z;
      J.prototype.pa = function() {
        n(0 == this.b);
        return !!this.a.o();
      };
      J.prototype.readBool = J.prototype.pa;
      J.prototype.ra = function() {
        n(0 == this.b);
        return this.a.sa();
      };
      J.prototype.readEnum = J.prototype.ra;
      J.prototype.fa = function() {
        n(2 == this.b);
        var a = this.a.o();
        return this.a.fa(a);
      };
      J.prototype.readString = J.prototype.fa;
      J.prototype.qa = function() {
        n(2 == this.b);
        var a = this.a.o();
        return this.a.qa(a);
      };
      J.prototype.readBytes = J.prototype.qa;
      J.prototype.ia = function() {
        n(0 == this.b);
        return this.a.ia();
      };
      J.prototype.readVarintHash64 = J.prototype.ia;
      J.prototype.Cc = function() {
        n(0 == this.b);
        return this.a.fb();
      };
      J.prototype.readSintHash64 = J.prototype.Cc;
      J.prototype.w = function(a) {
        n(0 == this.b);
        return this.a.w(a);
      };
      J.prototype.readSplitVarint64 = J.prototype.w;
      J.prototype.ea = function(a) {
        n(0 == this.b);
        return this.a.w(function(b, c) {
          return Ma(b, c, a);
        });
      };
      J.prototype.readSplitZigzagVarint64 = J.prototype.ea;
      J.prototype.$ = function() {
        n(1 == this.b);
        return this.a.$();
      };
      J.prototype.readFixedHash64 = J.prototype.$;
      J.prototype.ta = function(a) {
        n(1 == this.b);
        return this.a.ta(a);
      };
      J.prototype.readSplitFixed64 = J.prototype.ta;
      function L(a, b) {
        n(2 == a.b);
        var c = a.a.o();
        c = a.a.B() + c;
        for (var d = []; a.a.B() < c; ) d.push(b.call(a.a));
        return d;
      }
      J.prototype.gc = function() {
        return L(this, this.a.da);
      };
      J.prototype.readPackedInt32 = J.prototype.gc;
      J.prototype.hc = function() {
        return L(this, this.a.Ea);
      };
      J.prototype.readPackedInt32String = J.prototype.hc;
      J.prototype.ic = function() {
        return L(this, this.a.sa);
      };
      J.prototype.readPackedInt64 = J.prototype.ic;
      J.prototype.jc = function() {
        return L(this, this.a.Fa);
      };
      J.prototype.readPackedInt64String = J.prototype.jc;
      J.prototype.qc = function() {
        return L(this, this.a.o);
      };
      J.prototype.readPackedUint32 = J.prototype.qc;
      J.prototype.rc = function() {
        return L(this, this.a.O);
      };
      J.prototype.readPackedUint32String = J.prototype.rc;
      J.prototype.sc = function() {
        return L(this, this.a.Ga);
      };
      J.prototype.readPackedUint64 = J.prototype.sc;
      J.prototype.tc = function() {
        return L(this, this.a.Ha);
      };
      J.prototype.readPackedUint64String = J.prototype.tc;
      J.prototype.nc = function() {
        return L(this, this.a.Ia);
      };
      J.prototype.readPackedSint32 = J.prototype.nc;
      J.prototype.oc = function() {
        return L(this, this.a.Ja);
      };
      J.prototype.readPackedSint64 = J.prototype.oc;
      J.prototype.pc = function() {
        return L(this, this.a.Ka);
      };
      J.prototype.readPackedSint64String = J.prototype.pc;
      J.prototype.bc = function() {
        return L(this, this.a.m);
      };
      J.prototype.readPackedFixed32 = J.prototype.bc;
      J.prototype.cc = function() {
        return L(this, this.a.ga);
      };
      J.prototype.readPackedFixed64 = J.prototype.cc;
      J.prototype.dc = function() {
        return L(this, this.a.ha);
      };
      J.prototype.readPackedFixed64String = J.prototype.dc;
      J.prototype.kc = function() {
        return L(this, this.a.P);
      };
      J.prototype.readPackedSfixed32 = J.prototype.kc;
      J.prototype.lc = function() {
        return L(this, this.a.ba);
      };
      J.prototype.readPackedSfixed64 = J.prototype.lc;
      J.prototype.mc = function() {
        return L(this, this.a.ca);
      };
      J.prototype.readPackedSfixed64String = J.prototype.mc;
      J.prototype.fc = function() {
        return L(this, this.a.aa);
      };
      J.prototype.readPackedFloat = J.prototype.fc;
      J.prototype.$b = function() {
        return L(this, this.a.Z);
      };
      J.prototype.readPackedDouble = J.prototype.$b;
      J.prototype.Zb = function() {
        return L(this, this.a.pa);
      };
      J.prototype.readPackedBool = J.prototype.Zb;
      J.prototype.ac = function() {
        return L(this, this.a.ra);
      };
      J.prototype.readPackedEnum = J.prototype.ac;
      J.prototype.uc = function() {
        return L(this, this.a.ia);
      };
      J.prototype.readPackedVarintHash64 = J.prototype.uc;
      J.prototype.ec = function() {
        return L(this, this.a.$);
      };
      J.prototype.readPackedFixedHash64 = J.prototype.ec;
      function Ya(a, b, c, d, f) {
        this.ma = a;
        this.Ba = b;
        this.la = c;
        this.Na = d;
        this.na = f;
      }
      g("jspb.ExtensionFieldInfo", Ya, void 0);
      function Za(a, b, c, d, f, h) {
        this.Za = a;
        this.za = b;
        this.Aa = c;
        this.Wa = d;
        this.Ab = f;
        this.Nb = h;
      }
      g("jspb.ExtensionFieldBinaryInfo", Za, void 0);
      Ya.prototype.F = function() {
        return !!this.la;
      };
      Ya.prototype.isMessageType = Ya.prototype.F;
      function N() {}
      g("jspb.Message", N, void 0);
      N.GENERATE_TO_OBJECT = !0;
      N.GENERATE_FROM_OBJECT = !0;
      var $a = "function" == typeof Uint8Array;
      N.prototype.Ib = function() {
        return this.b;
      };
      N.prototype.getJsPbMessageId = N.prototype.Ib;
      N.initialize = function(a, b, c, d, f, h) {
        a.f = null;
        b || (b = c ? [ c ] : []);
        a.b = c ? String(c) : void 0;
        a.D = 0 === c ? -1 : 0;
        a.u = b;
        a: {
          c = a.u.length;
          b = -1;
          if (c && (b = c - 1, c = a.u[b], !(null === c || "object" != typeof c || Array.isArray(c) || $a && c instanceof Uint8Array))) {
            a.G = b - a.D;
            a.i = c;
            break a;
          }
          -1 < d ? (a.G = Math.max(d, b + 1 - a.D), a.i = null) : a.G = Number.MAX_VALUE;
        }
        a.a = {};
        if (f) for (d = 0; d < f.length; d++) b = f[d], b < a.G ? (b += a.D, a.u[b] = a.u[b] || ab) : (bb(a), 
        a.i[b] = a.i[b] || ab);
        if (h && h.length) for (d = 0; d < h.length; d++) cb(a, h[d]);
      };
      var ab = Object.freeze ? Object.freeze([]) : [];
      function bb(a) {
        var b = a.G + a.D;
        a.u[b] || (a.i = a.u[b] = {});
      }
      function db(a, b, c) {
        for (var d = [], f = 0; f < a.length; f++) d[f] = b.call(a[f], c, a[f]);
        return d;
      }
      N.toObjectList = db;
      N.toObjectExtension = function(a, b, c, d, f) {
        for (var h in c) {
          var m = c[h], t = d.call(a, m);
          if (null != t) {
            for (var B in m.Ba) if (m.Ba.hasOwnProperty(B)) break;
            b[B] = m.Na ? m.na ? db(t, m.Na, f) : m.Na(f, t) : t;
          }
        }
      };
      N.serializeBinaryExtensions = function(a, b, c, d) {
        for (var f in c) {
          var h = c[f], m = h.Za;
          if (!h.Aa) throw Error("Message extension present that was generated without binary serialization support");
          var t = d.call(a, m);
          if (null != t) if (m.F()) {
            if (!h.Wa) throw Error("Message extension present holding submessage without binary support enabled, and message is being serialized to binary format");
            h.Aa.call(b, m.ma, t, h.Wa);
          } else h.Aa.call(b, m.ma, t);
        }
      };
      N.readBinaryExtension = function(a, b, c, d, f) {
        var h = c[b.c];
        if (h) {
          c = h.Za;
          if (!h.za) throw Error("Deserializing extension whose generated code does not support binary format");
          if (c.F()) {
            var m = new c.la();
            h.za.call(b, m, h.Ab);
          } else m = h.za.call(b);
          c.na && !h.Nb ? (b = d.call(a, c)) ? b.push(m) : f.call(a, c, [ m ]) : f.call(a, c, m);
        } else b.C();
      };
      function O(a, b) {
        if (b < a.G) {
          b += a.D;
          var c = a.u[b];
          return c === ab ? a.u[b] = [] : c;
        }
        if (a.i) return c = a.i[b], c === ab ? a.i[b] = [] : c;
      }
      N.getField = O;
      N.getRepeatedField = function(a, b) {
        return O(a, b);
      };
      function eb(a, b) {
        a = O(a, b);
        return null == a ? a : +a;
      }
      N.getOptionalFloatingPointField = eb;
      function fb(a, b) {
        a = O(a, b);
        return null == a ? a : !!a;
      }
      N.getBooleanField = fb;
      N.getRepeatedFloatingPointField = function(a, b) {
        var c = O(a, b);
        a.a || (a.a = {});
        if (!a.a[b]) {
          for (var d = 0; d < c.length; d++) c[d] = +c[d];
          a.a[b] = !0;
        }
        return c;
      };
      N.getRepeatedBooleanField = function(a, b) {
        var c = O(a, b);
        a.a || (a.a = {});
        if (!a.a[b]) {
          for (var d = 0; d < c.length; d++) c[d] = !!c[d];
          a.a[b] = !0;
        }
        return c;
      };
      function gb(a) {
        if (null == a || "string" === typeof a) return a;
        if ($a && a instanceof Uint8Array) return Ba(a);
        p("Cannot coerce to b64 string: " + k(a));
        return null;
      }
      N.bytesAsB64 = gb;
      function hb(a) {
        if (null == a || a instanceof Uint8Array) return a;
        if ("string" === typeof a) return Da(a);
        p("Cannot coerce to Uint8Array: " + k(a));
        return null;
      }
      N.bytesAsU8 = hb;
      N.bytesListAsB64 = function(a) {
        ib(a);
        return a.length && "string" !== typeof a[0] ? l(a, gb) : a;
      };
      N.bytesListAsU8 = function(a) {
        ib(a);
        return !a.length || a[0] instanceof Uint8Array ? a : l(a, hb);
      };
      function ib(a) {
        if (a && 1 < a.length) {
          var b = k(a[0]);
          qa(a, function(c) {
            k(c) != b && p("Inconsistent type in JSPB repeated field array. Got " + k(c) + " expected " + b);
          });
        }
      }
      function jb(a, b, c) {
        a = O(a, b);
        return null == a ? c : a;
      }
      N.getFieldWithDefault = jb;
      N.getBooleanFieldWithDefault = function(a, b, c) {
        a = fb(a, b);
        return null == a ? c : a;
      };
      N.getFloatingPointFieldWithDefault = function(a, b, c) {
        a = eb(a, b);
        return null == a ? c : a;
      };
      N.getFieldProto3 = jb;
      N.getMapField = function(a, b, c, d) {
        a.f || (a.f = {});
        if (b in a.f) return a.f[b];
        var f = O(a, b);
        if (!f) {
          if (c) return;
          f = [];
          P(a, b, f);
        }
        return a.f[b] = new r(f, d);
      };
      function P(a, b, c) {
        q(a, N);
        b < a.G ? a.u[b + a.D] = c : (bb(a), a.i[b] = c);
        return a;
      }
      N.setField = P;
      N.setProto3IntField = function(a, b, c) {
        return Q(a, b, c, 0);
      };
      N.setProto3FloatField = function(a, b, c) {
        return Q(a, b, c, 0);
      };
      N.setProto3BooleanField = function(a, b, c) {
        return Q(a, b, c, !1);
      };
      N.setProto3StringField = function(a, b, c) {
        return Q(a, b, c, "");
      };
      N.setProto3BytesField = function(a, b, c) {
        return Q(a, b, c, "");
      };
      N.setProto3EnumField = function(a, b, c) {
        return Q(a, b, c, 0);
      };
      N.setProto3StringIntField = function(a, b, c) {
        return Q(a, b, c, "0");
      };
      function Q(a, b, c, d) {
        q(a, N);
        c !== d ? P(a, b, c) : b < a.G ? a.u[b + a.D] = null : (bb(a), delete a.i[b]);
        return a;
      }
      N.addToRepeatedField = function(a, b, c, d) {
        q(a, N);
        b = O(a, b);
        void 0 != d ? b.splice(d, 0, c) : b.push(c);
        return a;
      };
      function kb(a, b, c, d) {
        q(a, N);
        (c = cb(a, c)) && c !== b && void 0 !== d && (a.f && c in a.f && (a.f[c] = void 0), 
        P(a, c, void 0));
        return P(a, b, d);
      }
      N.setOneofField = kb;
      function cb(a, b) {
        for (var c, d, f = 0; f < b.length; f++) {
          var h = b[f], m = O(a, h);
          null != m && (c = h, d = m, P(a, h, void 0));
        }
        return c ? (P(a, c, d), c) : 0;
      }
      N.computeOneofCase = cb;
      N.getWrapperField = function(a, b, c, d) {
        a.f || (a.f = {});
        if (!a.f[c]) {
          var f = O(a, c);
          (d || f) && (a.f[c] = new b(f));
        }
        return a.f[c];
      };
      N.getRepeatedWrapperField = function(a, b, c) {
        lb(a, b, c);
        b = a.f[c];
        b == ab && (b = a.f[c] = []);
        return b;
      };
      function lb(a, b, c) {
        a.f || (a.f = {});
        if (!a.f[c]) {
          for (var d = O(a, c), f = [], h = 0; h < d.length; h++) f[h] = new b(d[h]);
          a.f[c] = f;
        }
      }
      N.setWrapperField = function(a, b, c) {
        q(a, N);
        a.f || (a.f = {});
        var d = c ? c.g() : c;
        a.f[b] = c;
        return P(a, b, d);
      };
      N.setOneofWrapperField = function(a, b, c, d) {
        q(a, N);
        a.f || (a.f = {});
        var f = d ? d.g() : d;
        a.f[b] = d;
        return kb(a, b, c, f);
      };
      N.setRepeatedWrapperField = function(a, b, c) {
        q(a, N);
        a.f || (a.f = {});
        c = c || [];
        for (var d = [], f = 0; f < c.length; f++) d[f] = c[f].g();
        a.f[b] = c;
        return P(a, b, d);
      };
      N.addToRepeatedWrapperField = function(a, b, c, d, f) {
        lb(a, d, b);
        var h = a.f[b];
        h || (h = a.f[b] = []);
        c = c || new d();
        a = O(a, b);
        void 0 != f ? (h.splice(f, 0, c), a.splice(f, 0, c.g())) : (h.push(c), a.push(c.g()));
        return c;
      };
      N.toMap = function(a, b, c, d) {
        for (var f = {}, h = 0; h < a.length; h++) f[b.call(a[h])] = c ? c.call(a[h], d, a[h]) : a[h];
        return f;
      };
      function mb(a) {
        if (a.f) for (var b in a.f) {
          var c = a.f[b];
          if (Array.isArray(c)) for (var d = 0; d < c.length; d++) c[d] && c[d].g(); else c && c.g();
        }
      }
      N.prototype.g = function() {
        mb(this);
        return this.u;
      };
      N.prototype.toArray = N.prototype.g;
      N.prototype.toString = function() {
        mb(this);
        return this.u.toString();
      };
      N.prototype.getExtension = function(a) {
        if (this.i) {
          this.f || (this.f = {});
          var b = a.ma;
          if (a.na) {
            if (a.F()) return this.f[b] || (this.f[b] = l(this.i[b] || [], function(c) {
              return new a.la(c);
            })), this.f[b];
          } else if (a.F()) return !this.f[b] && this.i[b] && (this.f[b] = new a.la(this.i[b])), 
          this.f[b];
          return this.i[b];
        }
      };
      N.prototype.getExtension = N.prototype.getExtension;
      N.prototype.Kc = function(a, b) {
        this.f || (this.f = {});
        bb(this);
        var c = a.ma;
        a.na ? (b = b || [], a.F() ? (this.f[c] = b, this.i[c] = l(b, function(d) {
          return d.g();
        })) : this.i[c] = b) : a.F() ? (this.f[c] = b, this.i[c] = b ? b.g() : b) : this.i[c] = b;
        return this;
      };
      N.prototype.setExtension = N.prototype.Kc;
      N.difference = function(a, b) {
        if (!(a instanceof b.constructor)) throw Error("Messages have different types.");
        var c = a.g();
        b = b.g();
        var d = [], f = 0, h = c.length > b.length ? c.length : b.length;
        a.b && (d[0] = a.b, f = 1);
        for (;f < h; f++) nb(c[f], b[f]) || (d[f] = b[f]);
        return new a.constructor(d);
      };
      N.equals = function(a, b) {
        return a == b || !(!a || !b) && a instanceof b.constructor && nb(a.g(), b.g());
      };
      function ob(a, b) {
        a = a || {};
        b = b || {};
        var c = {}, d;
        for (d in a) c[d] = 0;
        for (d in b) c[d] = 0;
        for (d in c) if (!nb(a[d], b[d])) return !1;
        return !0;
      }
      N.compareExtensions = ob;
      function nb(a, b) {
        if (a == b) return !0;
        if (!la(a) || !la(b)) return !!("number" === typeof a && isNaN(a) || "number" === typeof b && isNaN(b)) && String(a) == String(b);
        if (a.constructor != b.constructor) return !1;
        if ($a && a.constructor === Uint8Array) {
          if (a.length != b.length) return !1;
          for (var c = 0; c < a.length; c++) if (a[c] != b[c]) return !1;
          return !0;
        }
        if (a.constructor === Array) {
          var d = void 0, f = void 0, h = Math.max(a.length, b.length);
          for (c = 0; c < h; c++) {
            var m = a[c], t = b[c];
            m && m.constructor == Object && (n(void 0 === d), n(c === a.length - 1), d = m, 
            m = void 0);
            t && t.constructor == Object && (n(void 0 === f), n(c === b.length - 1), f = t, 
            t = void 0);
            if (!nb(m, t)) return !1;
          }
          return !d && !f || (d = d || {}, f = f || {}, ob(d, f));
        }
        if (a.constructor === Object) return ob(a, b);
        throw Error("Invalid type in JSPB array");
      }
      N.compareFields = nb;
      N.prototype.Bb = function() {
        return pb(this);
      };
      N.prototype.cloneMessage = N.prototype.Bb;
      N.prototype.clone = function() {
        return pb(this);
      };
      N.prototype.clone = N.prototype.clone;
      N.clone = function(a) {
        return pb(a);
      };
      function pb(a) {
        return new a.constructor(qb(a.g()));
      }
      N.copyInto = function(a, b) {
        q(a, N);
        q(b, N);
        n(a.constructor == b.constructor, "Copy source and target message should have the same type.");
        a = pb(a);
        for (var c = b.g(), d = a.g(), f = c.length = 0; f < d.length; f++) c[f] = d[f];
        b.f = a.f;
        b.i = a.i;
      };
      function qb(a) {
        if (Array.isArray(a)) {
          for (var b = Array(a.length), c = 0; c < a.length; c++) {
            var d = a[c];
            null != d && (b[c] = "object" == typeof d ? qb(n(d)) : d);
          }
          return b;
        }
        if ($a && a instanceof Uint8Array) return new Uint8Array(a);
        b = {};
        for (c in a) d = a[c], null != d && (b[c] = "object" == typeof d ? qb(n(d)) : d);
        return b;
      }
      N.registerMessageType = function(a, b) {
        b.we = a;
      };
      var R = {
        dump: function dump(a) {
          q(a, N, "jspb.Message instance expected");
          n(a.getExtension, "Only unobfuscated and unoptimized compilation modes supported.");
          return R.X(a);
        }
      };
      g("jspb.debug.dump", R.dump, void 0);
      R.X = function(a) {
        var b = k(a);
        if ("number" == b || "string" == b || "boolean" == b || "null" == b || "undefined" == b || "undefined" !== typeof Uint8Array && a instanceof Uint8Array) return a;
        if ("array" == b) return ua(a), l(a, R.X);
        if (a instanceof r) {
          var c = {};
          a = a.entries();
          for (var d = a.next(); !d.done; d = a.next()) c[d.value[0]] = R.X(d.value[1]);
          return c;
        }
        q(a, N, "Only messages expected: " + a);
        b = a.constructor;
        var f = {
          $name: b.name || b.displayName
        };
        for (t in b.prototype) {
          var h = /^get([A-Z]\w*)/.exec(t);
          if (h && "getExtension" != t && "getJsPbMessageId" != t) {
            var m = "has" + h[1];
            a[m] && !a[m]() || (m = a[t](), f[R.$a(h[1])] = R.X(m));
          }
        }
        if (a.extensionObject_) return f.$extensions = "Recursive dumping of extensions not supported in compiled code. Switch to uncompiled or dump extension object directly", 
        f;
        for (d in b.extensions) if (/^\d+$/.test(d)) {
          m = b.extensions[d];
          var t = a.getExtension(m);
          h = void 0;
          m = m.Ba;
          var B = [], M = 0;
          for (h in m) B[M++] = h;
          h = B[0];
          null != t && (c || (c = f.$extensions = {}), c[R.$a(h)] = R.X(t));
        }
        return f;
      };
      R.$a = function(a) {
        return a.replace(/^[A-Z]/, function(b) {
          return b.toLowerCase();
        });
      };
      function S() {
        this.a = [];
      }
      g("jspb.BinaryEncoder", S, void 0);
      S.prototype.length = function() {
        return this.a.length;
      };
      S.prototype.length = S.prototype.length;
      S.prototype.end = function() {
        var a = this.a;
        this.a = [];
        return a;
      };
      S.prototype.end = S.prototype.end;
      S.prototype.l = function(a, b) {
        n(a == Math.floor(a));
        n(b == Math.floor(b));
        n(0 <= a && 4294967296 > a);
        for (n(0 <= b && 4294967296 > b); 0 < b || 127 < a; ) this.a.push(127 & a | 128), 
        a = (a >>> 7 | b << 25) >>> 0, b >>>= 7;
        this.a.push(a);
      };
      S.prototype.writeSplitVarint64 = S.prototype.l;
      S.prototype.A = function(a, b) {
        n(a == Math.floor(a));
        n(b == Math.floor(b));
        n(0 <= a && 4294967296 > a);
        n(0 <= b && 4294967296 > b);
        this.s(a);
        this.s(b);
      };
      S.prototype.writeSplitFixed64 = S.prototype.A;
      S.prototype.j = function(a) {
        n(a == Math.floor(a));
        for (n(0 <= a && 4294967296 > a); 127 < a; ) this.a.push(127 & a | 128), a >>>= 7;
        this.a.push(a);
      };
      S.prototype.writeUnsignedVarint32 = S.prototype.j;
      S.prototype.M = function(a) {
        n(a == Math.floor(a));
        n(-2147483648 <= a && 2147483648 > a);
        if (0 <= a) this.j(a); else {
          for (var b = 0; 9 > b; b++) this.a.push(127 & a | 128), a >>= 7;
          this.a.push(1);
        }
      };
      S.prototype.writeSignedVarint32 = S.prototype.M;
      S.prototype.va = function(a) {
        n(a == Math.floor(a));
        n(0 <= a && 0x10000000000000000 > a);
        A(a);
        this.l(y, z);
      };
      S.prototype.writeUnsignedVarint64 = S.prototype.va;
      S.prototype.ua = function(a) {
        n(a == Math.floor(a));
        n(-0x8000000000000000 <= a && 0x8000000000000000 > a);
        A(a);
        this.l(y, z);
      };
      S.prototype.writeSignedVarint64 = S.prototype.ua;
      S.prototype.wa = function(a) {
        n(a == Math.floor(a));
        n(-2147483648 <= a && 2147483648 > a);
        this.j((a << 1 ^ a >> 31) >>> 0);
      };
      S.prototype.writeZigzagVarint32 = S.prototype.wa;
      S.prototype.xa = function(a) {
        n(a == Math.floor(a));
        n(-0x8000000000000000 <= a && 0x8000000000000000 > a);
        Ga(a);
        this.l(y, z);
      };
      S.prototype.writeZigzagVarint64 = S.prototype.xa;
      S.prototype.Ta = function(a) {
        this.W(H(a));
      };
      S.prototype.writeZigzagVarint64String = S.prototype.Ta;
      S.prototype.W = function(a) {
        var b = this;
        C(a);
        Ja(y, z, function(c, d) {
          b.l(c >>> 0, d >>> 0);
        });
      };
      S.prototype.writeZigzagVarintHash64 = S.prototype.W;
      S.prototype.be = function(a) {
        n(a == Math.floor(a));
        n(0 <= a && 256 > a);
        this.a.push(a >>> 0 & 255);
      };
      S.prototype.writeUint8 = S.prototype.be;
      S.prototype.ae = function(a) {
        n(a == Math.floor(a));
        n(0 <= a && 65536 > a);
        this.a.push(a >>> 0 & 255);
        this.a.push(a >>> 8 & 255);
      };
      S.prototype.writeUint16 = S.prototype.ae;
      S.prototype.s = function(a) {
        n(a == Math.floor(a));
        n(0 <= a && 4294967296 > a);
        this.a.push(a >>> 0 & 255);
        this.a.push(a >>> 8 & 255);
        this.a.push(a >>> 16 & 255);
        this.a.push(a >>> 24 & 255);
      };
      S.prototype.writeUint32 = S.prototype.s;
      S.prototype.V = function(a) {
        n(a == Math.floor(a));
        n(0 <= a && 0x10000000000000000 > a);
        Fa(a);
        this.s(y);
        this.s(z);
      };
      S.prototype.writeUint64 = S.prototype.V;
      S.prototype.Qc = function(a) {
        n(a == Math.floor(a));
        n(-128 <= a && 128 > a);
        this.a.push(a >>> 0 & 255);
      };
      S.prototype.writeInt8 = S.prototype.Qc;
      S.prototype.Pc = function(a) {
        n(a == Math.floor(a));
        n(-32768 <= a && 32768 > a);
        this.a.push(a >>> 0 & 255);
        this.a.push(a >>> 8 & 255);
      };
      S.prototype.writeInt16 = S.prototype.Pc;
      S.prototype.S = function(a) {
        n(a == Math.floor(a));
        n(-2147483648 <= a && 2147483648 > a);
        this.a.push(a >>> 0 & 255);
        this.a.push(a >>> 8 & 255);
        this.a.push(a >>> 16 & 255);
        this.a.push(a >>> 24 & 255);
      };
      S.prototype.writeInt32 = S.prototype.S;
      S.prototype.T = function(a) {
        n(a == Math.floor(a));
        n(-0x8000000000000000 <= a && 0x8000000000000000 > a);
        A(a);
        this.A(y, z);
      };
      S.prototype.writeInt64 = S.prototype.T;
      S.prototype.ka = function(a) {
        n(a == Math.floor(a));
        n(-0x8000000000000000 <= +a && 0x8000000000000000 > +a);
        C(H(a));
        this.A(y, z);
      };
      S.prototype.writeInt64String = S.prototype.ka;
      S.prototype.L = function(a) {
        n(Infinity === a || -Infinity === a || isNaN(a) || -34028234663852886e22 <= a && 34028234663852886e22 >= a);
        Ha(a);
        this.s(y);
      };
      S.prototype.writeFloat = S.prototype.L;
      S.prototype.J = function(a) {
        n(Infinity === a || -Infinity === a || isNaN(a) || -17976931348623157e292 <= a && 17976931348623157e292 >= a);
        Ia(a);
        this.s(y);
        this.s(z);
      };
      S.prototype.writeDouble = S.prototype.J;
      S.prototype.I = function(a) {
        n("boolean" === typeof a || "number" === typeof a);
        this.a.push(a ? 1 : 0);
      };
      S.prototype.writeBool = S.prototype.I;
      S.prototype.R = function(a) {
        n(a == Math.floor(a));
        n(-2147483648 <= a && 2147483648 > a);
        this.M(a);
      };
      S.prototype.writeEnum = S.prototype.R;
      S.prototype.ja = function(a) {
        this.a.push.apply(this.a, a);
      };
      S.prototype.writeBytes = S.prototype.ja;
      S.prototype.N = function(a) {
        C(a);
        this.l(y, z);
      };
      S.prototype.writeVarintHash64 = S.prototype.N;
      S.prototype.K = function(a) {
        C(a);
        this.s(y);
        this.s(z);
      };
      S.prototype.writeFixedHash64 = S.prototype.K;
      S.prototype.U = function(a) {
        var b = this.a.length;
        ta(a);
        for (var c = 0; c < a.length; c++) {
          var d = a.charCodeAt(c);
          if (128 > d) this.a.push(d); else if (2048 > d) this.a.push(d >> 6 | 192), this.a.push(63 & d | 128); else if (65536 > d) if (55296 <= d && 56319 >= d && c + 1 < a.length) {
            var f = a.charCodeAt(c + 1);
            56320 <= f && 57343 >= f && (d = 1024 * (d - 55296) + f - 56320 + 65536, this.a.push(d >> 18 | 240), 
            this.a.push(d >> 12 & 63 | 128), this.a.push(d >> 6 & 63 | 128), this.a.push(63 & d | 128), 
            c++);
          } else this.a.push(d >> 12 | 224), this.a.push(d >> 6 & 63 | 128), this.a.push(63 & d | 128);
        }
        return this.a.length - b;
      };
      S.prototype.writeString = S.prototype.U;
      function T(a, b) {
        this.lo = a;
        this.hi = b;
      }
      g("jspb.arith.UInt64", T, void 0);
      T.prototype.cmp = function(a) {
        return this.hi < a.hi || this.hi == a.hi && this.lo < a.lo ? -1 : this.hi == a.hi && this.lo == a.lo ? 0 : 1;
      };
      T.prototype.cmp = T.prototype.cmp;
      T.prototype.La = function() {
        return new T((this.lo >>> 1 | (1 & this.hi) << 31) >>> 0, this.hi >>> 1 >>> 0);
      };
      T.prototype.rightShift = T.prototype.La;
      T.prototype.Da = function() {
        return new T(this.lo << 1 >>> 0, (this.hi << 1 | this.lo >>> 31) >>> 0);
      };
      T.prototype.leftShift = T.prototype.Da;
      T.prototype.cb = function() {
        return !!(2147483648 & this.hi);
      };
      T.prototype.msb = T.prototype.cb;
      T.prototype.Ob = function() {
        return !!(1 & this.lo);
      };
      T.prototype.lsb = T.prototype.Ob;
      T.prototype.Ua = function() {
        return 0 == this.lo && 0 == this.hi;
      };
      T.prototype.zero = T.prototype.Ua;
      T.prototype.add = function(a) {
        return new T((this.lo + a.lo & 4294967295) >>> 0 >>> 0, ((this.hi + a.hi & 4294967295) >>> 0) + (4294967296 <= this.lo + a.lo ? 1 : 0) >>> 0);
      };
      T.prototype.add = T.prototype.add;
      T.prototype.sub = function(a) {
        return new T((this.lo - a.lo & 4294967295) >>> 0 >>> 0, ((this.hi - a.hi & 4294967295) >>> 0) - (0 > this.lo - a.lo ? 1 : 0) >>> 0);
      };
      T.prototype.sub = T.prototype.sub;
      function rb(a, b) {
        var c = 65535 & a;
        a >>>= 16;
        var d = 65535 & b, f = b >>> 16;
        b = c * d + 65536 * (c * f & 65535) + 65536 * (a * d & 65535);
        for (c = a * f + (c * f >>> 16) + (a * d >>> 16); 4294967296 <= b; ) b -= 4294967296, 
        c += 1;
        return new T(b >>> 0, c >>> 0);
      }
      T.mul32x32 = rb;
      T.prototype.eb = function(a) {
        var b = rb(this.lo, a);
        a = rb(this.hi, a);
        a.hi = a.lo;
        a.lo = 0;
        return b.add(a);
      };
      T.prototype.mul = T.prototype.eb;
      T.prototype.Xa = function(a) {
        if (0 == a) return [];
        var b = new T(0, 0), c = new T(this.lo, this.hi);
        a = new T(a, 0);
        for (var d = new T(1, 0); !a.cb(); ) a = a.Da(), d = d.Da();
        for (;!d.Ua(); ) 0 >= a.cmp(c) && (b = b.add(d), c = c.sub(a)), a = a.La(), d = d.La();
        return [ b, c ];
      };
      T.prototype.div = T.prototype.Xa;
      T.prototype.toString = function() {
        for (var a = "", b = this; !b.Ua(); ) {
          b = b.Xa(10);
          var c = b[0];
          a = b[1].lo + a;
          b = c;
        }
        "" == a && (a = "0");
        return a;
      };
      T.prototype.toString = T.prototype.toString;
      function U(a) {
        for (var b = new T(0, 0), c = new T(0, 0), d = 0; d < a.length; d++) {
          if ("0" > a[d] || "9" < a[d]) return null;
          c.lo = parseInt(a[d], 10);
          b = b.eb(10).add(c);
        }
        return b;
      }
      T.fromString = U;
      T.prototype.clone = function() {
        return new T(this.lo, this.hi);
      };
      T.prototype.clone = T.prototype.clone;
      function V(a, b) {
        this.lo = a;
        this.hi = b;
      }
      g("jspb.arith.Int64", V, void 0);
      V.prototype.add = function(a) {
        return new V((this.lo + a.lo & 4294967295) >>> 0 >>> 0, ((this.hi + a.hi & 4294967295) >>> 0) + (4294967296 <= this.lo + a.lo ? 1 : 0) >>> 0);
      };
      V.prototype.add = V.prototype.add;
      V.prototype.sub = function(a) {
        return new V((this.lo - a.lo & 4294967295) >>> 0 >>> 0, ((this.hi - a.hi & 4294967295) >>> 0) - (0 > this.lo - a.lo ? 1 : 0) >>> 0);
      };
      V.prototype.sub = V.prototype.sub;
      V.prototype.clone = function() {
        return new V(this.lo, this.hi);
      };
      V.prototype.clone = V.prototype.clone;
      V.prototype.toString = function() {
        var a = 0 != (2147483648 & this.hi), b = new T(this.lo, this.hi);
        a && (b = new T(0, 0).sub(b));
        return (a ? "-" : "") + b.toString();
      };
      V.prototype.toString = V.prototype.toString;
      function sb(a) {
        var b = 0 < a.length && "-" == a[0];
        b && (a = a.substring(1));
        a = U(a);
        if (null === a) return null;
        b && (a = new T(0, 0).sub(a));
        return new V(a.lo, a.hi);
      }
      V.fromString = sb;
      function W() {
        this.c = [];
        this.b = 0;
        this.a = new S();
        this.h = [];
      }
      g("jspb.BinaryWriter", W, void 0);
      function tb(a, b) {
        var c = a.a.end();
        a.c.push(c);
        a.c.push(b);
        a.b += c.length + b.length;
      }
      function X(a, b) {
        Y(a, b, 2);
        b = a.a.end();
        a.c.push(b);
        a.b += b.length;
        b.push(a.b);
        return b;
      }
      function Z(a, b) {
        var c = b.pop();
        c = a.b + a.a.length() - c;
        for (n(0 <= c); 127 < c; ) b.push(127 & c | 128), c >>>= 7, a.b++;
        b.push(c);
        a.b++;
      }
      W.prototype.pb = function(a, b, c) {
        tb(this, a.subarray(b, c));
      };
      W.prototype.writeSerializedMessage = W.prototype.pb;
      W.prototype.Pb = function(a, b, c) {
        null != a && null != b && null != c && this.pb(a, b, c);
      };
      W.prototype.maybeWriteSerializedMessage = W.prototype.Pb;
      W.prototype.reset = function() {
        this.c = [];
        this.a.end();
        this.b = 0;
        this.h = [];
      };
      W.prototype.reset = W.prototype.reset;
      W.prototype.ab = function() {
        n(0 == this.h.length);
        for (var a = new Uint8Array(this.b + this.a.length()), b = this.c, c = b.length, d = 0, f = 0; f < c; f++) {
          var h = b[f];
          a.set(h, d);
          d += h.length;
        }
        b = this.a.end();
        a.set(b, d);
        d += b.length;
        n(d == a.length);
        this.c = [ a ];
        return a;
      };
      W.prototype.getResultBuffer = W.prototype.ab;
      W.prototype.Kb = function(a) {
        return Ba(this.ab(), a);
      };
      W.prototype.getResultBase64String = W.prototype.Kb;
      W.prototype.Va = function(a) {
        this.h.push(X(this, a));
      };
      W.prototype.beginSubMessage = W.prototype.Va;
      W.prototype.Ya = function() {
        n(0 <= this.h.length);
        Z(this, this.h.pop());
      };
      W.prototype.endSubMessage = W.prototype.Ya;
      function Y(a, b, c) {
        n(1 <= b && b == Math.floor(b));
        a.a.j(8 * b + c);
      }
      W.prototype.Nc = function(a, b, c) {
        switch (a) {
         case 1:
          this.J(b, c);
          break;

         case 2:
          this.L(b, c);
          break;

         case 3:
          this.T(b, c);
          break;

         case 4:
          this.V(b, c);
          break;

         case 5:
          this.S(b, c);
          break;

         case 6:
          this.Qa(b, c);
          break;

         case 7:
          this.Pa(b, c);
          break;

         case 8:
          this.I(b, c);
          break;

         case 9:
          this.U(b, c);
          break;

         case 10:
          p("Group field type not supported in writeAny()");
          break;

         case 11:
          p("Message field type not supported in writeAny()");
          break;

         case 12:
          this.ja(b, c);
          break;

         case 13:
          this.s(b, c);
          break;

         case 14:
          this.R(b, c);
          break;

         case 15:
          this.Ra(b, c);
          break;

         case 16:
          this.Sa(b, c);
          break;

         case 17:
          this.rb(b, c);
          break;

         case 18:
          this.sb(b, c);
          break;

         case 30:
          this.K(b, c);
          break;

         case 31:
          this.N(b, c);
          break;

         default:
          p("Invalid field type in writeAny()");
        }
      };
      W.prototype.writeAny = W.prototype.Nc;
      function ub(a, b, c) {
        null != c && (Y(a, b, 0), a.a.j(c));
      }
      function vb(a, b, c) {
        null != c && (Y(a, b, 0), a.a.M(c));
      }
      W.prototype.S = function(a, b) {
        null != b && (n(-2147483648 <= b && 2147483648 > b), vb(this, a, b));
      };
      W.prototype.writeInt32 = W.prototype.S;
      W.prototype.ob = function(a, b) {
        null != b && (b = parseInt(b, 10), n(-2147483648 <= b && 2147483648 > b), vb(this, a, b));
      };
      W.prototype.writeInt32String = W.prototype.ob;
      W.prototype.T = function(a, b) {
        null != b && (n(-0x8000000000000000 <= b && 0x8000000000000000 > b), null != b && (Y(this, a, 0), 
        this.a.ua(b)));
      };
      W.prototype.writeInt64 = W.prototype.T;
      W.prototype.ka = function(a, b) {
        null != b && (b = sb(b), Y(this, a, 0), this.a.l(b.lo, b.hi));
      };
      W.prototype.writeInt64String = W.prototype.ka;
      W.prototype.s = function(a, b) {
        null != b && (n(0 <= b && 4294967296 > b), ub(this, a, b));
      };
      W.prototype.writeUint32 = W.prototype.s;
      W.prototype.ub = function(a, b) {
        null != b && (b = parseInt(b, 10), n(0 <= b && 4294967296 > b), ub(this, a, b));
      };
      W.prototype.writeUint32String = W.prototype.ub;
      W.prototype.V = function(a, b) {
        null != b && (n(0 <= b && 0x10000000000000000 > b), null != b && (Y(this, a, 0), 
        this.a.va(b)));
      };
      W.prototype.writeUint64 = W.prototype.V;
      W.prototype.vb = function(a, b) {
        null != b && (b = U(b), Y(this, a, 0), this.a.l(b.lo, b.hi));
      };
      W.prototype.writeUint64String = W.prototype.vb;
      W.prototype.rb = function(a, b) {
        null != b && (n(-2147483648 <= b && 2147483648 > b), null != b && (Y(this, a, 0), 
        this.a.wa(b)));
      };
      W.prototype.writeSint32 = W.prototype.rb;
      W.prototype.sb = function(a, b) {
        null != b && (n(-0x8000000000000000 <= b && 0x8000000000000000 > b), null != b && (Y(this, a, 0), 
        this.a.xa(b)));
      };
      W.prototype.writeSint64 = W.prototype.sb;
      W.prototype.$d = function(a, b) {
        null != b && null != b && (Y(this, a, 0), this.a.W(b));
      };
      W.prototype.writeSintHash64 = W.prototype.$d;
      W.prototype.Zd = function(a, b) {
        null != b && null != b && (Y(this, a, 0), this.a.Ta(b));
      };
      W.prototype.writeSint64String = W.prototype.Zd;
      W.prototype.Pa = function(a, b) {
        null != b && (n(0 <= b && 4294967296 > b), Y(this, a, 5), this.a.s(b));
      };
      W.prototype.writeFixed32 = W.prototype.Pa;
      W.prototype.Qa = function(a, b) {
        null != b && (n(0 <= b && 0x10000000000000000 > b), Y(this, a, 1), this.a.V(b));
      };
      W.prototype.writeFixed64 = W.prototype.Qa;
      W.prototype.nb = function(a, b) {
        null != b && (b = U(b), Y(this, a, 1), this.a.A(b.lo, b.hi));
      };
      W.prototype.writeFixed64String = W.prototype.nb;
      W.prototype.Ra = function(a, b) {
        null != b && (n(-2147483648 <= b && 2147483648 > b), Y(this, a, 5), this.a.S(b));
      };
      W.prototype.writeSfixed32 = W.prototype.Ra;
      W.prototype.Sa = function(a, b) {
        null != b && (n(-0x8000000000000000 <= b && 0x8000000000000000 > b), Y(this, a, 1), 
        this.a.T(b));
      };
      W.prototype.writeSfixed64 = W.prototype.Sa;
      W.prototype.qb = function(a, b) {
        null != b && (b = sb(b), Y(this, a, 1), this.a.A(b.lo, b.hi));
      };
      W.prototype.writeSfixed64String = W.prototype.qb;
      W.prototype.L = function(a, b) {
        null != b && (Y(this, a, 5), this.a.L(b));
      };
      W.prototype.writeFloat = W.prototype.L;
      W.prototype.J = function(a, b) {
        null != b && (Y(this, a, 1), this.a.J(b));
      };
      W.prototype.writeDouble = W.prototype.J;
      W.prototype.I = function(a, b) {
        null != b && (n("boolean" === typeof b || "number" === typeof b), Y(this, a, 0), 
        this.a.I(b));
      };
      W.prototype.writeBool = W.prototype.I;
      W.prototype.R = function(a, b) {
        null != b && (n(-2147483648 <= b && 2147483648 > b), Y(this, a, 0), this.a.M(b));
      };
      W.prototype.writeEnum = W.prototype.R;
      W.prototype.U = function(a, b) {
        null != b && (a = X(this, a), this.a.U(b), Z(this, a));
      };
      W.prototype.writeString = W.prototype.U;
      W.prototype.ja = function(a, b) {
        null != b && (b = Ua(b), Y(this, a, 2), this.a.j(b.length), tb(this, b));
      };
      W.prototype.writeBytes = W.prototype.ja;
      W.prototype.Rc = function(a, b, c) {
        null != b && (a = X(this, a), c(b, this), Z(this, a));
      };
      W.prototype.writeMessage = W.prototype.Rc;
      W.prototype.Sc = function(a, b, c) {
        null != b && (Y(this, 1, 3), Y(this, 2, 0), this.a.M(a), a = X(this, 3), c(b, this), 
        Z(this, a), Y(this, 1, 4));
      };
      W.prototype.writeMessageSet = W.prototype.Sc;
      W.prototype.Oc = function(a, b, c) {
        null != b && (Y(this, a, 3), c(b, this), Y(this, a, 4));
      };
      W.prototype.writeGroup = W.prototype.Oc;
      W.prototype.K = function(a, b) {
        null != b && (n(8 == b.length), Y(this, a, 1), this.a.K(b));
      };
      W.prototype.writeFixedHash64 = W.prototype.K;
      W.prototype.N = function(a, b) {
        null != b && (n(8 == b.length), Y(this, a, 0), this.a.N(b));
      };
      W.prototype.writeVarintHash64 = W.prototype.N;
      W.prototype.A = function(a, b, c) {
        Y(this, a, 1);
        this.a.A(b, c);
      };
      W.prototype.writeSplitFixed64 = W.prototype.A;
      W.prototype.l = function(a, b, c) {
        Y(this, a, 0);
        this.a.l(b, c);
      };
      W.prototype.writeSplitVarint64 = W.prototype.l;
      W.prototype.tb = function(a, b, c) {
        Y(this, a, 0);
        var d = this.a;
        Ja(b, c, function(f, h) {
          d.l(f >>> 0, h >>> 0);
        });
      };
      W.prototype.writeSplitZigzagVarint64 = W.prototype.tb;
      W.prototype.Ed = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) vb(this, a, b[c]);
      };
      W.prototype.writeRepeatedInt32 = W.prototype.Ed;
      W.prototype.Fd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.ob(a, b[c]);
      };
      W.prototype.writeRepeatedInt32String = W.prototype.Fd;
      W.prototype.Gd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) {
          var d = b[c];
          null != d && (Y(this, a, 0), this.a.ua(d));
        }
      };
      W.prototype.writeRepeatedInt64 = W.prototype.Gd;
      W.prototype.Qd = function(a, b, c, d) {
        if (null != b) for (var f = 0; f < b.length; f++) this.A(a, c(b[f]), d(b[f]));
      };
      W.prototype.writeRepeatedSplitFixed64 = W.prototype.Qd;
      W.prototype.Rd = function(a, b, c, d) {
        if (null != b) for (var f = 0; f < b.length; f++) this.l(a, c(b[f]), d(b[f]));
      };
      W.prototype.writeRepeatedSplitVarint64 = W.prototype.Rd;
      W.prototype.Sd = function(a, b, c, d) {
        if (null != b) for (var f = 0; f < b.length; f++) this.tb(a, c(b[f]), d(b[f]));
      };
      W.prototype.writeRepeatedSplitZigzagVarint64 = W.prototype.Sd;
      W.prototype.Hd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.ka(a, b[c]);
      };
      W.prototype.writeRepeatedInt64String = W.prototype.Hd;
      W.prototype.Ud = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) ub(this, a, b[c]);
      };
      W.prototype.writeRepeatedUint32 = W.prototype.Ud;
      W.prototype.Vd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.ub(a, b[c]);
      };
      W.prototype.writeRepeatedUint32String = W.prototype.Vd;
      W.prototype.Wd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) {
          var d = b[c];
          null != d && (Y(this, a, 0), this.a.va(d));
        }
      };
      W.prototype.writeRepeatedUint64 = W.prototype.Wd;
      W.prototype.Xd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.vb(a, b[c]);
      };
      W.prototype.writeRepeatedUint64String = W.prototype.Xd;
      W.prototype.Md = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) {
          var d = b[c];
          null != d && (Y(this, a, 0), this.a.wa(d));
        }
      };
      W.prototype.writeRepeatedSint32 = W.prototype.Md;
      W.prototype.Nd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) {
          var d = b[c];
          null != d && (Y(this, a, 0), this.a.xa(d));
        }
      };
      W.prototype.writeRepeatedSint64 = W.prototype.Nd;
      W.prototype.Od = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) {
          var d = b[c];
          null != d && (Y(this, a, 0), this.a.Ta(d));
        }
      };
      W.prototype.writeRepeatedSint64String = W.prototype.Od;
      W.prototype.Pd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) {
          var d = b[c];
          null != d && (Y(this, a, 0), this.a.W(d));
        }
      };
      W.prototype.writeRepeatedSintHash64 = W.prototype.Pd;
      W.prototype.yd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.Pa(a, b[c]);
      };
      W.prototype.writeRepeatedFixed32 = W.prototype.yd;
      W.prototype.zd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.Qa(a, b[c]);
      };
      W.prototype.writeRepeatedFixed64 = W.prototype.zd;
      W.prototype.Ad = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.nb(a, b[c]);
      };
      W.prototype.writeRepeatedFixed64String = W.prototype.Ad;
      W.prototype.Jd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.Ra(a, b[c]);
      };
      W.prototype.writeRepeatedSfixed32 = W.prototype.Jd;
      W.prototype.Kd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.Sa(a, b[c]);
      };
      W.prototype.writeRepeatedSfixed64 = W.prototype.Kd;
      W.prototype.Ld = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.qb(a, b[c]);
      };
      W.prototype.writeRepeatedSfixed64String = W.prototype.Ld;
      W.prototype.Cd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.L(a, b[c]);
      };
      W.prototype.writeRepeatedFloat = W.prototype.Cd;
      W.prototype.wd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.J(a, b[c]);
      };
      W.prototype.writeRepeatedDouble = W.prototype.wd;
      W.prototype.ud = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.I(a, b[c]);
      };
      W.prototype.writeRepeatedBool = W.prototype.ud;
      W.prototype.xd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.R(a, b[c]);
      };
      W.prototype.writeRepeatedEnum = W.prototype.xd;
      W.prototype.Td = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.U(a, b[c]);
      };
      W.prototype.writeRepeatedString = W.prototype.Td;
      W.prototype.vd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.ja(a, b[c]);
      };
      W.prototype.writeRepeatedBytes = W.prototype.vd;
      W.prototype.Id = function(a, b, c) {
        if (null != b) for (var d = 0; d < b.length; d++) {
          var f = X(this, a);
          c(b[d], this);
          Z(this, f);
        }
      };
      W.prototype.writeRepeatedMessage = W.prototype.Id;
      W.prototype.Dd = function(a, b, c) {
        if (null != b) for (var d = 0; d < b.length; d++) Y(this, a, 3), c(b[d], this), 
        Y(this, a, 4);
      };
      W.prototype.writeRepeatedGroup = W.prototype.Dd;
      W.prototype.Bd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.K(a, b[c]);
      };
      W.prototype.writeRepeatedFixedHash64 = W.prototype.Bd;
      W.prototype.Yd = function(a, b) {
        if (null != b) for (var c = 0; c < b.length; c++) this.N(a, b[c]);
      };
      W.prototype.writeRepeatedVarintHash64 = W.prototype.Yd;
      W.prototype.ad = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) this.a.M(b[c]);
          Z(this, a);
        }
      };
      W.prototype.writePackedInt32 = W.prototype.ad;
      W.prototype.bd = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) this.a.M(parseInt(b[c], 10));
          Z(this, a);
        }
      };
      W.prototype.writePackedInt32String = W.prototype.bd;
      W.prototype.cd = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) this.a.ua(b[c]);
          Z(this, a);
        }
      };
      W.prototype.writePackedInt64 = W.prototype.cd;
      W.prototype.md = function(a, b, c, d) {
        if (null != b) {
          a = X(this, a);
          for (var f = 0; f < b.length; f++) this.a.A(c(b[f]), d(b[f]));
          Z(this, a);
        }
      };
      W.prototype.writePackedSplitFixed64 = W.prototype.md;
      W.prototype.nd = function(a, b, c, d) {
        if (null != b) {
          a = X(this, a);
          for (var f = 0; f < b.length; f++) this.a.l(c(b[f]), d(b[f]));
          Z(this, a);
        }
      };
      W.prototype.writePackedSplitVarint64 = W.prototype.nd;
      W.prototype.od = function(a, b, c, d) {
        if (null != b) {
          a = X(this, a);
          for (var f = this.a, h = 0; h < b.length; h++) Ja(c(b[h]), d(b[h]), function(m, t) {
            f.l(m >>> 0, t >>> 0);
          });
          Z(this, a);
        }
      };
      W.prototype.writePackedSplitZigzagVarint64 = W.prototype.od;
      W.prototype.dd = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) {
            var d = sb(b[c]);
            this.a.l(d.lo, d.hi);
          }
          Z(this, a);
        }
      };
      W.prototype.writePackedInt64String = W.prototype.dd;
      W.prototype.pd = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) this.a.j(b[c]);
          Z(this, a);
        }
      };
      W.prototype.writePackedUint32 = W.prototype.pd;
      W.prototype.qd = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) this.a.j(parseInt(b[c], 10));
          Z(this, a);
        }
      };
      W.prototype.writePackedUint32String = W.prototype.qd;
      W.prototype.rd = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) this.a.va(b[c]);
          Z(this, a);
        }
      };
      W.prototype.writePackedUint64 = W.prototype.rd;
      W.prototype.sd = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) {
            var d = U(b[c]);
            this.a.l(d.lo, d.hi);
          }
          Z(this, a);
        }
      };
      W.prototype.writePackedUint64String = W.prototype.sd;
      W.prototype.hd = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) this.a.wa(b[c]);
          Z(this, a);
        }
      };
      W.prototype.writePackedSint32 = W.prototype.hd;
      W.prototype.jd = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) this.a.xa(b[c]);
          Z(this, a);
        }
      };
      W.prototype.writePackedSint64 = W.prototype.jd;
      W.prototype.kd = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) this.a.W(H(b[c]));
          Z(this, a);
        }
      };
      W.prototype.writePackedSint64String = W.prototype.kd;
      W.prototype.ld = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) this.a.W(b[c]);
          Z(this, a);
        }
      };
      W.prototype.writePackedSintHash64 = W.prototype.ld;
      W.prototype.Wc = function(a, b) {
        if (null != b && b.length) for (Y(this, a, 2), this.a.j(4 * b.length), a = 0; a < b.length; a++) this.a.s(b[a]);
      };
      W.prototype.writePackedFixed32 = W.prototype.Wc;
      W.prototype.Xc = function(a, b) {
        if (null != b && b.length) for (Y(this, a, 2), this.a.j(8 * b.length), a = 0; a < b.length; a++) this.a.V(b[a]);
      };
      W.prototype.writePackedFixed64 = W.prototype.Xc;
      W.prototype.Yc = function(a, b) {
        if (null != b && b.length) for (Y(this, a, 2), this.a.j(8 * b.length), a = 0; a < b.length; a++) {
          var c = U(b[a]);
          this.a.A(c.lo, c.hi);
        }
      };
      W.prototype.writePackedFixed64String = W.prototype.Yc;
      W.prototype.ed = function(a, b) {
        if (null != b && b.length) for (Y(this, a, 2), this.a.j(4 * b.length), a = 0; a < b.length; a++) this.a.S(b[a]);
      };
      W.prototype.writePackedSfixed32 = W.prototype.ed;
      W.prototype.fd = function(a, b) {
        if (null != b && b.length) for (Y(this, a, 2), this.a.j(8 * b.length), a = 0; a < b.length; a++) this.a.T(b[a]);
      };
      W.prototype.writePackedSfixed64 = W.prototype.fd;
      W.prototype.gd = function(a, b) {
        if (null != b && b.length) for (Y(this, a, 2), this.a.j(8 * b.length), a = 0; a < b.length; a++) this.a.ka(b[a]);
      };
      W.prototype.writePackedSfixed64String = W.prototype.gd;
      W.prototype.$c = function(a, b) {
        if (null != b && b.length) for (Y(this, a, 2), this.a.j(4 * b.length), a = 0; a < b.length; a++) this.a.L(b[a]);
      };
      W.prototype.writePackedFloat = W.prototype.$c;
      W.prototype.Uc = function(a, b) {
        if (null != b && b.length) for (Y(this, a, 2), this.a.j(8 * b.length), a = 0; a < b.length; a++) this.a.J(b[a]);
      };
      W.prototype.writePackedDouble = W.prototype.Uc;
      W.prototype.Tc = function(a, b) {
        if (null != b && b.length) for (Y(this, a, 2), this.a.j(b.length), a = 0; a < b.length; a++) this.a.I(b[a]);
      };
      W.prototype.writePackedBool = W.prototype.Tc;
      W.prototype.Vc = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) this.a.R(b[c]);
          Z(this, a);
        }
      };
      W.prototype.writePackedEnum = W.prototype.Vc;
      W.prototype.Zc = function(a, b) {
        if (null != b && b.length) for (Y(this, a, 2), this.a.j(8 * b.length), a = 0; a < b.length; a++) this.a.K(b[a]);
      };
      W.prototype.writePackedFixedHash64 = W.prototype.Zc;
      W.prototype.td = function(a, b) {
        if (null != b && b.length) {
          a = X(this, a);
          for (var c = 0; c < b.length; c++) this.a.N(b[c]);
          Z(this, a);
        }
      };
      W.prototype.writePackedVarintHash64 = W.prototype.td;
      "object" === typeof exports && (exports.debug = R, exports.Map = r, exports.Message = N, 
      exports.BinaryReader = J, exports.BinaryWriter = W, exports.ExtensionFieldInfo = Ya, 
      exports.ExtensionFieldBinaryInfo = Za, exports.exportSymbol = ma, exports.inherits = na, 
      exports.object = {
        extend: pa
      }, exports.typeOf = k);
      cc._RF.pop();
    }).call(this, "undefined" !== typeof global ? global : "undefined" !== typeof self ? self : "undefined" !== typeof window ? window : {});
  }, {} ],
  "MT3SETB-i18n_font": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "815fdQLkgNF6qV7sXXvbJaG", "MT3SETB-i18n_font");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.i18n_font = void 0;
    const MT3SETB_language_1 = require("../api/MT3SETB-language");
    const {ccclass: ccclass} = cc._decorator;
    let i18n_font = class i18n_font extends cc.Component {
      constructor() {
        super();
      }
      start() {
        var e = this.node.getComponent(cc.RichText) ? this.node.getComponent(cc.RichText) : this.node.getComponent(cc.Label);
        e && (e.font = MT3SETB_language_1.GetFont());
      }
    };
    i18n_font = __decorate([ ccclass ], i18n_font);
    exports.i18n_font = i18n_font;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-language": "MT3SETB-language"
  } ],
  "MT3SETB-i18n_label": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d13f2v2+1FPL5fgTLjfXKBk", "MT3SETB-i18n_label");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.i18n_label = void 0;
    const MT3SETB_language_1 = require("../api/MT3SETB-language");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let i18n_label = class i18n_label extends cc.Component {
      constructor() {
        super();
        this.langIndex = 0;
      }
      start() {
        this.Set(this.langIndex);
      }
      Set(e) {
        var t = this.node.getComponent(cc.RichText) ? this.node.getComponent(cc.RichText) : this.node.getComponent(cc.Label);
        if (t) {
          t.string = MT3SETB_language_1.GetLanguage(e);
          t.font || (t.font = MT3SETB_language_1.GetFont());
        }
      }
    };
    __decorate([ property(cc.Integer) ], i18n_label.prototype, "langIndex", void 0);
    i18n_label = __decorate([ ccclass ], i18n_label);
    exports.i18n_label = i18n_label;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-language": "MT3SETB-language"
  } ],
  "MT3SETB-i18n_language": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "1383dZBpX1C0qMVQoJ3YT3f", "MT3SETB-i18n_language");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.i18n_language = void 0;
    const MT3SETB_language_1 = require("../api/MT3SETB-language");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let i18n_language = class i18n_language extends cc.Component {
      constructor() {
        super();
        this.lang = null;
        this.font = [];
      }
      onLoad() {
        MT3SETB_language_1.SetLanguage(this.lang.json);
        MT3SETB_language_1.SetFont(this.font);
      }
    };
    __decorate([ property(cc.JsonAsset) ], i18n_language.prototype, "lang", void 0);
    __decorate([ property(cc.Font) ], i18n_language.prototype, "font", void 0);
    i18n_language = __decorate([ ccclass ], i18n_language);
    exports.i18n_language = i18n_language;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-language": "MT3SETB-language"
  } ],
  "MT3SETB-i18n": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "6d94403fQtBV5MaaB5f2T2d", "MT3SETB-i18n");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.i18n = exports.LanguageTextureProperty = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let LanguageTextureProperty = class LanguageTextureProperty {
      constructor() {
        this.key = "";
        this.fishLangList = [];
      }
    };
    __decorate([ property(cc.String) ], LanguageTextureProperty.prototype, "key", void 0);
    __decorate([ property({
      type: cc.Texture2D
    }) ], LanguageTextureProperty.prototype, "fishLangList", void 0);
    LanguageTextureProperty = __decorate([ ccclass("MT3SETB-languageTextureProperty") ], LanguageTextureProperty);
    exports.LanguageTextureProperty = LanguageTextureProperty;
    let i18n = class i18n extends cc.Component {
      constructor() {
        super();
        this.fishInfoSpritesList = [];
        this.imageList = [];
        this.commLangList = [];
        this.lobbyImageList = [];
        this.fishLangList = [];
        this.fishLangPropertyList = [];
        this.local = 1;
        this.langCode = "en-US";
        this.defaultLang = 1;
      }
      setLocal(e) {
        var t = e.split("-");
        this.langCode = t[0].toLowerCase() + "-" + t[1].toUpperCase();
        switch (e = e.toLowerCase()) {
         case "zh-cn":
          this.local = 0;
          break;

         case "fil-ph":
         case "ph-ph":
         case "en-us":
          this.local = 1;
          break;

         case "th-th":
          this.local = 2;
          break;

         case "vi-vn":
          this.local = 3;
          break;

         case "my-mm":
          this.local = 4;
          break;

         case "es-ar":
          this.local = 5;
          break;

         case "pt-br":
          this.local = 6;
          break;

         case "km-kh":
          this.local = 7;
          break;

         case "id-id":
          this.local = 8;
          break;

         case "zh-tw":
          this.local = 9;
          break;

         default:
          this.local = this.defaultLang;
        }
        this.updateTextWrapConf(e);
      }
      getLocal() {
        return this.langCode;
      }
      getFishInfoSprites() {
        return this.fishInfoSpritesList[this.local] || this.fishInfoSpritesList[this.defaultLang];
      }
      getImage() {
        return this.imageList[this.local] || this.imageList[this.defaultLang];
      }
      getCommLangImg() {
        return this.commLangList[this.local] ? this.commLangList[this.local] : this.commLangList[this.defaultLang];
      }
      getFishLangImg() {
        return this.fishLangList[this.local] ? this.fishLangList[this.local] : this.fishLangList[this.defaultLang];
      }
      getLobbyImg() {
        return this.lobbyImageList[this.local] || this.lobbyImageList[this.defaultLang];
      }
      getFishLangImgByKey(key) {
        let property = null;
        for (let arr of this.fishLangPropertyList) arr.key == key && (property = arr.fishLangList);
        if (null != property) return property[this.local] ? property[this.local] : property[this.defaultLang];
        return this.fishLangList[this.defaultLang];
      }
      updateTextWrapConf(lang) {
        switch (lang) {
         case "vn":
         case "vi-vn":
          cc["textUtils"].label_wordRex = /[a-zA-Z0-9\u1ea2\u1ea0\u0102\u1eb0\u1eb2\u1eb4\u1eae\u1eb6\u1ea6\u1ea8\u1eaa\u1ea4\u1eac\u0110\u1eba\u1ebc\xc9\u1eb8\xca\u1ec0\u1ec2\u1ec4\u1ebe\u1ec6I\xcc\u1ec8\u0128\xcd\u1ecaO\xd2\u1ece\xd5\xd3\u1ecc\xd4\u1ed2\u1ed4\u1ed6\u1ed0\u1ed8\u01a0\u1edc\u1ede\u1ee0\u1eda\u1ee2\xd9\u1ee6\u0168\xda\u1ee4\u01af\u1eea\u1eec\u1eee\u1ee8\u1ef0\u1ef2\u1ef6\u1ef8\xdd\u1ef4\xe0\u1ea3\xe3\xe1\u1ea1\u0103\u1eb1\u1eb3\u1eb5\u1eaf\u1eb7\xe2\u1ea7\u1ea9\u1eab\u1ea5\u1ead\u0111\xe8\u1ebb\u1ebd\xe9\u1eb9\xea\u1ec1\u1ec3\u1ec5\u1ebf\u1ec7\u1ec9\u0129\xed\u1ecb\xf2\u1ecf\xf5\xf3\u1ecd\xf4\u1ed3\u1ed5\u1ed7\u1ed1\u1ed9\u01a1\u1edd\u1edf\u1ee1\u1edb\u1ee3\xf9\u1ee7\u0169\xfa\u1ee5\u01b0\u1eeb\u1eed\u1eef\u1ee9\u1ef1\u1ef3\u1ef7\u1ef9\xfd\u1ef5]+|\S/;
          cc["textUtils"].label_lastWordRex = /([a-zA-Z0-9\u1ea2\u1ea0\u0102\u1eb0\u1eb2\u1eb4\u1eae\u1eb6\u1ea6\u1ea8\u1eaa\u1ea4\u1eac\u0110\u1eba\u1ebc\xc9\u1eb8\xca\u1ec0\u1ec2\u1ec4\u1ebe\u1ec6I\xcc\u1ec8\u0128\xcd\u1ecaO\xd2\u1ece\xd5\xd3\u1ecc\xd4\u1ed2\u1ed4\u1ed6\u1ed0\u1ed8\u01a0\u1edc\u1ede\u1ee0\u1eda\u1ee2\xd9\u1ee6\u0168\xda\u1ee4\u01af\u1eea\u1eec\u1eee\u1ee8\u1ef0\u1ef2\u1ef6\u1ef8\xdd\u1ef4\xe0\u1ea3\xe3\xe1\u1ea1\u0103\u1eb1\u1eb3\u1eb5\u1eaf\u1eb7\xe2\u1ea7\u1ea9\u1eab\u1ea5\u1ead\u0111\xe8\u1ebb\u1ebd\xe9\u1eb9\xea\u1ec1\u1ec3\u1ec5\u1ebf\u1ec7\u1ec9\u0129\xed\u1ecb\xf2\u1ecf\xf5\xf3\u1ecd\xf4\u1ed3\u1ed5\u1ed7\u1ed1\u1ed9\u01a1\u1edd\u1edf\u1ee1\u1edb\u1ee3\xf9\u1ee7\u0169\xfa\u1ee5\u01b0\u1eeb\u1eed\u1eef\u1ee9\u1ef1\u1ef3\u1ef7\u1ef9\xfd\u1ef5]+|\S)$/;
          cc["textUtils"].label_lastEnglish = /[a-zA-Z0-9\u1ea2\u1ea0\u0102\u1eb0\u1eb2\u1eb4\u1eae\u1eb6\u1ea6\u1ea8\u1eaa\u1ea4\u1eac\u0110\u1eba\u1ebc\xc9\u1eb8\xca\u1ec0\u1ec2\u1ec4\u1ebe\u1ec6I\xcc\u1ec8\u0128\xcd\u1ecaO\xd2\u1ece\xd5\xd3\u1ecc\xd4\u1ed2\u1ed4\u1ed6\u1ed0\u1ed8\u01a0\u1edc\u1ede\u1ee0\u1eda\u1ee2\xd9\u1ee6\u0168\xda\u1ee4\u01af\u1eea\u1eec\u1eee\u1ee8\u1ef0\u1ef2\u1ef6\u1ef8\xdd\u1ef4\xe0\u1ea3\xe3\xe1\u1ea1\u0103\u1eb1\u1eb3\u1eb5\u1eaf\u1eb7\xe2\u1ea7\u1ea9\u1eab\u1ea5\u1ead\u0111\xe8\u1ebb\u1ebd\xe9\u1eb9\xea\u1ec1\u1ec3\u1ec5\u1ebf\u1ec7\u1ec9\u0129\xed\u1ecb\xf2\u1ecf\xf5\xf3\u1ecd\xf4\u1ed3\u1ed5\u1ed7\u1ed1\u1ed9\u01a1\u1edd\u1edf\u1ee1\u1edb\u1ee3\xf9\u1ee7\u0169\xfa\u1ee5\u01b0\u1eeb\u1eed\u1eef\u1ee9\u1ef1\u1ef3\u1ef7\u1ef9\xfd\u1ef5]+$/;
          cc["textUtils"].label_firstEnglish = /^[a-zA-Z0-9\u1ea2\u1ea0\u0102\u1eb0\u1eb2\u1eb4\u1eae\u1eb6\u1ea6\u1ea8\u1eaa\u1ea4\u1eac\u0110\u1eba\u1ebc\xc9\u1eb8\xca\u1ec0\u1ec2\u1ec4\u1ebe\u1ec6I\xcc\u1ec8\u0128\xcd\u1ecaO\xd2\u1ece\xd5\xd3\u1ecc\xd4\u1ed2\u1ed4\u1ed6\u1ed0\u1ed8\u01a0\u1edc\u1ede\u1ee0\u1eda\u1ee2\xd9\u1ee6\u0168\xda\u1ee4\u01af\u1eea\u1eec\u1eee\u1ee8\u1ef0\u1ef2\u1ef6\u1ef8\xdd\u1ef4\xe0\u1ea3\xe3\xe1\u1ea1\u0103\u1eb1\u1eb3\u1eb5\u1eaf\u1eb7\xe2\u1ea7\u1ea9\u1eab\u1ea5\u1ead\u0111\xe8\u1ebb\u1ebd\xe9\u1eb9\xea\u1ec1\u1ec3\u1ec5\u1ebf\u1ec7\u1ec9\u0129\xed\u1ecb\xf2\u1ecf\xf5\xf3\u1ecd\xf4\u1ed3\u1ed5\u1ed7\u1ed1\u1ed9\u01a1\u1edd\u1edf\u1ee1\u1edb\u1ee3\xf9\u1ee7\u0169\xfa\u1ee5\u01b0\u1eeb\u1eed\u1eef\u1ee9\u1ef1\u1ef3\u1ef7\u1ef9\xfd\u1ef5]/;
          break;

         case "thai":
         case "th":
         case "th-th":
          cc["textUtils"].label_wordRex = /([a-zA-Z0-9\u0E00-\u0E7F]+|\S)/;
          cc["textUtils"].label_lastWordRex = /([a-zA-Z0-9\u0E00-\u0E7F]+|\S)$/;
          cc["textUtils"].label_lastEnglish = /[\u0e40\u0e41\u0e42\u0e43\u0e44]?[a-zA-Z0-9\u0E00-\u0E2F\u0e40\u0e41\u0e42\u0e43\u0e44][\u0E31-\u0E3A\u0E45-\u0E4E]*[\u0e45\u0e30\u0e2d\u0e27\u0e22\u0e32]?$/;
          cc["textUtils"].label_firstEnglish = /^[a-zA-Z0-9\u0E31-\u0E3A\u0E45-\u0E4E]/;
          break;

         default:
          cc["textUtils"].label_wordRex = /([a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430-\u044f\u0410-\u042f\u0401\u0451]+|\S)/;
          cc["textUtils"].label_lastWordRex = /([a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430\xed\xec\xcd\xcc\xef\xc1\xc0\xe1\xe0\xc9\xc8\xd2\xd3\xf2\xf3\u0150\u0151\xd9\xda\u0170\xfa\u0171\xf1\xd1\xe6\xc6\u0153\u0152\xc3\xc2\xe3\xd4\xf5\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9\xf3\xfa\u016f\u0165\u010f\u0148\u011a\u0160\u010c\u0158\u017d\xc1\xcd\xc9\xd3\xda\u0164\u017c\u017a\u015b\xf3\u0144\u0142\u0119\u0107\u0105\u017b\u0179\u015a\xd3\u0143\u0141\u0118\u0106\u0104-\u044f\u0410-\u042f\u0401\u0451]+|\S)$/;
          cc["textUtils"].label_lastEnglish = /[a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430\xed\xec\xcd\xcc\xef\xc1\xc0\xe1\xe0\xc9\xc8\xd2\xd3\xf2\xf3\u0150\u0151\xd9\xda\u0170\xfa\u0171\xf1\xd1\xe6\xc6\u0153\u0152\xc3\xc2\xe3\xd4\xf5\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9\xf3\xfa\u016f\u0165\u010f\u0148\u011a\u0160\u010c\u0158\u017d\xc1\xcd\xc9\xd3\xda\u0164\u017c\u017a\u015b\xf3\u0144\u0142\u0119\u0107\u0105\u017b\u0179\u015a\xd3\u0143\u0141\u0118\u0106\u0104-\u044f\u0410-\u042f\u0401\u0451]+$/;
          cc["textUtils"].label_firstEnglish = /^[a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430\xed\xec\xcd\xcc\xef\xc1\xc0\xe1\xe0\xc9\xc8\xd2\xd3\xf2\xf3\u0150\u0151\xd9\xda\u0170\xfa\u0171\xf1\xd1\xe6\xc6\u0153\u0152\xc3\xc2\xe3\xd4\xf5\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9\xf3\xfa\u016f\u0165\u010f\u0148\u011a\u0160\u010c\u0158\u017d\xc1\xcd\xc9\xd3\xda\u0164\u017c\u017a\u015b\xf3\u0144\u0142\u0119\u0107\u0105\u017b\u0179\u015a\xd3\u0143\u0141\u0118\u0106\u0104-\u044f\u0410-\u042f\u0401\u0451]/;
        }
      }
    };
    __decorate([ property({
      type: cc.SpriteAtlas
    }) ], i18n.prototype, "fishInfoSpritesList", void 0);
    __decorate([ property({
      type: cc.SpriteAtlas
    }) ], i18n.prototype, "imageList", void 0);
    __decorate([ property({
      type: cc.SpriteAtlas
    }) ], i18n.prototype, "commLangList", void 0);
    __decorate([ property({
      type: cc.SpriteAtlas
    }) ], i18n.prototype, "lobbyImageList", void 0);
    __decorate([ property({
      type: cc.Texture2D
    }) ], i18n.prototype, "fishLangList", void 0);
    __decorate([ property({
      type: LanguageTextureProperty
    }) ], i18n.prototype, "fishLangPropertyList", void 0);
    i18n = __decorate([ ccclass ], i18n);
    exports.i18n = i18n;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-item_event": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "54a7d80gMFMvpaj1V+rM2WC", "MT3SETB-item_event");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.item_event = void 0;
    const MT3SETB_item_1 = require("../api/MT3SETB-item");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let item_event = class item_event extends cc.Component {
      constructor() {
        super();
        this.onUsedEvent = null;
        this.onUpdateEvent = null;
      }
      onEnable() {
        MT3SETB_item_1.SetItemHandler(this.onUsedEvent, this.onUpdateEvent);
      }
      onDisable() {
        MT3SETB_item_1.RemoveItemHandler(this.onUsedEvent, this.onUpdateEvent);
      }
    };
    __decorate([ property(cc.Component.EventHandler) ], item_event.prototype, "onUsedEvent", void 0);
    __decorate([ property(cc.Component.EventHandler) ], item_event.prototype, "onUpdateEvent", void 0);
    item_event = __decorate([ ccclass ], item_event);
    exports.item_event = item_event;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-item": "MT3SETB-item"
  } ],
  "MT3SETB-item": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "caf95me87ZNYbFwoVgfyk7J", "MT3SETB-item");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.RemoveItemHandler = exports.SetItemHandler = exports.GetItemInfo = exports.UpdateItem = exports.UseItem = exports.GetItem = exports.SetItem = void 0;
    const MT3SETB_event_1 = require("./MT3SETB-event");
    const MT3SETB_mtf_pb_wrapper_1 = require("./MT3SETB-mtf_pb_wrapper");
    const MT3SETB_profile_1 = require("./MT3SETB-profile");
    const MT3SETB_websocket_1 = require("./MT3SETB-websocket");
    var s = null;
    const SetItem = function(e) {
      var t;
      s && (t = s);
      0 == (s = e).mail.length && t && t.mail.length > 0 && (s.mail = t.mail.slice());
      t = null;
      l.emit([]);
    };
    exports.SetItem = SetItem;
    const GetItem = function() {
      return s;
    };
    exports.GetItem = GetItem;
    const UseItem = function(e, t) {
      var o = new MT3SETB_mtf_pb_wrapper_1.mtf.ItemUseRequest();
      o.id = t;
      o.idx = e;
      var n = MT3SETB_mtf_pb_wrapper_1.mtf.ItemUseRequest.encode(o);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_ITEM_USE_REQ, n);
    };
    exports.UseItem = UseItem;
    const UpdateItem = function(e) {
      c.emit([ e ]);
    };
    exports.UpdateItem = UpdateItem;
    const GetItemInfo = function() {
      var e = new MT3SETB_mtf_pb_wrapper_1.mtf.ItemRequest();
      e.lang = MT3SETB_profile_1.GetLangCode();
      var t = MT3SETB_mtf_pb_wrapper_1.mtf.ItemRequest.encode(e);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_ITEM_INFO, t);
    };
    exports.GetItemInfo = GetItemInfo;
    var c = new MT3SETB_event_1.EventHandler(), l = new MT3SETB_event_1.EventHandler();
    const SetItemHandler = function(e, t) {
      c.add(e);
      l.add(t);
    };
    exports.SetItemHandler = SetItemHandler;
    const RemoveItemHandler = function(e, t) {
      c.remove(e);
      l.remove(t);
    };
    exports.RemoveItemHandler = RemoveItemHandler;
    cc._RF.pop();
  }, {
    "./MT3SETB-event": "MT3SETB-event",
    "./MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-profile": "MT3SETB-profile",
    "./MT3SETB-websocket": "MT3SETB-websocket"
  } ],
  "MT3SETB-language": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "9934aubm15FYox0ZItjFtZL", "MT3SETB-language");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ReplaceItemCardString = exports.GetBold = exports.GetFont = exports.GetLanguage = exports.SetFont = exports.SetLanguage = void 0;
    const MT3SETB_platform_1 = require("./MT3SETB-platform");
    var _language = null, _font = [], r = -1, bold = true, s = function() {
      if (MT3SETB_platform_1.GetLang()) switch (MT3SETB_platform_1.GetLang().toLowerCase()) {
       case "zh-cn":
        r = 0;
        bold = false;
        break;

       case "zh-tw":
        r = 1;
        bold = false;
        break;

       case "en-us":
        r = 2;
        break;

       case "th-th":
        r = 3;
        bold = false;
        break;

       case "id-id":
        r = 4;
        break;

       case "vi-vn":
        r = 5;
        break;

       case "my-mm":
        r = 6;
        bold = false;
        break;

       case "ja-jp":
        r = 7;
        break;

       case "ta-in":
        r = 2;
        break;

       case "hi-in":
        r = 9;
        break;

       case "ms-my":
        r = 10;
        break;

       case "ko-kr":
        r = 11;
        break;

       case "bn-in":
        r = 12;
        break;

       case "es-ar":
        r = 13;
        break;

       case "pt-br":
        r = 14;
        break;

       case "it-it":
        r = 15;
        break;

       case "sv-se":
        r = 16;
        break;

       case "de-de":
        r = 17;
        break;

       case "da-dk":
        r = 18;
        break;

       case "ro-ro":
        r = 19;
        break;

       case "nl-nl":
        r = 20;
        break;

       case "tr-tr":
        r = 21;
        break;

       case "ru-ru":
        r = 22;
      }
    };
    const SetLanguage = function(e) {
      _language = e;
    };
    exports.SetLanguage = SetLanguage;
    const SetFont = function(e) {
      _font = e;
    };
    exports.SetFont = SetFont;
    const GetLanguage = function(e) {
      var t, o = _language[e];
      if (null == o) return "";
      var a = null !== (t = o[MT3SETB_platform_1.GetLang()]) && void 0 !== t ? t : o["en-US"];
      return null == a ? e.toString() : a;
    };
    exports.GetLanguage = GetLanguage;
    const GetFont = function() {
      return r < 0 && (s(), r < 0) ? null : _font[r];
    };
    exports.GetFont = GetFont;
    const GetBold = function() {
      return bold;
    };
    exports.GetBold = GetBold;
    const ReplaceItemCardString = function() {
      if (_language) {
        var e = MT3SETB_platform_1.GetLang(), t = MT3SETB_platform_1.checkTaDaVersion() ? "win card" : "rich card", o = MT3SETB_platform_1.checkTaDaVersion() ? "Win card" : "Rich card";
        for (var a in _language) {
          var r = _language[a][e].toString();
          if (r.includes("tem card")) {
            r.includes("item card") && (_language[a][e] = r.replace("item card", t));
            r.includes("Item card") && (_language[a][e] = r.replace("Item card", o));
          }
        }
      }
    };
    exports.ReplaceItemCardString = ReplaceItemCardString;
    cc._RF.pop();
  }, {
    "./MT3SETB-platform": "MT3SETB-platform"
  } ],
  "MT3SETB-lobbyLauncher": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "65c15yrpqhDr5VrM1xXzSww", "MT3SETB-lobbyLauncher");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const {ccclass: ccclass, property: property} = cc._decorator;
    let lobbyLauncher = class lobbyLauncher extends cc.Component {
      constructor() {
        super(...arguments);
        this.bundleName = "MT3SETB";
        this.sceneName = "MTFNB";
      }
      onLoad() {
        this.updateProgressLoading(0, false);
        this.onResizeCanvas();
        if (cc.sys.isNative) if (window[`subGameInitData_${this.bundleName}`]) {
          console.log("Lobby init data found:");
          Object.entries(window[`subGameInitData_${this.bundleName}`]).forEach(([key, value]) => {
            console.log(`window['subGameInitData_${this.bundleName}'] Key: ${key}, Value: ${value}`);
          });
        } else console.warn("Lobby init data not found.");
        this.sceneName = `${this.bundleName}-${this.GetURLParam("gameId")}`;
        let bundle = cc.assetManager.getBundle(this.bundleName);
        bundle && bundle.loadScene(this.sceneName, (finish, total) => {
          let progress = finish / total;
          this.updateProgressLoading(.2 * progress);
        }, (err, scene) => {
          if (err) {
            console.error("Error loading scene", err);
            return;
          }
          cc.assetManager.bundles.forEach((val, key) => {
            console.log("Loaded bundle:", val, key);
          });
          cc.director.runScene(scene);
        });
      }
      GetURLParam(key) {
        if (cc.sys.isNative && window[`subGameInitData_${this.bundleName}`]) return void 0 !== window[`subGameInitData_${this.bundleName}`][key] ? window[`subGameInitData_${this.bundleName}`][key] : "";
        var t;
        if (-1 !== (t = "undefined" != typeof LobbyData ? LobbyData.url : window.location.href).indexOf("?")) for (var o = t.split("?")[1].split("&"), n = 0, i = o.length; n < i; ++n) if (o[n].split("=")[0] === key) return o[n].split("=")[1];
        return "";
      }
      get winSizeFactor() {
        let ds = cc.view.getDesignResolutionSize(), vs = cc.view.getVisibleSize(), sa = cc.sys.getSafeAreaRect(), usableHeight = Math.min(vs.height, sa.height), usableWidth = Math.min(vs.width, sa.width), height = Math.min(ds.height, usableHeight), width = usableWidth, scale = Math.min(1, usableHeight / ds.height);
        return {
          width: width,
          height: height,
          scaleX: 1 / scale,
          scaleY: 1,
          x: .5 * (vs.width - width),
          y: .5 * (vs.height - height)
        };
      }
      onResizeCanvas() {
        let size = this.winSizeFactor;
        this.node.setContentSize(size.width, size.height);
        this.node.x = size.x;
        this.node.y = 0;
        this.node.getComponentsInChildren(cc.Widget).forEach(widget => {
          widget.updateAlignment();
        });
      }
      updateProgressLoading(currProgress, isTween = true) {
        var _a, _b;
        let progressBar = null === (_a = cc.find("Canvas/loading/progressbar")) || void 0 === _a ? void 0 : _a.getComponent(cc.ProgressBar);
        let progressText = null === (_b = cc.find("Canvas/loading/progressbar/progressBarLabel")) || void 0 === _b ? void 0 : _b.getComponent(cc.Label);
        if (null == progressBar || null == progressText) return;
        if (isTween) cc.tween(progressBar).to(1, {
          progress: currProgress
        }, {
          onUpdate: () => {
            let progressVal = progressBar.progress;
            progressText.string = Math.floor(100 * progressVal) + "%";
          }
        }).delay(1).start(); else {
          progressBar.progress = currProgress;
          progressText.string = Math.floor(100 * currProgress) + "%";
        }
      }
    };
    __decorate([ property ], lobbyLauncher.prototype, "bundleName", void 0);
    __decorate([ property ], lobbyLauncher.prototype, "sceneName", void 0);
    lobbyLauncher = __decorate([ ccclass ], lobbyLauncher);
    exports.default = lobbyLauncher;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-mail_event": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d236b6c7zhEbq+PCEu+aP2i", "MT3SETB-mail_event");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.mail_event = void 0;
    const MT3SETB_mail_1 = require("../api/MT3SETB-mail");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let mail_event = class mail_event extends cc.Component {
      constructor() {
        super();
        this.onUpdateEvent = null;
      }
      onEnable() {
        MT3SETB_mail_1.SetMailHandler(this.onUpdateEvent);
      }
      onDisable() {
        MT3SETB_mail_1.RemoveMailHandler(this.onUpdateEvent);
      }
    };
    __decorate([ property(cc.Component.EventHandler) ], mail_event.prototype, "onUpdateEvent", void 0);
    mail_event = __decorate([ ccclass ], mail_event);
    exports.mail_event = mail_event;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-mail": "MT3SETB-mail"
  } ],
  "MT3SETB-mail": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "a45535OskRLRr/X/ozsMfoF", "MT3SETB-mail");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SetMail = exports.RemoveMailHandler = exports.SetMailHandler = void 0;
    const MT3SETB_event_1 = require("./MT3SETB-event");
    var n = new MT3SETB_event_1.EventHandler();
    const SetMailHandler = function(e) {
      n.add(e);
    };
    exports.SetMailHandler = SetMailHandler;
    const RemoveMailHandler = function(e) {
      n.remove(e);
    };
    exports.RemoveMailHandler = RemoveMailHandler;
    const SetMail = function(e) {
      e.mails.forEach(function(e) {
        n.emit([ e ]);
      });
    };
    exports.SetMail = SetMail;
    cc._RF.pop();
  }, {
    "./MT3SETB-event": "MT3SETB-event"
  } ],
  "MT3SETB-mission_event": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "5646ag85HhEkJ57XgHKeg3Y", "MT3SETB-mission_event");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.mission_event = void 0;
    const MT3SETB_mission_1 = require("../api/MT3SETB-mission");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let mission_event = class mission_event extends cc.Component {
      constructor() {
        super();
        this.onCompleteEvent = null;
        this.onUpdateEvent = null;
      }
      onEnable() {
        MT3SETB_mission_1.SetMissionHandler(this.onUpdateEvent, this.onCompleteEvent);
      }
      onDisable() {
        MT3SETB_mission_1.RemoveMissionHandler(this.onUpdateEvent, this.onCompleteEvent);
      }
    };
    __decorate([ property(cc.Component.EventHandler) ], mission_event.prototype, "onCompleteEvent", void 0);
    __decorate([ property(cc.Component.EventHandler) ], mission_event.prototype, "onUpdateEvent", void 0);
    mission_event = __decorate([ ccclass ], mission_event);
    exports.mission_event = mission_event;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-mission": "MT3SETB-mission"
  } ],
  "MT3SETB-mission": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e5599QkgplDR5rwAsumGU/G", "MT3SETB-mission");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.RemoveMissionHandler = exports.SetMissionHandler = exports.GetMissionInfo = exports.HasMission = exports.UpdateMission = exports.GetMissionItemById = exports.GetMissionNextGameId = exports.GetMissionEndTime = exports.GetMission = exports.SetMission = void 0;
    const MT3SETB_event_1 = require("./MT3SETB-event");
    const MT3SETB_mtf_pb_wrapper_1 = require("./MT3SETB-mtf_pb_wrapper");
    const MT3SETB_platform_1 = require("./MT3SETB-platform");
    const MT3SETB_websocket_1 = require("./MT3SETB-websocket");
    var s = null, c = new Map(), l = true;
    function u(e, t, o, n) {
      return {
        newHint: e,
        completeHint: t,
        jiliPageHint: o,
        gamePageHint: n
      };
    }
    function d(e, t) {
      var o = false, n = false, i = false, a = false;
      if (!t) return u(false, false, false, false);
      if (!e && t) return u(true, false, false, false);
      if (t.endTime.toNumber() > e.endTime.toNumber()) return u(true, false, false, false);
      var r = e.info.filter(function(e) {
        return 1 === e.show;
      }), s = t.info.filter(function(e) {
        return 1 === e.show;
      }), c = e.info.filter(function(e) {
        return 2 === e.show;
      }), l = t.info.filter(function(e) {
        return 2 === e.show;
      });
      r.length !== s.length && (o = true, i = true);
      c.length !== l.length && (o = true, a = true);
      var d = r.filter(function(e) {
        return false === e.lock;
      }).length, p = s.filter(function(e) {
        return false === e.lock;
      }).length;
      d !== p && (o = true, i = true);
      var h = c.filter(function(e) {
        return false === e.lock;
      }).length, f = l.filter(function(e) {
        return false === e.lock;
      }).length;
      h !== f && (o = true, a = true);
      (d = r.filter(function(e) {
        return e.currentCount >= e.totalCount;
      }).length) !== (p = s.filter(function(e) {
        return e.currentCount >= e.totalCount;
      }).length) && (n = true, i = true);
      (h = c.filter(function(e) {
        return e.currentCount >= e.totalCount;
      }).length) !== (f = l.filter(function(e) {
        return e.currentCount >= e.totalCount;
      }).length) && (n = true, a = true);
      return u(o, n, i, a);
    }
    const SetMission = function(e) {
      if (e) {
        var t = e;
        t.item.forEach(function(e) {
          c.set(e.id, e);
        });
        var o = d(s, t);
        s = t;
        p.emit([ o ]);
      }
    };
    exports.SetMission = SetMission;
    const GetMission = function() {
      return s && s.info ? s.info : [];
    };
    exports.GetMission = GetMission;
    const GetMissionEndTime = function() {
      return new Date(1e3 * s.endTime.toNumber());
    };
    exports.GetMissionEndTime = GetMissionEndTime;
    const GetMissionNextGameId = function() {
      return s && s.next ? s.next : [];
    };
    exports.GetMissionNextGameId = GetMissionNextGameId;
    const GetMissionItemById = function(e) {
      return c.get(e);
    };
    exports.GetMissionItemById = GetMissionItemById;
    const UpdateMission = function(e) {
      if (s) {
        for (var t = [], o = 0, n = e.list; o < n.length; o++) {
          var i = n[o];
          i.reward > 0 && t.push(i.reward);
        }
        if (t.length > 0) return void h.emit([ t ]);
      }
    };
    exports.UpdateMission = UpdateMission;
    const HasMission = function() {
      return null != s;
    };
    exports.HasMission = HasMission;
    const GetMissionInfo = function() {
      s && s.endTime.toNumber() < Date.now() / 1e3 && (l = true);
      if (false != l) {
        l = true;
        var e = new MT3SETB_mtf_pb_wrapper_1.mtf.MissionRequest();
        e.lang = MT3SETB_platform_1.GetLang();
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.MissionRequest.encode(e);
        MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_MISSION_INFO, t);
      }
    };
    exports.GetMissionInfo = GetMissionInfo;
    var p = new MT3SETB_event_1.EventHandler(), h = new MT3SETB_event_1.EventHandler();
    const SetMissionHandler = function(e, t) {
      p.add(e);
      h.add(t);
    };
    exports.SetMissionHandler = SetMissionHandler;
    const RemoveMissionHandler = function(e, t) {
      p.remove(e);
      h.remove(t);
    };
    exports.RemoveMissionHandler = RemoveMissionHandler;
    cc._RF.pop();
  }, {
    "./MT3SETB-event": "MT3SETB-event",
    "./MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-platform": "MT3SETB-platform",
    "./MT3SETB-websocket": "MT3SETB-websocket"
  } ],
  "MT3SETB-mtfPath_pb_wrapper": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "a13e5IYkP5OCYEGz857Dfjw", "MT3SETB-mtfPath_pb_wrapper");
    "use strict";
    var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
      void 0 === k2 && (k2 = k);
      Object.defineProperty(o, k2, {
        enumerable: true,
        get: function() {
          return m[k];
        }
      });
    } : function(o, m, k, k2) {
      void 0 === k2 && (k2 = k);
      o[k2] = m[k];
    });
    var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", {
        enumerable: true,
        value: v
      });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar = this && this.__importStar || function(mod) {
      if (mod && mod.__esModule) return mod;
      var result = {};
      if (null != mod) for (var k in mod) "default" !== k && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k);
      __setModuleDefault(result, mod);
      return result;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.mtfPath = void 0;
    const originalModules = __importStar(require("./MT3SETB-mtfPath_pb"));
    var mtfPath;
    (function(mtfPath) {
      class Pathway extends originalModules.Pathway {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getDesignwidth) {
            this.designWidth = other.getDesignwidth();
            this.designHeight = other.getDesignheight();
            this.safeLength = other.getSafelength();
            this.lines = other.getLinesList();
            this.groups = other.getGroupsList();
          }
          Object.assign(this, other);
        }
        get designWidth() {
          return super.getDesignwidth();
        }
        set designWidth(value) {
          super.setDesignwidth(value);
        }
        get designHeight() {
          return super.getDesignheight();
        }
        set designHeight(value) {
          super.setDesignheight(value);
        }
        get safeLength() {
          return super.getSafelength();
        }
        set safeLength(value) {
          super.setSafelength(value);
        }
        get lines() {
          let list = super.getLinesList().map(line => new Line(line));
          super.setLinesList(list);
          return list;
        }
        set lines(value) {
          super.setLinesList(value.map(line => new Line(line)));
        }
        get groups() {
          let list = super.getGroupsList().map(group => new Group(group));
          super.setGroupsList(list);
          return list;
        }
        set groups(value) {
          super.setGroupsList(value.map(group => new Group(group)));
        }
        static create() {
          return new Pathway();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Pathway(this.deserializeBinary(bytes));
        }
      }
      mtfPath.Pathway = Pathway;
      class Line extends originalModules.Line {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getName) {
            this.name = other.getName();
            this.points = other.getPointsList();
            this.isLoop = other.getIsloop();
          }
          Object.assign(this, other);
        }
        get name() {
          return super.getName();
        }
        set name(value) {
          super.setName(value);
        }
        get points() {
          let list = super.getPointsList().map(waypoint => new Waypoint(waypoint));
          super.setPointsList(list);
          return list;
        }
        set points(value) {
          super.setPointsList(value.map(waypoint => new Waypoint(waypoint)));
        }
        get isLoop() {
          return super.getIsloop();
        }
        set isLoop(value) {
          super.setIsloop(value);
        }
        static create() {
          return new Line();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Line(this.deserializeBinary(bytes));
        }
      }
      mtfPath.Line = Line;
      class Waypoint extends originalModules.Waypoint {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getX) {
            this.x = other.getX();
            this.y = other.getY();
            this.z = other.getZ();
            this.tension = other.getTension();
            this.numSegments = other.getNumsegments();
          }
          Object.assign(this, other);
        }
        get x() {
          return super.getX();
        }
        set x(value) {
          super.setX(value);
        }
        get y() {
          return super.getY();
        }
        set y(value) {
          super.setY(value);
        }
        get z() {
          return super.getZ();
        }
        set z(value) {
          super.setZ(value);
        }
        get tension() {
          return super.getTension();
        }
        set tension(value) {
          super.setTension(value);
        }
        get numSegments() {
          return super.getNumsegments();
        }
        set numSegments(value) {
          super.setNumsegments(value);
        }
        static create() {
          return new Waypoint();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Waypoint(this.deserializeBinary(bytes));
        }
      }
      mtfPath.Waypoint = Waypoint;
      class Group extends originalModules.Group {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getName) {
            this.name = other.getName();
            this.lineIndexs = other.getLineindexsList();
          }
          Object.assign(this, other);
        }
        get name() {
          return super.getName();
        }
        set name(value) {
          super.setName(value);
        }
        get lineIndexs() {
          return super.getLineindexsList();
        }
        set lineIndexs(value) {
          super.setLineindexsList(value);
        }
        static create() {
          return new Group();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Group(this.deserializeBinary(bytes));
        }
      }
      mtfPath.Group = Group;
    })(mtfPath = exports.mtfPath || (exports.mtfPath = {}));
    cc._RF.pop();
  }, {
    "./MT3SETB-mtfPath_pb": "MT3SETB-mtfPath_pb"
  } ],
  "MT3SETB-mtfPath_pb": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "c5cb2qC0LFKiKG+uHlzEn3G", "MT3SETB-mtfPath_pb");
    "use strict";
    var jspb = require("./../../libs/MT3SETB-google-protobuf");
    var goog = jspb;
    var global = "undefined" !== typeof globalThis && globalThis || "undefined" !== typeof window && window || "undefined" !== typeof global && global || "undefined" !== typeof self && self || function() {
      return this;
    }.call(null) || Function("return this")();
    goog.exportSymbol("proto.mtf.Group", null, global);
    goog.exportSymbol("proto.mtf.Line", null, global);
    goog.exportSymbol("proto.mtf.Pathway", null, global);
    goog.exportSymbol("proto.mtf.Waypoint", null, global);
    proto.mtf.Pathway = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Pathway.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Pathway, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Pathway.displayName = "proto.mtf.Pathway");
    proto.mtf.Line = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Line.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Line, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Line.displayName = "proto.mtf.Line");
    proto.mtf.Waypoint = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Waypoint, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Waypoint.displayName = "proto.mtf.Waypoint");
    proto.mtf.Group = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Group.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Group, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Group.displayName = "proto.mtf.Group");
    proto.mtf.Pathway.repeatedFields_ = [ 4, 5 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Pathway.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Pathway.toObject(opt_includeInstance, this);
      };
      proto.mtf.Pathway.toObject = function(includeInstance, msg) {
        var f, obj = {
          designwidth: jspb.Message.getFieldWithDefault(msg, 1, 0),
          designheight: jspb.Message.getFieldWithDefault(msg, 2, 0),
          safelength: jspb.Message.getFieldWithDefault(msg, 3, 0),
          linesList: jspb.Message.toObjectList(msg.getLinesList(), proto.mtf.Line.toObject, includeInstance),
          groupsList: jspb.Message.toObjectList(msg.getGroupsList(), proto.mtf.Group.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Pathway.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Pathway();
      return proto.mtf.Pathway.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Pathway.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setDesignwidth(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setDesignheight(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setSafelength(value);
          break;

         case 4:
          var value = new proto.mtf.Line();
          reader.readMessage(value, proto.mtf.Line.deserializeBinaryFromReader);
          msg.addLines(value);
          break;

         case 5:
          var value = new proto.mtf.Group();
          reader.readMessage(value, proto.mtf.Group.deserializeBinaryFromReader);
          msg.addGroups(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Pathway.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Pathway.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Pathway.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getDesignwidth();
      0 !== f && writer.writeUint32(1, f);
      f = message.getDesignheight();
      0 !== f && writer.writeUint32(2, f);
      f = message.getSafelength();
      0 !== f && writer.writeUint32(3, f);
      f = message.getLinesList();
      f.length > 0 && writer.writeRepeatedMessage(4, f, proto.mtf.Line.serializeBinaryToWriter);
      f = message.getGroupsList();
      f.length > 0 && writer.writeRepeatedMessage(5, f, proto.mtf.Group.serializeBinaryToWriter);
    };
    proto.mtf.Pathway.prototype.getDesignwidth = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Pathway.prototype.setDesignwidth = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Pathway.prototype.getDesignheight = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Pathway.prototype.setDesignheight = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Pathway.prototype.getSafelength = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Pathway.prototype.setSafelength = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.Pathway.prototype.getLinesList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Line, 4);
    };
    proto.mtf.Pathway.prototype.setLinesList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 4, value);
    };
    proto.mtf.Pathway.prototype.addLines = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.mtf.Line, opt_index);
    };
    proto.mtf.Pathway.prototype.clearLinesList = function() {
      return this.setLinesList([]);
    };
    proto.mtf.Pathway.prototype.getGroupsList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Group, 5);
    };
    proto.mtf.Pathway.prototype.setGroupsList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 5, value);
    };
    proto.mtf.Pathway.prototype.addGroups = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.mtf.Group, opt_index);
    };
    proto.mtf.Pathway.prototype.clearGroupsList = function() {
      return this.setGroupsList([]);
    };
    proto.mtf.Line.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Line.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Line.toObject(opt_includeInstance, this);
      };
      proto.mtf.Line.toObject = function(includeInstance, msg) {
        var f, obj = {
          name: jspb.Message.getFieldWithDefault(msg, 1, ""),
          pointsList: jspb.Message.toObjectList(msg.getPointsList(), proto.mtf.Waypoint.toObject, includeInstance),
          isloop: jspb.Message.getBooleanFieldWithDefault(msg, 3, false)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Line.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Line();
      return proto.mtf.Line.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Line.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setName(value);
          break;

         case 2:
          var value = new proto.mtf.Waypoint();
          reader.readMessage(value, proto.mtf.Waypoint.deserializeBinaryFromReader);
          msg.addPoints(value);
          break;

         case 3:
          var value = reader.readBool();
          msg.setIsloop(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Line.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Line.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Line.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getName();
      f.length > 0 && writer.writeString(1, f);
      f = message.getPointsList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.Waypoint.serializeBinaryToWriter);
      f = message.getIsloop();
      f && writer.writeBool(3, f);
    };
    proto.mtf.Line.prototype.getName = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.Line.prototype.setName = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.Line.prototype.getPointsList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Waypoint, 2);
    };
    proto.mtf.Line.prototype.setPointsList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.Line.prototype.addPoints = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.Waypoint, opt_index);
    };
    proto.mtf.Line.prototype.clearPointsList = function() {
      return this.setPointsList([]);
    };
    proto.mtf.Line.prototype.getIsloop = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 3, false);
    };
    proto.mtf.Line.prototype.setIsloop = function(value) {
      return jspb.Message.setProto3BooleanField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Waypoint.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Waypoint.toObject(opt_includeInstance, this);
      };
      proto.mtf.Waypoint.toObject = function(includeInstance, msg) {
        var f, obj = {
          x: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          y: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          z: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          tension: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          numsegments: jspb.Message.getFieldWithDefault(msg, 5, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Waypoint.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Waypoint();
      return proto.mtf.Waypoint.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Waypoint.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readFloat();
          msg.setX(value);
          break;

         case 2:
          var value = reader.readFloat();
          msg.setY(value);
          break;

         case 3:
          var value = reader.readFloat();
          msg.setZ(value);
          break;

         case 4:
          var value = reader.readFloat();
          msg.setTension(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setNumsegments(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Waypoint.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Waypoint.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Waypoint.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getX();
      0 !== f && writer.writeFloat(1, f);
      f = message.getY();
      0 !== f && writer.writeFloat(2, f);
      f = message.getZ();
      0 !== f && writer.writeFloat(3, f);
      f = message.getTension();
      0 !== f && writer.writeFloat(4, f);
      f = message.getNumsegments();
      0 !== f && writer.writeUint32(5, f);
    };
    proto.mtf.Waypoint.prototype.getX = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Waypoint.prototype.setX = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.Waypoint.prototype.getY = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Waypoint.prototype.setY = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.Waypoint.prototype.getZ = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Waypoint.prototype.setZ = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.Waypoint.prototype.getTension = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.Waypoint.prototype.setTension = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.Waypoint.prototype.getNumsegments = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.Waypoint.prototype.setNumsegments = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.Group.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Group.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Group.toObject(opt_includeInstance, this);
      };
      proto.mtf.Group.toObject = function(includeInstance, msg) {
        var f, obj = {
          name: jspb.Message.getFieldWithDefault(msg, 1, ""),
          lineindexsList: null == (f = jspb.Message.getRepeatedField(msg, 2)) ? void 0 : f
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Group.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Group();
      return proto.mtf.Group.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Group.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setName(value);
          break;

         case 2:
          var value = reader.readString();
          msg.addLineindexs(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Group.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Group.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Group.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getName();
      f.length > 0 && writer.writeString(1, f);
      f = message.getLineindexsList();
      f.length > 0 && writer.writeRepeatedString(2, f);
    };
    proto.mtf.Group.prototype.getName = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.Group.prototype.setName = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.Group.prototype.getLineindexsList = function() {
      return jspb.Message.getRepeatedField(this, 2);
    };
    proto.mtf.Group.prototype.setLineindexsList = function(value) {
      return jspb.Message.setField(this, 2, value || []);
    };
    proto.mtf.Group.prototype.addLineindexs = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
    };
    proto.mtf.Group.prototype.clearLineindexsList = function() {
      return this.setLineindexsList([]);
    };
    goog.object.extend(exports, proto.mtf);
    cc._RF.pop();
  }, {
    "./../../libs/MT3SETB-google-protobuf": "MT3SETB-google-protobuf"
  } ],
  "MT3SETB-mtf_pb_wrapper": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "fee58746+9CV51SuGTjqQB4", "MT3SETB-mtf_pb_wrapper");
    "use strict";
    var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
      void 0 === k2 && (k2 = k);
      Object.defineProperty(o, k2, {
        enumerable: true,
        get: function() {
          return m[k];
        }
      });
    } : function(o, m, k, k2) {
      void 0 === k2 && (k2 = k);
      o[k2] = m[k];
    });
    var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", {
        enumerable: true,
        value: v
      });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar = this && this.__importStar || function(mod) {
      if (mod && mod.__esModule) return mod;
      var result = {};
      if (null != mod) for (var k in mod) "default" !== k && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k);
      __setModuleDefault(result, mod);
      return result;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.mtf = void 0;
    const originalModules = __importStar(require("./MT3SETB-mtf_pb"));
    var mtf;
    (function(mtf) {
      mtf.UserToServer = originalModules.UserToServer;
      mtf.ServerToUser = originalModules.ServerToUser;
      mtf.LoginResult = originalModules.LoginResult;
      mtf.LogoutType = originalModules.LogoutType;
      mtf.Currency = originalModules.Currency;
      mtf.TableInfoResult = originalModules.TableInfoResult;
      mtf.JoinTableResult = originalModules.JoinTableResult;
      mtf.ShootResult = originalModules.ShootResult;
      mtf.HitResult = originalModules.HitResult;
      mtf.BulletType = originalModules.BulletType;
      mtf.RoomType = originalModules.RoomType;
      class LogoutAck extends originalModules.LogoutAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getType) {
            this.type = other.getType();
            this.code = other.getCode();
            this.message = other.getMessage();
          }
          Object.assign(this, other);
        }
        get type() {
          return super.getType();
        }
        set type(value) {
          super.setType(value);
        }
        get code() {
          return super.getCode();
        }
        set code(value) {
          super.setCode(value);
        }
        get message() {
          return super.getMessage();
        }
        set message(value) {
          super.setMessage(value);
        }
        static create() {
          return new LogoutAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new LogoutAck(this.deserializeBinary(bytes));
        }
      }
      mtf.LogoutAck = LogoutAck;
      class Command extends originalModules.Command {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getType) {
            this.type = other.getType();
            this.data = other.getData_asU8();
          }
          Object.assign(this, other);
        }
        get type() {
          return super.getType();
        }
        set type(value) {
          super.setType(value);
        }
        get data() {
          return super.getData_asU8();
        }
        set data(value) {
          super.setData(value);
        }
        static create() {
          return new Command();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Command(this.deserializeBinary(bytes));
        }
      }
      mtf.Command = Command;
      class LoginDataReq extends originalModules.LoginDataReq {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getToken && (this.token = other.getToken());
          Object.assign(this, other);
        }
        get token() {
          return super.getToken();
        }
        set token(value) {
          super.setToken(value);
        }
        static create() {
          return new LoginDataReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new LoginDataReq(this.deserializeBinary(bytes));
        }
      }
      mtf.LoginDataReq = LoginDataReq;
      class GameId extends originalModules.GameId {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getGame && (this.game = other.getGame());
          Object.assign(this, other);
        }
        get game() {
          return super.getGame();
        }
        set game(value) {
          super.setGame(value);
        }
        static create() {
          return new GameId();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new GameId(this.deserializeBinary(bytes));
        }
      }
      mtf.GameId = GameId;
      class LoginDataAck extends originalModules.LoginDataAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getUid) {
            this.uid = other.getUid();
            this.result = other.getResult();
            this.player = other.getPlayer();
            this.version = other.getVersion();
            this.reward = other.getReward();
            this.wallet = other.getWallet();
          }
          Object.assign(this, other);
        }
        get uid() {
          return super.getUid();
        }
        set uid(value) {
          super.setUid(value);
        }
        get result() {
          return super.getResult();
        }
        set result(value) {
          super.setResult(value);
        }
        get player() {
          if (!super.getPlayer()) return;
          let newValue = new PlayerInfo(super.getPlayer());
          super.setPlayer(newValue);
          return newValue;
        }
        set player(value) {
          super.setPlayer(new PlayerInfo(value));
        }
        get version() {
          return super.getVersion();
        }
        set version(value) {
          super.setVersion(value);
        }
        get reward() {
          if (!super.getReward()) return;
          let newValue = new Rewardv2(super.getReward());
          super.setReward(newValue);
          return newValue;
        }
        set reward(value) {
          super.setReward(new Rewardv2(value));
        }
        get wallet() {
          if (!super.getWallet()) return;
          let newValue = new Wallet(super.getWallet());
          super.setWallet(newValue);
          return newValue;
        }
        set wallet(value) {
          super.setWallet(new Wallet(value));
        }
        static create() {
          return new LoginDataAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new LoginDataAck(this.deserializeBinary(bytes));
        }
      }
      mtf.LoginDataAck = LoginDataAck;
      class ProfileData extends originalModules.ProfileData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getUid) {
            this.uid = other.getUid();
            this.name = other.getName();
          }
          Object.assign(this, other);
        }
        get uid() {
          return super.getUid();
        }
        set uid(value) {
          super.setUid(value);
        }
        get name() {
          return super.getName();
        }
        set name(value) {
          super.setName(value);
        }
        static create() {
          return new ProfileData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new ProfileData(this.deserializeBinary(bytes));
        }
      }
      mtf.ProfileData = ProfileData;
      class PlayerInfo extends originalModules.PlayerInfo {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getUid) {
            this.uid = other.getUid();
            this.name = other.getName();
            this.coin = other.getCoin();
            this.seat = other.getSeat();
            this.bet = other.getBet();
            this.skin = other.getSkin();
            this.skinList = other.getSkinlistList();
            this.vip = other.getVip();
          }
          Object.assign(this, other);
        }
        get uid() {
          return super.getUid();
        }
        set uid(value) {
          super.setUid(value);
        }
        get name() {
          return super.getName();
        }
        set name(value) {
          super.setName(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        get skin() {
          return super.getSkin();
        }
        set skin(value) {
          super.setSkin(value);
        }
        get skinList() {
          let list = super.getSkinlistList().map(skin => new PlayerInfo.Skin(skin));
          super.setSkinlistList(list);
          return list;
        }
        set skinList(value) {
          super.setSkinlistList(value.map(skin => new PlayerInfo.Skin(skin)));
        }
        get vip() {
          return super.getVip();
        }
        set vip(value) {
          super.setVip(value);
        }
        static create() {
          return new PlayerInfo();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new PlayerInfo(this.deserializeBinary(bytes));
        }
      }
      mtf.PlayerInfo = PlayerInfo;
      (function(PlayerInfo) {
        class Skin extends originalModules.PlayerInfo.Skin {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getSkin) {
              this.skin = other.getSkin();
              this.expiration = other.getExpiration();
              this.usage = other.getUsage();
              this.limit = other.getLimit();
              this.value1 = other.getValue1();
              this.value2 = other.getValue2();
            }
            Object.assign(this, other);
          }
          get skin() {
            return super.getSkin();
          }
          set skin(value) {
            super.setSkin(value);
          }
          get expiration() {
            return super.getExpiration();
          }
          set expiration(value) {
            super.setExpiration(value);
          }
          get usage() {
            return super.getUsage();
          }
          set usage(value) {
            super.setUsage(value);
          }
          get limit() {
            return super.getLimit();
          }
          set limit(value) {
            super.setLimit(value);
          }
          get value1() {
            return super.getValue1();
          }
          set value1(value) {
            super.setValue1(value);
          }
          get value2() {
            return super.getValue2();
          }
          set value2(value) {
            super.setValue2(value);
          }
          static create() {
            return new Skin();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Skin(this.deserializeBinary(bytes));
          }
        }
        PlayerInfo.Skin = Skin;
      })(PlayerInfo = mtf.PlayerInfo || (mtf.PlayerInfo = {}));
      class JoinTableReq extends originalModules.JoinTableReq {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getTheme) {
            this.theme = other.getTheme();
            this.room = other.getRoom();
            this.currency = other.getCurrency();
          }
          Object.assign(this, other);
        }
        get theme() {
          return super.getTheme();
        }
        set theme(value) {
          super.setTheme(value);
        }
        get room() {
          return super.getRoom();
        }
        set room(value) {
          super.setRoom(value);
        }
        get currency() {
          return super.getCurrency();
        }
        set currency(value) {
          super.setCurrency(value);
        }
        static create() {
          return new JoinTableReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new JoinTableReq(this.deserializeBinary(bytes));
        }
      }
      mtf.JoinTableReq = JoinTableReq;
      class JoinTableAck extends originalModules.JoinTableAck {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getResult && (this.result = other.getResult());
          Object.assign(this, other);
        }
        get result() {
          return super.getResult();
        }
        set result(value) {
          super.setResult(value);
        }
        static create() {
          return new JoinTableAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new JoinTableAck(this.deserializeBinary(bytes));
        }
      }
      mtf.JoinTableAck = JoinTableAck;
      class JoinNotification extends originalModules.JoinNotification {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getUser && (this.user = other.getUser());
          Object.assign(this, other);
        }
        get user() {
          if (!super.getUser()) return;
          let newValue = new PlayerInfo(super.getUser());
          super.setUser(newValue);
          return newValue;
        }
        set user(value) {
          super.setUser(new PlayerInfo(value));
        }
        static create() {
          return new JoinNotification();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new JoinNotification(this.deserializeBinary(bytes));
        }
      }
      mtf.JoinNotification = JoinNotification;
      class LeaveNotification extends originalModules.LeaveNotification {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getUid) {
            this.uid = other.getUid();
            this.seat = other.getSeat();
          }
          Object.assign(this, other);
        }
        get uid() {
          return super.getUid();
        }
        set uid(value) {
          super.setUid(value);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        static create() {
          return new LeaveNotification();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new LeaveNotification(this.deserializeBinary(bytes));
        }
      }
      mtf.LeaveNotification = LeaveNotification;
      class TableInfoAck extends originalModules.TableInfoAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getResult) {
            this.result = other.getResult();
            this.theme = other.getTheme();
            this.no = other.getNo();
            this.seat = other.getSeat();
            this.players = other.getPlayersList();
            this.session = other.getSession();
          }
          Object.assign(this, other);
        }
        get result() {
          return super.getResult();
        }
        set result(value) {
          super.setResult(value);
        }
        get theme() {
          return super.getTheme();
        }
        set theme(value) {
          super.setTheme(value);
        }
        get no() {
          return super.getNo();
        }
        set no(value) {
          super.setNo(value);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get players() {
          let list = super.getPlayersList().map(playerinfo => new PlayerInfo(playerinfo));
          super.setPlayersList(list);
          return list;
        }
        set players(value) {
          super.setPlayersList(value.map(playerinfo => new PlayerInfo(playerinfo)));
        }
        get session() {
          return super.getSession();
        }
        set session(value) {
          super.setSession(value);
        }
        static create() {
          return new TableInfoAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new TableInfoAck(this.deserializeBinary(bytes));
        }
      }
      mtf.TableInfoAck = TableInfoAck;
      class Point extends originalModules.Point {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getX) {
            this.x = other.getX();
            this.y = other.getY();
          }
          Object.assign(this, other);
        }
        get x() {
          return super.getX();
        }
        set x(value) {
          super.setX(value);
        }
        get y() {
          return super.getY();
        }
        set y(value) {
          super.setY(value);
        }
        static create() {
          return new Point();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Point(this.deserializeBinary(bytes));
        }
      }
      mtf.Point = Point;
      class ShootReqData extends originalModules.ShootReqData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getBet) {
            this.bet = other.getBet();
            this.point = other.getPoint();
            this.type = other.getType();
            this.fishId = other.getFishid();
            this.bulletId = other.getBulletid();
            this.Hits = other.getHits();
          }
          Object.assign(this, other);
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        get point() {
          if (!super.getPoint()) return;
          let newValue = new Point(super.getPoint());
          super.setPoint(newValue);
          return newValue;
        }
        set point(value) {
          super.setPoint(new Point(value));
        }
        get type() {
          return super.getType();
        }
        set type(value) {
          super.setType(value);
        }
        get fishId() {
          return super.getFishid();
        }
        set fishId(value) {
          super.setFishid(value);
        }
        get bulletId() {
          return super.getBulletid();
        }
        set bulletId(value) {
          super.setBulletid(value);
        }
        get Hits() {
          return super.getHits();
        }
        set Hits(value) {
          super.setHits(value);
        }
        static create() {
          return new ShootReqData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new ShootReqData(this.deserializeBinary(bytes));
        }
      }
      mtf.ShootReqData = ShootReqData;
      class ShootAckData extends originalModules.ShootAckData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getResult) {
            this.result = other.getResult();
            this.bulletId = other.getBulletid();
            this.coin = other.getCoin();
            this.data = other.getDataList();
          }
          Object.assign(this, other);
        }
        get result() {
          return super.getResult();
        }
        set result(value) {
          super.setResult(value);
        }
        get bulletId() {
          return super.getBulletid();
        }
        set bulletId(value) {
          super.setBulletid(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        get data() {
          let list = super.getDataList().map(shootreqdata => new ShootReqData(shootreqdata));
          super.setDataList(list);
          return list;
        }
        set data(value) {
          super.setDataList(value.map(shootreqdata => new ShootReqData(shootreqdata)));
        }
        static create() {
          return new ShootAckData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new ShootAckData(this.deserializeBinary(bytes));
        }
      }
      mtf.ShootAckData = ShootAckData;
      class ShootNotifyData extends originalModules.ShootNotifyData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.data = other.getData();
            this.coin = other.getCoin();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get data() {
          if (!super.getData()) return;
          let newValue = new ShootReqData(super.getData());
          super.setData(newValue);
          return newValue;
        }
        set data(value) {
          super.setData(new ShootReqData(value));
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        static create() {
          return new ShootNotifyData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new ShootNotifyData(this.deserializeBinary(bytes));
        }
      }
      mtf.ShootNotifyData = ShootNotifyData;
      class CannonNotifyData extends originalModules.CannonNotifyData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.isOn = other.getIson();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get isOn() {
          return super.getIson();
        }
        set isOn(value) {
          super.setIson(value);
        }
        static create() {
          return new CannonNotifyData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new CannonNotifyData(this.deserializeBinary(bytes));
        }
      }
      mtf.CannonNotifyData = CannonNotifyData;
      class DrillFireNotifyData extends originalModules.DrillFireNotifyData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.point = other.getPoint();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get point() {
          if (!super.getPoint()) return;
          let newValue = new Point(super.getPoint());
          super.setPoint(newValue);
          return newValue;
        }
        set point(value) {
          super.setPoint(new Point(value));
        }
        static create() {
          return new DrillFireNotifyData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new DrillFireNotifyData(this.deserializeBinary(bytes));
        }
      }
      mtf.DrillFireNotifyData = DrillFireNotifyData;
      class GunSettingData extends originalModules.GunSettingData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.lock = other.getLock();
            this.speed = other.getSpeed();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get lock() {
          return super.getLock();
        }
        set lock(value) {
          super.setLock(value);
        }
        get speed() {
          return super.getSpeed();
        }
        set speed(value) {
          super.setSpeed(value);
        }
        static create() {
          return new GunSettingData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new GunSettingData(this.deserializeBinary(bytes));
        }
      }
      mtf.GunSettingData = GunSettingData;
      class LockFishData extends originalModules.LockFishData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.fishTag = other.getFishtag();
            this.fishId = other.getFishid();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get fishTag() {
          return super.getFishtag();
        }
        set fishTag(value) {
          super.setFishtag(value);
        }
        get fishId() {
          return super.getFishid();
        }
        set fishId(value) {
          super.setFishid(value);
        }
        static create() {
          return new LockFishData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new LockFishData(this.deserializeBinary(bytes));
        }
      }
      mtf.LockFishData = LockFishData;
      class HitReqData extends originalModules.HitReqData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getBulletid) {
            this.bulletId = other.getBulletid();
            this.fishId = other.getFishidList();
            this.amount = other.getAmount();
          }
          Object.assign(this, other);
        }
        get bulletId() {
          return super.getBulletid();
        }
        set bulletId(value) {
          super.setBulletid(value);
        }
        get fishId() {
          return super.getFishidList();
        }
        set fishId(value) {
          super.setFishidList(value);
        }
        get amount() {
          return super.getAmount();
        }
        set amount(value) {
          super.setAmount(value);
        }
        static create() {
          return new HitReqData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new HitReqData(this.deserializeBinary(bytes));
        }
      }
      mtf.HitReqData = HitReqData;
      class SceneInfo extends originalModules.SceneInfo {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSerial) {
            this.serial = other.getSerial();
            this.time = other.getTime();
            this.bgIndex = other.getBgindex();
            this.bgAnim = other.getBganim();
            this.bgAnimLoop = other.getBganimloop();
            this.bgm = other.getBgm();
          }
          Object.assign(this, other);
        }
        get serial() {
          return super.getSerial();
        }
        set serial(value) {
          super.setSerial(value);
        }
        get time() {
          return super.getTime();
        }
        set time(value) {
          super.setTime(value);
        }
        get bgIndex() {
          return super.getBgindex();
        }
        set bgIndex(value) {
          super.setBgindex(value);
        }
        get bgAnim() {
          return super.getBganim();
        }
        set bgAnim(value) {
          super.setBganim(value);
        }
        get bgAnimLoop() {
          return super.getBganimloop();
        }
        set bgAnimLoop(value) {
          super.setBganimloop(value);
        }
        get bgm() {
          return super.getBgm();
        }
        set bgm(value) {
          super.setBgm(value);
        }
        static create() {
          return new SceneInfo();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new SceneInfo(this.deserializeBinary(bytes));
        }
      }
      mtf.SceneInfo = SceneInfo;
      class CreateFishGroupData extends originalModules.CreateFishGroupData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getBgindex) {
            this.bgIndex = other.getBgindex();
            this.serial = other.getSerial();
            this.isOpen = other.getIsopen();
            this.time = other.getTime();
          }
          Object.assign(this, other);
        }
        get bgIndex() {
          return super.getBgindex();
        }
        set bgIndex(value) {
          super.setBgindex(value);
        }
        get serial() {
          return super.getSerial();
        }
        set serial(value) {
          super.setSerial(value);
        }
        get isOpen() {
          return super.getIsopen();
        }
        set isOpen(value) {
          super.setIsopen(value);
        }
        get time() {
          return super.getTime();
        }
        set time(value) {
          super.setTime(value);
        }
        static create() {
          return new CreateFishGroupData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new CreateFishGroupData(this.deserializeBinary(bytes));
        }
      }
      mtf.CreateFishGroupData = CreateFishGroupData;
      class NotifySceneTransition extends originalModules.NotifySceneTransition {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSerial) {
            this.serial = other.getSerial();
            this.time = other.getTime();
            this.showTransition = other.getShowtransition();
            this.bgIndex = other.getBgindex();
          }
          Object.assign(this, other);
        }
        get serial() {
          return super.getSerial();
        }
        set serial(value) {
          super.setSerial(value);
        }
        get time() {
          return super.getTime();
        }
        set time(value) {
          super.setTime(value);
        }
        get showTransition() {
          return super.getShowtransition();
        }
        set showTransition(value) {
          super.setShowtransition(value);
        }
        get bgIndex() {
          return super.getBgindex();
        }
        set bgIndex(value) {
          super.setBgindex(value);
        }
        static create() {
          return new NotifySceneTransition();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new NotifySceneTransition(this.deserializeBinary(bytes));
        }
      }
      mtf.NotifySceneTransition = NotifySceneTransition;
      class CreateFishAckData extends originalModules.CreateFishAckData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getListList) {
            this.list = other.getListList();
            this.serial = other.getSerial();
            this.time = other.getTime();
          }
          Object.assign(this, other);
        }
        get list() {
          let list = super.getListList().map(fish => new CreateFishAckData.Fish(fish));
          super.setListList(list);
          return list;
        }
        set list(value) {
          super.setListList(value.map(fish => new CreateFishAckData.Fish(fish)));
        }
        get serial() {
          return super.getSerial();
        }
        set serial(value) {
          super.setSerial(value);
        }
        get time() {
          return super.getTime();
        }
        set time(value) {
          super.setTime(value);
        }
        static create() {
          return new CreateFishAckData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new CreateFishAckData(this.deserializeBinary(bytes));
        }
      }
      mtf.CreateFishAckData = CreateFishAckData;
      (function(CreateFishAckData) {
        class Fish extends originalModules.CreateFishAckData.Fish {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getFishtag) {
              this.fishTag = other.getFishtag();
              this.fishId = other.getFishid();
              this.fishWay = other.getFishway();
              this.fishDelay = other.getFishdelay();
              this.speed = other.getSpeed();
              this.groupFishId = other.getGroupfishidList();
              this.odds = other.getOdds();
              this.roat = other.getRoat();
              this.startTime = other.getStarttime();
              this.endTime = other.getEndtime();
              this.offsetX = other.getOffsetx();
              this.offsetY = other.getOffsety();
              this.NotRemove = other.getNotremove();
              this.subPath = other.getSubpath();
              this.action = other.getAction();
              this.createParams = other.getCreateparams();
            }
            Object.assign(this, other);
          }
          get fishTag() {
            return super.getFishtag();
          }
          set fishTag(value) {
            super.setFishtag(value);
          }
          get fishId() {
            return super.getFishid();
          }
          set fishId(value) {
            super.setFishid(value);
          }
          get fishWay() {
            return super.getFishway();
          }
          set fishWay(value) {
            super.setFishway(value);
          }
          get fishDelay() {
            return super.getFishdelay();
          }
          set fishDelay(value) {
            super.setFishdelay(value);
          }
          get speed() {
            return super.getSpeed();
          }
          set speed(value) {
            super.setSpeed(value);
          }
          get groupFishId() {
            return super.getGroupfishidList();
          }
          set groupFishId(value) {
            super.setGroupfishidList(value);
          }
          get odds() {
            return super.getOdds();
          }
          set odds(value) {
            super.setOdds(value);
          }
          get roat() {
            return super.getRoat();
          }
          set roat(value) {
            super.setRoat(value);
          }
          get startTime() {
            return super.getStarttime();
          }
          set startTime(value) {
            super.setStarttime(value);
          }
          get endTime() {
            return super.getEndtime();
          }
          set endTime(value) {
            super.setEndtime(value);
          }
          get offsetX() {
            return super.getOffsetx();
          }
          set offsetX(value) {
            super.setOffsetx(value);
          }
          get offsetY() {
            return super.getOffsety();
          }
          set offsetY(value) {
            super.setOffsety(value);
          }
          get NotRemove() {
            return super.getNotremove();
          }
          set NotRemove(value) {
            super.setNotremove(value);
          }
          get subPath() {
            if (!super.getSubpath()) return;
            let newValue = new SubPathway(super.getSubpath());
            super.setSubpath(newValue);
            return newValue;
          }
          set subPath(value) {
            super.setSubpath(new SubPathway(value));
          }
          get action() {
            return super.getAction();
          }
          set action(value) {
            super.setAction(value);
          }
          get createParams() {
            if (!super.getCreateparams()) return;
            let newValue = new CreateFishAckData.CreateParams(super.getCreateparams());
            super.setCreateparams(newValue);
            return newValue;
          }
          set createParams(value) {
            super.setCreateparams(new CreateFishAckData.CreateParams(value));
          }
          static create() {
            return new Fish();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Fish(this.deserializeBinary(bytes));
          }
        }
        CreateFishAckData.Fish = Fish;
        class CreateParams extends originalModules.CreateFishAckData.CreateParams {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getFadeinsecs) {
              this.fadeInSecs = other.getFadeinsecs();
              this.fadeOutStartTime = other.getFadeoutstarttime();
              this.fadeOutSecs = other.getFadeoutsecs();
              this.scaleInSec = other.getScaleinsec();
              this.slotIndex = other.getSlotindex();
            }
            Object.assign(this, other);
          }
          get fadeInSecs() {
            return super.getFadeinsecs();
          }
          set fadeInSecs(value) {
            super.setFadeinsecs(value);
          }
          get fadeOutStartTime() {
            return super.getFadeoutstarttime();
          }
          set fadeOutStartTime(value) {
            super.setFadeoutstarttime(value);
          }
          get fadeOutSecs() {
            return super.getFadeoutsecs();
          }
          set fadeOutSecs(value) {
            super.setFadeoutsecs(value);
          }
          get scaleInSec() {
            return super.getScaleinsec();
          }
          set scaleInSec(value) {
            super.setScaleinsec(value);
          }
          get slotIndex() {
            return super.getSlotindex();
          }
          set slotIndex(value) {
            super.setSlotindex(value);
          }
          static create() {
            return new CreateParams();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new CreateParams(this.deserializeBinary(bytes));
          }
        }
        CreateFishAckData.CreateParams = CreateParams;
      })(CreateFishAckData = mtf.CreateFishAckData || (mtf.CreateFishAckData = {}));
      class SubPathway extends originalModules.SubPathway {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getPathway) {
            this.pathway = other.getPathway();
            this.startTime = other.getStarttime();
            this.endTime = other.getEndtime();
            this.offsetTime = other.getOffsettime();
            this.useAngle = other.getUseangle();
            this.speed = other.getSpeed();
            this.rotatePath = other.getRotatepath();
          }
          Object.assign(this, other);
        }
        get pathway() {
          return super.getPathway();
        }
        set pathway(value) {
          super.setPathway(value);
        }
        get startTime() {
          return super.getStarttime();
        }
        set startTime(value) {
          super.setStarttime(value);
        }
        get endTime() {
          return super.getEndtime();
        }
        set endTime(value) {
          super.setEndtime(value);
        }
        get offsetTime() {
          return super.getOffsettime();
        }
        set offsetTime(value) {
          super.setOffsettime(value);
        }
        get useAngle() {
          return super.getUseangle();
        }
        set useAngle(value) {
          super.setUseangle(value);
        }
        get speed() {
          return super.getSpeed();
        }
        set speed(value) {
          super.setSpeed(value);
        }
        get rotatePath() {
          return super.getRotatepath();
        }
        set rotatePath(value) {
          super.setRotatepath(value);
        }
        static create() {
          return new SubPathway();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new SubPathway(this.deserializeBinary(bytes));
        }
      }
      mtf.SubPathway = SubPathway;
      class HitAckData extends originalModules.HitAckData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getResult) {
            this.result = other.getResult();
            this.seat = other.getSeat();
            this.fishId = other.getFishid();
            this.coin = other.getCoin();
            this.type = other.getType();
            this.dead = other.getDeadList();
            this.bulletId = other.getBulletid();
            this.bet = other.getBet();
            this.jp = other.getJp();
            this.skinEnergy = other.getSkinenergy();
            this.remain = other.getRemain();
            this.bonus = other.getBonus();
            this.seed = other.getSeed();
          }
          Object.assign(this, other);
        }
        get result() {
          return super.getResult();
        }
        set result(value) {
          super.setResult(value);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get fishId() {
          return super.getFishid();
        }
        set fishId(value) {
          super.setFishid(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        get type() {
          return super.getType();
        }
        set type(value) {
          super.setType(value);
        }
        get dead() {
          let list = super.getDeadList().map(fish => new HitAckData.Fish(fish));
          super.setDeadList(list);
          return list;
        }
        set dead(value) {
          super.setDeadList(value.map(fish => new HitAckData.Fish(fish)));
        }
        get bulletId() {
          return super.getBulletid();
        }
        set bulletId(value) {
          super.setBulletid(value);
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        get jp() {
          if (!super.getJp()) return;
          let newValue = new JpData(super.getJp());
          super.setJp(newValue);
          return newValue;
        }
        set jp(value) {
          super.setJp(new JpData(value));
        }
        get skinEnergy() {
          return super.getSkinenergy();
        }
        set skinEnergy(value) {
          super.setSkinenergy(value);
        }
        get remain() {
          return super.getRemain();
        }
        set remain(value) {
          super.setRemain(value);
        }
        get bonus() {
          return super.getBonus();
        }
        set bonus(value) {
          super.setBonus(value);
        }
        get seed() {
          return super.getSeed();
        }
        set seed(value) {
          super.setSeed(value);
        }
        static create() {
          return new HitAckData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new HitAckData(this.deserializeBinary(bytes));
        }
      }
      mtf.HitAckData = HitAckData;
      (function(HitAckData) {
        class Fish extends originalModules.HitAckData.Fish {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getId) {
              this.id = other.getId();
              this.coin = other.getCoin();
              this.alive = other.getAlive();
            }
            Object.assign(this, other);
          }
          get id() {
            return super.getId();
          }
          set id(value) {
            super.setId(value);
          }
          get coin() {
            return super.getCoin();
          }
          set coin(value) {
            super.setCoin(value);
          }
          get alive() {
            return super.getAlive();
          }
          set alive(value) {
            super.setAlive(value);
          }
          static create() {
            return new Fish();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Fish(this.deserializeBinary(bytes));
          }
        }
        HitAckData.Fish = Fish;
      })(HitAckData = mtf.HitAckData || (mtf.HitAckData = {}));
      class HitSpecialAckData extends originalModules.HitSpecialAckData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.fishId = other.getFishid();
            this.type = other.getType();
            this.odds = other.getOdds();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get fishId() {
          return super.getFishid();
        }
        set fishId(value) {
          super.setFishid(value);
        }
        get type() {
          return super.getType();
        }
        set type(value) {
          super.setType(value);
        }
        get odds() {
          return super.getOdds();
        }
        set odds(value) {
          super.setOdds(value);
        }
        static create() {
          return new HitSpecialAckData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new HitSpecialAckData(this.deserializeBinary(bytes));
        }
      }
      mtf.HitSpecialAckData = HitSpecialAckData;
      class HitSpecialStartReqData extends originalModules.HitSpecialStartReqData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getFishidsList) {
            this.fishIds = other.getFishidsList();
            this.type = other.getType();
          }
          Object.assign(this, other);
        }
        get fishIds() {
          return super.getFishidsList();
        }
        set fishIds(value) {
          super.setFishidsList(value);
        }
        get type() {
          return super.getType();
        }
        set type(value) {
          super.setType(value);
        }
        static create() {
          return new HitSpecialStartReqData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new HitSpecialStartReqData(this.deserializeBinary(bytes));
        }
      }
      mtf.HitSpecialStartReqData = HitSpecialStartReqData;
      class HitSpeicalStartData extends originalModules.HitSpeicalStartData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.fishIds = other.getFishidsList();
            this.type = other.getType();
            this.id = other.getId();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get fishIds() {
          return super.getFishidsList();
        }
        set fishIds(value) {
          super.setFishidsList(value);
        }
        get type() {
          return super.getType();
        }
        set type(value) {
          super.setType(value);
        }
        get id() {
          return super.getId();
        }
        set id(value) {
          super.setId(value);
        }
        static create() {
          return new HitSpeicalStartData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new HitSpeicalStartData(this.deserializeBinary(bytes));
        }
      }
      mtf.HitSpeicalStartData = HitSpeicalStartData;
      class HitSpecialEndData extends originalModules.HitSpecialEndData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.coin = other.getCoin();
            this.type = other.getType();
            this.odds = other.getOdds();
            this.id = other.getId();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        get type() {
          return super.getType();
        }
        set type(value) {
          super.setType(value);
        }
        get odds() {
          return super.getOdds();
        }
        set odds(value) {
          super.setOdds(value);
        }
        get id() {
          return super.getId();
        }
        set id(value) {
          super.setId(value);
        }
        static create() {
          return new HitSpecialEndData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new HitSpecialEndData(this.deserializeBinary(bytes));
        }
      }
      mtf.HitSpecialEndData = HitSpecialEndData;
      class AddCoin extends originalModules.AddCoin {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.coin = other.getCoin();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        static create() {
          return new AddCoin();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new AddCoin(this.deserializeBinary(bytes));
        }
      }
      mtf.AddCoin = AddCoin;
      class SetCoin extends originalModules.SetCoin {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getCoin && (this.coin = other.getCoin());
          Object.assign(this, other);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        static create() {
          return new SetCoin();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new SetCoin(this.deserializeBinary(bytes));
        }
      }
      mtf.SetCoin = SetCoin;
      class Token extends originalModules.Token {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getTime) {
            this.time = other.getTime();
            this.uid = other.getUid();
            this.check = other.getCheck_asU8();
          }
          Object.assign(this, other);
        }
        get time() {
          return super.getTime();
        }
        set time(value) {
          super.setTime(value);
        }
        get uid() {
          return super.getUid();
        }
        set uid(value) {
          super.setUid(value);
        }
        get check() {
          return super.getCheck_asU8();
        }
        set check(value) {
          super.setCheck(value);
        }
        static create() {
          return new Token();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Token(this.deserializeBinary(bytes));
        }
      }
      mtf.Token = Token;
      class HitSpeical4StartData extends originalModules.HitSpeical4StartData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.bet = other.getBet();
            this.odds = other.getOdds();
            this.addTime = other.getAddtime();
            this.amount = other.getAmount();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        get odds() {
          return super.getOdds();
        }
        set odds(value) {
          super.setOdds(value);
        }
        get addTime() {
          return super.getAddtime();
        }
        set addTime(value) {
          super.setAddtime(value);
        }
        get amount() {
          return super.getAmount();
        }
        set amount(value) {
          super.setAmount(value);
        }
        static create() {
          return new HitSpeical4StartData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new HitSpeical4StartData(this.deserializeBinary(bytes));
        }
      }
      mtf.HitSpeical4StartData = HitSpeical4StartData;
      class BroadcastData extends originalModules.BroadcastData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getName) {
            this.name = other.getName();
            this.theme = other.getTheme();
            this.odds = other.getOdds();
            this.fish = other.getFish();
            this.coin = other.getCoin();
            this.vendor = other.getVendor();
            this.currency = other.getCurrency();
          }
          Object.assign(this, other);
        }
        get name() {
          return super.getName();
        }
        set name(value) {
          super.setName(value);
        }
        get theme() {
          return super.getTheme();
        }
        set theme(value) {
          super.setTheme(value);
        }
        get odds() {
          return super.getOdds();
        }
        set odds(value) {
          super.setOdds(value);
        }
        get fish() {
          return super.getFish();
        }
        set fish(value) {
          super.setFish(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        get vendor() {
          return super.getVendor();
        }
        set vendor(value) {
          super.setVendor(value);
        }
        get currency() {
          return super.getCurrency();
        }
        set currency(value) {
          super.setCurrency(value);
        }
        static create() {
          return new BroadcastData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new BroadcastData(this.deserializeBinary(bytes));
        }
      }
      mtf.BroadcastData = BroadcastData;
      class TreasureChestData extends originalModules.TreasureChestData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.bet = other.getBet();
            this.odds = other.getOdds();
            this.coin = other.getCoin();
            this.remain = other.getRemain();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        get odds() {
          return super.getOdds();
        }
        set odds(value) {
          super.setOdds(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        get remain() {
          return super.getRemain();
        }
        set remain(value) {
          super.setRemain(value);
        }
        static create() {
          return new TreasureChestData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new TreasureChestData(this.deserializeBinary(bytes));
        }
      }
      mtf.TreasureChestData = TreasureChestData;
      class HitMeteorStartReq extends originalModules.HitMeteorStartReq {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getFishList) {
            this.fish = other.getFishList();
            this.bet = other.getBet();
          }
          Object.assign(this, other);
        }
        get fish() {
          return super.getFishList();
        }
        set fish(value) {
          super.setFishList(value);
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        static create() {
          return new HitMeteorStartReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new HitMeteorStartReq(this.deserializeBinary(bytes));
        }
      }
      mtf.HitMeteorStartReq = HitMeteorStartReq;
      class HitMeteorStartAck extends originalModules.HitMeteorStartAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.fish = other.getFishList();
            this.coin = other.getCoin();
            this.bet = other.getBet();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get fish() {
          return super.getFishList();
        }
        set fish(value) {
          super.setFishList(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        static create() {
          return new HitMeteorStartAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new HitMeteorStartAck(this.deserializeBinary(bytes));
        }
      }
      mtf.HitMeteorStartAck = HitMeteorStartAck;
      class Vip extends originalModules.Vip {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getLevel) {
            this.level = other.getLevel();
            this.isMax = other.getIsmax();
            this.exp = other.getExp();
            this.treasure = other.getTreasure();
          }
          Object.assign(this, other);
        }
        get level() {
          return super.getLevel();
        }
        set level(value) {
          super.setLevel(value);
        }
        get isMax() {
          return super.getIsmax();
        }
        set isMax(value) {
          super.setIsmax(value);
        }
        get exp() {
          return super.getExp();
        }
        set exp(value) {
          super.setExp(value);
        }
        get treasure() {
          if (!super.getTreasure()) return;
          let newValue = new Vip.Treasure(super.getTreasure());
          super.setTreasure(newValue);
          return newValue;
        }
        set treasure(value) {
          super.setTreasure(new Vip.Treasure(value));
        }
        static create() {
          return new Vip();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Vip(this.deserializeBinary(bytes));
        }
      }
      mtf.Vip = Vip;
      (function(Vip) {
        class Treasure extends originalModules.Vip.Treasure {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getExp) {
              this.exp = other.getExp();
              this.info = other.getInfoList();
              this.next = other.getNext();
            }
            Object.assign(this, other);
          }
          get exp() {
            return super.getExp();
          }
          set exp(value) {
            super.setExp(value);
          }
          get info() {
            let list = super.getInfoList().map(info => new Vip.Treasure.Info(info));
            super.setInfoList(list);
            return list;
          }
          set info(value) {
            super.setInfoList(value.map(info => new Vip.Treasure.Info(info)));
          }
          get next() {
            return super.getNext();
          }
          set next(value) {
            super.setNext(value);
          }
          static create() {
            return new Treasure();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Treasure(this.deserializeBinary(bytes));
          }
        }
        Vip.Treasure = Treasure;
        (function(Treasure) {
          class Info extends originalModules.Vip.Treasure.Info {
            constructor(other) {
              super();
              if (!other) return;
              if ("function" === typeof other.getIndex) {
                this.index = other.getIndex();
                this.minVip = other.getMinvip();
                this.exp = other.getExp();
                this.isOpen = other.getIsopen();
              }
              Object.assign(this, other);
            }
            get index() {
              return super.getIndex();
            }
            set index(value) {
              super.setIndex(value);
            }
            get minVip() {
              return super.getMinvip();
            }
            set minVip(value) {
              super.setMinvip(value);
            }
            get exp() {
              return super.getExp();
            }
            set exp(value) {
              super.setExp(value);
            }
            get isOpen() {
              return super.getIsopen();
            }
            set isOpen(value) {
              super.setIsopen(value);
            }
            static create() {
              return new Info();
            }
            static encode(message) {
              return message.serializeBinary();
            }
            static decode(bytes) {
              return new Info(this.deserializeBinary(bytes));
            }
          }
          Treasure.Info = Info;
        })(Treasure = Vip.Treasure || (Vip.Treasure = {}));
      })(Vip = mtf.Vip || (mtf.Vip = {}));
      class Promotion extends originalModules.Promotion {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getGameList) {
            this.game = other.getGameList();
            this.label = other.getLabelList();
          }
          Object.assign(this, other);
        }
        get game() {
          return super.getGameList();
        }
        set game(value) {
          super.setGameList(value);
        }
        get label() {
          return super.getLabelList();
        }
        set label(value) {
          super.setLabelList(value);
        }
        static create() {
          return new Promotion();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Promotion(this.deserializeBinary(bytes));
        }
      }
      mtf.Promotion = Promotion;
      class PromotionV2 extends originalModules.PromotionV2 {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getEnabled) {
            this.enabled = other.getEnabled();
            this.list = other.getListList();
          }
          Object.assign(this, other);
        }
        get enabled() {
          return super.getEnabled();
        }
        set enabled(value) {
          super.setEnabled(value);
        }
        get list() {
          let list = super.getListList().map(info => new PromotionV2.Info(info));
          super.setListList(list);
          return list;
        }
        set list(value) {
          super.setListList(value.map(info => new PromotionV2.Info(info)));
        }
        static create() {
          return new PromotionV2();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new PromotionV2(this.deserializeBinary(bytes));
        }
      }
      mtf.PromotionV2 = PromotionV2;
      (function(PromotionV2) {
        class Info extends originalModules.PromotionV2.Info {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getId) {
              this.id = other.getId();
              this.labels = other.getLabelsList();
              this.dau = other.getDau();
              this.mall = other.getMall();
            }
            Object.assign(this, other);
          }
          get id() {
            return super.getId();
          }
          set id(value) {
            super.setId(value);
          }
          get labels() {
            return super.getLabelsList();
          }
          set labels(value) {
            super.setLabelsList(value);
          }
          get dau() {
            return super.getDau();
          }
          set dau(value) {
            super.setDau(value);
          }
          get mall() {
            return super.getMall();
          }
          set mall(value) {
            super.setMall(value);
          }
          static create() {
            return new Info();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Info(this.deserializeBinary(bytes));
          }
        }
        PromotionV2.Info = Info;
      })(PromotionV2 = mtf.PromotionV2 || (mtf.PromotionV2 = {}));
      class Reward extends originalModules.Reward {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getLevelList) {
            this.level = other.getLevelList();
            this.week = other.getWeekList();
          }
          Object.assign(this, other);
        }
        get level() {
          return super.getLevelList();
        }
        set level(value) {
          super.setLevelList(value);
        }
        get week() {
          return super.getWeekList();
        }
        set week(value) {
          super.setWeekList(value);
        }
        static create() {
          return new Reward();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Reward(this.deserializeBinary(bytes));
        }
      }
      mtf.Reward = Reward;
      class Rewardv2 extends originalModules.Rewardv2 {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getLevel) {
            this.level = other.getLevel();
            this.week = other.getWeek();
            this.exp = other.getExpList();
          }
          Object.assign(this, other);
        }
        get level() {
          if (!super.getLevel()) return;
          let newValue = new Rewardv2.Level(super.getLevel());
          super.setLevel(newValue);
          return newValue;
        }
        set level(value) {
          super.setLevel(new Rewardv2.Level(value));
        }
        get week() {
          if (!super.getWeek()) return;
          let newValue = new Rewardv2.Week(super.getWeek());
          super.setWeek(newValue);
          return newValue;
        }
        set week(value) {
          super.setWeek(new Rewardv2.Week(value));
        }
        get exp() {
          return super.getExpList();
        }
        set exp(value) {
          super.setExpList(value);
        }
        static create() {
          return new Rewardv2();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Rewardv2(this.deserializeBinary(bytes));
        }
      }
      mtf.Rewardv2 = Rewardv2;
      (function(Rewardv2) {
        class ExpTable extends originalModules.Rewardv2.ExpTable {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getLevel) {
              this.level = other.getLevel();
              this.exp = other.getExp();
              this.reward = other.getReward();
            }
            Object.assign(this, other);
          }
          get level() {
            return super.getLevel();
          }
          set level(value) {
            super.setLevel(value);
          }
          get exp() {
            return super.getExp();
          }
          set exp(value) {
            super.setExp(value);
          }
          get reward() {
            return super.getReward();
          }
          set reward(value) {
            super.setReward(value);
          }
          static create() {
            return new ExpTable();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new ExpTable(this.deserializeBinary(bytes));
          }
        }
        Rewardv2.ExpTable = ExpTable;
        class Level extends originalModules.Rewardv2.Level {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getRewardedList) {
              this.rewarded = other.getRewardedList();
              this.table = other.getTableList();
            }
            Object.assign(this, other);
          }
          get rewarded() {
            return super.getRewardedList();
          }
          set rewarded(value) {
            super.setRewardedList(value);
          }
          get table() {
            let list = super.getTableList().map(exptable => new Rewardv2.ExpTable(exptable));
            super.setTableList(list);
            return list;
          }
          set table(value) {
            super.setTableList(value.map(exptable => new Rewardv2.ExpTable(exptable)));
          }
          static create() {
            return new Level();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Level(this.deserializeBinary(bytes));
          }
        }
        Rewardv2.Level = Level;
        class Week extends originalModules.Rewardv2.Week {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getRewardedList) {
              this.rewarded = other.getRewardedList();
              this.table = other.getTableList();
              this.next = other.getNext();
            }
            Object.assign(this, other);
          }
          get rewarded() {
            return super.getRewardedList();
          }
          set rewarded(value) {
            super.setRewardedList(value);
          }
          get table() {
            let list = super.getTableList().map(exptable => new Rewardv2.ExpTable(exptable));
            super.setTableList(list);
            return list;
          }
          set table(value) {
            super.setTableList(value.map(exptable => new Rewardv2.ExpTable(exptable)));
          }
          get next() {
            return super.getNext();
          }
          set next(value) {
            super.setNext(value);
          }
          static create() {
            return new Week();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Week(this.deserializeBinary(bytes));
          }
        }
        Rewardv2.Week = Week;
      })(Rewardv2 = mtf.Rewardv2 || (mtf.Rewardv2 = {}));
      class Wallet extends originalModules.Wallet {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getCurrency) {
            this.currency = other.getCurrency();
            this.coin = other.getCoin();
            this.ratio = other.getRatio();
            this.rate = other.getRate();
            this.symbol = other.getSymbol();
          }
          Object.assign(this, other);
        }
        get currency() {
          return super.getCurrency();
        }
        set currency(value) {
          super.setCurrency(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        get ratio() {
          return super.getRatio();
        }
        set ratio(value) {
          super.setRatio(value);
        }
        get rate() {
          return super.getRate();
        }
        set rate(value) {
          super.setRate(value);
        }
        get symbol() {
          return super.getSymbol();
        }
        set symbol(value) {
          super.setSymbol(value);
        }
        static create() {
          return new Wallet();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Wallet(this.deserializeBinary(bytes));
        }
      }
      mtf.Wallet = Wallet;
      class VipExp extends originalModules.VipExp {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getLevel) {
            this.level = other.getLevel();
            this.isMax = other.getIsmax();
            this.exp = other.getExp();
            this.treasure = other.getTreasure();
          }
          Object.assign(this, other);
        }
        get level() {
          return super.getLevel();
        }
        set level(value) {
          super.setLevel(value);
        }
        get isMax() {
          return super.getIsmax();
        }
        set isMax(value) {
          super.setIsmax(value);
        }
        get exp() {
          return super.getExp();
        }
        set exp(value) {
          super.setExp(value);
        }
        get treasure() {
          return super.getTreasure();
        }
        set treasure(value) {
          super.setTreasure(value);
        }
        static create() {
          return new VipExp();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new VipExp(this.deserializeBinary(bytes));
        }
      }
      mtf.VipExp = VipExp;
      class VipSignReq extends originalModules.VipSignReq {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getIndex && (this.index = other.getIndex());
          Object.assign(this, other);
        }
        get index() {
          return super.getIndex();
        }
        set index(value) {
          super.setIndex(value);
        }
        static create() {
          return new VipSignReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new VipSignReq(this.deserializeBinary(bytes));
        }
      }
      mtf.VipSignReq = VipSignReq;
      class VipSignAck extends originalModules.VipSignAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getIndex) {
            this.index = other.getIndex();
            this.itemId = other.getItemid();
            this.count = other.getCount();
            this.icon = other.getIcon();
          }
          Object.assign(this, other);
        }
        get index() {
          return super.getIndex();
        }
        set index(value) {
          super.setIndex(value);
        }
        get itemId() {
          return super.getItemid();
        }
        set itemId(value) {
          super.setItemid(value);
        }
        get count() {
          return super.getCount();
        }
        set count(value) {
          super.setCount(value);
        }
        get icon() {
          return super.getIcon();
        }
        set icon(value) {
          super.setIcon(value);
        }
        static create() {
          return new VipSignAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new VipSignAck(this.deserializeBinary(bytes));
        }
      }
      mtf.VipSignAck = VipSignAck;
      class Exp extends originalModules.Exp {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getExp1) {
            this.exp1 = other.getExp1();
            this.exp2 = other.getExp2();
            this.exp3 = other.getExp3();
          }
          Object.assign(this, other);
        }
        get exp1() {
          return super.getExp1();
        }
        set exp1(value) {
          super.setExp1(value);
        }
        get exp2() {
          return super.getExp2();
        }
        set exp2(value) {
          super.setExp2(value);
        }
        get exp3() {
          return super.getExp3();
        }
        set exp3(value) {
          super.setExp3(value);
        }
        static create() {
          return new Exp();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Exp(this.deserializeBinary(bytes));
        }
      }
      mtf.Exp = Exp;
      class LevelRewardReq extends originalModules.LevelRewardReq {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getLevel && (this.level = other.getLevel());
          Object.assign(this, other);
        }
        get level() {
          return super.getLevel();
        }
        set level(value) {
          super.setLevel(value);
        }
        static create() {
          return new LevelRewardReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new LevelRewardReq(this.deserializeBinary(bytes));
        }
      }
      mtf.LevelRewardReq = LevelRewardReq;
      class LevelRewardAck extends originalModules.LevelRewardAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getLevel) {
            this.level = other.getLevel();
            this.reward = other.getReward();
            this.seat = other.getSeat();
          }
          Object.assign(this, other);
        }
        get level() {
          return super.getLevel();
        }
        set level(value) {
          super.setLevel(value);
        }
        get reward() {
          return super.getReward();
        }
        set reward(value) {
          super.setReward(value);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        static create() {
          return new LevelRewardAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new LevelRewardAck(this.deserializeBinary(bytes));
        }
      }
      mtf.LevelRewardAck = LevelRewardAck;
      class TransferReq extends originalModules.TransferReq {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getId && (this.id = other.getId());
          Object.assign(this, other);
        }
        get id() {
          return super.getId();
        }
        set id(value) {
          super.setId(value);
        }
        static create() {
          return new TransferReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new TransferReq(this.deserializeBinary(bytes));
        }
      }
      mtf.TransferReq = TransferReq;
      class TransferAck extends originalModules.TransferAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getId) {
            this.id = other.getId();
            this.url = other.getUrl();
          }
          Object.assign(this, other);
        }
        get id() {
          return super.getId();
        }
        set id(value) {
          super.setId(value);
        }
        get url() {
          return super.getUrl();
        }
        set url(value) {
          super.setUrl(value);
        }
        static create() {
          return new TransferAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new TransferAck(this.deserializeBinary(bytes));
        }
      }
      mtf.TransferAck = TransferAck;
      class Card extends originalModules.Card {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getListList) {
            this.list = other.getListList();
            this.message = other.getMessageList();
            this.chip = other.getChipList();
          }
          Object.assign(this, other);
        }
        get list() {
          let list = super.getListList().map(data => new Card.Data(data));
          super.setListList(list);
          return list;
        }
        set list(value) {
          super.setListList(value.map(data => new Card.Data(data)));
        }
        get message() {
          let list = super.getMessageList().map(message => new Card.Message(message));
          super.setMessageList(list);
          return list;
        }
        set message(value) {
          super.setMessageList(value.map(message => new Card.Message(message)));
        }
        get chip() {
          let list = super.getChipList().map(chipdata => new Card.ChipData(chipdata));
          super.setChipList(list);
          return list;
        }
        set chip(value) {
          super.setChipList(value.map(chipdata => new Card.ChipData(chipdata)));
        }
        static create() {
          return new Card();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Card(this.deserializeBinary(bytes));
        }
      }
      mtf.Card = Card;
      (function(Card) {
        class Data extends originalModules.Card.Data {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getIndex) {
              this.index = other.getIndex();
              this.gameId = other.getGameid();
              this.cardId = other.getCardid();
              this.start = other.getStart();
              this.end = other.getEnd();
              this.cost = other.getCost();
              this.type = other.getType();
              this.source = other.getSource();
            }
            Object.assign(this, other);
          }
          get index() {
            return super.getIndex();
          }
          set index(value) {
            super.setIndex(value);
          }
          get gameId() {
            return super.getGameid();
          }
          set gameId(value) {
            super.setGameid(value);
          }
          get cardId() {
            return super.getCardid();
          }
          set cardId(value) {
            super.setCardid(value);
          }
          get start() {
            return super.getStart();
          }
          set start(value) {
            super.setStart(value);
          }
          get end() {
            return super.getEnd();
          }
          set end(value) {
            super.setEnd(value);
          }
          get cost() {
            return super.getCost();
          }
          set cost(value) {
            super.setCost(value);
          }
          get type() {
            return super.getType();
          }
          set type(value) {
            super.setType(value);
          }
          get source() {
            return super.getSource();
          }
          set source(value) {
            super.setSource(value);
          }
          static create() {
            return new Data();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Data(this.deserializeBinary(bytes));
          }
        }
        Card.Data = Data;
        class Message extends originalModules.Card.Message {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getCardid) {
              this.cardId = other.getCardid();
              this.msgId = other.getMsgid();
              this.createTime = other.getCreatetime();
              this.gameId = other.getGameid();
            }
            Object.assign(this, other);
          }
          get cardId() {
            return super.getCardid();
          }
          set cardId(value) {
            super.setCardid(value);
          }
          get msgId() {
            return super.getMsgid();
          }
          set msgId(value) {
            super.setMsgid(value);
          }
          get createTime() {
            return super.getCreatetime();
          }
          set createTime(value) {
            super.setCreatetime(value);
          }
          get gameId() {
            return super.getGameid();
          }
          set gameId(value) {
            super.setGameid(value);
          }
          static create() {
            return new Message();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Message(this.deserializeBinary(bytes));
          }
        }
        Card.Message = Message;
        class ChipData extends originalModules.Card.ChipData {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getChipsList) {
              this.chips = other.getChipsList();
              this.start = other.getStart();
              this.end = other.getEnd();
              this.formulas = other.getFormulasList();
            }
            Object.assign(this, other);
          }
          get chips() {
            let list = super.getChipsList().map(chip => new Card.ChipData.Chip(chip));
            super.setChipsList(list);
            return list;
          }
          set chips(value) {
            super.setChipsList(value.map(chip => new Card.ChipData.Chip(chip)));
          }
          get start() {
            return super.getStart();
          }
          set start(value) {
            super.setStart(value);
          }
          get end() {
            return super.getEnd();
          }
          set end(value) {
            super.setEnd(value);
          }
          get formulas() {
            let list = super.getFormulasList().map(formula => new Card.ChipData.Formula(formula));
            super.setFormulasList(list);
            return list;
          }
          set formulas(value) {
            super.setFormulasList(value.map(formula => new Card.ChipData.Formula(formula)));
          }
          static create() {
            return new ChipData();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new ChipData(this.deserializeBinary(bytes));
          }
        }
        Card.ChipData = ChipData;
        (function(ChipData) {
          class Chip extends originalModules.Card.ChipData.Chip {
            constructor(other) {
              super();
              if (!other) return;
              if ("function" === typeof other.getId) {
                this.id = other.getId();
                this.amount = other.getAmount();
              }
              Object.assign(this, other);
            }
            get id() {
              return super.getId();
            }
            set id(value) {
              super.setId(value);
            }
            get amount() {
              return super.getAmount();
            }
            set amount(value) {
              super.setAmount(value);
            }
            static create() {
              return new Chip();
            }
            static encode(message) {
              return message.serializeBinary();
            }
            static decode(bytes) {
              return new Chip(this.deserializeBinary(bytes));
            }
          }
          ChipData.Chip = Chip;
          class Formula extends originalModules.Card.ChipData.Formula {
            constructor(other) {
              super();
              if (!other) return;
              if ("function" === typeof other.getId) {
                this.id = other.getId();
                this.cardId = other.getCardid();
                this.amount = other.getAmount();
                this.max = other.getMax();
                this.redeemed = other.getRedeemed();
                this.chips = other.getChipsList();
                this.sort = other.getSort();
                this.rank = other.getRank();
              }
              Object.assign(this, other);
            }
            get id() {
              return super.getId();
            }
            set id(value) {
              super.setId(value);
            }
            get cardId() {
              return super.getCardid();
            }
            set cardId(value) {
              super.setCardid(value);
            }
            get amount() {
              return super.getAmount();
            }
            set amount(value) {
              super.setAmount(value);
            }
            get max() {
              return super.getMax();
            }
            set max(value) {
              super.setMax(value);
            }
            get redeemed() {
              return super.getRedeemed();
            }
            set redeemed(value) {
              super.setRedeemed(value);
            }
            get chips() {
              let list = super.getChipsList().map(chip => new Card.ChipData.Chip(chip));
              super.setChipsList(list);
              return list;
            }
            set chips(value) {
              super.setChipsList(value.map(chip => new Card.ChipData.Chip(chip)));
            }
            get sort() {
              return super.getSort();
            }
            set sort(value) {
              super.setSort(value);
            }
            get rank() {
              return super.getRank();
            }
            set rank(value) {
              super.setRank(value);
            }
            static create() {
              return new Formula();
            }
            static encode(message) {
              return message.serializeBinary();
            }
            static decode(bytes) {
              return new Formula(this.deserializeBinary(bytes));
            }
          }
          ChipData.Formula = Formula;
        })(ChipData = Card.ChipData || (Card.ChipData = {}));
      })(Card = mtf.Card || (mtf.Card = {}));
      class RedeemRequest extends originalModules.RedeemRequest {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getFormulaid && (this.formulaId = other.getFormulaid());
          Object.assign(this, other);
        }
        get formulaId() {
          return super.getFormulaid();
        }
        set formulaId(value) {
          super.setFormulaid(value);
        }
        static create() {
          return new RedeemRequest();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new RedeemRequest(this.deserializeBinary(bytes));
        }
      }
      mtf.RedeemRequest = RedeemRequest;
      class RedeemAck extends originalModules.RedeemAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getChipsList) {
            this.chips = other.getChipsList();
            this.formulaId = other.getFormulaid();
          }
          Object.assign(this, other);
        }
        get chips() {
          let list = super.getChipsList().map(chip => new Card.ChipData.Chip(chip));
          super.setChipsList(list);
          return list;
        }
        set chips(value) {
          super.setChipsList(value.map(chip => new Card.ChipData.Chip(chip)));
        }
        get formulaId() {
          return super.getFormulaid();
        }
        set formulaId(value) {
          super.setFormulaid(value);
        }
        static create() {
          return new RedeemAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new RedeemAck(this.deserializeBinary(bytes));
        }
      }
      mtf.RedeemAck = RedeemAck;
      class CardUseReq extends originalModules.CardUseReq {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getIndex && (this.index = other.getIndex());
          Object.assign(this, other);
        }
        get index() {
          return super.getIndex();
        }
        set index(value) {
          super.setIndex(value);
        }
        static create() {
          return new CardUseReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new CardUseReq(this.deserializeBinary(bytes));
        }
      }
      mtf.CardUseReq = CardUseReq;
      class CardUseAck extends originalModules.CardUseAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getIndex) {
            this.index = other.getIndex();
            this.value = other.getValue();
            this.seat = other.getSeat();
            this.success = other.getSuccess();
            this.cardId = other.getCardid();
            this.type = other.getType();
            this.param1 = other.getParam1();
            this.param2 = other.getParam2();
            this.param3 = other.getParam3();
          }
          Object.assign(this, other);
        }
        get index() {
          return super.getIndex();
        }
        set index(value) {
          super.setIndex(value);
        }
        get value() {
          return super.getValue();
        }
        set value(value) {
          super.setValue(value);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get success() {
          return super.getSuccess();
        }
        set success(value) {
          super.setSuccess(value);
        }
        get cardId() {
          return super.getCardid();
        }
        set cardId(value) {
          super.setCardid(value);
        }
        get type() {
          return super.getType();
        }
        set type(value) {
          super.setType(value);
        }
        get param1() {
          return super.getParam1();
        }
        set param1(value) {
          super.setParam1(value);
        }
        get param2() {
          return super.getParam2();
        }
        set param2(value) {
          super.setParam2(value);
        }
        get param3() {
          return super.getParam3();
        }
        set param3(value) {
          super.setParam3(value);
        }
        static create() {
          return new CardUseAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new CardUseAck(this.deserializeBinary(bytes));
        }
      }
      mtf.CardUseAck = CardUseAck;
      class TimelineNotify2 extends originalModules.TimelineNotify2 {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSerial) {
            this.serial = other.getSerial();
            this.time = other.getTime();
            this.pause = other.getPause();
            this.group = other.getGroupList();
            this.dead = other.getDeadList();
          }
          Object.assign(this, other);
        }
        get serial() {
          return super.getSerial();
        }
        set serial(value) {
          super.setSerial(value);
        }
        get time() {
          return super.getTime();
        }
        set time(value) {
          super.setTime(value);
        }
        get pause() {
          return super.getPause();
        }
        set pause(value) {
          super.setPause(value);
        }
        get group() {
          let list = super.getGroupList().map(group => new SubData.Group(group));
          super.setGroupList(list);
          return list;
        }
        set group(value) {
          super.setGroupList(value.map(group => new SubData.Group(group)));
        }
        get dead() {
          return super.getDeadList();
        }
        set dead(value) {
          super.setDeadList(value);
        }
        static create() {
          return new TimelineNotify2();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new TimelineNotify2(this.deserializeBinary(bytes));
        }
      }
      mtf.TimelineNotify2 = TimelineNotify2;
      class TimelineAdd extends originalModules.TimelineAdd {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getGroup && (this.group = other.getGroup());
          Object.assign(this, other);
        }
        get group() {
          return super.getGroup();
        }
        set group(value) {
          super.setGroup(value);
        }
        static create() {
          return new TimelineAdd();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new TimelineAdd(this.deserializeBinary(bytes));
        }
      }
      mtf.TimelineAdd = TimelineAdd;
      class TimelinePause extends originalModules.TimelinePause {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getPause && (this.pause = other.getPause());
          Object.assign(this, other);
        }
        get pause() {
          return super.getPause();
        }
        set pause(value) {
          super.setPause(value);
        }
        static create() {
          return new TimelinePause();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new TimelinePause(this.deserializeBinary(bytes));
        }
      }
      mtf.TimelinePause = TimelinePause;
      class LoginData extends originalModules.LoginData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getOs) {
            this.os = other.getOs();
            this.language = other.getLanguage();
            this.browser = other.getBrowser();
            this.version = other.getVersion();
            this.model = other.getModel();
          }
          Object.assign(this, other);
        }
        get os() {
          return super.getOs();
        }
        set os(value) {
          super.setOs(value);
        }
        get language() {
          return super.getLanguage();
        }
        set language(value) {
          super.setLanguage(value);
        }
        get browser() {
          if (!super.getBrowser()) return;
          let newValue = new LoginData.Browser(super.getBrowser());
          super.setBrowser(newValue);
          return newValue;
        }
        set browser(value) {
          super.setBrowser(new LoginData.Browser(value));
        }
        get version() {
          return super.getVersion();
        }
        set version(value) {
          super.setVersion(value);
        }
        get model() {
          return super.getModel();
        }
        set model(value) {
          super.setModel(value);
        }
        static create() {
          return new LoginData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new LoginData(this.deserializeBinary(bytes));
        }
      }
      mtf.LoginData = LoginData;
      (function(LoginData) {
        class Browser extends originalModules.LoginData.Browser {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getType) {
              this.type = other.getType();
              this.version = other.getVersion();
              this.language = other.getLanguage();
              this.width = other.getWidth();
              this.height = other.getHeight();
              this.ratio = other.getRatio();
            }
            Object.assign(this, other);
          }
          get type() {
            return super.getType();
          }
          set type(value) {
            super.setType(value);
          }
          get version() {
            return super.getVersion();
          }
          set version(value) {
            super.setVersion(value);
          }
          get language() {
            return super.getLanguage();
          }
          set language(value) {
            super.setLanguage(value);
          }
          get width() {
            return super.getWidth();
          }
          set width(value) {
            super.setWidth(value);
          }
          get height() {
            return super.getHeight();
          }
          set height(value) {
            super.setHeight(value);
          }
          get ratio() {
            return super.getRatio();
          }
          set ratio(value) {
            super.setRatio(value);
          }
          static create() {
            return new Browser();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Browser(this.deserializeBinary(bytes));
          }
        }
        LoginData.Browser = Browser;
      })(LoginData = mtf.LoginData || (mtf.LoginData = {}));
      class Favorite extends originalModules.Favorite {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getEnabled) {
            this.enabled = other.getEnabled();
            this.list = other.getListList();
          }
          Object.assign(this, other);
        }
        get enabled() {
          return super.getEnabled();
        }
        set enabled(value) {
          super.setEnabled(value);
        }
        get list() {
          let list = super.getListList().map(info => new Favorite.Info(info));
          super.setListList(list);
          return list;
        }
        set list(value) {
          super.setListList(value.map(info => new Favorite.Info(info)));
        }
        static create() {
          return new Favorite();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Favorite(this.deserializeBinary(bytes));
        }
      }
      mtf.Favorite = Favorite;
      (function(Favorite) {
        class Info extends originalModules.Favorite.Info {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getId) {
              this.id = other.getId();
              this.dau = other.getDau();
            }
            Object.assign(this, other);
          }
          get id() {
            return super.getId();
          }
          set id(value) {
            super.setId(value);
          }
          get dau() {
            return super.getDau();
          }
          set dau(value) {
            super.setDau(value);
          }
          static create() {
            return new Info();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Info(this.deserializeBinary(bytes));
          }
        }
        Favorite.Info = Info;
      })(Favorite = mtf.Favorite || (mtf.Favorite = {}));
      class ItemRequest extends originalModules.ItemRequest {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getLang && (this.lang = other.getLang());
          Object.assign(this, other);
        }
        get lang() {
          return super.getLang();
        }
        set lang(value) {
          super.setLang(value);
        }
        static create() {
          return new ItemRequest();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new ItemRequest(this.deserializeBinary(bytes));
        }
      }
      mtf.ItemRequest = ItemRequest;
      class ItemUseRequest extends originalModules.ItemUseRequest {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getIdx) {
            this.idx = other.getIdx();
            this.id = other.getId();
          }
          Object.assign(this, other);
        }
        get idx() {
          return super.getIdx();
        }
        set idx(value) {
          super.setIdx(value);
        }
        get id() {
          return super.getId();
        }
        set id(value) {
          super.setId(value);
        }
        static create() {
          return new ItemUseRequest();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new ItemUseRequest(this.deserializeBinary(bytes));
        }
      }
      mtf.ItemUseRequest = ItemUseRequest;
      class ItemUseAck extends originalModules.ItemUseAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getBet) {
            this.bet = other.getBet();
            this.idx = other.getIdx();
            this.id = other.getId();
            this.coin = other.getCoin();
            this.success = other.getSuccess();
            this.source = other.getSource();
          }
          Object.assign(this, other);
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        get idx() {
          return super.getIdx();
        }
        set idx(value) {
          super.setIdx(value);
        }
        get id() {
          return super.getId();
        }
        set id(value) {
          super.setId(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        get success() {
          return super.getSuccess();
        }
        set success(value) {
          super.setSuccess(value);
        }
        get source() {
          return super.getSource();
        }
        set source(value) {
          super.setSource(value);
        }
        static create() {
          return new ItemUseAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new ItemUseAck(this.deserializeBinary(bytes));
        }
      }
      mtf.ItemUseAck = ItemUseAck;
      class Item extends originalModules.Item {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getResult) {
            this.result = other.getResult();
            this.info = other.getInfoList();
            this.mail = other.getMailList();
          }
          Object.assign(this, other);
        }
        get result() {
          return super.getResult();
        }
        set result(value) {
          super.setResult(value);
        }
        get info() {
          let list = super.getInfoList().map(info => new Item.Info(info));
          super.setInfoList(list);
          return list;
        }
        set info(value) {
          super.setInfoList(value.map(info => new Item.Info(info)));
        }
        get mail() {
          let list = super.getMailList().map(mail => new Item.Mail(mail));
          super.setMailList(list);
          return list;
        }
        set mail(value) {
          super.setMailList(value.map(mail => new Item.Mail(mail)));
        }
        static create() {
          return new Item();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Item(this.deserializeBinary(bytes));
        }
      }
      mtf.Item = Item;
      (function(Item) {
        class Info extends originalModules.Item.Info {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getIndex) {
              this.index = other.getIndex();
              this.id = other.getId();
              this.amount = other.getAmount();
              this.gameId = other.getGameid();
              this.lvMin = other.getLvmin();
              this.lvMax = other.getLvmax();
              this.coinLimit = other.getCoinlimit();
              this.dailyremaintimes = other.getDailyremaintimes();
              this.bet = other.getBet();
              this.spinPayType = other.getSpinpaytype();
              this.giveType = other.getGivetype();
              this.winType = other.getWintype();
              this.winMultiplier = other.getWinmultiplier();
              this.winMaxMag = other.getWinmaxmag();
              this.winMagSet = other.getWinmagset();
              this.itemValue = other.getItemvalue();
              this.itemName = other.getItemname();
              this.icon = other.getIcon();
              this.banReason = other.getBanreason();
              this.itemDesc = other.getItemdesc();
              this.star = other.getStar();
              this.gameName = other.getGamename();
              this.currencyNumber = other.getCurrencynumber();
              this.start = other.getStart();
              this.expired = other.getExpired();
            }
            Object.assign(this, other);
          }
          get index() {
            return super.getIndex();
          }
          set index(value) {
            super.setIndex(value);
          }
          get id() {
            return super.getId();
          }
          set id(value) {
            super.setId(value);
          }
          get amount() {
            return super.getAmount();
          }
          set amount(value) {
            super.setAmount(value);
          }
          get gameId() {
            return super.getGameid();
          }
          set gameId(value) {
            super.setGameid(value);
          }
          get lvMin() {
            return super.getLvmin();
          }
          set lvMin(value) {
            super.setLvmin(value);
          }
          get lvMax() {
            return super.getLvmax();
          }
          set lvMax(value) {
            super.setLvmax(value);
          }
          get coinLimit() {
            return super.getCoinlimit();
          }
          set coinLimit(value) {
            super.setCoinlimit(value);
          }
          get dailyremaintimes() {
            return super.getDailyremaintimes();
          }
          set dailyremaintimes(value) {
            super.setDailyremaintimes(value);
          }
          get bet() {
            return super.getBet();
          }
          set bet(value) {
            super.setBet(value);
          }
          get spinPayType() {
            return super.getSpinpaytype();
          }
          set spinPayType(value) {
            super.setSpinpaytype(value);
          }
          get giveType() {
            return super.getGivetype();
          }
          set giveType(value) {
            super.setGivetype(value);
          }
          get winType() {
            return super.getWintype();
          }
          set winType(value) {
            super.setWintype(value);
          }
          get winMultiplier() {
            return super.getWinmultiplier();
          }
          set winMultiplier(value) {
            super.setWinmultiplier(value);
          }
          get winMaxMag() {
            return super.getWinmaxmag();
          }
          set winMaxMag(value) {
            super.setWinmaxmag(value);
          }
          get winMagSet() {
            return super.getWinmagset();
          }
          set winMagSet(value) {
            super.setWinmagset(value);
          }
          get itemValue() {
            return super.getItemvalue();
          }
          set itemValue(value) {
            super.setItemvalue(value);
          }
          get itemName() {
            return super.getItemname();
          }
          set itemName(value) {
            super.setItemname(value);
          }
          get icon() {
            return super.getIcon();
          }
          set icon(value) {
            super.setIcon(value);
          }
          get banReason() {
            return super.getBanreason();
          }
          set banReason(value) {
            super.setBanreason(value);
          }
          get itemDesc() {
            return super.getItemdesc();
          }
          set itemDesc(value) {
            super.setItemdesc(value);
          }
          get star() {
            return super.getStar();
          }
          set star(value) {
            super.setStar(value);
          }
          get gameName() {
            return super.getGamename();
          }
          set gameName(value) {
            super.setGamename(value);
          }
          get currencyNumber() {
            return super.getCurrencynumber();
          }
          set currencyNumber(value) {
            super.setCurrencynumber(value);
          }
          get start() {
            return super.getStart();
          }
          set start(value) {
            super.setStart(value);
          }
          get expired() {
            return super.getExpired();
          }
          set expired(value) {
            super.setExpired(value);
          }
          static create() {
            return new Info();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Info(this.deserializeBinary(bytes));
          }
        }
        Item.Info = Info;
        class Mail extends originalModules.Item.Mail {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getIdx) {
              this.idx = other.getIdx();
              this.source = other.getSource();
              this.isRead = other.getIsread();
              this.action = other.getAction();
              this.gameId = other.getGameid();
              this.itemId = other.getItemid();
              this.amount = other.getAmount();
              this.star = other.getStar();
              this.winType = other.getWintype();
              this.createTime = other.getCreatetime();
              this.message = other.getMessage();
            }
            Object.assign(this, other);
          }
          get idx() {
            return super.getIdx();
          }
          set idx(value) {
            super.setIdx(value);
          }
          get source() {
            return super.getSource();
          }
          set source(value) {
            super.setSource(value);
          }
          get isRead() {
            return super.getIsread();
          }
          set isRead(value) {
            super.setIsread(value);
          }
          get action() {
            return super.getAction();
          }
          set action(value) {
            super.setAction(value);
          }
          get gameId() {
            return super.getGameid();
          }
          set gameId(value) {
            super.setGameid(value);
          }
          get itemId() {
            return super.getItemid();
          }
          set itemId(value) {
            super.setItemid(value);
          }
          get amount() {
            return super.getAmount();
          }
          set amount(value) {
            super.setAmount(value);
          }
          get star() {
            return super.getStar();
          }
          set star(value) {
            super.setStar(value);
          }
          get winType() {
            return super.getWintype();
          }
          set winType(value) {
            super.setWintype(value);
          }
          get createTime() {
            return super.getCreatetime();
          }
          set createTime(value) {
            super.setCreatetime(value);
          }
          get message() {
            return super.getMessage();
          }
          set message(value) {
            super.setMessage(value);
          }
          static create() {
            return new Mail();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Mail(this.deserializeBinary(bytes));
          }
        }
        Item.Mail = Mail;
      })(Item = mtf.Item || (mtf.Item = {}));
      class MissionRequest extends originalModules.MissionRequest {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getLang && (this.lang = other.getLang());
          Object.assign(this, other);
        }
        get lang() {
          return super.getLang();
        }
        set lang(value) {
          super.setLang(value);
        }
        static create() {
          return new MissionRequest();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new MissionRequest(this.deserializeBinary(bytes));
        }
      }
      mtf.MissionRequest = MissionRequest;
      class Mission extends originalModules.Mission {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getEndtime) {
            this.endTime = other.getEndtime();
            this.info = other.getInfoList();
            this.item = other.getItemList();
            this.next = other.getNextList();
          }
          Object.assign(this, other);
        }
        get endTime() {
          return super.getEndtime();
        }
        set endTime(value) {
          super.setEndtime(value);
        }
        get info() {
          let list = super.getInfoList().map(info => new Mission.Info(info));
          super.setInfoList(list);
          return list;
        }
        set info(value) {
          super.setInfoList(value.map(info => new Mission.Info(info)));
        }
        get item() {
          let list = super.getItemList().map(item => new Mission.Item(item));
          super.setItemList(list);
          return list;
        }
        set item(value) {
          super.setItemList(value.map(item => new Mission.Item(item)));
        }
        get next() {
          return super.getNextList();
        }
        set next(value) {
          super.setNextList(value);
        }
        static create() {
          return new Mission();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Mission(this.deserializeBinary(bytes));
        }
      }
      mtf.Mission = Mission;
      (function(Mission) {
        class Info extends originalModules.Mission.Info {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getCurrentcount) {
              this.currentCount = other.getCurrentcount();
              this.totalCount = other.getTotalcount();
              this.finished = other.getFinished();
              this.itemCount = other.getItemcount();
              this.desc = other.getDesc();
              this.type = other.getType();
              this.vip = other.getVip();
              this.itemId = other.getItemid();
              this.coin = other.getCoin();
              this.gameId = other.getGameid();
              this.lock = other.getLock();
              this.show = other.getShow();
            }
            Object.assign(this, other);
          }
          get currentCount() {
            return super.getCurrentcount();
          }
          set currentCount(value) {
            super.setCurrentcount(value);
          }
          get totalCount() {
            return super.getTotalcount();
          }
          set totalCount(value) {
            super.setTotalcount(value);
          }
          get finished() {
            return super.getFinished();
          }
          set finished(value) {
            super.setFinished(value);
          }
          get itemCount() {
            return super.getItemcount();
          }
          set itemCount(value) {
            super.setItemcount(value);
          }
          get desc() {
            return super.getDesc();
          }
          set desc(value) {
            super.setDesc(value);
          }
          get type() {
            return super.getType();
          }
          set type(value) {
            super.setType(value);
          }
          get vip() {
            return super.getVip();
          }
          set vip(value) {
            super.setVip(value);
          }
          get itemId() {
            return super.getItemid();
          }
          set itemId(value) {
            super.setItemid(value);
          }
          get coin() {
            return super.getCoin();
          }
          set coin(value) {
            super.setCoin(value);
          }
          get gameId() {
            return super.getGameid();
          }
          set gameId(value) {
            super.setGameid(value);
          }
          get lock() {
            return super.getLock();
          }
          set lock(value) {
            super.setLock(value);
          }
          get show() {
            return super.getShow();
          }
          set show(value) {
            super.setShow(value);
          }
          static create() {
            return new Info();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Info(this.deserializeBinary(bytes));
          }
        }
        Mission.Info = Info;
        class Item extends originalModules.Mission.Item {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getGamename) {
              this.gameName = other.getGamename();
              this.winType = other.getWintype();
              this.bet = other.getBet();
              this.game = other.getGame();
              this.icon = other.getIcon();
              this.name = other.getName();
              this.star = other.getStar();
              this.value = other.getValue();
              this.gameId = other.getGameid();
              this.id = other.getId();
            }
            Object.assign(this, other);
          }
          get gameName() {
            return super.getGamename();
          }
          set gameName(value) {
            super.setGamename(value);
          }
          get winType() {
            return super.getWintype();
          }
          set winType(value) {
            super.setWintype(value);
          }
          get bet() {
            return super.getBet();
          }
          set bet(value) {
            super.setBet(value);
          }
          get game() {
            return super.getGame();
          }
          set game(value) {
            super.setGame(value);
          }
          get icon() {
            return super.getIcon();
          }
          set icon(value) {
            super.setIcon(value);
          }
          get name() {
            return super.getName();
          }
          set name(value) {
            super.setName(value);
          }
          get star() {
            return super.getStar();
          }
          set star(value) {
            super.setStar(value);
          }
          get value() {
            return super.getValue();
          }
          set value(value) {
            super.setValue(value);
          }
          get gameId() {
            return super.getGameid();
          }
          set gameId(value) {
            super.setGameid(value);
          }
          get id() {
            return super.getId();
          }
          set id(value) {
            super.setId(value);
          }
          static create() {
            return new Item();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Item(this.deserializeBinary(bytes));
          }
        }
        Mission.Item = Item;
      })(Mission = mtf.Mission || (mtf.Mission = {}));
      class MissionUpdate extends originalModules.MissionUpdate {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getListList && (this.list = other.getListList());
          Object.assign(this, other);
        }
        get list() {
          let list = super.getListList().map(info => new MissionUpdate.Info(info));
          super.setListList(list);
          return list;
        }
        set list(value) {
          super.setListList(value.map(info => new MissionUpdate.Info(info)));
        }
        static create() {
          return new MissionUpdate();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new MissionUpdate(this.deserializeBinary(bytes));
        }
      }
      mtf.MissionUpdate = MissionUpdate;
      (function(MissionUpdate) {
        class Info extends originalModules.MissionUpdate.Info {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getReward) {
              this.reward = other.getReward();
              this.bet = other.getBet();
              this.win = other.getWin();
              this.fg = other.getFg();
            }
            Object.assign(this, other);
          }
          get reward() {
            return super.getReward();
          }
          set reward(value) {
            super.setReward(value);
          }
          get bet() {
            return super.getBet();
          }
          set bet(value) {
            super.setBet(value);
          }
          get win() {
            return super.getWin();
          }
          set win(value) {
            super.setWin(value);
          }
          get fg() {
            return super.getFg();
          }
          set fg(value) {
            super.setFg(value);
          }
          static create() {
            return new Info();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Info(this.deserializeBinary(bytes));
          }
        }
        MissionUpdate.Info = Info;
      })(MissionUpdate = mtf.MissionUpdate || (mtf.MissionUpdate = {}));
      class MailData extends originalModules.MailData {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getMailsList && (this.mails = other.getMailsList());
          Object.assign(this, other);
        }
        get mails() {
          let list = super.getMailsList().map(mail => new Mail(mail));
          super.setMailsList(list);
          return list;
        }
        set mails(value) {
          super.setMailsList(value.map(mail => new Mail(mail)));
        }
        static create() {
          return new MailData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new MailData(this.deserializeBinary(bytes));
        }
      }
      mtf.MailData = MailData;
      class Mail extends originalModules.Mail {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSource) {
            this.source = other.getSource();
            this.content = other.getContent();
          }
          Object.assign(this, other);
        }
        get source() {
          return super.getSource();
        }
        set source(value) {
          super.setSource(value);
        }
        get content() {
          return super.getContent();
        }
        set content(value) {
          super.setContent(value);
        }
        static create() {
          return new Mail();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Mail(this.deserializeBinary(bytes));
        }
      }
      mtf.Mail = Mail;
      class Jp extends originalModules.Jp {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getJp1) {
            this.jp1 = other.getJp1();
            this.jp2 = other.getJp2();
            this.jp3 = other.getJp3();
          }
          Object.assign(this, other);
        }
        get jp1() {
          return super.getJp1();
        }
        set jp1(value) {
          super.setJp1(value);
        }
        get jp2() {
          return super.getJp2();
        }
        set jp2(value) {
          super.setJp2(value);
        }
        get jp3() {
          return super.getJp3();
        }
        set jp3(value) {
          super.setJp3(value);
        }
        static create() {
          return new Jp();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Jp(this.deserializeBinary(bytes));
        }
      }
      mtf.Jp = Jp;
      class JpData extends originalModules.JpData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getType) {
            this.type = other.getType();
            this.jp = other.getJp();
          }
          Object.assign(this, other);
        }
        get type() {
          return super.getType();
        }
        set type(value) {
          super.setType(value);
        }
        get jp() {
          return super.getJp();
        }
        set jp(value) {
          super.setJp(value);
        }
        static create() {
          return new JpData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new JpData(this.deserializeBinary(bytes));
        }
      }
      mtf.JpData = JpData;
      class JpBroadcastData extends originalModules.JpBroadcastData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getName) {
            this.name = other.getName();
            this.theme = other.getTheme();
            this.fish = other.getFish();
            this.coin = other.getCoin();
            this.vendor = other.getVendor();
            this.from = other.getFrom();
          }
          Object.assign(this, other);
        }
        get name() {
          return super.getName();
        }
        set name(value) {
          super.setName(value);
        }
        get theme() {
          return super.getTheme();
        }
        set theme(value) {
          super.setTheme(value);
        }
        get fish() {
          return super.getFish();
        }
        set fish(value) {
          super.setFish(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        get vendor() {
          return super.getVendor();
        }
        set vendor(value) {
          super.setVendor(value);
        }
        get from() {
          return super.getFrom();
        }
        set from(value) {
          super.setFrom(value);
        }
        static create() {
          return new JpBroadcastData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new JpBroadcastData(this.deserializeBinary(bytes));
        }
      }
      mtf.JpBroadcastData = JpBroadcastData;
      class JpDetail extends originalModules.JpDetail {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getName) {
            this.name = other.getName();
            this.bet = other.getBet();
            this.win = other.getWin();
            this.create = other.getCreate();
          }
          Object.assign(this, other);
        }
        get name() {
          return super.getName();
        }
        set name(value) {
          super.setName(value);
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        get win() {
          return super.getWin();
        }
        set win(value) {
          super.setWin(value);
        }
        get create() {
          return super.getCreate();
        }
        set create(value) {
          super.setCreate(value);
        }
        static create() {
          return new JpDetail();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new JpDetail(this.deserializeBinary(bytes));
        }
      }
      mtf.JpDetail = JpDetail;
      class JpDetailAck extends originalModules.JpDetailAck {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getListList && (this.list = other.getListList());
          Object.assign(this, other);
        }
        get list() {
          let list = super.getListList().map(jpdetail => new JpDetail(jpdetail));
          super.setListList(list);
          return list;
        }
        set list(value) {
          super.setListList(value.map(jpdetail => new JpDetail(jpdetail)));
        }
        static create() {
          return new JpDetailAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new JpDetailAck(this.deserializeBinary(bytes));
        }
      }
      mtf.JpDetailAck = JpDetailAck;
      class BombReqData extends originalModules.BombReqData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.fish = other.getFishList();
            this.bet = other.getBet();
            this.target = other.getTarget();
            this.bulletId = other.getBulletid();
            this.targetFishTag = other.getTargetfishtag();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get fish() {
          return super.getFishList();
        }
        set fish(value) {
          super.setFishList(value);
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        get target() {
          return super.getTarget();
        }
        set target(value) {
          super.setTarget(value);
        }
        get bulletId() {
          return super.getBulletid();
        }
        set bulletId(value) {
          super.setBulletid(value);
        }
        get targetFishTag() {
          return super.getTargetfishtag();
        }
        set targetFishTag(value) {
          super.setTargetfishtag(value);
        }
        static create() {
          return new BombReqData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new BombReqData(this.deserializeBinary(bytes));
        }
      }
      mtf.BombReqData = BombReqData;
      class BombAckData extends originalModules.BombAckData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.fish = other.getFishList();
            this.bet = other.getBet();
            this.coin = other.getCoin();
            this.target = other.getTarget();
            this.remain = other.getRemain();
            this.bonus = other.getBonus();
            this.targetFishTag = other.getTargetfishtag();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get fish() {
          let list = super.getFishList().map(bombdeadfish => new BombDeadFish(bombdeadfish));
          super.setFishList(list);
          return list;
        }
        set fish(value) {
          super.setFishList(value.map(bombdeadfish => new BombDeadFish(bombdeadfish)));
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        get target() {
          return super.getTarget();
        }
        set target(value) {
          super.setTarget(value);
        }
        get remain() {
          return super.getRemain();
        }
        set remain(value) {
          super.setRemain(value);
        }
        get bonus() {
          return super.getBonus();
        }
        set bonus(value) {
          super.setBonus(value);
        }
        get targetFishTag() {
          return super.getTargetfishtag();
        }
        set targetFishTag(value) {
          super.setTargetfishtag(value);
        }
        static create() {
          return new BombAckData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new BombAckData(this.deserializeBinary(bytes));
        }
      }
      mtf.BombAckData = BombAckData;
      class BombDeadFish extends originalModules.BombDeadFish {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getFish) {
            this.fish = other.getFish();
            this.coin = other.getCoin();
          }
          Object.assign(this, other);
        }
        get fish() {
          return super.getFish();
        }
        set fish(value) {
          super.setFish(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        static create() {
          return new BombDeadFish();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new BombDeadFish(this.deserializeBinary(bytes));
        }
      }
      mtf.BombDeadFish = BombDeadFish;
      class MaintainData extends originalModules.MaintainData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getIsmaintained) {
            this.isMaintained = other.getIsmaintained();
            this.next = other.getNext();
            this.start = other.getStart();
            this.end = other.getEnd();
            this.type = other.getType();
          }
          Object.assign(this, other);
        }
        get isMaintained() {
          return super.getIsmaintained();
        }
        set isMaintained(value) {
          super.setIsmaintained(value);
        }
        get next() {
          return super.getNext();
        }
        set next(value) {
          super.setNext(value);
        }
        get start() {
          return super.getStart();
        }
        set start(value) {
          super.setStart(value);
        }
        get end() {
          return super.getEnd();
        }
        set end(value) {
          super.setEnd(value);
        }
        get type() {
          return super.getType();
        }
        set type(value) {
          super.setType(value);
        }
        static create() {
          return new MaintainData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new MaintainData(this.deserializeBinary(bytes));
        }
      }
      mtf.MaintainData = MaintainData;
      class SkinChangeReq extends originalModules.SkinChangeReq {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getSkin && (this.skin = other.getSkin());
          Object.assign(this, other);
        }
        get skin() {
          return super.getSkin();
        }
        set skin(value) {
          super.setSkin(value);
        }
        static create() {
          return new SkinChangeReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new SkinChangeReq(this.deserializeBinary(bytes));
        }
      }
      mtf.SkinChangeReq = SkinChangeReq;
      class SkinChangeAck extends originalModules.SkinChangeAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.skin = other.getSkin();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get skin() {
          return super.getSkin();
        }
        set skin(value) {
          super.setSkin(value);
        }
        static create() {
          return new SkinChangeAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new SkinChangeAck(this.deserializeBinary(bytes));
        }
      }
      mtf.SkinChangeAck = SkinChangeAck;
      class SkinSkillReq extends originalModules.SkinSkillReq {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getNo) {
            this.no = other.getNo();
            this.bet = other.getBet();
          }
          Object.assign(this, other);
        }
        get no() {
          return super.getNo();
        }
        set no(value) {
          super.setNo(value);
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        static create() {
          return new SkinSkillReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new SkinSkillReq(this.deserializeBinary(bytes));
        }
      }
      mtf.SkinSkillReq = SkinSkillReq;
      class SkinSkillAck extends originalModules.SkinSkillAck {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getNo && (this.no = other.getNo());
          Object.assign(this, other);
        }
        get no() {
          return super.getNo();
        }
        set no(value) {
          super.setNo(value);
        }
        static create() {
          return new SkinSkillAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new SkinSkillAck(this.deserializeBinary(bytes));
        }
      }
      mtf.SkinSkillAck = SkinSkillAck;
      class AgentConfig extends originalModules.AgentConfig {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getBannersList) {
            this.banners = other.getBannersList();
            this.roomList = other.getRoomlistList();
          }
          Object.assign(this, other);
        }
        get banners() {
          let list = super.getBannersList().map(banner => new Banner(banner));
          super.setBannersList(list);
          return list;
        }
        set banners(value) {
          super.setBannersList(value.map(banner => new Banner(banner)));
        }
        get roomList() {
          let list = super.getRoomlistList().map(roomdata => new RoomData(roomdata));
          super.setRoomlistList(list);
          return list;
        }
        set roomList(value) {
          super.setRoomlistList(value.map(roomdata => new RoomData(roomdata)));
        }
        static create() {
          return new AgentConfig();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new AgentConfig(this.deserializeBinary(bytes));
        }
      }
      mtf.AgentConfig = AgentConfig;
      class RoomData extends originalModules.RoomData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getRoomid) {
            this.roomID = other.getRoomid();
            this.ratio = other.getRatio();
            this.betList = other.getBetlistList();
          }
          Object.assign(this, other);
        }
        get roomID() {
          return super.getRoomid();
        }
        set roomID(value) {
          super.setRoomid(value);
        }
        get ratio() {
          return super.getRatio();
        }
        set ratio(value) {
          super.setRatio(value);
        }
        get betList() {
          return super.getBetlistList();
        }
        set betList(value) {
          super.setBetlistList(value);
        }
        static create() {
          return new RoomData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new RoomData(this.deserializeBinary(bytes));
        }
      }
      mtf.RoomData = RoomData;
      class Banner extends originalModules.Banner {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getImage) {
            this.image = other.getImage();
            this.start = other.getStart();
            this.end = other.getEnd();
          }
          Object.assign(this, other);
        }
        get image() {
          return super.getImage();
        }
        set image(value) {
          super.setImage(value);
        }
        get start() {
          return super.getStart();
        }
        set start(value) {
          super.setStart(value);
        }
        get end() {
          return super.getEnd();
        }
        set end(value) {
          super.setEnd(value);
        }
        static create() {
          return new Banner();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Banner(this.deserializeBinary(bytes));
        }
      }
      mtf.Banner = Banner;
      class DebrisActivity extends originalModules.DebrisActivity {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getNo) {
            this.no = other.getNo();
            this.start = other.getStart();
            this.fall = other.getFall();
            this.end = other.getEnd();
            this.formula = other.getFormulaList();
            this.debris = other.getDebrisList();
            this.minbet = other.getMinbetList();
            this.minmul = other.getMinmul();
          }
          Object.assign(this, other);
        }
        get no() {
          return super.getNo();
        }
        set no(value) {
          super.setNo(value);
        }
        get start() {
          return super.getStart();
        }
        set start(value) {
          super.setStart(value);
        }
        get fall() {
          return super.getFall();
        }
        set fall(value) {
          super.setFall(value);
        }
        get end() {
          return super.getEnd();
        }
        set end(value) {
          super.setEnd(value);
        }
        get formula() {
          let list = super.getFormulaList().map(formula => new DebrisActivity.Formula(formula));
          super.setFormulaList(list);
          return list;
        }
        set formula(value) {
          super.setFormulaList(value.map(formula => new DebrisActivity.Formula(formula)));
        }
        get debris() {
          let list = super.getDebrisList().map(debris => new DebrisActivity.Debris(debris));
          super.setDebrisList(list);
          return list;
        }
        set debris(value) {
          super.setDebrisList(value.map(debris => new DebrisActivity.Debris(debris)));
        }
        get minbet() {
          return super.getMinbetList();
        }
        set minbet(value) {
          super.setMinbetList(value);
        }
        get minmul() {
          return super.getMinmul();
        }
        set minmul(value) {
          super.setMinmul(value);
        }
        static create() {
          return new DebrisActivity();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new DebrisActivity(this.deserializeBinary(bytes));
        }
      }
      mtf.DebrisActivity = DebrisActivity;
      (function(DebrisActivity) {
        class Formula extends originalModules.DebrisActivity.Formula {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getNo) {
              this.no = other.getNo();
              this.level = other.getLevel();
              this.ftype = other.getFtype();
              this.fitem = other.getFitem();
              this.ficon = other.getFicon();
              this.amount = other.getAmount();
              this.max = other.getMax();
              this.dn = other.getDnList();
              this.dc = other.getDcList();
            }
            Object.assign(this, other);
          }
          get no() {
            return super.getNo();
          }
          set no(value) {
            super.setNo(value);
          }
          get level() {
            return super.getLevel();
          }
          set level(value) {
            super.setLevel(value);
          }
          get ftype() {
            return super.getFtype();
          }
          set ftype(value) {
            super.setFtype(value);
          }
          get fitem() {
            return super.getFitem();
          }
          set fitem(value) {
            super.setFitem(value);
          }
          get ficon() {
            return super.getFicon();
          }
          set ficon(value) {
            super.setFicon(value);
          }
          get amount() {
            return super.getAmount();
          }
          set amount(value) {
            super.setAmount(value);
          }
          get max() {
            return super.getMax();
          }
          set max(value) {
            super.setMax(value);
          }
          get dn() {
            return super.getDnList();
          }
          set dn(value) {
            super.setDnList(value);
          }
          get dc() {
            return super.getDcList();
          }
          set dc(value) {
            super.setDcList(value);
          }
          static create() {
            return new Formula();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Formula(this.deserializeBinary(bytes));
          }
        }
        DebrisActivity.Formula = Formula;
        class Debris extends originalModules.DebrisActivity.Debris {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getNo) {
              this.no = other.getNo();
              this.level = other.getLevel();
              this.icon = other.getIcon();
            }
            Object.assign(this, other);
          }
          get no() {
            return super.getNo();
          }
          set no(value) {
            super.setNo(value);
          }
          get level() {
            return super.getLevel();
          }
          set level(value) {
            super.setLevel(value);
          }
          get icon() {
            return super.getIcon();
          }
          set icon(value) {
            super.setIcon(value);
          }
          static create() {
            return new Debris();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Debris(this.deserializeBinary(bytes));
          }
        }
        DebrisActivity.Debris = Debris;
      })(DebrisActivity = mtf.DebrisActivity || (mtf.DebrisActivity = {}));
      class DebrisInfoReq extends originalModules.DebrisInfoReq {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getActivityno && (this.activityNo = other.getActivityno());
          Object.assign(this, other);
        }
        get activityNo() {
          return super.getActivityno();
        }
        set activityNo(value) {
          super.setActivityno(value);
        }
        static create() {
          return new DebrisInfoReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new DebrisInfoReq(this.deserializeBinary(bytes));
        }
      }
      mtf.DebrisInfoReq = DebrisInfoReq;
      class DebrisInfoAck extends originalModules.DebrisInfoAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getResult) {
            this.result = other.getResult();
            this.activityNo = other.getActivityno();
            this.changelist = other.getChangelistList();
            this.debrislist = other.getDebrislistList();
          }
          Object.assign(this, other);
        }
        get result() {
          return super.getResult();
        }
        set result(value) {
          super.setResult(value);
        }
        get activityNo() {
          return super.getActivityno();
        }
        set activityNo(value) {
          super.setActivityno(value);
        }
        get changelist() {
          let list = super.getChangelistList().map(formula => new DebrisInfoAck.Formula(formula));
          super.setChangelistList(list);
          return list;
        }
        set changelist(value) {
          super.setChangelistList(value.map(formula => new DebrisInfoAck.Formula(formula)));
        }
        get debrislist() {
          let list = super.getDebrislistList().map(debris => new DebrisInfoAck.Debris(debris));
          super.setDebrislistList(list);
          return list;
        }
        set debrislist(value) {
          super.setDebrislistList(value.map(debris => new DebrisInfoAck.Debris(debris)));
        }
        static create() {
          return new DebrisInfoAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new DebrisInfoAck(this.deserializeBinary(bytes));
        }
      }
      mtf.DebrisInfoAck = DebrisInfoAck;
      (function(DebrisInfoAck) {
        class Formula extends originalModules.DebrisInfoAck.Formula {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getFormula) {
              this.formula = other.getFormula();
              this.count = other.getCount();
            }
            Object.assign(this, other);
          }
          get formula() {
            return super.getFormula();
          }
          set formula(value) {
            super.setFormula(value);
          }
          get count() {
            return super.getCount();
          }
          set count(value) {
            super.setCount(value);
          }
          static create() {
            return new Formula();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Formula(this.deserializeBinary(bytes));
          }
        }
        DebrisInfoAck.Formula = Formula;
        class Debris extends originalModules.DebrisInfoAck.Debris {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getNo) {
              this.no = other.getNo();
              this.count = other.getCount();
            }
            Object.assign(this, other);
          }
          get no() {
            return super.getNo();
          }
          set no(value) {
            super.setNo(value);
          }
          get count() {
            return super.getCount();
          }
          set count(value) {
            super.setCount(value);
          }
          static create() {
            return new Debris();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Debris(this.deserializeBinary(bytes));
          }
        }
        DebrisInfoAck.Debris = Debris;
      })(DebrisInfoAck = mtf.DebrisInfoAck || (mtf.DebrisInfoAck = {}));
      class DebrisGet extends originalModules.DebrisGet {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getResult) {
            this.result = other.getResult();
            this.get = other.getGet();
          }
          Object.assign(this, other);
        }
        get result() {
          return super.getResult();
        }
        set result(value) {
          super.setResult(value);
        }
        get get() {
          return super.getGet();
        }
        set get(value) {
          super.setGet(value);
        }
        static create() {
          return new DebrisGet();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new DebrisGet(this.deserializeBinary(bytes));
        }
      }
      mtf.DebrisGet = DebrisGet;
      class DebrisExchangeReq extends originalModules.DebrisExchangeReq {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getFormula) {
            this.formula = other.getFormula();
            this.amount = other.getAmount();
            this.activityNo = other.getActivityno();
          }
          Object.assign(this, other);
        }
        get formula() {
          return super.getFormula();
        }
        set formula(value) {
          super.setFormula(value);
        }
        get amount() {
          return super.getAmount();
        }
        set amount(value) {
          super.setAmount(value);
        }
        get activityNo() {
          return super.getActivityno();
        }
        set activityNo(value) {
          super.setActivityno(value);
        }
        static create() {
          return new DebrisExchangeReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new DebrisExchangeReq(this.deserializeBinary(bytes));
        }
      }
      mtf.DebrisExchangeReq = DebrisExchangeReq;
      class DebrisExchangeAck extends originalModules.DebrisExchangeAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getResult) {
            this.result = other.getResult();
            this.awardType = other.getAwardtype();
            this.itemNo = other.getItemno();
            this.amount = other.getAmount();
            this.icon = other.getIcon();
          }
          Object.assign(this, other);
        }
        get result() {
          return super.getResult();
        }
        set result(value) {
          super.setResult(value);
        }
        get awardType() {
          return super.getAwardtype();
        }
        set awardType(value) {
          super.setAwardtype(value);
        }
        get itemNo() {
          return super.getItemno();
        }
        set itemNo(value) {
          super.setItemno(value);
        }
        get amount() {
          return super.getAmount();
        }
        set amount(value) {
          super.setAmount(value);
        }
        get icon() {
          return super.getIcon();
        }
        set icon(value) {
          super.setIcon(value);
        }
        static create() {
          return new DebrisExchangeAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new DebrisExchangeAck(this.deserializeBinary(bytes));
        }
      }
      mtf.DebrisExchangeAck = DebrisExchangeAck;
      class FishData extends originalModules.FishData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getFish) {
            this.fish = other.getFish();
            this.path = other.getPath();
            this.delay = other.getDelay();
            this.duration = other.getDuration();
            this.follower = other.getFollower();
            this.flipOnTurn = other.getFliponturn();
          }
          Object.assign(this, other);
        }
        get fish() {
          return super.getFish();
        }
        set fish(value) {
          super.setFish(value);
        }
        get path() {
          return super.getPath();
        }
        set path(value) {
          super.setPath(value);
        }
        get delay() {
          return super.getDelay();
        }
        set delay(value) {
          super.setDelay(value);
        }
        get duration() {
          return super.getDuration();
        }
        set duration(value) {
          super.setDuration(value);
        }
        get follower() {
          if (!super.getFollower()) return;
          let newValue = new FishData.Follower(super.getFollower());
          super.setFollower(newValue);
          return newValue;
        }
        set follower(value) {
          super.setFollower(new FishData.Follower(value));
        }
        get flipOnTurn() {
          return super.getFliponturn();
        }
        set flipOnTurn(value) {
          super.setFliponturn(value);
        }
        static create() {
          return new FishData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new FishData(this.deserializeBinary(bytes));
        }
      }
      mtf.FishData = FishData;
      (function(FishData) {
        class Follower extends originalModules.FishData.Follower {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getX) {
              this.x = other.getX();
              this.y = other.getY();
            }
            Object.assign(this, other);
          }
          get x() {
            return super.getX();
          }
          set x(value) {
            super.setX(value);
          }
          get y() {
            return super.getY();
          }
          set y(value) {
            super.setY(value);
          }
          static create() {
            return new Follower();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Follower(this.deserializeBinary(bytes));
          }
        }
        FishData.Follower = Follower;
      })(FishData = mtf.FishData || (mtf.FishData = {}));
      class GroupData extends originalModules.GroupData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getNo) {
            this.no = other.getNo();
            this.inverse = other.getInverse();
            this.extra = other.getExtra();
            this.fish = other.getFishList();
          }
          Object.assign(this, other);
        }
        get no() {
          return super.getNo();
        }
        set no(value) {
          super.setNo(value);
        }
        get inverse() {
          return super.getInverse();
        }
        set inverse(value) {
          super.setInverse(value);
        }
        get extra() {
          return super.getExtra();
        }
        set extra(value) {
          super.setExtra(value);
        }
        get fish() {
          let list = super.getFishList().map(fishdata => new FishData(fishdata));
          super.setFishList(list);
          return list;
        }
        set fish(value) {
          super.setFishList(value.map(fishdata => new FishData(fishdata)));
        }
        static create() {
          return new GroupData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new GroupData(this.deserializeBinary(bytes));
        }
      }
      mtf.GroupData = GroupData;
      class SubData extends originalModules.SubData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getName) {
            this.name = other.getName();
            this.group = other.getGroupList();
          }
          Object.assign(this, other);
        }
        get name() {
          return super.getName();
        }
        set name(value) {
          super.setName(value);
        }
        get group() {
          let list = super.getGroupList().map(group => new SubData.Group(group));
          super.setGroupList(list);
          return list;
        }
        set group(value) {
          super.setGroupList(value.map(group => new SubData.Group(group)));
        }
        static create() {
          return new SubData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new SubData(this.deserializeBinary(bytes));
        }
      }
      mtf.SubData = SubData;
      (function(SubData) {
        class Group extends originalModules.SubData.Group {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getTime) {
              this.time = other.getTime();
              this.group = other.getGroup();
            }
            Object.assign(this, other);
          }
          get time() {
            return super.getTime();
          }
          set time(value) {
            super.setTime(value);
          }
          get group() {
            return super.getGroup();
          }
          set group(value) {
            super.setGroup(value);
          }
          static create() {
            return new Group();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Group(this.deserializeBinary(bytes));
          }
        }
        SubData.Group = Group;
      })(SubData = mtf.SubData || (mtf.SubData = {}));
      class MainData extends originalModules.MainData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getTheme) {
            this.theme = other.getTheme();
            this.main = other.getMain();
          }
          Object.assign(this, other);
        }
        get theme() {
          return super.getTheme();
        }
        set theme(value) {
          super.setTheme(value);
        }
        get main() {
          if (!super.getMain()) return;
          let newValue = new MainData.Main(super.getMain());
          super.setMain(newValue);
          return newValue;
        }
        set main(value) {
          super.setMain(new MainData.Main(value));
        }
        static create() {
          return new MainData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new MainData(this.deserializeBinary(bytes));
        }
      }
      mtf.MainData = MainData;
      (function(MainData) {
        class Main extends originalModules.MainData.Main {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getNo) {
              this.no = other.getNo();
              this.desc = other.getDesc();
              this.SubScriptList = other.getSubscriptlistList();
            }
            Object.assign(this, other);
          }
          get no() {
            return super.getNo();
          }
          set no(value) {
            super.setNo(value);
          }
          get desc() {
            return super.getDesc();
          }
          set desc(value) {
            super.setDesc(value);
          }
          get SubScriptList() {
            return super.getSubscriptlistList();
          }
          set SubScriptList(value) {
            super.setSubscriptlistList(value);
          }
          static create() {
            return new Main();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Main(this.deserializeBinary(bytes));
          }
        }
        MainData.Main = Main;
      })(MainData = mtf.MainData || (mtf.MainData = {}));
      class PathData extends originalModules.PathData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getNo) {
            this.no = other.getNo();
            this.duration = other.getDuration();
            this.wp = other.getWpList();
          }
          Object.assign(this, other);
        }
        get no() {
          return super.getNo();
        }
        set no(value) {
          super.setNo(value);
        }
        get duration() {
          return super.getDuration();
        }
        set duration(value) {
          super.setDuration(value);
        }
        get wp() {
          let list = super.getWpList().map(walkpath => new PathData.WalkPath(walkpath));
          super.setWpList(list);
          return list;
        }
        set wp(value) {
          super.setWpList(value.map(walkpath => new PathData.WalkPath(walkpath)));
        }
        static create() {
          return new PathData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new PathData(this.deserializeBinary(bytes));
        }
      }
      mtf.PathData = PathData;
      (function(PathData) {
        class WalkPath extends originalModules.PathData.WalkPath {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getX) {
              this.x = other.getX();
              this.y = other.getY();
              this.duration = other.getDuration();
              this.wait = other.getWait();
              this.spline = other.getSpline();
            }
            Object.assign(this, other);
          }
          get x() {
            return super.getX();
          }
          set x(value) {
            super.setX(value);
          }
          get y() {
            return super.getY();
          }
          set y(value) {
            super.setY(value);
          }
          get duration() {
            return super.getDuration();
          }
          set duration(value) {
            super.setDuration(value);
          }
          get wait() {
            return super.getWait();
          }
          set wait(value) {
            super.setWait(value);
          }
          get spline() {
            if (!super.getSpline()) return;
            let newValue = new PathData.Spline(super.getSpline());
            super.setSpline(newValue);
            return newValue;
          }
          set spline(value) {
            super.setSpline(new PathData.Spline(value));
          }
          static create() {
            return new WalkPath();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new WalkPath(this.deserializeBinary(bytes));
          }
        }
        PathData.WalkPath = WalkPath;
        class Spline extends originalModules.PathData.Spline {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getDuration) {
              this.duration = other.getDuration();
              this.tangent = other.getTangent();
              this.pt = other.getPtList();
            }
            Object.assign(this, other);
          }
          get duration() {
            return super.getDuration();
          }
          set duration(value) {
            super.setDuration(value);
          }
          get tangent() {
            return super.getTangent();
          }
          set tangent(value) {
            super.setTangent(value);
          }
          get pt() {
            let list = super.getPtList().map(point => new PathData.Point(point));
            super.setPtList(list);
            return list;
          }
          set pt(value) {
            super.setPtList(value.map(point => new PathData.Point(point)));
          }
          static create() {
            return new Spline();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Spline(this.deserializeBinary(bytes));
          }
        }
        PathData.Spline = Spline;
        class Point extends originalModules.PathData.Point {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getX) {
              this.x = other.getX();
              this.y = other.getY();
              this.duration = other.getDuration();
              this.wait = other.getWait();
            }
            Object.assign(this, other);
          }
          get x() {
            return super.getX();
          }
          set x(value) {
            super.setX(value);
          }
          get y() {
            return super.getY();
          }
          set y(value) {
            super.setY(value);
          }
          get duration() {
            return super.getDuration();
          }
          set duration(value) {
            super.setDuration(value);
          }
          get wait() {
            return super.getWait();
          }
          set wait(value) {
            super.setWait(value);
          }
          static create() {
            return new Point();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new Point(this.deserializeBinary(bytes));
          }
        }
        PathData.Point = Point;
      })(PathData = mtf.PathData || (mtf.PathData = {}));
      class TimelineEvent extends originalModules.TimelineEvent {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getTime) {
            this.time = other.getTime();
            this.event = other.getEvent();
            this.switchBG = other.getSwitchbg();
            this.switchBgMusic = other.getSwitchbgmusic();
            this.shake = other.getShake();
            this.bossWarning = other.getBosswarning();
            this.playBgAnim = other.getPlaybganim();
            this.specialBossNotify = other.getSpecialbossnotify();
          }
          Object.assign(this, other);
        }
        get time() {
          return super.getTime();
        }
        set time(value) {
          super.setTime(value);
        }
        get event() {
          return super.getEvent();
        }
        set event(value) {
          super.setEvent(value);
        }
        get switchBG() {
          if (!super.getSwitchbg()) return;
          let newValue = new SwitchBGEvent(super.getSwitchbg());
          super.setSwitchbg(newValue);
          return newValue;
        }
        set switchBG(value) {
          super.setSwitchbg(new SwitchBGEvent(value));
        }
        get switchBgMusic() {
          if (!super.getSwitchbgmusic()) return;
          let newValue = new SwitchBgMusicEvent(super.getSwitchbgmusic());
          super.setSwitchbgmusic(newValue);
          return newValue;
        }
        set switchBgMusic(value) {
          super.setSwitchbgmusic(new SwitchBgMusicEvent(value));
        }
        get shake() {
          if (!super.getShake()) return;
          let newValue = new ShakeEvent(super.getShake());
          super.setShake(newValue);
          return newValue;
        }
        set shake(value) {
          super.setShake(new ShakeEvent(value));
        }
        get bossWarning() {
          if (!super.getBosswarning()) return;
          let newValue = new BossWarningEvent(super.getBosswarning());
          super.setBosswarning(newValue);
          return newValue;
        }
        set bossWarning(value) {
          super.setBosswarning(new BossWarningEvent(value));
        }
        get playBgAnim() {
          if (!super.getPlaybganim()) return;
          let newValue = new PlayBgAnimEvent(super.getPlaybganim());
          super.setPlaybganim(newValue);
          return newValue;
        }
        set playBgAnim(value) {
          super.setPlaybganim(new PlayBgAnimEvent(value));
        }
        get specialBossNotify() {
          if (!super.getSpecialbossnotify()) return;
          let newValue = new SpecialBossNotifyEvent(super.getSpecialbossnotify());
          super.setSpecialbossnotify(newValue);
          return newValue;
        }
        set specialBossNotify(value) {
          super.setSpecialbossnotify(new SpecialBossNotifyEvent(value));
        }
        static create() {
          return new TimelineEvent();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new TimelineEvent(this.deserializeBinary(bytes));
        }
      }
      mtf.TimelineEvent = TimelineEvent;
      class TimelineEventParam extends originalModules.TimelineEventParam {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSpecialbossnotify) {
            this.switchBG = other.getSwitchbg();
            this.switchBgMusic = other.getSwitchbgmusic();
            this.shake = other.getShake();
            this.bossWarning = other.getBosswarning();
            this.playBgAnim = other.getPlaybganim();
            this.specialBossNotify = other.getSpecialbossnotify();
          }
          Object.assign(this, other);
        }
        get switchBG() {
          if (!super.getSwitchbg()) return;
          let newValue = new SwitchBGEvent(super.getSwitchbg());
          super.setSwitchbg(newValue);
          return newValue;
        }
        set switchBG(value) {
          super.setSwitchbg(new SwitchBGEvent(value));
        }
        get switchBgMusic() {
          if (!super.getSwitchbgmusic()) return;
          let newValue = new SwitchBgMusicEvent(super.getSwitchbgmusic());
          super.setSwitchbgmusic(newValue);
          return newValue;
        }
        set switchBgMusic(value) {
          super.setSwitchbgmusic(new SwitchBgMusicEvent(value));
        }
        get shake() {
          if (!super.getShake()) return;
          let newValue = new ShakeEvent(super.getShake());
          super.setShake(newValue);
          return newValue;
        }
        set shake(value) {
          super.setShake(new ShakeEvent(value));
        }
        get bossWarning() {
          if (!super.getBosswarning()) return;
          let newValue = new BossWarningEvent(super.getBosswarning());
          super.setBosswarning(newValue);
          return newValue;
        }
        set bossWarning(value) {
          super.setBosswarning(new BossWarningEvent(value));
        }
        get playBgAnim() {
          if (!super.getPlaybganim()) return;
          let newValue = new PlayBgAnimEvent(super.getPlaybganim());
          super.setPlaybganim(newValue);
          return newValue;
        }
        set playBgAnim(value) {
          super.setPlaybganim(new PlayBgAnimEvent(value));
        }
        get specialBossNotify() {
          if (!super.getSpecialbossnotify()) return;
          let newValue = new SpecialBossNotifyEvent(super.getSpecialbossnotify());
          super.setSpecialbossnotify(newValue);
          return newValue;
        }
        set specialBossNotify(value) {
          super.setSpecialbossnotify(new SpecialBossNotifyEvent(value));
        }
        static create() {
          return new TimelineEventParam();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new TimelineEventParam(this.deserializeBinary(bytes));
        }
      }
      mtf.TimelineEventParam = TimelineEventParam;
      class SwitchBGEvent extends originalModules.SwitchBGEvent {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getBgindex && (this.bgIndex = other.getBgindex());
          Object.assign(this, other);
        }
        get bgIndex() {
          return super.getBgindex();
        }
        set bgIndex(value) {
          super.setBgindex(value);
        }
        static create() {
          return new SwitchBGEvent();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new SwitchBGEvent(this.deserializeBinary(bytes));
        }
      }
      mtf.SwitchBGEvent = SwitchBGEvent;
      class SwitchBgMusicEvent extends originalModules.SwitchBgMusicEvent {
        constructor(other) {
          super();
          if (!other) return;
          "function" === typeof other.getMusicname && (this.musicName = other.getMusicname());
          Object.assign(this, other);
        }
        get musicName() {
          return super.getMusicname();
        }
        set musicName(value) {
          super.setMusicname(value);
        }
        static create() {
          return new SwitchBgMusicEvent();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new SwitchBgMusicEvent(this.deserializeBinary(bytes));
        }
      }
      mtf.SwitchBgMusicEvent = SwitchBgMusicEvent;
      class ShakeEvent extends originalModules.ShakeEvent {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getShakecontinuetime) {
            this.shakeContinueTime = other.getShakecontinuetime();
            this.shakeStrength = other.getShakestrength();
          }
          Object.assign(this, other);
        }
        get shakeContinueTime() {
          return super.getShakecontinuetime();
        }
        set shakeContinueTime(value) {
          super.setShakecontinuetime(value);
        }
        get shakeStrength() {
          return super.getShakestrength();
        }
        set shakeStrength(value) {
          super.setShakestrength(value);
        }
        static create() {
          return new ShakeEvent();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new ShakeEvent(this.deserializeBinary(bytes));
        }
      }
      mtf.ShakeEvent = ShakeEvent;
      class BossWarningEvent extends originalModules.BossWarningEvent {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getWarningtype) {
            this.warningType = other.getWarningtype();
            this.fishType = other.getFishtype();
            this.ratio = other.getRatio();
          }
          Object.assign(this, other);
        }
        get warningType() {
          return super.getWarningtype();
        }
        set warningType(value) {
          super.setWarningtype(value);
        }
        get fishType() {
          return super.getFishtype();
        }
        set fishType(value) {
          super.setFishtype(value);
        }
        get ratio() {
          return super.getRatio();
        }
        set ratio(value) {
          super.setRatio(value);
        }
        static create() {
          return new BossWarningEvent();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new BossWarningEvent(this.deserializeBinary(bytes));
        }
      }
      mtf.BossWarningEvent = BossWarningEvent;
      class PlayBgAnimEvent extends originalModules.PlayBgAnimEvent {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getAnimname) {
            this.animName = other.getAnimname();
            this.loops = other.getLoops();
          }
          Object.assign(this, other);
        }
        get animName() {
          return super.getAnimname();
        }
        set animName(value) {
          super.setAnimname(value);
        }
        get loops() {
          return super.getLoops();
        }
        set loops(value) {
          super.setLoops(value);
        }
        static create() {
          return new PlayBgAnimEvent();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new PlayBgAnimEvent(this.deserializeBinary(bytes));
        }
      }
      mtf.PlayBgAnimEvent = PlayBgAnimEvent;
      class SpecialBossNotifyEvent extends originalModules.SpecialBossNotifyEvent {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getFishtype) {
            this.fishType = other.getFishtype();
            this.ratio = other.getRatio();
          }
          Object.assign(this, other);
        }
        get fishType() {
          return super.getFishtype();
        }
        set fishType(value) {
          super.setFishtype(value);
        }
        get ratio() {
          return super.getRatio();
        }
        set ratio(value) {
          super.setRatio(value);
        }
        static create() {
          return new SpecialBossNotifyEvent();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new SpecialBossNotifyEvent(this.deserializeBinary(bytes));
        }
      }
      mtf.SpecialBossNotifyEvent = SpecialBossNotifyEvent;
      class ScriptData extends originalModules.ScriptData {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getGroupList) {
            this.group = other.getGroupList();
            this.sub = other.getSubList();
            this.main = other.getMainList();
            this.path = other.getPathList();
            this.version = other.getVersion();
          }
          Object.assign(this, other);
        }
        get group() {
          let list = super.getGroupList().map(groupdata => new GroupData(groupdata));
          super.setGroupList(list);
          return list;
        }
        set group(value) {
          super.setGroupList(value.map(groupdata => new GroupData(groupdata)));
        }
        get sub() {
          let list = super.getSubList().map(subdata => new SubData(subdata));
          super.setSubList(list);
          return list;
        }
        set sub(value) {
          super.setSubList(value.map(subdata => new SubData(subdata)));
        }
        get main() {
          let list = super.getMainList().map(maindata => new MainData(maindata));
          super.setMainList(list);
          return list;
        }
        set main(value) {
          super.setMainList(value.map(maindata => new MainData(maindata)));
        }
        get path() {
          let list = super.getPathList().map(pathdata => new PathData(pathdata));
          super.setPathList(list);
          return list;
        }
        set path(value) {
          super.setPathList(value.map(pathdata => new PathData(pathdata)));
        }
        get version() {
          return super.getVersion();
        }
        set version(value) {
          super.setVersion(value);
        }
        static create() {
          return new ScriptData();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new ScriptData(this.deserializeBinary(bytes));
        }
      }
      mtf.ScriptData = ScriptData;
      class ScriptV2 extends originalModules.ScriptV2 {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getMainList) {
            this.main = other.getMainList();
            this.random = other.getRandomList();
            this.group = other.getGroupList();
            this.path = other.getPathList();
            this.version = other.getVersion();
          }
          Object.assign(this, other);
        }
        get main() {
          let list = super.getMainList().map(maindata => new ScriptV2.MainData(maindata));
          super.setMainList(list);
          return list;
        }
        set main(value) {
          super.setMainList(value.map(maindata => new ScriptV2.MainData(maindata)));
        }
        get random() {
          let list = super.getRandomList().map(randomdata => new ScriptV2.RandomData(randomdata));
          super.setRandomList(list);
          return list;
        }
        set random(value) {
          super.setRandomList(value.map(randomdata => new ScriptV2.RandomData(randomdata)));
        }
        get group() {
          let list = super.getGroupList().map(groupdata => new ScriptV2.GroupData(groupdata));
          super.setGroupList(list);
          return list;
        }
        set group(value) {
          super.setGroupList(value.map(groupdata => new ScriptV2.GroupData(groupdata)));
        }
        get path() {
          let list = super.getPathList().map(pathdata => new ScriptV2.PathData(pathdata));
          super.setPathList(list);
          return list;
        }
        set path(value) {
          super.setPathList(value.map(pathdata => new ScriptV2.PathData(pathdata)));
        }
        get version() {
          return super.getVersion();
        }
        set version(value) {
          super.setVersion(value);
        }
        static create() {
          return new ScriptV2();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new ScriptV2(this.deserializeBinary(bytes));
        }
      }
      mtf.ScriptV2 = ScriptV2;
      (function(ScriptV2) {
        class MainData extends originalModules.ScriptV2.MainData {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getNo) {
              this.no = other.getNo();
              this.randoms = other.getRandomsList();
            }
            Object.assign(this, other);
          }
          get no() {
            return super.getNo();
          }
          set no(value) {
            super.setNo(value);
          }
          get randoms() {
            let list = super.getRandomsList().map(sub => new ScriptV2.MainData.Sub(sub));
            super.setRandomsList(list);
            return list;
          }
          set randoms(value) {
            super.setRandomsList(value.map(sub => new ScriptV2.MainData.Sub(sub)));
          }
          static create() {
            return new MainData();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new MainData(this.deserializeBinary(bytes));
          }
        }
        ScriptV2.MainData = MainData;
        (function(MainData) {
          class Sub extends originalModules.ScriptV2.MainData.Sub {
            constructor(other) {
              super();
              if (!other) return;
              if ("function" === typeof other.getName) {
                this.name = other.getName();
                this.random = other.getRandomList();
              }
              Object.assign(this, other);
            }
            get name() {
              return super.getName();
            }
            set name(value) {
              super.setName(value);
            }
            get random() {
              return super.getRandomList();
            }
            set random(value) {
              super.setRandomList(value);
            }
            static create() {
              return new Sub();
            }
            static encode(message) {
              return message.serializeBinary();
            }
            static decode(bytes) {
              return new Sub(this.deserializeBinary(bytes));
            }
          }
          MainData.Sub = Sub;
        })(MainData = ScriptV2.MainData || (ScriptV2.MainData = {}));
        class RandomData extends originalModules.ScriptV2.RandomData {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getId) {
              this.id = other.getId();
              this.random = other.getRandomList();
            }
            Object.assign(this, other);
          }
          get id() {
            return super.getId();
          }
          set id(value) {
            super.setId(value);
          }
          get random() {
            let list = super.getRandomList().map(random => new ScriptV2.RandomData.Random(random));
            super.setRandomList(list);
            return list;
          }
          set random(value) {
            super.setRandomList(value.map(random => new ScriptV2.RandomData.Random(random)));
          }
          static create() {
            return new RandomData();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new RandomData(this.deserializeBinary(bytes));
          }
        }
        ScriptV2.RandomData = RandomData;
        (function(RandomData) {
          class Random extends originalModules.ScriptV2.RandomData.Random {
            constructor(other) {
              super();
              if (!other) return;
              if ("function" === typeof other.getId) {
                this.id = other.getId();
                this.rate = other.getRate();
              }
              Object.assign(this, other);
            }
            get id() {
              return super.getId();
            }
            set id(value) {
              super.setId(value);
            }
            get rate() {
              return super.getRate();
            }
            set rate(value) {
              super.setRate(value);
            }
            static create() {
              return new Random();
            }
            static encode(message) {
              return message.serializeBinary();
            }
            static decode(bytes) {
              return new Random(this.deserializeBinary(bytes));
            }
          }
          RandomData.Random = Random;
        })(RandomData = ScriptV2.RandomData || (ScriptV2.RandomData = {}));
        class GroupData extends originalModules.ScriptV2.GroupData {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getId) {
              this.id = other.getId();
              this.fish = other.getFishList();
              this.duration = other.getDuration();
              this.delay = other.getDelay();
            }
            Object.assign(this, other);
          }
          get id() {
            return super.getId();
          }
          set id(value) {
            super.setId(value);
          }
          get fish() {
            let list = super.getFishList().map(fish => new ScriptV2.GroupData.Fish(fish));
            super.setFishList(list);
            return list;
          }
          set fish(value) {
            super.setFishList(value.map(fish => new ScriptV2.GroupData.Fish(fish)));
          }
          get duration() {
            return super.getDuration();
          }
          set duration(value) {
            super.setDuration(value);
          }
          get delay() {
            return super.getDelay();
          }
          set delay(value) {
            super.setDelay(value);
          }
          static create() {
            return new GroupData();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new GroupData(this.deserializeBinary(bytes));
          }
        }
        ScriptV2.GroupData = GroupData;
        (function(GroupData) {
          class Fish extends originalModules.ScriptV2.GroupData.Fish {
            constructor(other) {
              super();
              if (!other) return;
              if ("function" === typeof other.getId) {
                this.id = other.getId();
                this.fish = other.getFish();
                this.path = other.getPath();
                this.delay = other.getDelay();
                this.flip = other.getFlip();
                this.mirror = other.getMirror();
              }
              Object.assign(this, other);
            }
            get id() {
              return super.getId();
            }
            set id(value) {
              super.setId(value);
            }
            get fish() {
              return super.getFish();
            }
            set fish(value) {
              super.setFish(value);
            }
            get path() {
              return super.getPath();
            }
            set path(value) {
              super.setPath(value);
            }
            get delay() {
              return super.getDelay();
            }
            set delay(value) {
              super.setDelay(value);
            }
            get flip() {
              return super.getFlip();
            }
            set flip(value) {
              super.setFlip(value);
            }
            get mirror() {
              return super.getMirror();
            }
            set mirror(value) {
              super.setMirror(value);
            }
            static create() {
              return new Fish();
            }
            static encode(message) {
              return message.serializeBinary();
            }
            static decode(bytes) {
              return new Fish(this.deserializeBinary(bytes));
            }
          }
          GroupData.Fish = Fish;
        })(GroupData = ScriptV2.GroupData || (ScriptV2.GroupData = {}));
        class PathData extends originalModules.ScriptV2.PathData {
          constructor(other) {
            super();
            if (!other) return;
            if ("function" === typeof other.getId) {
              this.id = other.getId();
              this.duration = other.getDuration();
              this.point = other.getPointList();
            }
            Object.assign(this, other);
          }
          get id() {
            return super.getId();
          }
          set id(value) {
            super.setId(value);
          }
          get duration() {
            return super.getDuration();
          }
          set duration(value) {
            super.setDuration(value);
          }
          get point() {
            let list = super.getPointList().map(point => new ScriptV2.PathData.Point(point));
            super.setPointList(list);
            return list;
          }
          set point(value) {
            super.setPointList(value.map(point => new ScriptV2.PathData.Point(point)));
          }
          static create() {
            return new PathData();
          }
          static encode(message) {
            return message.serializeBinary();
          }
          static decode(bytes) {
            return new PathData(this.deserializeBinary(bytes));
          }
        }
        ScriptV2.PathData = PathData;
        (function(PathData) {
          class Point extends originalModules.ScriptV2.PathData.Point {
            constructor(other) {
              super();
              if (!other) return;
              if ("function" === typeof other.getX) {
                this.x = other.getX();
                this.y = other.getY();
                this.duration = other.getDuration();
                this.delay = other.getDelay();
                this.isSpline = other.getIsspline();
                this.distance = other.getDistance();
              }
              Object.assign(this, other);
            }
            get x() {
              return super.getX();
            }
            set x(value) {
              super.setX(value);
            }
            get y() {
              return super.getY();
            }
            set y(value) {
              super.setY(value);
            }
            get duration() {
              return super.getDuration();
            }
            set duration(value) {
              super.setDuration(value);
            }
            get delay() {
              return super.getDelay();
            }
            set delay(value) {
              super.setDelay(value);
            }
            get isSpline() {
              return super.getIsspline();
            }
            set isSpline(value) {
              super.setIsspline(value);
            }
            get distance() {
              return super.getDistance();
            }
            set distance(value) {
              super.setDistance(value);
            }
            static create() {
              return new Point();
            }
            static encode(message) {
              return message.serializeBinary();
            }
            static decode(bytes) {
              return new Point(this.deserializeBinary(bytes));
            }
          }
          PathData.Point = Point;
        })(PathData = ScriptV2.PathData || (ScriptV2.PathData = {}));
      })(ScriptV2 = mtf.ScriptV2 || (mtf.ScriptV2 = {}));
      class FreezeAck extends originalModules.FreezeAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.pause = other.getPause();
            this.coin = other.getCoin();
            this.remain = other.getRemain();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get pause() {
          return super.getPause();
        }
        set pause(value) {
          super.setPause(value);
        }
        get coin() {
          return super.getCoin();
        }
        set coin(value) {
          super.setCoin(value);
        }
        get remain() {
          return super.getRemain();
        }
        set remain(value) {
          super.setRemain(value);
        }
        static create() {
          return new FreezeAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new FreezeAck(this.deserializeBinary(bytes));
        }
      }
      mtf.FreezeAck = FreezeAck;
      class EatFishReq extends originalModules.EatFishReq {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getEater) {
            this.eater = other.getEater();
            this.toEat = other.getToeatList();
          }
          Object.assign(this, other);
        }
        get eater() {
          return super.getEater();
        }
        set eater(value) {
          super.setEater(value);
        }
        get toEat() {
          return super.getToeatList();
        }
        set toEat(value) {
          super.setToeatList(value);
        }
        static create() {
          return new EatFishReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new EatFishReq(this.deserializeBinary(bytes));
        }
      }
      mtf.EatFishReq = EatFishReq;
      class EatFishAck extends originalModules.EatFishAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getEater) {
            this.eater = other.getEater();
            this.eaterOdds = other.getEaterodds();
            this.eaterOddsMax = other.getEateroddsmax();
            this.fishesEaten = other.getFisheseatenList();
          }
          Object.assign(this, other);
        }
        get eater() {
          return super.getEater();
        }
        set eater(value) {
          super.setEater(value);
        }
        get eaterOdds() {
          return super.getEaterodds();
        }
        set eaterOdds(value) {
          super.setEaterodds(value);
        }
        get eaterOddsMax() {
          return super.getEateroddsmax();
        }
        set eaterOddsMax(value) {
          super.setEateroddsmax(value);
        }
        get fishesEaten() {
          return super.getFisheseatenList();
        }
        set fishesEaten(value) {
          super.setFisheseatenList(value);
        }
        static create() {
          return new EatFishAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new EatFishAck(this.deserializeBinary(bytes));
        }
      }
      mtf.EatFishAck = EatFishAck;
      class UpdateFishOdds extends originalModules.UpdateFishOdds {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getFishtag) {
            this.fishTag = other.getFishtag();
            this.odds = other.getOdds();
          }
          Object.assign(this, other);
        }
        get fishTag() {
          return super.getFishtag();
        }
        set fishTag(value) {
          super.setFishtag(value);
        }
        get odds() {
          return super.getOdds();
        }
        set odds(value) {
          super.setOdds(value);
        }
        static create() {
          return new UpdateFishOdds();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new UpdateFishOdds(this.deserializeBinary(bytes));
        }
      }
      mtf.UpdateFishOdds = UpdateFishOdds;
      class DebugReq extends originalModules.DebugReq {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getId) {
            this.id = other.getId();
            this.type = other.getType();
            this.param1 = other.getParam1();
          }
          Object.assign(this, other);
        }
        get id() {
          return super.getId();
        }
        set id(value) {
          super.setId(value);
        }
        get type() {
          return super.getType();
        }
        set type(value) {
          super.setType(value);
        }
        get param1() {
          return super.getParam1();
        }
        set param1(value) {
          super.setParam1(value);
        }
        static create() {
          return new DebugReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new DebugReq(this.deserializeBinary(bytes));
        }
      }
      mtf.DebugReq = DebugReq;
      class DebugAck extends originalModules.DebugAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getId) {
            this.id = other.getId();
            this.success = other.getSuccess();
            this.ret = other.getRet();
          }
          Object.assign(this, other);
        }
        get id() {
          return super.getId();
        }
        set id(value) {
          super.setId(value);
        }
        get success() {
          return super.getSuccess();
        }
        set success(value) {
          super.setSuccess(value);
        }
        get ret() {
          return super.getRet();
        }
        set ret(value) {
          super.setRet(value);
        }
        static create() {
          return new DebugAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new DebugAck(this.deserializeBinary(bytes));
        }
      }
      mtf.DebugAck = DebugAck;
      class FishDeathEffectNotification extends originalModules.FishDeathEffectNotification {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getSeat) {
            this.seat = other.getSeat();
            this.effectSeat = other.getEffectseat();
            this.fishId = other.getFishid();
            this.fishTag = other.getFishtag();
            this.targetPos = other.getTargetpos();
            this.bet = other.getBet();
            this.win = other.getWin();
            this.secondsElapsed = other.getSecondselapsed();
            this.collateralDead = other.getCollateraldeadList();
          }
          Object.assign(this, other);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get effectSeat() {
          return super.getEffectseat();
        }
        set effectSeat(value) {
          super.setEffectseat(value);
        }
        get fishId() {
          return super.getFishid();
        }
        set fishId(value) {
          super.setFishid(value);
        }
        get fishTag() {
          return super.getFishtag();
        }
        set fishTag(value) {
          super.setFishtag(value);
        }
        get targetPos() {
          if (!super.getTargetpos()) return;
          let newValue = new Point(super.getTargetpos());
          super.setTargetpos(newValue);
          return newValue;
        }
        set targetPos(value) {
          super.setTargetpos(new Point(value));
        }
        get bet() {
          return super.getBet();
        }
        set bet(value) {
          super.setBet(value);
        }
        get win() {
          return super.getWin();
        }
        set win(value) {
          super.setWin(value);
        }
        get secondsElapsed() {
          return super.getSecondselapsed();
        }
        set secondsElapsed(value) {
          super.setSecondselapsed(value);
        }
        get collateralDead() {
          let list = super.getCollateraldeadList().map(fish => new HitAckData.Fish(fish));
          super.setCollateraldeadList(list);
          return list;
        }
        set collateralDead(value) {
          super.setCollateraldeadList(value.map(fish => new HitAckData.Fish(fish)));
        }
        static create() {
          return new FishDeathEffectNotification();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new FishDeathEffectNotification(this.deserializeBinary(bytes));
        }
      }
      mtf.FishDeathEffectNotification = FishDeathEffectNotification;
    })(mtf = exports.mtf || (exports.mtf = {}));
    cc._RF.pop();
  }, {
    "./MT3SETB-mtf_pb": "MT3SETB-mtf_pb"
  } ],
  "MT3SETB-mtf_pb": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "8b010on+QxHiqqseac5Zlch", "MT3SETB-mtf_pb");
    "use strict";
    var jspb = require("./../../libs/MT3SETB-google-protobuf");
    var goog = jspb;
    var global = "undefined" !== typeof globalThis && globalThis || "undefined" !== typeof window && window || "undefined" !== typeof global && global || "undefined" !== typeof self && self || function() {
      return this;
    }.call(null) || Function("return this")();
    goog.exportSymbol("proto.mtf.AddCoin", null, global);
    goog.exportSymbol("proto.mtf.AgentConfig", null, global);
    goog.exportSymbol("proto.mtf.Banner", null, global);
    goog.exportSymbol("proto.mtf.BombAckData", null, global);
    goog.exportSymbol("proto.mtf.BombDeadFish", null, global);
    goog.exportSymbol("proto.mtf.BombReqData", null, global);
    goog.exportSymbol("proto.mtf.BossWarningEvent", null, global);
    goog.exportSymbol("proto.mtf.BroadcastData", null, global);
    goog.exportSymbol("proto.mtf.BulletType", null, global);
    goog.exportSymbol("proto.mtf.CannonNotifyData", null, global);
    goog.exportSymbol("proto.mtf.Card", null, global);
    goog.exportSymbol("proto.mtf.Card.ChipData", null, global);
    goog.exportSymbol("proto.mtf.Card.ChipData.Chip", null, global);
    goog.exportSymbol("proto.mtf.Card.ChipData.Formula", null, global);
    goog.exportSymbol("proto.mtf.Card.Data", null, global);
    goog.exportSymbol("proto.mtf.Card.Message", null, global);
    goog.exportSymbol("proto.mtf.CardUseAck", null, global);
    goog.exportSymbol("proto.mtf.CardUseReq", null, global);
    goog.exportSymbol("proto.mtf.Command", null, global);
    goog.exportSymbol("proto.mtf.CreateFishAckData", null, global);
    goog.exportSymbol("proto.mtf.CreateFishAckData.CreateParams", null, global);
    goog.exportSymbol("proto.mtf.CreateFishAckData.Fish", null, global);
    goog.exportSymbol("proto.mtf.CreateFishGroupData", null, global);
    goog.exportSymbol("proto.mtf.Currency", null, global);
    goog.exportSymbol("proto.mtf.DebrisActivity", null, global);
    goog.exportSymbol("proto.mtf.DebrisActivity.Debris", null, global);
    goog.exportSymbol("proto.mtf.DebrisActivity.Formula", null, global);
    goog.exportSymbol("proto.mtf.DebrisExchangeAck", null, global);
    goog.exportSymbol("proto.mtf.DebrisExchangeReq", null, global);
    goog.exportSymbol("proto.mtf.DebrisGet", null, global);
    goog.exportSymbol("proto.mtf.DebrisInfoAck", null, global);
    goog.exportSymbol("proto.mtf.DebrisInfoAck.Debris", null, global);
    goog.exportSymbol("proto.mtf.DebrisInfoAck.Formula", null, global);
    goog.exportSymbol("proto.mtf.DebrisInfoReq", null, global);
    goog.exportSymbol("proto.mtf.DebugAck", null, global);
    goog.exportSymbol("proto.mtf.DebugReq", null, global);
    goog.exportSymbol("proto.mtf.DrillFireNotifyData", null, global);
    goog.exportSymbol("proto.mtf.EatFishAck", null, global);
    goog.exportSymbol("proto.mtf.EatFishReq", null, global);
    goog.exportSymbol("proto.mtf.Exp", null, global);
    goog.exportSymbol("proto.mtf.Favorite", null, global);
    goog.exportSymbol("proto.mtf.Favorite.Info", null, global);
    goog.exportSymbol("proto.mtf.FishData", null, global);
    goog.exportSymbol("proto.mtf.FishData.Follower", null, global);
    goog.exportSymbol("proto.mtf.FishDeathEffectNotification", null, global);
    goog.exportSymbol("proto.mtf.FreezeAck", null, global);
    goog.exportSymbol("proto.mtf.GameId", null, global);
    goog.exportSymbol("proto.mtf.GroupData", null, global);
    goog.exportSymbol("proto.mtf.GunSettingData", null, global);
    goog.exportSymbol("proto.mtf.HitAckData", null, global);
    goog.exportSymbol("proto.mtf.HitAckData.Fish", null, global);
    goog.exportSymbol("proto.mtf.HitMeteorStartAck", null, global);
    goog.exportSymbol("proto.mtf.HitMeteorStartReq", null, global);
    goog.exportSymbol("proto.mtf.HitReqData", null, global);
    goog.exportSymbol("proto.mtf.HitResult", null, global);
    goog.exportSymbol("proto.mtf.HitSpecialAckData", null, global);
    goog.exportSymbol("proto.mtf.HitSpecialEndData", null, global);
    goog.exportSymbol("proto.mtf.HitSpecialStartReqData", null, global);
    goog.exportSymbol("proto.mtf.HitSpeical4StartData", null, global);
    goog.exportSymbol("proto.mtf.HitSpeicalStartData", null, global);
    goog.exportSymbol("proto.mtf.Item", null, global);
    goog.exportSymbol("proto.mtf.Item.Info", null, global);
    goog.exportSymbol("proto.mtf.Item.Mail", null, global);
    goog.exportSymbol("proto.mtf.ItemRequest", null, global);
    goog.exportSymbol("proto.mtf.ItemUseAck", null, global);
    goog.exportSymbol("proto.mtf.ItemUseRequest", null, global);
    goog.exportSymbol("proto.mtf.JoinNotification", null, global);
    goog.exportSymbol("proto.mtf.JoinTableAck", null, global);
    goog.exportSymbol("proto.mtf.JoinTableReq", null, global);
    goog.exportSymbol("proto.mtf.JoinTableResult", null, global);
    goog.exportSymbol("proto.mtf.Jp", null, global);
    goog.exportSymbol("proto.mtf.JpBroadcastData", null, global);
    goog.exportSymbol("proto.mtf.JpData", null, global);
    goog.exportSymbol("proto.mtf.JpDetail", null, global);
    goog.exportSymbol("proto.mtf.JpDetailAck", null, global);
    goog.exportSymbol("proto.mtf.LeaveNotification", null, global);
    goog.exportSymbol("proto.mtf.LevelRewardAck", null, global);
    goog.exportSymbol("proto.mtf.LevelRewardReq", null, global);
    goog.exportSymbol("proto.mtf.LockFishData", null, global);
    goog.exportSymbol("proto.mtf.LoginData", null, global);
    goog.exportSymbol("proto.mtf.LoginData.Browser", null, global);
    goog.exportSymbol("proto.mtf.LoginDataAck", null, global);
    goog.exportSymbol("proto.mtf.LoginDataReq", null, global);
    goog.exportSymbol("proto.mtf.LoginResult", null, global);
    goog.exportSymbol("proto.mtf.LogoutAck", null, global);
    goog.exportSymbol("proto.mtf.LogoutType", null, global);
    goog.exportSymbol("proto.mtf.Mail", null, global);
    goog.exportSymbol("proto.mtf.MailData", null, global);
    goog.exportSymbol("proto.mtf.MainData", null, global);
    goog.exportSymbol("proto.mtf.MainData.Main", null, global);
    goog.exportSymbol("proto.mtf.MaintainData", null, global);
    goog.exportSymbol("proto.mtf.Mission", null, global);
    goog.exportSymbol("proto.mtf.Mission.Info", null, global);
    goog.exportSymbol("proto.mtf.Mission.Item", null, global);
    goog.exportSymbol("proto.mtf.MissionRequest", null, global);
    goog.exportSymbol("proto.mtf.MissionUpdate", null, global);
    goog.exportSymbol("proto.mtf.MissionUpdate.Info", null, global);
    goog.exportSymbol("proto.mtf.NotifySceneTransition", null, global);
    goog.exportSymbol("proto.mtf.PathData", null, global);
    goog.exportSymbol("proto.mtf.PathData.Point", null, global);
    goog.exportSymbol("proto.mtf.PathData.Spline", null, global);
    goog.exportSymbol("proto.mtf.PathData.WalkPath", null, global);
    goog.exportSymbol("proto.mtf.PlayBgAnimEvent", null, global);
    goog.exportSymbol("proto.mtf.PlayerInfo", null, global);
    goog.exportSymbol("proto.mtf.PlayerInfo.Skin", null, global);
    goog.exportSymbol("proto.mtf.Point", null, global);
    goog.exportSymbol("proto.mtf.ProfileData", null, global);
    goog.exportSymbol("proto.mtf.Promotion", null, global);
    goog.exportSymbol("proto.mtf.PromotionV2", null, global);
    goog.exportSymbol("proto.mtf.PromotionV2.Info", null, global);
    goog.exportSymbol("proto.mtf.RedeemAck", null, global);
    goog.exportSymbol("proto.mtf.RedeemRequest", null, global);
    goog.exportSymbol("proto.mtf.Reward", null, global);
    goog.exportSymbol("proto.mtf.Rewardv2", null, global);
    goog.exportSymbol("proto.mtf.Rewardv2.ExpTable", null, global);
    goog.exportSymbol("proto.mtf.Rewardv2.Level", null, global);
    goog.exportSymbol("proto.mtf.Rewardv2.Week", null, global);
    goog.exportSymbol("proto.mtf.RoomData", null, global);
    goog.exportSymbol("proto.mtf.RoomType", null, global);
    goog.exportSymbol("proto.mtf.SceneInfo", null, global);
    goog.exportSymbol("proto.mtf.ScriptData", null, global);
    goog.exportSymbol("proto.mtf.ScriptV2", null, global);
    goog.exportSymbol("proto.mtf.ScriptV2.GroupData", null, global);
    goog.exportSymbol("proto.mtf.ScriptV2.GroupData.Fish", null, global);
    goog.exportSymbol("proto.mtf.ScriptV2.MainData", null, global);
    goog.exportSymbol("proto.mtf.ScriptV2.MainData.Sub", null, global);
    goog.exportSymbol("proto.mtf.ScriptV2.PathData", null, global);
    goog.exportSymbol("proto.mtf.ScriptV2.PathData.Point", null, global);
    goog.exportSymbol("proto.mtf.ScriptV2.RandomData", null, global);
    goog.exportSymbol("proto.mtf.ScriptV2.RandomData.Random", null, global);
    goog.exportSymbol("proto.mtf.ServerToUser", null, global);
    goog.exportSymbol("proto.mtf.SetCoin", null, global);
    goog.exportSymbol("proto.mtf.ShakeEvent", null, global);
    goog.exportSymbol("proto.mtf.ShootAckData", null, global);
    goog.exportSymbol("proto.mtf.ShootNotifyData", null, global);
    goog.exportSymbol("proto.mtf.ShootReqData", null, global);
    goog.exportSymbol("proto.mtf.ShootResult", null, global);
    goog.exportSymbol("proto.mtf.SkinChangeAck", null, global);
    goog.exportSymbol("proto.mtf.SkinChangeReq", null, global);
    goog.exportSymbol("proto.mtf.SkinSkillAck", null, global);
    goog.exportSymbol("proto.mtf.SkinSkillReq", null, global);
    goog.exportSymbol("proto.mtf.SpecialBossNotifyEvent", null, global);
    goog.exportSymbol("proto.mtf.SubData", null, global);
    goog.exportSymbol("proto.mtf.SubData.Group", null, global);
    goog.exportSymbol("proto.mtf.SubPathway", null, global);
    goog.exportSymbol("proto.mtf.SwitchBGEvent", null, global);
    goog.exportSymbol("proto.mtf.SwitchBgMusicEvent", null, global);
    goog.exportSymbol("proto.mtf.TableInfoAck", null, global);
    goog.exportSymbol("proto.mtf.TableInfoResult", null, global);
    goog.exportSymbol("proto.mtf.TimelineAdd", null, global);
    goog.exportSymbol("proto.mtf.TimelineEvent", null, global);
    goog.exportSymbol("proto.mtf.TimelineEvent.ParamCase", null, global);
    goog.exportSymbol("proto.mtf.TimelineEventParam", null, global);
    goog.exportSymbol("proto.mtf.TimelineEventParam.ParamCase", null, global);
    goog.exportSymbol("proto.mtf.TimelineNotify2", null, global);
    goog.exportSymbol("proto.mtf.TimelinePause", null, global);
    goog.exportSymbol("proto.mtf.Token", null, global);
    goog.exportSymbol("proto.mtf.TransferAck", null, global);
    goog.exportSymbol("proto.mtf.TransferReq", null, global);
    goog.exportSymbol("proto.mtf.TreasureChestData", null, global);
    goog.exportSymbol("proto.mtf.UpdateFishOdds", null, global);
    goog.exportSymbol("proto.mtf.UserToServer", null, global);
    goog.exportSymbol("proto.mtf.Vip", null, global);
    goog.exportSymbol("proto.mtf.Vip.Treasure", null, global);
    goog.exportSymbol("proto.mtf.Vip.Treasure.Info", null, global);
    goog.exportSymbol("proto.mtf.VipExp", null, global);
    goog.exportSymbol("proto.mtf.VipSignAck", null, global);
    goog.exportSymbol("proto.mtf.VipSignReq", null, global);
    goog.exportSymbol("proto.mtf.Wallet", null, global);
    proto.mtf.LogoutAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.LogoutAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.LogoutAck.displayName = "proto.mtf.LogoutAck");
    proto.mtf.Command = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Command, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Command.displayName = "proto.mtf.Command");
    proto.mtf.LoginDataReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.LoginDataReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.LoginDataReq.displayName = "proto.mtf.LoginDataReq");
    proto.mtf.GameId = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.GameId, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.GameId.displayName = "proto.mtf.GameId");
    proto.mtf.LoginDataAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.LoginDataAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.LoginDataAck.displayName = "proto.mtf.LoginDataAck");
    proto.mtf.ProfileData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.ProfileData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ProfileData.displayName = "proto.mtf.ProfileData");
    proto.mtf.PlayerInfo = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.PlayerInfo.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.PlayerInfo, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.PlayerInfo.displayName = "proto.mtf.PlayerInfo");
    proto.mtf.PlayerInfo.Skin = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.PlayerInfo.Skin, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.PlayerInfo.Skin.displayName = "proto.mtf.PlayerInfo.Skin");
    proto.mtf.JoinTableReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.JoinTableReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.JoinTableReq.displayName = "proto.mtf.JoinTableReq");
    proto.mtf.JoinTableAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.JoinTableAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.JoinTableAck.displayName = "proto.mtf.JoinTableAck");
    proto.mtf.JoinNotification = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.JoinNotification, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.JoinNotification.displayName = "proto.mtf.JoinNotification");
    proto.mtf.LeaveNotification = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.LeaveNotification, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.LeaveNotification.displayName = "proto.mtf.LeaveNotification");
    proto.mtf.TableInfoAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.TableInfoAck.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.TableInfoAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.TableInfoAck.displayName = "proto.mtf.TableInfoAck");
    proto.mtf.Point = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Point, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Point.displayName = "proto.mtf.Point");
    proto.mtf.ShootReqData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.ShootReqData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ShootReqData.displayName = "proto.mtf.ShootReqData");
    proto.mtf.ShootAckData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.ShootAckData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.ShootAckData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ShootAckData.displayName = "proto.mtf.ShootAckData");
    proto.mtf.ShootNotifyData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.ShootNotifyData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ShootNotifyData.displayName = "proto.mtf.ShootNotifyData");
    proto.mtf.CannonNotifyData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.CannonNotifyData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.CannonNotifyData.displayName = "proto.mtf.CannonNotifyData");
    proto.mtf.DrillFireNotifyData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.DrillFireNotifyData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DrillFireNotifyData.displayName = "proto.mtf.DrillFireNotifyData");
    proto.mtf.GunSettingData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.GunSettingData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.GunSettingData.displayName = "proto.mtf.GunSettingData");
    proto.mtf.LockFishData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.LockFishData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.LockFishData.displayName = "proto.mtf.LockFishData");
    proto.mtf.HitReqData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.HitReqData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.HitReqData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.HitReqData.displayName = "proto.mtf.HitReqData");
    proto.mtf.SceneInfo = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.SceneInfo, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.SceneInfo.displayName = "proto.mtf.SceneInfo");
    proto.mtf.CreateFishGroupData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.CreateFishGroupData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.CreateFishGroupData.displayName = "proto.mtf.CreateFishGroupData");
    proto.mtf.NotifySceneTransition = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.NotifySceneTransition, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.NotifySceneTransition.displayName = "proto.mtf.NotifySceneTransition");
    proto.mtf.CreateFishAckData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.CreateFishAckData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.CreateFishAckData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.CreateFishAckData.displayName = "proto.mtf.CreateFishAckData");
    proto.mtf.CreateFishAckData.Fish = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.CreateFishAckData.Fish.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.CreateFishAckData.Fish, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.CreateFishAckData.Fish.displayName = "proto.mtf.CreateFishAckData.Fish");
    proto.mtf.CreateFishAckData.CreateParams = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.CreateFishAckData.CreateParams, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.CreateFishAckData.CreateParams.displayName = "proto.mtf.CreateFishAckData.CreateParams");
    proto.mtf.SubPathway = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.SubPathway, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.SubPathway.displayName = "proto.mtf.SubPathway");
    proto.mtf.HitAckData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.HitAckData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.HitAckData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.HitAckData.displayName = "proto.mtf.HitAckData");
    proto.mtf.HitAckData.Fish = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.HitAckData.Fish, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.HitAckData.Fish.displayName = "proto.mtf.HitAckData.Fish");
    proto.mtf.HitSpecialAckData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.HitSpecialAckData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.HitSpecialAckData.displayName = "proto.mtf.HitSpecialAckData");
    proto.mtf.HitSpecialStartReqData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.HitSpecialStartReqData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.HitSpecialStartReqData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.HitSpecialStartReqData.displayName = "proto.mtf.HitSpecialStartReqData");
    proto.mtf.HitSpeicalStartData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.HitSpeicalStartData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.HitSpeicalStartData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.HitSpeicalStartData.displayName = "proto.mtf.HitSpeicalStartData");
    proto.mtf.HitSpecialEndData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.HitSpecialEndData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.HitSpecialEndData.displayName = "proto.mtf.HitSpecialEndData");
    proto.mtf.AddCoin = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.AddCoin, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.AddCoin.displayName = "proto.mtf.AddCoin");
    proto.mtf.SetCoin = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.SetCoin, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.SetCoin.displayName = "proto.mtf.SetCoin");
    proto.mtf.Token = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Token, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Token.displayName = "proto.mtf.Token");
    proto.mtf.HitSpeical4StartData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.HitSpeical4StartData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.HitSpeical4StartData.displayName = "proto.mtf.HitSpeical4StartData");
    proto.mtf.BroadcastData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.BroadcastData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.BroadcastData.displayName = "proto.mtf.BroadcastData");
    proto.mtf.TreasureChestData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.TreasureChestData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.TreasureChestData.displayName = "proto.mtf.TreasureChestData");
    proto.mtf.HitMeteorStartReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.HitMeteorStartReq.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.HitMeteorStartReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.HitMeteorStartReq.displayName = "proto.mtf.HitMeteorStartReq");
    proto.mtf.HitMeteorStartAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.HitMeteorStartAck.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.HitMeteorStartAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.HitMeteorStartAck.displayName = "proto.mtf.HitMeteorStartAck");
    proto.mtf.Vip = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Vip, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Vip.displayName = "proto.mtf.Vip");
    proto.mtf.Vip.Treasure = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Vip.Treasure.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Vip.Treasure, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Vip.Treasure.displayName = "proto.mtf.Vip.Treasure");
    proto.mtf.Vip.Treasure.Info = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Vip.Treasure.Info, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Vip.Treasure.Info.displayName = "proto.mtf.Vip.Treasure.Info");
    proto.mtf.Promotion = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Promotion.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Promotion, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Promotion.displayName = "proto.mtf.Promotion");
    proto.mtf.PromotionV2 = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.PromotionV2.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.PromotionV2, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.PromotionV2.displayName = "proto.mtf.PromotionV2");
    proto.mtf.PromotionV2.Info = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.PromotionV2.Info.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.PromotionV2.Info, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.PromotionV2.Info.displayName = "proto.mtf.PromotionV2.Info");
    proto.mtf.Reward = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Reward.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Reward, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Reward.displayName = "proto.mtf.Reward");
    proto.mtf.Rewardv2 = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Rewardv2.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Rewardv2, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Rewardv2.displayName = "proto.mtf.Rewardv2");
    proto.mtf.Rewardv2.ExpTable = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Rewardv2.ExpTable, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Rewardv2.ExpTable.displayName = "proto.mtf.Rewardv2.ExpTable");
    proto.mtf.Rewardv2.Level = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Rewardv2.Level.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Rewardv2.Level, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Rewardv2.Level.displayName = "proto.mtf.Rewardv2.Level");
    proto.mtf.Rewardv2.Week = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Rewardv2.Week.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Rewardv2.Week, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Rewardv2.Week.displayName = "proto.mtf.Rewardv2.Week");
    proto.mtf.Wallet = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Wallet, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Wallet.displayName = "proto.mtf.Wallet");
    proto.mtf.VipExp = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.VipExp, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.VipExp.displayName = "proto.mtf.VipExp");
    proto.mtf.VipSignReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.VipSignReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.VipSignReq.displayName = "proto.mtf.VipSignReq");
    proto.mtf.VipSignAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.VipSignAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.VipSignAck.displayName = "proto.mtf.VipSignAck");
    proto.mtf.Exp = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Exp, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Exp.displayName = "proto.mtf.Exp");
    proto.mtf.LevelRewardReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.LevelRewardReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.LevelRewardReq.displayName = "proto.mtf.LevelRewardReq");
    proto.mtf.LevelRewardAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.LevelRewardAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.LevelRewardAck.displayName = "proto.mtf.LevelRewardAck");
    proto.mtf.TransferReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.TransferReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.TransferReq.displayName = "proto.mtf.TransferReq");
    proto.mtf.TransferAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.TransferAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.TransferAck.displayName = "proto.mtf.TransferAck");
    proto.mtf.Card = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Card.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Card, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Card.displayName = "proto.mtf.Card");
    proto.mtf.Card.Data = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Card.Data, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Card.Data.displayName = "proto.mtf.Card.Data");
    proto.mtf.Card.Message = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Card.Message, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Card.Message.displayName = "proto.mtf.Card.Message");
    proto.mtf.Card.ChipData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Card.ChipData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Card.ChipData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Card.ChipData.displayName = "proto.mtf.Card.ChipData");
    proto.mtf.Card.ChipData.Chip = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Card.ChipData.Chip, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Card.ChipData.Chip.displayName = "proto.mtf.Card.ChipData.Chip");
    proto.mtf.Card.ChipData.Formula = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Card.ChipData.Formula.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Card.ChipData.Formula, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Card.ChipData.Formula.displayName = "proto.mtf.Card.ChipData.Formula");
    proto.mtf.RedeemRequest = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.RedeemRequest, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.RedeemRequest.displayName = "proto.mtf.RedeemRequest");
    proto.mtf.RedeemAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.RedeemAck.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.RedeemAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.RedeemAck.displayName = "proto.mtf.RedeemAck");
    proto.mtf.CardUseReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.CardUseReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.CardUseReq.displayName = "proto.mtf.CardUseReq");
    proto.mtf.CardUseAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.CardUseAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.CardUseAck.displayName = "proto.mtf.CardUseAck");
    proto.mtf.TimelineNotify2 = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.TimelineNotify2.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.TimelineNotify2, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.TimelineNotify2.displayName = "proto.mtf.TimelineNotify2");
    proto.mtf.TimelineAdd = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.TimelineAdd, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.TimelineAdd.displayName = "proto.mtf.TimelineAdd");
    proto.mtf.TimelinePause = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.TimelinePause, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.TimelinePause.displayName = "proto.mtf.TimelinePause");
    proto.mtf.LoginData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.LoginData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.LoginData.displayName = "proto.mtf.LoginData");
    proto.mtf.LoginData.Browser = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.LoginData.Browser, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.LoginData.Browser.displayName = "proto.mtf.LoginData.Browser");
    proto.mtf.Favorite = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Favorite.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Favorite, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Favorite.displayName = "proto.mtf.Favorite");
    proto.mtf.Favorite.Info = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Favorite.Info, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Favorite.Info.displayName = "proto.mtf.Favorite.Info");
    proto.mtf.ItemRequest = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.ItemRequest, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ItemRequest.displayName = "proto.mtf.ItemRequest");
    proto.mtf.ItemUseRequest = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.ItemUseRequest, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ItemUseRequest.displayName = "proto.mtf.ItemUseRequest");
    proto.mtf.ItemUseAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.ItemUseAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ItemUseAck.displayName = "proto.mtf.ItemUseAck");
    proto.mtf.Item = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Item.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Item, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Item.displayName = "proto.mtf.Item");
    proto.mtf.Item.Info = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Item.Info, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Item.Info.displayName = "proto.mtf.Item.Info");
    proto.mtf.Item.Mail = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Item.Mail, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Item.Mail.displayName = "proto.mtf.Item.Mail");
    proto.mtf.MissionRequest = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.MissionRequest, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.MissionRequest.displayName = "proto.mtf.MissionRequest");
    proto.mtf.Mission = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.Mission.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.Mission, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Mission.displayName = "proto.mtf.Mission");
    proto.mtf.Mission.Info = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Mission.Info, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Mission.Info.displayName = "proto.mtf.Mission.Info");
    proto.mtf.Mission.Item = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Mission.Item, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Mission.Item.displayName = "proto.mtf.Mission.Item");
    proto.mtf.MissionUpdate = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.MissionUpdate.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.MissionUpdate, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.MissionUpdate.displayName = "proto.mtf.MissionUpdate");
    proto.mtf.MissionUpdate.Info = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.MissionUpdate.Info, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.MissionUpdate.Info.displayName = "proto.mtf.MissionUpdate.Info");
    proto.mtf.MailData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.MailData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.MailData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.MailData.displayName = "proto.mtf.MailData");
    proto.mtf.Mail = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Mail, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Mail.displayName = "proto.mtf.Mail");
    proto.mtf.Jp = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Jp, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Jp.displayName = "proto.mtf.Jp");
    proto.mtf.JpData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.JpData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.JpData.displayName = "proto.mtf.JpData");
    proto.mtf.JpBroadcastData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.JpBroadcastData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.JpBroadcastData.displayName = "proto.mtf.JpBroadcastData");
    proto.mtf.JpDetail = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.JpDetail, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.JpDetail.displayName = "proto.mtf.JpDetail");
    proto.mtf.JpDetailAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.JpDetailAck.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.JpDetailAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.JpDetailAck.displayName = "proto.mtf.JpDetailAck");
    proto.mtf.BombReqData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.BombReqData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.BombReqData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.BombReqData.displayName = "proto.mtf.BombReqData");
    proto.mtf.BombAckData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.BombAckData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.BombAckData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.BombAckData.displayName = "proto.mtf.BombAckData");
    proto.mtf.BombDeadFish = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.BombDeadFish, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.BombDeadFish.displayName = "proto.mtf.BombDeadFish");
    proto.mtf.MaintainData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.MaintainData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.MaintainData.displayName = "proto.mtf.MaintainData");
    proto.mtf.SkinChangeReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.SkinChangeReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.SkinChangeReq.displayName = "proto.mtf.SkinChangeReq");
    proto.mtf.SkinChangeAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.SkinChangeAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.SkinChangeAck.displayName = "proto.mtf.SkinChangeAck");
    proto.mtf.SkinSkillReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.SkinSkillReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.SkinSkillReq.displayName = "proto.mtf.SkinSkillReq");
    proto.mtf.SkinSkillAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.SkinSkillAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.SkinSkillAck.displayName = "proto.mtf.SkinSkillAck");
    proto.mtf.AgentConfig = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.AgentConfig.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.AgentConfig, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.AgentConfig.displayName = "proto.mtf.AgentConfig");
    proto.mtf.RoomData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.RoomData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.RoomData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.RoomData.displayName = "proto.mtf.RoomData");
    proto.mtf.Banner = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.Banner, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.Banner.displayName = "proto.mtf.Banner");
    proto.mtf.DebrisActivity = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.DebrisActivity.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.DebrisActivity, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DebrisActivity.displayName = "proto.mtf.DebrisActivity");
    proto.mtf.DebrisActivity.Formula = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.DebrisActivity.Formula.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.DebrisActivity.Formula, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DebrisActivity.Formula.displayName = "proto.mtf.DebrisActivity.Formula");
    proto.mtf.DebrisActivity.Debris = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.DebrisActivity.Debris, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DebrisActivity.Debris.displayName = "proto.mtf.DebrisActivity.Debris");
    proto.mtf.DebrisInfoReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.DebrisInfoReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DebrisInfoReq.displayName = "proto.mtf.DebrisInfoReq");
    proto.mtf.DebrisInfoAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.DebrisInfoAck.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.DebrisInfoAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DebrisInfoAck.displayName = "proto.mtf.DebrisInfoAck");
    proto.mtf.DebrisInfoAck.Formula = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.DebrisInfoAck.Formula, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DebrisInfoAck.Formula.displayName = "proto.mtf.DebrisInfoAck.Formula");
    proto.mtf.DebrisInfoAck.Debris = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.DebrisInfoAck.Debris, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DebrisInfoAck.Debris.displayName = "proto.mtf.DebrisInfoAck.Debris");
    proto.mtf.DebrisGet = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.DebrisGet, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DebrisGet.displayName = "proto.mtf.DebrisGet");
    proto.mtf.DebrisExchangeReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.DebrisExchangeReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DebrisExchangeReq.displayName = "proto.mtf.DebrisExchangeReq");
    proto.mtf.DebrisExchangeAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.DebrisExchangeAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DebrisExchangeAck.displayName = "proto.mtf.DebrisExchangeAck");
    proto.mtf.FishData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.FishData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.FishData.displayName = "proto.mtf.FishData");
    proto.mtf.FishData.Follower = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.FishData.Follower, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.FishData.Follower.displayName = "proto.mtf.FishData.Follower");
    proto.mtf.GroupData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.GroupData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.GroupData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.GroupData.displayName = "proto.mtf.GroupData");
    proto.mtf.SubData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.SubData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.SubData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.SubData.displayName = "proto.mtf.SubData");
    proto.mtf.SubData.Group = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.SubData.Group, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.SubData.Group.displayName = "proto.mtf.SubData.Group");
    proto.mtf.MainData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.MainData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.MainData.displayName = "proto.mtf.MainData");
    proto.mtf.MainData.Main = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.MainData.Main.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.MainData.Main, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.MainData.Main.displayName = "proto.mtf.MainData.Main");
    proto.mtf.PathData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.PathData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.PathData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.PathData.displayName = "proto.mtf.PathData");
    proto.mtf.PathData.WalkPath = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.PathData.WalkPath, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.PathData.WalkPath.displayName = "proto.mtf.PathData.WalkPath");
    proto.mtf.PathData.Spline = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.PathData.Spline.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.PathData.Spline, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.PathData.Spline.displayName = "proto.mtf.PathData.Spline");
    proto.mtf.PathData.Point = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.PathData.Point, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.PathData.Point.displayName = "proto.mtf.PathData.Point");
    proto.mtf.TimelineEvent = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, proto.mtf.TimelineEvent.oneofGroups_);
    };
    goog.inherits(proto.mtf.TimelineEvent, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.TimelineEvent.displayName = "proto.mtf.TimelineEvent");
    proto.mtf.TimelineEventParam = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, proto.mtf.TimelineEventParam.oneofGroups_);
    };
    goog.inherits(proto.mtf.TimelineEventParam, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.TimelineEventParam.displayName = "proto.mtf.TimelineEventParam");
    proto.mtf.SwitchBGEvent = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.SwitchBGEvent, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.SwitchBGEvent.displayName = "proto.mtf.SwitchBGEvent");
    proto.mtf.SwitchBgMusicEvent = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.SwitchBgMusicEvent, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.SwitchBgMusicEvent.displayName = "proto.mtf.SwitchBgMusicEvent");
    proto.mtf.ShakeEvent = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.ShakeEvent, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ShakeEvent.displayName = "proto.mtf.ShakeEvent");
    proto.mtf.BossWarningEvent = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.BossWarningEvent, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.BossWarningEvent.displayName = "proto.mtf.BossWarningEvent");
    proto.mtf.PlayBgAnimEvent = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.PlayBgAnimEvent, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.PlayBgAnimEvent.displayName = "proto.mtf.PlayBgAnimEvent");
    proto.mtf.SpecialBossNotifyEvent = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.SpecialBossNotifyEvent, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.SpecialBossNotifyEvent.displayName = "proto.mtf.SpecialBossNotifyEvent");
    proto.mtf.ScriptData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.ScriptData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.ScriptData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ScriptData.displayName = "proto.mtf.ScriptData");
    proto.mtf.ScriptV2 = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.ScriptV2.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.ScriptV2, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ScriptV2.displayName = "proto.mtf.ScriptV2");
    proto.mtf.ScriptV2.MainData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.ScriptV2.MainData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.ScriptV2.MainData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ScriptV2.MainData.displayName = "proto.mtf.ScriptV2.MainData");
    proto.mtf.ScriptV2.MainData.Sub = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.ScriptV2.MainData.Sub.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.ScriptV2.MainData.Sub, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ScriptV2.MainData.Sub.displayName = "proto.mtf.ScriptV2.MainData.Sub");
    proto.mtf.ScriptV2.RandomData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.ScriptV2.RandomData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.ScriptV2.RandomData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ScriptV2.RandomData.displayName = "proto.mtf.ScriptV2.RandomData");
    proto.mtf.ScriptV2.RandomData.Random = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.ScriptV2.RandomData.Random, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ScriptV2.RandomData.Random.displayName = "proto.mtf.ScriptV2.RandomData.Random");
    proto.mtf.ScriptV2.GroupData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.ScriptV2.GroupData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.ScriptV2.GroupData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ScriptV2.GroupData.displayName = "proto.mtf.ScriptV2.GroupData");
    proto.mtf.ScriptV2.GroupData.Fish = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.ScriptV2.GroupData.Fish, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ScriptV2.GroupData.Fish.displayName = "proto.mtf.ScriptV2.GroupData.Fish");
    proto.mtf.ScriptV2.PathData = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.ScriptV2.PathData.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.ScriptV2.PathData, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ScriptV2.PathData.displayName = "proto.mtf.ScriptV2.PathData");
    proto.mtf.ScriptV2.PathData.Point = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.ScriptV2.PathData.Point, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.ScriptV2.PathData.Point.displayName = "proto.mtf.ScriptV2.PathData.Point");
    proto.mtf.FreezeAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.FreezeAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.FreezeAck.displayName = "proto.mtf.FreezeAck");
    proto.mtf.EatFishReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.EatFishReq.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.EatFishReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.EatFishReq.displayName = "proto.mtf.EatFishReq");
    proto.mtf.EatFishAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.EatFishAck.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.EatFishAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.EatFishAck.displayName = "proto.mtf.EatFishAck");
    proto.mtf.UpdateFishOdds = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.UpdateFishOdds, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.UpdateFishOdds.displayName = "proto.mtf.UpdateFishOdds");
    proto.mtf.DebugReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.DebugReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DebugReq.displayName = "proto.mtf.DebugReq");
    proto.mtf.DebugAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.mtf.DebugAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.DebugAck.displayName = "proto.mtf.DebugAck");
    proto.mtf.FishDeathEffectNotification = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.mtf.FishDeathEffectNotification.repeatedFields_, null);
    };
    goog.inherits(proto.mtf.FishDeathEffectNotification, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.mtf.FishDeathEffectNotification.displayName = "proto.mtf.FishDeathEffectNotification");
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.LogoutAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.LogoutAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.LogoutAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          type: jspb.Message.getFieldWithDefault(msg, 1, 0),
          code: jspb.Message.getFieldWithDefault(msg, 2, 0),
          message: jspb.Message.getFieldWithDefault(msg, 3, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.LogoutAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.LogoutAck();
      return proto.mtf.LogoutAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.LogoutAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readInt32();
          msg.setType(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setCode(value);
          break;

         case 3:
          var value = reader.readString();
          msg.setMessage(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.LogoutAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.LogoutAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.LogoutAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getType();
      0 !== f && writer.writeInt32(1, f);
      f = message.getCode();
      0 !== f && writer.writeUint32(2, f);
      f = message.getMessage();
      f.length > 0 && writer.writeString(3, f);
    };
    proto.mtf.LogoutAck.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.LogoutAck.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.LogoutAck.prototype.getCode = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.LogoutAck.prototype.setCode = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.LogoutAck.prototype.getMessage = function() {
      return jspb.Message.getFieldWithDefault(this, 3, "");
    };
    proto.mtf.LogoutAck.prototype.setMessage = function(value) {
      return jspb.Message.setProto3StringField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Command.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Command.toObject(opt_includeInstance, this);
      };
      proto.mtf.Command.toObject = function(includeInstance, msg) {
        var f, obj = {
          type: jspb.Message.getFieldWithDefault(msg, 1, 0),
          data: msg.getData_asB64()
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Command.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Command();
      return proto.mtf.Command.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Command.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setType(value);
          break;

         case 2:
          var value = reader.readBytes();
          msg.setData(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Command.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Command.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Command.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getType();
      0 !== f && writer.writeUint32(1, f);
      f = message.getData_asU8();
      f.length > 0 && writer.writeBytes(2, f);
    };
    proto.mtf.Command.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Command.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Command.prototype.getData = function() {
      return jspb.Message.getFieldWithDefault(this, 2, "");
    };
    proto.mtf.Command.prototype.getData_asB64 = function() {
      return jspb.Message.bytesAsB64(this.getData());
    };
    proto.mtf.Command.prototype.getData_asU8 = function() {
      return jspb.Message.bytesAsU8(this.getData());
    };
    proto.mtf.Command.prototype.setData = function(value) {
      return jspb.Message.setProto3BytesField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.LoginDataReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.LoginDataReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.LoginDataReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          token: jspb.Message.getFieldWithDefault(msg, 1, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.LoginDataReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.LoginDataReq();
      return proto.mtf.LoginDataReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.LoginDataReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setToken(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.LoginDataReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.LoginDataReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.LoginDataReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getToken();
      f.length > 0 && writer.writeString(1, f);
    };
    proto.mtf.LoginDataReq.prototype.getToken = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.LoginDataReq.prototype.setToken = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.GameId.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.GameId.toObject(opt_includeInstance, this);
      };
      proto.mtf.GameId.toObject = function(includeInstance, msg) {
        var f, obj = {
          game: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.GameId.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.GameId();
      return proto.mtf.GameId.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.GameId.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setGame(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.GameId.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.GameId.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.GameId.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getGame();
      0 !== f && writer.writeUint32(1, f);
    };
    proto.mtf.GameId.prototype.getGame = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.GameId.prototype.setGame = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.LoginDataAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.LoginDataAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.LoginDataAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          uid: jspb.Message.getFieldWithDefault(msg, 1, 0),
          result: jspb.Message.getFieldWithDefault(msg, 2, 0),
          player: (f = msg.getPlayer()) && proto.mtf.PlayerInfo.toObject(includeInstance, f),
          version: jspb.Message.getFieldWithDefault(msg, 4, 0),
          reward: (f = msg.getReward()) && proto.mtf.Rewardv2.toObject(includeInstance, f),
          wallet: (f = msg.getWallet()) && proto.mtf.Wallet.toObject(includeInstance, f)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.LoginDataAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.LoginDataAck();
      return proto.mtf.LoginDataAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.LoginDataAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setUid(value);
          break;

         case 2:
          var value = reader.readEnum();
          msg.setResult(value);
          break;

         case 3:
          var value = new proto.mtf.PlayerInfo();
          reader.readMessage(value, proto.mtf.PlayerInfo.deserializeBinaryFromReader);
          msg.setPlayer(value);
          break;

         case 4:
          var value = reader.readUint64();
          msg.setVersion(value);
          break;

         case 21:
          var value = new proto.mtf.Rewardv2();
          reader.readMessage(value, proto.mtf.Rewardv2.deserializeBinaryFromReader);
          msg.setReward(value);
          break;

         case 22:
          var value = new proto.mtf.Wallet();
          reader.readMessage(value, proto.mtf.Wallet.deserializeBinaryFromReader);
          msg.setWallet(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.LoginDataAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.LoginDataAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.LoginDataAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getUid();
      0 !== f && writer.writeUint32(1, f);
      f = message.getResult();
      0 !== f && writer.writeEnum(2, f);
      f = message.getPlayer();
      null != f && writer.writeMessage(3, f, proto.mtf.PlayerInfo.serializeBinaryToWriter);
      f = message.getVersion();
      0 !== f && writer.writeUint64(4, f);
      f = message.getReward();
      null != f && writer.writeMessage(21, f, proto.mtf.Rewardv2.serializeBinaryToWriter);
      f = message.getWallet();
      null != f && writer.writeMessage(22, f, proto.mtf.Wallet.serializeBinaryToWriter);
    };
    proto.mtf.LoginDataAck.prototype.getUid = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.LoginDataAck.prototype.setUid = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.LoginDataAck.prototype.getResult = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.LoginDataAck.prototype.setResult = function(value) {
      return jspb.Message.setProto3EnumField(this, 2, value);
    };
    proto.mtf.LoginDataAck.prototype.getPlayer = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.PlayerInfo, 3);
    };
    proto.mtf.LoginDataAck.prototype.setPlayer = function(value) {
      return jspb.Message.setWrapperField(this, 3, value);
    };
    proto.mtf.LoginDataAck.prototype.clearPlayer = function() {
      return this.setPlayer(void 0);
    };
    proto.mtf.LoginDataAck.prototype.hasPlayer = function() {
      return null != jspb.Message.getField(this, 3);
    };
    proto.mtf.LoginDataAck.prototype.getVersion = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.LoginDataAck.prototype.setVersion = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.LoginDataAck.prototype.getReward = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.Rewardv2, 21);
    };
    proto.mtf.LoginDataAck.prototype.setReward = function(value) {
      return jspb.Message.setWrapperField(this, 21, value);
    };
    proto.mtf.LoginDataAck.prototype.clearReward = function() {
      return this.setReward(void 0);
    };
    proto.mtf.LoginDataAck.prototype.hasReward = function() {
      return null != jspb.Message.getField(this, 21);
    };
    proto.mtf.LoginDataAck.prototype.getWallet = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.Wallet, 22);
    };
    proto.mtf.LoginDataAck.prototype.setWallet = function(value) {
      return jspb.Message.setWrapperField(this, 22, value);
    };
    proto.mtf.LoginDataAck.prototype.clearWallet = function() {
      return this.setWallet(void 0);
    };
    proto.mtf.LoginDataAck.prototype.hasWallet = function() {
      return null != jspb.Message.getField(this, 22);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ProfileData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ProfileData.toObject(opt_includeInstance, this);
      };
      proto.mtf.ProfileData.toObject = function(includeInstance, msg) {
        var f, obj = {
          uid: jspb.Message.getFieldWithDefault(msg, 1, 0),
          name: jspb.Message.getFieldWithDefault(msg, 2, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ProfileData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ProfileData();
      return proto.mtf.ProfileData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ProfileData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setUid(value);
          break;

         case 2:
          var value = reader.readString();
          msg.setName(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ProfileData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ProfileData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ProfileData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getUid();
      0 !== f && writer.writeUint32(1, f);
      f = message.getName();
      f.length > 0 && writer.writeString(2, f);
    };
    proto.mtf.ProfileData.prototype.getUid = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ProfileData.prototype.setUid = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.ProfileData.prototype.getName = function() {
      return jspb.Message.getFieldWithDefault(this, 2, "");
    };
    proto.mtf.ProfileData.prototype.setName = function(value) {
      return jspb.Message.setProto3StringField(this, 2, value);
    };
    proto.mtf.PlayerInfo.repeatedFields_ = [ 8 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.PlayerInfo.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.PlayerInfo.toObject(opt_includeInstance, this);
      };
      proto.mtf.PlayerInfo.toObject = function(includeInstance, msg) {
        var f, obj = {
          uid: jspb.Message.getFieldWithDefault(msg, 1, 0),
          name: jspb.Message.getFieldWithDefault(msg, 2, ""),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          seat: jspb.Message.getFieldWithDefault(msg, 4, 0),
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0),
          skin: jspb.Message.getFieldWithDefault(msg, 7, 0),
          skinlistList: jspb.Message.toObjectList(msg.getSkinlistList(), proto.mtf.PlayerInfo.Skin.toObject, includeInstance),
          vip: jspb.Message.getFieldWithDefault(msg, 9, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.PlayerInfo.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.PlayerInfo();
      return proto.mtf.PlayerInfo.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.PlayerInfo.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setUid(value);
          break;

         case 2:
          var value = reader.readString();
          msg.setName(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 5:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 7:
          var value = reader.readUint32();
          msg.setSkin(value);
          break;

         case 8:
          var value = new proto.mtf.PlayerInfo.Skin();
          reader.readMessage(value, proto.mtf.PlayerInfo.Skin.deserializeBinaryFromReader);
          msg.addSkinlist(value);
          break;

         case 9:
          var value = reader.readUint32();
          msg.setVip(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.PlayerInfo.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.PlayerInfo.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.PlayerInfo.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getUid();
      0 !== f && writer.writeUint32(1, f);
      f = message.getName();
      f.length > 0 && writer.writeString(2, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(3, f);
      f = message.getSeat();
      0 !== f && writer.writeUint32(4, f);
      f = message.getBet();
      0 !== f && writer.writeDouble(5, f);
      f = message.getSkin();
      0 !== f && writer.writeUint32(7, f);
      f = message.getSkinlistList();
      f.length > 0 && writer.writeRepeatedMessage(8, f, proto.mtf.PlayerInfo.Skin.serializeBinaryToWriter);
      f = message.getVip();
      0 !== f && writer.writeUint32(9, f);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.PlayerInfo.Skin.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.PlayerInfo.Skin.toObject(opt_includeInstance, this);
      };
      proto.mtf.PlayerInfo.Skin.toObject = function(includeInstance, msg) {
        var f, obj = {
          skin: jspb.Message.getFieldWithDefault(msg, 1, 0),
          expiration: jspb.Message.getFieldWithDefault(msg, 2, 0),
          usage: jspb.Message.getFieldWithDefault(msg, 3, 0),
          limit: jspb.Message.getFieldWithDefault(msg, 4, 0),
          value1: jspb.Message.getFieldWithDefault(msg, 5, 0),
          value2: jspb.Message.getFieldWithDefault(msg, 6, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.PlayerInfo.Skin.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.PlayerInfo.Skin();
      return proto.mtf.PlayerInfo.Skin.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.PlayerInfo.Skin.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSkin(value);
          break;

         case 2:
          var value = reader.readInt64();
          msg.setExpiration(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setUsage(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setLimit(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setValue1(value);
          break;

         case 6:
          var value = reader.readUint32();
          msg.setValue2(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.PlayerInfo.Skin.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.PlayerInfo.Skin.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.PlayerInfo.Skin.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSkin();
      0 !== f && writer.writeUint32(1, f);
      f = message.getExpiration();
      0 !== f && writer.writeInt64(2, f);
      f = message.getUsage();
      0 !== f && writer.writeUint32(3, f);
      f = message.getLimit();
      0 !== f && writer.writeUint32(4, f);
      f = message.getValue1();
      0 !== f && writer.writeUint32(5, f);
      f = message.getValue2();
      0 !== f && writer.writeUint32(6, f);
    };
    proto.mtf.PlayerInfo.Skin.prototype.getSkin = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.PlayerInfo.Skin.prototype.setSkin = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.PlayerInfo.Skin.prototype.getExpiration = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.PlayerInfo.Skin.prototype.setExpiration = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.PlayerInfo.Skin.prototype.getUsage = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.PlayerInfo.Skin.prototype.setUsage = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.PlayerInfo.Skin.prototype.getLimit = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.PlayerInfo.Skin.prototype.setLimit = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.PlayerInfo.Skin.prototype.getValue1 = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.PlayerInfo.Skin.prototype.setValue1 = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.PlayerInfo.Skin.prototype.getValue2 = function() {
      return jspb.Message.getFieldWithDefault(this, 6, 0);
    };
    proto.mtf.PlayerInfo.Skin.prototype.setValue2 = function(value) {
      return jspb.Message.setProto3IntField(this, 6, value);
    };
    proto.mtf.PlayerInfo.prototype.getUid = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.PlayerInfo.prototype.setUid = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.PlayerInfo.prototype.getName = function() {
      return jspb.Message.getFieldWithDefault(this, 2, "");
    };
    proto.mtf.PlayerInfo.prototype.setName = function(value) {
      return jspb.Message.setProto3StringField(this, 2, value);
    };
    proto.mtf.PlayerInfo.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.PlayerInfo.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.PlayerInfo.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.PlayerInfo.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.PlayerInfo.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0);
    };
    proto.mtf.PlayerInfo.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 5, value);
    };
    proto.mtf.PlayerInfo.prototype.getSkin = function() {
      return jspb.Message.getFieldWithDefault(this, 7, 0);
    };
    proto.mtf.PlayerInfo.prototype.setSkin = function(value) {
      return jspb.Message.setProto3IntField(this, 7, value);
    };
    proto.mtf.PlayerInfo.prototype.getSkinlistList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.PlayerInfo.Skin, 8);
    };
    proto.mtf.PlayerInfo.prototype.setSkinlistList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 8, value);
    };
    proto.mtf.PlayerInfo.prototype.addSkinlist = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.mtf.PlayerInfo.Skin, opt_index);
    };
    proto.mtf.PlayerInfo.prototype.clearSkinlistList = function() {
      return this.setSkinlistList([]);
    };
    proto.mtf.PlayerInfo.prototype.getVip = function() {
      return jspb.Message.getFieldWithDefault(this, 9, 0);
    };
    proto.mtf.PlayerInfo.prototype.setVip = function(value) {
      return jspb.Message.setProto3IntField(this, 9, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.JoinTableReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.JoinTableReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.JoinTableReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          theme: jspb.Message.getFieldWithDefault(msg, 1, 0),
          room: jspb.Message.getFieldWithDefault(msg, 2, 0),
          currency: jspb.Message.getFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.JoinTableReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.JoinTableReq();
      return proto.mtf.JoinTableReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.JoinTableReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setTheme(value);
          break;

         case 2:
          var value = reader.readInt32();
          msg.setRoom(value);
          break;

         case 3:
          var value = reader.readInt32();
          msg.setCurrency(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.JoinTableReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.JoinTableReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.JoinTableReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getTheme();
      0 !== f && writer.writeUint32(1, f);
      f = message.getRoom();
      0 !== f && writer.writeInt32(2, f);
      f = message.getCurrency();
      0 !== f && writer.writeInt32(3, f);
    };
    proto.mtf.JoinTableReq.prototype.getTheme = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.JoinTableReq.prototype.setTheme = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.JoinTableReq.prototype.getRoom = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.JoinTableReq.prototype.setRoom = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.JoinTableReq.prototype.getCurrency = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.JoinTableReq.prototype.setCurrency = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.JoinTableAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.JoinTableAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.JoinTableAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          result: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.JoinTableAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.JoinTableAck();
      return proto.mtf.JoinTableAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.JoinTableAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readInt32();
          msg.setResult(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.JoinTableAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.JoinTableAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.JoinTableAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getResult();
      0 !== f && writer.writeInt32(1, f);
    };
    proto.mtf.JoinTableAck.prototype.getResult = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.JoinTableAck.prototype.setResult = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.JoinNotification.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.JoinNotification.toObject(opt_includeInstance, this);
      };
      proto.mtf.JoinNotification.toObject = function(includeInstance, msg) {
        var f, obj = {
          user: (f = msg.getUser()) && proto.mtf.PlayerInfo.toObject(includeInstance, f)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.JoinNotification.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.JoinNotification();
      return proto.mtf.JoinNotification.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.JoinNotification.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = new proto.mtf.PlayerInfo();
          reader.readMessage(value, proto.mtf.PlayerInfo.deserializeBinaryFromReader);
          msg.setUser(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.JoinNotification.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.JoinNotification.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.JoinNotification.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getUser();
      null != f && writer.writeMessage(1, f, proto.mtf.PlayerInfo.serializeBinaryToWriter);
    };
    proto.mtf.JoinNotification.prototype.getUser = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.PlayerInfo, 1);
    };
    proto.mtf.JoinNotification.prototype.setUser = function(value) {
      return jspb.Message.setWrapperField(this, 1, value);
    };
    proto.mtf.JoinNotification.prototype.clearUser = function() {
      return this.setUser(void 0);
    };
    proto.mtf.JoinNotification.prototype.hasUser = function() {
      return null != jspb.Message.getField(this, 1);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.LeaveNotification.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.LeaveNotification.toObject(opt_includeInstance, this);
      };
      proto.mtf.LeaveNotification.toObject = function(includeInstance, msg) {
        var f, obj = {
          uid: jspb.Message.getFieldWithDefault(msg, 1, 0),
          seat: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.LeaveNotification.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.LeaveNotification();
      return proto.mtf.LeaveNotification.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.LeaveNotification.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setUid(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.LeaveNotification.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.LeaveNotification.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.LeaveNotification.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getUid();
      0 !== f && writer.writeUint32(1, f);
      f = message.getSeat();
      0 !== f && writer.writeUint32(2, f);
    };
    proto.mtf.LeaveNotification.prototype.getUid = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.LeaveNotification.prototype.setUid = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.LeaveNotification.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.LeaveNotification.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.TableInfoAck.repeatedFields_ = [ 5 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.TableInfoAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.TableInfoAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.TableInfoAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          result: jspb.Message.getFieldWithDefault(msg, 1, 0),
          theme: jspb.Message.getFieldWithDefault(msg, 2, 0),
          no: jspb.Message.getFieldWithDefault(msg, 3, 0),
          seat: jspb.Message.getFieldWithDefault(msg, 4, 0),
          playersList: jspb.Message.toObjectList(msg.getPlayersList(), proto.mtf.PlayerInfo.toObject, includeInstance),
          session: jspb.Message.getFieldWithDefault(msg, 6, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.TableInfoAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.TableInfoAck();
      return proto.mtf.TableInfoAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.TableInfoAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readInt32();
          msg.setResult(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setTheme(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setNo(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 5:
          var value = new proto.mtf.PlayerInfo();
          reader.readMessage(value, proto.mtf.PlayerInfo.deserializeBinaryFromReader);
          msg.addPlayers(value);
          break;

         case 6:
          var value = reader.readSfixed64();
          msg.setSession(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.TableInfoAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.TableInfoAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.TableInfoAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getResult();
      0 !== f && writer.writeInt32(1, f);
      f = message.getTheme();
      0 !== f && writer.writeUint32(2, f);
      f = message.getNo();
      0 !== f && writer.writeUint32(3, f);
      f = message.getSeat();
      0 !== f && writer.writeUint32(4, f);
      f = message.getPlayersList();
      f.length > 0 && writer.writeRepeatedMessage(5, f, proto.mtf.PlayerInfo.serializeBinaryToWriter);
      f = message.getSession();
      0 !== f && writer.writeSfixed64(6, f);
    };
    proto.mtf.TableInfoAck.prototype.getResult = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.TableInfoAck.prototype.setResult = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.TableInfoAck.prototype.getTheme = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.TableInfoAck.prototype.setTheme = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.TableInfoAck.prototype.getNo = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.TableInfoAck.prototype.setNo = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.TableInfoAck.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.TableInfoAck.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.TableInfoAck.prototype.getPlayersList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.PlayerInfo, 5);
    };
    proto.mtf.TableInfoAck.prototype.setPlayersList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 5, value);
    };
    proto.mtf.TableInfoAck.prototype.addPlayers = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.mtf.PlayerInfo, opt_index);
    };
    proto.mtf.TableInfoAck.prototype.clearPlayersList = function() {
      return this.setPlayersList([]);
    };
    proto.mtf.TableInfoAck.prototype.getSession = function() {
      return jspb.Message.getFieldWithDefault(this, 6, 0);
    };
    proto.mtf.TableInfoAck.prototype.setSession = function(value) {
      return jspb.Message.setProto3IntField(this, 6, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Point.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Point.toObject(opt_includeInstance, this);
      };
      proto.mtf.Point.toObject = function(includeInstance, msg) {
        var f, obj = {
          x: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          y: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Point.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Point();
      return proto.mtf.Point.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Point.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readFloat();
          msg.setX(value);
          break;

         case 2:
          var value = reader.readFloat();
          msg.setY(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Point.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Point.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Point.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getX();
      0 !== f && writer.writeFloat(1, f);
      f = message.getY();
      0 !== f && writer.writeFloat(2, f);
    };
    proto.mtf.Point.prototype.getX = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Point.prototype.setX = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.Point.prototype.getY = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Point.prototype.setY = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ShootReqData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ShootReqData.toObject(opt_includeInstance, this);
      };
      proto.mtf.ShootReqData.toObject = function(includeInstance, msg) {
        var f, obj = {
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          point: (f = msg.getPoint()) && proto.mtf.Point.toObject(includeInstance, f),
          type: jspb.Message.getFieldWithDefault(msg, 3, 0),
          fishid: jspb.Message.getFieldWithDefault(msg, 4, 0),
          bulletid: jspb.Message.getFieldWithDefault(msg, 5, 0),
          hits: jspb.Message.getFieldWithDefault(msg, 6, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ShootReqData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ShootReqData();
      return proto.mtf.ShootReqData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ShootReqData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 2:
          var value = new proto.mtf.Point();
          reader.readMessage(value, proto.mtf.Point.deserializeBinaryFromReader);
          msg.setPoint(value);
          break;

         case 3:
          var value = reader.readInt32();
          msg.setType(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setFishid(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setBulletid(value);
          break;

         case 6:
          var value = reader.readUint32();
          msg.setHits(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ShootReqData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ShootReqData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ShootReqData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getBet();
      0 !== f && writer.writeDouble(1, f);
      f = message.getPoint();
      null != f && writer.writeMessage(2, f, proto.mtf.Point.serializeBinaryToWriter);
      f = message.getType();
      0 !== f && writer.writeInt32(3, f);
      f = message.getFishid();
      0 !== f && writer.writeUint32(4, f);
      f = message.getBulletid();
      0 !== f && writer.writeUint32(5, f);
      f = message.getHits();
      0 !== f && writer.writeUint32(6, f);
    };
    proto.mtf.ShootReqData.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ShootReqData.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.ShootReqData.prototype.getPoint = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.Point, 2);
    };
    proto.mtf.ShootReqData.prototype.setPoint = function(value) {
      return jspb.Message.setWrapperField(this, 2, value);
    };
    proto.mtf.ShootReqData.prototype.clearPoint = function() {
      return this.setPoint(void 0);
    };
    proto.mtf.ShootReqData.prototype.hasPoint = function() {
      return null != jspb.Message.getField(this, 2);
    };
    proto.mtf.ShootReqData.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.ShootReqData.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.ShootReqData.prototype.getFishid = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.ShootReqData.prototype.setFishid = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.ShootReqData.prototype.getBulletid = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.ShootReqData.prototype.setBulletid = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.ShootReqData.prototype.getHits = function() {
      return jspb.Message.getFieldWithDefault(this, 6, 0);
    };
    proto.mtf.ShootReqData.prototype.setHits = function(value) {
      return jspb.Message.setProto3IntField(this, 6, value);
    };
    proto.mtf.ShootAckData.repeatedFields_ = [ 4 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ShootAckData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ShootAckData.toObject(opt_includeInstance, this);
      };
      proto.mtf.ShootAckData.toObject = function(includeInstance, msg) {
        var f, obj = {
          result: jspb.Message.getFieldWithDefault(msg, 1, 0),
          bulletid: jspb.Message.getFieldWithDefault(msg, 2, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          dataList: jspb.Message.toObjectList(msg.getDataList(), proto.mtf.ShootReqData.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ShootAckData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ShootAckData();
      return proto.mtf.ShootAckData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ShootAckData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readInt32();
          msg.setResult(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setBulletid(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 4:
          var value = new proto.mtf.ShootReqData();
          reader.readMessage(value, proto.mtf.ShootReqData.deserializeBinaryFromReader);
          msg.addData(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ShootAckData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ShootAckData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ShootAckData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getResult();
      0 !== f && writer.writeInt32(1, f);
      f = message.getBulletid();
      0 !== f && writer.writeUint32(2, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(3, f);
      f = message.getDataList();
      f.length > 0 && writer.writeRepeatedMessage(4, f, proto.mtf.ShootReqData.serializeBinaryToWriter);
    };
    proto.mtf.ShootAckData.prototype.getResult = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ShootAckData.prototype.setResult = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.ShootAckData.prototype.getBulletid = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.ShootAckData.prototype.setBulletid = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.ShootAckData.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.ShootAckData.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.ShootAckData.prototype.getDataList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.ShootReqData, 4);
    };
    proto.mtf.ShootAckData.prototype.setDataList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 4, value);
    };
    proto.mtf.ShootAckData.prototype.addData = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.mtf.ShootReqData, opt_index);
    };
    proto.mtf.ShootAckData.prototype.clearDataList = function() {
      return this.setDataList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ShootNotifyData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ShootNotifyData.toObject(opt_includeInstance, this);
      };
      proto.mtf.ShootNotifyData.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          data: (f = msg.getData()) && proto.mtf.ShootReqData.toObject(includeInstance, f),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ShootNotifyData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ShootNotifyData();
      return proto.mtf.ShootNotifyData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ShootNotifyData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = new proto.mtf.ShootReqData();
          reader.readMessage(value, proto.mtf.ShootReqData.deserializeBinaryFromReader);
          msg.setData(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ShootNotifyData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ShootNotifyData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ShootNotifyData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getData();
      null != f && writer.writeMessage(2, f, proto.mtf.ShootReqData.serializeBinaryToWriter);
      f = message.getCoin();
      0 !== f && writer.writeDouble(3, f);
    };
    proto.mtf.ShootNotifyData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ShootNotifyData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.ShootNotifyData.prototype.getData = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.ShootReqData, 2);
    };
    proto.mtf.ShootNotifyData.prototype.setData = function(value) {
      return jspb.Message.setWrapperField(this, 2, value);
    };
    proto.mtf.ShootNotifyData.prototype.clearData = function() {
      return this.setData(void 0);
    };
    proto.mtf.ShootNotifyData.prototype.hasData = function() {
      return null != jspb.Message.getField(this, 2);
    };
    proto.mtf.ShootNotifyData.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.ShootNotifyData.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.CannonNotifyData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.CannonNotifyData.toObject(opt_includeInstance, this);
      };
      proto.mtf.CannonNotifyData.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          ison: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.CannonNotifyData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.CannonNotifyData();
      return proto.mtf.CannonNotifyData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.CannonNotifyData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = reader.readBool();
          msg.setIson(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.CannonNotifyData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.CannonNotifyData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.CannonNotifyData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getIson();
      f && writer.writeBool(2, f);
    };
    proto.mtf.CannonNotifyData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.CannonNotifyData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.CannonNotifyData.prototype.getIson = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 2, false);
    };
    proto.mtf.CannonNotifyData.prototype.setIson = function(value) {
      return jspb.Message.setProto3BooleanField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DrillFireNotifyData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DrillFireNotifyData.toObject(opt_includeInstance, this);
      };
      proto.mtf.DrillFireNotifyData.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          point: (f = msg.getPoint()) && proto.mtf.Point.toObject(includeInstance, f)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DrillFireNotifyData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DrillFireNotifyData();
      return proto.mtf.DrillFireNotifyData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DrillFireNotifyData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = new proto.mtf.Point();
          reader.readMessage(value, proto.mtf.Point.deserializeBinaryFromReader);
          msg.setPoint(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DrillFireNotifyData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DrillFireNotifyData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DrillFireNotifyData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getPoint();
      null != f && writer.writeMessage(2, f, proto.mtf.Point.serializeBinaryToWriter);
    };
    proto.mtf.DrillFireNotifyData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DrillFireNotifyData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DrillFireNotifyData.prototype.getPoint = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.Point, 2);
    };
    proto.mtf.DrillFireNotifyData.prototype.setPoint = function(value) {
      return jspb.Message.setWrapperField(this, 2, value);
    };
    proto.mtf.DrillFireNotifyData.prototype.clearPoint = function() {
      return this.setPoint(void 0);
    };
    proto.mtf.DrillFireNotifyData.prototype.hasPoint = function() {
      return null != jspb.Message.getField(this, 2);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.GunSettingData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.GunSettingData.toObject(opt_includeInstance, this);
      };
      proto.mtf.GunSettingData.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          lock: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),
          speed: jspb.Message.getBooleanFieldWithDefault(msg, 3, false)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.GunSettingData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.GunSettingData();
      return proto.mtf.GunSettingData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.GunSettingData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = reader.readBool();
          msg.setLock(value);
          break;

         case 3:
          var value = reader.readBool();
          msg.setSpeed(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.GunSettingData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.GunSettingData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.GunSettingData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getLock();
      f && writer.writeBool(2, f);
      f = message.getSpeed();
      f && writer.writeBool(3, f);
    };
    proto.mtf.GunSettingData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.GunSettingData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.GunSettingData.prototype.getLock = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 2, false);
    };
    proto.mtf.GunSettingData.prototype.setLock = function(value) {
      return jspb.Message.setProto3BooleanField(this, 2, value);
    };
    proto.mtf.GunSettingData.prototype.getSpeed = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 3, false);
    };
    proto.mtf.GunSettingData.prototype.setSpeed = function(value) {
      return jspb.Message.setProto3BooleanField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.LockFishData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.LockFishData.toObject(opt_includeInstance, this);
      };
      proto.mtf.LockFishData.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          fishtag: jspb.Message.getFieldWithDefault(msg, 2, 0),
          fishid: jspb.Message.getFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.LockFishData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.LockFishData();
      return proto.mtf.LockFishData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.LockFishData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setFishtag(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setFishid(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.LockFishData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.LockFishData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.LockFishData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getFishtag();
      0 !== f && writer.writeUint32(2, f);
      f = message.getFishid();
      0 !== f && writer.writeUint32(3, f);
    };
    proto.mtf.LockFishData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.LockFishData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.LockFishData.prototype.getFishtag = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.LockFishData.prototype.setFishtag = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.LockFishData.prototype.getFishid = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.LockFishData.prototype.setFishid = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.HitReqData.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.HitReqData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.HitReqData.toObject(opt_includeInstance, this);
      };
      proto.mtf.HitReqData.toObject = function(includeInstance, msg) {
        var f, obj = {
          bulletid: jspb.Message.getFieldWithDefault(msg, 1, 0),
          fishidList: null == (f = jspb.Message.getRepeatedField(msg, 2)) ? void 0 : f,
          amount: jspb.Message.getFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.HitReqData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.HitReqData();
      return proto.mtf.HitReqData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.HitReqData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setBulletid(value);
          break;

         case 2:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addFishid(values[i]);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setAmount(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.HitReqData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.HitReqData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.HitReqData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getBulletid();
      0 !== f && writer.writeUint32(1, f);
      f = message.getFishidList();
      f.length > 0 && writer.writePackedUint32(2, f);
      f = message.getAmount();
      0 !== f && writer.writeUint32(3, f);
    };
    proto.mtf.HitReqData.prototype.getBulletid = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.HitReqData.prototype.setBulletid = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.HitReqData.prototype.getFishidList = function() {
      return jspb.Message.getRepeatedField(this, 2);
    };
    proto.mtf.HitReqData.prototype.setFishidList = function(value) {
      return jspb.Message.setField(this, 2, value || []);
    };
    proto.mtf.HitReqData.prototype.addFishid = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
    };
    proto.mtf.HitReqData.prototype.clearFishidList = function() {
      return this.setFishidList([]);
    };
    proto.mtf.HitReqData.prototype.getAmount = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.HitReqData.prototype.setAmount = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.SceneInfo.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.SceneInfo.toObject(opt_includeInstance, this);
      };
      proto.mtf.SceneInfo.toObject = function(includeInstance, msg) {
        var f, obj = {
          serial: jspb.Message.getFieldWithDefault(msg, 1, 0),
          time: jspb.Message.getFieldWithDefault(msg, 2, 0),
          bgindex: jspb.Message.getFieldWithDefault(msg, 3, 0),
          bganim: jspb.Message.getFieldWithDefault(msg, 4, ""),
          bganimloop: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
          bgm: jspb.Message.getFieldWithDefault(msg, 6, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.SceneInfo.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.SceneInfo();
      return proto.mtf.SceneInfo.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.SceneInfo.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSerial(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setTime(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setBgindex(value);
          break;

         case 4:
          var value = reader.readString();
          msg.setBganim(value);
          break;

         case 5:
          var value = reader.readBool();
          msg.setBganimloop(value);
          break;

         case 6:
          var value = reader.readString();
          msg.setBgm(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.SceneInfo.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.SceneInfo.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.SceneInfo.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSerial();
      0 !== f && writer.writeUint32(1, f);
      f = message.getTime();
      0 !== f && writer.writeUint32(2, f);
      f = message.getBgindex();
      0 !== f && writer.writeUint32(3, f);
      f = message.getBganim();
      f.length > 0 && writer.writeString(4, f);
      f = message.getBganimloop();
      f && writer.writeBool(5, f);
      f = message.getBgm();
      f.length > 0 && writer.writeString(6, f);
    };
    proto.mtf.SceneInfo.prototype.getSerial = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.SceneInfo.prototype.setSerial = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.SceneInfo.prototype.getTime = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.SceneInfo.prototype.setTime = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.SceneInfo.prototype.getBgindex = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.SceneInfo.prototype.setBgindex = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.SceneInfo.prototype.getBganim = function() {
      return jspb.Message.getFieldWithDefault(this, 4, "");
    };
    proto.mtf.SceneInfo.prototype.setBganim = function(value) {
      return jspb.Message.setProto3StringField(this, 4, value);
    };
    proto.mtf.SceneInfo.prototype.getBganimloop = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 5, false);
    };
    proto.mtf.SceneInfo.prototype.setBganimloop = function(value) {
      return jspb.Message.setProto3BooleanField(this, 5, value);
    };
    proto.mtf.SceneInfo.prototype.getBgm = function() {
      return jspb.Message.getFieldWithDefault(this, 6, "");
    };
    proto.mtf.SceneInfo.prototype.setBgm = function(value) {
      return jspb.Message.setProto3StringField(this, 6, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.CreateFishGroupData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.CreateFishGroupData.toObject(opt_includeInstance, this);
      };
      proto.mtf.CreateFishGroupData.toObject = function(includeInstance, msg) {
        var f, obj = {
          bgindex: jspb.Message.getFieldWithDefault(msg, 1, 0),
          serial: jspb.Message.getFieldWithDefault(msg, 2, 0),
          isopen: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),
          time: jspb.Message.getFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.CreateFishGroupData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.CreateFishGroupData();
      return proto.mtf.CreateFishGroupData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.CreateFishGroupData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setBgindex(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setSerial(value);
          break;

         case 3:
          var value = reader.readBool();
          msg.setIsopen(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setTime(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.CreateFishGroupData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.CreateFishGroupData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.CreateFishGroupData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getBgindex();
      0 !== f && writer.writeUint32(1, f);
      f = message.getSerial();
      0 !== f && writer.writeUint32(2, f);
      f = message.getIsopen();
      f && writer.writeBool(3, f);
      f = message.getTime();
      0 !== f && writer.writeUint32(4, f);
    };
    proto.mtf.CreateFishGroupData.prototype.getBgindex = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.CreateFishGroupData.prototype.setBgindex = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.CreateFishGroupData.prototype.getSerial = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.CreateFishGroupData.prototype.setSerial = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.CreateFishGroupData.prototype.getIsopen = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 3, false);
    };
    proto.mtf.CreateFishGroupData.prototype.setIsopen = function(value) {
      return jspb.Message.setProto3BooleanField(this, 3, value);
    };
    proto.mtf.CreateFishGroupData.prototype.getTime = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.CreateFishGroupData.prototype.setTime = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.NotifySceneTransition.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.NotifySceneTransition.toObject(opt_includeInstance, this);
      };
      proto.mtf.NotifySceneTransition.toObject = function(includeInstance, msg) {
        var f, obj = {
          serial: jspb.Message.getFieldWithDefault(msg, 1, 0),
          time: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          showtransition: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),
          bgindex: jspb.Message.getFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.NotifySceneTransition.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.NotifySceneTransition();
      return proto.mtf.NotifySceneTransition.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.NotifySceneTransition.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSerial(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setTime(value);
          break;

         case 3:
          var value = reader.readBool();
          msg.setShowtransition(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setBgindex(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.NotifySceneTransition.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.NotifySceneTransition.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.NotifySceneTransition.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSerial();
      0 !== f && writer.writeUint32(1, f);
      f = message.getTime();
      0 !== f && writer.writeDouble(2, f);
      f = message.getShowtransition();
      f && writer.writeBool(3, f);
      f = message.getBgindex();
      0 !== f && writer.writeUint32(4, f);
    };
    proto.mtf.NotifySceneTransition.prototype.getSerial = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.NotifySceneTransition.prototype.setSerial = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.NotifySceneTransition.prototype.getTime = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.NotifySceneTransition.prototype.setTime = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.NotifySceneTransition.prototype.getShowtransition = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 3, false);
    };
    proto.mtf.NotifySceneTransition.prototype.setShowtransition = function(value) {
      return jspb.Message.setProto3BooleanField(this, 3, value);
    };
    proto.mtf.NotifySceneTransition.prototype.getBgindex = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.NotifySceneTransition.prototype.setBgindex = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.CreateFishAckData.repeatedFields_ = [ 1 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.CreateFishAckData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.CreateFishAckData.toObject(opt_includeInstance, this);
      };
      proto.mtf.CreateFishAckData.toObject = function(includeInstance, msg) {
        var f, obj = {
          listList: jspb.Message.toObjectList(msg.getListList(), proto.mtf.CreateFishAckData.Fish.toObject, includeInstance),
          serial: jspb.Message.getFieldWithDefault(msg, 2, 0),
          time: jspb.Message.getFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.CreateFishAckData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.CreateFishAckData();
      return proto.mtf.CreateFishAckData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.CreateFishAckData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = new proto.mtf.CreateFishAckData.Fish();
          reader.readMessage(value, proto.mtf.CreateFishAckData.Fish.deserializeBinaryFromReader);
          msg.addList(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setSerial(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setTime(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.CreateFishAckData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.CreateFishAckData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.CreateFishAckData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getListList();
      f.length > 0 && writer.writeRepeatedMessage(1, f, proto.mtf.CreateFishAckData.Fish.serializeBinaryToWriter);
      f = message.getSerial();
      0 !== f && writer.writeUint32(2, f);
      f = message.getTime();
      0 !== f && writer.writeUint32(3, f);
    };
    proto.mtf.CreateFishAckData.Fish.repeatedFields_ = [ 6 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.CreateFishAckData.Fish.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.CreateFishAckData.Fish.toObject(opt_includeInstance, this);
      };
      proto.mtf.CreateFishAckData.Fish.toObject = function(includeInstance, msg) {
        var f, obj = {
          fishtag: jspb.Message.getFieldWithDefault(msg, 1, 0),
          fishid: jspb.Message.getFieldWithDefault(msg, 2, 0),
          fishway: jspb.Message.getFieldWithDefault(msg, 3, ""),
          fishdelay: jspb.Message.getFieldWithDefault(msg, 4, 0),
          speed: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0),
          groupfishidList: null == (f = jspb.Message.getRepeatedField(msg, 6)) ? void 0 : f,
          odds: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0),
          roat: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0),
          starttime: jspb.Message.getFloatingPointFieldWithDefault(msg, 9, 0),
          endtime: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0),
          offsetx: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0),
          offsety: jspb.Message.getFloatingPointFieldWithDefault(msg, 12, 0),
          notremove: jspb.Message.getBooleanFieldWithDefault(msg, 13, false),
          subpath: (f = msg.getSubpath()) && proto.mtf.SubPathway.toObject(includeInstance, f),
          action: jspb.Message.getFieldWithDefault(msg, 15, ""),
          createparams: (f = msg.getCreateparams()) && proto.mtf.CreateFishAckData.CreateParams.toObject(includeInstance, f)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.CreateFishAckData.Fish.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.CreateFishAckData.Fish();
      return proto.mtf.CreateFishAckData.Fish.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.CreateFishAckData.Fish.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setFishtag(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setFishid(value);
          break;

         case 3:
          var value = reader.readString();
          msg.setFishway(value);
          break;

         case 4:
          var value = reader.readInt32();
          msg.setFishdelay(value);
          break;

         case 5:
          var value = reader.readDouble();
          msg.setSpeed(value);
          break;

         case 6:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addGroupfishid(values[i]);
          break;

         case 7:
          var value = reader.readDouble();
          msg.setOdds(value);
          break;

         case 8:
          var value = reader.readDouble();
          msg.setRoat(value);
          break;

         case 9:
          var value = reader.readDouble();
          msg.setStarttime(value);
          break;

         case 10:
          var value = reader.readDouble();
          msg.setEndtime(value);
          break;

         case 11:
          var value = reader.readDouble();
          msg.setOffsetx(value);
          break;

         case 12:
          var value = reader.readDouble();
          msg.setOffsety(value);
          break;

         case 13:
          var value = reader.readBool();
          msg.setNotremove(value);
          break;

         case 14:
          var value = new proto.mtf.SubPathway();
          reader.readMessage(value, proto.mtf.SubPathway.deserializeBinaryFromReader);
          msg.setSubpath(value);
          break;

         case 15:
          var value = reader.readString();
          msg.setAction(value);
          break;

         case 16:
          var value = new proto.mtf.CreateFishAckData.CreateParams();
          reader.readMessage(value, proto.mtf.CreateFishAckData.CreateParams.deserializeBinaryFromReader);
          msg.setCreateparams(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.CreateFishAckData.Fish.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.CreateFishAckData.Fish.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.CreateFishAckData.Fish.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getFishtag();
      0 !== f && writer.writeUint32(1, f);
      f = message.getFishid();
      0 !== f && writer.writeUint32(2, f);
      f = message.getFishway();
      f.length > 0 && writer.writeString(3, f);
      f = message.getFishdelay();
      0 !== f && writer.writeInt32(4, f);
      f = message.getSpeed();
      0 !== f && writer.writeDouble(5, f);
      f = message.getGroupfishidList();
      f.length > 0 && writer.writePackedUint32(6, f);
      f = message.getOdds();
      0 !== f && writer.writeDouble(7, f);
      f = message.getRoat();
      0 !== f && writer.writeDouble(8, f);
      f = message.getStarttime();
      0 !== f && writer.writeDouble(9, f);
      f = message.getEndtime();
      0 !== f && writer.writeDouble(10, f);
      f = jspb.Message.getField(message, 11);
      null != f && writer.writeDouble(11, f);
      f = jspb.Message.getField(message, 12);
      null != f && writer.writeDouble(12, f);
      f = message.getNotremove();
      f && writer.writeBool(13, f);
      f = message.getSubpath();
      null != f && writer.writeMessage(14, f, proto.mtf.SubPathway.serializeBinaryToWriter);
      f = jspb.Message.getField(message, 15);
      null != f && writer.writeString(15, f);
      f = message.getCreateparams();
      null != f && writer.writeMessage(16, f, proto.mtf.CreateFishAckData.CreateParams.serializeBinaryToWriter);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getFishtag = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setFishtag = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getFishid = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setFishid = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getFishway = function() {
      return jspb.Message.getFieldWithDefault(this, 3, "");
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setFishway = function(value) {
      return jspb.Message.setProto3StringField(this, 3, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getFishdelay = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setFishdelay = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getSpeed = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setSpeed = function(value) {
      return jspb.Message.setProto3FloatField(this, 5, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getGroupfishidList = function() {
      return jspb.Message.getRepeatedField(this, 6);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setGroupfishidList = function(value) {
      return jspb.Message.setField(this, 6, value || []);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.addGroupfishid = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 6, value, opt_index);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.clearGroupfishidList = function() {
      return this.setGroupfishidList([]);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getOdds = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setOdds = function(value) {
      return jspb.Message.setProto3FloatField(this, 7, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getRoat = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setRoat = function(value) {
      return jspb.Message.setProto3FloatField(this, 8, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getStarttime = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 9, 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setStarttime = function(value) {
      return jspb.Message.setProto3FloatField(this, 9, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getEndtime = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setEndtime = function(value) {
      return jspb.Message.setProto3FloatField(this, 10, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getOffsetx = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setOffsetx = function(value) {
      return jspb.Message.setField(this, 11, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.clearOffsetx = function() {
      return jspb.Message.setField(this, 11, void 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.hasOffsetx = function() {
      return null != jspb.Message.getField(this, 11);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getOffsety = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 12, 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setOffsety = function(value) {
      return jspb.Message.setField(this, 12, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.clearOffsety = function() {
      return jspb.Message.setField(this, 12, void 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.hasOffsety = function() {
      return null != jspb.Message.getField(this, 12);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getNotremove = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 13, false);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setNotremove = function(value) {
      return jspb.Message.setProto3BooleanField(this, 13, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getSubpath = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.SubPathway, 14);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setSubpath = function(value) {
      return jspb.Message.setWrapperField(this, 14, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.clearSubpath = function() {
      return this.setSubpath(void 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.hasSubpath = function() {
      return null != jspb.Message.getField(this, 14);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getAction = function() {
      return jspb.Message.getFieldWithDefault(this, 15, "");
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setAction = function(value) {
      return jspb.Message.setField(this, 15, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.clearAction = function() {
      return jspb.Message.setField(this, 15, void 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.hasAction = function() {
      return null != jspb.Message.getField(this, 15);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.getCreateparams = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.CreateFishAckData.CreateParams, 16);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.setCreateparams = function(value) {
      return jspb.Message.setWrapperField(this, 16, value);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.clearCreateparams = function() {
      return this.setCreateparams(void 0);
    };
    proto.mtf.CreateFishAckData.Fish.prototype.hasCreateparams = function() {
      return null != jspb.Message.getField(this, 16);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.CreateFishAckData.CreateParams.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.CreateFishAckData.CreateParams.toObject(opt_includeInstance, this);
      };
      proto.mtf.CreateFishAckData.CreateParams.toObject = function(includeInstance, msg) {
        var f, obj = {
          fadeinsecs: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          fadeoutstarttime: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          fadeoutsecs: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          scaleinsec: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          slotindex: jspb.Message.getFieldWithDefault(msg, 5, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.CreateFishAckData.CreateParams.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.CreateFishAckData.CreateParams();
      return proto.mtf.CreateFishAckData.CreateParams.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.CreateFishAckData.CreateParams.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readDouble();
          msg.setFadeinsecs(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setFadeoutstarttime(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setFadeoutsecs(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setScaleinsec(value);
          break;

         case 5:
          var value = reader.readInt32();
          msg.setSlotindex(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.CreateFishAckData.CreateParams.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.CreateFishAckData.CreateParams.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = jspb.Message.getField(message, 1);
      null != f && writer.writeDouble(1, f);
      f = jspb.Message.getField(message, 2);
      null != f && writer.writeDouble(2, f);
      f = jspb.Message.getField(message, 3);
      null != f && writer.writeDouble(3, f);
      f = jspb.Message.getField(message, 4);
      null != f && writer.writeDouble(4, f);
      f = jspb.Message.getField(message, 5);
      null != f && writer.writeInt32(5, f);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.getFadeinsecs = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.setFadeinsecs = function(value) {
      return jspb.Message.setField(this, 1, value);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.clearFadeinsecs = function() {
      return jspb.Message.setField(this, 1, void 0);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.hasFadeinsecs = function() {
      return null != jspb.Message.getField(this, 1);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.getFadeoutstarttime = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.setFadeoutstarttime = function(value) {
      return jspb.Message.setField(this, 2, value);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.clearFadeoutstarttime = function() {
      return jspb.Message.setField(this, 2, void 0);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.hasFadeoutstarttime = function() {
      return null != jspb.Message.getField(this, 2);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.getFadeoutsecs = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.setFadeoutsecs = function(value) {
      return jspb.Message.setField(this, 3, value);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.clearFadeoutsecs = function() {
      return jspb.Message.setField(this, 3, void 0);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.hasFadeoutsecs = function() {
      return null != jspb.Message.getField(this, 3);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.getScaleinsec = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.setScaleinsec = function(value) {
      return jspb.Message.setField(this, 4, value);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.clearScaleinsec = function() {
      return jspb.Message.setField(this, 4, void 0);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.hasScaleinsec = function() {
      return null != jspb.Message.getField(this, 4);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.getSlotindex = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.setSlotindex = function(value) {
      return jspb.Message.setField(this, 5, value);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.clearSlotindex = function() {
      return jspb.Message.setField(this, 5, void 0);
    };
    proto.mtf.CreateFishAckData.CreateParams.prototype.hasSlotindex = function() {
      return null != jspb.Message.getField(this, 5);
    };
    proto.mtf.CreateFishAckData.prototype.getListList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.CreateFishAckData.Fish, 1);
    };
    proto.mtf.CreateFishAckData.prototype.setListList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 1, value);
    };
    proto.mtf.CreateFishAckData.prototype.addList = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mtf.CreateFishAckData.Fish, opt_index);
    };
    proto.mtf.CreateFishAckData.prototype.clearListList = function() {
      return this.setListList([]);
    };
    proto.mtf.CreateFishAckData.prototype.getSerial = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.CreateFishAckData.prototype.setSerial = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.CreateFishAckData.prototype.getTime = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.CreateFishAckData.prototype.setTime = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.SubPathway.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.SubPathway.toObject(opt_includeInstance, this);
      };
      proto.mtf.SubPathway.toObject = function(includeInstance, msg) {
        var f, obj = {
          pathway: jspb.Message.getFieldWithDefault(msg, 1, ""),
          starttime: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          endtime: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          offsettime: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          useangle: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
          speed: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0),
          rotatepath: jspb.Message.getBooleanFieldWithDefault(msg, 7, false)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.SubPathway.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.SubPathway();
      return proto.mtf.SubPathway.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.SubPathway.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setPathway(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setStarttime(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setEndtime(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setOffsettime(value);
          break;

         case 5:
          var value = reader.readBool();
          msg.setUseangle(value);
          break;

         case 6:
          var value = reader.readDouble();
          msg.setSpeed(value);
          break;

         case 7:
          var value = reader.readBool();
          msg.setRotatepath(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.SubPathway.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.SubPathway.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.SubPathway.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getPathway();
      f.length > 0 && writer.writeString(1, f);
      f = message.getStarttime();
      0 !== f && writer.writeDouble(2, f);
      f = message.getEndtime();
      0 !== f && writer.writeDouble(3, f);
      f = message.getOffsettime();
      0 !== f && writer.writeDouble(4, f);
      f = message.getUseangle();
      f && writer.writeBool(5, f);
      f = message.getSpeed();
      0 !== f && writer.writeDouble(6, f);
      f = message.getRotatepath();
      f && writer.writeBool(7, f);
    };
    proto.mtf.SubPathway.prototype.getPathway = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.SubPathway.prototype.setPathway = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.SubPathway.prototype.getStarttime = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.SubPathway.prototype.setStarttime = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.SubPathway.prototype.getEndtime = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.SubPathway.prototype.setEndtime = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.SubPathway.prototype.getOffsettime = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.SubPathway.prototype.setOffsettime = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.SubPathway.prototype.getUseangle = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 5, false);
    };
    proto.mtf.SubPathway.prototype.setUseangle = function(value) {
      return jspb.Message.setProto3BooleanField(this, 5, value);
    };
    proto.mtf.SubPathway.prototype.getSpeed = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0);
    };
    proto.mtf.SubPathway.prototype.setSpeed = function(value) {
      return jspb.Message.setProto3FloatField(this, 6, value);
    };
    proto.mtf.SubPathway.prototype.getRotatepath = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 7, false);
    };
    proto.mtf.SubPathway.prototype.setRotatepath = function(value) {
      return jspb.Message.setProto3BooleanField(this, 7, value);
    };
    proto.mtf.HitAckData.repeatedFields_ = [ 6 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.HitAckData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.HitAckData.toObject(opt_includeInstance, this);
      };
      proto.mtf.HitAckData.toObject = function(includeInstance, msg) {
        var f, obj = {
          result: jspb.Message.getFieldWithDefault(msg, 1, 0),
          seat: jspb.Message.getFieldWithDefault(msg, 2, 0),
          fishid: jspb.Message.getFieldWithDefault(msg, 3, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          type: jspb.Message.getFieldWithDefault(msg, 5, 0),
          deadList: jspb.Message.toObjectList(msg.getDeadList(), proto.mtf.HitAckData.Fish.toObject, includeInstance),
          bulletid: jspb.Message.getFieldWithDefault(msg, 7, 0),
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0),
          jp: (f = msg.getJp()) && proto.mtf.JpData.toObject(includeInstance, f),
          skinenergy: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0),
          remain: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0),
          bonus: jspb.Message.getFloatingPointFieldWithDefault(msg, 12, 0),
          seed: jspb.Message.getFieldWithDefault(msg, 13, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.HitAckData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.HitAckData();
      return proto.mtf.HitAckData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.HitAckData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readInt32();
          msg.setResult(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setFishid(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 5:
          var value = reader.readInt32();
          msg.setType(value);
          break;

         case 6:
          var value = new proto.mtf.HitAckData.Fish();
          reader.readMessage(value, proto.mtf.HitAckData.Fish.deserializeBinaryFromReader);
          msg.addDead(value);
          break;

         case 7:
          var value = reader.readUint32();
          msg.setBulletid(value);
          break;

         case 8:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 9:
          var value = new proto.mtf.JpData();
          reader.readMessage(value, proto.mtf.JpData.deserializeBinaryFromReader);
          msg.setJp(value);
          break;

         case 10:
          var value = reader.readDouble();
          msg.setSkinenergy(value);
          break;

         case 11:
          var value = reader.readDouble();
          msg.setRemain(value);
          break;

         case 12:
          var value = reader.readDouble();
          msg.setBonus(value);
          break;

         case 13:
          var value = reader.readUint32();
          msg.setSeed(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.HitAckData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.HitAckData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.HitAckData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getResult();
      0 !== f && writer.writeInt32(1, f);
      f = message.getSeat();
      0 !== f && writer.writeUint32(2, f);
      f = message.getFishid();
      0 !== f && writer.writeUint32(3, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(4, f);
      f = message.getType();
      0 !== f && writer.writeInt32(5, f);
      f = message.getDeadList();
      f.length > 0 && writer.writeRepeatedMessage(6, f, proto.mtf.HitAckData.Fish.serializeBinaryToWriter);
      f = message.getBulletid();
      0 !== f && writer.writeUint32(7, f);
      f = message.getBet();
      0 !== f && writer.writeDouble(8, f);
      f = message.getJp();
      null != f && writer.writeMessage(9, f, proto.mtf.JpData.serializeBinaryToWriter);
      f = message.getSkinenergy();
      0 !== f && writer.writeDouble(10, f);
      f = message.getRemain();
      0 !== f && writer.writeDouble(11, f);
      f = message.getBonus();
      0 !== f && writer.writeDouble(12, f);
      f = message.getSeed();
      0 !== f && writer.writeUint32(13, f);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.HitAckData.Fish.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.HitAckData.Fish.toObject(opt_includeInstance, this);
      };
      proto.mtf.HitAckData.Fish.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          alive: jspb.Message.getBooleanFieldWithDefault(msg, 3, false)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.HitAckData.Fish.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.HitAckData.Fish();
      return proto.mtf.HitAckData.Fish.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.HitAckData.Fish.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 3:
          var value = reader.readBool();
          msg.setAlive(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.HitAckData.Fish.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.HitAckData.Fish.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.HitAckData.Fish.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(2, f);
      f = message.getAlive();
      f && writer.writeBool(3, f);
    };
    proto.mtf.HitAckData.Fish.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.HitAckData.Fish.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.HitAckData.Fish.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.HitAckData.Fish.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.HitAckData.Fish.prototype.getAlive = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 3, false);
    };
    proto.mtf.HitAckData.Fish.prototype.setAlive = function(value) {
      return jspb.Message.setProto3BooleanField(this, 3, value);
    };
    proto.mtf.HitAckData.prototype.getResult = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.HitAckData.prototype.setResult = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.HitAckData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.HitAckData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.HitAckData.prototype.getFishid = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.HitAckData.prototype.setFishid = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.HitAckData.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.HitAckData.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.HitAckData.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.HitAckData.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.HitAckData.prototype.getDeadList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.HitAckData.Fish, 6);
    };
    proto.mtf.HitAckData.prototype.setDeadList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 6, value);
    };
    proto.mtf.HitAckData.prototype.addDead = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.mtf.HitAckData.Fish, opt_index);
    };
    proto.mtf.HitAckData.prototype.clearDeadList = function() {
      return this.setDeadList([]);
    };
    proto.mtf.HitAckData.prototype.getBulletid = function() {
      return jspb.Message.getFieldWithDefault(this, 7, 0);
    };
    proto.mtf.HitAckData.prototype.setBulletid = function(value) {
      return jspb.Message.setProto3IntField(this, 7, value);
    };
    proto.mtf.HitAckData.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0);
    };
    proto.mtf.HitAckData.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 8, value);
    };
    proto.mtf.HitAckData.prototype.getJp = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.JpData, 9);
    };
    proto.mtf.HitAckData.prototype.setJp = function(value) {
      return jspb.Message.setWrapperField(this, 9, value);
    };
    proto.mtf.HitAckData.prototype.clearJp = function() {
      return this.setJp(void 0);
    };
    proto.mtf.HitAckData.prototype.hasJp = function() {
      return null != jspb.Message.getField(this, 9);
    };
    proto.mtf.HitAckData.prototype.getSkinenergy = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0);
    };
    proto.mtf.HitAckData.prototype.setSkinenergy = function(value) {
      return jspb.Message.setProto3FloatField(this, 10, value);
    };
    proto.mtf.HitAckData.prototype.getRemain = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0);
    };
    proto.mtf.HitAckData.prototype.setRemain = function(value) {
      return jspb.Message.setProto3FloatField(this, 11, value);
    };
    proto.mtf.HitAckData.prototype.getBonus = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 12, 0);
    };
    proto.mtf.HitAckData.prototype.setBonus = function(value) {
      return jspb.Message.setProto3FloatField(this, 12, value);
    };
    proto.mtf.HitAckData.prototype.getSeed = function() {
      return jspb.Message.getFieldWithDefault(this, 13, 0);
    };
    proto.mtf.HitAckData.prototype.setSeed = function(value) {
      return jspb.Message.setProto3IntField(this, 13, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.HitSpecialAckData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.HitSpecialAckData.toObject(opt_includeInstance, this);
      };
      proto.mtf.HitSpecialAckData.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          fishid: jspb.Message.getFieldWithDefault(msg, 2, 0),
          type: jspb.Message.getFieldWithDefault(msg, 3, 0),
          odds: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.HitSpecialAckData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.HitSpecialAckData();
      return proto.mtf.HitSpecialAckData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.HitSpecialAckData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setFishid(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setType(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setOdds(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.HitSpecialAckData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.HitSpecialAckData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.HitSpecialAckData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getFishid();
      0 !== f && writer.writeUint32(2, f);
      f = message.getType();
      0 !== f && writer.writeUint32(3, f);
      f = message.getOdds();
      0 !== f && writer.writeDouble(4, f);
    };
    proto.mtf.HitSpecialAckData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.HitSpecialAckData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.HitSpecialAckData.prototype.getFishid = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.HitSpecialAckData.prototype.setFishid = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.HitSpecialAckData.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.HitSpecialAckData.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.HitSpecialAckData.prototype.getOdds = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.HitSpecialAckData.prototype.setOdds = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.HitSpecialStartReqData.repeatedFields_ = [ 1 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.HitSpecialStartReqData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.HitSpecialStartReqData.toObject(opt_includeInstance, this);
      };
      proto.mtf.HitSpecialStartReqData.toObject = function(includeInstance, msg) {
        var f, obj = {
          fishidsList: null == (f = jspb.Message.getRepeatedField(msg, 1)) ? void 0 : f,
          type: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.HitSpecialStartReqData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.HitSpecialStartReqData();
      return proto.mtf.HitSpecialStartReqData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.HitSpecialStartReqData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addFishids(values[i]);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setType(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.HitSpecialStartReqData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.HitSpecialStartReqData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.HitSpecialStartReqData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getFishidsList();
      f.length > 0 && writer.writePackedUint32(1, f);
      f = message.getType();
      0 !== f && writer.writeUint32(2, f);
    };
    proto.mtf.HitSpecialStartReqData.prototype.getFishidsList = function() {
      return jspb.Message.getRepeatedField(this, 1);
    };
    proto.mtf.HitSpecialStartReqData.prototype.setFishidsList = function(value) {
      return jspb.Message.setField(this, 1, value || []);
    };
    proto.mtf.HitSpecialStartReqData.prototype.addFishids = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
    };
    proto.mtf.HitSpecialStartReqData.prototype.clearFishidsList = function() {
      return this.setFishidsList([]);
    };
    proto.mtf.HitSpecialStartReqData.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.HitSpecialStartReqData.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.HitSpeicalStartData.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.HitSpeicalStartData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.HitSpeicalStartData.toObject(opt_includeInstance, this);
      };
      proto.mtf.HitSpeicalStartData.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          fishidsList: null == (f = jspb.Message.getRepeatedField(msg, 2)) ? void 0 : f,
          type: jspb.Message.getFieldWithDefault(msg, 3, 0),
          id: jspb.Message.getFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.HitSpeicalStartData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.HitSpeicalStartData();
      return proto.mtf.HitSpeicalStartData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.HitSpeicalStartData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addFishids(values[i]);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setType(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.HitSpeicalStartData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.HitSpeicalStartData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.HitSpeicalStartData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getFishidsList();
      f.length > 0 && writer.writePackedUint32(2, f);
      f = message.getType();
      0 !== f && writer.writeUint32(3, f);
      f = message.getId();
      0 !== f && writer.writeUint32(4, f);
    };
    proto.mtf.HitSpeicalStartData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.HitSpeicalStartData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.HitSpeicalStartData.prototype.getFishidsList = function() {
      return jspb.Message.getRepeatedField(this, 2);
    };
    proto.mtf.HitSpeicalStartData.prototype.setFishidsList = function(value) {
      return jspb.Message.setField(this, 2, value || []);
    };
    proto.mtf.HitSpeicalStartData.prototype.addFishids = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
    };
    proto.mtf.HitSpeicalStartData.prototype.clearFishidsList = function() {
      return this.setFishidsList([]);
    };
    proto.mtf.HitSpeicalStartData.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.HitSpeicalStartData.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.HitSpeicalStartData.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.HitSpeicalStartData.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.HitSpecialEndData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.HitSpecialEndData.toObject(opt_includeInstance, this);
      };
      proto.mtf.HitSpecialEndData.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          type: jspb.Message.getFieldWithDefault(msg, 3, 0),
          odds: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          id: jspb.Message.getFieldWithDefault(msg, 5, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.HitSpecialEndData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.HitSpecialEndData();
      return proto.mtf.HitSpecialEndData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.HitSpecialEndData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setType(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setOdds(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.HitSpecialEndData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.HitSpecialEndData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.HitSpecialEndData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(2, f);
      f = message.getType();
      0 !== f && writer.writeUint32(3, f);
      f = message.getOdds();
      0 !== f && writer.writeDouble(4, f);
      f = message.getId();
      0 !== f && writer.writeUint32(5, f);
    };
    proto.mtf.HitSpecialEndData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.HitSpecialEndData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.HitSpecialEndData.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.HitSpecialEndData.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.HitSpecialEndData.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.HitSpecialEndData.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.HitSpecialEndData.prototype.getOdds = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.HitSpecialEndData.prototype.setOdds = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.HitSpecialEndData.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.HitSpecialEndData.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.AddCoin.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.AddCoin.toObject(opt_includeInstance, this);
      };
      proto.mtf.AddCoin.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.AddCoin.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.AddCoin();
      return proto.mtf.AddCoin.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.AddCoin.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.AddCoin.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.AddCoin.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.AddCoin.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(2, f);
    };
    proto.mtf.AddCoin.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.AddCoin.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.AddCoin.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.AddCoin.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.SetCoin.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.SetCoin.toObject(opt_includeInstance, this);
      };
      proto.mtf.SetCoin.toObject = function(includeInstance, msg) {
        var f, obj = {
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.SetCoin.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.SetCoin();
      return proto.mtf.SetCoin.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.SetCoin.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.SetCoin.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.SetCoin.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.SetCoin.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getCoin();
      0 !== f && writer.writeDouble(1, f);
    };
    proto.mtf.SetCoin.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.SetCoin.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Token.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Token.toObject(opt_includeInstance, this);
      };
      proto.mtf.Token.toObject = function(includeInstance, msg) {
        var f, obj = {
          time: jspb.Message.getFieldWithDefault(msg, 1, 0),
          uid: jspb.Message.getFieldWithDefault(msg, 2, 0),
          check: msg.getCheck_asB64()
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Token.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Token();
      return proto.mtf.Token.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Token.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setTime(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setUid(value);
          break;

         case 3:
          var value = reader.readBytes();
          msg.setCheck(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Token.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Token.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Token.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getTime();
      0 !== f && writer.writeUint32(1, f);
      f = message.getUid();
      0 !== f && writer.writeUint32(2, f);
      f = message.getCheck_asU8();
      f.length > 0 && writer.writeBytes(3, f);
    };
    proto.mtf.Token.prototype.getTime = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Token.prototype.setTime = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Token.prototype.getUid = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Token.prototype.setUid = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Token.prototype.getCheck = function() {
      return jspb.Message.getFieldWithDefault(this, 3, "");
    };
    proto.mtf.Token.prototype.getCheck_asB64 = function() {
      return jspb.Message.bytesAsB64(this.getCheck());
    };
    proto.mtf.Token.prototype.getCheck_asU8 = function() {
      return jspb.Message.bytesAsU8(this.getCheck());
    };
    proto.mtf.Token.prototype.setCheck = function(value) {
      return jspb.Message.setProto3BytesField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.HitSpeical4StartData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.HitSpeical4StartData.toObject(opt_includeInstance, this);
      };
      proto.mtf.HitSpeical4StartData.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          odds: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          addtime: jspb.Message.getFieldWithDefault(msg, 4, 0),
          amount: jspb.Message.getFieldWithDefault(msg, 5, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.HitSpeical4StartData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.HitSpeical4StartData();
      return proto.mtf.HitSpeical4StartData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.HitSpeical4StartData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setOdds(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setAddtime(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setAmount(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.HitSpeical4StartData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.HitSpeical4StartData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.HitSpeical4StartData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getBet();
      0 !== f && writer.writeDouble(2, f);
      f = message.getOdds();
      0 !== f && writer.writeDouble(3, f);
      f = message.getAddtime();
      0 !== f && writer.writeUint32(4, f);
      f = message.getAmount();
      0 !== f && writer.writeUint32(5, f);
    };
    proto.mtf.HitSpeical4StartData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.HitSpeical4StartData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.HitSpeical4StartData.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.HitSpeical4StartData.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.HitSpeical4StartData.prototype.getOdds = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.HitSpeical4StartData.prototype.setOdds = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.HitSpeical4StartData.prototype.getAddtime = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.HitSpeical4StartData.prototype.setAddtime = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.HitSpeical4StartData.prototype.getAmount = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.HitSpeical4StartData.prototype.setAmount = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.BroadcastData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.BroadcastData.toObject(opt_includeInstance, this);
      };
      proto.mtf.BroadcastData.toObject = function(includeInstance, msg) {
        var f, obj = {
          name: jspb.Message.getFieldWithDefault(msg, 1, ""),
          theme: jspb.Message.getFieldWithDefault(msg, 2, 0),
          odds: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          fish: jspb.Message.getFieldWithDefault(msg, 4, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0),
          vendor: jspb.Message.getFieldWithDefault(msg, 6, 0),
          currency: jspb.Message.getFieldWithDefault(msg, 7, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.BroadcastData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.BroadcastData();
      return proto.mtf.BroadcastData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.BroadcastData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setName(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setTheme(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setOdds(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setFish(value);
          break;

         case 5:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 6:
          var value = reader.readUint32();
          msg.setVendor(value);
          break;

         case 7:
          var value = reader.readInt32();
          msg.setCurrency(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.BroadcastData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.BroadcastData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.BroadcastData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getName();
      f.length > 0 && writer.writeString(1, f);
      f = message.getTheme();
      0 !== f && writer.writeUint32(2, f);
      f = message.getOdds();
      0 !== f && writer.writeDouble(3, f);
      f = message.getFish();
      0 !== f && writer.writeUint32(4, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(5, f);
      f = message.getVendor();
      0 !== f && writer.writeUint32(6, f);
      f = message.getCurrency();
      0 !== f && writer.writeInt32(7, f);
    };
    proto.mtf.BroadcastData.prototype.getName = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.BroadcastData.prototype.setName = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.BroadcastData.prototype.getTheme = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.BroadcastData.prototype.setTheme = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.BroadcastData.prototype.getOdds = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.BroadcastData.prototype.setOdds = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.BroadcastData.prototype.getFish = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.BroadcastData.prototype.setFish = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.BroadcastData.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0);
    };
    proto.mtf.BroadcastData.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 5, value);
    };
    proto.mtf.BroadcastData.prototype.getVendor = function() {
      return jspb.Message.getFieldWithDefault(this, 6, 0);
    };
    proto.mtf.BroadcastData.prototype.setVendor = function(value) {
      return jspb.Message.setProto3IntField(this, 6, value);
    };
    proto.mtf.BroadcastData.prototype.getCurrency = function() {
      return jspb.Message.getFieldWithDefault(this, 7, 0);
    };
    proto.mtf.BroadcastData.prototype.setCurrency = function(value) {
      return jspb.Message.setProto3IntField(this, 7, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.TreasureChestData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.TreasureChestData.toObject(opt_includeInstance, this);
      };
      proto.mtf.TreasureChestData.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          odds: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          remain: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.TreasureChestData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.TreasureChestData();
      return proto.mtf.TreasureChestData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.TreasureChestData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setOdds(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 5:
          var value = reader.readDouble();
          msg.setRemain(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.TreasureChestData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.TreasureChestData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.TreasureChestData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getBet();
      0 !== f && writer.writeDouble(2, f);
      f = message.getOdds();
      0 !== f && writer.writeDouble(3, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(4, f);
      f = message.getRemain();
      0 !== f && writer.writeDouble(5, f);
    };
    proto.mtf.TreasureChestData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.TreasureChestData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.TreasureChestData.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.TreasureChestData.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.TreasureChestData.prototype.getOdds = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.TreasureChestData.prototype.setOdds = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.TreasureChestData.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.TreasureChestData.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.TreasureChestData.prototype.getRemain = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0);
    };
    proto.mtf.TreasureChestData.prototype.setRemain = function(value) {
      return jspb.Message.setProto3FloatField(this, 5, value);
    };
    proto.mtf.HitMeteorStartReq.repeatedFields_ = [ 1 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.HitMeteorStartReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.HitMeteorStartReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.HitMeteorStartReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          fishList: null == (f = jspb.Message.getRepeatedField(msg, 1)) ? void 0 : f,
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.HitMeteorStartReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.HitMeteorStartReq();
      return proto.mtf.HitMeteorStartReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.HitMeteorStartReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addFish(values[i]);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.HitMeteorStartReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.HitMeteorStartReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.HitMeteorStartReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getFishList();
      f.length > 0 && writer.writePackedUint32(1, f);
      f = message.getBet();
      0 !== f && writer.writeDouble(2, f);
    };
    proto.mtf.HitMeteorStartReq.prototype.getFishList = function() {
      return jspb.Message.getRepeatedField(this, 1);
    };
    proto.mtf.HitMeteorStartReq.prototype.setFishList = function(value) {
      return jspb.Message.setField(this, 1, value || []);
    };
    proto.mtf.HitMeteorStartReq.prototype.addFish = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
    };
    proto.mtf.HitMeteorStartReq.prototype.clearFishList = function() {
      return this.setFishList([]);
    };
    proto.mtf.HitMeteorStartReq.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.HitMeteorStartReq.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.HitMeteorStartAck.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.HitMeteorStartAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.HitMeteorStartAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.HitMeteorStartAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          fishList: null == (f = jspb.Message.getRepeatedField(msg, 2)) ? void 0 : f,
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.HitMeteorStartAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.HitMeteorStartAck();
      return proto.mtf.HitMeteorStartAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.HitMeteorStartAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addFish(values[i]);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.HitMeteorStartAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.HitMeteorStartAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.HitMeteorStartAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getFishList();
      f.length > 0 && writer.writePackedUint32(2, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(3, f);
      f = message.getBet();
      0 !== f && writer.writeDouble(4, f);
    };
    proto.mtf.HitMeteorStartAck.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.HitMeteorStartAck.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.HitMeteorStartAck.prototype.getFishList = function() {
      return jspb.Message.getRepeatedField(this, 2);
    };
    proto.mtf.HitMeteorStartAck.prototype.setFishList = function(value) {
      return jspb.Message.setField(this, 2, value || []);
    };
    proto.mtf.HitMeteorStartAck.prototype.addFish = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
    };
    proto.mtf.HitMeteorStartAck.prototype.clearFishList = function() {
      return this.setFishList([]);
    };
    proto.mtf.HitMeteorStartAck.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.HitMeteorStartAck.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.HitMeteorStartAck.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.HitMeteorStartAck.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Vip.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Vip.toObject(opt_includeInstance, this);
      };
      proto.mtf.Vip.toObject = function(includeInstance, msg) {
        var f, obj = {
          level: jspb.Message.getFieldWithDefault(msg, 1, 0),
          ismax: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),
          exp: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          treasure: (f = msg.getTreasure()) && proto.mtf.Vip.Treasure.toObject(includeInstance, f)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Vip.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Vip();
      return proto.mtf.Vip.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Vip.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setLevel(value);
          break;

         case 2:
          var value = reader.readBool();
          msg.setIsmax(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setExp(value);
          break;

         case 4:
          var value = new proto.mtf.Vip.Treasure();
          reader.readMessage(value, proto.mtf.Vip.Treasure.deserializeBinaryFromReader);
          msg.setTreasure(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Vip.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Vip.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Vip.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getLevel();
      0 !== f && writer.writeUint32(1, f);
      f = message.getIsmax();
      f && writer.writeBool(2, f);
      f = message.getExp();
      0 !== f && writer.writeDouble(3, f);
      f = message.getTreasure();
      null != f && writer.writeMessage(4, f, proto.mtf.Vip.Treasure.serializeBinaryToWriter);
    };
    proto.mtf.Vip.Treasure.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Vip.Treasure.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Vip.Treasure.toObject(opt_includeInstance, this);
      };
      proto.mtf.Vip.Treasure.toObject = function(includeInstance, msg) {
        var f, obj = {
          exp: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          infoList: jspb.Message.toObjectList(msg.getInfoList(), proto.mtf.Vip.Treasure.Info.toObject, includeInstance),
          next: jspb.Message.getFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Vip.Treasure.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Vip.Treasure();
      return proto.mtf.Vip.Treasure.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Vip.Treasure.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readDouble();
          msg.setExp(value);
          break;

         case 2:
          var value = new proto.mtf.Vip.Treasure.Info();
          reader.readMessage(value, proto.mtf.Vip.Treasure.Info.deserializeBinaryFromReader);
          msg.addInfo(value);
          break;

         case 3:
          var value = reader.readInt64();
          msg.setNext(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Vip.Treasure.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Vip.Treasure.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Vip.Treasure.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getExp();
      0 !== f && writer.writeDouble(1, f);
      f = message.getInfoList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.Vip.Treasure.Info.serializeBinaryToWriter);
      f = message.getNext();
      0 !== f && writer.writeInt64(3, f);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Vip.Treasure.Info.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Vip.Treasure.Info.toObject(opt_includeInstance, this);
      };
      proto.mtf.Vip.Treasure.Info.toObject = function(includeInstance, msg) {
        var f, obj = {
          index: jspb.Message.getFieldWithDefault(msg, 1, ""),
          minvip: jspb.Message.getFieldWithDefault(msg, 2, 0),
          exp: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          isopen: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Vip.Treasure.Info.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Vip.Treasure.Info();
      return proto.mtf.Vip.Treasure.Info.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Vip.Treasure.Info.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setIndex(value);
          break;

         case 2:
          var value = reader.readInt32();
          msg.setMinvip(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setExp(value);
          break;

         case 4:
          var value = reader.readBool();
          msg.setIsopen(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Vip.Treasure.Info.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Vip.Treasure.Info.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Vip.Treasure.Info.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getIndex();
      f.length > 0 && writer.writeString(1, f);
      f = message.getMinvip();
      0 !== f && writer.writeInt32(2, f);
      f = message.getExp();
      0 !== f && writer.writeDouble(3, f);
      f = message.getIsopen();
      f && writer.writeBool(4, f);
    };
    proto.mtf.Vip.Treasure.Info.prototype.getIndex = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.Vip.Treasure.Info.prototype.setIndex = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.Vip.Treasure.Info.prototype.getMinvip = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Vip.Treasure.Info.prototype.setMinvip = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Vip.Treasure.Info.prototype.getExp = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Vip.Treasure.Info.prototype.setExp = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.Vip.Treasure.Info.prototype.getIsopen = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 4, false);
    };
    proto.mtf.Vip.Treasure.Info.prototype.setIsopen = function(value) {
      return jspb.Message.setProto3BooleanField(this, 4, value);
    };
    proto.mtf.Vip.Treasure.prototype.getExp = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Vip.Treasure.prototype.setExp = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.Vip.Treasure.prototype.getInfoList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Vip.Treasure.Info, 2);
    };
    proto.mtf.Vip.Treasure.prototype.setInfoList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.Vip.Treasure.prototype.addInfo = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.Vip.Treasure.Info, opt_index);
    };
    proto.mtf.Vip.Treasure.prototype.clearInfoList = function() {
      return this.setInfoList([]);
    };
    proto.mtf.Vip.Treasure.prototype.getNext = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Vip.Treasure.prototype.setNext = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.Vip.prototype.getLevel = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Vip.prototype.setLevel = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Vip.prototype.getIsmax = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 2, false);
    };
    proto.mtf.Vip.prototype.setIsmax = function(value) {
      return jspb.Message.setProto3BooleanField(this, 2, value);
    };
    proto.mtf.Vip.prototype.getExp = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Vip.prototype.setExp = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.Vip.prototype.getTreasure = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.Vip.Treasure, 4);
    };
    proto.mtf.Vip.prototype.setTreasure = function(value) {
      return jspb.Message.setWrapperField(this, 4, value);
    };
    proto.mtf.Vip.prototype.clearTreasure = function() {
      return this.setTreasure(void 0);
    };
    proto.mtf.Vip.prototype.hasTreasure = function() {
      return null != jspb.Message.getField(this, 4);
    };
    proto.mtf.Promotion.repeatedFields_ = [ 1, 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Promotion.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Promotion.toObject(opt_includeInstance, this);
      };
      proto.mtf.Promotion.toObject = function(includeInstance, msg) {
        var f, obj = {
          gameList: null == (f = jspb.Message.getRepeatedField(msg, 1)) ? void 0 : f,
          labelList: null == (f = jspb.Message.getRepeatedField(msg, 2)) ? void 0 : f
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Promotion.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Promotion();
      return proto.mtf.Promotion.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Promotion.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addGame(values[i]);
          break;

         case 2:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addLabel(values[i]);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Promotion.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Promotion.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Promotion.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getGameList();
      f.length > 0 && writer.writePackedUint32(1, f);
      f = message.getLabelList();
      f.length > 0 && writer.writePackedUint32(2, f);
    };
    proto.mtf.Promotion.prototype.getGameList = function() {
      return jspb.Message.getRepeatedField(this, 1);
    };
    proto.mtf.Promotion.prototype.setGameList = function(value) {
      return jspb.Message.setField(this, 1, value || []);
    };
    proto.mtf.Promotion.prototype.addGame = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
    };
    proto.mtf.Promotion.prototype.clearGameList = function() {
      return this.setGameList([]);
    };
    proto.mtf.Promotion.prototype.getLabelList = function() {
      return jspb.Message.getRepeatedField(this, 2);
    };
    proto.mtf.Promotion.prototype.setLabelList = function(value) {
      return jspb.Message.setField(this, 2, value || []);
    };
    proto.mtf.Promotion.prototype.addLabel = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
    };
    proto.mtf.Promotion.prototype.clearLabelList = function() {
      return this.setLabelList([]);
    };
    proto.mtf.PromotionV2.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.PromotionV2.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.PromotionV2.toObject(opt_includeInstance, this);
      };
      proto.mtf.PromotionV2.toObject = function(includeInstance, msg) {
        var f, obj = {
          enabled: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
          listList: jspb.Message.toObjectList(msg.getListList(), proto.mtf.PromotionV2.Info.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.PromotionV2.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.PromotionV2();
      return proto.mtf.PromotionV2.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.PromotionV2.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readBool();
          msg.setEnabled(value);
          break;

         case 2:
          var value = new proto.mtf.PromotionV2.Info();
          reader.readMessage(value, proto.mtf.PromotionV2.Info.deserializeBinaryFromReader);
          msg.addList(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.PromotionV2.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.PromotionV2.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.PromotionV2.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getEnabled();
      f && writer.writeBool(1, f);
      f = message.getListList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.PromotionV2.Info.serializeBinaryToWriter);
    };
    proto.mtf.PromotionV2.Info.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.PromotionV2.Info.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.PromotionV2.Info.toObject(opt_includeInstance, this);
      };
      proto.mtf.PromotionV2.Info.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          labelsList: null == (f = jspb.Message.getRepeatedField(msg, 2)) ? void 0 : f,
          dau: jspb.Message.getFieldWithDefault(msg, 3, 0),
          mall: jspb.Message.getFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.PromotionV2.Info.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.PromotionV2.Info();
      return proto.mtf.PromotionV2.Info.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.PromotionV2.Info.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addLabels(values[i]);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setDau(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setMall(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.PromotionV2.Info.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.PromotionV2.Info.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.PromotionV2.Info.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getLabelsList();
      f.length > 0 && writer.writePackedUint32(2, f);
      f = message.getDau();
      0 !== f && writer.writeUint32(3, f);
      f = message.getMall();
      0 !== f && writer.writeUint32(4, f);
    };
    proto.mtf.PromotionV2.Info.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.PromotionV2.Info.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.PromotionV2.Info.prototype.getLabelsList = function() {
      return jspb.Message.getRepeatedField(this, 2);
    };
    proto.mtf.PromotionV2.Info.prototype.setLabelsList = function(value) {
      return jspb.Message.setField(this, 2, value || []);
    };
    proto.mtf.PromotionV2.Info.prototype.addLabels = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
    };
    proto.mtf.PromotionV2.Info.prototype.clearLabelsList = function() {
      return this.setLabelsList([]);
    };
    proto.mtf.PromotionV2.Info.prototype.getDau = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.PromotionV2.Info.prototype.setDau = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.PromotionV2.Info.prototype.getMall = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.PromotionV2.Info.prototype.setMall = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.PromotionV2.prototype.getEnabled = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 1, false);
    };
    proto.mtf.PromotionV2.prototype.setEnabled = function(value) {
      return jspb.Message.setProto3BooleanField(this, 1, value);
    };
    proto.mtf.PromotionV2.prototype.getListList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.PromotionV2.Info, 2);
    };
    proto.mtf.PromotionV2.prototype.setListList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.PromotionV2.prototype.addList = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.PromotionV2.Info, opt_index);
    };
    proto.mtf.PromotionV2.prototype.clearListList = function() {
      return this.setListList([]);
    };
    proto.mtf.Reward.repeatedFields_ = [ 1, 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Reward.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Reward.toObject(opt_includeInstance, this);
      };
      proto.mtf.Reward.toObject = function(includeInstance, msg) {
        var f, obj = {
          levelList: null == (f = jspb.Message.getRepeatedField(msg, 1)) ? void 0 : f,
          weekList: null == (f = jspb.Message.getRepeatedField(msg, 2)) ? void 0 : f
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Reward.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Reward();
      return proto.mtf.Reward.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Reward.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addLevel(values[i]);
          break;

         case 2:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addWeek(values[i]);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Reward.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Reward.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Reward.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getLevelList();
      f.length > 0 && writer.writePackedUint32(1, f);
      f = message.getWeekList();
      f.length > 0 && writer.writePackedUint32(2, f);
    };
    proto.mtf.Reward.prototype.getLevelList = function() {
      return jspb.Message.getRepeatedField(this, 1);
    };
    proto.mtf.Reward.prototype.setLevelList = function(value) {
      return jspb.Message.setField(this, 1, value || []);
    };
    proto.mtf.Reward.prototype.addLevel = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
    };
    proto.mtf.Reward.prototype.clearLevelList = function() {
      return this.setLevelList([]);
    };
    proto.mtf.Reward.prototype.getWeekList = function() {
      return jspb.Message.getRepeatedField(this, 2);
    };
    proto.mtf.Reward.prototype.setWeekList = function(value) {
      return jspb.Message.setField(this, 2, value || []);
    };
    proto.mtf.Reward.prototype.addWeek = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
    };
    proto.mtf.Reward.prototype.clearWeekList = function() {
      return this.setWeekList([]);
    };
    proto.mtf.Rewardv2.repeatedFields_ = [ 3 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Rewardv2.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Rewardv2.toObject(opt_includeInstance, this);
      };
      proto.mtf.Rewardv2.toObject = function(includeInstance, msg) {
        var f, obj = {
          level: (f = msg.getLevel()) && proto.mtf.Rewardv2.Level.toObject(includeInstance, f),
          week: (f = msg.getWeek()) && proto.mtf.Rewardv2.Week.toObject(includeInstance, f),
          expList: null == (f = jspb.Message.getRepeatedField(msg, 3)) ? void 0 : f
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Rewardv2.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Rewardv2();
      return proto.mtf.Rewardv2.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Rewardv2.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = new proto.mtf.Rewardv2.Level();
          reader.readMessage(value, proto.mtf.Rewardv2.Level.deserializeBinaryFromReader);
          msg.setLevel(value);
          break;

         case 2:
          var value = new proto.mtf.Rewardv2.Week();
          reader.readMessage(value, proto.mtf.Rewardv2.Week.deserializeBinaryFromReader);
          msg.setWeek(value);
          break;

         case 3:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addExp(values[i]);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Rewardv2.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Rewardv2.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Rewardv2.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getLevel();
      null != f && writer.writeMessage(1, f, proto.mtf.Rewardv2.Level.serializeBinaryToWriter);
      f = message.getWeek();
      null != f && writer.writeMessage(2, f, proto.mtf.Rewardv2.Week.serializeBinaryToWriter);
      f = message.getExpList();
      f.length > 0 && writer.writePackedUint32(3, f);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Rewardv2.ExpTable.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Rewardv2.ExpTable.toObject(opt_includeInstance, this);
      };
      proto.mtf.Rewardv2.ExpTable.toObject = function(includeInstance, msg) {
        var f, obj = {
          level: jspb.Message.getFieldWithDefault(msg, 1, 0),
          exp: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          reward: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Rewardv2.ExpTable.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Rewardv2.ExpTable();
      return proto.mtf.Rewardv2.ExpTable.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Rewardv2.ExpTable.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setLevel(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setExp(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setReward(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Rewardv2.ExpTable.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Rewardv2.ExpTable.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Rewardv2.ExpTable.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getLevel();
      0 !== f && writer.writeUint32(1, f);
      f = message.getExp();
      0 !== f && writer.writeDouble(2, f);
      f = message.getReward();
      0 !== f && writer.writeDouble(3, f);
    };
    proto.mtf.Rewardv2.ExpTable.prototype.getLevel = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Rewardv2.ExpTable.prototype.setLevel = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Rewardv2.ExpTable.prototype.getExp = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Rewardv2.ExpTable.prototype.setExp = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.Rewardv2.ExpTable.prototype.getReward = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Rewardv2.ExpTable.prototype.setReward = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.Rewardv2.Level.repeatedFields_ = [ 1, 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Rewardv2.Level.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Rewardv2.Level.toObject(opt_includeInstance, this);
      };
      proto.mtf.Rewardv2.Level.toObject = function(includeInstance, msg) {
        var f, obj = {
          rewardedList: null == (f = jspb.Message.getRepeatedField(msg, 1)) ? void 0 : f,
          tableList: jspb.Message.toObjectList(msg.getTableList(), proto.mtf.Rewardv2.ExpTable.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Rewardv2.Level.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Rewardv2.Level();
      return proto.mtf.Rewardv2.Level.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Rewardv2.Level.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addRewarded(values[i]);
          break;

         case 2:
          var value = new proto.mtf.Rewardv2.ExpTable();
          reader.readMessage(value, proto.mtf.Rewardv2.ExpTable.deserializeBinaryFromReader);
          msg.addTable(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Rewardv2.Level.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Rewardv2.Level.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Rewardv2.Level.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getRewardedList();
      f.length > 0 && writer.writePackedUint32(1, f);
      f = message.getTableList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.Rewardv2.ExpTable.serializeBinaryToWriter);
    };
    proto.mtf.Rewardv2.Level.prototype.getRewardedList = function() {
      return jspb.Message.getRepeatedField(this, 1);
    };
    proto.mtf.Rewardv2.Level.prototype.setRewardedList = function(value) {
      return jspb.Message.setField(this, 1, value || []);
    };
    proto.mtf.Rewardv2.Level.prototype.addRewarded = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
    };
    proto.mtf.Rewardv2.Level.prototype.clearRewardedList = function() {
      return this.setRewardedList([]);
    };
    proto.mtf.Rewardv2.Level.prototype.getTableList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Rewardv2.ExpTable, 2);
    };
    proto.mtf.Rewardv2.Level.prototype.setTableList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.Rewardv2.Level.prototype.addTable = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.Rewardv2.ExpTable, opt_index);
    };
    proto.mtf.Rewardv2.Level.prototype.clearTableList = function() {
      return this.setTableList([]);
    };
    proto.mtf.Rewardv2.Week.repeatedFields_ = [ 1, 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Rewardv2.Week.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Rewardv2.Week.toObject(opt_includeInstance, this);
      };
      proto.mtf.Rewardv2.Week.toObject = function(includeInstance, msg) {
        var f, obj = {
          rewardedList: null == (f = jspb.Message.getRepeatedField(msg, 1)) ? void 0 : f,
          tableList: jspb.Message.toObjectList(msg.getTableList(), proto.mtf.Rewardv2.ExpTable.toObject, includeInstance),
          next: jspb.Message.getFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Rewardv2.Week.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Rewardv2.Week();
      return proto.mtf.Rewardv2.Week.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Rewardv2.Week.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addRewarded(values[i]);
          break;

         case 2:
          var value = new proto.mtf.Rewardv2.ExpTable();
          reader.readMessage(value, proto.mtf.Rewardv2.ExpTable.deserializeBinaryFromReader);
          msg.addTable(value);
          break;

         case 3:
          var value = reader.readInt64();
          msg.setNext(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Rewardv2.Week.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Rewardv2.Week.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Rewardv2.Week.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getRewardedList();
      f.length > 0 && writer.writePackedUint32(1, f);
      f = message.getTableList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.Rewardv2.ExpTable.serializeBinaryToWriter);
      f = message.getNext();
      0 !== f && writer.writeInt64(3, f);
    };
    proto.mtf.Rewardv2.Week.prototype.getRewardedList = function() {
      return jspb.Message.getRepeatedField(this, 1);
    };
    proto.mtf.Rewardv2.Week.prototype.setRewardedList = function(value) {
      return jspb.Message.setField(this, 1, value || []);
    };
    proto.mtf.Rewardv2.Week.prototype.addRewarded = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
    };
    proto.mtf.Rewardv2.Week.prototype.clearRewardedList = function() {
      return this.setRewardedList([]);
    };
    proto.mtf.Rewardv2.Week.prototype.getTableList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Rewardv2.ExpTable, 2);
    };
    proto.mtf.Rewardv2.Week.prototype.setTableList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.Rewardv2.Week.prototype.addTable = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.Rewardv2.ExpTable, opt_index);
    };
    proto.mtf.Rewardv2.Week.prototype.clearTableList = function() {
      return this.setTableList([]);
    };
    proto.mtf.Rewardv2.Week.prototype.getNext = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Rewardv2.Week.prototype.setNext = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.Rewardv2.prototype.getLevel = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.Rewardv2.Level, 1);
    };
    proto.mtf.Rewardv2.prototype.setLevel = function(value) {
      return jspb.Message.setWrapperField(this, 1, value);
    };
    proto.mtf.Rewardv2.prototype.clearLevel = function() {
      return this.setLevel(void 0);
    };
    proto.mtf.Rewardv2.prototype.hasLevel = function() {
      return null != jspb.Message.getField(this, 1);
    };
    proto.mtf.Rewardv2.prototype.getWeek = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.Rewardv2.Week, 2);
    };
    proto.mtf.Rewardv2.prototype.setWeek = function(value) {
      return jspb.Message.setWrapperField(this, 2, value);
    };
    proto.mtf.Rewardv2.prototype.clearWeek = function() {
      return this.setWeek(void 0);
    };
    proto.mtf.Rewardv2.prototype.hasWeek = function() {
      return null != jspb.Message.getField(this, 2);
    };
    proto.mtf.Rewardv2.prototype.getExpList = function() {
      return jspb.Message.getRepeatedField(this, 3);
    };
    proto.mtf.Rewardv2.prototype.setExpList = function(value) {
      return jspb.Message.setField(this, 3, value || []);
    };
    proto.mtf.Rewardv2.prototype.addExp = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
    };
    proto.mtf.Rewardv2.prototype.clearExpList = function() {
      return this.setExpList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Wallet.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Wallet.toObject(opt_includeInstance, this);
      };
      proto.mtf.Wallet.toObject = function(includeInstance, msg) {
        var f, obj = {
          currency: jspb.Message.getFieldWithDefault(msg, 1, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          ratio: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          rate: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          symbol: jspb.Message.getFieldWithDefault(msg, 5, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Wallet.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Wallet();
      return proto.mtf.Wallet.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Wallet.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readInt32();
          msg.setCurrency(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setRatio(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setRate(value);
          break;

         case 5:
          var value = reader.readString();
          msg.setSymbol(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Wallet.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Wallet.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Wallet.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getCurrency();
      0 !== f && writer.writeInt32(1, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(2, f);
      f = message.getRatio();
      0 !== f && writer.writeDouble(3, f);
      f = message.getRate();
      0 !== f && writer.writeDouble(4, f);
      f = message.getSymbol();
      f.length > 0 && writer.writeString(5, f);
    };
    proto.mtf.Wallet.prototype.getCurrency = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Wallet.prototype.setCurrency = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Wallet.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Wallet.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.Wallet.prototype.getRatio = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Wallet.prototype.setRatio = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.Wallet.prototype.getRate = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.Wallet.prototype.setRate = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.Wallet.prototype.getSymbol = function() {
      return jspb.Message.getFieldWithDefault(this, 5, "");
    };
    proto.mtf.Wallet.prototype.setSymbol = function(value) {
      return jspb.Message.setProto3StringField(this, 5, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.VipExp.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.VipExp.toObject(opt_includeInstance, this);
      };
      proto.mtf.VipExp.toObject = function(includeInstance, msg) {
        var f, obj = {
          level: jspb.Message.getFieldWithDefault(msg, 1, 0),
          ismax: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),
          exp: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          treasure: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.VipExp.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.VipExp();
      return proto.mtf.VipExp.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.VipExp.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setLevel(value);
          break;

         case 2:
          var value = reader.readBool();
          msg.setIsmax(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setExp(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setTreasure(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.VipExp.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.VipExp.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.VipExp.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getLevel();
      0 !== f && writer.writeUint32(1, f);
      f = message.getIsmax();
      f && writer.writeBool(2, f);
      f = message.getExp();
      0 !== f && writer.writeDouble(3, f);
      f = message.getTreasure();
      0 !== f && writer.writeDouble(4, f);
    };
    proto.mtf.VipExp.prototype.getLevel = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.VipExp.prototype.setLevel = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.VipExp.prototype.getIsmax = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 2, false);
    };
    proto.mtf.VipExp.prototype.setIsmax = function(value) {
      return jspb.Message.setProto3BooleanField(this, 2, value);
    };
    proto.mtf.VipExp.prototype.getExp = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.VipExp.prototype.setExp = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.VipExp.prototype.getTreasure = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.VipExp.prototype.setTreasure = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.VipSignReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.VipSignReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.VipSignReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          index: jspb.Message.getFieldWithDefault(msg, 1, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.VipSignReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.VipSignReq();
      return proto.mtf.VipSignReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.VipSignReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setIndex(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.VipSignReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.VipSignReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.VipSignReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getIndex();
      f.length > 0 && writer.writeString(1, f);
    };
    proto.mtf.VipSignReq.prototype.getIndex = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.VipSignReq.prototype.setIndex = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.VipSignAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.VipSignAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.VipSignAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          index: jspb.Message.getFieldWithDefault(msg, 1, ""),
          itemid: jspb.Message.getFieldWithDefault(msg, 2, 0),
          count: jspb.Message.getFieldWithDefault(msg, 3, 0),
          icon: jspb.Message.getFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.VipSignAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.VipSignAck();
      return proto.mtf.VipSignAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.VipSignAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setIndex(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setItemid(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setCount(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setIcon(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.VipSignAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.VipSignAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.VipSignAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getIndex();
      f.length > 0 && writer.writeString(1, f);
      f = message.getItemid();
      0 !== f && writer.writeUint32(2, f);
      f = message.getCount();
      0 !== f && writer.writeUint32(3, f);
      f = message.getIcon();
      0 !== f && writer.writeUint32(4, f);
    };
    proto.mtf.VipSignAck.prototype.getIndex = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.VipSignAck.prototype.setIndex = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.VipSignAck.prototype.getItemid = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.VipSignAck.prototype.setItemid = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.VipSignAck.prototype.getCount = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.VipSignAck.prototype.setCount = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.VipSignAck.prototype.getIcon = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.VipSignAck.prototype.setIcon = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Exp.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Exp.toObject(opt_includeInstance, this);
      };
      proto.mtf.Exp.toObject = function(includeInstance, msg) {
        var f, obj = {
          exp1: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          exp2: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          exp3: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Exp.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Exp();
      return proto.mtf.Exp.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Exp.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readDouble();
          msg.setExp1(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setExp2(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setExp3(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Exp.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Exp.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Exp.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getExp1();
      0 !== f && writer.writeDouble(1, f);
      f = message.getExp2();
      0 !== f && writer.writeDouble(2, f);
      f = message.getExp3();
      0 !== f && writer.writeDouble(3, f);
    };
    proto.mtf.Exp.prototype.getExp1 = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Exp.prototype.setExp1 = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.Exp.prototype.getExp2 = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Exp.prototype.setExp2 = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.Exp.prototype.getExp3 = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Exp.prototype.setExp3 = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.LevelRewardReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.LevelRewardReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.LevelRewardReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          level: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.LevelRewardReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.LevelRewardReq();
      return proto.mtf.LevelRewardReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.LevelRewardReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setLevel(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.LevelRewardReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.LevelRewardReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.LevelRewardReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getLevel();
      0 !== f && writer.writeUint32(1, f);
    };
    proto.mtf.LevelRewardReq.prototype.getLevel = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.LevelRewardReq.prototype.setLevel = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.LevelRewardAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.LevelRewardAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.LevelRewardAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          level: jspb.Message.getFieldWithDefault(msg, 1, 0),
          reward: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          seat: jspb.Message.getFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.LevelRewardAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.LevelRewardAck();
      return proto.mtf.LevelRewardAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.LevelRewardAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setLevel(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setReward(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.LevelRewardAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.LevelRewardAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.LevelRewardAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getLevel();
      0 !== f && writer.writeUint32(1, f);
      f = message.getReward();
      0 !== f && writer.writeDouble(2, f);
      f = message.getSeat();
      0 !== f && writer.writeUint32(3, f);
    };
    proto.mtf.LevelRewardAck.prototype.getLevel = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.LevelRewardAck.prototype.setLevel = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.LevelRewardAck.prototype.getReward = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.LevelRewardAck.prototype.setReward = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.LevelRewardAck.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.LevelRewardAck.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.TransferReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.TransferReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.TransferReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.TransferReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.TransferReq();
      return proto.mtf.TransferReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.TransferReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.TransferReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.TransferReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.TransferReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
    };
    proto.mtf.TransferReq.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.TransferReq.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.TransferAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.TransferAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.TransferAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          url: jspb.Message.getFieldWithDefault(msg, 2, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.TransferAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.TransferAck();
      return proto.mtf.TransferAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.TransferAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var value = reader.readString();
          msg.setUrl(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.TransferAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.TransferAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.TransferAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getUrl();
      f.length > 0 && writer.writeString(2, f);
    };
    proto.mtf.TransferAck.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.TransferAck.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.TransferAck.prototype.getUrl = function() {
      return jspb.Message.getFieldWithDefault(this, 2, "");
    };
    proto.mtf.TransferAck.prototype.setUrl = function(value) {
      return jspb.Message.setProto3StringField(this, 2, value);
    };
    proto.mtf.Card.repeatedFields_ = [ 1, 2, 3 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Card.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Card.toObject(opt_includeInstance, this);
      };
      proto.mtf.Card.toObject = function(includeInstance, msg) {
        var f, obj = {
          listList: jspb.Message.toObjectList(msg.getListList(), proto.mtf.Card.Data.toObject, includeInstance),
          messageList: jspb.Message.toObjectList(msg.getMessageList(), proto.mtf.Card.Message.toObject, includeInstance),
          chipList: jspb.Message.toObjectList(msg.getChipList(), proto.mtf.Card.ChipData.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Card.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Card();
      return proto.mtf.Card.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Card.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = new proto.mtf.Card.Data();
          reader.readMessage(value, proto.mtf.Card.Data.deserializeBinaryFromReader);
          msg.addList(value);
          break;

         case 2:
          var value = new proto.mtf.Card.Message();
          reader.readMessage(value, proto.mtf.Card.Message.deserializeBinaryFromReader);
          msg.addMessage(value);
          break;

         case 3:
          var value = new proto.mtf.Card.ChipData();
          reader.readMessage(value, proto.mtf.Card.ChipData.deserializeBinaryFromReader);
          msg.addChip(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Card.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Card.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Card.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getListList();
      f.length > 0 && writer.writeRepeatedMessage(1, f, proto.mtf.Card.Data.serializeBinaryToWriter);
      f = message.getMessageList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.Card.Message.serializeBinaryToWriter);
      f = message.getChipList();
      f.length > 0 && writer.writeRepeatedMessage(3, f, proto.mtf.Card.ChipData.serializeBinaryToWriter);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Card.Data.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Card.Data.toObject(opt_includeInstance, this);
      };
      proto.mtf.Card.Data.toObject = function(includeInstance, msg) {
        var f, obj = {
          index: jspb.Message.getFieldWithDefault(msg, 1, 0),
          gameid: jspb.Message.getFieldWithDefault(msg, 2, 0),
          cardid: jspb.Message.getFieldWithDefault(msg, 3, 0),
          start: jspb.Message.getFieldWithDefault(msg, 4, 0),
          end: jspb.Message.getFieldWithDefault(msg, 5, 0),
          cost: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0),
          type: jspb.Message.getFieldWithDefault(msg, 7, 0),
          source: jspb.Message.getFieldWithDefault(msg, 20, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Card.Data.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Card.Data();
      return proto.mtf.Card.Data.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Card.Data.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setIndex(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setGameid(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setCardid(value);
          break;

         case 4:
          var value = reader.readInt64();
          msg.setStart(value);
          break;

         case 5:
          var value = reader.readInt64();
          msg.setEnd(value);
          break;

         case 6:
          var value = reader.readDouble();
          msg.setCost(value);
          break;

         case 7:
          var value = reader.readUint32();
          msg.setType(value);
          break;

         case 20:
          var value = reader.readUint32();
          msg.setSource(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Card.Data.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Card.Data.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Card.Data.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getIndex();
      0 !== f && writer.writeUint32(1, f);
      f = message.getGameid();
      0 !== f && writer.writeUint32(2, f);
      f = message.getCardid();
      0 !== f && writer.writeUint32(3, f);
      f = message.getStart();
      0 !== f && writer.writeInt64(4, f);
      f = message.getEnd();
      0 !== f && writer.writeInt64(5, f);
      f = message.getCost();
      0 !== f && writer.writeDouble(6, f);
      f = message.getType();
      0 !== f && writer.writeUint32(7, f);
      f = message.getSource();
      0 !== f && writer.writeUint32(20, f);
    };
    proto.mtf.Card.Data.prototype.getIndex = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Card.Data.prototype.setIndex = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Card.Data.prototype.getGameid = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Card.Data.prototype.setGameid = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Card.Data.prototype.getCardid = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Card.Data.prototype.setCardid = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.Card.Data.prototype.getStart = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.Card.Data.prototype.setStart = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.Card.Data.prototype.getEnd = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.Card.Data.prototype.setEnd = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.Card.Data.prototype.getCost = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0);
    };
    proto.mtf.Card.Data.prototype.setCost = function(value) {
      return jspb.Message.setProto3FloatField(this, 6, value);
    };
    proto.mtf.Card.Data.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 7, 0);
    };
    proto.mtf.Card.Data.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 7, value);
    };
    proto.mtf.Card.Data.prototype.getSource = function() {
      return jspb.Message.getFieldWithDefault(this, 20, 0);
    };
    proto.mtf.Card.Data.prototype.setSource = function(value) {
      return jspb.Message.setProto3IntField(this, 20, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Card.Message.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Card.Message.toObject(opt_includeInstance, this);
      };
      proto.mtf.Card.Message.toObject = function(includeInstance, msg) {
        var f, obj = {
          cardid: jspb.Message.getFieldWithDefault(msg, 1, 0),
          msgid: jspb.Message.getFieldWithDefault(msg, 2, 0),
          createtime: jspb.Message.getFieldWithDefault(msg, 3, 0),
          gameid: jspb.Message.getFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Card.Message.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Card.Message();
      return proto.mtf.Card.Message.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Card.Message.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setCardid(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setMsgid(value);
          break;

         case 3:
          var value = reader.readInt64();
          msg.setCreatetime(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setGameid(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Card.Message.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Card.Message.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Card.Message.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getCardid();
      0 !== f && writer.writeUint32(1, f);
      f = message.getMsgid();
      0 !== f && writer.writeUint32(2, f);
      f = message.getCreatetime();
      0 !== f && writer.writeInt64(3, f);
      f = message.getGameid();
      0 !== f && writer.writeUint32(4, f);
    };
    proto.mtf.Card.Message.prototype.getCardid = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Card.Message.prototype.setCardid = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Card.Message.prototype.getMsgid = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Card.Message.prototype.setMsgid = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Card.Message.prototype.getCreatetime = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Card.Message.prototype.setCreatetime = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.Card.Message.prototype.getGameid = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.Card.Message.prototype.setGameid = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.Card.ChipData.repeatedFields_ = [ 1, 5 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Card.ChipData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Card.ChipData.toObject(opt_includeInstance, this);
      };
      proto.mtf.Card.ChipData.toObject = function(includeInstance, msg) {
        var f, obj = {
          chipsList: jspb.Message.toObjectList(msg.getChipsList(), proto.mtf.Card.ChipData.Chip.toObject, includeInstance),
          start: jspb.Message.getFieldWithDefault(msg, 3, 0),
          end: jspb.Message.getFieldWithDefault(msg, 4, 0),
          formulasList: jspb.Message.toObjectList(msg.getFormulasList(), proto.mtf.Card.ChipData.Formula.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Card.ChipData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Card.ChipData();
      return proto.mtf.Card.ChipData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Card.ChipData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = new proto.mtf.Card.ChipData.Chip();
          reader.readMessage(value, proto.mtf.Card.ChipData.Chip.deserializeBinaryFromReader);
          msg.addChips(value);
          break;

         case 3:
          var value = reader.readInt64();
          msg.setStart(value);
          break;

         case 4:
          var value = reader.readInt64();
          msg.setEnd(value);
          break;

         case 5:
          var value = new proto.mtf.Card.ChipData.Formula();
          reader.readMessage(value, proto.mtf.Card.ChipData.Formula.deserializeBinaryFromReader);
          msg.addFormulas(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Card.ChipData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Card.ChipData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Card.ChipData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getChipsList();
      f.length > 0 && writer.writeRepeatedMessage(1, f, proto.mtf.Card.ChipData.Chip.serializeBinaryToWriter);
      f = message.getStart();
      0 !== f && writer.writeInt64(3, f);
      f = message.getEnd();
      0 !== f && writer.writeInt64(4, f);
      f = message.getFormulasList();
      f.length > 0 && writer.writeRepeatedMessage(5, f, proto.mtf.Card.ChipData.Formula.serializeBinaryToWriter);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Card.ChipData.Chip.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Card.ChipData.Chip.toObject(opt_includeInstance, this);
      };
      proto.mtf.Card.ChipData.Chip.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          amount: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Card.ChipData.Chip.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Card.ChipData.Chip();
      return proto.mtf.Card.ChipData.Chip.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Card.ChipData.Chip.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setAmount(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Card.ChipData.Chip.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Card.ChipData.Chip.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Card.ChipData.Chip.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getAmount();
      0 !== f && writer.writeUint32(2, f);
    };
    proto.mtf.Card.ChipData.Chip.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Card.ChipData.Chip.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Card.ChipData.Chip.prototype.getAmount = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Card.ChipData.Chip.prototype.setAmount = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Card.ChipData.Formula.repeatedFields_ = [ 6 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Card.ChipData.Formula.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Card.ChipData.Formula.toObject(opt_includeInstance, this);
      };
      proto.mtf.Card.ChipData.Formula.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          cardid: jspb.Message.getFieldWithDefault(msg, 2, 0),
          amount: jspb.Message.getFieldWithDefault(msg, 3, 0),
          max: jspb.Message.getFieldWithDefault(msg, 4, 0),
          redeemed: jspb.Message.getFieldWithDefault(msg, 5, 0),
          chipsList: jspb.Message.toObjectList(msg.getChipsList(), proto.mtf.Card.ChipData.Chip.toObject, includeInstance),
          sort: jspb.Message.getFieldWithDefault(msg, 7, 0),
          rank: jspb.Message.getFieldWithDefault(msg, 8, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Card.ChipData.Formula.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Card.ChipData.Formula();
      return proto.mtf.Card.ChipData.Formula.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Card.ChipData.Formula.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setCardid(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setAmount(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setMax(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setRedeemed(value);
          break;

         case 6:
          var value = new proto.mtf.Card.ChipData.Chip();
          reader.readMessage(value, proto.mtf.Card.ChipData.Chip.deserializeBinaryFromReader);
          msg.addChips(value);
          break;

         case 7:
          var value = reader.readUint32();
          msg.setSort(value);
          break;

         case 8:
          var value = reader.readUint32();
          msg.setRank(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Card.ChipData.Formula.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Card.ChipData.Formula.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Card.ChipData.Formula.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getCardid();
      0 !== f && writer.writeUint32(2, f);
      f = message.getAmount();
      0 !== f && writer.writeUint32(3, f);
      f = message.getMax();
      0 !== f && writer.writeUint32(4, f);
      f = message.getRedeemed();
      0 !== f && writer.writeUint32(5, f);
      f = message.getChipsList();
      f.length > 0 && writer.writeRepeatedMessage(6, f, proto.mtf.Card.ChipData.Chip.serializeBinaryToWriter);
      f = message.getSort();
      0 !== f && writer.writeUint32(7, f);
      f = message.getRank();
      0 !== f && writer.writeUint32(8, f);
    };
    proto.mtf.Card.ChipData.Formula.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Card.ChipData.Formula.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Card.ChipData.Formula.prototype.getCardid = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Card.ChipData.Formula.prototype.setCardid = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Card.ChipData.Formula.prototype.getAmount = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Card.ChipData.Formula.prototype.setAmount = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.Card.ChipData.Formula.prototype.getMax = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.Card.ChipData.Formula.prototype.setMax = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.Card.ChipData.Formula.prototype.getRedeemed = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.Card.ChipData.Formula.prototype.setRedeemed = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.Card.ChipData.Formula.prototype.getChipsList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Card.ChipData.Chip, 6);
    };
    proto.mtf.Card.ChipData.Formula.prototype.setChipsList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 6, value);
    };
    proto.mtf.Card.ChipData.Formula.prototype.addChips = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.mtf.Card.ChipData.Chip, opt_index);
    };
    proto.mtf.Card.ChipData.Formula.prototype.clearChipsList = function() {
      return this.setChipsList([]);
    };
    proto.mtf.Card.ChipData.Formula.prototype.getSort = function() {
      return jspb.Message.getFieldWithDefault(this, 7, 0);
    };
    proto.mtf.Card.ChipData.Formula.prototype.setSort = function(value) {
      return jspb.Message.setProto3IntField(this, 7, value);
    };
    proto.mtf.Card.ChipData.Formula.prototype.getRank = function() {
      return jspb.Message.getFieldWithDefault(this, 8, 0);
    };
    proto.mtf.Card.ChipData.Formula.prototype.setRank = function(value) {
      return jspb.Message.setProto3IntField(this, 8, value);
    };
    proto.mtf.Card.ChipData.prototype.getChipsList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Card.ChipData.Chip, 1);
    };
    proto.mtf.Card.ChipData.prototype.setChipsList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 1, value);
    };
    proto.mtf.Card.ChipData.prototype.addChips = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mtf.Card.ChipData.Chip, opt_index);
    };
    proto.mtf.Card.ChipData.prototype.clearChipsList = function() {
      return this.setChipsList([]);
    };
    proto.mtf.Card.ChipData.prototype.getStart = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Card.ChipData.prototype.setStart = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.Card.ChipData.prototype.getEnd = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.Card.ChipData.prototype.setEnd = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.Card.ChipData.prototype.getFormulasList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Card.ChipData.Formula, 5);
    };
    proto.mtf.Card.ChipData.prototype.setFormulasList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 5, value);
    };
    proto.mtf.Card.ChipData.prototype.addFormulas = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.mtf.Card.ChipData.Formula, opt_index);
    };
    proto.mtf.Card.ChipData.prototype.clearFormulasList = function() {
      return this.setFormulasList([]);
    };
    proto.mtf.Card.prototype.getListList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Card.Data, 1);
    };
    proto.mtf.Card.prototype.setListList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 1, value);
    };
    proto.mtf.Card.prototype.addList = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mtf.Card.Data, opt_index);
    };
    proto.mtf.Card.prototype.clearListList = function() {
      return this.setListList([]);
    };
    proto.mtf.Card.prototype.getMessageList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Card.Message, 2);
    };
    proto.mtf.Card.prototype.setMessageList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.Card.prototype.addMessage = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.Card.Message, opt_index);
    };
    proto.mtf.Card.prototype.clearMessageList = function() {
      return this.setMessageList([]);
    };
    proto.mtf.Card.prototype.getChipList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Card.ChipData, 3);
    };
    proto.mtf.Card.prototype.setChipList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 3, value);
    };
    proto.mtf.Card.prototype.addChip = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.mtf.Card.ChipData, opt_index);
    };
    proto.mtf.Card.prototype.clearChipList = function() {
      return this.setChipList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.RedeemRequest.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.RedeemRequest.toObject(opt_includeInstance, this);
      };
      proto.mtf.RedeemRequest.toObject = function(includeInstance, msg) {
        var f, obj = {
          formulaid: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.RedeemRequest.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.RedeemRequest();
      return proto.mtf.RedeemRequest.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.RedeemRequest.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setFormulaid(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.RedeemRequest.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.RedeemRequest.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.RedeemRequest.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getFormulaid();
      0 !== f && writer.writeUint32(1, f);
    };
    proto.mtf.RedeemRequest.prototype.getFormulaid = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.RedeemRequest.prototype.setFormulaid = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.RedeemAck.repeatedFields_ = [ 1 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.RedeemAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.RedeemAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.RedeemAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          chipsList: jspb.Message.toObjectList(msg.getChipsList(), proto.mtf.Card.ChipData.Chip.toObject, includeInstance),
          formulaid: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.RedeemAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.RedeemAck();
      return proto.mtf.RedeemAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.RedeemAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = new proto.mtf.Card.ChipData.Chip();
          reader.readMessage(value, proto.mtf.Card.ChipData.Chip.deserializeBinaryFromReader);
          msg.addChips(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setFormulaid(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.RedeemAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.RedeemAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.RedeemAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getChipsList();
      f.length > 0 && writer.writeRepeatedMessage(1, f, proto.mtf.Card.ChipData.Chip.serializeBinaryToWriter);
      f = message.getFormulaid();
      0 !== f && writer.writeUint32(2, f);
    };
    proto.mtf.RedeemAck.prototype.getChipsList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Card.ChipData.Chip, 1);
    };
    proto.mtf.RedeemAck.prototype.setChipsList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 1, value);
    };
    proto.mtf.RedeemAck.prototype.addChips = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mtf.Card.ChipData.Chip, opt_index);
    };
    proto.mtf.RedeemAck.prototype.clearChipsList = function() {
      return this.setChipsList([]);
    };
    proto.mtf.RedeemAck.prototype.getFormulaid = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.RedeemAck.prototype.setFormulaid = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.CardUseReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.CardUseReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.CardUseReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          index: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.CardUseReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.CardUseReq();
      return proto.mtf.CardUseReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.CardUseReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setIndex(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.CardUseReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.CardUseReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.CardUseReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getIndex();
      0 !== f && writer.writeUint32(1, f);
    };
    proto.mtf.CardUseReq.prototype.getIndex = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.CardUseReq.prototype.setIndex = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.CardUseAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.CardUseAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.CardUseAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          index: jspb.Message.getFieldWithDefault(msg, 1, 0),
          value: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          seat: jspb.Message.getFieldWithDefault(msg, 3, 0),
          success: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
          cardid: jspb.Message.getFieldWithDefault(msg, 5, 0),
          type: jspb.Message.getFieldWithDefault(msg, 6, 0),
          param1: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0),
          param2: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0),
          param3: jspb.Message.getFloatingPointFieldWithDefault(msg, 9, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.CardUseAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.CardUseAck();
      return proto.mtf.CardUseAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.CardUseAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setIndex(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setValue(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 4:
          var value = reader.readBool();
          msg.setSuccess(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setCardid(value);
          break;

         case 6:
          var value = reader.readUint32();
          msg.setType(value);
          break;

         case 7:
          var value = reader.readDouble();
          msg.setParam1(value);
          break;

         case 8:
          var value = reader.readDouble();
          msg.setParam2(value);
          break;

         case 9:
          var value = reader.readDouble();
          msg.setParam3(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.CardUseAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.CardUseAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.CardUseAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getIndex();
      0 !== f && writer.writeUint32(1, f);
      f = message.getValue();
      0 !== f && writer.writeDouble(2, f);
      f = message.getSeat();
      0 !== f && writer.writeUint32(3, f);
      f = message.getSuccess();
      f && writer.writeBool(4, f);
      f = message.getCardid();
      0 !== f && writer.writeUint32(5, f);
      f = message.getType();
      0 !== f && writer.writeUint32(6, f);
      f = message.getParam1();
      0 !== f && writer.writeDouble(7, f);
      f = message.getParam2();
      0 !== f && writer.writeDouble(8, f);
      f = message.getParam3();
      0 !== f && writer.writeDouble(9, f);
    };
    proto.mtf.CardUseAck.prototype.getIndex = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.CardUseAck.prototype.setIndex = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.CardUseAck.prototype.getValue = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.CardUseAck.prototype.setValue = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.CardUseAck.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.CardUseAck.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.CardUseAck.prototype.getSuccess = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 4, false);
    };
    proto.mtf.CardUseAck.prototype.setSuccess = function(value) {
      return jspb.Message.setProto3BooleanField(this, 4, value);
    };
    proto.mtf.CardUseAck.prototype.getCardid = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.CardUseAck.prototype.setCardid = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.CardUseAck.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 6, 0);
    };
    proto.mtf.CardUseAck.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 6, value);
    };
    proto.mtf.CardUseAck.prototype.getParam1 = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0);
    };
    proto.mtf.CardUseAck.prototype.setParam1 = function(value) {
      return jspb.Message.setProto3FloatField(this, 7, value);
    };
    proto.mtf.CardUseAck.prototype.getParam2 = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0);
    };
    proto.mtf.CardUseAck.prototype.setParam2 = function(value) {
      return jspb.Message.setProto3FloatField(this, 8, value);
    };
    proto.mtf.CardUseAck.prototype.getParam3 = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 9, 0);
    };
    proto.mtf.CardUseAck.prototype.setParam3 = function(value) {
      return jspb.Message.setProto3FloatField(this, 9, value);
    };
    proto.mtf.TimelineNotify2.repeatedFields_ = [ 4, 5 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.TimelineNotify2.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.TimelineNotify2.toObject(opt_includeInstance, this);
      };
      proto.mtf.TimelineNotify2.toObject = function(includeInstance, msg) {
        var f, obj = {
          serial: jspb.Message.getFieldWithDefault(msg, 1, 0),
          time: jspb.Message.getFieldWithDefault(msg, 2, 0),
          pause: jspb.Message.getFieldWithDefault(msg, 3, 0),
          groupList: jspb.Message.toObjectList(msg.getGroupList(), proto.mtf.SubData.Group.toObject, includeInstance),
          deadList: null == (f = jspb.Message.getRepeatedField(msg, 5)) ? void 0 : f
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.TimelineNotify2.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.TimelineNotify2();
      return proto.mtf.TimelineNotify2.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.TimelineNotify2.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSerial(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setTime(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setPause(value);
          break;

         case 4:
          var value = new proto.mtf.SubData.Group();
          reader.readMessage(value, proto.mtf.SubData.Group.deserializeBinaryFromReader);
          msg.addGroup(value);
          break;

         case 5:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addDead(values[i]);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.TimelineNotify2.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.TimelineNotify2.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.TimelineNotify2.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSerial();
      0 !== f && writer.writeUint32(1, f);
      f = message.getTime();
      0 !== f && writer.writeUint32(2, f);
      f = message.getPause();
      0 !== f && writer.writeUint32(3, f);
      f = message.getGroupList();
      f.length > 0 && writer.writeRepeatedMessage(4, f, proto.mtf.SubData.Group.serializeBinaryToWriter);
      f = message.getDeadList();
      f.length > 0 && writer.writePackedUint32(5, f);
    };
    proto.mtf.TimelineNotify2.prototype.getSerial = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.TimelineNotify2.prototype.setSerial = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.TimelineNotify2.prototype.getTime = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.TimelineNotify2.prototype.setTime = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.TimelineNotify2.prototype.getPause = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.TimelineNotify2.prototype.setPause = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.TimelineNotify2.prototype.getGroupList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.SubData.Group, 4);
    };
    proto.mtf.TimelineNotify2.prototype.setGroupList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 4, value);
    };
    proto.mtf.TimelineNotify2.prototype.addGroup = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.mtf.SubData.Group, opt_index);
    };
    proto.mtf.TimelineNotify2.prototype.clearGroupList = function() {
      return this.setGroupList([]);
    };
    proto.mtf.TimelineNotify2.prototype.getDeadList = function() {
      return jspb.Message.getRepeatedField(this, 5);
    };
    proto.mtf.TimelineNotify2.prototype.setDeadList = function(value) {
      return jspb.Message.setField(this, 5, value || []);
    };
    proto.mtf.TimelineNotify2.prototype.addDead = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 5, value, opt_index);
    };
    proto.mtf.TimelineNotify2.prototype.clearDeadList = function() {
      return this.setDeadList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.TimelineAdd.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.TimelineAdd.toObject(opt_includeInstance, this);
      };
      proto.mtf.TimelineAdd.toObject = function(includeInstance, msg) {
        var f, obj = {
          group: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.TimelineAdd.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.TimelineAdd();
      return proto.mtf.TimelineAdd.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.TimelineAdd.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setGroup(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.TimelineAdd.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.TimelineAdd.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.TimelineAdd.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getGroup();
      0 !== f && writer.writeUint32(1, f);
    };
    proto.mtf.TimelineAdd.prototype.getGroup = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.TimelineAdd.prototype.setGroup = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.TimelinePause.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.TimelinePause.toObject(opt_includeInstance, this);
      };
      proto.mtf.TimelinePause.toObject = function(includeInstance, msg) {
        var f, obj = {
          pause: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.TimelinePause.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.TimelinePause();
      return proto.mtf.TimelinePause.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.TimelinePause.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setPause(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.TimelinePause.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.TimelinePause.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.TimelinePause.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getPause();
      0 !== f && writer.writeUint32(1, f);
    };
    proto.mtf.TimelinePause.prototype.getPause = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.TimelinePause.prototype.setPause = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.LoginData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.LoginData.toObject(opt_includeInstance, this);
      };
      proto.mtf.LoginData.toObject = function(includeInstance, msg) {
        var f, obj = {
          os: jspb.Message.getFieldWithDefault(msg, 1, ""),
          language: jspb.Message.getFieldWithDefault(msg, 2, ""),
          browser: (f = msg.getBrowser()) && proto.mtf.LoginData.Browser.toObject(includeInstance, f),
          version: jspb.Message.getFieldWithDefault(msg, 4, ""),
          model: jspb.Message.getFieldWithDefault(msg, 5, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.LoginData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.LoginData();
      return proto.mtf.LoginData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.LoginData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setOs(value);
          break;

         case 2:
          var value = reader.readString();
          msg.setLanguage(value);
          break;

         case 3:
          var value = new proto.mtf.LoginData.Browser();
          reader.readMessage(value, proto.mtf.LoginData.Browser.deserializeBinaryFromReader);
          msg.setBrowser(value);
          break;

         case 4:
          var value = reader.readString();
          msg.setVersion(value);
          break;

         case 5:
          var value = reader.readString();
          msg.setModel(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.LoginData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.LoginData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.LoginData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getOs();
      f.length > 0 && writer.writeString(1, f);
      f = message.getLanguage();
      f.length > 0 && writer.writeString(2, f);
      f = message.getBrowser();
      null != f && writer.writeMessage(3, f, proto.mtf.LoginData.Browser.serializeBinaryToWriter);
      f = message.getVersion();
      f.length > 0 && writer.writeString(4, f);
      f = message.getModel();
      f.length > 0 && writer.writeString(5, f);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.LoginData.Browser.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.LoginData.Browser.toObject(opt_includeInstance, this);
      };
      proto.mtf.LoginData.Browser.toObject = function(includeInstance, msg) {
        var f, obj = {
          type: jspb.Message.getFieldWithDefault(msg, 1, ""),
          version: jspb.Message.getFieldWithDefault(msg, 2, ""),
          language: jspb.Message.getFieldWithDefault(msg, 3, ""),
          width: jspb.Message.getFieldWithDefault(msg, 4, 0),
          height: jspb.Message.getFieldWithDefault(msg, 5, 0),
          ratio: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.LoginData.Browser.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.LoginData.Browser();
      return proto.mtf.LoginData.Browser.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.LoginData.Browser.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setType(value);
          break;

         case 2:
          var value = reader.readString();
          msg.setVersion(value);
          break;

         case 3:
          var value = reader.readString();
          msg.setLanguage(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setWidth(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setHeight(value);
          break;

         case 6:
          var value = reader.readFloat();
          msg.setRatio(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.LoginData.Browser.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.LoginData.Browser.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.LoginData.Browser.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getType();
      f.length > 0 && writer.writeString(1, f);
      f = message.getVersion();
      f.length > 0 && writer.writeString(2, f);
      f = message.getLanguage();
      f.length > 0 && writer.writeString(3, f);
      f = message.getWidth();
      0 !== f && writer.writeUint32(4, f);
      f = message.getHeight();
      0 !== f && writer.writeUint32(5, f);
      f = message.getRatio();
      0 !== f && writer.writeFloat(6, f);
    };
    proto.mtf.LoginData.Browser.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.LoginData.Browser.prototype.setType = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.LoginData.Browser.prototype.getVersion = function() {
      return jspb.Message.getFieldWithDefault(this, 2, "");
    };
    proto.mtf.LoginData.Browser.prototype.setVersion = function(value) {
      return jspb.Message.setProto3StringField(this, 2, value);
    };
    proto.mtf.LoginData.Browser.prototype.getLanguage = function() {
      return jspb.Message.getFieldWithDefault(this, 3, "");
    };
    proto.mtf.LoginData.Browser.prototype.setLanguage = function(value) {
      return jspb.Message.setProto3StringField(this, 3, value);
    };
    proto.mtf.LoginData.Browser.prototype.getWidth = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.LoginData.Browser.prototype.setWidth = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.LoginData.Browser.prototype.getHeight = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.LoginData.Browser.prototype.setHeight = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.LoginData.Browser.prototype.getRatio = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0);
    };
    proto.mtf.LoginData.Browser.prototype.setRatio = function(value) {
      return jspb.Message.setProto3FloatField(this, 6, value);
    };
    proto.mtf.LoginData.prototype.getOs = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.LoginData.prototype.setOs = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.LoginData.prototype.getLanguage = function() {
      return jspb.Message.getFieldWithDefault(this, 2, "");
    };
    proto.mtf.LoginData.prototype.setLanguage = function(value) {
      return jspb.Message.setProto3StringField(this, 2, value);
    };
    proto.mtf.LoginData.prototype.getBrowser = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.LoginData.Browser, 3);
    };
    proto.mtf.LoginData.prototype.setBrowser = function(value) {
      return jspb.Message.setWrapperField(this, 3, value);
    };
    proto.mtf.LoginData.prototype.clearBrowser = function() {
      return this.setBrowser(void 0);
    };
    proto.mtf.LoginData.prototype.hasBrowser = function() {
      return null != jspb.Message.getField(this, 3);
    };
    proto.mtf.LoginData.prototype.getVersion = function() {
      return jspb.Message.getFieldWithDefault(this, 4, "");
    };
    proto.mtf.LoginData.prototype.setVersion = function(value) {
      return jspb.Message.setProto3StringField(this, 4, value);
    };
    proto.mtf.LoginData.prototype.getModel = function() {
      return jspb.Message.getFieldWithDefault(this, 5, "");
    };
    proto.mtf.LoginData.prototype.setModel = function(value) {
      return jspb.Message.setProto3StringField(this, 5, value);
    };
    proto.mtf.Favorite.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Favorite.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Favorite.toObject(opt_includeInstance, this);
      };
      proto.mtf.Favorite.toObject = function(includeInstance, msg) {
        var f, obj = {
          enabled: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
          listList: jspb.Message.toObjectList(msg.getListList(), proto.mtf.Favorite.Info.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Favorite.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Favorite();
      return proto.mtf.Favorite.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Favorite.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readBool();
          msg.setEnabled(value);
          break;

         case 2:
          var value = new proto.mtf.Favorite.Info();
          reader.readMessage(value, proto.mtf.Favorite.Info.deserializeBinaryFromReader);
          msg.addList(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Favorite.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Favorite.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Favorite.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getEnabled();
      f && writer.writeBool(1, f);
      f = message.getListList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.Favorite.Info.serializeBinaryToWriter);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Favorite.Info.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Favorite.Info.toObject(opt_includeInstance, this);
      };
      proto.mtf.Favorite.Info.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          dau: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Favorite.Info.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Favorite.Info();
      return proto.mtf.Favorite.Info.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Favorite.Info.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setDau(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Favorite.Info.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Favorite.Info.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Favorite.Info.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getDau();
      0 !== f && writer.writeUint32(2, f);
    };
    proto.mtf.Favorite.Info.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Favorite.Info.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Favorite.Info.prototype.getDau = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Favorite.Info.prototype.setDau = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Favorite.prototype.getEnabled = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 1, false);
    };
    proto.mtf.Favorite.prototype.setEnabled = function(value) {
      return jspb.Message.setProto3BooleanField(this, 1, value);
    };
    proto.mtf.Favorite.prototype.getListList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Favorite.Info, 2);
    };
    proto.mtf.Favorite.prototype.setListList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.Favorite.prototype.addList = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.Favorite.Info, opt_index);
    };
    proto.mtf.Favorite.prototype.clearListList = function() {
      return this.setListList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ItemRequest.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ItemRequest.toObject(opt_includeInstance, this);
      };
      proto.mtf.ItemRequest.toObject = function(includeInstance, msg) {
        var f, obj = {
          lang: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ItemRequest.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ItemRequest();
      return proto.mtf.ItemRequest.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ItemRequest.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setLang(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ItemRequest.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ItemRequest.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ItemRequest.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getLang();
      0 !== f && writer.writeUint32(1, f);
    };
    proto.mtf.ItemRequest.prototype.getLang = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ItemRequest.prototype.setLang = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ItemUseRequest.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ItemUseRequest.toObject(opt_includeInstance, this);
      };
      proto.mtf.ItemUseRequest.toObject = function(includeInstance, msg) {
        var f, obj = {
          idx: jspb.Message.getFieldWithDefault(msg, 1, 0),
          id: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ItemUseRequest.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ItemUseRequest();
      return proto.mtf.ItemUseRequest.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ItemUseRequest.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setIdx(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ItemUseRequest.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ItemUseRequest.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ItemUseRequest.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getIdx();
      0 !== f && writer.writeUint32(1, f);
      f = message.getId();
      0 !== f && writer.writeUint32(2, f);
    };
    proto.mtf.ItemUseRequest.prototype.getIdx = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ItemUseRequest.prototype.setIdx = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.ItemUseRequest.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.ItemUseRequest.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ItemUseAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ItemUseAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.ItemUseAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          idx: jspb.Message.getFieldWithDefault(msg, 2, 0),
          id: jspb.Message.getFieldWithDefault(msg, 3, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          success: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
          source: jspb.Message.getFieldWithDefault(msg, 6, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ItemUseAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ItemUseAck();
      return proto.mtf.ItemUseAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ItemUseAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setIdx(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 5:
          var value = reader.readBool();
          msg.setSuccess(value);
          break;

         case 6:
          var value = reader.readUint32();
          msg.setSource(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ItemUseAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ItemUseAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ItemUseAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getBet();
      0 !== f && writer.writeDouble(1, f);
      f = message.getIdx();
      0 !== f && writer.writeUint32(2, f);
      f = message.getId();
      0 !== f && writer.writeUint32(3, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(4, f);
      f = message.getSuccess();
      f && writer.writeBool(5, f);
      f = message.getSource();
      0 !== f && writer.writeUint32(6, f);
    };
    proto.mtf.ItemUseAck.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ItemUseAck.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.ItemUseAck.prototype.getIdx = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.ItemUseAck.prototype.setIdx = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.ItemUseAck.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.ItemUseAck.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.ItemUseAck.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.ItemUseAck.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.ItemUseAck.prototype.getSuccess = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 5, false);
    };
    proto.mtf.ItemUseAck.prototype.setSuccess = function(value) {
      return jspb.Message.setProto3BooleanField(this, 5, value);
    };
    proto.mtf.ItemUseAck.prototype.getSource = function() {
      return jspb.Message.getFieldWithDefault(this, 6, 0);
    };
    proto.mtf.ItemUseAck.prototype.setSource = function(value) {
      return jspb.Message.setProto3IntField(this, 6, value);
    };
    proto.mtf.Item.repeatedFields_ = [ 2, 3 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Item.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Item.toObject(opt_includeInstance, this);
      };
      proto.mtf.Item.toObject = function(includeInstance, msg) {
        var f, obj = {
          result: jspb.Message.getFieldWithDefault(msg, 1, 0),
          infoList: jspb.Message.toObjectList(msg.getInfoList(), proto.mtf.Item.Info.toObject, includeInstance),
          mailList: jspb.Message.toObjectList(msg.getMailList(), proto.mtf.Item.Mail.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Item.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Item();
      return proto.mtf.Item.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Item.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setResult(value);
          break;

         case 2:
          var value = new proto.mtf.Item.Info();
          reader.readMessage(value, proto.mtf.Item.Info.deserializeBinaryFromReader);
          msg.addInfo(value);
          break;

         case 3:
          var value = new proto.mtf.Item.Mail();
          reader.readMessage(value, proto.mtf.Item.Mail.deserializeBinaryFromReader);
          msg.addMail(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Item.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Item.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Item.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getResult();
      0 !== f && writer.writeUint32(1, f);
      f = message.getInfoList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.Item.Info.serializeBinaryToWriter);
      f = message.getMailList();
      f.length > 0 && writer.writeRepeatedMessage(3, f, proto.mtf.Item.Mail.serializeBinaryToWriter);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Item.Info.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Item.Info.toObject(opt_includeInstance, this);
      };
      proto.mtf.Item.Info.toObject = function(includeInstance, msg) {
        var f, obj = {
          index: jspb.Message.getFieldWithDefault(msg, 1, 0),
          id: jspb.Message.getFieldWithDefault(msg, 2, 0),
          amount: jspb.Message.getFieldWithDefault(msg, 3, 0),
          gameid: jspb.Message.getFieldWithDefault(msg, 4, 0),
          lvmin: jspb.Message.getFieldWithDefault(msg, 5, 0),
          lvmax: jspb.Message.getFieldWithDefault(msg, 6, 0),
          coinlimit: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0),
          dailyremaintimes: jspb.Message.getFieldWithDefault(msg, 9, 0),
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 12, 0),
          spinpaytype: jspb.Message.getFieldWithDefault(msg, 14, 0),
          givetype: jspb.Message.getFloatingPointFieldWithDefault(msg, 15, 0),
          wintype: jspb.Message.getFieldWithDefault(msg, 16, 0),
          winmultiplier: jspb.Message.getFloatingPointFieldWithDefault(msg, 17, 0),
          winmaxmag: jspb.Message.getFloatingPointFieldWithDefault(msg, 18, 0),
          winmagset: jspb.Message.getFieldWithDefault(msg, 19, 0),
          itemvalue: jspb.Message.getFloatingPointFieldWithDefault(msg, 20, 0),
          itemname: jspb.Message.getFieldWithDefault(msg, 21, ""),
          icon: jspb.Message.getFieldWithDefault(msg, 22, 0),
          banreason: jspb.Message.getFieldWithDefault(msg, 23, 0),
          itemdesc: jspb.Message.getFieldWithDefault(msg, 24, ""),
          star: jspb.Message.getFieldWithDefault(msg, 25, 0),
          gamename: jspb.Message.getFieldWithDefault(msg, 26, ""),
          currencynumber: jspb.Message.getFieldWithDefault(msg, 27, 0),
          start: jspb.Message.getFieldWithDefault(msg, 28, 0),
          expired: jspb.Message.getFieldWithDefault(msg, 29, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Item.Info.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Item.Info();
      return proto.mtf.Item.Info.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Item.Info.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setIndex(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setAmount(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setGameid(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setLvmin(value);
          break;

         case 6:
          var value = reader.readUint32();
          msg.setLvmax(value);
          break;

         case 7:
          var value = reader.readDouble();
          msg.setCoinlimit(value);
          break;

         case 9:
          var value = reader.readUint32();
          msg.setDailyremaintimes(value);
          break;

         case 12:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 14:
          var value = reader.readUint32();
          msg.setSpinpaytype(value);
          break;

         case 15:
          var value = reader.readDouble();
          msg.setGivetype(value);
          break;

         case 16:
          var value = reader.readUint32();
          msg.setWintype(value);
          break;

         case 17:
          var value = reader.readDouble();
          msg.setWinmultiplier(value);
          break;

         case 18:
          var value = reader.readDouble();
          msg.setWinmaxmag(value);
          break;

         case 19:
          var value = reader.readUint32();
          msg.setWinmagset(value);
          break;

         case 20:
          var value = reader.readDouble();
          msg.setItemvalue(value);
          break;

         case 21:
          var value = reader.readString();
          msg.setItemname(value);
          break;

         case 22:
          var value = reader.readUint32();
          msg.setIcon(value);
          break;

         case 23:
          var value = reader.readUint32();
          msg.setBanreason(value);
          break;

         case 24:
          var value = reader.readString();
          msg.setItemdesc(value);
          break;

         case 25:
          var value = reader.readUint32();
          msg.setStar(value);
          break;

         case 26:
          var value = reader.readString();
          msg.setGamename(value);
          break;

         case 27:
          var value = reader.readUint32();
          msg.setCurrencynumber(value);
          break;

         case 28:
          var value = reader.readInt64();
          msg.setStart(value);
          break;

         case 29:
          var value = reader.readInt64();
          msg.setExpired(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Item.Info.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Item.Info.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Item.Info.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getIndex();
      0 !== f && writer.writeUint32(1, f);
      f = message.getId();
      0 !== f && writer.writeUint32(2, f);
      f = message.getAmount();
      0 !== f && writer.writeUint32(3, f);
      f = message.getGameid();
      0 !== f && writer.writeUint32(4, f);
      f = message.getLvmin();
      0 !== f && writer.writeUint32(5, f);
      f = message.getLvmax();
      0 !== f && writer.writeUint32(6, f);
      f = message.getCoinlimit();
      0 !== f && writer.writeDouble(7, f);
      f = message.getDailyremaintimes();
      0 !== f && writer.writeUint32(9, f);
      f = message.getBet();
      0 !== f && writer.writeDouble(12, f);
      f = message.getSpinpaytype();
      0 !== f && writer.writeUint32(14, f);
      f = message.getGivetype();
      0 !== f && writer.writeDouble(15, f);
      f = message.getWintype();
      0 !== f && writer.writeUint32(16, f);
      f = message.getWinmultiplier();
      0 !== f && writer.writeDouble(17, f);
      f = message.getWinmaxmag();
      0 !== f && writer.writeDouble(18, f);
      f = message.getWinmagset();
      0 !== f && writer.writeUint32(19, f);
      f = message.getItemvalue();
      0 !== f && writer.writeDouble(20, f);
      f = message.getItemname();
      f.length > 0 && writer.writeString(21, f);
      f = message.getIcon();
      0 !== f && writer.writeUint32(22, f);
      f = message.getBanreason();
      0 !== f && writer.writeUint32(23, f);
      f = message.getItemdesc();
      f.length > 0 && writer.writeString(24, f);
      f = message.getStar();
      0 !== f && writer.writeUint32(25, f);
      f = message.getGamename();
      f.length > 0 && writer.writeString(26, f);
      f = message.getCurrencynumber();
      0 !== f && writer.writeUint32(27, f);
      f = message.getStart();
      0 !== f && writer.writeInt64(28, f);
      f = message.getExpired();
      0 !== f && writer.writeInt64(29, f);
    };
    proto.mtf.Item.Info.prototype.getIndex = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Item.Info.prototype.setIndex = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Item.Info.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Item.Info.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Item.Info.prototype.getAmount = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Item.Info.prototype.setAmount = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.Item.Info.prototype.getGameid = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.Item.Info.prototype.setGameid = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.Item.Info.prototype.getLvmin = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.Item.Info.prototype.setLvmin = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.Item.Info.prototype.getLvmax = function() {
      return jspb.Message.getFieldWithDefault(this, 6, 0);
    };
    proto.mtf.Item.Info.prototype.setLvmax = function(value) {
      return jspb.Message.setProto3IntField(this, 6, value);
    };
    proto.mtf.Item.Info.prototype.getCoinlimit = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0);
    };
    proto.mtf.Item.Info.prototype.setCoinlimit = function(value) {
      return jspb.Message.setProto3FloatField(this, 7, value);
    };
    proto.mtf.Item.Info.prototype.getDailyremaintimes = function() {
      return jspb.Message.getFieldWithDefault(this, 9, 0);
    };
    proto.mtf.Item.Info.prototype.setDailyremaintimes = function(value) {
      return jspb.Message.setProto3IntField(this, 9, value);
    };
    proto.mtf.Item.Info.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 12, 0);
    };
    proto.mtf.Item.Info.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 12, value);
    };
    proto.mtf.Item.Info.prototype.getSpinpaytype = function() {
      return jspb.Message.getFieldWithDefault(this, 14, 0);
    };
    proto.mtf.Item.Info.prototype.setSpinpaytype = function(value) {
      return jspb.Message.setProto3IntField(this, 14, value);
    };
    proto.mtf.Item.Info.prototype.getGivetype = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 15, 0);
    };
    proto.mtf.Item.Info.prototype.setGivetype = function(value) {
      return jspb.Message.setProto3FloatField(this, 15, value);
    };
    proto.mtf.Item.Info.prototype.getWintype = function() {
      return jspb.Message.getFieldWithDefault(this, 16, 0);
    };
    proto.mtf.Item.Info.prototype.setWintype = function(value) {
      return jspb.Message.setProto3IntField(this, 16, value);
    };
    proto.mtf.Item.Info.prototype.getWinmultiplier = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 17, 0);
    };
    proto.mtf.Item.Info.prototype.setWinmultiplier = function(value) {
      return jspb.Message.setProto3FloatField(this, 17, value);
    };
    proto.mtf.Item.Info.prototype.getWinmaxmag = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 18, 0);
    };
    proto.mtf.Item.Info.prototype.setWinmaxmag = function(value) {
      return jspb.Message.setProto3FloatField(this, 18, value);
    };
    proto.mtf.Item.Info.prototype.getWinmagset = function() {
      return jspb.Message.getFieldWithDefault(this, 19, 0);
    };
    proto.mtf.Item.Info.prototype.setWinmagset = function(value) {
      return jspb.Message.setProto3IntField(this, 19, value);
    };
    proto.mtf.Item.Info.prototype.getItemvalue = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 20, 0);
    };
    proto.mtf.Item.Info.prototype.setItemvalue = function(value) {
      return jspb.Message.setProto3FloatField(this, 20, value);
    };
    proto.mtf.Item.Info.prototype.getItemname = function() {
      return jspb.Message.getFieldWithDefault(this, 21, "");
    };
    proto.mtf.Item.Info.prototype.setItemname = function(value) {
      return jspb.Message.setProto3StringField(this, 21, value);
    };
    proto.mtf.Item.Info.prototype.getIcon = function() {
      return jspb.Message.getFieldWithDefault(this, 22, 0);
    };
    proto.mtf.Item.Info.prototype.setIcon = function(value) {
      return jspb.Message.setProto3IntField(this, 22, value);
    };
    proto.mtf.Item.Info.prototype.getBanreason = function() {
      return jspb.Message.getFieldWithDefault(this, 23, 0);
    };
    proto.mtf.Item.Info.prototype.setBanreason = function(value) {
      return jspb.Message.setProto3IntField(this, 23, value);
    };
    proto.mtf.Item.Info.prototype.getItemdesc = function() {
      return jspb.Message.getFieldWithDefault(this, 24, "");
    };
    proto.mtf.Item.Info.prototype.setItemdesc = function(value) {
      return jspb.Message.setProto3StringField(this, 24, value);
    };
    proto.mtf.Item.Info.prototype.getStar = function() {
      return jspb.Message.getFieldWithDefault(this, 25, 0);
    };
    proto.mtf.Item.Info.prototype.setStar = function(value) {
      return jspb.Message.setProto3IntField(this, 25, value);
    };
    proto.mtf.Item.Info.prototype.getGamename = function() {
      return jspb.Message.getFieldWithDefault(this, 26, "");
    };
    proto.mtf.Item.Info.prototype.setGamename = function(value) {
      return jspb.Message.setProto3StringField(this, 26, value);
    };
    proto.mtf.Item.Info.prototype.getCurrencynumber = function() {
      return jspb.Message.getFieldWithDefault(this, 27, 0);
    };
    proto.mtf.Item.Info.prototype.setCurrencynumber = function(value) {
      return jspb.Message.setProto3IntField(this, 27, value);
    };
    proto.mtf.Item.Info.prototype.getStart = function() {
      return jspb.Message.getFieldWithDefault(this, 28, 0);
    };
    proto.mtf.Item.Info.prototype.setStart = function(value) {
      return jspb.Message.setProto3IntField(this, 28, value);
    };
    proto.mtf.Item.Info.prototype.getExpired = function() {
      return jspb.Message.getFieldWithDefault(this, 29, 0);
    };
    proto.mtf.Item.Info.prototype.setExpired = function(value) {
      return jspb.Message.setProto3IntField(this, 29, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Item.Mail.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Item.Mail.toObject(opt_includeInstance, this);
      };
      proto.mtf.Item.Mail.toObject = function(includeInstance, msg) {
        var f, obj = {
          idx: jspb.Message.getFieldWithDefault(msg, 1, 0),
          source: jspb.Message.getFieldWithDefault(msg, 2, 0),
          isread: jspb.Message.getFieldWithDefault(msg, 3, 0),
          action: jspb.Message.getFieldWithDefault(msg, 4, 0),
          gameid: jspb.Message.getFieldWithDefault(msg, 5, 0),
          itemid: jspb.Message.getFieldWithDefault(msg, 6, 0),
          amount: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0),
          star: jspb.Message.getFieldWithDefault(msg, 8, 0),
          wintype: jspb.Message.getFieldWithDefault(msg, 9, 0),
          createtime: jspb.Message.getFieldWithDefault(msg, 10, ""),
          message: jspb.Message.getFieldWithDefault(msg, 11, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Item.Mail.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Item.Mail();
      return proto.mtf.Item.Mail.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Item.Mail.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setIdx(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setSource(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setIsread(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setAction(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setGameid(value);
          break;

         case 6:
          var value = reader.readUint32();
          msg.setItemid(value);
          break;

         case 7:
          var value = reader.readDouble();
          msg.setAmount(value);
          break;

         case 8:
          var value = reader.readUint32();
          msg.setStar(value);
          break;

         case 9:
          var value = reader.readUint32();
          msg.setWintype(value);
          break;

         case 10:
          var value = reader.readString();
          msg.setCreatetime(value);
          break;

         case 11:
          var value = reader.readString();
          msg.setMessage(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Item.Mail.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Item.Mail.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Item.Mail.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getIdx();
      0 !== f && writer.writeUint32(1, f);
      f = message.getSource();
      0 !== f && writer.writeUint32(2, f);
      f = message.getIsread();
      0 !== f && writer.writeUint32(3, f);
      f = message.getAction();
      0 !== f && writer.writeUint32(4, f);
      f = message.getGameid();
      0 !== f && writer.writeUint32(5, f);
      f = message.getItemid();
      0 !== f && writer.writeUint32(6, f);
      f = message.getAmount();
      0 !== f && writer.writeDouble(7, f);
      f = message.getStar();
      0 !== f && writer.writeUint32(8, f);
      f = message.getWintype();
      0 !== f && writer.writeUint32(9, f);
      f = message.getCreatetime();
      f.length > 0 && writer.writeString(10, f);
      f = message.getMessage();
      f.length > 0 && writer.writeString(11, f);
    };
    proto.mtf.Item.Mail.prototype.getIdx = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Item.Mail.prototype.setIdx = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Item.Mail.prototype.getSource = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Item.Mail.prototype.setSource = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Item.Mail.prototype.getIsread = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Item.Mail.prototype.setIsread = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.Item.Mail.prototype.getAction = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.Item.Mail.prototype.setAction = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.Item.Mail.prototype.getGameid = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.Item.Mail.prototype.setGameid = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.Item.Mail.prototype.getItemid = function() {
      return jspb.Message.getFieldWithDefault(this, 6, 0);
    };
    proto.mtf.Item.Mail.prototype.setItemid = function(value) {
      return jspb.Message.setProto3IntField(this, 6, value);
    };
    proto.mtf.Item.Mail.prototype.getAmount = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0);
    };
    proto.mtf.Item.Mail.prototype.setAmount = function(value) {
      return jspb.Message.setProto3FloatField(this, 7, value);
    };
    proto.mtf.Item.Mail.prototype.getStar = function() {
      return jspb.Message.getFieldWithDefault(this, 8, 0);
    };
    proto.mtf.Item.Mail.prototype.setStar = function(value) {
      return jspb.Message.setProto3IntField(this, 8, value);
    };
    proto.mtf.Item.Mail.prototype.getWintype = function() {
      return jspb.Message.getFieldWithDefault(this, 9, 0);
    };
    proto.mtf.Item.Mail.prototype.setWintype = function(value) {
      return jspb.Message.setProto3IntField(this, 9, value);
    };
    proto.mtf.Item.Mail.prototype.getCreatetime = function() {
      return jspb.Message.getFieldWithDefault(this, 10, "");
    };
    proto.mtf.Item.Mail.prototype.setCreatetime = function(value) {
      return jspb.Message.setProto3StringField(this, 10, value);
    };
    proto.mtf.Item.Mail.prototype.getMessage = function() {
      return jspb.Message.getFieldWithDefault(this, 11, "");
    };
    proto.mtf.Item.Mail.prototype.setMessage = function(value) {
      return jspb.Message.setProto3StringField(this, 11, value);
    };
    proto.mtf.Item.prototype.getResult = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Item.prototype.setResult = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Item.prototype.getInfoList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Item.Info, 2);
    };
    proto.mtf.Item.prototype.setInfoList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.Item.prototype.addInfo = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.Item.Info, opt_index);
    };
    proto.mtf.Item.prototype.clearInfoList = function() {
      return this.setInfoList([]);
    };
    proto.mtf.Item.prototype.getMailList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Item.Mail, 3);
    };
    proto.mtf.Item.prototype.setMailList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 3, value);
    };
    proto.mtf.Item.prototype.addMail = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.mtf.Item.Mail, opt_index);
    };
    proto.mtf.Item.prototype.clearMailList = function() {
      return this.setMailList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.MissionRequest.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.MissionRequest.toObject(opt_includeInstance, this);
      };
      proto.mtf.MissionRequest.toObject = function(includeInstance, msg) {
        var f, obj = {
          lang: jspb.Message.getFieldWithDefault(msg, 1, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.MissionRequest.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.MissionRequest();
      return proto.mtf.MissionRequest.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.MissionRequest.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setLang(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.MissionRequest.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.MissionRequest.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.MissionRequest.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getLang();
      f.length > 0 && writer.writeString(1, f);
    };
    proto.mtf.MissionRequest.prototype.getLang = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.MissionRequest.prototype.setLang = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.Mission.repeatedFields_ = [ 2, 3, 4 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Mission.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Mission.toObject(opt_includeInstance, this);
      };
      proto.mtf.Mission.toObject = function(includeInstance, msg) {
        var f, obj = {
          endtime: jspb.Message.getFieldWithDefault(msg, 1, 0),
          infoList: jspb.Message.toObjectList(msg.getInfoList(), proto.mtf.Mission.Info.toObject, includeInstance),
          itemList: jspb.Message.toObjectList(msg.getItemList(), proto.mtf.Mission.Item.toObject, includeInstance),
          nextList: null == (f = jspb.Message.getRepeatedField(msg, 4)) ? void 0 : f
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Mission.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Mission();
      return proto.mtf.Mission.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Mission.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readInt64();
          msg.setEndtime(value);
          break;

         case 2:
          var value = new proto.mtf.Mission.Info();
          reader.readMessage(value, proto.mtf.Mission.Info.deserializeBinaryFromReader);
          msg.addInfo(value);
          break;

         case 3:
          var value = new proto.mtf.Mission.Item();
          reader.readMessage(value, proto.mtf.Mission.Item.deserializeBinaryFromReader);
          msg.addItem(value);
          break;

         case 4:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addNext(values[i]);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Mission.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Mission.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Mission.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getEndtime();
      0 !== f && writer.writeInt64(1, f);
      f = message.getInfoList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.Mission.Info.serializeBinaryToWriter);
      f = message.getItemList();
      f.length > 0 && writer.writeRepeatedMessage(3, f, proto.mtf.Mission.Item.serializeBinaryToWriter);
      f = message.getNextList();
      f.length > 0 && writer.writePackedUint32(4, f);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Mission.Info.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Mission.Info.toObject(opt_includeInstance, this);
      };
      proto.mtf.Mission.Info.toObject = function(includeInstance, msg) {
        var f, obj = {
          currentcount: jspb.Message.getFieldWithDefault(msg, 1, 0),
          totalcount: jspb.Message.getFieldWithDefault(msg, 2, 0),
          finished: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),
          itemcount: jspb.Message.getFieldWithDefault(msg, 4, 0),
          desc: jspb.Message.getFieldWithDefault(msg, 5, ""),
          type: jspb.Message.getFieldWithDefault(msg, 7, 0),
          vip: jspb.Message.getFieldWithDefault(msg, 8, 0),
          itemid: jspb.Message.getFieldWithDefault(msg, 9, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0),
          gameid: jspb.Message.getFieldWithDefault(msg, 11, 0),
          lock: jspb.Message.getBooleanFieldWithDefault(msg, 12, false),
          show: jspb.Message.getFieldWithDefault(msg, 13, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Mission.Info.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Mission.Info();
      return proto.mtf.Mission.Info.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Mission.Info.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setCurrentcount(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setTotalcount(value);
          break;

         case 3:
          var value = reader.readBool();
          msg.setFinished(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setItemcount(value);
          break;

         case 5:
          var value = reader.readString();
          msg.setDesc(value);
          break;

         case 7:
          var value = reader.readUint32();
          msg.setType(value);
          break;

         case 8:
          var value = reader.readUint32();
          msg.setVip(value);
          break;

         case 9:
          var value = reader.readUint32();
          msg.setItemid(value);
          break;

         case 10:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 11:
          var value = reader.readUint32();
          msg.setGameid(value);
          break;

         case 12:
          var value = reader.readBool();
          msg.setLock(value);
          break;

         case 13:
          var value = reader.readUint32();
          msg.setShow(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Mission.Info.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Mission.Info.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Mission.Info.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getCurrentcount();
      0 !== f && writer.writeUint32(1, f);
      f = message.getTotalcount();
      0 !== f && writer.writeUint32(2, f);
      f = message.getFinished();
      f && writer.writeBool(3, f);
      f = message.getItemcount();
      0 !== f && writer.writeUint32(4, f);
      f = message.getDesc();
      f.length > 0 && writer.writeString(5, f);
      f = message.getType();
      0 !== f && writer.writeUint32(7, f);
      f = message.getVip();
      0 !== f && writer.writeUint32(8, f);
      f = message.getItemid();
      0 !== f && writer.writeUint32(9, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(10, f);
      f = message.getGameid();
      0 !== f && writer.writeUint32(11, f);
      f = message.getLock();
      f && writer.writeBool(12, f);
      f = message.getShow();
      0 !== f && writer.writeUint32(13, f);
    };
    proto.mtf.Mission.Info.prototype.getCurrentcount = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Mission.Info.prototype.setCurrentcount = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Mission.Info.prototype.getTotalcount = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Mission.Info.prototype.setTotalcount = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Mission.Info.prototype.getFinished = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 3, false);
    };
    proto.mtf.Mission.Info.prototype.setFinished = function(value) {
      return jspb.Message.setProto3BooleanField(this, 3, value);
    };
    proto.mtf.Mission.Info.prototype.getItemcount = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.Mission.Info.prototype.setItemcount = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.Mission.Info.prototype.getDesc = function() {
      return jspb.Message.getFieldWithDefault(this, 5, "");
    };
    proto.mtf.Mission.Info.prototype.setDesc = function(value) {
      return jspb.Message.setProto3StringField(this, 5, value);
    };
    proto.mtf.Mission.Info.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 7, 0);
    };
    proto.mtf.Mission.Info.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 7, value);
    };
    proto.mtf.Mission.Info.prototype.getVip = function() {
      return jspb.Message.getFieldWithDefault(this, 8, 0);
    };
    proto.mtf.Mission.Info.prototype.setVip = function(value) {
      return jspb.Message.setProto3IntField(this, 8, value);
    };
    proto.mtf.Mission.Info.prototype.getItemid = function() {
      return jspb.Message.getFieldWithDefault(this, 9, 0);
    };
    proto.mtf.Mission.Info.prototype.setItemid = function(value) {
      return jspb.Message.setProto3IntField(this, 9, value);
    };
    proto.mtf.Mission.Info.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0);
    };
    proto.mtf.Mission.Info.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 10, value);
    };
    proto.mtf.Mission.Info.prototype.getGameid = function() {
      return jspb.Message.getFieldWithDefault(this, 11, 0);
    };
    proto.mtf.Mission.Info.prototype.setGameid = function(value) {
      return jspb.Message.setProto3IntField(this, 11, value);
    };
    proto.mtf.Mission.Info.prototype.getLock = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 12, false);
    };
    proto.mtf.Mission.Info.prototype.setLock = function(value) {
      return jspb.Message.setProto3BooleanField(this, 12, value);
    };
    proto.mtf.Mission.Info.prototype.getShow = function() {
      return jspb.Message.getFieldWithDefault(this, 13, 0);
    };
    proto.mtf.Mission.Info.prototype.setShow = function(value) {
      return jspb.Message.setProto3IntField(this, 13, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Mission.Item.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Mission.Item.toObject(opt_includeInstance, this);
      };
      proto.mtf.Mission.Item.toObject = function(includeInstance, msg) {
        var f, obj = {
          gamename: jspb.Message.getFieldWithDefault(msg, 1, ""),
          wintype: jspb.Message.getFieldWithDefault(msg, 2, 0),
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          game: jspb.Message.getFieldWithDefault(msg, 4, ""),
          icon: jspb.Message.getFieldWithDefault(msg, 5, 0),
          name: jspb.Message.getFieldWithDefault(msg, 6, ""),
          star: jspb.Message.getFieldWithDefault(msg, 7, 0),
          value: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0),
          gameid: jspb.Message.getFieldWithDefault(msg, 9, 0),
          id: jspb.Message.getFieldWithDefault(msg, 10, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Mission.Item.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Mission.Item();
      return proto.mtf.Mission.Item.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Mission.Item.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setGamename(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setWintype(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 4:
          var value = reader.readString();
          msg.setGame(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setIcon(value);
          break;

         case 6:
          var value = reader.readString();
          msg.setName(value);
          break;

         case 7:
          var value = reader.readUint32();
          msg.setStar(value);
          break;

         case 8:
          var value = reader.readDouble();
          msg.setValue(value);
          break;

         case 9:
          var value = reader.readUint32();
          msg.setGameid(value);
          break;

         case 10:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Mission.Item.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Mission.Item.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Mission.Item.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getGamename();
      f.length > 0 && writer.writeString(1, f);
      f = message.getWintype();
      0 !== f && writer.writeUint32(2, f);
      f = message.getBet();
      0 !== f && writer.writeDouble(3, f);
      f = message.getGame();
      f.length > 0 && writer.writeString(4, f);
      f = message.getIcon();
      0 !== f && writer.writeUint32(5, f);
      f = message.getName();
      f.length > 0 && writer.writeString(6, f);
      f = message.getStar();
      0 !== f && writer.writeUint32(7, f);
      f = message.getValue();
      0 !== f && writer.writeDouble(8, f);
      f = message.getGameid();
      0 !== f && writer.writeUint32(9, f);
      f = message.getId();
      0 !== f && writer.writeUint32(10, f);
    };
    proto.mtf.Mission.Item.prototype.getGamename = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.Mission.Item.prototype.setGamename = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.Mission.Item.prototype.getWintype = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Mission.Item.prototype.setWintype = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Mission.Item.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Mission.Item.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.Mission.Item.prototype.getGame = function() {
      return jspb.Message.getFieldWithDefault(this, 4, "");
    };
    proto.mtf.Mission.Item.prototype.setGame = function(value) {
      return jspb.Message.setProto3StringField(this, 4, value);
    };
    proto.mtf.Mission.Item.prototype.getIcon = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.Mission.Item.prototype.setIcon = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.Mission.Item.prototype.getName = function() {
      return jspb.Message.getFieldWithDefault(this, 6, "");
    };
    proto.mtf.Mission.Item.prototype.setName = function(value) {
      return jspb.Message.setProto3StringField(this, 6, value);
    };
    proto.mtf.Mission.Item.prototype.getStar = function() {
      return jspb.Message.getFieldWithDefault(this, 7, 0);
    };
    proto.mtf.Mission.Item.prototype.setStar = function(value) {
      return jspb.Message.setProto3IntField(this, 7, value);
    };
    proto.mtf.Mission.Item.prototype.getValue = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0);
    };
    proto.mtf.Mission.Item.prototype.setValue = function(value) {
      return jspb.Message.setProto3FloatField(this, 8, value);
    };
    proto.mtf.Mission.Item.prototype.getGameid = function() {
      return jspb.Message.getFieldWithDefault(this, 9, 0);
    };
    proto.mtf.Mission.Item.prototype.setGameid = function(value) {
      return jspb.Message.setProto3IntField(this, 9, value);
    };
    proto.mtf.Mission.Item.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 10, 0);
    };
    proto.mtf.Mission.Item.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 10, value);
    };
    proto.mtf.Mission.prototype.getEndtime = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Mission.prototype.setEndtime = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Mission.prototype.getInfoList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Mission.Info, 2);
    };
    proto.mtf.Mission.prototype.setInfoList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.Mission.prototype.addInfo = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.Mission.Info, opt_index);
    };
    proto.mtf.Mission.prototype.clearInfoList = function() {
      return this.setInfoList([]);
    };
    proto.mtf.Mission.prototype.getItemList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Mission.Item, 3);
    };
    proto.mtf.Mission.prototype.setItemList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 3, value);
    };
    proto.mtf.Mission.prototype.addItem = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.mtf.Mission.Item, opt_index);
    };
    proto.mtf.Mission.prototype.clearItemList = function() {
      return this.setItemList([]);
    };
    proto.mtf.Mission.prototype.getNextList = function() {
      return jspb.Message.getRepeatedField(this, 4);
    };
    proto.mtf.Mission.prototype.setNextList = function(value) {
      return jspb.Message.setField(this, 4, value || []);
    };
    proto.mtf.Mission.prototype.addNext = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 4, value, opt_index);
    };
    proto.mtf.Mission.prototype.clearNextList = function() {
      return this.setNextList([]);
    };
    proto.mtf.MissionUpdate.repeatedFields_ = [ 4 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.MissionUpdate.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.MissionUpdate.toObject(opt_includeInstance, this);
      };
      proto.mtf.MissionUpdate.toObject = function(includeInstance, msg) {
        var f, obj = {
          listList: jspb.Message.toObjectList(msg.getListList(), proto.mtf.MissionUpdate.Info.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.MissionUpdate.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.MissionUpdate();
      return proto.mtf.MissionUpdate.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.MissionUpdate.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 4:
          var value = new proto.mtf.MissionUpdate.Info();
          reader.readMessage(value, proto.mtf.MissionUpdate.Info.deserializeBinaryFromReader);
          msg.addList(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.MissionUpdate.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.MissionUpdate.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.MissionUpdate.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getListList();
      f.length > 0 && writer.writeRepeatedMessage(4, f, proto.mtf.MissionUpdate.Info.serializeBinaryToWriter);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.MissionUpdate.Info.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.MissionUpdate.Info.toObject(opt_includeInstance, this);
      };
      proto.mtf.MissionUpdate.Info.toObject = function(includeInstance, msg) {
        var f, obj = {
          reward: jspb.Message.getFieldWithDefault(msg, 1, 0),
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          win: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          fg: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.MissionUpdate.Info.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.MissionUpdate.Info();
      return proto.mtf.MissionUpdate.Info.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.MissionUpdate.Info.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setReward(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setWin(value);
          break;

         case 4:
          var value = reader.readBool();
          msg.setFg(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.MissionUpdate.Info.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.MissionUpdate.Info.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.MissionUpdate.Info.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getReward();
      0 !== f && writer.writeUint32(1, f);
      f = message.getBet();
      0 !== f && writer.writeDouble(2, f);
      f = message.getWin();
      0 !== f && writer.writeDouble(3, f);
      f = message.getFg();
      f && writer.writeBool(4, f);
    };
    proto.mtf.MissionUpdate.Info.prototype.getReward = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.MissionUpdate.Info.prototype.setReward = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.MissionUpdate.Info.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.MissionUpdate.Info.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.MissionUpdate.Info.prototype.getWin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.MissionUpdate.Info.prototype.setWin = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.MissionUpdate.Info.prototype.getFg = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 4, false);
    };
    proto.mtf.MissionUpdate.Info.prototype.setFg = function(value) {
      return jspb.Message.setProto3BooleanField(this, 4, value);
    };
    proto.mtf.MissionUpdate.prototype.getListList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.MissionUpdate.Info, 4);
    };
    proto.mtf.MissionUpdate.prototype.setListList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 4, value);
    };
    proto.mtf.MissionUpdate.prototype.addList = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.mtf.MissionUpdate.Info, opt_index);
    };
    proto.mtf.MissionUpdate.prototype.clearListList = function() {
      return this.setListList([]);
    };
    proto.mtf.MailData.repeatedFields_ = [ 1 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.MailData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.MailData.toObject(opt_includeInstance, this);
      };
      proto.mtf.MailData.toObject = function(includeInstance, msg) {
        var f, obj = {
          mailsList: jspb.Message.toObjectList(msg.getMailsList(), proto.mtf.Mail.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.MailData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.MailData();
      return proto.mtf.MailData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.MailData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = new proto.mtf.Mail();
          reader.readMessage(value, proto.mtf.Mail.deserializeBinaryFromReader);
          msg.addMails(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.MailData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.MailData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.MailData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getMailsList();
      f.length > 0 && writer.writeRepeatedMessage(1, f, proto.mtf.Mail.serializeBinaryToWriter);
    };
    proto.mtf.MailData.prototype.getMailsList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Mail, 1);
    };
    proto.mtf.MailData.prototype.setMailsList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 1, value);
    };
    proto.mtf.MailData.prototype.addMails = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mtf.Mail, opt_index);
    };
    proto.mtf.MailData.prototype.clearMailsList = function() {
      return this.setMailsList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Mail.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Mail.toObject(opt_includeInstance, this);
      };
      proto.mtf.Mail.toObject = function(includeInstance, msg) {
        var f, obj = {
          source: jspb.Message.getFieldWithDefault(msg, 1, 0),
          content: jspb.Message.getFieldWithDefault(msg, 2, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Mail.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Mail();
      return proto.mtf.Mail.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Mail.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readInt32();
          msg.setSource(value);
          break;

         case 2:
          var value = reader.readString();
          msg.setContent(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Mail.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Mail.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Mail.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSource();
      0 !== f && writer.writeInt32(1, f);
      f = message.getContent();
      f.length > 0 && writer.writeString(2, f);
    };
    proto.mtf.Mail.prototype.getSource = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Mail.prototype.setSource = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.Mail.prototype.getContent = function() {
      return jspb.Message.getFieldWithDefault(this, 2, "");
    };
    proto.mtf.Mail.prototype.setContent = function(value) {
      return jspb.Message.setProto3StringField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Jp.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Jp.toObject(opt_includeInstance, this);
      };
      proto.mtf.Jp.toObject = function(includeInstance, msg) {
        var f, obj = {
          jp1: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          jp2: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          jp3: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Jp.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Jp();
      return proto.mtf.Jp.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Jp.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readDouble();
          msg.setJp1(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setJp2(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setJp3(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Jp.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Jp.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Jp.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getJp1();
      0 !== f && writer.writeDouble(1, f);
      f = message.getJp2();
      0 !== f && writer.writeDouble(2, f);
      f = message.getJp3();
      0 !== f && writer.writeDouble(3, f);
    };
    proto.mtf.Jp.prototype.getJp1 = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.Jp.prototype.setJp1 = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.Jp.prototype.getJp2 = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Jp.prototype.setJp2 = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.Jp.prototype.getJp3 = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Jp.prototype.setJp3 = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.JpData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.JpData.toObject(opt_includeInstance, this);
      };
      proto.mtf.JpData.toObject = function(includeInstance, msg) {
        var f, obj = {
          type: jspb.Message.getFieldWithDefault(msg, 1, 0),
          jp: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.JpData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.JpData();
      return proto.mtf.JpData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.JpData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setType(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setJp(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.JpData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.JpData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.JpData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getType();
      0 !== f && writer.writeUint32(1, f);
      f = message.getJp();
      0 !== f && writer.writeDouble(2, f);
    };
    proto.mtf.JpData.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.JpData.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.JpData.prototype.getJp = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.JpData.prototype.setJp = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.JpBroadcastData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.JpBroadcastData.toObject(opt_includeInstance, this);
      };
      proto.mtf.JpBroadcastData.toObject = function(includeInstance, msg) {
        var f, obj = {
          name: jspb.Message.getFieldWithDefault(msg, 1, ""),
          theme: jspb.Message.getFieldWithDefault(msg, 2, 0),
          fish: jspb.Message.getFieldWithDefault(msg, 3, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          vendor: jspb.Message.getFieldWithDefault(msg, 5, 0),
          from: jspb.Message.getFieldWithDefault(msg, 6, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.JpBroadcastData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.JpBroadcastData();
      return proto.mtf.JpBroadcastData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.JpBroadcastData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setName(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setTheme(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setFish(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setVendor(value);
          break;

         case 6:
          var value = reader.readUint32();
          msg.setFrom(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.JpBroadcastData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.JpBroadcastData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.JpBroadcastData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getName();
      f.length > 0 && writer.writeString(1, f);
      f = message.getTheme();
      0 !== f && writer.writeUint32(2, f);
      f = message.getFish();
      0 !== f && writer.writeUint32(3, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(4, f);
      f = message.getVendor();
      0 !== f && writer.writeUint32(5, f);
      f = message.getFrom();
      0 !== f && writer.writeUint32(6, f);
    };
    proto.mtf.JpBroadcastData.prototype.getName = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.JpBroadcastData.prototype.setName = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.JpBroadcastData.prototype.getTheme = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.JpBroadcastData.prototype.setTheme = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.JpBroadcastData.prototype.getFish = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.JpBroadcastData.prototype.setFish = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.JpBroadcastData.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.JpBroadcastData.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.JpBroadcastData.prototype.getVendor = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.JpBroadcastData.prototype.setVendor = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.JpBroadcastData.prototype.getFrom = function() {
      return jspb.Message.getFieldWithDefault(this, 6, 0);
    };
    proto.mtf.JpBroadcastData.prototype.setFrom = function(value) {
      return jspb.Message.setProto3IntField(this, 6, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.JpDetail.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.JpDetail.toObject(opt_includeInstance, this);
      };
      proto.mtf.JpDetail.toObject = function(includeInstance, msg) {
        var f, obj = {
          name: jspb.Message.getFieldWithDefault(msg, 1, ""),
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          win: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          create: jspb.Message.getFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.JpDetail.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.JpDetail();
      return proto.mtf.JpDetail.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.JpDetail.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setName(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setWin(value);
          break;

         case 4:
          var value = reader.readSfixed64();
          msg.setCreate(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.JpDetail.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.JpDetail.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.JpDetail.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getName();
      f.length > 0 && writer.writeString(1, f);
      f = message.getBet();
      0 !== f && writer.writeDouble(2, f);
      f = message.getWin();
      0 !== f && writer.writeDouble(3, f);
      f = message.getCreate();
      0 !== f && writer.writeSfixed64(4, f);
    };
    proto.mtf.JpDetail.prototype.getName = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.JpDetail.prototype.setName = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.JpDetail.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.JpDetail.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.JpDetail.prototype.getWin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.JpDetail.prototype.setWin = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.JpDetail.prototype.getCreate = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.JpDetail.prototype.setCreate = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.JpDetailAck.repeatedFields_ = [ 1 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.JpDetailAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.JpDetailAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.JpDetailAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          listList: jspb.Message.toObjectList(msg.getListList(), proto.mtf.JpDetail.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.JpDetailAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.JpDetailAck();
      return proto.mtf.JpDetailAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.JpDetailAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = new proto.mtf.JpDetail();
          reader.readMessage(value, proto.mtf.JpDetail.deserializeBinaryFromReader);
          msg.addList(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.JpDetailAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.JpDetailAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.JpDetailAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getListList();
      f.length > 0 && writer.writeRepeatedMessage(1, f, proto.mtf.JpDetail.serializeBinaryToWriter);
    };
    proto.mtf.JpDetailAck.prototype.getListList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.JpDetail, 1);
    };
    proto.mtf.JpDetailAck.prototype.setListList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 1, value);
    };
    proto.mtf.JpDetailAck.prototype.addList = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mtf.JpDetail, opt_index);
    };
    proto.mtf.JpDetailAck.prototype.clearListList = function() {
      return this.setListList([]);
    };
    proto.mtf.BombReqData.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.BombReqData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.BombReqData.toObject(opt_includeInstance, this);
      };
      proto.mtf.BombReqData.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          fishList: null == (f = jspb.Message.getRepeatedField(msg, 2)) ? void 0 : f,
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          target: jspb.Message.getFieldWithDefault(msg, 4, 0),
          bulletid: jspb.Message.getFieldWithDefault(msg, 5, 0),
          targetfishtag: jspb.Message.getFieldWithDefault(msg, 6, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.BombReqData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.BombReqData();
      return proto.mtf.BombReqData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.BombReqData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addFish(values[i]);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setTarget(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setBulletid(value);
          break;

         case 6:
          var value = reader.readUint32();
          msg.setTargetfishtag(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.BombReqData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.BombReqData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.BombReqData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getFishList();
      f.length > 0 && writer.writePackedUint32(2, f);
      f = message.getBet();
      0 !== f && writer.writeDouble(3, f);
      f = message.getTarget();
      0 !== f && writer.writeUint32(4, f);
      f = message.getBulletid();
      0 !== f && writer.writeUint32(5, f);
      f = message.getTargetfishtag();
      0 !== f && writer.writeUint32(6, f);
    };
    proto.mtf.BombReqData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.BombReqData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.BombReqData.prototype.getFishList = function() {
      return jspb.Message.getRepeatedField(this, 2);
    };
    proto.mtf.BombReqData.prototype.setFishList = function(value) {
      return jspb.Message.setField(this, 2, value || []);
    };
    proto.mtf.BombReqData.prototype.addFish = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
    };
    proto.mtf.BombReqData.prototype.clearFishList = function() {
      return this.setFishList([]);
    };
    proto.mtf.BombReqData.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.BombReqData.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.BombReqData.prototype.getTarget = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.BombReqData.prototype.setTarget = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.BombReqData.prototype.getBulletid = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.BombReqData.prototype.setBulletid = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.BombReqData.prototype.getTargetfishtag = function() {
      return jspb.Message.getFieldWithDefault(this, 6, 0);
    };
    proto.mtf.BombReqData.prototype.setTargetfishtag = function(value) {
      return jspb.Message.setProto3IntField(this, 6, value);
    };
    proto.mtf.BombAckData.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.BombAckData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.BombAckData.toObject(opt_includeInstance, this);
      };
      proto.mtf.BombAckData.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          fishList: jspb.Message.toObjectList(msg.getFishList(), proto.mtf.BombDeadFish.toObject, includeInstance),
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          target: jspb.Message.getFieldWithDefault(msg, 5, 0),
          remain: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0),
          bonus: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0),
          targetfishtag: jspb.Message.getFieldWithDefault(msg, 9, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.BombAckData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.BombAckData();
      return proto.mtf.BombAckData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.BombAckData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = new proto.mtf.BombDeadFish();
          reader.readMessage(value, proto.mtf.BombDeadFish.deserializeBinaryFromReader);
          msg.addFish(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setTarget(value);
          break;

         case 7:
          var value = reader.readDouble();
          msg.setRemain(value);
          break;

         case 8:
          var value = reader.readDouble();
          msg.setBonus(value);
          break;

         case 9:
          var value = reader.readUint32();
          msg.setTargetfishtag(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.BombAckData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.BombAckData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.BombAckData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getFishList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.BombDeadFish.serializeBinaryToWriter);
      f = message.getBet();
      0 !== f && writer.writeDouble(3, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(4, f);
      f = message.getTarget();
      0 !== f && writer.writeUint32(5, f);
      f = message.getRemain();
      0 !== f && writer.writeDouble(7, f);
      f = message.getBonus();
      0 !== f && writer.writeDouble(8, f);
      f = message.getTargetfishtag();
      0 !== f && writer.writeUint32(9, f);
    };
    proto.mtf.BombAckData.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.BombAckData.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.BombAckData.prototype.getFishList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.BombDeadFish, 2);
    };
    proto.mtf.BombAckData.prototype.setFishList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.BombAckData.prototype.addFish = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.BombDeadFish, opt_index);
    };
    proto.mtf.BombAckData.prototype.clearFishList = function() {
      return this.setFishList([]);
    };
    proto.mtf.BombAckData.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.BombAckData.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.BombAckData.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.BombAckData.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.BombAckData.prototype.getTarget = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.BombAckData.prototype.setTarget = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.BombAckData.prototype.getRemain = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0);
    };
    proto.mtf.BombAckData.prototype.setRemain = function(value) {
      return jspb.Message.setProto3FloatField(this, 7, value);
    };
    proto.mtf.BombAckData.prototype.getBonus = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0);
    };
    proto.mtf.BombAckData.prototype.setBonus = function(value) {
      return jspb.Message.setProto3FloatField(this, 8, value);
    };
    proto.mtf.BombAckData.prototype.getTargetfishtag = function() {
      return jspb.Message.getFieldWithDefault(this, 9, 0);
    };
    proto.mtf.BombAckData.prototype.setTargetfishtag = function(value) {
      return jspb.Message.setProto3IntField(this, 9, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.BombDeadFish.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.BombDeadFish.toObject(opt_includeInstance, this);
      };
      proto.mtf.BombDeadFish.toObject = function(includeInstance, msg) {
        var f, obj = {
          fish: jspb.Message.getFieldWithDefault(msg, 1, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.BombDeadFish.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.BombDeadFish();
      return proto.mtf.BombDeadFish.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.BombDeadFish.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setFish(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.BombDeadFish.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.BombDeadFish.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.BombDeadFish.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getFish();
      0 !== f && writer.writeUint32(1, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(2, f);
    };
    proto.mtf.BombDeadFish.prototype.getFish = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.BombDeadFish.prototype.setFish = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.BombDeadFish.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.BombDeadFish.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.MaintainData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.MaintainData.toObject(opt_includeInstance, this);
      };
      proto.mtf.MaintainData.toObject = function(includeInstance, msg) {
        var f, obj = {
          ismaintained: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
          next: jspb.Message.getFieldWithDefault(msg, 2, 0),
          start: jspb.Message.getFieldWithDefault(msg, 3, 0),
          end: jspb.Message.getFieldWithDefault(msg, 4, 0),
          type: jspb.Message.getFieldWithDefault(msg, 5, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.MaintainData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.MaintainData();
      return proto.mtf.MaintainData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.MaintainData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readBool();
          msg.setIsmaintained(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setNext(value);
          break;

         case 3:
          var value = reader.readInt64();
          msg.setStart(value);
          break;

         case 4:
          var value = reader.readInt64();
          msg.setEnd(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setType(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.MaintainData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.MaintainData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.MaintainData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getIsmaintained();
      f && writer.writeBool(1, f);
      f = message.getNext();
      0 !== f && writer.writeUint32(2, f);
      f = message.getStart();
      0 !== f && writer.writeInt64(3, f);
      f = message.getEnd();
      0 !== f && writer.writeInt64(4, f);
      f = message.getType();
      0 !== f && writer.writeUint32(5, f);
    };
    proto.mtf.MaintainData.prototype.getIsmaintained = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 1, false);
    };
    proto.mtf.MaintainData.prototype.setIsmaintained = function(value) {
      return jspb.Message.setProto3BooleanField(this, 1, value);
    };
    proto.mtf.MaintainData.prototype.getNext = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.MaintainData.prototype.setNext = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.MaintainData.prototype.getStart = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.MaintainData.prototype.setStart = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.MaintainData.prototype.getEnd = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.MaintainData.prototype.setEnd = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.MaintainData.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.MaintainData.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.SkinChangeReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.SkinChangeReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.SkinChangeReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          skin: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.SkinChangeReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.SkinChangeReq();
      return proto.mtf.SkinChangeReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.SkinChangeReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSkin(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.SkinChangeReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.SkinChangeReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.SkinChangeReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSkin();
      0 !== f && writer.writeUint32(1, f);
    };
    proto.mtf.SkinChangeReq.prototype.getSkin = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.SkinChangeReq.prototype.setSkin = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.SkinChangeAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.SkinChangeAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.SkinChangeAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          skin: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.SkinChangeAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.SkinChangeAck();
      return proto.mtf.SkinChangeAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.SkinChangeAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setSkin(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.SkinChangeAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.SkinChangeAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.SkinChangeAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getSkin();
      0 !== f && writer.writeUint32(2, f);
    };
    proto.mtf.SkinChangeAck.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.SkinChangeAck.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.SkinChangeAck.prototype.getSkin = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.SkinChangeAck.prototype.setSkin = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.SkinSkillReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.SkinSkillReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.SkinSkillReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          no: jspb.Message.getFieldWithDefault(msg, 1, 0),
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.SkinSkillReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.SkinSkillReq();
      return proto.mtf.SkinSkillReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.SkinSkillReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setNo(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.SkinSkillReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.SkinSkillReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.SkinSkillReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getNo();
      0 !== f && writer.writeUint32(1, f);
      f = message.getBet();
      0 !== f && writer.writeDouble(2, f);
    };
    proto.mtf.SkinSkillReq.prototype.getNo = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.SkinSkillReq.prototype.setNo = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.SkinSkillReq.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.SkinSkillReq.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.SkinSkillAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.SkinSkillAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.SkinSkillAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          no: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.SkinSkillAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.SkinSkillAck();
      return proto.mtf.SkinSkillAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.SkinSkillAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setNo(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.SkinSkillAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.SkinSkillAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.SkinSkillAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getNo();
      0 !== f && writer.writeUint32(1, f);
    };
    proto.mtf.SkinSkillAck.prototype.getNo = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.SkinSkillAck.prototype.setNo = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.AgentConfig.repeatedFields_ = [ 1, 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.AgentConfig.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.AgentConfig.toObject(opt_includeInstance, this);
      };
      proto.mtf.AgentConfig.toObject = function(includeInstance, msg) {
        var f, obj = {
          bannersList: jspb.Message.toObjectList(msg.getBannersList(), proto.mtf.Banner.toObject, includeInstance),
          roomlistList: jspb.Message.toObjectList(msg.getRoomlistList(), proto.mtf.RoomData.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.AgentConfig.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.AgentConfig();
      return proto.mtf.AgentConfig.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.AgentConfig.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = new proto.mtf.Banner();
          reader.readMessage(value, proto.mtf.Banner.deserializeBinaryFromReader);
          msg.addBanners(value);
          break;

         case 2:
          var value = new proto.mtf.RoomData();
          reader.readMessage(value, proto.mtf.RoomData.deserializeBinaryFromReader);
          msg.addRoomlist(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.AgentConfig.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.AgentConfig.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.AgentConfig.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getBannersList();
      f.length > 0 && writer.writeRepeatedMessage(1, f, proto.mtf.Banner.serializeBinaryToWriter);
      f = message.getRoomlistList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.RoomData.serializeBinaryToWriter);
    };
    proto.mtf.AgentConfig.prototype.getBannersList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.Banner, 1);
    };
    proto.mtf.AgentConfig.prototype.setBannersList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 1, value);
    };
    proto.mtf.AgentConfig.prototype.addBanners = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mtf.Banner, opt_index);
    };
    proto.mtf.AgentConfig.prototype.clearBannersList = function() {
      return this.setBannersList([]);
    };
    proto.mtf.AgentConfig.prototype.getRoomlistList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.RoomData, 2);
    };
    proto.mtf.AgentConfig.prototype.setRoomlistList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.AgentConfig.prototype.addRoomlist = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.RoomData, opt_index);
    };
    proto.mtf.AgentConfig.prototype.clearRoomlistList = function() {
      return this.setRoomlistList([]);
    };
    proto.mtf.RoomData.repeatedFields_ = [ 3 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.RoomData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.RoomData.toObject(opt_includeInstance, this);
      };
      proto.mtf.RoomData.toObject = function(includeInstance, msg) {
        var f, obj = {
          roomid: jspb.Message.getFieldWithDefault(msg, 1, 0),
          ratio: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          betlistList: null == (f = jspb.Message.getRepeatedFloatingPointField(msg, 3)) ? void 0 : f
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.RoomData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.RoomData();
      return proto.mtf.RoomData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.RoomData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setRoomid(value);
          break;

         case 2:
          var value = reader.readFloat();
          msg.setRatio(value);
          break;

         case 3:
          var values = reader.isDelimited() ? reader.readPackedDouble() : [ reader.readDouble() ];
          for (var i = 0; i < values.length; i++) msg.addBetlist(values[i]);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.RoomData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.RoomData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.RoomData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getRoomid();
      0 !== f && writer.writeUint32(1, f);
      f = message.getRatio();
      0 !== f && writer.writeFloat(2, f);
      f = message.getBetlistList();
      f.length > 0 && writer.writePackedDouble(3, f);
    };
    proto.mtf.RoomData.prototype.getRoomid = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.RoomData.prototype.setRoomid = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.RoomData.prototype.getRatio = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.RoomData.prototype.setRatio = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.RoomData.prototype.getBetlistList = function() {
      return jspb.Message.getRepeatedFloatingPointField(this, 3);
    };
    proto.mtf.RoomData.prototype.setBetlistList = function(value) {
      return jspb.Message.setField(this, 3, value || []);
    };
    proto.mtf.RoomData.prototype.addBetlist = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
    };
    proto.mtf.RoomData.prototype.clearBetlistList = function() {
      return this.setBetlistList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.Banner.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.Banner.toObject(opt_includeInstance, this);
      };
      proto.mtf.Banner.toObject = function(includeInstance, msg) {
        var f, obj = {
          image: jspb.Message.getFieldWithDefault(msg, 1, ""),
          start: jspb.Message.getFieldWithDefault(msg, 2, 0),
          end: jspb.Message.getFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.Banner.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.Banner();
      return proto.mtf.Banner.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.Banner.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setImage(value);
          break;

         case 2:
          var value = reader.readInt64();
          msg.setStart(value);
          break;

         case 3:
          var value = reader.readInt64();
          msg.setEnd(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.Banner.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.Banner.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.Banner.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getImage();
      f.length > 0 && writer.writeString(1, f);
      f = message.getStart();
      0 !== f && writer.writeInt64(2, f);
      f = message.getEnd();
      0 !== f && writer.writeInt64(3, f);
    };
    proto.mtf.Banner.prototype.getImage = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.Banner.prototype.setImage = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.Banner.prototype.getStart = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.Banner.prototype.setStart = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.Banner.prototype.getEnd = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.Banner.prototype.setEnd = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.DebrisActivity.repeatedFields_ = [ 5, 6, 7 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DebrisActivity.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DebrisActivity.toObject(opt_includeInstance, this);
      };
      proto.mtf.DebrisActivity.toObject = function(includeInstance, msg) {
        var f, obj = {
          no: jspb.Message.getFieldWithDefault(msg, 1, 0),
          start: jspb.Message.getFieldWithDefault(msg, 2, 0),
          fall: jspb.Message.getFieldWithDefault(msg, 3, 0),
          end: jspb.Message.getFieldWithDefault(msg, 4, 0),
          formulaList: jspb.Message.toObjectList(msg.getFormulaList(), proto.mtf.DebrisActivity.Formula.toObject, includeInstance),
          debrisList: jspb.Message.toObjectList(msg.getDebrisList(), proto.mtf.DebrisActivity.Debris.toObject, includeInstance),
          minbetList: null == (f = jspb.Message.getRepeatedFloatingPointField(msg, 7)) ? void 0 : f,
          minmul: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DebrisActivity.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DebrisActivity();
      return proto.mtf.DebrisActivity.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DebrisActivity.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setNo(value);
          break;

         case 2:
          var value = reader.readInt64();
          msg.setStart(value);
          break;

         case 3:
          var value = reader.readInt64();
          msg.setFall(value);
          break;

         case 4:
          var value = reader.readInt64();
          msg.setEnd(value);
          break;

         case 5:
          var value = new proto.mtf.DebrisActivity.Formula();
          reader.readMessage(value, proto.mtf.DebrisActivity.Formula.deserializeBinaryFromReader);
          msg.addFormula(value);
          break;

         case 6:
          var value = new proto.mtf.DebrisActivity.Debris();
          reader.readMessage(value, proto.mtf.DebrisActivity.Debris.deserializeBinaryFromReader);
          msg.addDebris(value);
          break;

         case 7:
          var values = reader.isDelimited() ? reader.readPackedDouble() : [ reader.readDouble() ];
          for (var i = 0; i < values.length; i++) msg.addMinbet(values[i]);
          break;

         case 8:
          var value = reader.readDouble();
          msg.setMinmul(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DebrisActivity.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DebrisActivity.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DebrisActivity.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getNo();
      0 !== f && writer.writeUint32(1, f);
      f = message.getStart();
      0 !== f && writer.writeInt64(2, f);
      f = message.getFall();
      0 !== f && writer.writeInt64(3, f);
      f = message.getEnd();
      0 !== f && writer.writeInt64(4, f);
      f = message.getFormulaList();
      f.length > 0 && writer.writeRepeatedMessage(5, f, proto.mtf.DebrisActivity.Formula.serializeBinaryToWriter);
      f = message.getDebrisList();
      f.length > 0 && writer.writeRepeatedMessage(6, f, proto.mtf.DebrisActivity.Debris.serializeBinaryToWriter);
      f = message.getMinbetList();
      f.length > 0 && writer.writePackedDouble(7, f);
      f = message.getMinmul();
      0 !== f && writer.writeDouble(8, f);
    };
    proto.mtf.DebrisActivity.Formula.repeatedFields_ = [ 8, 9 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DebrisActivity.Formula.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DebrisActivity.Formula.toObject(opt_includeInstance, this);
      };
      proto.mtf.DebrisActivity.Formula.toObject = function(includeInstance, msg) {
        var f, obj = {
          no: jspb.Message.getFieldWithDefault(msg, 1, 0),
          level: jspb.Message.getFieldWithDefault(msg, 2, 0),
          ftype: jspb.Message.getFieldWithDefault(msg, 3, 0),
          fitem: jspb.Message.getFieldWithDefault(msg, 4, 0),
          ficon: jspb.Message.getFieldWithDefault(msg, 5, 0),
          amount: jspb.Message.getFieldWithDefault(msg, 6, 0),
          max: jspb.Message.getFieldWithDefault(msg, 7, 0),
          dnList: null == (f = jspb.Message.getRepeatedField(msg, 8)) ? void 0 : f,
          dcList: null == (f = jspb.Message.getRepeatedField(msg, 9)) ? void 0 : f
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DebrisActivity.Formula.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DebrisActivity.Formula();
      return proto.mtf.DebrisActivity.Formula.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DebrisActivity.Formula.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setNo(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setLevel(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setFtype(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setFitem(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setFicon(value);
          break;

         case 6:
          var value = reader.readUint32();
          msg.setAmount(value);
          break;

         case 7:
          var value = reader.readUint32();
          msg.setMax(value);
          break;

         case 8:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addDn(values[i]);
          break;

         case 9:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addDc(values[i]);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DebrisActivity.Formula.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DebrisActivity.Formula.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DebrisActivity.Formula.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getNo();
      0 !== f && writer.writeUint32(1, f);
      f = message.getLevel();
      0 !== f && writer.writeUint32(2, f);
      f = message.getFtype();
      0 !== f && writer.writeUint32(3, f);
      f = message.getFitem();
      0 !== f && writer.writeUint32(4, f);
      f = message.getFicon();
      0 !== f && writer.writeUint32(5, f);
      f = message.getAmount();
      0 !== f && writer.writeUint32(6, f);
      f = message.getMax();
      0 !== f && writer.writeUint32(7, f);
      f = message.getDnList();
      f.length > 0 && writer.writePackedUint32(8, f);
      f = message.getDcList();
      f.length > 0 && writer.writePackedUint32(9, f);
    };
    proto.mtf.DebrisActivity.Formula.prototype.getNo = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DebrisActivity.Formula.prototype.setNo = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DebrisActivity.Formula.prototype.getLevel = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.DebrisActivity.Formula.prototype.setLevel = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.DebrisActivity.Formula.prototype.getFtype = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.DebrisActivity.Formula.prototype.setFtype = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.DebrisActivity.Formula.prototype.getFitem = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.DebrisActivity.Formula.prototype.setFitem = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.DebrisActivity.Formula.prototype.getFicon = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.DebrisActivity.Formula.prototype.setFicon = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.DebrisActivity.Formula.prototype.getAmount = function() {
      return jspb.Message.getFieldWithDefault(this, 6, 0);
    };
    proto.mtf.DebrisActivity.Formula.prototype.setAmount = function(value) {
      return jspb.Message.setProto3IntField(this, 6, value);
    };
    proto.mtf.DebrisActivity.Formula.prototype.getMax = function() {
      return jspb.Message.getFieldWithDefault(this, 7, 0);
    };
    proto.mtf.DebrisActivity.Formula.prototype.setMax = function(value) {
      return jspb.Message.setProto3IntField(this, 7, value);
    };
    proto.mtf.DebrisActivity.Formula.prototype.getDnList = function() {
      return jspb.Message.getRepeatedField(this, 8);
    };
    proto.mtf.DebrisActivity.Formula.prototype.setDnList = function(value) {
      return jspb.Message.setField(this, 8, value || []);
    };
    proto.mtf.DebrisActivity.Formula.prototype.addDn = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 8, value, opt_index);
    };
    proto.mtf.DebrisActivity.Formula.prototype.clearDnList = function() {
      return this.setDnList([]);
    };
    proto.mtf.DebrisActivity.Formula.prototype.getDcList = function() {
      return jspb.Message.getRepeatedField(this, 9);
    };
    proto.mtf.DebrisActivity.Formula.prototype.setDcList = function(value) {
      return jspb.Message.setField(this, 9, value || []);
    };
    proto.mtf.DebrisActivity.Formula.prototype.addDc = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 9, value, opt_index);
    };
    proto.mtf.DebrisActivity.Formula.prototype.clearDcList = function() {
      return this.setDcList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DebrisActivity.Debris.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DebrisActivity.Debris.toObject(opt_includeInstance, this);
      };
      proto.mtf.DebrisActivity.Debris.toObject = function(includeInstance, msg) {
        var f, obj = {
          no: jspb.Message.getFieldWithDefault(msg, 1, 0),
          level: jspb.Message.getFieldWithDefault(msg, 2, 0),
          icon: jspb.Message.getFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DebrisActivity.Debris.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DebrisActivity.Debris();
      return proto.mtf.DebrisActivity.Debris.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DebrisActivity.Debris.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setNo(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setLevel(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setIcon(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DebrisActivity.Debris.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DebrisActivity.Debris.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DebrisActivity.Debris.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getNo();
      0 !== f && writer.writeUint32(1, f);
      f = message.getLevel();
      0 !== f && writer.writeUint32(2, f);
      f = message.getIcon();
      0 !== f && writer.writeUint32(3, f);
    };
    proto.mtf.DebrisActivity.Debris.prototype.getNo = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DebrisActivity.Debris.prototype.setNo = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DebrisActivity.Debris.prototype.getLevel = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.DebrisActivity.Debris.prototype.setLevel = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.DebrisActivity.Debris.prototype.getIcon = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.DebrisActivity.Debris.prototype.setIcon = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.DebrisActivity.prototype.getNo = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DebrisActivity.prototype.setNo = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DebrisActivity.prototype.getStart = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.DebrisActivity.prototype.setStart = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.DebrisActivity.prototype.getFall = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.DebrisActivity.prototype.setFall = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.DebrisActivity.prototype.getEnd = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.DebrisActivity.prototype.setEnd = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.DebrisActivity.prototype.getFormulaList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.DebrisActivity.Formula, 5);
    };
    proto.mtf.DebrisActivity.prototype.setFormulaList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 5, value);
    };
    proto.mtf.DebrisActivity.prototype.addFormula = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.mtf.DebrisActivity.Formula, opt_index);
    };
    proto.mtf.DebrisActivity.prototype.clearFormulaList = function() {
      return this.setFormulaList([]);
    };
    proto.mtf.DebrisActivity.prototype.getDebrisList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.DebrisActivity.Debris, 6);
    };
    proto.mtf.DebrisActivity.prototype.setDebrisList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 6, value);
    };
    proto.mtf.DebrisActivity.prototype.addDebris = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.mtf.DebrisActivity.Debris, opt_index);
    };
    proto.mtf.DebrisActivity.prototype.clearDebrisList = function() {
      return this.setDebrisList([]);
    };
    proto.mtf.DebrisActivity.prototype.getMinbetList = function() {
      return jspb.Message.getRepeatedFloatingPointField(this, 7);
    };
    proto.mtf.DebrisActivity.prototype.setMinbetList = function(value) {
      return jspb.Message.setField(this, 7, value || []);
    };
    proto.mtf.DebrisActivity.prototype.addMinbet = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 7, value, opt_index);
    };
    proto.mtf.DebrisActivity.prototype.clearMinbetList = function() {
      return this.setMinbetList([]);
    };
    proto.mtf.DebrisActivity.prototype.getMinmul = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0);
    };
    proto.mtf.DebrisActivity.prototype.setMinmul = function(value) {
      return jspb.Message.setProto3FloatField(this, 8, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DebrisInfoReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DebrisInfoReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.DebrisInfoReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          activityno: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DebrisInfoReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DebrisInfoReq();
      return proto.mtf.DebrisInfoReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DebrisInfoReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setActivityno(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DebrisInfoReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DebrisInfoReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DebrisInfoReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getActivityno();
      0 !== f && writer.writeUint32(1, f);
    };
    proto.mtf.DebrisInfoReq.prototype.getActivityno = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DebrisInfoReq.prototype.setActivityno = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DebrisInfoAck.repeatedFields_ = [ 3, 4 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DebrisInfoAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DebrisInfoAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.DebrisInfoAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          result: jspb.Message.getFieldWithDefault(msg, 1, 0),
          activityno: jspb.Message.getFieldWithDefault(msg, 2, 0),
          changelistList: jspb.Message.toObjectList(msg.getChangelistList(), proto.mtf.DebrisInfoAck.Formula.toObject, includeInstance),
          debrislistList: jspb.Message.toObjectList(msg.getDebrislistList(), proto.mtf.DebrisInfoAck.Debris.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DebrisInfoAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DebrisInfoAck();
      return proto.mtf.DebrisInfoAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DebrisInfoAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setResult(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setActivityno(value);
          break;

         case 3:
          var value = new proto.mtf.DebrisInfoAck.Formula();
          reader.readMessage(value, proto.mtf.DebrisInfoAck.Formula.deserializeBinaryFromReader);
          msg.addChangelist(value);
          break;

         case 4:
          var value = new proto.mtf.DebrisInfoAck.Debris();
          reader.readMessage(value, proto.mtf.DebrisInfoAck.Debris.deserializeBinaryFromReader);
          msg.addDebrislist(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DebrisInfoAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DebrisInfoAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DebrisInfoAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getResult();
      0 !== f && writer.writeUint32(1, f);
      f = message.getActivityno();
      0 !== f && writer.writeUint32(2, f);
      f = message.getChangelistList();
      f.length > 0 && writer.writeRepeatedMessage(3, f, proto.mtf.DebrisInfoAck.Formula.serializeBinaryToWriter);
      f = message.getDebrislistList();
      f.length > 0 && writer.writeRepeatedMessage(4, f, proto.mtf.DebrisInfoAck.Debris.serializeBinaryToWriter);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DebrisInfoAck.Formula.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DebrisInfoAck.Formula.toObject(opt_includeInstance, this);
      };
      proto.mtf.DebrisInfoAck.Formula.toObject = function(includeInstance, msg) {
        var f, obj = {
          formula: jspb.Message.getFieldWithDefault(msg, 1, 0),
          count: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DebrisInfoAck.Formula.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DebrisInfoAck.Formula();
      return proto.mtf.DebrisInfoAck.Formula.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DebrisInfoAck.Formula.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setFormula(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setCount(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DebrisInfoAck.Formula.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DebrisInfoAck.Formula.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DebrisInfoAck.Formula.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getFormula();
      0 !== f && writer.writeUint32(1, f);
      f = message.getCount();
      0 !== f && writer.writeUint32(2, f);
    };
    proto.mtf.DebrisInfoAck.Formula.prototype.getFormula = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DebrisInfoAck.Formula.prototype.setFormula = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DebrisInfoAck.Formula.prototype.getCount = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.DebrisInfoAck.Formula.prototype.setCount = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DebrisInfoAck.Debris.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DebrisInfoAck.Debris.toObject(opt_includeInstance, this);
      };
      proto.mtf.DebrisInfoAck.Debris.toObject = function(includeInstance, msg) {
        var f, obj = {
          no: jspb.Message.getFieldWithDefault(msg, 1, 0),
          count: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DebrisInfoAck.Debris.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DebrisInfoAck.Debris();
      return proto.mtf.DebrisInfoAck.Debris.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DebrisInfoAck.Debris.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setNo(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setCount(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DebrisInfoAck.Debris.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DebrisInfoAck.Debris.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DebrisInfoAck.Debris.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getNo();
      0 !== f && writer.writeUint32(1, f);
      f = message.getCount();
      0 !== f && writer.writeUint32(2, f);
    };
    proto.mtf.DebrisInfoAck.Debris.prototype.getNo = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DebrisInfoAck.Debris.prototype.setNo = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DebrisInfoAck.Debris.prototype.getCount = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.DebrisInfoAck.Debris.prototype.setCount = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.DebrisInfoAck.prototype.getResult = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DebrisInfoAck.prototype.setResult = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DebrisInfoAck.prototype.getActivityno = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.DebrisInfoAck.prototype.setActivityno = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.DebrisInfoAck.prototype.getChangelistList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.DebrisInfoAck.Formula, 3);
    };
    proto.mtf.DebrisInfoAck.prototype.setChangelistList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 3, value);
    };
    proto.mtf.DebrisInfoAck.prototype.addChangelist = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.mtf.DebrisInfoAck.Formula, opt_index);
    };
    proto.mtf.DebrisInfoAck.prototype.clearChangelistList = function() {
      return this.setChangelistList([]);
    };
    proto.mtf.DebrisInfoAck.prototype.getDebrislistList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.DebrisInfoAck.Debris, 4);
    };
    proto.mtf.DebrisInfoAck.prototype.setDebrislistList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 4, value);
    };
    proto.mtf.DebrisInfoAck.prototype.addDebrislist = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.mtf.DebrisInfoAck.Debris, opt_index);
    };
    proto.mtf.DebrisInfoAck.prototype.clearDebrislistList = function() {
      return this.setDebrislistList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DebrisGet.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DebrisGet.toObject(opt_includeInstance, this);
      };
      proto.mtf.DebrisGet.toObject = function(includeInstance, msg) {
        var f, obj = {
          result: jspb.Message.getFieldWithDefault(msg, 1, 0),
          get: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DebrisGet.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DebrisGet();
      return proto.mtf.DebrisGet.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DebrisGet.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setResult(value);
          break;

         case 2:
          var value = reader.readBool();
          msg.setGet(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DebrisGet.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DebrisGet.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DebrisGet.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getResult();
      0 !== f && writer.writeUint32(1, f);
      f = message.getGet();
      f && writer.writeBool(2, f);
    };
    proto.mtf.DebrisGet.prototype.getResult = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DebrisGet.prototype.setResult = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DebrisGet.prototype.getGet = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 2, false);
    };
    proto.mtf.DebrisGet.prototype.setGet = function(value) {
      return jspb.Message.setProto3BooleanField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DebrisExchangeReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DebrisExchangeReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.DebrisExchangeReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          formula: jspb.Message.getFieldWithDefault(msg, 1, 0),
          amount: jspb.Message.getFieldWithDefault(msg, 2, 0),
          activityno: jspb.Message.getFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DebrisExchangeReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DebrisExchangeReq();
      return proto.mtf.DebrisExchangeReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DebrisExchangeReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setFormula(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setAmount(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setActivityno(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DebrisExchangeReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DebrisExchangeReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DebrisExchangeReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getFormula();
      0 !== f && writer.writeUint32(1, f);
      f = message.getAmount();
      0 !== f && writer.writeUint32(2, f);
      f = message.getActivityno();
      0 !== f && writer.writeUint32(3, f);
    };
    proto.mtf.DebrisExchangeReq.prototype.getFormula = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DebrisExchangeReq.prototype.setFormula = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DebrisExchangeReq.prototype.getAmount = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.DebrisExchangeReq.prototype.setAmount = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.DebrisExchangeReq.prototype.getActivityno = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.DebrisExchangeReq.prototype.setActivityno = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DebrisExchangeAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DebrisExchangeAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.DebrisExchangeAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          result: jspb.Message.getFieldWithDefault(msg, 1, 0),
          awardtype: jspb.Message.getFieldWithDefault(msg, 2, 0),
          itemno: jspb.Message.getFieldWithDefault(msg, 3, 0),
          amount: jspb.Message.getFieldWithDefault(msg, 4, 0),
          icon: jspb.Message.getFieldWithDefault(msg, 5, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DebrisExchangeAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DebrisExchangeAck();
      return proto.mtf.DebrisExchangeAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DebrisExchangeAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setResult(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setAwardtype(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setItemno(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setAmount(value);
          break;

         case 5:
          var value = reader.readUint32();
          msg.setIcon(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DebrisExchangeAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DebrisExchangeAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DebrisExchangeAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getResult();
      0 !== f && writer.writeUint32(1, f);
      f = message.getAwardtype();
      0 !== f && writer.writeUint32(2, f);
      f = message.getItemno();
      0 !== f && writer.writeUint32(3, f);
      f = message.getAmount();
      0 !== f && writer.writeUint32(4, f);
      f = message.getIcon();
      0 !== f && writer.writeUint32(5, f);
    };
    proto.mtf.DebrisExchangeAck.prototype.getResult = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DebrisExchangeAck.prototype.setResult = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DebrisExchangeAck.prototype.getAwardtype = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.DebrisExchangeAck.prototype.setAwardtype = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.DebrisExchangeAck.prototype.getItemno = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.DebrisExchangeAck.prototype.setItemno = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.DebrisExchangeAck.prototype.getAmount = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.DebrisExchangeAck.prototype.setAmount = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.DebrisExchangeAck.prototype.getIcon = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.DebrisExchangeAck.prototype.setIcon = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.FishData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.FishData.toObject(opt_includeInstance, this);
      };
      proto.mtf.FishData.toObject = function(includeInstance, msg) {
        var f, obj = {
          fish: jspb.Message.getFieldWithDefault(msg, 1, 0),
          path: jspb.Message.getFieldWithDefault(msg, 2, 0),
          delay: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          duration: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          follower: (f = msg.getFollower()) && proto.mtf.FishData.Follower.toObject(includeInstance, f),
          fliponturn: jspb.Message.getBooleanFieldWithDefault(msg, 6, false)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.FishData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.FishData();
      return proto.mtf.FishData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.FishData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setFish(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setPath(value);
          break;

         case 3:
          var value = reader.readFloat();
          msg.setDelay(value);
          break;

         case 4:
          var value = reader.readFloat();
          msg.setDuration(value);
          break;

         case 5:
          var value = new proto.mtf.FishData.Follower();
          reader.readMessage(value, proto.mtf.FishData.Follower.deserializeBinaryFromReader);
          msg.setFollower(value);
          break;

         case 6:
          var value = reader.readBool();
          msg.setFliponturn(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.FishData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.FishData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.FishData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getFish();
      0 !== f && writer.writeUint32(1, f);
      f = message.getPath();
      0 !== f && writer.writeUint32(2, f);
      f = message.getDelay();
      0 !== f && writer.writeFloat(3, f);
      f = message.getDuration();
      0 !== f && writer.writeFloat(4, f);
      f = message.getFollower();
      null != f && writer.writeMessage(5, f, proto.mtf.FishData.Follower.serializeBinaryToWriter);
      f = message.getFliponturn();
      f && writer.writeBool(6, f);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.FishData.Follower.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.FishData.Follower.toObject(opt_includeInstance, this);
      };
      proto.mtf.FishData.Follower.toObject = function(includeInstance, msg) {
        var f, obj = {
          x: jspb.Message.getFieldWithDefault(msg, 1, 0),
          y: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.FishData.Follower.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.FishData.Follower();
      return proto.mtf.FishData.Follower.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.FishData.Follower.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readInt32();
          msg.setX(value);
          break;

         case 2:
          var value = reader.readInt32();
          msg.setY(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.FishData.Follower.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.FishData.Follower.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.FishData.Follower.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getX();
      0 !== f && writer.writeInt32(1, f);
      f = message.getY();
      0 !== f && writer.writeInt32(2, f);
    };
    proto.mtf.FishData.Follower.prototype.getX = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.FishData.Follower.prototype.setX = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.FishData.Follower.prototype.getY = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.FishData.Follower.prototype.setY = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.FishData.prototype.getFish = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.FishData.prototype.setFish = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.FishData.prototype.getPath = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.FishData.prototype.setPath = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.FishData.prototype.getDelay = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.FishData.prototype.setDelay = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.FishData.prototype.getDuration = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.FishData.prototype.setDuration = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.FishData.prototype.getFollower = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.FishData.Follower, 5);
    };
    proto.mtf.FishData.prototype.setFollower = function(value) {
      return jspb.Message.setWrapperField(this, 5, value);
    };
    proto.mtf.FishData.prototype.clearFollower = function() {
      return this.setFollower(void 0);
    };
    proto.mtf.FishData.prototype.hasFollower = function() {
      return null != jspb.Message.getField(this, 5);
    };
    proto.mtf.FishData.prototype.getFliponturn = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 6, false);
    };
    proto.mtf.FishData.prototype.setFliponturn = function(value) {
      return jspb.Message.setProto3BooleanField(this, 6, value);
    };
    proto.mtf.GroupData.repeatedFields_ = [ 4 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.GroupData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.GroupData.toObject(opt_includeInstance, this);
      };
      proto.mtf.GroupData.toObject = function(includeInstance, msg) {
        var f, obj = {
          no: jspb.Message.getFieldWithDefault(msg, 1, 0),
          inverse: jspb.Message.getFieldWithDefault(msg, 2, 0),
          extra: jspb.Message.getFieldWithDefault(msg, 3, ""),
          fishList: jspb.Message.toObjectList(msg.getFishList(), proto.mtf.FishData.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.GroupData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.GroupData();
      return proto.mtf.GroupData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.GroupData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setNo(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setInverse(value);
          break;

         case 3:
          var value = reader.readString();
          msg.setExtra(value);
          break;

         case 4:
          var value = new proto.mtf.FishData();
          reader.readMessage(value, proto.mtf.FishData.deserializeBinaryFromReader);
          msg.addFish(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.GroupData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.GroupData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.GroupData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getNo();
      0 !== f && writer.writeUint32(1, f);
      f = message.getInverse();
      0 !== f && writer.writeUint32(2, f);
      f = message.getExtra();
      f.length > 0 && writer.writeString(3, f);
      f = message.getFishList();
      f.length > 0 && writer.writeRepeatedMessage(4, f, proto.mtf.FishData.serializeBinaryToWriter);
    };
    proto.mtf.GroupData.prototype.getNo = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.GroupData.prototype.setNo = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.GroupData.prototype.getInverse = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.GroupData.prototype.setInverse = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.GroupData.prototype.getExtra = function() {
      return jspb.Message.getFieldWithDefault(this, 3, "");
    };
    proto.mtf.GroupData.prototype.setExtra = function(value) {
      return jspb.Message.setProto3StringField(this, 3, value);
    };
    proto.mtf.GroupData.prototype.getFishList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.FishData, 4);
    };
    proto.mtf.GroupData.prototype.setFishList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 4, value);
    };
    proto.mtf.GroupData.prototype.addFish = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.mtf.FishData, opt_index);
    };
    proto.mtf.GroupData.prototype.clearFishList = function() {
      return this.setFishList([]);
    };
    proto.mtf.SubData.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.SubData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.SubData.toObject(opt_includeInstance, this);
      };
      proto.mtf.SubData.toObject = function(includeInstance, msg) {
        var f, obj = {
          name: jspb.Message.getFieldWithDefault(msg, 1, ""),
          groupList: jspb.Message.toObjectList(msg.getGroupList(), proto.mtf.SubData.Group.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.SubData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.SubData();
      return proto.mtf.SubData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.SubData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setName(value);
          break;

         case 2:
          var value = new proto.mtf.SubData.Group();
          reader.readMessage(value, proto.mtf.SubData.Group.deserializeBinaryFromReader);
          msg.addGroup(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.SubData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.SubData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.SubData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getName();
      f.length > 0 && writer.writeString(1, f);
      f = message.getGroupList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.SubData.Group.serializeBinaryToWriter);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.SubData.Group.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.SubData.Group.toObject(opt_includeInstance, this);
      };
      proto.mtf.SubData.Group.toObject = function(includeInstance, msg) {
        var f, obj = {
          time: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          group: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.SubData.Group.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.SubData.Group();
      return proto.mtf.SubData.Group.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.SubData.Group.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readFloat();
          msg.setTime(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setGroup(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.SubData.Group.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.SubData.Group.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.SubData.Group.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getTime();
      0 !== f && writer.writeFloat(1, f);
      f = message.getGroup();
      0 !== f && writer.writeUint32(2, f);
    };
    proto.mtf.SubData.Group.prototype.getTime = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.SubData.Group.prototype.setTime = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.SubData.Group.prototype.getGroup = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.SubData.Group.prototype.setGroup = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.SubData.prototype.getName = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.SubData.prototype.setName = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.SubData.prototype.getGroupList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.SubData.Group, 2);
    };
    proto.mtf.SubData.prototype.setGroupList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.SubData.prototype.addGroup = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.SubData.Group, opt_index);
    };
    proto.mtf.SubData.prototype.clearGroupList = function() {
      return this.setGroupList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.MainData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.MainData.toObject(opt_includeInstance, this);
      };
      proto.mtf.MainData.toObject = function(includeInstance, msg) {
        var f, obj = {
          theme: jspb.Message.getFieldWithDefault(msg, 1, 0),
          main: (f = msg.getMain()) && proto.mtf.MainData.Main.toObject(includeInstance, f)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.MainData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.MainData();
      return proto.mtf.MainData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.MainData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setTheme(value);
          break;

         case 3:
          var value = new proto.mtf.MainData.Main();
          reader.readMessage(value, proto.mtf.MainData.Main.deserializeBinaryFromReader);
          msg.setMain(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.MainData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.MainData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.MainData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getTheme();
      0 !== f && writer.writeUint32(1, f);
      f = message.getMain();
      null != f && writer.writeMessage(3, f, proto.mtf.MainData.Main.serializeBinaryToWriter);
    };
    proto.mtf.MainData.Main.repeatedFields_ = [ 3 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.MainData.Main.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.MainData.Main.toObject(opt_includeInstance, this);
      };
      proto.mtf.MainData.Main.toObject = function(includeInstance, msg) {
        var f, obj = {
          no: jspb.Message.getFieldWithDefault(msg, 1, 0),
          desc: jspb.Message.getFieldWithDefault(msg, 2, ""),
          subscriptlistList: null == (f = jspb.Message.getRepeatedField(msg, 3)) ? void 0 : f
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.MainData.Main.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.MainData.Main();
      return proto.mtf.MainData.Main.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.MainData.Main.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setNo(value);
          break;

         case 2:
          var value = reader.readString();
          msg.setDesc(value);
          break;

         case 3:
          var value = reader.readString();
          msg.addSubscriptlist(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.MainData.Main.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.MainData.Main.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.MainData.Main.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getNo();
      0 !== f && writer.writeUint32(1, f);
      f = message.getDesc();
      f.length > 0 && writer.writeString(2, f);
      f = message.getSubscriptlistList();
      f.length > 0 && writer.writeRepeatedString(3, f);
    };
    proto.mtf.MainData.Main.prototype.getNo = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.MainData.Main.prototype.setNo = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.MainData.Main.prototype.getDesc = function() {
      return jspb.Message.getFieldWithDefault(this, 2, "");
    };
    proto.mtf.MainData.Main.prototype.setDesc = function(value) {
      return jspb.Message.setProto3StringField(this, 2, value);
    };
    proto.mtf.MainData.Main.prototype.getSubscriptlistList = function() {
      return jspb.Message.getRepeatedField(this, 3);
    };
    proto.mtf.MainData.Main.prototype.setSubscriptlistList = function(value) {
      return jspb.Message.setField(this, 3, value || []);
    };
    proto.mtf.MainData.Main.prototype.addSubscriptlist = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
    };
    proto.mtf.MainData.Main.prototype.clearSubscriptlistList = function() {
      return this.setSubscriptlistList([]);
    };
    proto.mtf.MainData.prototype.getTheme = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.MainData.prototype.setTheme = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.MainData.prototype.getMain = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.MainData.Main, 3);
    };
    proto.mtf.MainData.prototype.setMain = function(value) {
      return jspb.Message.setWrapperField(this, 3, value);
    };
    proto.mtf.MainData.prototype.clearMain = function() {
      return this.setMain(void 0);
    };
    proto.mtf.MainData.prototype.hasMain = function() {
      return null != jspb.Message.getField(this, 3);
    };
    proto.mtf.PathData.repeatedFields_ = [ 3 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.PathData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.PathData.toObject(opt_includeInstance, this);
      };
      proto.mtf.PathData.toObject = function(includeInstance, msg) {
        var f, obj = {
          no: jspb.Message.getFieldWithDefault(msg, 1, 0),
          duration: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          wpList: jspb.Message.toObjectList(msg.getWpList(), proto.mtf.PathData.WalkPath.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.PathData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.PathData();
      return proto.mtf.PathData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.PathData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setNo(value);
          break;

         case 2:
          var value = reader.readFloat();
          msg.setDuration(value);
          break;

         case 3:
          var value = new proto.mtf.PathData.WalkPath();
          reader.readMessage(value, proto.mtf.PathData.WalkPath.deserializeBinaryFromReader);
          msg.addWp(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.PathData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.PathData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.PathData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getNo();
      0 !== f && writer.writeUint32(1, f);
      f = message.getDuration();
      0 !== f && writer.writeFloat(2, f);
      f = message.getWpList();
      f.length > 0 && writer.writeRepeatedMessage(3, f, proto.mtf.PathData.WalkPath.serializeBinaryToWriter);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.PathData.WalkPath.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.PathData.WalkPath.toObject(opt_includeInstance, this);
      };
      proto.mtf.PathData.WalkPath.toObject = function(includeInstance, msg) {
        var f, obj = {
          x: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          y: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          duration: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          wait: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          spline: (f = msg.getSpline()) && proto.mtf.PathData.Spline.toObject(includeInstance, f)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.PathData.WalkPath.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.PathData.WalkPath();
      return proto.mtf.PathData.WalkPath.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.PathData.WalkPath.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readFloat();
          msg.setX(value);
          break;

         case 2:
          var value = reader.readFloat();
          msg.setY(value);
          break;

         case 3:
          var value = reader.readFloat();
          msg.setDuration(value);
          break;

         case 4:
          var value = reader.readFloat();
          msg.setWait(value);
          break;

         case 5:
          var value = new proto.mtf.PathData.Spline();
          reader.readMessage(value, proto.mtf.PathData.Spline.deserializeBinaryFromReader);
          msg.setSpline(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.PathData.WalkPath.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.PathData.WalkPath.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.PathData.WalkPath.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getX();
      0 !== f && writer.writeFloat(1, f);
      f = message.getY();
      0 !== f && writer.writeFloat(2, f);
      f = message.getDuration();
      0 !== f && writer.writeFloat(3, f);
      f = message.getWait();
      0 !== f && writer.writeFloat(4, f);
      f = message.getSpline();
      null != f && writer.writeMessage(5, f, proto.mtf.PathData.Spline.serializeBinaryToWriter);
    };
    proto.mtf.PathData.WalkPath.prototype.getX = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.PathData.WalkPath.prototype.setX = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.PathData.WalkPath.prototype.getY = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.PathData.WalkPath.prototype.setY = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.PathData.WalkPath.prototype.getDuration = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.PathData.WalkPath.prototype.setDuration = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.PathData.WalkPath.prototype.getWait = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.PathData.WalkPath.prototype.setWait = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.PathData.WalkPath.prototype.getSpline = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.PathData.Spline, 5);
    };
    proto.mtf.PathData.WalkPath.prototype.setSpline = function(value) {
      return jspb.Message.setWrapperField(this, 5, value);
    };
    proto.mtf.PathData.WalkPath.prototype.clearSpline = function() {
      return this.setSpline(void 0);
    };
    proto.mtf.PathData.WalkPath.prototype.hasSpline = function() {
      return null != jspb.Message.getField(this, 5);
    };
    proto.mtf.PathData.Spline.repeatedFields_ = [ 3 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.PathData.Spline.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.PathData.Spline.toObject(opt_includeInstance, this);
      };
      proto.mtf.PathData.Spline.toObject = function(includeInstance, msg) {
        var f, obj = {
          duration: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          tangent: jspb.Message.getFieldWithDefault(msg, 2, 0),
          ptList: jspb.Message.toObjectList(msg.getPtList(), proto.mtf.PathData.Point.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.PathData.Spline.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.PathData.Spline();
      return proto.mtf.PathData.Spline.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.PathData.Spline.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readFloat();
          msg.setDuration(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setTangent(value);
          break;

         case 3:
          var value = new proto.mtf.PathData.Point();
          reader.readMessage(value, proto.mtf.PathData.Point.deserializeBinaryFromReader);
          msg.addPt(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.PathData.Spline.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.PathData.Spline.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.PathData.Spline.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getDuration();
      0 !== f && writer.writeFloat(1, f);
      f = message.getTangent();
      0 !== f && writer.writeUint32(2, f);
      f = message.getPtList();
      f.length > 0 && writer.writeRepeatedMessage(3, f, proto.mtf.PathData.Point.serializeBinaryToWriter);
    };
    proto.mtf.PathData.Spline.prototype.getDuration = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.PathData.Spline.prototype.setDuration = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.PathData.Spline.prototype.getTangent = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.PathData.Spline.prototype.setTangent = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.PathData.Spline.prototype.getPtList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.PathData.Point, 3);
    };
    proto.mtf.PathData.Spline.prototype.setPtList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 3, value);
    };
    proto.mtf.PathData.Spline.prototype.addPt = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.mtf.PathData.Point, opt_index);
    };
    proto.mtf.PathData.Spline.prototype.clearPtList = function() {
      return this.setPtList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.PathData.Point.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.PathData.Point.toObject(opt_includeInstance, this);
      };
      proto.mtf.PathData.Point.toObject = function(includeInstance, msg) {
        var f, obj = {
          x: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          y: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          duration: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          wait: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.PathData.Point.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.PathData.Point();
      return proto.mtf.PathData.Point.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.PathData.Point.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readFloat();
          msg.setX(value);
          break;

         case 2:
          var value = reader.readFloat();
          msg.setY(value);
          break;

         case 3:
          var value = reader.readFloat();
          msg.setDuration(value);
          break;

         case 4:
          var value = reader.readFloat();
          msg.setWait(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.PathData.Point.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.PathData.Point.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.PathData.Point.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getX();
      0 !== f && writer.writeFloat(1, f);
      f = message.getY();
      0 !== f && writer.writeFloat(2, f);
      f = message.getDuration();
      0 !== f && writer.writeFloat(3, f);
      f = message.getWait();
      0 !== f && writer.writeFloat(4, f);
    };
    proto.mtf.PathData.Point.prototype.getX = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.PathData.Point.prototype.setX = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.PathData.Point.prototype.getY = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.PathData.Point.prototype.setY = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.PathData.Point.prototype.getDuration = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.PathData.Point.prototype.setDuration = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.PathData.Point.prototype.getWait = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.PathData.Point.prototype.setWait = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.PathData.prototype.getNo = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.PathData.prototype.setNo = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.PathData.prototype.getDuration = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.PathData.prototype.setDuration = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.PathData.prototype.getWpList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.PathData.WalkPath, 3);
    };
    proto.mtf.PathData.prototype.setWpList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 3, value);
    };
    proto.mtf.PathData.prototype.addWp = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.mtf.PathData.WalkPath, opt_index);
    };
    proto.mtf.PathData.prototype.clearWpList = function() {
      return this.setWpList([]);
    };
    proto.mtf.TimelineEvent.oneofGroups_ = [ [ 3, 4, 5, 6, 7, 8 ] ];
    proto.mtf.TimelineEvent.ParamCase = {
      PARAM_NOT_SET: 0,
      SWITCHBG: 3,
      SWITCHBGMUSIC: 4,
      SHAKE: 5,
      BOSSWARNING: 6,
      PLAYBGANIM: 7,
      SPECIALBOSSNOTIFY: 8
    };
    proto.mtf.TimelineEvent.prototype.getParamCase = function() {
      return jspb.Message.computeOneofCase(this, proto.mtf.TimelineEvent.oneofGroups_[0]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.TimelineEvent.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.TimelineEvent.toObject(opt_includeInstance, this);
      };
      proto.mtf.TimelineEvent.toObject = function(includeInstance, msg) {
        var f, obj = {
          time: jspb.Message.getFieldWithDefault(msg, 1, 0),
          event: jspb.Message.getFieldWithDefault(msg, 2, 0),
          switchbg: (f = msg.getSwitchbg()) && proto.mtf.SwitchBGEvent.toObject(includeInstance, f),
          switchbgmusic: (f = msg.getSwitchbgmusic()) && proto.mtf.SwitchBgMusicEvent.toObject(includeInstance, f),
          shake: (f = msg.getShake()) && proto.mtf.ShakeEvent.toObject(includeInstance, f),
          bosswarning: (f = msg.getBosswarning()) && proto.mtf.BossWarningEvent.toObject(includeInstance, f),
          playbganim: (f = msg.getPlaybganim()) && proto.mtf.PlayBgAnimEvent.toObject(includeInstance, f),
          specialbossnotify: (f = msg.getSpecialbossnotify()) && proto.mtf.SpecialBossNotifyEvent.toObject(includeInstance, f)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.TimelineEvent.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.TimelineEvent();
      return proto.mtf.TimelineEvent.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.TimelineEvent.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setTime(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setEvent(value);
          break;

         case 3:
          var value = new proto.mtf.SwitchBGEvent();
          reader.readMessage(value, proto.mtf.SwitchBGEvent.deserializeBinaryFromReader);
          msg.setSwitchbg(value);
          break;

         case 4:
          var value = new proto.mtf.SwitchBgMusicEvent();
          reader.readMessage(value, proto.mtf.SwitchBgMusicEvent.deserializeBinaryFromReader);
          msg.setSwitchbgmusic(value);
          break;

         case 5:
          var value = new proto.mtf.ShakeEvent();
          reader.readMessage(value, proto.mtf.ShakeEvent.deserializeBinaryFromReader);
          msg.setShake(value);
          break;

         case 6:
          var value = new proto.mtf.BossWarningEvent();
          reader.readMessage(value, proto.mtf.BossWarningEvent.deserializeBinaryFromReader);
          msg.setBosswarning(value);
          break;

         case 7:
          var value = new proto.mtf.PlayBgAnimEvent();
          reader.readMessage(value, proto.mtf.PlayBgAnimEvent.deserializeBinaryFromReader);
          msg.setPlaybganim(value);
          break;

         case 8:
          var value = new proto.mtf.SpecialBossNotifyEvent();
          reader.readMessage(value, proto.mtf.SpecialBossNotifyEvent.deserializeBinaryFromReader);
          msg.setSpecialbossnotify(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.TimelineEvent.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.TimelineEvent.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.TimelineEvent.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getTime();
      0 !== f && writer.writeUint32(1, f);
      f = message.getEvent();
      0 !== f && writer.writeUint32(2, f);
      f = message.getSwitchbg();
      null != f && writer.writeMessage(3, f, proto.mtf.SwitchBGEvent.serializeBinaryToWriter);
      f = message.getSwitchbgmusic();
      null != f && writer.writeMessage(4, f, proto.mtf.SwitchBgMusicEvent.serializeBinaryToWriter);
      f = message.getShake();
      null != f && writer.writeMessage(5, f, proto.mtf.ShakeEvent.serializeBinaryToWriter);
      f = message.getBosswarning();
      null != f && writer.writeMessage(6, f, proto.mtf.BossWarningEvent.serializeBinaryToWriter);
      f = message.getPlaybganim();
      null != f && writer.writeMessage(7, f, proto.mtf.PlayBgAnimEvent.serializeBinaryToWriter);
      f = message.getSpecialbossnotify();
      null != f && writer.writeMessage(8, f, proto.mtf.SpecialBossNotifyEvent.serializeBinaryToWriter);
    };
    proto.mtf.TimelineEvent.prototype.getTime = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.TimelineEvent.prototype.setTime = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.TimelineEvent.prototype.getEvent = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.TimelineEvent.prototype.setEvent = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.TimelineEvent.prototype.getSwitchbg = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.SwitchBGEvent, 3);
    };
    proto.mtf.TimelineEvent.prototype.setSwitchbg = function(value) {
      return jspb.Message.setOneofWrapperField(this, 3, proto.mtf.TimelineEvent.oneofGroups_[0], value);
    };
    proto.mtf.TimelineEvent.prototype.clearSwitchbg = function() {
      return this.setSwitchbg(void 0);
    };
    proto.mtf.TimelineEvent.prototype.hasSwitchbg = function() {
      return null != jspb.Message.getField(this, 3);
    };
    proto.mtf.TimelineEvent.prototype.getSwitchbgmusic = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.SwitchBgMusicEvent, 4);
    };
    proto.mtf.TimelineEvent.prototype.setSwitchbgmusic = function(value) {
      return jspb.Message.setOneofWrapperField(this, 4, proto.mtf.TimelineEvent.oneofGroups_[0], value);
    };
    proto.mtf.TimelineEvent.prototype.clearSwitchbgmusic = function() {
      return this.setSwitchbgmusic(void 0);
    };
    proto.mtf.TimelineEvent.prototype.hasSwitchbgmusic = function() {
      return null != jspb.Message.getField(this, 4);
    };
    proto.mtf.TimelineEvent.prototype.getShake = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.ShakeEvent, 5);
    };
    proto.mtf.TimelineEvent.prototype.setShake = function(value) {
      return jspb.Message.setOneofWrapperField(this, 5, proto.mtf.TimelineEvent.oneofGroups_[0], value);
    };
    proto.mtf.TimelineEvent.prototype.clearShake = function() {
      return this.setShake(void 0);
    };
    proto.mtf.TimelineEvent.prototype.hasShake = function() {
      return null != jspb.Message.getField(this, 5);
    };
    proto.mtf.TimelineEvent.prototype.getBosswarning = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.BossWarningEvent, 6);
    };
    proto.mtf.TimelineEvent.prototype.setBosswarning = function(value) {
      return jspb.Message.setOneofWrapperField(this, 6, proto.mtf.TimelineEvent.oneofGroups_[0], value);
    };
    proto.mtf.TimelineEvent.prototype.clearBosswarning = function() {
      return this.setBosswarning(void 0);
    };
    proto.mtf.TimelineEvent.prototype.hasBosswarning = function() {
      return null != jspb.Message.getField(this, 6);
    };
    proto.mtf.TimelineEvent.prototype.getPlaybganim = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.PlayBgAnimEvent, 7);
    };
    proto.mtf.TimelineEvent.prototype.setPlaybganim = function(value) {
      return jspb.Message.setOneofWrapperField(this, 7, proto.mtf.TimelineEvent.oneofGroups_[0], value);
    };
    proto.mtf.TimelineEvent.prototype.clearPlaybganim = function() {
      return this.setPlaybganim(void 0);
    };
    proto.mtf.TimelineEvent.prototype.hasPlaybganim = function() {
      return null != jspb.Message.getField(this, 7);
    };
    proto.mtf.TimelineEvent.prototype.getSpecialbossnotify = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.SpecialBossNotifyEvent, 8);
    };
    proto.mtf.TimelineEvent.prototype.setSpecialbossnotify = function(value) {
      return jspb.Message.setOneofWrapperField(this, 8, proto.mtf.TimelineEvent.oneofGroups_[0], value);
    };
    proto.mtf.TimelineEvent.prototype.clearSpecialbossnotify = function() {
      return this.setSpecialbossnotify(void 0);
    };
    proto.mtf.TimelineEvent.prototype.hasSpecialbossnotify = function() {
      return null != jspb.Message.getField(this, 8);
    };
    proto.mtf.TimelineEventParam.oneofGroups_ = [ [ 1, 2, 3, 4, 5, 6 ] ];
    proto.mtf.TimelineEventParam.ParamCase = {
      PARAM_NOT_SET: 0,
      SWITCHBG: 1,
      SWITCHBGMUSIC: 2,
      SHAKE: 3,
      BOSSWARNING: 4,
      PLAYBGANIM: 5,
      SPECIALBOSSNOTIFY: 6
    };
    proto.mtf.TimelineEventParam.prototype.getParamCase = function() {
      return jspb.Message.computeOneofCase(this, proto.mtf.TimelineEventParam.oneofGroups_[0]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.TimelineEventParam.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.TimelineEventParam.toObject(opt_includeInstance, this);
      };
      proto.mtf.TimelineEventParam.toObject = function(includeInstance, msg) {
        var f, obj = {
          switchbg: (f = msg.getSwitchbg()) && proto.mtf.SwitchBGEvent.toObject(includeInstance, f),
          switchbgmusic: (f = msg.getSwitchbgmusic()) && proto.mtf.SwitchBgMusicEvent.toObject(includeInstance, f),
          shake: (f = msg.getShake()) && proto.mtf.ShakeEvent.toObject(includeInstance, f),
          bosswarning: (f = msg.getBosswarning()) && proto.mtf.BossWarningEvent.toObject(includeInstance, f),
          playbganim: (f = msg.getPlaybganim()) && proto.mtf.PlayBgAnimEvent.toObject(includeInstance, f),
          specialbossnotify: (f = msg.getSpecialbossnotify()) && proto.mtf.SpecialBossNotifyEvent.toObject(includeInstance, f)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.TimelineEventParam.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.TimelineEventParam();
      return proto.mtf.TimelineEventParam.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.TimelineEventParam.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = new proto.mtf.SwitchBGEvent();
          reader.readMessage(value, proto.mtf.SwitchBGEvent.deserializeBinaryFromReader);
          msg.setSwitchbg(value);
          break;

         case 2:
          var value = new proto.mtf.SwitchBgMusicEvent();
          reader.readMessage(value, proto.mtf.SwitchBgMusicEvent.deserializeBinaryFromReader);
          msg.setSwitchbgmusic(value);
          break;

         case 3:
          var value = new proto.mtf.ShakeEvent();
          reader.readMessage(value, proto.mtf.ShakeEvent.deserializeBinaryFromReader);
          msg.setShake(value);
          break;

         case 4:
          var value = new proto.mtf.BossWarningEvent();
          reader.readMessage(value, proto.mtf.BossWarningEvent.deserializeBinaryFromReader);
          msg.setBosswarning(value);
          break;

         case 5:
          var value = new proto.mtf.PlayBgAnimEvent();
          reader.readMessage(value, proto.mtf.PlayBgAnimEvent.deserializeBinaryFromReader);
          msg.setPlaybganim(value);
          break;

         case 6:
          var value = new proto.mtf.SpecialBossNotifyEvent();
          reader.readMessage(value, proto.mtf.SpecialBossNotifyEvent.deserializeBinaryFromReader);
          msg.setSpecialbossnotify(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.TimelineEventParam.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.TimelineEventParam.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.TimelineEventParam.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSwitchbg();
      null != f && writer.writeMessage(1, f, proto.mtf.SwitchBGEvent.serializeBinaryToWriter);
      f = message.getSwitchbgmusic();
      null != f && writer.writeMessage(2, f, proto.mtf.SwitchBgMusicEvent.serializeBinaryToWriter);
      f = message.getShake();
      null != f && writer.writeMessage(3, f, proto.mtf.ShakeEvent.serializeBinaryToWriter);
      f = message.getBosswarning();
      null != f && writer.writeMessage(4, f, proto.mtf.BossWarningEvent.serializeBinaryToWriter);
      f = message.getPlaybganim();
      null != f && writer.writeMessage(5, f, proto.mtf.PlayBgAnimEvent.serializeBinaryToWriter);
      f = message.getSpecialbossnotify();
      null != f && writer.writeMessage(6, f, proto.mtf.SpecialBossNotifyEvent.serializeBinaryToWriter);
    };
    proto.mtf.TimelineEventParam.prototype.getSwitchbg = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.SwitchBGEvent, 1);
    };
    proto.mtf.TimelineEventParam.prototype.setSwitchbg = function(value) {
      return jspb.Message.setOneofWrapperField(this, 1, proto.mtf.TimelineEventParam.oneofGroups_[0], value);
    };
    proto.mtf.TimelineEventParam.prototype.clearSwitchbg = function() {
      return this.setSwitchbg(void 0);
    };
    proto.mtf.TimelineEventParam.prototype.hasSwitchbg = function() {
      return null != jspb.Message.getField(this, 1);
    };
    proto.mtf.TimelineEventParam.prototype.getSwitchbgmusic = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.SwitchBgMusicEvent, 2);
    };
    proto.mtf.TimelineEventParam.prototype.setSwitchbgmusic = function(value) {
      return jspb.Message.setOneofWrapperField(this, 2, proto.mtf.TimelineEventParam.oneofGroups_[0], value);
    };
    proto.mtf.TimelineEventParam.prototype.clearSwitchbgmusic = function() {
      return this.setSwitchbgmusic(void 0);
    };
    proto.mtf.TimelineEventParam.prototype.hasSwitchbgmusic = function() {
      return null != jspb.Message.getField(this, 2);
    };
    proto.mtf.TimelineEventParam.prototype.getShake = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.ShakeEvent, 3);
    };
    proto.mtf.TimelineEventParam.prototype.setShake = function(value) {
      return jspb.Message.setOneofWrapperField(this, 3, proto.mtf.TimelineEventParam.oneofGroups_[0], value);
    };
    proto.mtf.TimelineEventParam.prototype.clearShake = function() {
      return this.setShake(void 0);
    };
    proto.mtf.TimelineEventParam.prototype.hasShake = function() {
      return null != jspb.Message.getField(this, 3);
    };
    proto.mtf.TimelineEventParam.prototype.getBosswarning = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.BossWarningEvent, 4);
    };
    proto.mtf.TimelineEventParam.prototype.setBosswarning = function(value) {
      return jspb.Message.setOneofWrapperField(this, 4, proto.mtf.TimelineEventParam.oneofGroups_[0], value);
    };
    proto.mtf.TimelineEventParam.prototype.clearBosswarning = function() {
      return this.setBosswarning(void 0);
    };
    proto.mtf.TimelineEventParam.prototype.hasBosswarning = function() {
      return null != jspb.Message.getField(this, 4);
    };
    proto.mtf.TimelineEventParam.prototype.getPlaybganim = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.PlayBgAnimEvent, 5);
    };
    proto.mtf.TimelineEventParam.prototype.setPlaybganim = function(value) {
      return jspb.Message.setOneofWrapperField(this, 5, proto.mtf.TimelineEventParam.oneofGroups_[0], value);
    };
    proto.mtf.TimelineEventParam.prototype.clearPlaybganim = function() {
      return this.setPlaybganim(void 0);
    };
    proto.mtf.TimelineEventParam.prototype.hasPlaybganim = function() {
      return null != jspb.Message.getField(this, 5);
    };
    proto.mtf.TimelineEventParam.prototype.getSpecialbossnotify = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.SpecialBossNotifyEvent, 6);
    };
    proto.mtf.TimelineEventParam.prototype.setSpecialbossnotify = function(value) {
      return jspb.Message.setOneofWrapperField(this, 6, proto.mtf.TimelineEventParam.oneofGroups_[0], value);
    };
    proto.mtf.TimelineEventParam.prototype.clearSpecialbossnotify = function() {
      return this.setSpecialbossnotify(void 0);
    };
    proto.mtf.TimelineEventParam.prototype.hasSpecialbossnotify = function() {
      return null != jspb.Message.getField(this, 6);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.SwitchBGEvent.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.SwitchBGEvent.toObject(opt_includeInstance, this);
      };
      proto.mtf.SwitchBGEvent.toObject = function(includeInstance, msg) {
        var f, obj = {
          bgindex: jspb.Message.getFieldWithDefault(msg, 1, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.SwitchBGEvent.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.SwitchBGEvent();
      return proto.mtf.SwitchBGEvent.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.SwitchBGEvent.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setBgindex(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.SwitchBGEvent.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.SwitchBGEvent.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.SwitchBGEvent.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getBgindex();
      0 !== f && writer.writeUint32(1, f);
    };
    proto.mtf.SwitchBGEvent.prototype.getBgindex = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.SwitchBGEvent.prototype.setBgindex = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.SwitchBgMusicEvent.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.SwitchBgMusicEvent.toObject(opt_includeInstance, this);
      };
      proto.mtf.SwitchBgMusicEvent.toObject = function(includeInstance, msg) {
        var f, obj = {
          musicname: jspb.Message.getFieldWithDefault(msg, 1, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.SwitchBgMusicEvent.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.SwitchBgMusicEvent();
      return proto.mtf.SwitchBgMusicEvent.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.SwitchBgMusicEvent.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setMusicname(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.SwitchBgMusicEvent.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.SwitchBgMusicEvent.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.SwitchBgMusicEvent.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getMusicname();
      f.length > 0 && writer.writeString(1, f);
    };
    proto.mtf.SwitchBgMusicEvent.prototype.getMusicname = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.SwitchBgMusicEvent.prototype.setMusicname = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ShakeEvent.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ShakeEvent.toObject(opt_includeInstance, this);
      };
      proto.mtf.ShakeEvent.toObject = function(includeInstance, msg) {
        var f, obj = {
          shakecontinuetime: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          shakestrength: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ShakeEvent.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ShakeEvent();
      return proto.mtf.ShakeEvent.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ShakeEvent.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readDouble();
          msg.setShakecontinuetime(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setShakestrength(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ShakeEvent.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ShakeEvent.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ShakeEvent.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getShakecontinuetime();
      0 !== f && writer.writeDouble(1, f);
      f = message.getShakestrength();
      0 !== f && writer.writeDouble(2, f);
    };
    proto.mtf.ShakeEvent.prototype.getShakecontinuetime = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ShakeEvent.prototype.setShakecontinuetime = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.ShakeEvent.prototype.getShakestrength = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.ShakeEvent.prototype.setShakestrength = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.BossWarningEvent.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.BossWarningEvent.toObject(opt_includeInstance, this);
      };
      proto.mtf.BossWarningEvent.toObject = function(includeInstance, msg) {
        var f, obj = {
          warningtype: jspb.Message.getFieldWithDefault(msg, 1, 0),
          fishtype: jspb.Message.getFieldWithDefault(msg, 2, 0),
          ratio: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.BossWarningEvent.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.BossWarningEvent();
      return proto.mtf.BossWarningEvent.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.BossWarningEvent.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setWarningtype(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setFishtype(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setRatio(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.BossWarningEvent.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.BossWarningEvent.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.BossWarningEvent.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getWarningtype();
      0 !== f && writer.writeUint32(1, f);
      f = message.getFishtype();
      0 !== f && writer.writeUint32(2, f);
      f = message.getRatio();
      0 !== f && writer.writeDouble(3, f);
    };
    proto.mtf.BossWarningEvent.prototype.getWarningtype = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.BossWarningEvent.prototype.setWarningtype = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.BossWarningEvent.prototype.getFishtype = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.BossWarningEvent.prototype.setFishtype = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.BossWarningEvent.prototype.getRatio = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.BossWarningEvent.prototype.setRatio = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.PlayBgAnimEvent.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.PlayBgAnimEvent.toObject(opt_includeInstance, this);
      };
      proto.mtf.PlayBgAnimEvent.toObject = function(includeInstance, msg) {
        var f, obj = {
          animname: jspb.Message.getFieldWithDefault(msg, 1, ""),
          loops: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.PlayBgAnimEvent.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.PlayBgAnimEvent();
      return proto.mtf.PlayBgAnimEvent.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.PlayBgAnimEvent.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setAnimname(value);
          break;

         case 2:
          var value = reader.readBool();
          msg.setLoops(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.PlayBgAnimEvent.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.PlayBgAnimEvent.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.PlayBgAnimEvent.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getAnimname();
      f.length > 0 && writer.writeString(1, f);
      f = message.getLoops();
      f && writer.writeBool(2, f);
    };
    proto.mtf.PlayBgAnimEvent.prototype.getAnimname = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.PlayBgAnimEvent.prototype.setAnimname = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.PlayBgAnimEvent.prototype.getLoops = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 2, false);
    };
    proto.mtf.PlayBgAnimEvent.prototype.setLoops = function(value) {
      return jspb.Message.setProto3BooleanField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.SpecialBossNotifyEvent.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.SpecialBossNotifyEvent.toObject(opt_includeInstance, this);
      };
      proto.mtf.SpecialBossNotifyEvent.toObject = function(includeInstance, msg) {
        var f, obj = {
          fishtype: jspb.Message.getFieldWithDefault(msg, 1, 0),
          ratio: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.SpecialBossNotifyEvent.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.SpecialBossNotifyEvent();
      return proto.mtf.SpecialBossNotifyEvent.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.SpecialBossNotifyEvent.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setFishtype(value);
          break;

         case 2:
          var value = reader.readDouble();
          msg.setRatio(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.SpecialBossNotifyEvent.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.SpecialBossNotifyEvent.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.SpecialBossNotifyEvent.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getFishtype();
      0 !== f && writer.writeUint32(1, f);
      f = message.getRatio();
      0 !== f && writer.writeDouble(2, f);
    };
    proto.mtf.SpecialBossNotifyEvent.prototype.getFishtype = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.SpecialBossNotifyEvent.prototype.setFishtype = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.SpecialBossNotifyEvent.prototype.getRatio = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.SpecialBossNotifyEvent.prototype.setRatio = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.ScriptData.repeatedFields_ = [ 1, 2, 3, 4 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ScriptData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ScriptData.toObject(opt_includeInstance, this);
      };
      proto.mtf.ScriptData.toObject = function(includeInstance, msg) {
        var f, obj = {
          groupList: jspb.Message.toObjectList(msg.getGroupList(), proto.mtf.GroupData.toObject, includeInstance),
          subList: jspb.Message.toObjectList(msg.getSubList(), proto.mtf.SubData.toObject, includeInstance),
          mainList: jspb.Message.toObjectList(msg.getMainList(), proto.mtf.MainData.toObject, includeInstance),
          pathList: jspb.Message.toObjectList(msg.getPathList(), proto.mtf.PathData.toObject, includeInstance),
          version: jspb.Message.getFieldWithDefault(msg, 5, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ScriptData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ScriptData();
      return proto.mtf.ScriptData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ScriptData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = new proto.mtf.GroupData();
          reader.readMessage(value, proto.mtf.GroupData.deserializeBinaryFromReader);
          msg.addGroup(value);
          break;

         case 2:
          var value = new proto.mtf.SubData();
          reader.readMessage(value, proto.mtf.SubData.deserializeBinaryFromReader);
          msg.addSub(value);
          break;

         case 3:
          var value = new proto.mtf.MainData();
          reader.readMessage(value, proto.mtf.MainData.deserializeBinaryFromReader);
          msg.addMain(value);
          break;

         case 4:
          var value = new proto.mtf.PathData();
          reader.readMessage(value, proto.mtf.PathData.deserializeBinaryFromReader);
          msg.addPath(value);
          break;

         case 5:
          var value = reader.readInt64();
          msg.setVersion(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ScriptData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ScriptData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ScriptData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getGroupList();
      f.length > 0 && writer.writeRepeatedMessage(1, f, proto.mtf.GroupData.serializeBinaryToWriter);
      f = message.getSubList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.SubData.serializeBinaryToWriter);
      f = message.getMainList();
      f.length > 0 && writer.writeRepeatedMessage(3, f, proto.mtf.MainData.serializeBinaryToWriter);
      f = message.getPathList();
      f.length > 0 && writer.writeRepeatedMessage(4, f, proto.mtf.PathData.serializeBinaryToWriter);
      f = message.getVersion();
      0 !== f && writer.writeInt64(5, f);
    };
    proto.mtf.ScriptData.prototype.getGroupList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.GroupData, 1);
    };
    proto.mtf.ScriptData.prototype.setGroupList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 1, value);
    };
    proto.mtf.ScriptData.prototype.addGroup = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mtf.GroupData, opt_index);
    };
    proto.mtf.ScriptData.prototype.clearGroupList = function() {
      return this.setGroupList([]);
    };
    proto.mtf.ScriptData.prototype.getSubList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.SubData, 2);
    };
    proto.mtf.ScriptData.prototype.setSubList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.ScriptData.prototype.addSub = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.SubData, opt_index);
    };
    proto.mtf.ScriptData.prototype.clearSubList = function() {
      return this.setSubList([]);
    };
    proto.mtf.ScriptData.prototype.getMainList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.MainData, 3);
    };
    proto.mtf.ScriptData.prototype.setMainList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 3, value);
    };
    proto.mtf.ScriptData.prototype.addMain = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.mtf.MainData, opt_index);
    };
    proto.mtf.ScriptData.prototype.clearMainList = function() {
      return this.setMainList([]);
    };
    proto.mtf.ScriptData.prototype.getPathList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.PathData, 4);
    };
    proto.mtf.ScriptData.prototype.setPathList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 4, value);
    };
    proto.mtf.ScriptData.prototype.addPath = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.mtf.PathData, opt_index);
    };
    proto.mtf.ScriptData.prototype.clearPathList = function() {
      return this.setPathList([]);
    };
    proto.mtf.ScriptData.prototype.getVersion = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.ScriptData.prototype.setVersion = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.mtf.ScriptV2.repeatedFields_ = [ 1, 2, 3, 4 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ScriptV2.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ScriptV2.toObject(opt_includeInstance, this);
      };
      proto.mtf.ScriptV2.toObject = function(includeInstance, msg) {
        var f, obj = {
          mainList: jspb.Message.toObjectList(msg.getMainList(), proto.mtf.ScriptV2.MainData.toObject, includeInstance),
          randomList: jspb.Message.toObjectList(msg.getRandomList(), proto.mtf.ScriptV2.RandomData.toObject, includeInstance),
          groupList: jspb.Message.toObjectList(msg.getGroupList(), proto.mtf.ScriptV2.GroupData.toObject, includeInstance),
          pathList: jspb.Message.toObjectList(msg.getPathList(), proto.mtf.ScriptV2.PathData.toObject, includeInstance),
          version: jspb.Message.getFieldWithDefault(msg, 5, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ScriptV2.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ScriptV2();
      return proto.mtf.ScriptV2.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ScriptV2.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = new proto.mtf.ScriptV2.MainData();
          reader.readMessage(value, proto.mtf.ScriptV2.MainData.deserializeBinaryFromReader);
          msg.addMain(value);
          break;

         case 2:
          var value = new proto.mtf.ScriptV2.RandomData();
          reader.readMessage(value, proto.mtf.ScriptV2.RandomData.deserializeBinaryFromReader);
          msg.addRandom(value);
          break;

         case 3:
          var value = new proto.mtf.ScriptV2.GroupData();
          reader.readMessage(value, proto.mtf.ScriptV2.GroupData.deserializeBinaryFromReader);
          msg.addGroup(value);
          break;

         case 4:
          var value = new proto.mtf.ScriptV2.PathData();
          reader.readMessage(value, proto.mtf.ScriptV2.PathData.deserializeBinaryFromReader);
          msg.addPath(value);
          break;

         case 5:
          var value = reader.readInt64();
          msg.setVersion(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ScriptV2.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ScriptV2.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ScriptV2.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getMainList();
      f.length > 0 && writer.writeRepeatedMessage(1, f, proto.mtf.ScriptV2.MainData.serializeBinaryToWriter);
      f = message.getRandomList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.ScriptV2.RandomData.serializeBinaryToWriter);
      f = message.getGroupList();
      f.length > 0 && writer.writeRepeatedMessage(3, f, proto.mtf.ScriptV2.GroupData.serializeBinaryToWriter);
      f = message.getPathList();
      f.length > 0 && writer.writeRepeatedMessage(4, f, proto.mtf.ScriptV2.PathData.serializeBinaryToWriter);
      f = message.getVersion();
      0 !== f && writer.writeInt64(5, f);
    };
    proto.mtf.ScriptV2.MainData.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ScriptV2.MainData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ScriptV2.MainData.toObject(opt_includeInstance, this);
      };
      proto.mtf.ScriptV2.MainData.toObject = function(includeInstance, msg) {
        var f, obj = {
          no: jspb.Message.getFieldWithDefault(msg, 1, 0),
          randomsList: jspb.Message.toObjectList(msg.getRandomsList(), proto.mtf.ScriptV2.MainData.Sub.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ScriptV2.MainData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ScriptV2.MainData();
      return proto.mtf.ScriptV2.MainData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ScriptV2.MainData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setNo(value);
          break;

         case 2:
          var value = new proto.mtf.ScriptV2.MainData.Sub();
          reader.readMessage(value, proto.mtf.ScriptV2.MainData.Sub.deserializeBinaryFromReader);
          msg.addRandoms(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ScriptV2.MainData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ScriptV2.MainData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ScriptV2.MainData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getNo();
      0 !== f && writer.writeUint32(1, f);
      f = message.getRandomsList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.ScriptV2.MainData.Sub.serializeBinaryToWriter);
    };
    proto.mtf.ScriptV2.MainData.Sub.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ScriptV2.MainData.Sub.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ScriptV2.MainData.Sub.toObject(opt_includeInstance, this);
      };
      proto.mtf.ScriptV2.MainData.Sub.toObject = function(includeInstance, msg) {
        var f, obj = {
          name: jspb.Message.getFieldWithDefault(msg, 1, ""),
          randomList: null == (f = jspb.Message.getRepeatedField(msg, 2)) ? void 0 : f
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ScriptV2.MainData.Sub.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ScriptV2.MainData.Sub();
      return proto.mtf.ScriptV2.MainData.Sub.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ScriptV2.MainData.Sub.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readString();
          msg.setName(value);
          break;

         case 2:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addRandom(values[i]);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ScriptV2.MainData.Sub.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ScriptV2.MainData.Sub.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ScriptV2.MainData.Sub.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getName();
      f.length > 0 && writer.writeString(1, f);
      f = message.getRandomList();
      f.length > 0 && writer.writePackedUint32(2, f);
    };
    proto.mtf.ScriptV2.MainData.Sub.prototype.getName = function() {
      return jspb.Message.getFieldWithDefault(this, 1, "");
    };
    proto.mtf.ScriptV2.MainData.Sub.prototype.setName = function(value) {
      return jspb.Message.setProto3StringField(this, 1, value);
    };
    proto.mtf.ScriptV2.MainData.Sub.prototype.getRandomList = function() {
      return jspb.Message.getRepeatedField(this, 2);
    };
    proto.mtf.ScriptV2.MainData.Sub.prototype.setRandomList = function(value) {
      return jspb.Message.setField(this, 2, value || []);
    };
    proto.mtf.ScriptV2.MainData.Sub.prototype.addRandom = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
    };
    proto.mtf.ScriptV2.MainData.Sub.prototype.clearRandomList = function() {
      return this.setRandomList([]);
    };
    proto.mtf.ScriptV2.MainData.prototype.getNo = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ScriptV2.MainData.prototype.setNo = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.ScriptV2.MainData.prototype.getRandomsList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.ScriptV2.MainData.Sub, 2);
    };
    proto.mtf.ScriptV2.MainData.prototype.setRandomsList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.ScriptV2.MainData.prototype.addRandoms = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.ScriptV2.MainData.Sub, opt_index);
    };
    proto.mtf.ScriptV2.MainData.prototype.clearRandomsList = function() {
      return this.setRandomsList([]);
    };
    proto.mtf.ScriptV2.RandomData.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ScriptV2.RandomData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ScriptV2.RandomData.toObject(opt_includeInstance, this);
      };
      proto.mtf.ScriptV2.RandomData.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          randomList: jspb.Message.toObjectList(msg.getRandomList(), proto.mtf.ScriptV2.RandomData.Random.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ScriptV2.RandomData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ScriptV2.RandomData();
      return proto.mtf.ScriptV2.RandomData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ScriptV2.RandomData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var value = new proto.mtf.ScriptV2.RandomData.Random();
          reader.readMessage(value, proto.mtf.ScriptV2.RandomData.Random.deserializeBinaryFromReader);
          msg.addRandom(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ScriptV2.RandomData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ScriptV2.RandomData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ScriptV2.RandomData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getRandomList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.ScriptV2.RandomData.Random.serializeBinaryToWriter);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ScriptV2.RandomData.Random.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ScriptV2.RandomData.Random.toObject(opt_includeInstance, this);
      };
      proto.mtf.ScriptV2.RandomData.Random.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          rate: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ScriptV2.RandomData.Random.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ScriptV2.RandomData.Random();
      return proto.mtf.ScriptV2.RandomData.Random.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ScriptV2.RandomData.Random.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var value = reader.readFloat();
          msg.setRate(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ScriptV2.RandomData.Random.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ScriptV2.RandomData.Random.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ScriptV2.RandomData.Random.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getRate();
      0 !== f && writer.writeFloat(2, f);
    };
    proto.mtf.ScriptV2.RandomData.Random.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ScriptV2.RandomData.Random.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.ScriptV2.RandomData.Random.prototype.getRate = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.ScriptV2.RandomData.Random.prototype.setRate = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.ScriptV2.RandomData.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ScriptV2.RandomData.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.ScriptV2.RandomData.prototype.getRandomList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.ScriptV2.RandomData.Random, 2);
    };
    proto.mtf.ScriptV2.RandomData.prototype.setRandomList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.ScriptV2.RandomData.prototype.addRandom = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.ScriptV2.RandomData.Random, opt_index);
    };
    proto.mtf.ScriptV2.RandomData.prototype.clearRandomList = function() {
      return this.setRandomList([]);
    };
    proto.mtf.ScriptV2.GroupData.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ScriptV2.GroupData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ScriptV2.GroupData.toObject(opt_includeInstance, this);
      };
      proto.mtf.ScriptV2.GroupData.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          fishList: jspb.Message.toObjectList(msg.getFishList(), proto.mtf.ScriptV2.GroupData.Fish.toObject, includeInstance),
          duration: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          delay: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ScriptV2.GroupData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ScriptV2.GroupData();
      return proto.mtf.ScriptV2.GroupData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ScriptV2.GroupData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var value = new proto.mtf.ScriptV2.GroupData.Fish();
          reader.readMessage(value, proto.mtf.ScriptV2.GroupData.Fish.deserializeBinaryFromReader);
          msg.addFish(value);
          break;

         case 3:
          var value = reader.readFloat();
          msg.setDuration(value);
          break;

         case 4:
          var value = reader.readFloat();
          msg.setDelay(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ScriptV2.GroupData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ScriptV2.GroupData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ScriptV2.GroupData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getFishList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.mtf.ScriptV2.GroupData.Fish.serializeBinaryToWriter);
      f = message.getDuration();
      0 !== f && writer.writeFloat(3, f);
      f = message.getDelay();
      0 !== f && writer.writeFloat(4, f);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ScriptV2.GroupData.Fish.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ScriptV2.GroupData.Fish.toObject(opt_includeInstance, this);
      };
      proto.mtf.ScriptV2.GroupData.Fish.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          fish: jspb.Message.getFieldWithDefault(msg, 2, 0),
          path: jspb.Message.getFieldWithDefault(msg, 3, 0),
          delay: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          flip: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
          mirror: jspb.Message.getBooleanFieldWithDefault(msg, 6, false)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ScriptV2.GroupData.Fish.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ScriptV2.GroupData.Fish();
      return proto.mtf.ScriptV2.GroupData.Fish.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ScriptV2.GroupData.Fish.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setFish(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setPath(value);
          break;

         case 4:
          var value = reader.readFloat();
          msg.setDelay(value);
          break;

         case 5:
          var value = reader.readBool();
          msg.setFlip(value);
          break;

         case 6:
          var value = reader.readBool();
          msg.setMirror(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ScriptV2.GroupData.Fish.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ScriptV2.GroupData.Fish.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getFish();
      0 !== f && writer.writeUint32(2, f);
      f = message.getPath();
      0 !== f && writer.writeUint32(3, f);
      f = message.getDelay();
      0 !== f && writer.writeFloat(4, f);
      f = message.getFlip();
      f && writer.writeBool(5, f);
      f = message.getMirror();
      f && writer.writeBool(6, f);
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.getFish = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.setFish = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.getPath = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.setPath = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.getDelay = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.setDelay = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.getFlip = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 5, false);
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.setFlip = function(value) {
      return jspb.Message.setProto3BooleanField(this, 5, value);
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.getMirror = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 6, false);
    };
    proto.mtf.ScriptV2.GroupData.Fish.prototype.setMirror = function(value) {
      return jspb.Message.setProto3BooleanField(this, 6, value);
    };
    proto.mtf.ScriptV2.GroupData.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ScriptV2.GroupData.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.ScriptV2.GroupData.prototype.getFishList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.ScriptV2.GroupData.Fish, 2);
    };
    proto.mtf.ScriptV2.GroupData.prototype.setFishList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.ScriptV2.GroupData.prototype.addFish = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.ScriptV2.GroupData.Fish, opt_index);
    };
    proto.mtf.ScriptV2.GroupData.prototype.clearFishList = function() {
      return this.setFishList([]);
    };
    proto.mtf.ScriptV2.GroupData.prototype.getDuration = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.ScriptV2.GroupData.prototype.setDuration = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.ScriptV2.GroupData.prototype.getDelay = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.ScriptV2.GroupData.prototype.setDelay = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.ScriptV2.PathData.repeatedFields_ = [ 3 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ScriptV2.PathData.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ScriptV2.PathData.toObject(opt_includeInstance, this);
      };
      proto.mtf.ScriptV2.PathData.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          duration: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          pointList: jspb.Message.toObjectList(msg.getPointList(), proto.mtf.ScriptV2.PathData.Point.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ScriptV2.PathData.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ScriptV2.PathData();
      return proto.mtf.ScriptV2.PathData.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ScriptV2.PathData.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var value = reader.readFloat();
          msg.setDuration(value);
          break;

         case 3:
          var value = new proto.mtf.ScriptV2.PathData.Point();
          reader.readMessage(value, proto.mtf.ScriptV2.PathData.Point.deserializeBinaryFromReader);
          msg.addPoint(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ScriptV2.PathData.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ScriptV2.PathData.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ScriptV2.PathData.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getDuration();
      0 !== f && writer.writeFloat(2, f);
      f = message.getPointList();
      f.length > 0 && writer.writeRepeatedMessage(3, f, proto.mtf.ScriptV2.PathData.Point.serializeBinaryToWriter);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.ScriptV2.PathData.Point.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.ScriptV2.PathData.Point.toObject(opt_includeInstance, this);
      };
      proto.mtf.ScriptV2.PathData.Point.toObject = function(includeInstance, msg) {
        var f, obj = {
          x: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0),
          y: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0),
          duration: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          delay: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0),
          isspline: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
          distance: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.ScriptV2.PathData.Point.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.ScriptV2.PathData.Point();
      return proto.mtf.ScriptV2.PathData.Point.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.ScriptV2.PathData.Point.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readFloat();
          msg.setX(value);
          break;

         case 2:
          var value = reader.readFloat();
          msg.setY(value);
          break;

         case 3:
          var value = reader.readFloat();
          msg.setDuration(value);
          break;

         case 4:
          var value = reader.readFloat();
          msg.setDelay(value);
          break;

         case 5:
          var value = reader.readBool();
          msg.setIsspline(value);
          break;

         case 6:
          var value = reader.readFloat();
          msg.setDistance(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.ScriptV2.PathData.Point.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.ScriptV2.PathData.Point.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getX();
      0 !== f && writer.writeFloat(1, f);
      f = message.getY();
      0 !== f && writer.writeFloat(2, f);
      f = message.getDuration();
      0 !== f && writer.writeFloat(3, f);
      f = message.getDelay();
      0 !== f && writer.writeFloat(4, f);
      f = message.getIsspline();
      f && writer.writeBool(5, f);
      f = message.getDistance();
      0 !== f && writer.writeFloat(6, f);
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.getX = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.setX = function(value) {
      return jspb.Message.setProto3FloatField(this, 1, value);
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.getY = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.setY = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.getDuration = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.setDuration = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.getDelay = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.setDelay = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.getIsspline = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 5, false);
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.setIsspline = function(value) {
      return jspb.Message.setProto3BooleanField(this, 5, value);
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.getDistance = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0);
    };
    proto.mtf.ScriptV2.PathData.Point.prototype.setDistance = function(value) {
      return jspb.Message.setProto3FloatField(this, 6, value);
    };
    proto.mtf.ScriptV2.PathData.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.ScriptV2.PathData.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.ScriptV2.PathData.prototype.getDuration = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0);
    };
    proto.mtf.ScriptV2.PathData.prototype.setDuration = function(value) {
      return jspb.Message.setProto3FloatField(this, 2, value);
    };
    proto.mtf.ScriptV2.PathData.prototype.getPointList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.ScriptV2.PathData.Point, 3);
    };
    proto.mtf.ScriptV2.PathData.prototype.setPointList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 3, value);
    };
    proto.mtf.ScriptV2.PathData.prototype.addPoint = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.mtf.ScriptV2.PathData.Point, opt_index);
    };
    proto.mtf.ScriptV2.PathData.prototype.clearPointList = function() {
      return this.setPointList([]);
    };
    proto.mtf.ScriptV2.prototype.getMainList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.ScriptV2.MainData, 1);
    };
    proto.mtf.ScriptV2.prototype.setMainList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 1, value);
    };
    proto.mtf.ScriptV2.prototype.addMain = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mtf.ScriptV2.MainData, opt_index);
    };
    proto.mtf.ScriptV2.prototype.clearMainList = function() {
      return this.setMainList([]);
    };
    proto.mtf.ScriptV2.prototype.getRandomList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.ScriptV2.RandomData, 2);
    };
    proto.mtf.ScriptV2.prototype.setRandomList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.mtf.ScriptV2.prototype.addRandom = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.mtf.ScriptV2.RandomData, opt_index);
    };
    proto.mtf.ScriptV2.prototype.clearRandomList = function() {
      return this.setRandomList([]);
    };
    proto.mtf.ScriptV2.prototype.getGroupList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.ScriptV2.GroupData, 3);
    };
    proto.mtf.ScriptV2.prototype.setGroupList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 3, value);
    };
    proto.mtf.ScriptV2.prototype.addGroup = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.mtf.ScriptV2.GroupData, opt_index);
    };
    proto.mtf.ScriptV2.prototype.clearGroupList = function() {
      return this.setGroupList([]);
    };
    proto.mtf.ScriptV2.prototype.getPathList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.ScriptV2.PathData, 4);
    };
    proto.mtf.ScriptV2.prototype.setPathList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 4, value);
    };
    proto.mtf.ScriptV2.prototype.addPath = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.mtf.ScriptV2.PathData, opt_index);
    };
    proto.mtf.ScriptV2.prototype.clearPathList = function() {
      return this.setPathList([]);
    };
    proto.mtf.ScriptV2.prototype.getVersion = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.mtf.ScriptV2.prototype.setVersion = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.FreezeAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.FreezeAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.FreezeAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          pause: jspb.Message.getFieldWithDefault(msg, 2, 0),
          coin: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          remain: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.FreezeAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.FreezeAck();
      return proto.mtf.FreezeAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.FreezeAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setPause(value);
          break;

         case 3:
          var value = reader.readDouble();
          msg.setCoin(value);
          break;

         case 4:
          var value = reader.readDouble();
          msg.setRemain(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.FreezeAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.FreezeAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.FreezeAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getPause();
      0 !== f && writer.writeUint32(2, f);
      f = message.getCoin();
      0 !== f && writer.writeDouble(3, f);
      f = message.getRemain();
      0 !== f && writer.writeDouble(4, f);
    };
    proto.mtf.FreezeAck.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.FreezeAck.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.FreezeAck.prototype.getPause = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.FreezeAck.prototype.setPause = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.FreezeAck.prototype.getCoin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.mtf.FreezeAck.prototype.setCoin = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.mtf.FreezeAck.prototype.getRemain = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0);
    };
    proto.mtf.FreezeAck.prototype.setRemain = function(value) {
      return jspb.Message.setProto3FloatField(this, 4, value);
    };
    proto.mtf.EatFishReq.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.EatFishReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.EatFishReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.EatFishReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          eater: jspb.Message.getFieldWithDefault(msg, 1, 0),
          toeatList: null == (f = jspb.Message.getRepeatedField(msg, 2)) ? void 0 : f
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.EatFishReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.EatFishReq();
      return proto.mtf.EatFishReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.EatFishReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setEater(value);
          break;

         case 2:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addToeat(values[i]);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.EatFishReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.EatFishReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.EatFishReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getEater();
      0 !== f && writer.writeUint32(1, f);
      f = message.getToeatList();
      f.length > 0 && writer.writePackedUint32(2, f);
    };
    proto.mtf.EatFishReq.prototype.getEater = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.EatFishReq.prototype.setEater = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.EatFishReq.prototype.getToeatList = function() {
      return jspb.Message.getRepeatedField(this, 2);
    };
    proto.mtf.EatFishReq.prototype.setToeatList = function(value) {
      return jspb.Message.setField(this, 2, value || []);
    };
    proto.mtf.EatFishReq.prototype.addToeat = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
    };
    proto.mtf.EatFishReq.prototype.clearToeatList = function() {
      return this.setToeatList([]);
    };
    proto.mtf.EatFishAck.repeatedFields_ = [ 4 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.EatFishAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.EatFishAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.EatFishAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          eater: jspb.Message.getFieldWithDefault(msg, 1, 0),
          eaterodds: jspb.Message.getFieldWithDefault(msg, 2, 0),
          eateroddsmax: jspb.Message.getFieldWithDefault(msg, 3, 0),
          fisheseatenList: null == (f = jspb.Message.getRepeatedField(msg, 4)) ? void 0 : f
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.EatFishAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.EatFishAck();
      return proto.mtf.EatFishAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.EatFishAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setEater(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setEaterodds(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setEateroddsmax(value);
          break;

         case 4:
          var values = reader.isDelimited() ? reader.readPackedUint32() : [ reader.readUint32() ];
          for (var i = 0; i < values.length; i++) msg.addFisheseaten(values[i]);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.EatFishAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.EatFishAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.EatFishAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getEater();
      0 !== f && writer.writeUint32(1, f);
      f = message.getEaterodds();
      0 !== f && writer.writeUint32(2, f);
      f = message.getEateroddsmax();
      0 !== f && writer.writeUint32(3, f);
      f = message.getFisheseatenList();
      f.length > 0 && writer.writePackedUint32(4, f);
    };
    proto.mtf.EatFishAck.prototype.getEater = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.EatFishAck.prototype.setEater = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.EatFishAck.prototype.getEaterodds = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.EatFishAck.prototype.setEaterodds = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.EatFishAck.prototype.getEateroddsmax = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.EatFishAck.prototype.setEateroddsmax = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.EatFishAck.prototype.getFisheseatenList = function() {
      return jspb.Message.getRepeatedField(this, 4);
    };
    proto.mtf.EatFishAck.prototype.setFisheseatenList = function(value) {
      return jspb.Message.setField(this, 4, value || []);
    };
    proto.mtf.EatFishAck.prototype.addFisheseaten = function(value, opt_index) {
      return jspb.Message.addToRepeatedField(this, 4, value, opt_index);
    };
    proto.mtf.EatFishAck.prototype.clearFisheseatenList = function() {
      return this.setFisheseatenList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.UpdateFishOdds.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.UpdateFishOdds.toObject(opt_includeInstance, this);
      };
      proto.mtf.UpdateFishOdds.toObject = function(includeInstance, msg) {
        var f, obj = {
          fishtag: jspb.Message.getFieldWithDefault(msg, 1, 0),
          odds: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.UpdateFishOdds.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.UpdateFishOdds();
      return proto.mtf.UpdateFishOdds.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.UpdateFishOdds.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setFishtag(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setOdds(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.UpdateFishOdds.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.UpdateFishOdds.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.UpdateFishOdds.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getFishtag();
      0 !== f && writer.writeUint32(1, f);
      f = message.getOdds();
      0 !== f && writer.writeUint32(2, f);
    };
    proto.mtf.UpdateFishOdds.prototype.getFishtag = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.UpdateFishOdds.prototype.setFishtag = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.UpdateFishOdds.prototype.getOdds = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.UpdateFishOdds.prototype.setOdds = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DebugReq.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DebugReq.toObject(opt_includeInstance, this);
      };
      proto.mtf.DebugReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          type: jspb.Message.getFieldWithDefault(msg, 2, 0),
          param1: jspb.Message.getFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DebugReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DebugReq();
      return proto.mtf.DebugReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DebugReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setType(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setParam1(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DebugReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DebugReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DebugReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getType();
      0 !== f && writer.writeUint32(2, f);
      f = message.getParam1();
      0 !== f && writer.writeUint32(3, f);
    };
    proto.mtf.DebugReq.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DebugReq.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DebugReq.prototype.getType = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.DebugReq.prototype.setType = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.DebugReq.prototype.getParam1 = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.DebugReq.prototype.setParam1 = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.DebugAck.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.DebugAck.toObject(opt_includeInstance, this);
      };
      proto.mtf.DebugAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          id: jspb.Message.getFieldWithDefault(msg, 1, 0),
          success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),
          ret: jspb.Message.getFieldWithDefault(msg, 3, "")
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.DebugAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.DebugAck();
      return proto.mtf.DebugAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.DebugAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setId(value);
          break;

         case 2:
          var value = reader.readBool();
          msg.setSuccess(value);
          break;

         case 3:
          var value = reader.readString();
          msg.setRet(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.DebugAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.DebugAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.DebugAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getId();
      0 !== f && writer.writeUint32(1, f);
      f = message.getSuccess();
      f && writer.writeBool(2, f);
      f = message.getRet();
      f.length > 0 && writer.writeString(3, f);
    };
    proto.mtf.DebugAck.prototype.getId = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.DebugAck.prototype.setId = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.DebugAck.prototype.getSuccess = function() {
      return jspb.Message.getBooleanFieldWithDefault(this, 2, false);
    };
    proto.mtf.DebugAck.prototype.setSuccess = function(value) {
      return jspb.Message.setProto3BooleanField(this, 2, value);
    };
    proto.mtf.DebugAck.prototype.getRet = function() {
      return jspb.Message.getFieldWithDefault(this, 3, "");
    };
    proto.mtf.DebugAck.prototype.setRet = function(value) {
      return jspb.Message.setProto3StringField(this, 3, value);
    };
    proto.mtf.FishDeathEffectNotification.repeatedFields_ = [ 9 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.mtf.FishDeathEffectNotification.prototype.toObject = function(opt_includeInstance) {
        return proto.mtf.FishDeathEffectNotification.toObject(opt_includeInstance, this);
      };
      proto.mtf.FishDeathEffectNotification.toObject = function(includeInstance, msg) {
        var f, obj = {
          seat: jspb.Message.getFieldWithDefault(msg, 1, 0),
          effectseat: jspb.Message.getFieldWithDefault(msg, 2, 0),
          fishid: jspb.Message.getFieldWithDefault(msg, 3, 0),
          fishtag: jspb.Message.getFieldWithDefault(msg, 4, 0),
          targetpos: (f = msg.getTargetpos()) && proto.mtf.Point.toObject(includeInstance, f),
          bet: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0),
          win: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0),
          secondselapsed: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0),
          collateraldeadList: jspb.Message.toObjectList(msg.getCollateraldeadList(), proto.mtf.HitAckData.Fish.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.mtf.FishDeathEffectNotification.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.mtf.FishDeathEffectNotification();
      return proto.mtf.FishDeathEffectNotification.deserializeBinaryFromReader(msg, reader);
    };
    proto.mtf.FishDeathEffectNotification.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setEffectseat(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setFishid(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setFishtag(value);
          break;

         case 5:
          var value = new proto.mtf.Point();
          reader.readMessage(value, proto.mtf.Point.deserializeBinaryFromReader);
          msg.setTargetpos(value);
          break;

         case 6:
          var value = reader.readDouble();
          msg.setBet(value);
          break;

         case 7:
          var value = reader.readDouble();
          msg.setWin(value);
          break;

         case 8:
          var value = reader.readDouble();
          msg.setSecondselapsed(value);
          break;

         case 9:
          var value = new proto.mtf.HitAckData.Fish();
          reader.readMessage(value, proto.mtf.HitAckData.Fish.deserializeBinaryFromReader);
          msg.addCollateraldead(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.mtf.FishDeathEffectNotification.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.mtf.FishDeathEffectNotification.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.mtf.FishDeathEffectNotification.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getSeat();
      0 !== f && writer.writeUint32(1, f);
      f = message.getEffectseat();
      0 !== f && writer.writeUint32(2, f);
      f = message.getFishid();
      0 !== f && writer.writeUint32(3, f);
      f = message.getFishtag();
      0 !== f && writer.writeUint32(4, f);
      f = message.getTargetpos();
      null != f && writer.writeMessage(5, f, proto.mtf.Point.serializeBinaryToWriter);
      f = message.getBet();
      0 !== f && writer.writeDouble(6, f);
      f = message.getWin();
      0 !== f && writer.writeDouble(7, f);
      f = message.getSecondselapsed();
      0 !== f && writer.writeDouble(8, f);
      f = message.getCollateraldeadList();
      f.length > 0 && writer.writeRepeatedMessage(9, f, proto.mtf.HitAckData.Fish.serializeBinaryToWriter);
    };
    proto.mtf.FishDeathEffectNotification.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.mtf.FishDeathEffectNotification.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.mtf.FishDeathEffectNotification.prototype.getEffectseat = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.mtf.FishDeathEffectNotification.prototype.setEffectseat = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.mtf.FishDeathEffectNotification.prototype.getFishid = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.mtf.FishDeathEffectNotification.prototype.setFishid = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.mtf.FishDeathEffectNotification.prototype.getFishtag = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.mtf.FishDeathEffectNotification.prototype.setFishtag = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.mtf.FishDeathEffectNotification.prototype.getTargetpos = function() {
      return jspb.Message.getWrapperField(this, proto.mtf.Point, 5);
    };
    proto.mtf.FishDeathEffectNotification.prototype.setTargetpos = function(value) {
      return jspb.Message.setWrapperField(this, 5, value);
    };
    proto.mtf.FishDeathEffectNotification.prototype.clearTargetpos = function() {
      return this.setTargetpos(void 0);
    };
    proto.mtf.FishDeathEffectNotification.prototype.hasTargetpos = function() {
      return null != jspb.Message.getField(this, 5);
    };
    proto.mtf.FishDeathEffectNotification.prototype.getBet = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0);
    };
    proto.mtf.FishDeathEffectNotification.prototype.setBet = function(value) {
      return jspb.Message.setProto3FloatField(this, 6, value);
    };
    proto.mtf.FishDeathEffectNotification.prototype.getWin = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0);
    };
    proto.mtf.FishDeathEffectNotification.prototype.setWin = function(value) {
      return jspb.Message.setProto3FloatField(this, 7, value);
    };
    proto.mtf.FishDeathEffectNotification.prototype.getSecondselapsed = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0);
    };
    proto.mtf.FishDeathEffectNotification.prototype.setSecondselapsed = function(value) {
      return jspb.Message.setProto3FloatField(this, 8, value);
    };
    proto.mtf.FishDeathEffectNotification.prototype.getCollateraldeadList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.mtf.HitAckData.Fish, 9);
    };
    proto.mtf.FishDeathEffectNotification.prototype.setCollateraldeadList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 9, value);
    };
    proto.mtf.FishDeathEffectNotification.prototype.addCollateraldead = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 9, opt_value, proto.mtf.HitAckData.Fish, opt_index);
    };
    proto.mtf.FishDeathEffectNotification.prototype.clearCollateraldeadList = function() {
      return this.setCollateraldeadList([]);
    };
    proto.mtf.UserToServer = {
      U2S_LOGIN_REQ: 0,
      U2S_LOGOUT: 2,
      U2S_JOIN_TABLE_REQ: 11,
      U2S_LEAVE_TABLE_REQ: 12,
      U2S_TABLE_INFO_REQ: 13,
      U2S_SHOOT_REQ: 22,
      U2S_HIT_REQ: 23,
      U2S_SKIN_CHANGE_REQ: 25,
      U2S_LEVEL_REWARD_REQ: 27,
      U2S_WEEK_REWARD_REQ: 28,
      U2S_KILL_REWARD_REQ: 29,
      U2S_HIT_SPCIAL_START_REQ: 30,
      U2S_JP_DETAIL_REQ: 36,
      U2S_FREEZE_REQ: 40,
      U2S_TRANSFER: 70,
      U2S_HEART_CHECK_REQ: 50,
      U2S_TIMELINE_ADD_REQ: 55,
      U2S_TIMELINE_PAUSE_REQ: 56,
      U2S_GET_CREATED_FISH_REQ: 58,
      U2S_CARD_USE_REQ: 80,
      U2S_CARD_INFO: 82,
      U2S_CARD_REDEEM: 83,
      U2S_JACKPOT_DRAW_REQ: 85,
      U2S_VIP_SIGN_REQ: 90,
      U2S_VIP_EXP_REQ: 91,
      U2S_VIP_INFO: 92,
      U2S_PROMOTION_INFO: 95,
      U2S_FAVORITE_INFO: 100,
      U2S_FAVORITE_ADD: 101,
      U2S_FAVORITE_REMOVE: 102,
      U2S_ITEM_INFO: 105,
      U2S_ITEM_USE_REQ: 106,
      U2S_MISSION_INFO: 110,
      U2S_MAIL_INFO: 115,
      U2S_CONFIG_INFO: 120,
      U2S_DEBRIS_INFO: 125,
      U2S_DEBRIS_GET: 126,
      U2S_DEBRIS_EXCHANGE: 127,
      U2S_DEBRIS_ACTIVITY: 128,
      U2S_GUNSETTING_NOTIFY: 200,
      U2S_LOCKFISH_NOTIFY: 1032,
      U2S_EATFISH_REQ: 1035,
      U2S_DEATH_EFFECT_NOTIFY: 1036,
      U2S_BOMB_REQ: 1038,
      U2S_FLAMESTORM_HIT_REQ: 1039,
      U2S_DRILL_FIRE_NOTIFY: 1040,
      U2S_DEBUG_REQ: 1337,
      U2S_DEBUG_HIT_REQ: 1338
    };
    proto.mtf.ServerToUser = {
      S2U_LOGIN_ACK: 0,
      S2U_LOGOUT_ACK: 1,
      S2U_JOIN_TABLE_ACK: 11,
      S2U_LEAVE_TABLE_ACK: 12,
      S2U_TABLE_INFO_ACK: 13,
      S2U_JOIN_NOTIFY: 14,
      S2U_LEAVE_NOTIFY: 15,
      S2U_SKIN_NOTIFY: 16,
      S2U_SHOOT_ACK: 20,
      S2U_SHOOT_NOTIFY: 21,
      S2U_HIT_ACK: 22,
      S2U_TIMELINE_NOTIFY: 23,
      S2U_TIMELINE_SYNC: 24,
      S2U_SKIN_CHANGE_ACK: 25,
      S2U_LEVEL_REWARD_ACK: 27,
      S2U_WEEK_REWARD_ACK: 28,
      S2U_KILL_REWARD_ACK: 29,
      S2U_HIT_SPECIAL_ACK: 30,
      S2U_HIT_SEPCIAL_START: 31,
      S2U_HIT_SPECIAL_END: 32,
      S2U_FREEZE_ACK: 40,
      S2U_HEART_CHECK_ACK: 50,
      S2U_TIMELINE_NOTIFY2: 55,
      S2U_CREATE_FISH_NOTIFY: 56,
      S2U_FISH_TRANSITION_NOTIFY: 57,
      S2U_FISH_SYNC_NOTIFY: 58,
      S2U_CANNON_ACK: 59,
      S2U_BROADCAST: 60,
      S2U_BROADCASTV2: 63,
      S2U_MAIL: 65,
      S2U_TRANSFER: 70,
      S2U_MAINTAIN: 75,
      S2U_CARD_USE_ACK: 80,
      S2U_CARD_NOTIFY: 81,
      S2U_CARD_INFO: 82,
      S2U_CARD_REDEEM: 83,
      S2U_CHIP_NOTIFY: 84,
      S2U_JACKPOT_DRAW_ACK: 86,
      S2U_VIP_SIGN_ACK: 90,
      S2U_VIP_EXP_NOTIFY: 91,
      S2U_VIP_INFO: 92,
      S2U_PROMOTION_INFO: 95,
      S2U_FAVORITE_INFO: 100,
      S2U_ITEM_INFO: 105,
      S2U_ITEM_USE_ACK: 106,
      S2U_MISSION_INFO: 110,
      S2U_MISSION_UPDATE: 111,
      S2U_MAIL_INFO: 115,
      S2U_CONFIG_INFO: 120,
      S2U_DEBRIS_INFO: 125,
      S2U_DEBRIS_GET: 126,
      S2U_DEBRIS_EXCHANGE: 127,
      S2U_DEBRIS_ACTIVITY: 128,
      S2U_GUNSETTING_NOTIFY: 200,
      S2U_LOCKFISH_NOTIFY: 1032,
      S2U_EATFISH_ACK: 1035,
      S2U_DEATH_EFFECT_NOTIFY: 1036,
      S2U_FISHODDS_UPDATE: 1037,
      S2U_BOMB_ACK: 1038,
      S2U_FLAMESTORM_HIT_ACK: 1039,
      S2U_DRILL_FIRE_NOTIFY: 1040,
      S2U_DEBUG_ACK: 1337
    };
    proto.mtf.LoginResult = {
      LR_SUCCESS: 0,
      LR_DUPLICATE: 1,
      LR_INVALID_ACCOUNT: 2,
      LR_FULL: 3,
      LR_RELOGIN: 4,
      LR_RELOGIN_FAIL: 5,
      LR_MAINTAIN: 6,
      LR_UNKNOWN: 255
    };
    proto.mtf.LogoutType = {
      LOGOUTNONE: 0,
      LOGOUTDUPLICATE: 1,
      LOGOUTINVALIDPLATFORM: 2,
      LOGOUTINVALIDGAME: 3,
      LOGOUTOVERDRAFT: 4,
      LOGOUTIDEL: 5,
      LOGOUTTRANSFER: 6,
      LOGOUTMAINTAIN: 7,
      LOGOUTOTHER: 255
    };
    proto.mtf.Currency = {
      NONE: 0,
      CNY: 1,
      USD: 2,
      THB: 3,
      VND_K: 4,
      MMK: 5,
      INR: 6,
      IDR: 7,
      MYR: 8,
      VND: 9,
      IDR_K: 10,
      KVND: 11,
      KIDR: 12,
      JPY: 13,
      BND: 14,
      SGD: 15,
      HKD: 16,
      PHP: 17,
      RUB: 18,
      THB_01: 19,
      MYR_01: 20,
      BDT: 21,
      KMMK: 22,
      AUD: 23,
      KZT: 24,
      CLP: 25,
      MMYR: 26,
      LKR: 27,
      NGN: 28,
      BRL: 29,
      TND: 30,
      MXN: 31,
      HMMK: 32,
      PKR: 33,
      KVND_H: 34,
      KKHR: 35,
      KLAK: 36,
      KRW: 37,
      EUR: 38
    };
    proto.mtf.TableInfoResult = {
      TIR_OK: 0,
      TIR_NO_ROOM: 1,
      TIR_NOT_INSIDE: 2,
      TIR_UNKNOWN: 255
    };
    proto.mtf.JoinTableResult = {
      JTR_SUCCESS: 0,
      JTR_ROOM_FULL: 1,
      JTR_NO_SPACE: 2,
      JTR_NO_ROOM: 3,
      JTR_UNMET_CONDITION: 4,
      JTR_UNKNOWN: 255
    };
    proto.mtf.ShootResult = {
      SR_OK: 0,
      SR_BET_ERROR: 1,
      SR_NO_COIN: 2,
      SR_EXCEEDED: 3,
      SR_UNKNOWN: 255
    };
    proto.mtf.HitResult = {
      HR_FAILED: 0,
      HR_SUCCESS: 1,
      HR_NO_BULLET: 2,
      HR_BLANK: 3,
      HR_FISH_ALREADY_DEAD: 4,
      HR_FISH_SERIAL_NOT_EXIST: 5,
      HR_FISH_DATA_NOT_EXIST: 6,
      HR_UNKNOWN: 255
    };
    proto.mtf.BulletType = {
      NORMAL: 0,
      LOCK: 1,
      BOMB: 6,
      ENERGY: 7,
      FREE: 20,
      FREEDRILL: 21,
      FREENET: 22,
      FLAMESTORM: 100
    };
    proto.mtf.RoomType = {
      MULTI: 0,
      SINGLE: 1
    };
    goog.object.extend(exports, proto.mtf);
    cc._RF.pop();
  }, {
    "./../../libs/MT3SETB-google-protobuf": "MT3SETB-google-protobuf"
  } ],
  "MT3SETB-numeral": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ec1acmYIXZN1rKo850eG2+F", "MT3SETB-numeral");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.numeral = void 0;
    class Numeral {
      constructor(input) {
        this.options = {
          currentLocale: Numeral.DEFAULTS.currentLocale,
          zeroFormat: Numeral.DEFAULTS.zeroFormat,
          nullFormat: Numeral.DEFAULTS.nullFormat,
          defaultFormat: Numeral.DEFAULTS.defaultFormat,
          scalePercentBy100: Numeral.DEFAULTS.scalePercentBy100
        };
        let kind, unformatFunction, regexp;
        if (this.isNumeral(input)) this.value = input.value; else if (0 === input || "undefined" === typeof input) this.value = 0; else if ("string" === typeof input) if (this.options.zeroFormat && input === this.options.zeroFormat) this.value = 0; else if (this.options.nullFormat && input === this.options.nullFormat || !input.replace(/[^0-9]+/g, "").length) this.value = void 0; else {
          for (kind in this.formats) {
            regexp = "function" === typeof this.formats[kind].regexps.unformat ? this.formats[kind].regexps.unformat() : this.formats[kind].regexps.unformat;
            if (regexp && input.match(regexp)) {
              unformatFunction = this.formats[kind].unformat.bind(this);
              break;
            }
          }
          unformatFunction = unformatFunction || this.stringToNumber.bind(this);
          this.value = unformatFunction(input);
        } else this.value = Number(input) || void 0;
      }
      isNumeral(obj) {
        return obj instanceof Numeral;
      }
      numberToFormat(value, format, roundingFunction) {
        let locale = Numeral.locales[this.options.currentLocale], negP = false, optDec = false, leadingCount = 0, abbr = "", trillion = 1e12, billion = 1e9, million = 1e6, thousand = 1e3, decimal = "", neg = false, abbrForce, abs, min, max, power, int, precision, signed = this.includes(format, "+") ? format.indexOf("+") : value < 0 ? format.indexOf("-") : -1, thousands, output;
        value = value || 0;
        abs = Math.abs(value);
        if (this.includes(format, "(")) {
          negP = true;
          format = format.replace(/[\(|\)]/g, "");
        } else if (this.includes(format, "+") || this.includes(format, "-")) {
          signed = this.includes(format, "+") ? format.indexOf("+") : value < 0 ? format.indexOf("-") : -1;
          format = format.replace(/[\+|\-]/g, "");
        }
        if (this.includes(format, "a")) {
          abbrForce = format.match(/a(k|m|b|t)?/);
          abbrForce = !!abbrForce && abbrForce[1];
          this.includes(format, " a") && (abbr = " ");
          format = format.replace(new RegExp(abbr + "a[kmbt]?"), "");
          if (abs >= trillion && !abbrForce || "t" === abbrForce) {
            abbr += locale.abbreviations.trillion;
            value /= trillion;
          } else if (abs < trillion && abs >= billion && !abbrForce || "b" === abbrForce) {
            abbr += locale.abbreviations.billion;
            value /= billion;
          } else if (abs < billion && abs >= million && !abbrForce || "m" === abbrForce) {
            abbr += locale.abbreviations.million;
            value /= million;
          } else if (abs < million && abs >= thousand && !abbrForce || "k" === abbrForce) {
            abbr += locale.abbreviations.thousand;
            value /= thousand;
          }
        }
        if (this.includes(format, "[.]")) {
          optDec = true;
          format = format.replace("[.]", ".");
        }
        int = value.toString().split(".")[0];
        precision = format.split(".")[1];
        thousands = format.indexOf(",");
        leadingCount = (format.split(".")[0].split(",")[0].match(/0/g) || []).length;
        if (precision) {
          if (this.includes(precision, "[")) {
            precision = precision.replace("]", "");
            precision = precision.split("[");
            decimal = this.toFixed(value, precision[0].length + precision[1].length, roundingFunction, precision[1].length);
          } else decimal = this.toFixed(value, precision.length, roundingFunction);
          int = decimal.split(".")[0];
          decimal = this.includes(decimal, ".") ? locale.delimiters.decimal + decimal.split(".")[1] : "";
          optDec && 0 === Number(decimal.slice(1)) && (decimal = "");
        } else int = this.toFixed(value, 0, roundingFunction);
        if (abbr && !abbrForce && Number(int) >= 1e3 && abbr !== locale.abbreviations.trillion) {
          int = String(Number(int) / 1e3);
          switch (abbr) {
           case locale.abbreviations.thousand:
            abbr = locale.abbreviations.million;
            break;

           case locale.abbreviations.million:
            abbr = locale.abbreviations.billion;
            break;

           case locale.abbreviations.billion:
            abbr = locale.abbreviations.trillion;
          }
        }
        if (this.includes(int, "-")) {
          int = int.slice(1);
          neg = true;
        }
        if (int.length < leadingCount) for (let i = leadingCount - int.length; i > 0; i--) int = "0" + int;
        thousands > -1 && (int = int.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1" + locale.delimiters.thousands));
        0 === format.indexOf(".") && (int = "");
        output = int + decimal + (abbr || "");
        negP ? output = (negP && neg ? "(" : "") + output + (negP && neg ? ")" : "") : signed >= 0 ? output = 0 === signed ? (neg ? "-" : "+") + output : output + (neg ? "-" : "+") : neg && (output = "-" + output);
        return output;
      }
      stringToNumber(str) {
        let locale = Numeral.locales[this.options.currentLocale], stringOriginal = str, abbreviations = {
          thousand: 3,
          million: 6,
          billion: 9,
          trillion: 12
        }, abbreviation, value, i, regexp;
        if (this.options.zeroFormat && str === this.options.zeroFormat) value = 0; else if (this.options.nullFormat && str === this.options.nullFormat || !str.replace(/[^0-9]+/g, "").length) value = null; else {
          value = 1;
          "." !== locale.delimiters.decimal && (str = str.replace(/\./g, "").replace(locale.delimiters.decimal, "."));
          for (abbreviation in abbreviations) {
            regexp = new RegExp("[^a-zA-Z]" + locale.abbreviations[abbreviation] + "(?:\\)|(\\" + locale.currency.symbol + ")?(?:\\))?)?$");
            if (stringOriginal.match(regexp)) {
              const key = abbreviation;
              value *= Math.pow(10, abbreviations[key]);
              break;
            }
          }
          value *= (str.split("-").length + Math.min(str.split("(").length - 1, str.split(")").length - 1)) % 2 ? 1 : -1;
          str = str.replace(/[^0-9\.]+/g, "");
          value *= Number(str);
        }
        return value;
      }
      isNaN(value) {
        return "number" === typeof value && isNaN(value);
      }
      includes(str, search) {
        return -1 !== str.indexOf(search);
      }
      insert(str, subStr, start) {
        return str.slice(0, start) + subStr + str.slice(start);
      }
      reduce(array, callback) {
        if (null === this) throw new TypeError("Array.prototype.reduce called on null or undefined");
        if ("function" !== typeof callback) throw new TypeError(callback + " is not a function");
        let t = Object(array), len = t.length >>> 0, k = 0, value;
        if (3 === arguments.length) value = arguments[2]; else {
          while (k < len && !(k in t)) k++;
          if (k >= len) throw new TypeError("Reduce of empty array with no initial value");
          value = t[k++];
        }
        for (;k < len; k++) k in t && (value = callback(value, t[k], k, t));
        return value;
      }
      multiplier(x) {
        let parts = x.toString().split(".");
        return parts.length < 2 ? 1 : Math.pow(10, parts[1].length);
      }
      correctionFactor() {
        let args = Array.prototype.slice.call(arguments);
        var t = this;
        return args.reduce(function(accum, next) {
          let mn = t.multiplier(next);
          return accum > mn ? accum : mn;
        }, 1);
      }
      toFixed(value, maxDecimals = 0, roundingFunction, optionals = 0) {
        let splitValue = value.toString().split("."), minDecimals = maxDecimals - (optionals || 0), boundedPrecision, optionalsRegExp, power, output;
        boundedPrecision = 2 === splitValue.length ? Math.min(Math.max(splitValue[1].length, minDecimals), maxDecimals) : minDecimals;
        power = Math.pow(10, boundedPrecision);
        output = (roundingFunction(value + "e+" + boundedPrecision) / power).toFixed(boundedPrecision);
        if (optionals > maxDecimals - boundedPrecision) {
          optionalsRegExp = new RegExp("\\.?0{1," + (optionals - (maxDecimals - boundedPrecision)) + "}$");
          output = output.replace(optionalsRegExp, "");
        }
        return output;
      }
      static register(type, name, format) {
        name = name.toLowerCase();
        const key = type + "s";
        const registry = Numeral[key];
        if (registry[name]) throw new TypeError(`${name} ${type} already registered.`);
        registry[name] = format;
        return format;
      }
      format(inputString, roundingFunction) {
        let value = this.value, format = inputString || this.options.defaultFormat, kind, output, formatFunction;
        roundingFunction = roundingFunction || Math.round;
        if (0 === value && null !== this.options.zeroFormat) output = this.options.zeroFormat; else if (null === value && null !== this.options.nullFormat) output = this.options.nullFormat; else {
          for (kind in this.formats) if (format.match(this.formats[kind].regexps.format)) {
            formatFunction = this.formats[kind].format.bind(this);
            break;
          }
          formatFunction = formatFunction || this.numberToFormat.bind(this);
          output = formatFunction(value, format, roundingFunction);
        }
        return output;
      }
    }
    Numeral.formats = {};
    Numeral.locales = {};
    Numeral.DEFAULTS = {
      currentLocale: "en",
      zeroFormat: null,
      nullFormat: null,
      defaultFormat: "0,0",
      scalePercentBy100: true
    };
    Numeral.register("locale", "en", {
      delimiters: {
        thousands: ",",
        decimal: "."
      },
      abbreviations: {
        thousand: "k",
        million: "m",
        billion: "b",
        trillion: "t"
      },
      ordinal: function(num) {
        let b = num % 10;
        return 1 === ~~(num % 100 / 10) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th";
      },
      currency: {
        symbol: "$"
      }
    });
    Numeral.register("format", "bps", {
      regexps: {
        format: /(BPS)/,
        unformat: /(BPS)/
      },
      format: function(value, format, roundingFunction) {
        let space = this.includes(format, " BPS") ? " " : "", output;
        value *= 1e4;
        format = format.replace(/\s?BPS/, "");
        output = this.numberToFormat(value, format, roundingFunction);
        if (this.includes(output, ")")) {
          output = output.split("");
          output.splice(-1, 0, space + "BPS");
          output = output.join("");
        } else output = output + space + "BPS";
        return output;
      },
      unformat: function(str) {
        return +(1e-4 * this.stringToNumber(str)).toFixed(15);
      }
    });
    let decimal = {
      base: 1e3,
      suffixes: [ "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" ]
    }, binary = {
      base: 1024,
      suffixes: [ "B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB" ]
    };
    let allSuffixes = decimal.suffixes.concat(binary.suffixes.filter(function(item) {
      return decimal.suffixes.indexOf(item) < 0;
    }));
    let unformatRegex = allSuffixes.join("|");
    unformatRegex = "(" + unformatRegex.replace("B", "B(?!PS)") + ")";
    Numeral.register("format", "bytes", {
      regexps: {
        format: /([0\s]i?b)/,
        unformat: new RegExp(unformatRegex)
      },
      format: function(value, format, roundingFunction) {
        let output, bytes = this.includes(format, "ib") ? binary : decimal, suffix = this.includes(format, " b") || this.includes(format, " ib") ? " " : "", power, min, max;
        format = format.replace(/\s?i?b/, "");
        for (power = 0; power <= bytes.suffixes.length; power++) {
          min = Math.pow(bytes.base, power);
          max = Math.pow(bytes.base, power + 1);
          if (null === value || 0 === value || value >= min && value < max) {
            suffix += bytes.suffixes[power];
            min > 0 && (value /= min);
            break;
          }
        }
        output = this.numberToFormat(value, format, roundingFunction);
        return output + suffix;
      },
      unformat: function(str) {
        let value = this.stringToNumber(str), power, bytesMultiplier;
        if (value) {
          for (power = decimal.suffixes.length - 1; power >= 0; power--) {
            if (this.includes(str, decimal.suffixes[power])) {
              bytesMultiplier = Math.pow(decimal.base, power);
              break;
            }
            if (this.includes(str, binary.suffixes[power])) {
              bytesMultiplier = Math.pow(binary.base, power);
              break;
            }
          }
          value *= bytesMultiplier || 1;
        }
        return value;
      }
    });
    Numeral.register("format", "currency", {
      regexps: {
        format: /(\$)/
      },
      format: function(value, format, roundingFunction) {
        const beforeMatch = format.match(/^([\+|\-|\(|\s|\$]*)/) || [];
        const afterMatch = format.match(/([\+|\-|\)|\s|\$]*)$/) || [];
        let locale = Numeral.locales[this.options.currentLocale], symbols = {
          before: beforeMatch[0] || "",
          after: afterMatch[0] || ""
        }, output, symbol, i;
        format = format.replace(/\s?\$\s?/, "");
        output = this.numberToFormat(value, format, roundingFunction);
        if (value >= 0) {
          symbols.before = symbols.before.replace(/[\-\(]/, "");
          symbols.after = symbols.after.replace(/[\-\)]/, "");
        } else value < 0 && !this.includes(symbols.before, "-") && !this.includes(symbols.before, "(") && (symbols.before = "-" + symbols.before);
        for (i = 0; i < symbols.before.length; i++) {
          symbol = symbols.before[i];
          switch (symbol) {
           case "$":
            output = this.insert(output, locale.currency.symbol, i);
            break;

           case " ":
            output = this.insert(output, " ", i + locale.currency.symbol.length - 1);
          }
        }
        for (i = symbols.after.length - 1; i >= 0; i--) {
          symbol = symbols.after[i];
          switch (symbol) {
           case "$":
            output = i === symbols.after.length - 1 ? output + locale.currency.symbol : this.insert(output, locale.currency.symbol, -(symbols.after.length - (1 + i)));
            break;

           case " ":
            output = i === symbols.after.length - 1 ? output + " " : this.insert(output, " ", -(symbols.after.length - (1 + i) + locale.currency.symbol.length - 1));
          }
        }
        return output;
      }
    });
    Numeral.register("format", "exponential", {
      regexps: {
        format: /(e\+|e-)/,
        unformat: /(e\+|e-)/
      },
      format: function(value, format, roundingFunction) {
        let output, exponential = "number" !== typeof value || this.isNaN(value) ? "0e+0" : value.toExponential(), parts = exponential.split("e");
        format = format.replace(/e[\+|\-]{1}0/, "");
        output = this.numberToFormat(Number(parts[0]), format, roundingFunction);
        return output + "e" + parts[1];
      },
      unformat: function(str) {
        let parts = this.includes(str, "e+") ? str.split("e+") : str.split("e-"), value = Number(parts[0]), power = Number(parts[1]);
        power = this.includes(str, "e-") ? power *= -1 : power;
        var t = this;
        function cback(accum, curr, currI, O) {
          let corrFactor = t.correctionFactor(accum, curr), num = accum * corrFactor * (curr * corrFactor) / (corrFactor * corrFactor);
          return num;
        }
        return this.reduce([ value, Math.pow(10, power) ], cback, 1);
      }
    });
    Numeral.register("format", "ordinal", {
      regexps: {
        format: /(o)/
      },
      format: function(value, format, roundingFunction) {
        let locale = Numeral.locales[this.options.currentLocale], output, ordinal = this.includes(format, " o") ? " " : "";
        format = format.replace(/\s?o/, "");
        ordinal += locale.ordinal(value);
        output = this.numberToFormat(value, format, roundingFunction);
        return output + ordinal;
      }
    });
    Numeral.register("format", "percentage", {
      regexps: {
        format: /(%)/,
        unformat: /(%)/
      },
      format: function(value, format, roundingFunction) {
        let space = this.includes(format, " %") ? " " : "", output;
        this.options.scalePercentBy100 && (value *= 100);
        format = format.replace(/\s?\%/, "");
        output = this.numberToFormat(value, format, roundingFunction);
        if (this.includes(output, ")")) {
          output = output.split("");
          output.splice(-1, 0, space + "%");
          output = output.join("");
        } else output = output + space + "%";
        return output;
      },
      unformat: function(str) {
        let number = this.stringToNumber(str);
        if (this.options.scalePercentBy100) return .01 * number;
        return number;
      }
    });
    Numeral.register("format", "time", {
      regexps: {
        format: /(:)/,
        unformat: /(:)/
      },
      format: function(value, format, roundingFunction) {
        let hours = Math.floor(value / 60 / 60), minutes = Math.floor((value - 60 * hours * 60) / 60), seconds = Math.round(value - 60 * hours * 60 - 60 * minutes);
        return hours + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds);
      },
      unformat: function(str) {
        let timeArray = str.split(":"), seconds = 0;
        if (3 === timeArray.length) {
          seconds += 60 * Number(timeArray[0]) * 60;
          seconds += 60 * Number(timeArray[1]);
          seconds += Number(timeArray[2]);
        } else if (2 === timeArray.length) {
          seconds += 60 * Number(timeArray[0]);
          seconds += Number(timeArray[1]);
        }
        return Number(seconds);
      }
    });
    const numeral = input => new Numeral(input);
    exports.numeral = numeral;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-pageview_node": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "fe804AiK0pGTYxw2jG48Fz5", "MT3SETB-pageview_node");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.pageview_node = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let pageview_node = class pageview_node extends cc.Component {
      constructor() {
        super();
        this.pageNum = null;
        this.left = null;
        this.right = null;
        this.num = 0;
        this.pageView = null;
      }
      onLoad() {
        this.pageView = this.node.getComponent(cc.PageView);
      }
      start() {}
      onLeft() {
        var e = this.pageView.getCurrentPageIndex() - 1;
        this.pageView.scrollToPage(e, .5);
        this.setPageNum(e + 1);
        this.right.active = true;
        e <= 0 && (this.left.active = false);
      }
      onRight() {
        var e = this.pageView.getCurrentPageIndex() + 1;
        this.pageView.scrollToPage(e, .3);
        this.setPageNum(e + 1);
        this.left.active = true;
        e >= this.num - 1 && (this.right.active = false);
      }
      onPageEvents(e, t) {
        if (t == cc.PageView.EventType.PAGE_TURNING) {
          var o = this.pageView.getCurrentPageIndex() + 1;
          if (1 == this.num) {
            this.right.active = false;
            this.left.active = false;
          } else if (o <= this.num) {
            this.setPageNum(o);
            if (0 == e.getCurrentPageIndex()) {
              this.left.active = false;
              this.right.active = true;
            } else if (e.getCurrentPageIndex() == this.num - 1) {
              this.left.active = true;
              this.right.active = false;
            } else {
              this.left.active = true;
              this.right.active = true;
            }
          }
        }
      }
      setPageNum(e) {
        this.left.getComponent(cc.Button).clickEvents[0].target = this.node;
        this.right.getComponent(cc.Button).clickEvents[0].target = this.node;
        this.pageNum && (this.pageNum.string = e + "/" + this.num);
      }
      setPageMax(e) {
        this.num = Math.max(e, 1);
        this.pageNum && (this.pageNum.string = "1/" + this.num);
        if (1 == this.num) {
          this.right.active = false;
          this.left.active = false;
        } else if (this.pageView) {
          var t = this.pageView.getCurrentPageIndex();
          this.right.active = t < this.num - 1;
          this.left.active = t > 0;
        }
      }
    };
    __decorate([ property(cc.Label) ], pageview_node.prototype, "pageNum", void 0);
    __decorate([ property(cc.Node) ], pageview_node.prototype, "left", void 0);
    __decorate([ property(cc.Node) ], pageview_node.prototype, "right", void 0);
    __decorate([ property ], pageview_node.prototype, "num", void 0);
    pageview_node = __decorate([ ccclass ], pageview_node);
    exports.pageview_node = pageview_node;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-platform": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "8cf211yf1NDxINqXtyUb0gk", "MT3SETB-platform");
    "use strict";
    var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
      function adopt(value) {
        return value instanceof P ? value : new P(function(resolve) {
          resolve(value);
        });
      }
      return new (P || (P = Promise))(function(resolve, reject) {
        function fulfilled(value) {
          try {
            step(generator.next(value));
          } catch (e) {
            reject(e);
          }
        }
        function rejected(value) {
          try {
            step(generator["throw"](value));
          } catch (e) {
            reject(e);
          }
        }
        function step(result) {
          result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
        }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
      });
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.isDemo = exports.GetConfig = exports.platformType = exports.isDisable0Bet = exports.checkBrandType = exports.checkTaDaVersion = exports.checkJiliStarVersion = exports.checkIndiaApp = exports.getSubAgentCode = exports.canBeWinMore = exports.canBeVip = exports.canBePromotion = exports.canBeFeaturesGame = exports.canBeJumpGame = exports.GetPlatformType = exports.GetEffekseerPath = exports.GetHost = exports.GetLang = exports.IsJackpotLink = exports.GetSSOKey = exports.GetGamePath = exports.GetGameID = exports.GetParamGameID = exports.GetSiteID = exports.GetAccountID = exports.GetApiID = exports.GetLobbyHM = exports.GetProfile = exports.GetLobbyOpen = exports.GetLobbyMode = exports.GetClosePageUrl = exports.GetWeb = exports.GetDisableFullscreen = exports.GetHomeUrl = exports.GetCollectWebUrl = exports.GetIntrolUrl = exports.GetVipWebUrl = exports.GetEventWebUrl = exports.GetRawOfficialUrl = exports.GetOfficialUrl = exports.GetRank = exports.SendErrorLog = exports.ErrorLog = exports.SendButtonLog = exports.ButtonLog = exports.SendEventLog = exports.EventLog = exports.SendSubAgentLog = exports.Login = exports.apiInit = void 0;
    exports.isDebugMode = exports.IsDisableShowCustomerService = exports.IsDisableShowReport = exports.isNativeWebView = exports.isDepositBtnOn = exports.getDepositUrl = exports.isDisableDecimal3 = void 0;
    const MT3SETB_profile_1 = require("./MT3SETB-profile");
    const MT3SETB_track_1 = require("./MT3SETB-track");
    const MT3SETB_axiosLite_1 = require("./MT3SETB-axiosLite");
    const MT3SETB_webObject_1 = require("./MT3SETB-webObject");
    var a;
    (function(a) {
      a[a["JILI"] = 0] = "JILI";
      a[a["TADA"] = 1] = "TADA";
      a[a["INDIA"] = 2] = "INDIA";
      a[a["JILISTAR"] = 3] = "JILISTAR";
    })(a || (a = {}));
    var c = null;
    const apiInit = function(e, t, o, a) {
      h = e;
      gameId = t;
      ssoKey = GetURLParam("ssoKey");
      lang = GetURLParam("lang") || "en-US";
      var ar = lang.split("-");
      ar.length <= 1 && (lang = lang + "-" + lang);
      if (false, "true" === GetURLParam("nossl")) {
        var r = `http://${GetURLParam("be").split("").reverse().join("")}/`, c = `http://${GetURLParam("domain_platform").split("").reverse().join("")}/`;
        f = H();
        false;
        gamePath = GetURLParam("region").length > 0 ? `ws://${f}fish-${GetURLParam("region")}.${GetURLParam("domain_gs").split("").reverse().join("")}.com:${GetURLParam("gs_port")}/${o}/ws` : `ws://${f}fish.${GetURLParam("domain_gs").split("").reverse().join("")}.com:${GetURLParam("gs_port")}/${o}/ws`;
        host = `http://${U()}/`;
        m = `http://${f}history.${j()}/%s/ingame/?`;
        T = `http://${f}history.${j()}/%s/ingame/member/vip?`;
        g = `http://${f}history.${j()}/%s/intro/{gameName}?`;
        _ = `http://${f}history.${j()}/${lang}/action/transfer?`;
        P = `http://${f}history.${j()}/${lang}/ingame/close`;
        L = `http://${f}history.${j()}/${lang}/action/collect/transfer?`;
        I = a;
        l = MT3SETB_axiosLite_1.AxiosLite.create({
          baseURL: r,
          headers: {
            "Content-type": "application/x-www-form-urlencoded"
          },
          timeout: 2e4
        });
        u = MT3SETB_axiosLite_1.AxiosLite.create({
          baseURL: c,
          timeout: 2e3
        });
      } else {
        var r = `https://${GetURLParam("be").split("").reverse().join("")}/`, c = `https://${GetURLParam("domain_platform").split("").reverse().join("")}/`;
        f = H();
        gamePath = GetURLParam("region").length > 0 ? `wss://${f}fish-${GetURLParam("region")}.${GetURLParam("domain_gs").split("").reverse().join("")}.com:${GetURLParam("gs_port")}/${o}/ws` : `wss://${f}fish.${GetURLParam("domain_gs").split("").reverse().join("")}.com:${GetURLParam("gs_port")}/${o}/ws`;
        host = `http://${U()}/`;
        f = "uat-";
        m = `http://${f}history.${j()}/%s/ingame/?`;
        T = `http://${f}history.${j()}/%s/ingame/member/vip?`;
        g = `http://${f}history.${j()}/%s/intro/{gameName}?`;
        _ = `http://${f}history.${j()}/${lang}/action/transfer?`;
        P = `http://${f}history.${j()}/${lang}/ingame/close`;
        L = `http://${f}history.${j()}/${lang}/action/collect/transfer?`;
        I = a;
        l = MT3SETB_axiosLite_1.AxiosLite.create({
          baseURL: r,
          headers: {
            "Content-type": "application/x-www-form-urlencoded"
          },
          timeout: 2e4
        });
        u = MT3SETB_axiosLite_1.AxiosLite.create({
          baseURL: c,
          timeout: 2e3
        });
      }
      MT3SETB_track_1.trackingInit();
    };
    exports.apiInit = apiInit;
    var l = null;
    const Login = function() {
      return __awaiter(this, void 0, void 0, function*() {
        try {
          const params = new URLSearchParams();
          params.append("key", ssoKey);
          params.append("lang", lang);
          const response = yield l.post("sso-login.api", params);
          const data = response.data;
          S = null === data || void 0 === data ? void 0 : data.homeUrl;
          C = null === data || void 0 === data ? void 0 : data.disableFullScreen;
          if (0 !== data.response.error) switch (data.response.error) {
           case 4:
            throw {
              code: "NOT_SERVICE"
            };

           default:
            throw {
              code: "LOGIN_ERROR"
            };
          }
          k = data.profile;
          token = data.token;
          return token;
        } catch (error) {
          console.error("Login failed:", error);
          throw error;
        }
      });
    };
    exports.Login = Login;
    var u = null, d = function() {};
    const SendSubAgentLog = function() {
      if (_isDemo()) return new Promise(function(e) {
        e(null);
      });
      var e = new d();
      e.accountId = k.aid;
      e.apiId = k.apiId;
      e.gameId = gameId;
      e.agentId = k.meta.agentAccount;
      cc.sys.isBrowser && (e.site = MT3SETB_webObject_1.webObjGetHostname());
      return u.get("subagentservice/MakeUserSubAgent", {
        params: e
      });
    };
    exports.SendSubAgentLog = SendSubAgentLog;
    const EventLog = function() {};
    exports.EventLog = EventLog;
    const SendEventLog = function(e) {
      e.AccountID = "-1";
      e.ApiId = "0";
      if (k) {
        e.AccountID = k.aid;
        e.ApiId = k.apiId;
      }
      e.SSOKey = ssoKey;
      e.GameID = gameId;
      e.CreateTime = new Date();
      return u.get("webservice/event/trigger", {
        params: e
      });
    };
    exports.SendEventLog = SendEventLog;
    const ButtonLog = function() {};
    exports.ButtonLog = ButtonLog;
    const SendButtonLog = function(e) {
      e.AccountID = "-1";
      e.ApiID = "0";
      if (k) {
        e.AccountID = k.aid;
        e.ApiID = k.apiId;
      }
      e.GameID = gameId;
      e.CreateTime = new Date();
      return u.get("webservice/event/user", {
        params: e
      });
    };
    exports.SendButtonLog = SendButtonLog;
    const ErrorLog = function() {};
    exports.ErrorLog = ErrorLog;
    const SendErrorLog = function(e) {
      k && (e.AccountID = k.aid);
      e.GameID = gameId;
      e.CreateTime = new Date();
      return u.get("webservice/event/error", {
        params: e
      });
    };
    exports.SendErrorLog = SendErrorLog;
    var p, h, f, m, g, _, ssoKey, lang, token, gameId, k, S, C, gamePath, host, T, P, L, I, O = function() {};
    function R() {
      false;
      return [ 774, 1628 ].includes(M()) && S ? "https://" + S : S;
    }
    function F() {
      var e = k ? k.lobbyMode : 0;
      3 == e && R() && (e = 2);
      return e;
    }
    function M() {
      return k ? k.apiId : 0;
    }
    function _canBeWinMore() {
      var e;
      return !(!k || !k.switchOffs) && (null === (e = k.switchOffs) || void 0 === e ? void 0 : e.includes(4));
    }
    function _isDisableShowReport() {
      var e;
      return !(!k || !k.switchOffs) && (null === (e = k.switchOffs) || void 0 === e ? void 0 : e.includes(5));
    }
    function _isDisableShowCustomerService() {
      var e;
      return !(!k || !k.switchOffs) && (null === (e = k.switchOffs) || void 0 === e ? void 0 : e.includes(1001));
    }
    function _getSubAgentCode() {
      return k.subAgentCode ? k.subAgentCode : 0;
    }
    function _checkTaDaVersion() {
      null == c && _checkBrandType();
      return c == a.TADA;
    }
    function _checkBrandType() {
      if (null == c) {
        var e = GetURLParam("skin");
        if (e && "" != e) c = Number(e); else {
          var t = 0, o = GetURLParam("apiId"), n = GetURLParam("domain_gs"), i = GetURLParam("tadaSkin");
          "" != o && (t = Number(o));
          c = t >= 200 && t < 300 ? 202 == t ? a.JILISTAR : a.INDIA : 3 == t || n.toLowerCase().indexOf("adat") >= 0 || "1" == i ? a.TADA : a.JILI;
        }
      }
    }
    function GetURLParam(key) {
      if (cc.sys.isNative && window["subGameInitData_MT3SETB"]) return void 0 !== window["subGameInitData_MT3SETB"][key] ? window["subGameInitData_MT3SETB"][key] : "";
      var t;
      if (-1 !== (t = "undefined" != typeof LobbyData ? LobbyData.url : window.location.href).indexOf("?")) for (var o = t.split("?")[1].split("&"), n = 0, i = o.length; n < i; ++n) if (o[n].split("=")[0] === key) return o[n].split("=")[1];
      return "";
    }
    function j() {
      var e, t;
      false;
      var e = h, t = (e = (e = e.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n\?\=]+)/im)[0]).replace(/(https?:\/\/)?(www.)?/i, "")).split(".");
      return -1 !== (e = t.slice(t.length - 2).join(".")).indexOf("/") ? e.split("/")[0] : e;
    }
    function U() {
      var e = h;
      false;
      return (e = e.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n\?\=]+)/im)[0]).replace(/(https?:\/\/)?/i, "");
    }
    function H() {
      if ("true" === GetURLParam("iu")) return "uat-";
      var e;
      false;
      var e = h.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n\?\=]+)/im)[0].replace(/(https?:\/\/)?/i, "").split(".")[0].split("-");
      return e.length > 1 && ("uat" == e[0] || "test" == e[0]) ? e[0] + "-" : "";
    }
    function _isDemo() {
      return "true" === GetURLParam("demo");
    }
    function _getDepositUrl() {
      var e;
      return k.clientMode ? null === (e = k.clientMode.find(function(e) {
        return 5 == e.eventId;
      })) || void 0 === e ? void 0 : e.value[_isNativeWebView() ? 1 : 0] : "";
    }
    function _isNativeWebView() {
      if (!navigator) return false;
      var e = navigator.userAgent, t = new RegExp("(" + [ "WebView", "(iPhone|iPod|iPad)(?!.*Safari/)", "Android.*(wv)" ].join("|") + ")", "ig");
      return Boolean(e.match(t)).valueOf();
    }
    const GetRank = function() {
      if (_isDemo()) return new Promise(function(e) {
        e(null);
      });
      var e = new O();
      e.AccountId = k.aid;
      e.ApiId = k.apiId;
      e.GameId = gameId;
      e.Type = "1";
      e.SubAgentCode = _getSubAgentCode();
      return u.get("rankingservice/user/GetRankingListV2", {
        params: e
      });
    };
    exports.GetRank = GetRank;
    const GetOfficialUrl = function() {
      var e = new URLSearchParams();
      e.append("token", token);
      e.append("game", gameId);
      e.append("posthost", U());
      e.append("sac", _getSubAgentCode().toString());
      return m.replace(/%s/g, lang) + e;
    };
    exports.GetOfficialUrl = GetOfficialUrl;
    const GetRawOfficialUrl = function() {
      return m.replace(/%s/g, lang);
    };
    exports.GetRawOfficialUrl = GetRawOfficialUrl;
    const GetEventWebUrl = function() {
      var e = new URLSearchParams();
      e.append("token", token);
      e.append("game", gameId);
      e.append("posthost", U());
      e.append("sac", _getSubAgentCode().toString());
      return _ + e;
    };
    exports.GetEventWebUrl = GetEventWebUrl;
    const GetVipWebUrl = function() {
      var e = new URLSearchParams();
      e.append("token", token);
      e.append("game", gameId);
      e.append("posthost", U());
      e.append("sac", _getSubAgentCode().toString());
      return T.replace(/%s/g, lang) + e;
    };
    exports.GetVipWebUrl = GetVipWebUrl;
    const GetIntrolUrl = function() {
      var e = new URLSearchParams();
      e.append("token", token);
      e.append("game", gameId);
      e.append("posthost", U());
      e.append("sac", _getSubAgentCode().toString());
      return g.replace(/%s/g, lang) + e;
    };
    exports.GetIntrolUrl = GetIntrolUrl;
    const GetCollectWebUrl = function() {
      var e = new URLSearchParams();
      e.append("token", token);
      e.append("game", gameId);
      e.append("ratio", MT3SETB_profile_1.GetRatio().toString());
      e.append("posthost", U());
      e.append("sac", _getSubAgentCode().toString());
      return L.replace(/%s/g, lang) + e;
    };
    exports.GetCollectWebUrl = GetCollectWebUrl;
    exports.GetHomeUrl = R;
    const GetDisableFullscreen = function() {
      return !!C;
    };
    exports.GetDisableFullscreen = GetDisableFullscreen;
    const GetWeb = function() {
      return `https://${f}history.${j()}`;
    };
    exports.GetWeb = GetWeb;
    const GetClosePageUrl = function() {
      return P;
    };
    exports.GetClosePageUrl = GetClosePageUrl;
    exports.GetLobbyMode = F;
    const GetLobbyOpen = function() {
      if (!(null == k ? void 0 : k.isLobbyOpen)) return false;
      switch (F()) {
       case 1:
       case 3:
        return true;

       case 2:
       case 4:
        return "" != R();
      }
      return false;
    };
    exports.GetLobbyOpen = GetLobbyOpen;
    const GetProfile = function() {
      return k;
    };
    exports.GetProfile = GetProfile;
    const GetLobbyHM = function() {
      return "undefined" != typeof LobbyData && !!LobbyData.isHideMember && LobbyData.isHideMember;
    };
    exports.GetLobbyHM = GetLobbyHM;
    exports.GetApiID = M;
    const GetAccountID = function() {
      return k ? k.aid : 0;
    };
    exports.GetAccountID = GetAccountID;
    const GetSiteID = function() {
      return k ? k.siteid : 0;
    };
    exports.GetSiteID = GetSiteID;
    const GetParamGameID = function() {
      return GetURLParam("gameId");
    };
    exports.GetParamGameID = GetParamGameID;
    const GetGameID = function() {
      return parseInt(gameId);
    };
    exports.GetGameID = GetGameID;
    const GetGamePath = function() {
      return gamePath;
    };
    exports.GetGamePath = GetGamePath;
    const GetSSOKey = function() {
      return ssoKey;
    };
    exports.GetSSOKey = GetSSOKey;
    const IsJackpotLink = function() {
      return !!k && 1 == k.isJPEnabled;
    };
    exports.IsJackpotLink = IsJackpotLink;
    const GetLang = function() {
      return lang;
    };
    exports.GetLang = GetLang;
    const GetHost = function() {
      return host;
    };
    exports.GetHost = GetHost;
    const GetEffekseerPath = function() {
      var e = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/.exec(h), t = e[1] + ":" + e[2] + e[3];
      e[4] && (t += ":" + e[4]);
      return t + "/" + e[5].split("/")[0] + "/effekseer";
    };
    exports.GetEffekseerPath = GetEffekseerPath;
    const GetPlatformType = function() {
      return k ? k.platform : p.web;
    };
    exports.GetPlatformType = GetPlatformType;
    const canBeJumpGame = function() {
      var e;
      return !(!k || !k.switchOffs) && (null === (e = k.switchOffs) || void 0 === e ? void 0 : e.includes(10));
    };
    exports.canBeJumpGame = canBeJumpGame;
    const canBeFeaturesGame = function() {
      var e;
      return !(!k || !k.switchOffs) && (null === (e = k.switchOffs) || void 0 === e ? void 0 : e.includes(6));
    };
    exports.canBeFeaturesGame = canBeFeaturesGame;
    const canBePromotion = function() {
      var e;
      return !!_canBeWinMore() || !(!k || !k.switchOffs) && (null === (e = k.switchOffs) || void 0 === e ? void 0 : e.includes(3));
    };
    exports.canBePromotion = canBePromotion;
    const canBeVip = function() {
      var e;
      return !(!k || !k.switchOffs) && (null === (e = k.switchOffs) || void 0 === e ? void 0 : e.includes(25));
    };
    exports.canBeVip = canBeVip;
    exports.canBeWinMore = _canBeWinMore;
    exports.getSubAgentCode = _getSubAgentCode;
    const checkIndiaApp = function() {
      null == c && _checkBrandType();
      return c == a.INDIA;
    };
    exports.checkIndiaApp = checkIndiaApp;
    const checkJiliStarVersion = function() {
      null == c && _checkBrandType();
      return c == a.JILISTAR;
    };
    exports.checkJiliStarVersion = checkJiliStarVersion;
    exports.checkTaDaVersion = _checkTaDaVersion;
    exports.checkBrandType = _checkBrandType;
    const isDisable0Bet = function() {
      var e = M(), t = _getSubAgentCode();
      return !(10150 != e || ![ 12, 63, 70, 85, 87, 117 ].includes(t));
    };
    exports.isDisable0Bet = isDisable0Bet;
    var platformType;
    (function(platformType) {
      platformType["web"] = "web";
      platformType["app"] = "app";
    })(platformType = exports.platformType || (exports.platformType = {}));
    const GetConfig = function() {
      return I;
    };
    exports.GetConfig = GetConfig;
    exports.isDemo = _isDemo;
    const isDisableDecimal3 = function() {
      var e = M(), t = Math.round(2 - Math.log10(MT3SETB_profile_1.GetRatio())) > MT3SETB_profile_1.GetDecimals();
      return [ 1500, 1973, 10110, 10207, 10148 ].some(function(t) {
        return t === e;
      }) || _checkTaDaVersion() || t;
    };
    exports.isDisableDecimal3 = isDisableDecimal3;
    exports.getDepositUrl = _getDepositUrl;
    const isDepositBtnOn = function() {
      var e = _getDepositUrl();
      return !!e && "" != e;
    };
    exports.isDepositBtnOn = isDepositBtnOn;
    exports.isNativeWebView = _isNativeWebView;
    exports.IsDisableShowReport = _isDisableShowReport;
    exports.IsDisableShowCustomerService = _isDisableShowCustomerService;
    const isDebugMode = function() {
      return exports.GetHost().includes("game.mt7pp.com") || exports.GetHost().includes("localhost");
    };
    exports.isDebugMode = isDebugMode;
    cc._RF.pop();
  }, {
    "./MT3SETB-axiosLite": "MT3SETB-axiosLite",
    "./MT3SETB-profile": "MT3SETB-profile",
    "./MT3SETB-track": "MT3SETB-track",
    "./MT3SETB-webObject": "MT3SETB-webObject"
  } ],
  "MT3SETB-profile": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "4e2b2WzuEdHdZ4mS+Pi4mhr", "MT3SETB-profile");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.getShowCoinType = exports.GetLangCode = exports.ConvertToMK = exports.ToThousandDecimalX = exports.ToDecimalX = exports.FormatCoinNum = exports.FormatNum = exports.ConvertCoinNum_i18n = exports.ConvertThousandsNum_i18n = exports.CleanNum = exports.ToDecimal4 = exports.ToDecimal2 = exports.GetThousandsNum = exports.GetCoinTypeStr = exports.checkFullScreenOpen = exports.checkNoviceOpen = exports.getPresetBetIndex = exports.getPresetBet = exports.addMinBet = exports.CheckBetLimit = exports.CheckAPIBetForMinTheme = exports.CheckAPIBet = exports.GetCoin = exports.GetCurrency = exports.GetRate = exports.GetDecimals = exports.GetRatio = exports.GetBanner = exports.GetBetList = exports.SetAgent = exports.SetProfile = exports.Banner = void 0;
    const MT3SETB_event_1 = require("./MT3SETB-event");
    const MT3SETB_mtf_pb_wrapper_1 = require("./MT3SETB-mtf_pb_wrapper");
    const MT3SETB_numeral_1 = require("./MT3SETB-numeral");
    const MT3SETB_platform_1 = require("./MT3SETB-platform");
    let s = null, c = 4, l = null, u = [], d = function() {};
    function getRatio() {
      return null == s || 0 == s.ratio ? 1 : s.ratio;
    }
    function h() {
      return null == s || 0 == s.rate ? 1 : s.rate;
    }
    function f(e, t, o = Number.MIN_VALUE, n = Number.MAX_VALUE) {
      for (var i = e.length - 1; i >= 0; i--) (e[i] > n || e[i] < o) && (e.splice(i, 1), 
      t && t.splice(i, 1));
    }
    function m(e, t, o = []) {
      for (var n = o.length - 1; n >= 0; n--) e.splice(0, 0, o[n]), t && t.splice(0, 0, 0);
    }
    function g(e) {
      var t;
      e = removeTrailingDigit(handleCurrencyMagnitude(e));
      switch (getRatio()) {
       case .01:
        t = "0,0.[0000]";
        break;

       case .1:
        t = "0,0.[000]";
        break;

       case 1:
       case 10:
        t = "0,0.[00]";
        break;

       case 100:
       case 1e3:
        t = "0,0";
      }
      return MT3SETB_numeral_1.numeral(e).format(t);
    }
    function removeTrailingDigit(e) {
      return parseFloat(e.toFixed(5));
    }
    function y(e) {
      e = removeTrailingDigit(handleCurrencyMagnitude(e));
      var t = "0,0.00";
      switch (getRatio()) {
       case .01:
        t = "0,0.0000";
        break;

       case .1:
        t = "0,0.000";
        break;

       case 1:
       case 10:
        t = "0,0.00";
        break;

       case 100:
       case 1e3:
        t = "0,0.";
      }
      return MT3SETB_numeral_1.numeral(e).format(t, Math.floor);
    }
    exports.Banner = d;
    const SetProfile = function(e) {
      s = e.wallet;
      c = [ 1002, 10150, 10232, 10437, 10456 ].includes(MT3SETB_platform_1.GetApiID()) && .3 == removeTrailingDigit(h()) ? 0 : 4;
    };
    exports.SetProfile = SetProfile;
    const SetAgent = function(e) {
      l = e;
      u = [];
      e.banners.forEach(function(e) {
        var t = new d();
        t.image = MT3SETB_platform_1.GetHost() + "banner/" + e.image + "_" + MT3SETB_platform_1.GetLang() + ".png";
        t.image_default = MT3SETB_platform_1.GetHost() + "banner/" + e.image + "_en-US.png";
        t.start = new Date(1e3 * e.start.toNumber());
        t.end = new Date(1e3 * e.end.toNumber());
        u.push(t);
      });
      MT3SETB_event_1.EventBus.post("agent_broadcast");
    };
    exports.SetAgent = SetAgent;
    const GetBetList = function() {
      for (var e = new Array(l.betList.length), t = 0; t < e.length; t++) e[t] = l.betList[t] * getRatio();
      return e;
    };
    exports.GetBetList = GetBetList;
    const GetBanner = function() {
      for (var e = u.slice(), t = new Date(), o = e.length - 1; o >= 0; o--) (e[o].start > t || e[o].end < t) && e.splice(o, 1);
      return e;
    };
    exports.GetBanner = GetBanner;
    exports.GetRatio = getRatio;
    const GetDecimals = function() {
      return c;
    };
    exports.GetDecimals = GetDecimals;
    exports.GetRate = h;
    const GetCurrency = function() {
      return null == s ? MT3SETB_mtf_pb_wrapper_1.mtf.Currency.USD : s.currency;
    };
    exports.GetCurrency = GetCurrency;
    const GetCoin = function() {
      return null == s ? 0 : s.coin;
    };
    exports.GetCoin = GetCoin;
    const CheckAPIBet = function(e, t) {
      1051 == MT3SETB_platform_1.GetApiID() && s.currency == MT3SETB_mtf_pb_wrapper_1.mtf.Currency.PHP && 20 == MT3SETB_platform_1.GetGameID() ? f(e, t, .2) : 793 == MT3SETB_platform_1.GetApiID() || 452 == MT3SETB_platform_1.GetApiID() ? f(e, t, .8) : 841 == MT3SETB_platform_1.GetApiID() && f(e, t, 1), 
      f(e, t, Math.pow(10, -c) / getRatio());
    };
    exports.CheckAPIBet = CheckAPIBet;
    const CheckAPIBetForMinTheme = function(e, t) {
      [ 105, 711, 1244, 2348 ].includes(MT3SETB_platform_1.GetApiID()) && m(e, t, [ .01, .02, .03, .04, .05, .06, .07, .08, .09 ]);
    };
    exports.CheckAPIBetForMinTheme = CheckAPIBetForMinTheme;
    exports.CheckBetLimit = f;
    exports.addMinBet = m;
    const getPresetBet = function(e, t = 0) {
      if (105 == MT3SETB_platform_1.GetApiID() || 711 == MT3SETB_platform_1.GetApiID()) {
        var o = e * getRatio();
        return o <= 50 ? .01 * getRatio() : o < 100 ? .03 * getRatio() : .1 * getRatio();
      }
      return t;
    };
    exports.getPresetBet = getPresetBet;
    const getPresetBetIndex = function(e = 1) {
      return [ 6, 1721, 10384 ].includes(MT3SETB_platform_1.GetApiID()) ? 0 : e;
    };
    exports.getPresetBetIndex = getPresetBetIndex;
    const checkNoviceOpen = function() {
      return [ 3, 200, 201, 557, 569, 588, 681 ].findIndex(function(e) {
        return e === MT3SETB_platform_1.GetApiID();
      }) < 0;
    };
    exports.checkNoviceOpen = checkNoviceOpen;
    const checkFullScreenOpen = function() {
      var e = MT3SETB_platform_1.GetApiID(), t = [ 0, 3, 428, 1002, 1614, 1394, 1618, 1864 ].includes(e), o = MT3SETB_platform_1.GetDisableFullscreen();
      return !t && !o;
    };
    exports.checkFullScreenOpen = checkFullScreenOpen;
    const GetCoinTypeStr = function() {
      return s.symbol;
    };
    exports.GetCoinTypeStr = GetCoinTypeStr;
    exports.GetThousandsNum = g;
    const ToDecimal2 = function(e) {
      return y(e);
    };
    exports.ToDecimal2 = ToDecimal2;
    const ToDecimal4 = function(e, t) {
      var o = "";
      Math.abs(e) < 1e-5 ? o = "0.00000" : (e = handleCurrencyMagnitude(e), o = MT3SETB_numeral_1.numeral(e).format("0.00000"));
      o = 0 == t ? o.substr(0, o.length - 6) : o.substr(0, o.length - (5 - t));
      return parseFloat(o);
    };
    exports.ToDecimal4 = ToDecimal4;
    exports.CleanNum = removeTrailingDigit;
    const ConvertThousandsNum_i18n = function(e) {
      return g(e);
    };
    exports.ConvertThousandsNum_i18n = ConvertThousandsNum_i18n;
    exports.ConvertCoinNum_i18n = y;
    var v = null;
    function handleCurrencyMagnitude(e) {
      switch (s.currency) {
       case MT3SETB_mtf_pb_wrapper_1.mtf.Currency.IDR_K:
       case MT3SETB_mtf_pb_wrapper_1.mtf.Currency.VND_K:
        e *= .001;
      }
      return e;
    }
    const FormatNum = function(e, n, fn) {
      return MT3SETB_numeral_1.numeral(e).format(n, fn);
    };
    exports.FormatNum = FormatNum;
    const FormatCoinNum = function(value, forceDecimal = false) {
      null === v && (v = MT3SETB_platform_1.isDisableDecimal3());
      value || (value = 0);
      value = removeTrailingDigit(handleCurrencyMagnitude(value));
      var o = getRatio();
      o = Math.max(o, Math.pow(10, 2 - c));
      v && (o = Math.max(o, 1));
      if (forceDecimal) {
        n = "0,0.00";
        switch (o) {
         case .01:
         case .1:
         case 1:
          n = "0,0.00";
          break;

         case 10:
         case 100:
         case 1e3:
          n = "0,0";
        }
        return MT3SETB_numeral_1.numeral(value).format(n, Math.floor);
      }
      var n = "0,0.[00]";
      switch (o) {
       case .01:
       case .1:
       case 1:
        n = "0,0[.]00";
        break;

       case 10:
       case 100:
       case 1e3:
        n = "0,0";
      }
      return MT3SETB_numeral_1.numeral(value).format(n, Math.floor);
    };
    exports.FormatCoinNum = FormatCoinNum;
    const ToDecimalX = function(e, t) {
      var o = MT3SETB_numeral_1.numeral(e).format("0.0000");
      return o = 0 == t ? o.substr(0, o.length - 5) : o.substr(0, o.length - (4 - t)), 
      parseFloat(o);
    };
    exports.ToDecimalX = ToDecimalX;
    const ToThousandDecimalX = function(e, t) {
      var o = "";
      switch (getRatio()) {
       case .01:
        t += 2;
        break;

       case .1:
        t += 1;
      }
      for (var n = 0; n < t; n++) o += "0";
      return MT3SETB_numeral_1.numeral(e).format("0,0." + o, Math.floor);
    };
    exports.ToThousandDecimalX = ToThousandDecimalX;
    const ConvertToMK = function(e) {
      var t = e, o = "" + t;
      e >= 1e6 ? o = removeTrailingDigit(t /= 1e6) + "M" : e >= 1e3 && (o = removeTrailingDigit(t /= 1e3) + "K");
      return o;
    };
    exports.ConvertToMK = ConvertToMK;
    const GetLangCode = function() {
      var e = 2;
      switch (MT3SETB_platform_1.GetLang()) {
       case "zh-CN":
        e = 0;
        break;

       case "zh-TW":
        e = 1;
        break;

       case "en-US":
        e = 2;
        break;

       case "th-TH":
        e = 3;
        break;

       case "vi-VN":
        e = 4;
        break;

       case "id-ID":
        e = 5;
        break;

       case "my-MM":
        e = 6;
        break;

       case "ja-JP":
        e = 7;
        break;

       case "hi-IN":
        e = 8;
        break;

       case "ta-IN":
        e = 2;
        break;

       case "ms-MY":
        e = 10;
        break;

       case "ko-KR":
        e = 11;
        break;

       case "bn-IN":
        e = 12;
        break;

       case "es-AR":
        e = 13;
        break;

       case "pt-BR":
        e = 14;
        break;

       case "it-IT":
        e = 15;
        break;

       case "sv-SE":
        e = 16;
        break;

       case "de-DE":
        e = 17;
        break;

       case "da-DK":
        e = 18;
        break;

       case "ro-RO":
        e = 19;
        break;

       case "nl-NL":
        e = 20;
        break;

       case "tr-TR":
        e = 21;
        break;

       case "ru-RU":
        e = 22;
      }
      return e;
    };
    exports.GetLangCode = GetLangCode;
    exports.getShowCoinType = handleCurrencyMagnitude;
    cc._RF.pop();
  }, {
    "./MT3SETB-event": "MT3SETB-event",
    "./MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-numeral": "MT3SETB-numeral",
    "./MT3SETB-platform": "MT3SETB-platform"
  } ],
  "MT3SETB-promotion_node": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ea66d3HXoJMmL4dQT8+PtxI", "MT3SETB-promotion_node");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.promotion_node = void 0;
    const MT3SETB_language_1 = require("../../../../script/common/api/MT3SETB-language");
    const MT3SETB_platform_1 = require("../../../../script/common/api/MT3SETB-platform");
    const MT3SETB_promotion_1 = require("../../../../script/common/api/MT3SETB-promotion");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let promotion_node = class promotion_node extends cc.Component {
      constructor() {
        super();
        this.icon = null;
        this.tag1 = null;
        this.tag2 = null;
        this.logo = null;
        this.logoSpriteFrames = [];
        this.dau = null;
        this.tip = null;
        this.id = 0;
      }
      init(e) {
        var t = this;
        this.icon && cc.assetManager.loadRemote(e.icon, function(e, o) {
          null == e && (t.icon.spriteFrame = new cc.SpriteFrame(o));
        });
        this.tag1 && e.tag1 && cc.assetManager.loadRemote(e.tag1, function(e, o) {
          null == e && (t.tag1.spriteFrame = new cc.SpriteFrame(o));
        });
        this.tag2 && e.tag2 && cc.assetManager.loadRemote(e.tag2, function(e, o) {
          null == e && (t.tag2.spriteFrame = new cc.SpriteFrame(o));
        });
        this.dau && (this.dau.string = e.dau.toString());
        this.tip && (this.tip.string = MT3SETB_language_1.GetLanguage(e.tip));
        this.id = e.id;
        this.logo.spriteFrame = this.logoSpriteFrames[MT3SETB_platform_1.checkTaDaVersion() ? 1 : 0];
      }
      click() {
        MT3SETB_platform_1.canBeJumpGame() || MT3SETB_promotion_1.CheckChangeGame(this.id);
      }
    };
    __decorate([ property(cc.Sprite) ], promotion_node.prototype, "icon", void 0);
    __decorate([ property(cc.Sprite) ], promotion_node.prototype, "tag1", void 0);
    __decorate([ property(cc.Sprite) ], promotion_node.prototype, "tag2", void 0);
    __decorate([ property(cc.Sprite) ], promotion_node.prototype, "logo", void 0);
    __decorate([ property([ cc.SpriteFrame ]) ], promotion_node.prototype, "logoSpriteFrames", void 0);
    __decorate([ property(cc.Label) ], promotion_node.prototype, "dau", void 0);
    __decorate([ property(cc.Label) ], promotion_node.prototype, "tip", void 0);
    promotion_node = __decorate([ ccclass ], promotion_node);
    exports.promotion_node = promotion_node;
    cc._RF.pop();
  }, {
    "../../../../script/common/api/MT3SETB-language": "MT3SETB-language",
    "../../../../script/common/api/MT3SETB-platform": "MT3SETB-platform",
    "../../../../script/common/api/MT3SETB-promotion": "MT3SETB-promotion"
  } ],
  "MT3SETB-promotion_page": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "25715WMkuVJ/IIUj8Mlj/0v", "MT3SETB-promotion_page");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.promotion_page = void 0;
    const MT3SETB_promotion_1 = require("../../../../script/common/api/MT3SETB-promotion");
    const MT3SETB_pageview_node_1 = require("../../../../script/common/component/MT3SETB-pageview_node");
    const MT3SETB_promotion_node_1 = require("./MT3SETB-promotion_node");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let promotion_page = class promotion_page extends cc.Component {
      constructor() {
        super();
        this.page = null;
        this.sub_node = null;
      }
      onLoad() {
        for (var e = MT3SETB_promotion_1.GetPromotionData(), t = 0, o = e.length; t < o; ++t) {
          if (t % 3 == 0) {
            var r = new cc.Node(), s = r.addComponent(cc.Layout);
            s.type = cc.Layout.Type.HORIZONTAL;
            s.resizeMode = cc.Layout.ResizeMode.CONTAINER;
            this.page.addPage(r);
          }
          var c = cc.instantiate(this.sub_node);
          c.getComponent(MT3SETB_promotion_node_1.promotion_node).init(e[t]);
          this.page.getPages()[Math.floor(t / 3)].addChild(c);
        }
        this.page.getComponent(MT3SETB_pageview_node_1.pageview_node).setPageMax(this.page.getPages().length);
      }
    };
    __decorate([ property(cc.PageView) ], promotion_page.prototype, "page", void 0);
    __decorate([ property(cc.Prefab) ], promotion_page.prototype, "sub_node", void 0);
    promotion_page = __decorate([ ccclass ], promotion_page);
    exports.promotion_page = promotion_page;
    cc._RF.pop();
  }, {
    "../../../../script/common/api/MT3SETB-promotion": "MT3SETB-promotion",
    "../../../../script/common/component/MT3SETB-pageview_node": "MT3SETB-pageview_node",
    "./MT3SETB-promotion_node": "MT3SETB-promotion_node"
  } ],
  "MT3SETB-promotion": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ba0e3lo7ypOjJlECwvGkU2k", "MT3SETB-promotion");
    "use strict";
    var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
      function adopt(value) {
        return value instanceof P ? value : new P(function(resolve) {
          resolve(value);
        });
      }
      return new (P || (P = Promise))(function(resolve, reject) {
        function fulfilled(value) {
          try {
            step(generator.next(value));
          } catch (e) {
            reject(e);
          }
        }
        function rejected(value) {
          try {
            step(generator["throw"](value));
          } catch (e) {
            reject(e);
          }
        }
        function step(result) {
          result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
        }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
      });
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.TransferAck = exports.Transfer = exports.CheckChangeGame = exports.GetPromotionData = exports.HasPromotionData = exports.SetPromotion = exports.Promotion = void 0;
    const MT3SETB_glue_1 = __importDefault(require("./MT3SETB-glue"));
    const MT3SETB_language_1 = require("./MT3SETB-language");
    const MT3SETB_mtf_pb_wrapper_1 = require("./MT3SETB-mtf_pb_wrapper");
    const MT3SETB_platform_1 = require("./MT3SETB-platform");
    const MT3SETB_track_1 = require("./MT3SETB-track");
    const MT3SETB_websocket_1 = require("./MT3SETB-websocket");
    let u = [], d = function() {};
    exports.Promotion = d;
    const SetPromotion = function(e) {
      var t, o = MT3SETB_platform_1.GetHost() + "smallicon/Icons/", i = MT3SETB_platform_1.GetHost() + "smallicon/tags/", a = (t = MT3SETB_platform_1.GetLang().toLocaleLowerCase()).indexOf("tw") > -1 ? "tw" : t.indexOf("cn") > -1 ? "cn" : "en";
      u = [];
      e && 1 == e.enabled && e.list.forEach(function(e) {
        var t = new d();
        t.id = e.id;
        t.icon = o + `${e.id}_${a}.jpg`;
        e.labels.length > 0 && (t.tag1 = i + `${f(e.labels[0])}_${a}.png`);
        e.labels.length > 1 && (t.tag2 = i + `${f(e.labels[1])}_${a}.png`);
        t.dau = e.dau;
        t.tip = m(e.id);
        u.push(t);
      });
    };
    exports.SetPromotion = SetPromotion;
    const HasPromotionData = function() {
      return u.length > 0 && !MT3SETB_platform_1.canBePromotion();
    };
    exports.HasPromotionData = HasPromotionData;
    const GetPromotionData = function() {
      return u;
    };
    exports.GetPromotionData = GetPromotionData;
    const CheckChangeGame = e => __awaiter(void 0, void 0, void 0, function*() {
      MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_changeGameClick, e.toString());
      if (e === MT3SETB_platform_1.GetGameID()) {
        MT3SETB_glue_1.default.msgOK(MT3SETB_language_1.GetLanguage(388));
        return;
      }
      const canChangeGame = yield MT3SETB_glue_1.default.gameCtrl_checkChangeGame();
      if (0 === canChangeGame) {
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_changeGameCancel, e.toString());
        return;
      }
      MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_changeGameConfirm, e.toString());
      yield h(e);
    });
    exports.CheckChangeGame = CheckChangeGame;
    var p = null;
    function h(e) {
      var t = new MT3SETB_mtf_pb_wrapper_1.mtf.TransferReq();
      t.id = e;
      var o = MT3SETB_mtf_pb_wrapper_1.mtf.TransferReq.encode(t);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_TRANSFER, o);
      p && p(null);
      return new Promise(function(e) {
        p = e;
      });
    }
    function f(e) {
      switch (e) {
       case 2:
        return "new";

       case 3:
        return "event";

       default:
        return "hot";
      }
    }
    function m(e) {
      switch (e) {
       case 1:
        return 2101;

       case 20:
        return 2102;

       case 32:
        return 2103;

       case 42:
        return 2104;

       case 60:
        return 2105;

       case 74:
        return 2106;

       case 71:
        return 2107;

       case 82:
        return 2109;

       case 119:
        return 2108;

       case 192:
        return 2110;

       case 212:
        return 2111;

       case 289:
        return 2112;

       case 464:
        return 2113;

       case 468:
        return 2114;

       case 470:
        return 2115;

       default:
        return 0;
      }
    }
    exports.Transfer = h;
    const TransferAck = function(e) {
      if (p) {
        p(e);
        p = null;
      }
    };
    exports.TransferAck = TransferAck;
    cc._RF.pop();
  }, {
    "./MT3SETB-glue": "MT3SETB-glue",
    "./MT3SETB-language": "MT3SETB-language",
    "./MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-platform": "MT3SETB-platform",
    "./MT3SETB-track": "MT3SETB-track",
    "./MT3SETB-websocket": "MT3SETB-websocket"
  } ],
  "MT3SETB-random": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "3a801BvyAREOpQzEI7SJk+T", "MT3SETB-random");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.PseudoRandom = void 0;
    function pseudoRandom(random) {
      random._seed = (9301 * random._seed + 49297) % 233280;
      return random._seed / 233280;
    }
    function pseudoRandomInt(random, min, max) {
      return Math.floor(min) + Math.floor(pseudoRandom(random) * (max - min + 1));
    }
    class PseudoRandom {
      constructor(seed) {
        this._seed = seed;
      }
      next01() {
        return pseudoRandom(this);
      }
      next(min, max = 0) {
        let o;
        min > max && (min = (o = [ max, min ])[0], max = o[1]);
        return pseudoRandomInt(this, min, max);
      }
      shuffle(arr) {
        let clone = [];
        clone.push(...arr);
        for (let t, o = clone.length - 1; o > 0; o--) {
          let n = this.next(o);
          t = [ clone[n], clone[o] ];
          clone[o] = t[0];
          clone[n] = t[1];
        }
        return arr;
      }
    }
    exports.PseudoRandom = PseudoRandom;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-reconnecting-websocket": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "aec90/v9vBDPYZJSVeiK5lI", "MT3SETB-reconnecting-websocket");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const getGlobalWebSocket = () => {
      if ("undefined" !== typeof WebSocket) return WebSocket;
    };
    const isWebSocket = w => "undefined" !== typeof w && !!w && 2 === w.CLOSING;
    class Event {
      constructor(type, target) {
        this.target = target;
        this.type = type;
      }
    }
    class ErrorEvent extends Event {
      constructor(error, target) {
        super("error", target);
        this.message = error.message;
        this.error = error;
      }
    }
    class CloseEvent extends Event {
      constructor(code = 1e3, reason = "", target) {
        super("close", target);
        this.wasClean = true;
        this.code = code;
        this.reason = reason;
      }
    }
    const DEFAULT = {
      maxReconnectionDelay: 1e4,
      minReconnectionDelay: 1e3 + 4e3 * Math.random(),
      minUptime: 5e3,
      reconnectionDelayGrowFactor: 1.3,
      connectionTimeout: 4e3,
      maxRetries: Infinity,
      maxEnqueuedMessages: Infinity,
      startClosed: false,
      debug: false
    };
    class ReconnectingWebSocket {
      constructor(url, protocols, options = {}) {
        this._listeners = {
          error: [],
          message: [],
          open: [],
          close: []
        };
        this._retryCount = -1;
        this._shouldReconnect = true;
        this._connectLock = false;
        this._binaryType = "blob";
        this._closeCalled = false;
        this._messageQueue = [];
        this._pem = "";
        this.onclose = null;
        this.onerror = null;
        this.onmessage = null;
        this.onopen = null;
        this._handleOpen = event => {
          this._debug("open event");
          const {minUptime: minUptime = DEFAULT.minUptime} = this._options;
          clearTimeout(this._connectTimeout);
          this._uptimeTimeout = setTimeout(() => this._acceptOpen(), minUptime);
          this._ws.binaryType = this._binaryType;
          this._messageQueue.forEach(message => this._ws.send(message));
          this._messageQueue = [];
          this.onopen && this.onopen(event);
          this._listeners.open.forEach(listener => this._callEventListener(event, listener));
        };
        this._handleMessage = event => {
          this._debug("message event");
          this.onmessage && this.onmessage(event);
          this._listeners.message.forEach(listener => this._callEventListener(event, listener));
        };
        this._handleError = event => {
          this._debug("error event", event.message);
          this._disconnect(void 0, "TIMEOUT" === event.message ? "timeout" : void 0);
          this.onerror && this.onerror(event);
          this._debug("exec error listeners");
          this._listeners.error.forEach(listener => this._callEventListener(event, listener));
          this._connect();
        };
        this._handleClose = event => {
          this._debug("close event");
          this._clearTimeouts();
          this._shouldReconnect && this._connect();
          this.onclose && this.onclose(event);
          this._listeners.close.forEach(listener => this._callEventListener(event, listener));
        };
        this._url = url;
        this._protocols = protocols;
        this._options = options;
        this._options.startClosed && (this._shouldReconnect = false);
        this._initCacert(this._connect);
      }
      static get CONNECTING() {
        return 0;
      }
      static get OPEN() {
        return 1;
      }
      static get CLOSING() {
        return 2;
      }
      static get CLOSED() {
        return 3;
      }
      get CONNECTING() {
        return ReconnectingWebSocket.CONNECTING;
      }
      get OPEN() {
        return ReconnectingWebSocket.OPEN;
      }
      get CLOSING() {
        return ReconnectingWebSocket.CLOSING;
      }
      get CLOSED() {
        return ReconnectingWebSocket.CLOSED;
      }
      get binaryType() {
        return this._ws ? this._ws.binaryType : this._binaryType;
      }
      set binaryType(value) {
        this._binaryType = value;
        this._ws && (this._ws.binaryType = value);
      }
      get retryCount() {
        return Math.max(this._retryCount, 0);
      }
      get bufferedAmount() {
        const bytes = this._messageQueue.reduce((acc, message) => {
          "string" === typeof message ? acc += message.length : message instanceof Blob ? acc += message.size : acc += message.byteLength;
          return acc;
        }, 0);
        return bytes + (this._ws ? this._ws.bufferedAmount : 0);
      }
      get extensions() {
        return this._ws ? this._ws.extensions : "";
      }
      get protocol() {
        return this._ws ? this._ws.protocol : "";
      }
      get readyState() {
        if (this._ws) return this._ws.readyState;
        return this._options.startClosed ? ReconnectingWebSocket.CLOSED : ReconnectingWebSocket.CONNECTING;
      }
      get url() {
        return this._ws ? this._ws.url : "";
      }
      close(code = 1e3, reason) {
        this._closeCalled = true;
        this._shouldReconnect = false;
        this._clearTimeouts();
        if (!this._ws) {
          this._debug("close enqueued: no ws instance");
          return;
        }
        if (this._ws.readyState === this.CLOSED) {
          this._debug("close: already closed");
          return;
        }
        this._ws.close(code, reason);
      }
      reconnect(code, reason) {
        this._shouldReconnect = true;
        this._closeCalled = false;
        this._retryCount = -1;
        if (this._ws && this._ws.readyState !== this.CLOSED) {
          this._disconnect(code, reason);
          this._connect();
        } else this._connect();
      }
      send(data) {
        if (this._ws && this._ws.readyState === this.OPEN) {
          this._debug("send", data);
          this._ws.send(data);
        } else {
          const {maxEnqueuedMessages: maxEnqueuedMessages = DEFAULT.maxEnqueuedMessages} = this._options;
          if (this._messageQueue.length < maxEnqueuedMessages) {
            this._debug("enqueue", data);
            this._messageQueue.push(data);
          }
        }
      }
      addEventListener(type, listener) {
        this._listeners[type] && this._listeners[type].push(listener);
      }
      dispatchEvent(event) {
        const listeners = this._listeners[event.type];
        if (listeners) for (const listener of listeners) this._callEventListener(event, listener);
        return true;
      }
      removeEventListener(type, listener) {
        this._listeners[type] && (this._listeners[type] = this._listeners[type].filter(l => l !== listener));
      }
      _debug(...args) {
        this._options.debug && console.log.apply(console, [ "RWS>", ...args ]);
      }
      _getNextDelay() {
        const {reconnectionDelayGrowFactor: reconnectionDelayGrowFactor = DEFAULT.reconnectionDelayGrowFactor, minReconnectionDelay: minReconnectionDelay = DEFAULT.minReconnectionDelay, maxReconnectionDelay: maxReconnectionDelay = DEFAULT.maxReconnectionDelay} = this._options;
        let delay = 0;
        if (this._retryCount > 0) {
          delay = minReconnectionDelay * Math.pow(reconnectionDelayGrowFactor, this._retryCount - 1);
          delay > maxReconnectionDelay && (delay = maxReconnectionDelay);
        }
        this._debug("next delay", delay);
        return delay;
      }
      _wait() {
        return new Promise(resolve => {
          setTimeout(resolve, this._getNextDelay());
        });
      }
      _getNextUrl(urlProvider) {
        if ("string" === typeof urlProvider) return Promise.resolve(urlProvider);
        if ("function" === typeof urlProvider) {
          const url = urlProvider();
          if ("string" === typeof url) return Promise.resolve(url);
          if (!!url.then) return url;
        }
        throw Error("Invalid URL");
      }
      _initCacert(onLoad) {
        if (cc.sys.platform == cc.sys.ANDROID) {
          let bundle = cc.assetManager.getBundle("MT3SETB");
          bundle && bundle.load("resources/cacert/cacert", cc.Asset, (err, data) => {
            if (err) {
              console.error("_initCacert load error!", err);
              return;
            }
            let url = data.nativeUrl;
            cc.assetManager.cacheManager && (url = cc.assetManager.cacheManager.getCache(url) || url);
            this._pem = url;
            console.log("_initCacert load successful! data.nativeUrl", data.nativeUrl, "this._pem", this._pem);
            onLoad.call(this);
          });
        } else {
          console.warn("_initCacert not loaded!");
          onLoad.call(this);
        }
      }
      _connect() {
        if (this._connectLock || !this._shouldReconnect) return;
        this._connectLock = true;
        const {maxRetries: maxRetries = DEFAULT.maxRetries, connectionTimeout: connectionTimeout = DEFAULT.connectionTimeout, WebSocket: WebSocket = getGlobalWebSocket()} = this._options;
        if (this._retryCount >= maxRetries) {
          this._debug("max retries reached", this._retryCount, ">=", maxRetries);
          return;
        }
        this._retryCount++;
        this._debug("connect", this._retryCount);
        this._removeListeners();
        if (!isWebSocket(WebSocket)) throw Error("No valid WebSocket class provided");
        this._wait().then(() => this._getNextUrl(this._url)).then(url => {
          if (this._closeCalled) return;
          this._debug("connect", {
            url: url,
            protocols: this._protocols
          });
          let protocols = this._protocols ? this._protocols : [];
          if (this._pem) {
            this._ws = new WebSocket(url, protocols, this._pem);
            console.log("ws = new WebSocket(url, protocols, pem)");
          } else {
            this._ws = new WebSocket(url, protocols);
            console.log("ws = new WebSocket(url, protocols)");
          }
          this._ws.binaryType = this._binaryType;
          this._connectLock = false;
          this._addListeners();
          this._connectTimeout = setTimeout(() => this._handleTimeout(), connectionTimeout);
        });
      }
      _handleTimeout() {
        this._debug("timeout event");
        this._handleError(new ErrorEvent(Error("TIMEOUT"), this));
      }
      _disconnect(code = 1e3, reason) {
        this._clearTimeouts();
        if (!this._ws) return;
        this._removeListeners();
        try {
          this._ws.close(code, reason);
          this._handleClose(new CloseEvent(code, reason, this));
        } catch (error) {}
      }
      _acceptOpen() {
        this._debug("accept open");
        this._retryCount = 0;
      }
      _callEventListener(event, listener) {
        "handleEvent" in listener ? listener.handleEvent(event) : listener(event);
      }
      _removeListeners() {
        if (!this._ws) return;
        this._debug("removeListeners");
        this._ws.onopen = null;
        this._ws.onclose = null;
        this._ws.onmessage = null;
        this._ws.onerror = null;
      }
      _addListeners() {
        if (!this._ws) return;
        this._debug("addListeners");
        this._ws.onopen = this._handleOpen;
        this._ws.onclose = this._handleClose;
        this._ws.onmessage = this._handleMessage;
        this._ws.onerror = this._handleError;
      }
      _clearTimeouts() {
        clearTimeout(this._connectTimeout);
        clearTimeout(this._uptimeTimeout);
      }
    }
    exports.default = ReconnectingWebSocket;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-reward_chest_event": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d9446UGV9dCV4NSsyrnhPa2", "MT3SETB-reward_chest_event");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.reward_chest_event = void 0;
    const MT3SETB_reward_1 = require("../api/MT3SETB-reward");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let reward_chest_event = class reward_chest_event extends cc.Component {
      constructor() {
        super();
        this.onAckEvent = null;
        this.onUpdateEvent = null;
        this.onUpdateEvent = null;
      }
      onEnable() {
        MT3SETB_reward_1.SetChestRewardHandler(this.onAckEvent, this.onUpdateEvent);
      }
      onDisable() {
        MT3SETB_reward_1.RemoveChestRewardHandler(this.onAckEvent, this.onUpdateEvent);
      }
    };
    __decorate([ property(cc.Component.EventHandler) ], reward_chest_event.prototype, "onAckEvent", void 0);
    __decorate([ property(cc.Component.EventHandler) ], reward_chest_event.prototype, "onUpdateEvent", void 0);
    reward_chest_event = __decorate([ ccclass ], reward_chest_event);
    exports.reward_chest_event = reward_chest_event;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-reward": "MT3SETB-reward"
  } ],
  "MT3SETB-reward_level_evnet": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "75639JPJktG4ZROzgwiEOYq", "MT3SETB-reward_level_evnet");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.reward_level_evnet = void 0;
    const MT3SETB_reward_1 = require("../api/MT3SETB-reward");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let reward_level_evnet = class reward_level_evnet extends cc.Component {
      constructor() {
        super();
        this.onAckEvent = null;
        this.onUpdateEvent = null;
        this.onAckEvent = null;
        this.onUpdateEvent = null;
      }
      onEnable() {
        MT3SETB_reward_1.SetLevelRewardHandler(this.onAckEvent, this.onUpdateEvent);
      }
      onDisable() {
        MT3SETB_reward_1.RemoveLevelRewardHandler(this.onAckEvent, this.onUpdateEvent);
      }
    };
    __decorate([ property(cc.Component.EventHandler) ], reward_level_evnet.prototype, "onAckEvent", void 0);
    __decorate([ property(cc.Component.EventHandler) ], reward_level_evnet.prototype, "onUpdateEvent", void 0);
    reward_level_evnet = __decorate([ ccclass ], reward_level_evnet);
    exports.reward_level_evnet = reward_level_evnet;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-reward": "MT3SETB-reward"
  } ],
  "MT3SETB-reward_level_node": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "a9aa9pFd0xDZYaD1wQ/ddRs", "MT3SETB-reward_level_node");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.reward_level_node = void 0;
    const MT3SETB_language_1 = require("../../../../script/common/api/MT3SETB-language");
    const MT3SETB_reward_1 = require("../../../../script/common/api/MT3SETB-reward");
    const MT3SETB_utils2_1 = require("../../../../script/framework/framework/MT3SETB-utils2");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let reward_level_node = class reward_level_node extends cc.Component {
      constructor() {
        super();
        this.icon_list = [];
        this.lock = null;
        this.title = null;
        this.used = null;
        this.not_used = null;
        this.coin = null;
        this.reward = null;
      }
      onLoad() {
        this.schedule(this.updateUI.bind(this), 1, cc.macro.REPEAT_FOREVER);
      }
      init(e) {
        this.reward = e;
        this.coin.string = e.reward.toString();
        this.icon_list[e.icon] && (this.icon_list[e.icon].node.active = true);
        this.title.string = MT3SETB_utils2_1.sprintf(MT3SETB_language_1.GetLanguage(4004), e.level);
      }
      onEnable() {
        this.updateUI();
      }
      updateUI() {
        switch (this.reward.state) {
         case 1:
          this.getComponent(cc.Animation).getAnimationState("reward_level_get").isPlaying || this.getComponent(cc.Animation).play("reward_level_get");
          this.lock.node.active = false;
          break;

         case 2:
          this.getComponent(cc.Animation).getAnimationState("reward_level_end").isPlaying || this.getComponent(cc.Animation).play("reward_level_end");
          this.lock.node.active = false;
          break;

         default:
          this.getComponent(cc.Animation).getAnimationState("reward_level_idle").isPlaying || this.getComponent(cc.Animation).play("reward_level_idle");
          this.lock.node.active = true;
        }
      }
      click() {
        MT3SETB_reward_1.GetLevelReward(this.reward.level);
      }
    };
    __decorate([ property([ cc.Sprite ]) ], reward_level_node.prototype, "icon_list", void 0);
    __decorate([ property(cc.Sprite) ], reward_level_node.prototype, "lock", void 0);
    __decorate([ property(cc.Label) ], reward_level_node.prototype, "title", void 0);
    __decorate([ property(cc.Label) ], reward_level_node.prototype, "used", void 0);
    __decorate([ property(cc.Label) ], reward_level_node.prototype, "not_used", void 0);
    __decorate([ property(cc.Label) ], reward_level_node.prototype, "coin", void 0);
    reward_level_node = __decorate([ ccclass ], reward_level_node);
    exports.reward_level_node = reward_level_node;
    cc._RF.pop();
  }, {
    "../../../../script/common/api/MT3SETB-language": "MT3SETB-language",
    "../../../../script/common/api/MT3SETB-reward": "MT3SETB-reward",
    "../../../../script/framework/framework/MT3SETB-utils2": "MT3SETB-utils2"
  } ],
  "MT3SETB-reward_level_page": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "4ecd78ZSHxO5LxrfIhHvdeM", "MT3SETB-reward_level_page");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.reward_level_page = void 0;
    const MT3SETB_glue_1 = __importDefault(require("../../../../script/common/api/MT3SETB-glue"));
    const MT3SETB_language_1 = require("../../../../script/common/api/MT3SETB-language");
    const MT3SETB_profile_1 = require("../../../../script/common/api/MT3SETB-profile");
    const MT3SETB_reward_1 = require("../../../../script/common/api/MT3SETB-reward");
    const MT3SETB_reward_level_node_1 = require("./MT3SETB-reward_level_node");
    const MT3SETB_win_more_menu_1 = require("./MT3SETB-win_more_menu");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let reward_level_page = class reward_level_page extends cc.Component {
      constructor() {
        super();
        this.scroll = null;
        this.sub_node = null;
        this.lv1 = null;
        this.lv2 = null;
        this.exp = null;
        this.progress = null;
        this.winMoreMenu = null;
        this.level = null;
        this.subNodes = [];
      }
      onLoad() {
        var e = this;
        this.winMoreMenu = MT3SETB_glue_1.default.lookup(this.node, MT3SETB_win_more_menu_1.win_more_menu);
        this.level = MT3SETB_reward_1.GetLevelRewadData();
        this.level.reward.forEach(function(t) {
          var o = cc.instantiate(e.sub_node);
          o.getComponent(MT3SETB_reward_level_node_1.reward_level_node).init(t);
          e.scroll.content.addChild(o);
          e.subNodes.push(o.getComponent(MT3SETB_reward_level_node_1.reward_level_node));
        });
        this.scroll.node.on("scrolling", function() {
          for (var t = Math.floor(-e.scroll.getScrollOffset().x / 220) - 1, o = 0; o < e.subNodes.length; o++) e.subNodes[o] && (e.subNodes[o].node.opacity = o >= t && o <= t + 5 ? 255 : 0);
        });
        this.schedule(this.updateUI.bind(this), 1, cc.macro.REPEAT_FOREVER);
      }
      onEnable() {
        var e = this;
        this.updateUI();
        this.scheduleOnce(function() {
          for (var t = 0, o = 0; o < e.level.reward.length; o++) if (0 == e.level.reward[o].state || 1 == e.level.reward[o].state) {
            t = o;
            break;
          }
          var n = 5 + 220 * t;
          e.scroll.scrollToOffset(cc.v2(n, 0), 1);
        }, .01);
      }
      onLevelRewardAck(e) {
        var t = MT3SETB_glue_1.default.gameCtrl_getPlayerSeat();
        MT3SETB_glue_1.default.bankSys_addServerCoin(t, e.reward);
        MT3SETB_glue_1.default.bankSys_addClientCoin(t, e.reward);
        MT3SETB_glue_1.default.gameCtrl_updateTurretCoin(t);
        MT3SETB_glue_1.default.uiCtrl_checkToolRedPoint();
        this.winMoreMenu.showGetRewardAnim(e.reward);
      }
      updateUI() {
        this.lv1.string = this.level.level.toString();
        this.lv2.string = (this.level.level + 1).toString();
        this.exp.string = MT3SETB_profile_1.ToDecimal4(100 * this.level.exp, 2) + "%";
        this.progress.progress = this.level.exp;
        var e = this.level.reward.some(function(e) {
          return 1 === e.state;
        });
        this.winMoreMenu.showRedDot("ClassReward", e);
      }
      lookup(e) {
        for (var t = this.node.parent; t; ) {
          var o = t.getComponent(e);
          if (o) return o;
          t = t.parent;
        }
        return null;
      }
      showTip() {
        MT3SETB_glue_1.default.msgOK(MT3SETB_language_1.GetLanguage(4029));
      }
    };
    __decorate([ property(cc.ScrollView) ], reward_level_page.prototype, "scroll", void 0);
    __decorate([ property(cc.Prefab) ], reward_level_page.prototype, "sub_node", void 0);
    __decorate([ property(cc.Label) ], reward_level_page.prototype, "lv1", void 0);
    __decorate([ property(cc.Label) ], reward_level_page.prototype, "lv2", void 0);
    __decorate([ property(cc.Label) ], reward_level_page.prototype, "exp", void 0);
    __decorate([ property(cc.ProgressBar) ], reward_level_page.prototype, "progress", void 0);
    reward_level_page = __decorate([ ccclass ], reward_level_page);
    exports.reward_level_page = reward_level_page;
    cc._RF.pop();
  }, {
    "../../../../script/common/api/MT3SETB-glue": "MT3SETB-glue",
    "../../../../script/common/api/MT3SETB-language": "MT3SETB-language",
    "../../../../script/common/api/MT3SETB-profile": "MT3SETB-profile",
    "../../../../script/common/api/MT3SETB-reward": "MT3SETB-reward",
    "./MT3SETB-reward_level_node": "MT3SETB-reward_level_node",
    "./MT3SETB-win_more_menu": "MT3SETB-win_more_menu"
  } ],
  "MT3SETB-reward_week_event": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "b940bkNX/xKorOwzXlnsjrZ", "MT3SETB-reward_week_event");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.reward_week_event = void 0;
    const MT3SETB_reward_1 = require("../api/MT3SETB-reward");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let reward_week_event = class reward_week_event extends cc.Component {
      constructor() {
        super();
        this.onAckEvent = null;
        this.onUpdateEvent = null;
      }
      onEnable() {
        MT3SETB_reward_1.SetWeekRewardHandler(this.onAckEvent, this.onUpdateEvent);
      }
      onDisable() {
        MT3SETB_reward_1.RemoveWeekRewardHandler(this.onAckEvent, this.onUpdateEvent);
      }
    };
    __decorate([ property(cc.Component.EventHandler) ], reward_week_event.prototype, "onAckEvent", void 0);
    __decorate([ property(cc.Component.EventHandler) ], reward_week_event.prototype, "onUpdateEvent", void 0);
    reward_week_event = __decorate([ ccclass ], reward_week_event);
    exports.reward_week_event = reward_week_event;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-reward": "MT3SETB-reward"
  } ],
  "MT3SETB-reward": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "dcb5agfHCdBEpgwr9uhB2Xh", "MT3SETB-reward");
    "use strict";
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.GetWeekReward = exports.GetChestReward = exports.GetLevelReward = exports.RemoveWeekRewardHandler = exports.SetWeekRewardHandler = exports.RemoveChestRewardHandler = exports.SetChestRewardHandler = exports.RemoveLevelRewardHandler = exports.SetLevelRewardHandler = exports.GetChestMaxLevel = exports.GetChestRewadData = exports.GetLevelRewadData = exports.GetWeekRewadData = exports.HasWeekRewadData = exports.HasChestRewadData = exports.HasLevelRewadData = exports.OnWeekRewardAck = exports.OnChestRewardAck = exports.OnLevelRewardAck = exports.UpdateReward = exports.SetReward = exports.Level = exports.LevelReward = void 0;
    const MT3SETB_glue_1 = __importDefault(require("./MT3SETB-glue"));
    const MT3SETB_mtf_pb_wrapper_1 = require("./MT3SETB-mtf_pb_wrapper");
    const MT3SETB_profile_1 = require("./MT3SETB-profile");
    const MT3SETB_websocket_1 = require("./MT3SETB-websocket");
    let s = null, c = null, l = null, u = null, d = function() {};
    exports.LevelReward = d;
    var p = function() {
      this.reward = [];
    };
    exports.Level = p;
    var h = function() {}, f = function() {
      this.reward = [];
    }, m = function() {
      this.reward = [ {
        rewardList: [ 1, 2, 5, 10, 20, 50 ],
        expCost: 4
      }, {
        rewardList: [ 10, 20, 50, 100, 200, 500 ],
        expCost: 40
      }, {
        rewardList: [ 50, 100, 250, 500, 1e3, 2500 ],
        expCost: 200
      } ];
    };
    const SetReward = function(e) {
      null != e && (s = e, c = new p(), null != e.level && e.level.table.length > 0 ? (k(), 
      s.level.table.forEach(function(e) {
        if (e.reward > 0) {
          var t = new d();
          t.level = e.level, t.icon = B(e.reward), t.reward = e.reward * MT3SETB_profile_1.GetRatio(), 
          t.state = c.level >= e.level ? 1 : 0, c.reward.push(t);
        }
      }), s.level.rewarded.forEach(function(e) {
        c.reward.some(function(t) {
          if (t.level == e) return t.state = 2, true;
        });
      })) : (c.exp = 0, c.level = 0), (l = new m()).exp = 0, S(), l.reward.forEach(function(e, t) {
        l.reward[t].expCost = l.reward[t].expCost * MT3SETB_profile_1.GetRatio(), l.reward[t].rewardList.forEach(function(e, o) {
          l.reward[t].rewardList[o] = l.reward[t].rewardList[o] * MT3SETB_profile_1.GetRatio();
        });
      }), null != e.week && e.week.table.length > 0 && ((u = new f()).next = 1e3 * s.week.next.toNumber(), 
      C(), N()));
    };
    exports.SetReward = SetReward;
    const UpdateReward = function(e) {
      s.exp = e, k(), S(), C(), MT3SETB_glue_1.default.uiCtrl_checkToolRedPoint && MT3SETB_glue_1.default.uiCtrl_checkToolRedPoint();
    };
    exports.UpdateReward = UpdateReward;
    const OnLevelRewardAck = function(e) {
      for (var t = 0; t < c.reward.length; t++) if (c.reward[t].level == e.level) {
        c.reward[t].state = 2;
        break;
      }
      g && g.emit([ e ]);
    };
    exports.OnLevelRewardAck = OnLevelRewardAck;
    const OnChestRewardAck = function(e) {
      l && (l.exp = 0), y && y.emit([ e ]), v && v.emit([]);
    };
    exports.OnChestRewardAck = OnChestRewardAck;
    const OnWeekRewardAck = function(e) {
      u && u.reward.shift(), b && b.emit([ e ]), w && w.emit([]);
    };
    exports.OnWeekRewardAck = OnWeekRewardAck;
    const HasLevelRewadData = function() {
      return null != c;
    };
    exports.HasLevelRewadData = HasLevelRewadData;
    const HasChestRewadData = function() {
      return !(null == s || s.exp.length < 2);
    };
    exports.HasChestRewadData = HasChestRewadData;
    const HasWeekRewadData = function() {
      return null != u;
    };
    exports.HasWeekRewadData = HasWeekRewadData;
    const GetWeekRewadData = function() {
      return new Date().getTime() > u.next && (u.next = u.next + 6048e5, u.reward = [], 
      u.exp = 0, s.week.rewarded = [], N()), u;
    };
    exports.GetWeekRewadData = GetWeekRewadData;
    const GetLevelRewadData = function() {
      return c;
    };
    exports.GetLevelRewadData = GetLevelRewadData;
    const GetChestRewadData = function() {
      return l;
    };
    exports.GetChestRewadData = GetChestRewadData;
    const GetChestMaxLevel = function() {
      if (l) for (var e = l.reward.length - 1; e >= 0; e--) if (l.exp >= l.reward[e].expCost) return e;
      return -1;
    };
    exports.GetChestMaxLevel = GetChestMaxLevel;
    var g = null, _ = null;
    const SetLevelRewardHandler = function(e, t) {
      e && (g = e), t && (_ = e);
    };
    exports.SetLevelRewardHandler = SetLevelRewardHandler;
    const RemoveLevelRewardHandler = function(e, t) {
      g == e && (g = null), _ == t && (_ = null);
    };
    exports.RemoveLevelRewardHandler = RemoveLevelRewardHandler;
    var y = null, v = null;
    const SetChestRewardHandler = function(e, t) {
      e && (y = e), t && (v = e);
    };
    exports.SetChestRewardHandler = SetChestRewardHandler;
    const RemoveChestRewardHandler = function(e, t) {
      y == e && (y = null), v == t && (v = null);
    };
    exports.RemoveChestRewardHandler = RemoveChestRewardHandler;
    var b = null, w = null;
    function k() {
      if (null != c) {
        var e = false;
        s.level.table.some(function(e, t, o) {
          if (s.exp[0] < e.exp * MT3SETB_profile_1.GetRatio()) {
            var n = o[t - 1];
            return c.level = n.level, c.exp = (s.exp[0] - n.exp * MT3SETB_profile_1.GetRatio()) / (e.exp * MT3SETB_profile_1.GetRatio() - n.exp * MT3SETB_profile_1.GetRatio()), 
            true;
          }
        }), null == c.level && (c.level = s.level.table[s.level.table.length - 1].level, 
        c.exp = 1, e = true);
        for (var t = 0; t < c.reward.length; t++) 0 == c.reward[t].state && (e || c.level >= c.reward[t].level) && (c.reward[t].state = 1);
        _ && _.emit([]);
      }
    }
    function S() {
      null != l && (l.exp = s.exp[1], v && v.emit([]));
    }
    function C() {
      null != u && (u.exp = s.exp[2], w && w.emit([]));
    }
    function N() {
      null != u && s.week.table.forEach(function(e) {
        var t = false;
        s.week.rewarded.some(function(o) {
          if (e.level == o) return t = true, true;
        });
        if (false == t) {
          var o = new h();
          o.exp = e.exp * MT3SETB_profile_1.GetRatio();
          o.reward = e.reward * MT3SETB_profile_1.GetRatio();
          o.level = e.level;
          u.reward.push(o);
        }
      });
    }
    function B(e) {
      return e < 100 ? 0 : e < 1e3 ? 1 : e < 1e4 ? 2 : 3;
    }
    const SetWeekRewardHandler = function(e, t) {
      e && (b = e);
      t && (w = e);
    };
    exports.SetWeekRewardHandler = SetWeekRewardHandler;
    const RemoveWeekRewardHandler = function(e, t) {
      b == e && (b = null);
      w == t && (w = null);
    };
    exports.RemoveWeekRewardHandler = RemoveWeekRewardHandler;
    const GetLevelReward = function(e) {
      var t = new MT3SETB_mtf_pb_wrapper_1.mtf.LevelRewardReq();
      t.level = e;
      var o = MT3SETB_mtf_pb_wrapper_1.mtf.LevelRewardReq.encode(t);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_LEVEL_REWARD_REQ, o);
    };
    exports.GetLevelReward = GetLevelReward;
    const GetChestReward = function(e) {
      var t = new MT3SETB_mtf_pb_wrapper_1.mtf.LevelRewardReq();
      t.level = e;
      var o = MT3SETB_mtf_pb_wrapper_1.mtf.LevelRewardReq.encode(t);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_KILL_REWARD_REQ, o);
    };
    exports.GetChestReward = GetChestReward;
    const GetWeekReward = function() {
      var e = new MT3SETB_mtf_pb_wrapper_1.mtf.LevelRewardReq();
      e.level = u.reward[0].level;
      var t = MT3SETB_mtf_pb_wrapper_1.mtf.LevelRewardReq.encode(e);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_WEEK_REWARD_REQ, t);
    };
    exports.GetWeekReward = GetWeekReward;
    cc._RF.pop();
  }, {
    "./MT3SETB-glue": "MT3SETB-glue",
    "./MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-profile": "MT3SETB-profile",
    "./MT3SETB-websocket": "MT3SETB-websocket"
  } ],
  "MT3SETB-script_load": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "7faddJijnNO+qA3lRXWk9un", "MT3SETB-script_load");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.script_load = void 0;
    const MT3SETB_script_1 = require("../api/MT3SETB-script");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let script_load = class script_load extends cc.Component {
      constructor() {
        super();
        this.script = null;
        this.onFinished = null;
      }
      onLoad() {
        MT3SETB_script_1.InitScript(new Uint8Array(this.script._buffer));
        this.onFinished && this.onFinished.emit([]);
      }
    };
    __decorate([ property(cc.BufferAsset) ], script_load.prototype, "script", void 0);
    __decorate([ property(cc.Component.EventHandler) ], script_load.prototype, "onFinished", void 0);
    script_load = __decorate([ ccclass ], script_load);
    exports.script_load = script_load;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-script": "MT3SETB-script"
  } ],
  "MT3SETB-script_v1": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "dc81c4n45pIuaVyYFwgYUdu", "MT3SETB-script_v1");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ScriptV1 = void 0;
    const MT3SETB_script_1 = require("./MT3SETB-script");
    const MT3SETB_timeline_1 = require("./MT3SETB-timeline");
    class ScriptV1 {
      constructor() {
        this.count = 0;
        this.rawEvent = [];
        this.event = [ {
          name: "init",
          time: -1,
          data: {
            id: -1,
            duration: Number.MAX_VALUE
          }
        } ];
        this.group = [];
        this.endTime = 0;
      }
      GetRawEvent() {
        if (this.rawEvent.length > 0) {
          var e = this.rawEvent;
          this.rawEvent = [];
          return e;
        }
        return [];
      }
      getRawEventLength() {
        return this.rawEvent.length;
      }
      EmitEvents(e) {
        for (var t = 0; t < this.event.length && !(this.event[t].time > e); ++t) ;
        var o = this.event.splice(0, t);
        return 0;
      }
      getEventLength() {
        return this.event.length;
      }
      AddEvent(e) {
        this.event.push(e);
        this.event.sort(function(e, t) {
          return e.time != t.time ? e.time - t.time : e.data.id - t.data.id;
        });
      }
      AddGroup(e, t = true) {
        var o = this;
        var a = false, r = null, s = MT3SETB_script_1.GetScriptGroup(e.group), c = s.extra;
        if ("" !== s) switch (c) {
         case "Group1":
         case "Group2":
         case "Group3":
         case "Group4":
         case "Group5":
         case "Group6":
         case "Group7":
         case "Group8":
          var l = parseInt(c.replace("Group", ""));
          isNaN(l) || (a = true, r = {
            groupNo: l,
            leaderNo: -1,
            leaderId: -1
          });
          break;

         case "tako_2a":
          return void this.rawEvent.push({
            name: "AddTakoHeadPath",
            time: -1,
            data: {
              id: -1,
              duration: Number.MAX_VALUE,
              pathNo: s.fish[0].path
            }
          });

         case "tako_2b":
          this.rawEvent.push({
            name: "ClearTakoLegPath",
            time: -2,
            data: {
              id: -1,
              duration: Number.MAX_VALUE
            }
          });
          for (var u = 0; u < s.fish.length; u++) this.rawEvent.push({
            name: "AddTakoLegPath",
            time: -1,
            data: {
              id: -1,
              duration: Number.MAX_VALUE,
              pathNo: s.fish[u].path
            }
          });
          return;
        }
        "tako_2a" != c && "tako_2b" != c || cc.log(c);
        var d = -1, p = -1, h = void 0;
        s.fish.forEach(function(t) {
          o.count += 1;
          var s = a && h ? h.joinTime : e.time + t.delay, c = a && h ? h.duration : MT3SETB_script_1.GetScriptPath(t.path).duration, l = o.count;
          -1 === d && (d = l, p = t.fish);
          a && (r.leaderId = d, r.leaderNo = p);
          var u = {
            id: l,
            no: t.fish,
            joinTime: s,
            duration: c,
            flipOnTurn: t.flipOnTurn,
            followerOffset: cc.v2(t.follower),
            followerData: r,
            pathNo: t.path,
            combo: t.combo
          };
          null == h && (h = u);
          MT3SETB_timeline_1.checkFishDead(l) || o.rawEvent.push({
            name: "addfish",
            time: u.joinTime,
            data: u
          });
          o.endTime = Math.max(o.endTime, u.duration + s - 14);
        });
        this.group.push(e);
      }
      GetGroup() {
        return this.group;
      }
    }
    exports.ScriptV1 = ScriptV1;
    cc._RF.pop();
  }, {
    "./MT3SETB-script": "MT3SETB-script",
    "./MT3SETB-timeline": "MT3SETB-timeline"
  } ],
  "MT3SETB-script_v2": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "fa6c6Xpu0VKsaIEWYHfGYZp", "MT3SETB-script_v2");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.ScriptV2 = void 0;
    const MT3SETB_script_1 = require("./MT3SETB-script");
    const MT3SETB_timeline_1 = require("./MT3SETB-timeline");
    class ScriptV2 {
      constructor() {
        this.count = 0;
        this.rawEvent = [];
        this.event = [ {
          name: "init",
          time: -1,
          data: {
            id: -1,
            duration: Number.MAX_VALUE
          }
        } ];
        this.group = [];
        this.endTime = 0;
      }
      GetRawEvent() {
        if (this.rawEvent.length > 0) {
          var e = this.rawEvent;
          this.rawEvent = [];
          return e;
        }
        return [];
      }
      getRawEventLength() {
        return this.rawEvent.length;
      }
      EmitEvents(e) {
        for (var t = 0; t < this.event.length && !(this.event[t].time > e); ++t) ;
        var o = this.event.splice(0, t);
        return o;
      }
      getEventLength() {
        return this.event.length;
      }
      AddEvent(e) {
        this.event.push(e);
        this.event.sort(function(e, t) {
          return e.time != t.time ? e.time - t.time : e.data.id - t.data.id;
        });
      }
      AddGroup(e, t = true) {
        var o = this;
        var a = false, r = null, s = MT3SETB_script_1.GetScriptGroupV2(e.group), c = s.extra;
        if ("" !== s) switch (c) {
         case "Group1":
         case "Group2":
         case "Group3":
         case "Group4":
         case "Group5":
         case "Group6":
         case "Group7":
         case "Group8":
          var l = parseInt(c.replace("Group", ""));
          isNaN(l) || (a = true, r = {
            groupNo: l,
            leaderNo: -1,
            leaderId: -1
          });
          break;

         case "tako_2a":
          return void this.rawEvent.push({
            name: "AddTakoHeadPath",
            time: -1,
            data: {
              id: -1,
              duration: Number.MAX_VALUE,
              pathNo: s.fish[0].path
            }
          });

         case "tako_2b":
          this.rawEvent.push({
            name: "ClearTakoLegPath",
            time: -2,
            data: {
              id: -1,
              duration: Number.MAX_VALUE
            }
          });
          for (var u = 0; u < s.fish.length; u++) this.rawEvent.push({
            name: "AddTakoLegPath",
            time: -1,
            data: {
              id: -1,
              duration: Number.MAX_VALUE,
              pathNo: s.fish[u].path
            }
          });
          return;
        }
        var d = -1, p = -1, h = void 0;
        s.fish.forEach(function(s) {
          t && (o.count += 1);
          var c = a && h ? h.joinTime : e.time + s.delay, l = a && h ? h.duration : MT3SETB_script_1.GetScriptPathV2(s.path).duration, u = t ? o.count : -1;
          -1 === d && (d = u, p = s.fish);
          a && (r.leaderId = d, r.leaderNo = p);
          var f = {
            id: u,
            no: s.fish,
            joinTime: c,
            duration: l,
            flip: s.flip,
            mirror: s.mirror,
            followerData: r,
            pathNo: s.path,
            isFaker: !t
          };
          null == h && (h = f);
          MT3SETB_timeline_1.checkFishDead(u) || o.rawEvent.push({
            name: "addfish",
            time: f.joinTime,
            data: f
          });
          o.endTime = Math.max(o.endTime, f.duration + c - MT3SETB_script_1.GetScriptEndDiff() - 4);
        });
        t && this.group.push(e);
      }
      GetGroup() {
        return this.group;
      }
    }
    exports.ScriptV2 = ScriptV2;
    cc._RF.pop();
  }, {
    "./MT3SETB-script": "MT3SETB-script",
    "./MT3SETB-timeline": "MT3SETB-timeline"
  } ],
  "MT3SETB-script": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "be9df2lMhlJG4EwvLiRG6Op", "MT3SETB-script");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.CreateScript = exports.GetScriptEndDiff = exports.GetAllScriptPathV2 = exports.GetAllScriptPath = exports.GetScriptPathV2 = exports.GetScriptPath = exports.GetScriptGroupV2 = exports.GetScriptGroup = exports.GetScriptVersion = exports.InitScriptV2 = exports.InitScript = void 0;
    const MT3SETB_mtf_pb_wrapper_1 = require("./MT3SETB-mtf_pb_wrapper");
    const MT3SETB_script_v1_1 = require("./MT3SETB-script_v1");
    const MT3SETB_script_v2_1 = require("./MT3SETB-script_v2");
    let c = 0, l = 0, u = new Map(), d = new Map();
    const InitScript = function(e) {
      if (0 == c) {
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.ScriptData.decode(e);
        t.group.forEach(function(e) {
          u[e.no] = e;
        });
        t.path.forEach(function(e) {
          d[e.no] = e;
        });
        c = t.version;
      }
    };
    exports.InitScript = InitScript;
    var p = [], h = [], f = null;
    const InitScriptV2 = function(e) {
      if (0 == c) {
        l = 2;
        var t = MT3SETB_mtf_pb_wrapper_1.mtf.ScriptV2.decode(e);
        t.group.forEach(function(e) {
          p[e.id] = e;
          null == f && (f = e.duration - e.delay);
        });
        t.path.forEach(function(e) {
          h[e.id] = e;
        });
        c = t.version;
      }
    };
    exports.InitScriptV2 = InitScriptV2;
    const GetScriptVersion = function() {
      return c;
    };
    exports.GetScriptVersion = GetScriptVersion;
    const GetScriptGroup = function(e) {
      return u[e];
    };
    exports.GetScriptGroup = GetScriptGroup;
    const GetScriptGroupV2 = function(e) {
      return p[e];
    };
    exports.GetScriptGroupV2 = GetScriptGroupV2;
    const GetScriptPath = function(e) {
      return d[e];
    };
    exports.GetScriptPath = GetScriptPath;
    const GetScriptPathV2 = function(e) {
      return h[e];
    };
    exports.GetScriptPathV2 = GetScriptPathV2;
    const GetAllScriptPath = function() {
      return d;
    };
    exports.GetAllScriptPath = GetAllScriptPath;
    const GetAllScriptPathV2 = function() {
      return h;
    };
    exports.GetAllScriptPathV2 = GetAllScriptPathV2;
    const GetScriptEndDiff = function() {
      return f;
    };
    exports.GetScriptEndDiff = GetScriptEndDiff;
    const CreateScript = function(e) {
      if (2 == l) {
        var t = new MT3SETB_script_v2_1.ScriptV2();
        e.forEach(function(e) {
          t.AddGroup(e);
        });
        return t;
      }
      var o = new MT3SETB_script_v1_1.ScriptV1();
      e.forEach(function(e) {
        o.AddGroup(e);
      });
      return o;
    };
    exports.CreateScript = CreateScript;
    cc._RF.pop();
  }, {
    "./MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-script_v1": "MT3SETB-script_v1",
    "./MT3SETB-script_v2": "MT3SETB-script_v2"
  } ],
  "MT3SETB-scriptv2_load": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "a102eof0ghPGLJHry9KAbv1", "MT3SETB-scriptv2_load");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.scriptv2_load = void 0;
    const MT3SETB_script_1 = require("../api/MT3SETB-script");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let scriptv2_load = class scriptv2_load extends cc.Component {
      constructor() {
        super();
        this.script = null;
        this.onFinished = null;
        this.checkDistance = false;
      }
      onLoad() {
        MT3SETB_script_1.InitScriptV2(new Uint8Array(this.script._buffer));
        this.checkDistance && this.calcDistanceInPathData(MT3SETB_script_1.GetAllScriptPathV2());
        this.onFinished && this.onFinished.emit([]);
      }
      derivative(e, t, o, n) {
        n.set(t).subSelf(e).divSelf(o);
      }
      cubicN(e, t, o, n, i) {
        var a = e * e;
        return t + (3 * -t + e * (3 * t - t * e)) * e + (3 * o + e * (-6 * o + 3 * o * e)) * e + (3 * n - 3 * n * e) * a + i * a * e;
      }
      calcDistanceInPathData(e) {
        var t = this, o = cc.v2(), n = cc.v2(), i = null, a = cc.v2(), r = cc.v2(), s = cc.v2();
        e.forEach(function(e) {
          if (!(e.point.length <= 0)) {
            o.set(cc.v2(e.point[0]));
            for (var c = 1; c < e.point.length; c++) if (e.point[c].isSpline) {
              n.x = e.point[c].x;
              n.y = e.point[c].y;
              e.point[c + 1] ? t.derivative(cc.v2(e.point[c - 1]), cc.v2(e.point[c + 1]), 2, a) : t.derivative(cc.v2(e.point[c - 1]), cc.v2(e.point[c]), 2, a);
              if (!i) {
                i = cc.v2();
                t.derivative(cc.v2(e.point[c - 1]), cc.v2(e.point[c]), 2, i);
              }
              r.x = o.x + i.x * (1 / 3);
              r.y = o.y + i.y * (1 / 3);
              s.x = n.x + a.x * (1 / 3);
              s.y = n.y + a.y * (1 / 3);
              for (var l = 0, u = t.cubicN(0, o.x, r.x, s.x, n.x), d = t.cubicN(0, o.y, r.y, s.y, n.y), p = 0, h = 0, f = 0, m = 0, g = .01; g <= 1; g += .01) {
                f = (p = t.cubicN(g, o.x, r.x, s.x, n.x)) - u;
                m = (h = t.cubicN(g, o.y, r.y, s.y, n.y)) - d;
                l += Math.sqrt(f * f + m * m);
                u = p;
                d = h;
              }
              e.point[c].distance = l;
              o.set(n);
              i.set(a);
            } else {
              n.set(cc.v2(e.point[c]));
              e.point[c].distance = Math.sqrt(Math.pow(n.x - o.x, 2) + Math.pow(n.y - o.y, 2));
              o.set(n);
              i = null;
            }
          }
        });
      }
    };
    __decorate([ property(cc.BufferAsset) ], scriptv2_load.prototype, "script", void 0);
    __decorate([ property(cc.Component.EventHandler) ], scriptv2_load.prototype, "onFinished", void 0);
    __decorate([ property ], scriptv2_load.prototype, "checkDistance", void 0);
    scriptv2_load = __decorate([ ccclass ], scriptv2_load);
    exports.scriptv2_load = scriptv2_load;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-script": "MT3SETB-script"
  } ],
  "MT3SETB-scroll_view_culling": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "cc55dqr9d5J+rUpg80rt98p", "MT3SETB-scroll_view_culling");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.scroll_view_culling = void 0;
    const {ccclass: ccclass, property: property} = cc._decorator;
    let scroll_view_culling = class scroll_view_culling extends cc.Component {
      constructor() {
        super();
        this.content = null;
        this.dt = .1;
        this.viewBox = null;
      }
      onLoad() {}
      start() {
        var e = this;
        this.viewBox = this.content.parent.getBoundingBox();
        cc.tween(this.node).call(function() {
          true === e.content.activeInHierarchy && e.checkItemVisibility();
        }).delay(this.dt).union().repeatForever().start();
      }
      checkItemVisibility() {
        var e = this.content, t = this.viewBox.clone();
        t.x -= e.parent.x + e.x;
        t.y -= e.parent.y + e.y;
        for (var o, n, i, a, r = cc.rect(), s = e.children, c = 0, l = s.length; c < l; ++c) {
          var u = s[c], d = t.intersects((o = u.x - u.anchorX * u.width, n = u.y - u.anchorY * u.height, 
          i = u.width, a = u.height, r.x = o, r.y = n, r.width = i, r.height = a, r));
          u.opacity = d ? 255 : 0;
        }
      }
    };
    __decorate([ property(cc.Node) ], scroll_view_culling.prototype, "content", void 0);
    __decorate([ property ], scroll_view_culling.prototype, "dt", void 0);
    scroll_view_culling = __decorate([ ccclass ], scroll_view_culling);
    exports.scroll_view_culling = scroll_view_culling;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-tableSelect_pb_wrapper": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "16347a3K5xOha5Kye8UEVa+", "MT3SETB-tableSelect_pb_wrapper");
    "use strict";
    var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
      void 0 === k2 && (k2 = k);
      Object.defineProperty(o, k2, {
        enumerable: true,
        get: function() {
          return m[k];
        }
      });
    } : function(o, m, k, k2) {
      void 0 === k2 && (k2 = k);
      o[k2] = m[k];
    });
    var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) {
      Object.defineProperty(o, "default", {
        enumerable: true,
        value: v
      });
    } : function(o, v) {
      o["default"] = v;
    });
    var __importStar = this && this.__importStar || function(mod) {
      if (mod && mod.__esModule) return mod;
      var result = {};
      if (null != mod) for (var k in mod) "default" !== k && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k);
      __setModuleDefault(result, mod);
      return result;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.tableSelect = void 0;
    const originalModules = __importStar(require("./MT3SETB-tableSelect_pb"));
    var tableSelect;
    (function(tableSelect) {
      tableSelect.UserToServer = originalModules.UserToServer;
      tableSelect.ServerToUser = originalModules.ServerToUser;
      tableSelect.JoinResult = originalModules.JoinResult;
      tableSelect.TableUpdateType = originalModules.TableUpdateType;
      tableSelect.RoomType = originalModules.RoomType;
      tableSelect.JoinType = originalModules.JoinType;
      class GetTableInfoReq extends originalModules.GetTableInfoReq {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getTheme) {
            this.theme = other.getTheme();
            this.room = other.getRoom();
          }
          Object.assign(this, other);
        }
        get theme() {
          return super.getTheme();
        }
        set theme(value) {
          super.setTheme(value);
        }
        get room() {
          return super.getRoom();
        }
        set room(value) {
          super.setRoom(value);
        }
        static create() {
          return new GetTableInfoReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new GetTableInfoReq(this.deserializeBinary(bytes));
        }
      }
      tableSelect.GetTableInfoReq = GetTableInfoReq;
      class GetTableInfoAck extends originalModules.GetTableInfoAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getTheme) {
            this.theme = other.getTheme();
            this.room = other.getRoom();
            this.ratio = other.getRatio();
            this.tables = other.getTablesList();
          }
          Object.assign(this, other);
        }
        get theme() {
          return super.getTheme();
        }
        set theme(value) {
          super.setTheme(value);
        }
        get room() {
          return super.getRoom();
        }
        set room(value) {
          super.setRoom(value);
        }
        get ratio() {
          return super.getRatio();
        }
        set ratio(value) {
          super.setRatio(value);
        }
        get tables() {
          let list = super.getTablesList().map(table => new Table(table));
          super.setTablesList(list);
          return list;
        }
        set tables(value) {
          super.setTablesList(value.map(table => new Table(table)));
        }
        static create() {
          return new GetTableInfoAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new GetTableInfoAck(this.deserializeBinary(bytes));
        }
      }
      tableSelect.GetTableInfoAck = GetTableInfoAck;
      class JoinTableReq extends originalModules.JoinTableReq {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getTheme) {
            this.theme = other.getTheme();
            this.room = other.getRoom();
            this.tableNo = other.getTableno();
            this.seatNo = other.getSeatno();
            this.joinType = other.getJointype();
          }
          Object.assign(this, other);
        }
        get theme() {
          return super.getTheme();
        }
        set theme(value) {
          super.setTheme(value);
        }
        get room() {
          return super.getRoom();
        }
        set room(value) {
          super.setRoom(value);
        }
        get tableNo() {
          return super.getTableno();
        }
        set tableNo(value) {
          super.setTableno(value);
        }
        get seatNo() {
          return super.getSeatno();
        }
        set seatNo(value) {
          super.setSeatno(value);
        }
        get joinType() {
          return super.getJointype();
        }
        set joinType(value) {
          super.setJointype(value);
        }
        static create() {
          return new JoinTableReq();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new JoinTableReq(this.deserializeBinary(bytes));
        }
      }
      tableSelect.JoinTableReq = JoinTableReq;
      class JoinTableAck extends originalModules.JoinTableAck {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getTheme) {
            this.theme = other.getTheme();
            this.room = other.getRoom();
            this.seat = other.getSeat();
            this.players = other.getPlayersList();
            this.wagers = other.getWagers();
            this.version = other.getVersion();
            this.joinResult = other.getJoinresult();
          }
          Object.assign(this, other);
        }
        get theme() {
          return super.getTheme();
        }
        set theme(value) {
          super.setTheme(value);
        }
        get room() {
          return super.getRoom();
        }
        set room(value) {
          super.setRoom(value);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        get players() {
          let list = super.getPlayersList().map(player => new Player(player));
          super.setPlayersList(list);
          return list;
        }
        set players(value) {
          super.setPlayersList(value.map(player => new Player(player)));
        }
        get wagers() {
          return super.getWagers();
        }
        set wagers(value) {
          super.setWagers(value);
        }
        get version() {
          return super.getVersion();
        }
        set version(value) {
          super.setVersion(value);
        }
        get joinResult() {
          return super.getJoinresult();
        }
        set joinResult(value) {
          super.setJoinresult(value);
        }
        static create() {
          return new JoinTableAck();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new JoinTableAck(this.deserializeBinary(bytes));
        }
      }
      tableSelect.JoinTableAck = JoinTableAck;
      class Player extends originalModules.Player {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getAccountid) {
            this.accountId = other.getAccountid();
            this.name = other.getName();
            this.seat = other.getSeat();
          }
          Object.assign(this, other);
        }
        get accountId() {
          return super.getAccountid();
        }
        set accountId(value) {
          super.setAccountid(value);
        }
        get name() {
          return super.getName();
        }
        set name(value) {
          super.setName(value);
        }
        get seat() {
          return super.getSeat();
        }
        set seat(value) {
          super.setSeat(value);
        }
        static create() {
          return new Player();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Player(this.deserializeBinary(bytes));
        }
      }
      tableSelect.Player = Player;
      class Table extends originalModules.Table {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getTableno) {
            this.tableNo = other.getTableno();
            this.players = other.getPlayersList();
          }
          Object.assign(this, other);
        }
        get tableNo() {
          return super.getTableno();
        }
        set tableNo(value) {
          super.setTableno(value);
        }
        get players() {
          let list = super.getPlayersList().map(player => new Player(player));
          super.setPlayersList(list);
          return list;
        }
        set players(value) {
          super.setPlayersList(value.map(player => new Player(player)));
        }
        static create() {
          return new Table();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new Table(this.deserializeBinary(bytes));
        }
      }
      tableSelect.Table = Table;
      class UpdateTableNotify extends originalModules.UpdateTableNotify {
        constructor(other) {
          super();
          if (!other) return;
          if ("function" === typeof other.getTheme) {
            this.theme = other.getTheme();
            this.tableNo = other.getTableno();
            this.player = other.getPlayer();
            this.updateType = other.getUpdatetype();
          }
          Object.assign(this, other);
        }
        get theme() {
          return super.getTheme();
        }
        set theme(value) {
          super.setTheme(value);
        }
        get tableNo() {
          return super.getTableno();
        }
        set tableNo(value) {
          super.setTableno(value);
        }
        get player() {
          if (!super.getPlayer()) return;
          let newValue = new Player(super.getPlayer());
          super.setPlayer(newValue);
          return newValue;
        }
        set player(value) {
          super.setPlayer(new Player(value));
        }
        get updateType() {
          return super.getUpdatetype();
        }
        set updateType(value) {
          super.setUpdatetype(value);
        }
        static create() {
          return new UpdateTableNotify();
        }
        static encode(message) {
          return message.serializeBinary();
        }
        static decode(bytes) {
          return new UpdateTableNotify(this.deserializeBinary(bytes));
        }
      }
      tableSelect.UpdateTableNotify = UpdateTableNotify;
    })(tableSelect = exports.tableSelect || (exports.tableSelect = {}));
    cc._RF.pop();
  }, {
    "./MT3SETB-tableSelect_pb": "MT3SETB-tableSelect_pb"
  } ],
  "MT3SETB-tableSelect_pb": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "f6d1appKZdCn5mr/mOSmjuY", "MT3SETB-tableSelect_pb");
    "use strict";
    var jspb = require("./../../libs/MT3SETB-google-protobuf");
    var goog = jspb;
    var global = "undefined" !== typeof globalThis && globalThis || "undefined" !== typeof window && window || "undefined" !== typeof global && global || "undefined" !== typeof self && self || function() {
      return this;
    }.call(null) || Function("return this")();
    goog.exportSymbol("proto.tableSelect.GetTableInfoAck", null, global);
    goog.exportSymbol("proto.tableSelect.GetTableInfoReq", null, global);
    goog.exportSymbol("proto.tableSelect.JoinResult", null, global);
    goog.exportSymbol("proto.tableSelect.JoinTableAck", null, global);
    goog.exportSymbol("proto.tableSelect.JoinTableReq", null, global);
    goog.exportSymbol("proto.tableSelect.JoinType", null, global);
    goog.exportSymbol("proto.tableSelect.Player", null, global);
    goog.exportSymbol("proto.tableSelect.RoomType", null, global);
    goog.exportSymbol("proto.tableSelect.ServerToUser", null, global);
    goog.exportSymbol("proto.tableSelect.Table", null, global);
    goog.exportSymbol("proto.tableSelect.TableUpdateType", null, global);
    goog.exportSymbol("proto.tableSelect.UpdateTableNotify", null, global);
    goog.exportSymbol("proto.tableSelect.UserToServer", null, global);
    proto.tableSelect.GetTableInfoReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.tableSelect.GetTableInfoReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.tableSelect.GetTableInfoReq.displayName = "proto.tableSelect.GetTableInfoReq");
    proto.tableSelect.GetTableInfoAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.tableSelect.GetTableInfoAck.repeatedFields_, null);
    };
    goog.inherits(proto.tableSelect.GetTableInfoAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.tableSelect.GetTableInfoAck.displayName = "proto.tableSelect.GetTableInfoAck");
    proto.tableSelect.JoinTableReq = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.tableSelect.JoinTableReq, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.tableSelect.JoinTableReq.displayName = "proto.tableSelect.JoinTableReq");
    proto.tableSelect.JoinTableAck = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.tableSelect.JoinTableAck.repeatedFields_, null);
    };
    goog.inherits(proto.tableSelect.JoinTableAck, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.tableSelect.JoinTableAck.displayName = "proto.tableSelect.JoinTableAck");
    proto.tableSelect.Player = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.tableSelect.Player, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.tableSelect.Player.displayName = "proto.tableSelect.Player");
    proto.tableSelect.Table = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, proto.tableSelect.Table.repeatedFields_, null);
    };
    goog.inherits(proto.tableSelect.Table, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.tableSelect.Table.displayName = "proto.tableSelect.Table");
    proto.tableSelect.UpdateTableNotify = function(opt_data) {
      jspb.Message.initialize(this, opt_data, 0, -1, null, null);
    };
    goog.inherits(proto.tableSelect.UpdateTableNotify, jspb.Message);
    goog.DEBUG && !COMPILED && (proto.tableSelect.UpdateTableNotify.displayName = "proto.tableSelect.UpdateTableNotify");
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.tableSelect.GetTableInfoReq.prototype.toObject = function(opt_includeInstance) {
        return proto.tableSelect.GetTableInfoReq.toObject(opt_includeInstance, this);
      };
      proto.tableSelect.GetTableInfoReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          theme: jspb.Message.getFieldWithDefault(msg, 1, 0),
          room: jspb.Message.getFieldWithDefault(msg, 2, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.tableSelect.GetTableInfoReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.tableSelect.GetTableInfoReq();
      return proto.tableSelect.GetTableInfoReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.tableSelect.GetTableInfoReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setTheme(value);
          break;

         case 2:
          var value = reader.readEnum();
          msg.setRoom(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.tableSelect.GetTableInfoReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.tableSelect.GetTableInfoReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.tableSelect.GetTableInfoReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getTheme();
      0 !== f && writer.writeUint32(1, f);
      f = message.getRoom();
      0 !== f && writer.writeEnum(2, f);
    };
    proto.tableSelect.GetTableInfoReq.prototype.getTheme = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.tableSelect.GetTableInfoReq.prototype.setTheme = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.tableSelect.GetTableInfoReq.prototype.getRoom = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.tableSelect.GetTableInfoReq.prototype.setRoom = function(value) {
      return jspb.Message.setProto3EnumField(this, 2, value);
    };
    proto.tableSelect.GetTableInfoAck.repeatedFields_ = [ 4 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.tableSelect.GetTableInfoAck.prototype.toObject = function(opt_includeInstance) {
        return proto.tableSelect.GetTableInfoAck.toObject(opt_includeInstance, this);
      };
      proto.tableSelect.GetTableInfoAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          theme: jspb.Message.getFieldWithDefault(msg, 1, 0),
          room: jspb.Message.getFieldWithDefault(msg, 2, 0),
          ratio: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0),
          tablesList: jspb.Message.toObjectList(msg.getTablesList(), proto.tableSelect.Table.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.tableSelect.GetTableInfoAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.tableSelect.GetTableInfoAck();
      return proto.tableSelect.GetTableInfoAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.tableSelect.GetTableInfoAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setTheme(value);
          break;

         case 2:
          var value = reader.readEnum();
          msg.setRoom(value);
          break;

         case 3:
          var value = reader.readFloat();
          msg.setRatio(value);
          break;

         case 4:
          var value = new proto.tableSelect.Table();
          reader.readMessage(value, proto.tableSelect.Table.deserializeBinaryFromReader);
          msg.addTables(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.tableSelect.GetTableInfoAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.tableSelect.GetTableInfoAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.tableSelect.GetTableInfoAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getTheme();
      0 !== f && writer.writeUint32(1, f);
      f = message.getRoom();
      0 !== f && writer.writeEnum(2, f);
      f = message.getRatio();
      0 !== f && writer.writeFloat(3, f);
      f = message.getTablesList();
      f.length > 0 && writer.writeRepeatedMessage(4, f, proto.tableSelect.Table.serializeBinaryToWriter);
    };
    proto.tableSelect.GetTableInfoAck.prototype.getTheme = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.tableSelect.GetTableInfoAck.prototype.setTheme = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.tableSelect.GetTableInfoAck.prototype.getRoom = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.tableSelect.GetTableInfoAck.prototype.setRoom = function(value) {
      return jspb.Message.setProto3EnumField(this, 2, value);
    };
    proto.tableSelect.GetTableInfoAck.prototype.getRatio = function() {
      return jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0);
    };
    proto.tableSelect.GetTableInfoAck.prototype.setRatio = function(value) {
      return jspb.Message.setProto3FloatField(this, 3, value);
    };
    proto.tableSelect.GetTableInfoAck.prototype.getTablesList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.tableSelect.Table, 4);
    };
    proto.tableSelect.GetTableInfoAck.prototype.setTablesList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 4, value);
    };
    proto.tableSelect.GetTableInfoAck.prototype.addTables = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.tableSelect.Table, opt_index);
    };
    proto.tableSelect.GetTableInfoAck.prototype.clearTablesList = function() {
      return this.setTablesList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.tableSelect.JoinTableReq.prototype.toObject = function(opt_includeInstance) {
        return proto.tableSelect.JoinTableReq.toObject(opt_includeInstance, this);
      };
      proto.tableSelect.JoinTableReq.toObject = function(includeInstance, msg) {
        var f, obj = {
          theme: jspb.Message.getFieldWithDefault(msg, 1, 0),
          room: jspb.Message.getFieldWithDefault(msg, 2, 0),
          tableno: jspb.Message.getFieldWithDefault(msg, 3, 0),
          seatno: jspb.Message.getFieldWithDefault(msg, 4, 0),
          jointype: jspb.Message.getFieldWithDefault(msg, 5, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.tableSelect.JoinTableReq.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.tableSelect.JoinTableReq();
      return proto.tableSelect.JoinTableReq.deserializeBinaryFromReader(msg, reader);
    };
    proto.tableSelect.JoinTableReq.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setTheme(value);
          break;

         case 2:
          var value = reader.readEnum();
          msg.setRoom(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setTableno(value);
          break;

         case 4:
          var value = reader.readUint32();
          msg.setSeatno(value);
          break;

         case 5:
          var value = reader.readEnum();
          msg.setJointype(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.tableSelect.JoinTableReq.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.tableSelect.JoinTableReq.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.tableSelect.JoinTableReq.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getTheme();
      0 !== f && writer.writeUint32(1, f);
      f = message.getRoom();
      0 !== f && writer.writeEnum(2, f);
      f = message.getTableno();
      0 !== f && writer.writeUint32(3, f);
      f = message.getSeatno();
      0 !== f && writer.writeUint32(4, f);
      f = message.getJointype();
      0 !== f && writer.writeEnum(5, f);
    };
    proto.tableSelect.JoinTableReq.prototype.getTheme = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.tableSelect.JoinTableReq.prototype.setTheme = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.tableSelect.JoinTableReq.prototype.getRoom = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.tableSelect.JoinTableReq.prototype.setRoom = function(value) {
      return jspb.Message.setProto3EnumField(this, 2, value);
    };
    proto.tableSelect.JoinTableReq.prototype.getTableno = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.tableSelect.JoinTableReq.prototype.setTableno = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.tableSelect.JoinTableReq.prototype.getSeatno = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.tableSelect.JoinTableReq.prototype.setSeatno = function(value) {
      return jspb.Message.setProto3IntField(this, 4, value);
    };
    proto.tableSelect.JoinTableReq.prototype.getJointype = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.tableSelect.JoinTableReq.prototype.setJointype = function(value) {
      return jspb.Message.setProto3EnumField(this, 5, value);
    };
    proto.tableSelect.JoinTableAck.repeatedFields_ = [ 4 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.tableSelect.JoinTableAck.prototype.toObject = function(opt_includeInstance) {
        return proto.tableSelect.JoinTableAck.toObject(opt_includeInstance, this);
      };
      proto.tableSelect.JoinTableAck.toObject = function(includeInstance, msg) {
        var f, obj = {
          theme: jspb.Message.getFieldWithDefault(msg, 1, 0),
          room: jspb.Message.getFieldWithDefault(msg, 2, 0),
          seat: jspb.Message.getFieldWithDefault(msg, 3, 0),
          playersList: jspb.Message.toObjectList(msg.getPlayersList(), proto.tableSelect.Player.toObject, includeInstance),
          wagers: jspb.Message.getFieldWithDefault(msg, 5, 0),
          version: jspb.Message.getFieldWithDefault(msg, 6, 0),
          joinresult: jspb.Message.getFieldWithDefault(msg, 7, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.tableSelect.JoinTableAck.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.tableSelect.JoinTableAck();
      return proto.tableSelect.JoinTableAck.deserializeBinaryFromReader(msg, reader);
    };
    proto.tableSelect.JoinTableAck.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setTheme(value);
          break;

         case 2:
          var value = reader.readEnum();
          msg.setRoom(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         case 4:
          var value = new proto.tableSelect.Player();
          reader.readMessage(value, proto.tableSelect.Player.deserializeBinaryFromReader);
          msg.addPlayers(value);
          break;

         case 5:
          var value = reader.readInt64();
          msg.setWagers(value);
          break;

         case 6:
          var value = reader.readInt64();
          msg.setVersion(value);
          break;

         case 7:
          var value = reader.readEnum();
          msg.setJoinresult(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.tableSelect.JoinTableAck.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.tableSelect.JoinTableAck.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.tableSelect.JoinTableAck.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getTheme();
      0 !== f && writer.writeUint32(1, f);
      f = message.getRoom();
      0 !== f && writer.writeEnum(2, f);
      f = message.getSeat();
      0 !== f && writer.writeUint32(3, f);
      f = message.getPlayersList();
      f.length > 0 && writer.writeRepeatedMessage(4, f, proto.tableSelect.Player.serializeBinaryToWriter);
      f = message.getWagers();
      0 !== f && writer.writeInt64(5, f);
      f = message.getVersion();
      0 !== f && writer.writeInt64(6, f);
      f = message.getJoinresult();
      0 !== f && writer.writeEnum(7, f);
    };
    proto.tableSelect.JoinTableAck.prototype.getTheme = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.tableSelect.JoinTableAck.prototype.setTheme = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.tableSelect.JoinTableAck.prototype.getRoom = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.tableSelect.JoinTableAck.prototype.setRoom = function(value) {
      return jspb.Message.setProto3EnumField(this, 2, value);
    };
    proto.tableSelect.JoinTableAck.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.tableSelect.JoinTableAck.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.tableSelect.JoinTableAck.prototype.getPlayersList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.tableSelect.Player, 4);
    };
    proto.tableSelect.JoinTableAck.prototype.setPlayersList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 4, value);
    };
    proto.tableSelect.JoinTableAck.prototype.addPlayers = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.tableSelect.Player, opt_index);
    };
    proto.tableSelect.JoinTableAck.prototype.clearPlayersList = function() {
      return this.setPlayersList([]);
    };
    proto.tableSelect.JoinTableAck.prototype.getWagers = function() {
      return jspb.Message.getFieldWithDefault(this, 5, 0);
    };
    proto.tableSelect.JoinTableAck.prototype.setWagers = function(value) {
      return jspb.Message.setProto3IntField(this, 5, value);
    };
    proto.tableSelect.JoinTableAck.prototype.getVersion = function() {
      return jspb.Message.getFieldWithDefault(this, 6, 0);
    };
    proto.tableSelect.JoinTableAck.prototype.setVersion = function(value) {
      return jspb.Message.setProto3IntField(this, 6, value);
    };
    proto.tableSelect.JoinTableAck.prototype.getJoinresult = function() {
      return jspb.Message.getFieldWithDefault(this, 7, 0);
    };
    proto.tableSelect.JoinTableAck.prototype.setJoinresult = function(value) {
      return jspb.Message.setProto3EnumField(this, 7, value);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.tableSelect.Player.prototype.toObject = function(opt_includeInstance) {
        return proto.tableSelect.Player.toObject(opt_includeInstance, this);
      };
      proto.tableSelect.Player.toObject = function(includeInstance, msg) {
        var f, obj = {
          accountid: jspb.Message.getFieldWithDefault(msg, 1, 0),
          name: jspb.Message.getFieldWithDefault(msg, 2, ""),
          seat: jspb.Message.getFieldWithDefault(msg, 3, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.tableSelect.Player.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.tableSelect.Player();
      return proto.tableSelect.Player.deserializeBinaryFromReader(msg, reader);
    };
    proto.tableSelect.Player.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setAccountid(value);
          break;

         case 2:
          var value = reader.readString();
          msg.setName(value);
          break;

         case 3:
          var value = reader.readUint32();
          msg.setSeat(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.tableSelect.Player.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.tableSelect.Player.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.tableSelect.Player.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getAccountid();
      0 !== f && writer.writeUint32(1, f);
      f = message.getName();
      f.length > 0 && writer.writeString(2, f);
      f = message.getSeat();
      0 !== f && writer.writeUint32(3, f);
    };
    proto.tableSelect.Player.prototype.getAccountid = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.tableSelect.Player.prototype.setAccountid = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.tableSelect.Player.prototype.getName = function() {
      return jspb.Message.getFieldWithDefault(this, 2, "");
    };
    proto.tableSelect.Player.prototype.setName = function(value) {
      return jspb.Message.setProto3StringField(this, 2, value);
    };
    proto.tableSelect.Player.prototype.getSeat = function() {
      return jspb.Message.getFieldWithDefault(this, 3, 0);
    };
    proto.tableSelect.Player.prototype.setSeat = function(value) {
      return jspb.Message.setProto3IntField(this, 3, value);
    };
    proto.tableSelect.Table.repeatedFields_ = [ 2 ];
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.tableSelect.Table.prototype.toObject = function(opt_includeInstance) {
        return proto.tableSelect.Table.toObject(opt_includeInstance, this);
      };
      proto.tableSelect.Table.toObject = function(includeInstance, msg) {
        var f, obj = {
          tableno: jspb.Message.getFieldWithDefault(msg, 1, 0),
          playersList: jspb.Message.toObjectList(msg.getPlayersList(), proto.tableSelect.Player.toObject, includeInstance)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.tableSelect.Table.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.tableSelect.Table();
      return proto.tableSelect.Table.deserializeBinaryFromReader(msg, reader);
    };
    proto.tableSelect.Table.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setTableno(value);
          break;

         case 2:
          var value = new proto.tableSelect.Player();
          reader.readMessage(value, proto.tableSelect.Player.deserializeBinaryFromReader);
          msg.addPlayers(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.tableSelect.Table.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.tableSelect.Table.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.tableSelect.Table.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getTableno();
      0 !== f && writer.writeUint32(1, f);
      f = message.getPlayersList();
      f.length > 0 && writer.writeRepeatedMessage(2, f, proto.tableSelect.Player.serializeBinaryToWriter);
    };
    proto.tableSelect.Table.prototype.getTableno = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.tableSelect.Table.prototype.setTableno = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.tableSelect.Table.prototype.getPlayersList = function() {
      return jspb.Message.getRepeatedWrapperField(this, proto.tableSelect.Player, 2);
    };
    proto.tableSelect.Table.prototype.setPlayersList = function(value) {
      return jspb.Message.setRepeatedWrapperField(this, 2, value);
    };
    proto.tableSelect.Table.prototype.addPlayers = function(opt_value, opt_index) {
      return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.tableSelect.Player, opt_index);
    };
    proto.tableSelect.Table.prototype.clearPlayersList = function() {
      return this.setPlayersList([]);
    };
    if (jspb.Message.GENERATE_TO_OBJECT) {
      proto.tableSelect.UpdateTableNotify.prototype.toObject = function(opt_includeInstance) {
        return proto.tableSelect.UpdateTableNotify.toObject(opt_includeInstance, this);
      };
      proto.tableSelect.UpdateTableNotify.toObject = function(includeInstance, msg) {
        var f, obj = {
          theme: jspb.Message.getFieldWithDefault(msg, 1, 0),
          tableno: jspb.Message.getFieldWithDefault(msg, 2, 0),
          player: (f = msg.getPlayer()) && proto.tableSelect.Player.toObject(includeInstance, f),
          updatetype: jspb.Message.getFieldWithDefault(msg, 4, 0)
        };
        includeInstance && (obj.$jspbMessageInstance = msg);
        return obj;
      };
    }
    proto.tableSelect.UpdateTableNotify.deserializeBinary = function(bytes) {
      var reader = new jspb.BinaryReader(bytes);
      var msg = new proto.tableSelect.UpdateTableNotify();
      return proto.tableSelect.UpdateTableNotify.deserializeBinaryFromReader(msg, reader);
    };
    proto.tableSelect.UpdateTableNotify.deserializeBinaryFromReader = function(msg, reader) {
      while (reader.nextField()) {
        if (reader.isEndGroup()) break;
        var field = reader.getFieldNumber();
        switch (field) {
         case 1:
          var value = reader.readUint32();
          msg.setTheme(value);
          break;

         case 2:
          var value = reader.readUint32();
          msg.setTableno(value);
          break;

         case 3:
          var value = new proto.tableSelect.Player();
          reader.readMessage(value, proto.tableSelect.Player.deserializeBinaryFromReader);
          msg.setPlayer(value);
          break;

         case 4:
          var value = reader.readEnum();
          msg.setUpdatetype(value);
          break;

         default:
          reader.skipField();
        }
      }
      return msg;
    };
    proto.tableSelect.UpdateTableNotify.prototype.serializeBinary = function() {
      var writer = new jspb.BinaryWriter();
      proto.tableSelect.UpdateTableNotify.serializeBinaryToWriter(this, writer);
      return writer.getResultBuffer();
    };
    proto.tableSelect.UpdateTableNotify.serializeBinaryToWriter = function(message, writer) {
      var f = void 0;
      f = message.getTheme();
      0 !== f && writer.writeUint32(1, f);
      f = message.getTableno();
      0 !== f && writer.writeUint32(2, f);
      f = message.getPlayer();
      null != f && writer.writeMessage(3, f, proto.tableSelect.Player.serializeBinaryToWriter);
      f = message.getUpdatetype();
      0 !== f && writer.writeEnum(4, f);
    };
    proto.tableSelect.UpdateTableNotify.prototype.getTheme = function() {
      return jspb.Message.getFieldWithDefault(this, 1, 0);
    };
    proto.tableSelect.UpdateTableNotify.prototype.setTheme = function(value) {
      return jspb.Message.setProto3IntField(this, 1, value);
    };
    proto.tableSelect.UpdateTableNotify.prototype.getTableno = function() {
      return jspb.Message.getFieldWithDefault(this, 2, 0);
    };
    proto.tableSelect.UpdateTableNotify.prototype.setTableno = function(value) {
      return jspb.Message.setProto3IntField(this, 2, value);
    };
    proto.tableSelect.UpdateTableNotify.prototype.getPlayer = function() {
      return jspb.Message.getWrapperField(this, proto.tableSelect.Player, 3);
    };
    proto.tableSelect.UpdateTableNotify.prototype.setPlayer = function(value) {
      return jspb.Message.setWrapperField(this, 3, value);
    };
    proto.tableSelect.UpdateTableNotify.prototype.clearPlayer = function() {
      return this.setPlayer(void 0);
    };
    proto.tableSelect.UpdateTableNotify.prototype.hasPlayer = function() {
      return null != jspb.Message.getField(this, 3);
    };
    proto.tableSelect.UpdateTableNotify.prototype.getUpdatetype = function() {
      return jspb.Message.getFieldWithDefault(this, 4, 0);
    };
    proto.tableSelect.UpdateTableNotify.prototype.setUpdatetype = function(value) {
      return jspb.Message.setProto3EnumField(this, 4, value);
    };
    proto.tableSelect.UserToServer = {
      U2S_EMPTY: 0,
      U2S_GET_TABLE_INFO_REQ: 129,
      U2S_JOIN_TABLE_REQ: 130
    };
    proto.tableSelect.ServerToUser = {
      S2U_EMPTY: 0,
      S2U_GET_TABLE_INFO_ACK: 129,
      S2U_JOIN_TABLE_ACK: 130,
      S2U_UPDATE_TABLE_NOTIFY: 131,
      S2U_UPDATE_TABLE_INFO_NOTIFY: 132
    };
    proto.tableSelect.JoinResult = {
      JR_SUCCESS: 0,
      JR_SEAT_TAKEN: 1,
      JR_INSUFFICIENT_MONEY: 2,
      JR_UNKNOWN: 3
    };
    proto.tableSelect.TableUpdateType = {
      JOIN: 0,
      LEAVE: 1
    };
    proto.tableSelect.RoomType = {
      MULTI: 0,
      SINGLE: 1
    };
    proto.tableSelect.JoinType = {
      AUTOMATIC: 0,
      SEAT: 1
    };
    goog.object.extend(exports, proto.tableSelect);
    cc._RF.pop();
  }, {
    "./../../libs/MT3SETB-google-protobuf": "MT3SETB-google-protobuf"
  } ],
  "MT3SETB-timeline": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "a33bdCaNLpHGqVjmQxFQPjs", "MT3SETB-timeline");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.CheckTimeLineEnd = exports.PauseTimeLine = exports.AddTimeLine_Client = exports.AddTimeLine = exports.checkFishDead = exports.getEventLength = exports.getRawEventLength = exports.getPathMoveMgr = exports.StopTimeLine = exports.UpdateTimeLine = exports.AddSingleFish = exports.AddNotifyEvent = exports.NotifyFishGroup = exports.NotifySceneInfo = exports.GetTimeLine2 = exports.GetTimeLine = exports.InitTimelineBin = exports.InitTimeline = exports.TimeLine = void 0;
    const MT3SETB_script_1 = require("./MT3SETB-script");
    const MT3SETB_websocket_1 = require("./MT3SETB-websocket");
    const MT3SETB_script_v2_1 = require("./MT3SETB-script_v2");
    const MT3SETB_SplineUtil_1 = require("../../gameplay/Movement/MT3SETB-SplineUtil");
    const MT3SETB_mtf_pb_wrapper_1 = require("./MT3SETB-mtf_pb_wrapper");
    const MT3SETB_mtfPath_pb_wrapper_1 = require("./MT3SETB-mtfPath_pb_wrapper");
    const NormalFishEndtime = 1e3;
    class TimeLine {
      constructor() {
        this.enable = false;
        this.checkServer = true;
        this.serial = 0;
        this.script = null;
        this.time = 0;
        this.serverTime = 0;
        this.pauseTime = 0;
        this.lastDt = 0;
        this.pathMoveMgr = new cc.ActionManager();
        this.dead = [];
        this.curTime = 0;
      }
      update(e) {
        this.curTime += e;
        this.pauseTime > 0 ? this.pauseTime -= e : this.serverTime += e;
        return this.enable ? (this.lastDt = this.serverTime - this.time, this.time = this.serverTime, 
        this.lastDt) : 0;
      }
      updatePathMoveMgr(e) {
        if (this.pauseTime > 0) return;
        for (;e > 0; e -= .25) {
          if (this.pauseTime > 0) break;
          this.pathMoveMgr.update(Math.min(e, .25));
        }
      }
      EmitEvents() {
        var e = this, t = this.script.EmitEvents(this.time);
        t.forEach(function(t) {
          t.delay = Math.max(t.time - (e.time - e.lastDt), 0);
        });
        return t;
      }
      GetRawEvent() {
        var e = this;
        return this.enable ? this.script.GetRawEvent().filter(function(t) {
          return !(t.time + t.data.duration < e.serverTime);
        }) : [];
      }
      AddEvent(e) {
        this.script.AddEvent(e);
      }
    }
    exports.TimeLine = TimeLine;
    var s = null;
    function _getTimeline() {
      return null == s.script ? null : s;
    }
    const InitTimeline = function(pathJson) {
      s = new TimeLine();
      this.paths = {};
      for (let i in pathJson.lines) {
        let line = pathJson.lines[i];
        let isCircleCountDown = 0;
        let circleInfo = null;
        let points = [];
        for (let i = 0; i < line.points.length; ++i) {
          let num = line.points[i].numSegments;
          if (line.checkCirclePath && (line.isLoop || i + 3 < line.points.length)) {
            let pts;
            pts = line.isLoop ? [ line.points[i], line.points[(i + 1) % line.points.length], line.points[(i + 2) % line.points.length], line.points[(i + 3) % line.points.length] ] : [ line.points[i], line.points[i + 1], line.points[i + 2], line.points[i + 3] ];
            if (MT3SETB_SplineUtil_1.SplineUtil.isCircularArc(pts)) {
              isCircleCountDown = 3;
              circleInfo = MT3SETB_SplineUtil_1.SplineUtil.fitCircle(pts);
            }
          }
          isCircleCountDown <= 0 && (circleInfo = null);
          if (circleInfo) {
            let pt0, pt1;
            if (line.isLoop) {
              pt0 = line.points[i];
              pt1 = line.points[(i + 1) % line.points.length];
            } else {
              pt0 = line.points[i];
              pt1 = line.points[i + 1];
            }
            let rStart = Math.atan2(pt0.y - circleInfo.cy, pt0.x - circleInfo.cx);
            let rEnd = Math.atan2(pt1.y - circleInfo.cy, pt1.x - circleInfo.cx);
            for (let j = 0; j < num; ++j) {
              let rad = MT3SETB_SplineUtil_1.SplineUtil.interpolateAngle(rStart, rEnd, j / num);
              let pt = cc.v3(circleInfo.cx + circleInfo.r * Math.cos(rad), circleInfo.cy + circleInfo.r * Math.sin(rad));
              points.push(pt);
            }
            isCircleCountDown--;
            continue;
          }
          for (let j = 0; j < num; ++j) {
            let t = (i + j / num) / line.points.length;
            let pt;
            pt = line.isLoop ? MT3SETB_SplineUtil_1.SplineUtil.SplineLoop(line.points, t) : MT3SETB_SplineUtil_1.SplineUtil.Spline(line.points, t);
            points.push(pt);
          }
        }
        let waypoints = [];
        for (let i = 0; i < points.length; ++i) {
          let pt0 = points[i];
          let pt1 = points[i + 1] || points[i];
          let v = pt1.sub(pt0);
          waypoints.push({
            point: pt0,
            direction: v.normalize(),
            distance: v.mag()
          });
        }
        this.paths[line.name] = {
          name: line.name,
          originPts: line.points,
          points: waypoints,
          isLoop: line.isLoop
        };
      }
      if (null === s.script) {
        s.script = new MT3SETB_script_v2_1.ScriptV2();
        s.script.endTime = NormalFishEndtime;
      }
    };
    exports.InitTimeline = InitTimeline;
    const InitTimelineBin = function(path) {
      s = new TimeLine();
      this.paths = {};
      let p = MT3SETB_mtfPath_pb_wrapper_1.mtfPath.Pathway.decode(new Uint8Array(path._buffer));
      for (let i in p.lines) {
        let line = p.lines[i];
        this.paths[line.name] = line;
        let dist = 0;
        for (let i = 1; i < line.points.length; ++i) {
          let x = line.points[i].x - line.points[i - 1].x;
          let y = line.points[i].y - line.points[i - 1].y;
          let z = line.points[i].z - line.points[i - 1].z;
          dist += Math.sqrt(x * x + y * y + z * z);
        }
        line["distance"] = dist;
      }
      if (null === s.script) {
        s.script = new MT3SETB_script_v2_1.ScriptV2();
        s.script.endTime = NormalFishEndtime;
      }
    };
    exports.InitTimelineBin = InitTimelineBin;
    exports.GetTimeLine = _getTimeline;
    const GetTimeLine2 = function() {
      return s;
    };
    exports.GetTimeLine2 = GetTimeLine2;
    const NotifySceneInfo = function(e) {
      if (s.checkServer) {
        s.script.rawEvent.push({
          name: "changeBg",
          time: 0,
          data: {
            bgIndex: e.bgIndex,
            forced: true,
            startGame: true,
            animName: e.bgAnim,
            loops: e.bgAnimLoop
          }
        });
        e.bgm && s.script.rawEvent.push({
          name: "switchBgMusic",
          time: 0,
          data: {
            musicName: e.bgm
          }
        });
      }
    };
    exports.NotifySceneInfo = NotifySceneInfo;
    const NotifyFishGroup = function(e) {
      if (s.checkServer) {
        false;
        if (e.showTransition) {
          s.serial = e.serial;
          s.script.endTime = 0;
          s.script.event = [];
          s.dead = [];
          s.script.rawEvent.push({
            name: "waves",
            time: 0,
            data: {}
          });
        } else s.script.rawEvent.push({
          name: "changeBg",
          time: 0,
          data: {
            bgIndex: e.bgIndex,
            forced: true,
            startGame: true
          }
        });
      }
    };
    exports.NotifyFishGroup = NotifyFishGroup;
    const AddNotifyEvent = function(event) {
      switch (event.event) {
       case 2:
        s.script.rawEvent.push({
          name: "changeBg",
          time: event.time + .25,
          data: event.switchBG
        });
        break;

       case 4:
        s.script.rawEvent.push({
          name: "playBgAnim",
          time: event.time,
          data: event.playBgAnim
        });
        break;

       case 6:
        s.script.rawEvent.push({
          name: "specialBossNotify",
          time: event.time,
          data: event.specialBossNotify
        });
        break;

       case 7:
        s.script.rawEvent.push({
          name: "switchBgMusic",
          time: event.time,
          data: event.switchBgMusic
        });
        break;

       case 8:
        s.script.rawEvent.push({
          name: "shake",
          time: event.time,
          data: event.shake
        });
        break;

       case 9:
        s.script.rawEvent.push({
          name: "bossWarning",
          time: event.time,
          data: event.bossWarning
        });
      }
    };
    exports.AddNotifyEvent = AddNotifyEvent;
    const AddSingleFish = function(e) {
      if (s.checkServer) {
        s.serverTime = e.time / 1e3;
        let indices = {};
        for (let fish of e.list) {
          var d = -1, p = -1, h = void 0, idx = indices[fish.fishWay || "normal"] || 0;
          let pathData = this.paths[fish.fishWay];
          if (!pathData) {
            console.warn("no path data find for", fish.fishWay);
            continue;
          }
          let subpath = fish.subPath;
          subpath && (subpath["pathData"] = this.paths[subpath.pathway]);
          let startTime = fish.startTime;
          let endTime = fish.endTime;
          let duration = fish.endTime - startTime;
          var newFish = {
            idx: idx,
            id: fish.fishTag,
            no: fish.fishId,
            childId: fish.groupFishId,
            odds: fish.odds,
            startTime: fish.startTime,
            endTime: endTime,
            flip: s.flip,
            mirror: s.mirror,
            followerData: null,
            pathData: pathData,
            moveSpeed: fish.speed,
            delay: fish.fishDelay / 1e3,
            rotation: fish.roat,
            duration: duration,
            offset: {
              x: fish.offsetX || 0,
              y: fish.offsetY || 0
            },
            subPath: fish.subPath,
            action: fish.action,
            createParams: fish.createParams,
            isFaker: false
          };
          indices[fish.fishWay || "normal"] = idx + 1;
          null == h && (h = newFish);
          this.checkFishDead(fish.fishTag) || s.script.rawEvent.push({
            name: "addfish",
            time: startTime,
            data: newFish
          });
        }
        s.serial = e.serial;
      }
    };
    exports.AddSingleFish = AddSingleFish;
    const UpdateTimeLine = function(e) {
      if (s.checkServer) {
        s.serverTime = e.time / 1e3;
        s.pauseTime = e.pause / 1e3;
        s.dead = e.dead;
        if (e.serial != s.serial) {
          s.script = MT3SETB_script_1.CreateScript(e.group);
          s.serial = e.serial;
          return void (s.time = 0);
        }
        e.group.length > s.script.GetGroup().length && e.group.slice(s.script.GetGroup().length).forEach(function(e) {
          s.script.AddGroup(e);
        });
      }
    };
    exports.UpdateTimeLine = UpdateTimeLine;
    const StopTimeLine = function() {
      s.serial = 0;
      s.enable = false;
    };
    exports.StopTimeLine = StopTimeLine;
    const getPathMoveMgr = function() {
      return s.pathMoveMgr;
    };
    exports.getPathMoveMgr = getPathMoveMgr;
    const getRawEventLength = function() {
      return _getTimeline().script.getRawEventLength();
    };
    exports.getRawEventLength = getRawEventLength;
    const getEventLength = function() {
      return _getTimeline().script.getEventLength();
    };
    exports.getEventLength = getEventLength;
    const checkFishDead = function(e) {
      return s.dead.indexOf(e) >= 0;
    };
    exports.checkFishDead = checkFishDead;
    const AddTimeLine = function(e) {
      var t = new MT3SETB_mtf_pb_wrapper_1.mtf.TimelineAdd();
      t.group = e;
      var o = MT3SETB_mtf_pb_wrapper_1.mtf.TimelineAdd.encode(t);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_TIMELINE_ADD_REQ, o);
    };
    exports.AddTimeLine = AddTimeLine;
    const AddTimeLine_Client = function(e) {
      var t = {
        group: e,
        time: s.time
      };
      s.script && s.script.AddGroup(t, false);
    };
    exports.AddTimeLine_Client = AddTimeLine_Client;
    const PauseTimeLine = function(e) {
      var t = new MT3SETB_mtf_pb_wrapper_1.mtf.TimelinePause();
      t.pause = e;
      var o = MT3SETB_mtf_pb_wrapper_1.mtf.TimelinePause.encode(t);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_TIMELINE_PAUSE_REQ, o);
    };
    exports.PauseTimeLine = PauseTimeLine;
    const CheckTimeLineEnd = function(e) {
      return null == s.script || s.script.endTime - s.time < e;
    };
    exports.CheckTimeLineEnd = CheckTimeLineEnd;
    cc._RF.pop();
  }, {
    "../../gameplay/Movement/MT3SETB-SplineUtil": "MT3SETB-SplineUtil",
    "./MT3SETB-mtfPath_pb_wrapper": "MT3SETB-mtfPath_pb_wrapper",
    "./MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-script": "MT3SETB-script",
    "./MT3SETB-script_v2": "MT3SETB-script_v2",
    "./MT3SETB-websocket": "MT3SETB-websocket"
  } ],
  "MT3SETB-track": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e20adYt1C9L4bMNc7P1UAoO", "MT3SETB-track");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.Button_Log = exports.Login_Event = exports.SendException = exports.SendButton = exports.SendEvent = exports.trackingInit = void 0;
    const MT3SETB_platform_1 = require("./MT3SETB-platform");
    var r = 0, s = 0, c = [ 0, 0 ], l = [ "", "" ], u = 0, d = [], p = [], h = [], f = [], m = [];
    console.log("v.5077");
    const trackingInit = function() {
      switch (cc.sys.browserType) {
       case cc.sys.BROWSER_TYPE_CHROME:
        r = 1;
        break;

       case cc.sys.BROWSER_TYPE_SAFARI:
        r = 2;
        break;

       case cc.sys.BROWSER_TYPE_IE:
        r = 3;
        break;

       case cc.sys.BROWSER_TYPE_UC:
        r = 4;
        break;

       case cc.sys.BROWSER_TYPE_MOBILE_QQ:
       case cc.sys.BROWSER_TYPE_QQ:
       case "qq":
        r = 5;
      }
      switch (cc.sys.os) {
       case cc.sys.OS_ANDROID:
        s = 1;
        break;

       case cc.sys.OS_IOS:
        s = 2;
        break;

       case cc.sys.OS_WINDOWS:
        s = 3;
      }
      d[Login_Event.GAME_LOADING] = 1;
      d[Login_Event.GAME_MAIN_STAGE] = 1;
      d[Login_Event.GAME_MAIN_SPIN] = 1;
      d[Login_Event.LOGIN_GAME] = 1;
      d[Login_Event.LOGIN_GAME_END] = 1;
      d[Login_Event.LOGIN_GAP] = 1;
      d[Login_Event.LOGIN_GAP_END] = 1;
      h[Login_Event.LOGIN_GAME] = Login_Event.GAME_RELOGIN;
      h[Login_Event.LOGIN_GAME_END] = Login_Event.GAME_RELOGIN_END;
      p[Button_Log.Button_lobby_Room_BeforeLoading] = 1;
      p[Button_Log.State_game_loss_gapAck] = 1;
      p[Button_Log.State_game_loss_gapReq_success] = 1;
      p[Button_Log.State_game_loss_gsAck] = 1;
      p[Button_Log.State_game_loss_gsReq_success] = 1;
      p[Button_Log.State_game_loss_gsReq_duplicate] = 1;
      p[Button_Log.State_game_loss_gsReq_invalid] = 1;
      p[Button_Log.State_game_loss_gsReq_full] = 1;
      p[Button_Log.State_game_loss_gsReq_maintain] = 1;
      p[Button_Log.State_game_loss_gsReq_fail] = 1;
      p[Button_Log.State_game_loss_loading] = 1;
      p[Button_Log.State_game_loss_mainScene] = 1;
      p[Button_Log.Button_game_skinFire] = 1;
      p[Button_Log.Buttom_game_firstSpin] = 1;
      p[Button_Log.Buttom_game_themeTeach] = 1;
      p[Button_Log.Buttom_game_roomReq] = 1;
      p[Button_Log.Buttom_game_Turbo] = 1;
      p[Button_Log.Error_CrazyCancle] = 1;
      p[Button_Log.Error_HasShootNoHit] = 1;
      for (var e = Button_Log.State_Game_Novice1; e <= Button_Log.State_Game_Novice28; ++e) p[e] = 1;
      f[Button_Log.State_game_loss_gsAck] = Button_Log.State_game_loss_gsAck_re;
      f[Button_Log.State_game_loss_gsReq_success] = Button_Log.State_game_loss_gsReq_resuccess;
      f[Button_Log.State_game_loss_gsReq_duplicate] = Button_Log.State_game_loss_gsReq_reduplicate;
      f[Button_Log.State_game_loss_gsReq_invalid] = Button_Log.State_game_loss_gsReq_reinvalid;
      f[Button_Log.State_game_loss_gsReq_full] = Button_Log.State_game_loss_gsReq_refull;
      f[Button_Log.State_game_loss_gsReq_maintain] = Button_Log.State_game_loss_gsReq_remaintain;
      f[Button_Log.State_game_loss_gsReq_fail] = Button_Log.State_game_loss_gsReq_refail;
      m[Button_Log.State_game_loss_beforeunload] = Button_Log.State_game_loss_breakLine;
      m[Button_Log.State_game_loss_breakLine] = Button_Log.State_game_loss_beforeunload;
    };
    exports.trackingInit = trackingInit;
    const SendEvent = function(e, t) {
      if (!MT3SETB_platform_1.isDemo()) {
        if (d[e]) d[e] = 0; else if (h[e]) e = h[e]; else if (0 === d[e]) return;
        var o = 0;
        t && (o = t);
        var n = new MT3SETB_platform_1.EventLog();
        n.EventID = e;
        n.EventStatus = o;
        n.GameVersion = 5077;
        n.BrowserSystem = r;
        n.DeviceSystem = s;
        MT3SETB_platform_1.SendEventLog(n).catch();
      }
    };
    exports.SendEvent = SendEvent;
    const SendButton = function(e, t, o) {
      if (!MT3SETB_platform_1.isDemo() && true !== isNaN(e)) {
        if (p[e]) p[e] = 0, m[e] && (p[m[e]] = 0); else if (f[e]) e = f[e]; else if (0 === p[e]) return;
        switch (e) {
         case Button_Log.Button_lobby_Room_BeforeLoading:
         case Button_Log.State_game_loss_creator:
         case Button_Log.State_game_loss_gapAck:
         case Button_Log.State_game_loss_gapReq_success:
         case Button_Log.State_game_loss_gapReq_status:
         case Button_Log.State_game_loss_gapReq_response:
         case Button_Log.State_game_loss_gapReq_error:
         case Button_Log.State_game_loss_gsAck:
         case Button_Log.State_game_loss_gsReq_success:
         case Button_Log.State_game_loss_gsReq_duplicate:
         case Button_Log.State_game_loss_gsReq_invalid:
         case Button_Log.State_game_loss_gsReq_full:
         case Button_Log.State_game_loss_gsReq_maintain:
         case Button_Log.State_game_loss_gsReq_fail:
         case Button_Log.State_game_loss_loading:
         case Button_Log.State_game_loss_mainScene:
         case Button_Log.State_game_loss_gsAck_re:
         case Button_Log.State_game_loss_gsReq_resuccess:
         case Button_Log.State_game_loss_gsReq_reduplicate:
         case Button_Log.State_game_loss_gsReq_reinvalid:
         case Button_Log.State_game_loss_gsReq_refull:
         case Button_Log.State_game_loss_gsReq_remaintain:
         case Button_Log.State_game_loss_gsReq_refail:
          u = e;
          break;

         case Button_Log.State_Game_Novice1:
         case Button_Log.State_Game_Novice2:
         case Button_Log.State_Game_Novice3:
         case Button_Log.State_Game_Novice4:
         case Button_Log.State_Game_Novice5:
         case Button_Log.State_Game_Novice6:
         case Button_Log.State_Game_Novice7:
         case Button_Log.State_Game_Novice8:
         case Button_Log.State_Game_Novice9:
         case Button_Log.State_Game_Novice10:
         case Button_Log.State_Game_Novice11:
         case Button_Log.State_Game_Novice12:
         case Button_Log.State_Game_Novice13:
         case Button_Log.State_Game_Novice14:
         case Button_Log.State_Game_Novice15:
         case Button_Log.State_Game_Novice16:
         case Button_Log.State_Game_Novice17:
         case Button_Log.State_Game_Novice18:
         case Button_Log.State_Game_Novice19:
         case Button_Log.State_Game_Novice20:
         case Button_Log.State_Game_Novice21:
          u = e;
        }
        e !== Button_Log.State_game_loss_beforeunload && e !== Button_Log.State_game_loss_breakLine || (t = u.toString());
        if (e >= Button_Log.State_Game_Novice23 && e <= Button_Log.State_Game_Novice28) {
          if (!p[Button_Log.State_Game_Novice20]) return;
          t = u.toString();
        }
        if (e == Button_Log.Button_game_giveup || e == Button_Log.Buttom_game_spinAck || e == Button_Log.Button_game_Redeem_btn || e == Button_Log.Buttom_game_gameStart || e == Button_Log.Buttom_game_gameEnd || e == Button_Log.Buttom_game_dealAck || e == Button_Log.Buttom_game_ballStop || e == Button_Log.Buttom_game_buyBall || e == Button_Log.State_game_nextAck || c[0] !== e && c[1] !== e) {
          c[0] = c[1];
          c[1] = e;
          var n = new MT3SETB_platform_1.ButtonLog();
          n.EventNo = e;
          n.EventValue = t;
          n.GameVersion = 5077;
          n.BrowserSystem = r;
          n.DeviceSystem = s;
          n.Screen = o;
          MT3SETB_platform_1.SendButtonLog(n).catch();
        }
      }
    };
    exports.SendButton = SendButton;
    const SendException = function(e) {
      if (!MT3SETB_platform_1.isDemo() && l[0] !== e && l[1] !== e) {
        l[0] = l[1];
        l[1] = e;
        var t = new MT3SETB_platform_1.ErrorLog();
        t.ErrorLog = e;
        t.GameVersion = 5077;
        t.BrowserSystem = r;
        t.DeviceSystem = s;
        MT3SETB_platform_1.SendErrorLog(t);
      }
    };
    exports.SendException = SendException;
    var Login_Event;
    (function(Login_Event) {
      Login_Event[Login_Event["GameStart"] = 0] = "GameStart";
      Login_Event[Login_Event["Lobby"] = 1] = "Lobby";
      Login_Event[Login_Event["Preload"] = 2] = "Preload";
      Login_Event[Login_Event["Game"] = 3] = "Game";
      Login_Event[Login_Event["LAUNCH"] = 100] = "LAUNCH";
      Login_Event[Login_Event["LOGIN_GAP"] = 200] = "LOGIN_GAP";
      Login_Event[Login_Event["LOGIN_GAP_END"] = 201] = "LOGIN_GAP_END";
      Login_Event[Login_Event["LOGIN_GAME"] = 300] = "LOGIN_GAME";
      Login_Event[Login_Event["LOGIN_GAME_END"] = 301] = "LOGIN_GAME_END";
      Login_Event[Login_Event["GAME_LOADING"] = 400] = "GAME_LOADING";
      Login_Event[Login_Event["GAME_MAIN_STAGE"] = 500] = "GAME_MAIN_STAGE";
      Login_Event[Login_Event["GAME_MAIN_SPIN"] = 600] = "GAME_MAIN_SPIN";
      Login_Event[Login_Event["GAME_RELOGIN"] = 900] = "GAME_RELOGIN";
      Login_Event[Login_Event["GAME_RELOGIN_END"] = 901] = "GAME_RELOGIN_END";
    })(Login_Event = exports.Login_Event || (exports.Login_Event = {}));
    var Button_Log;
    (function(Button_Log) {
      Button_Log[Button_Log["Mode_webgl"] = 10] = "Mode_webgl";
      Button_Log[Button_Log["Mode_canvas"] = 11] = "Mode_canvas";
      Button_Log[Button_Log["Mode_lobby_webgl"] = 12] = "Mode_lobby_webgl";
      Button_Log[Button_Log["Mode_lobby_canvas"] = 13] = "Mode_lobby_canvas";
      Button_Log[Button_Log["Mode_hyml_script"] = 21] = "Mode_hyml_script";
      Button_Log[Button_Log["Mode_html_lodaingS"] = 22] = "Mode_html_lodaingS";
      Button_Log[Button_Log["Mode_html_lodaingE"] = 23] = "Mode_html_lodaingE";
      Button_Log[Button_Log["Button_event"] = 100] = "Button_event";
      Button_Log[Button_Log["Button_lobby_paytableOn"] = 111] = "Button_lobby_paytableOn";
      Button_Log[Button_Log["Button_lobby_official"] = 112] = "Button_lobby_official";
      Button_Log[Button_Log["Button_lobby_eventpage"] = 113] = "Button_lobby_eventpage";
      Button_Log[Button_Log["Button_lobby_soundOn"] = 121] = "Button_lobby_soundOn";
      Button_Log[Button_Log["Button_lobby_soundOff"] = 122] = "Button_lobby_soundOff";
      Button_Log[Button_Log["Button_lobby_effectOn"] = 131] = "Button_lobby_effectOn";
      Button_Log[Button_Log["Button_lobby_effectOff"] = 132] = "Button_lobby_effectOff";
      Button_Log[Button_Log["Button_lobby_ReportOn"] = 141] = "Button_lobby_ReportOn";
      Button_Log[Button_Log["Button_lobby_ReportOff"] = 142] = "Button_lobby_ReportOff";
      Button_Log[Button_Log["Button_lobby_eventOn"] = 143] = "Button_lobby_eventOn";
      Button_Log[Button_Log["Button_lobby_introOn"] = 144] = "Button_lobby_introOn";
      Button_Log[Button_Log["Button_lobby_introOn_Pig"] = 145] = "Button_lobby_introOn_Pig";
      Button_Log[Button_Log["Button_lobby_Room_Newbie"] = 151] = "Button_lobby_Room_Newbie";
      Button_Log[Button_Log["Button_lobby_Room_Expert"] = 152] = "Button_lobby_Room_Expert";
      Button_Log[Button_Log["Button_lobby_Room_Master"] = 153] = "Button_lobby_Room_Master";
      Button_Log[Button_Log["Button_lobby_Room_Single"] = 154] = "Button_lobby_Room_Single";
      Button_Log[Button_Log["Button_lobby_Room_BeforeLoading"] = 155] = "Button_lobby_Room_BeforeLoading";
      Button_Log[Button_Log["Button_game_toolOn"] = 161] = "Button_game_toolOn";
      Button_Log[Button_Log["Button_game_toolOff"] = 162] = "Button_game_toolOff";
      Button_Log[Button_Log["Button_game_toolOff_auto"] = 163] = "Button_game_toolOff_auto";
      Button_Log[Button_Log["Button_game_tool_paytableOn"] = 171] = "Button_game_tool_paytableOn";
      Button_Log[Button_Log["Button_game_tool_soundOn"] = 181] = "Button_game_tool_soundOn";
      Button_Log[Button_Log["Button_game_tool_soundOff"] = 182] = "Button_game_tool_soundOff";
      Button_Log[Button_Log["Button_game_tool_effectOn"] = 183] = "Button_game_tool_effectOn";
      Button_Log[Button_Log["Button_game_tool_effectOff"] = 184] = "Button_game_tool_effectOff";
      Button_Log[Button_Log["Button_game_tool_JPOn"] = 191] = "Button_game_tool_JPOn";
      Button_Log[Button_Log["Button_game_tool_JPOff"] = 192] = "Button_game_tool_JPOff";
      Button_Log[Button_Log["Button_game_tool_leave"] = 201] = "Button_game_tool_leave";
      Button_Log[Button_Log["Button_game_switch_room1"] = 202] = "Button_game_switch_room1";
      Button_Log[Button_Log["Button_game_switch_room2"] = 203] = "Button_game_switch_room2";
      Button_Log[Button_Log["Button_game_switch_room3"] = 204] = "Button_game_switch_room3";
      Button_Log[Button_Log["Button_game_bet_increase"] = 211] = "Button_game_bet_increase";
      Button_Log[Button_Log["Button_game_bet_decrease"] = 212] = "Button_game_bet_decrease";
      Button_Log[Button_Log["Button_game_bet_switch"] = 213] = "Button_game_bet_switch";
      Button_Log[Button_Log["Button_game_fire_autoOn"] = 221] = "Button_game_fire_autoOn";
      Button_Log[Button_Log["Button_game_fire_autoOff"] = 222] = "Button_game_fire_autoOff";
      Button_Log[Button_Log["Button_game_fire_lockOn"] = 223] = "Button_game_fire_lockOn";
      Button_Log[Button_Log["Button_game_fire_lockOff"] = 224] = "Button_game_fire_lockOff";
      Button_Log[Button_Log["Button_game_fire_autoStart"] = 225] = "Button_game_fire_autoStart";
      Button_Log[Button_Log["Button_game_fire_selectAll"] = 226] = "Button_game_fire_selectAll";
      Button_Log[Button_Log["Button_game_fire_reSelectAll"] = 227] = "Button_game_fire_reSelectAll";
      Button_Log[Button_Log["Button_game_fire_addShoot"] = 228] = "Button_game_fire_addShoot";
      Button_Log[Button_Log["Button_game_fire_subShoot"] = 229] = "Button_game_fire_subShoot";
      Button_Log[Button_Log["Button_game_fire_addCoin"] = 230] = "Button_game_fire_addCoin";
      Button_Log[Button_Log["Button_game_fire_subCoin"] = 231] = "Button_game_fire_subCoin";
      Button_Log[Button_Log["Button_game_fire_chooseOdds"] = 232] = "Button_game_fire_chooseOdds";
      Button_Log[Button_Log["Button_game_fire_chooseShoot"] = 233] = "Button_game_fire_chooseShoot";
      Button_Log[Button_Log["Button_game_fire_chooseCoin"] = 234] = "Button_game_fire_chooseCoin";
      Button_Log[Button_Log["Button_game_fire_autoEnd"] = 235] = "Button_game_fire_autoEnd";
      Button_Log[Button_Log["Button_game_fire_autoFire"] = 236] = "Button_game_fire_autoFire";
      Button_Log[Button_Log["Button_game_fire_autoTorped"] = 237] = "Button_game_fire_autoTorped";
      Button_Log[Button_Log["Button_game_fire_noChoose"] = 238] = "Button_game_fire_noChoose";
      Button_Log[Button_Log["Button_game_fire_onlyLow"] = 239] = "Button_game_fire_onlyLow";
      Button_Log[Button_Log["Button_paytab_page1"] = 241] = "Button_paytab_page1";
      Button_Log[Button_Log["Button_paytab_page2"] = 242] = "Button_paytab_page2";
      Button_Log[Button_Log["Button_paytab_page3"] = 243] = "Button_paytab_page3";
      Button_Log[Button_Log["Button_paytab_off"] = 244] = "Button_paytab_off";
      Button_Log[Button_Log["Button_game_redenvelope_click"] = 251] = "Button_game_redenvelope_click";
      Button_Log[Button_Log["Button_game_redenvelope_auto"] = 252] = "Button_game_redenvelope_auto";
      Button_Log[Button_Log["Button_game_redenvelope_banner"] = 253] = "Button_game_redenvelope_banner";
      Button_Log[Button_Log["Button_game_wheel_click"] = 261] = "Button_game_wheel_click";
      Button_Log[Button_Log["Button_game_wheel_auto"] = 262] = "Button_game_wheel_auto";
      Button_Log[Button_Log["Button_game_stone_click"] = 271] = "Button_game_stone_click";
      Button_Log[Button_Log["Button_game_stone_auto"] = 272] = "Button_game_stone_auto";
      Button_Log[Button_Log["Load_lobby_time"] = 281] = "Load_lobby_time";
      Button_Log[Button_Log["Load_game_time"] = 282] = "Load_game_time";
      Button_Log[Button_Log["Load_game_LogoPage_time"] = 283] = "Load_game_LogoPage_time";
      Button_Log[Button_Log["Load_game_ssoKey_time"] = 284] = "Load_game_ssoKey_time";
      Button_Log[Button_Log["State_delay_time"] = 291] = "State_delay_time";
      Button_Log[Button_Log["State_break_time_inPage"] = 292] = "State_break_time_inPage";
      Button_Log[Button_Log["State_break_time_outPage"] = 293] = "State_break_time_outPage";
      Button_Log[Button_Log["State_wait_time"] = 294] = "State_wait_time";
      Button_Log[Button_Log["State_Game_Version"] = 301] = "State_Game_Version";
      Button_Log[Button_Log["State_Game_coinback"] = 311] = "State_Game_coinback";
      Button_Log[Button_Log["State_Game_fakeFish"] = 312] = "State_Game_fakeFish";
      Button_Log[Button_Log["State_Game_createFishFail"] = 313] = "State_Game_createFishFail";
      Button_Log[Button_Log["State_Game_mustLogout"] = 314] = "State_Game_mustLogout";
      Button_Log[Button_Log["State_Auto_inGame_first"] = 322] = "State_Auto_inGame_first";
      Button_Log[Button_Log["Button_game_Nuke"] = 331] = "Button_game_Nuke";
      Button_Log[Button_Log["Button_game_Gold_bomb"] = 332] = "Button_game_Gold_bomb";
      Button_Log[Button_Log["Button_game_ReadyToShootA"] = 333] = "Button_game_ReadyToShootA";
      Button_Log[Button_Log["Button_game_Clam"] = 334] = "Button_game_Clam";
      Button_Log[Button_Log["Button_game_ReadyToShootB"] = 335] = "Button_game_ReadyToShootB";
      Button_Log[Button_Log["Button_game_ReadyToShootC"] = 336] = "Button_game_ReadyToShootC";
      Button_Log[Button_Log["Button_game_HitA"] = 337] = "Button_game_HitA";
      Button_Log[Button_Log["Button_game_rank1"] = 341] = "Button_game_rank1";
      Button_Log[Button_Log["Button_game_rank2"] = 342] = "Button_game_rank2";
      Button_Log[Button_Log["Button_game_rank3"] = 343] = "Button_game_rank3";
      Button_Log[Button_Log["Button_game_rankpage"] = 344] = "Button_game_rankpage";
      Button_Log[Button_Log["Button_game_rankopen"] = 345] = "Button_game_rankopen";
      Button_Log[Button_Log["Button_game_rankclose"] = 346] = "Button_game_rankclose";
      Button_Log[Button_Log["Button_game_TorpedoOn"] = 347] = "Button_game_TorpedoOn";
      Button_Log[Button_Log["Button_game_TorpedoOff"] = 348] = "Button_game_TorpedoOff";
      Button_Log[Button_Log["Button_game_AutoMaticOn"] = 349] = "Button_game_AutoMaticOn";
      Button_Log[Button_Log["Button_game_AutoMaticOff"] = 350] = "Button_game_AutoMaticOff";
      Button_Log[Button_Log["Button_game_ThunderOn"] = 351] = "Button_game_ThunderOn";
      Button_Log[Button_Log["Button_game_ThunderOff"] = 352] = "Button_game_ThunderOff";
      Button_Log[Button_Log["Button_game_giveup"] = 353] = "Button_game_giveup";
      Button_Log[Button_Log["Button_game_ShowRewaterUI"] = 361] = "Button_game_ShowRewaterUI";
      Button_Log[Button_Log["Button_game_ShowRewaterPage"] = 362] = "Button_game_ShowRewaterPage";
      Button_Log[Button_Log["Button_game_GetRewater"] = 363] = "Button_game_GetRewater";
      Button_Log[Button_Log["Button_game_ShowRewaterTarget"] = 364] = "Button_game_ShowRewaterTarget";
      Button_Log[Button_Log["Button_game_changeGameUIOP"] = 371] = "Button_game_changeGameUIOP";
      Button_Log[Button_Log["Button_game_changeGameClick"] = 372] = "Button_game_changeGameClick";
      Button_Log[Button_Log["Button_game_changeGameConfirm"] = 373] = "Button_game_changeGameConfirm";
      Button_Log[Button_Log["Button_game_changeGameCancel"] = 374] = "Button_game_changeGameCancel";
      Button_Log[Button_Log["Button_game_changeGameLobby"] = 375] = "Button_game_changeGameLobby";
      Button_Log[Button_Log["Button_game_changeGameSuccess"] = 376] = "Button_game_changeGameSuccess";
      Button_Log[Button_Log["Button_game_changeToLobby"] = 377] = "Button_game_changeToLobby";
      Button_Log[Button_Log["Button_game_Backpack_Show"] = 381] = "Button_game_Backpack_Show";
      Button_Log[Button_Log["Button_game_Backpack_Close"] = 382] = "Button_game_Backpack_Close";
      Button_Log[Button_Log["Button_game_Backpack_Page1"] = 383] = "Button_game_Backpack_Page1";
      Button_Log[Button_Log["Button_game_Backpack_Page2"] = 384] = "Button_game_Backpack_Page2";
      Button_Log[Button_Log["Button_game_Backpack_Page3"] = 385] = "Button_game_Backpack_Page3";
      Button_Log[Button_Log["Button_game_Backpack_ChangeGameConfirm"] = 386] = "Button_game_Backpack_ChangeGameConfirm";
      Button_Log[Button_Log["Button_game_Backpack_ChangeGameCancel"] = 387] = "Button_game_Backpack_ChangeGameCancel";
      Button_Log[Button_Log["Button_game_Backpack_InfoShow"] = 388] = "Button_game_Backpack_InfoShow";
      Button_Log[Button_Log["Button_game_Backpack_InfoClose"] = 389] = "Button_game_Backpack_InfoClose";
      Button_Log[Button_Log["State_game_loss_creator"] = 401] = "State_game_loss_creator";
      Button_Log[Button_Log["State_game_loss_gapAck"] = 411] = "State_game_loss_gapAck";
      Button_Log[Button_Log["State_game_loss_gapReq_success"] = 412] = "State_game_loss_gapReq_success";
      Button_Log[Button_Log["State_game_loss_gapReq_status"] = 413] = "State_game_loss_gapReq_status";
      Button_Log[Button_Log["State_game_loss_gapReq_response"] = 414] = "State_game_loss_gapReq_response";
      Button_Log[Button_Log["State_game_loss_gapReq_error"] = 415] = "State_game_loss_gapReq_error";
      Button_Log[Button_Log["State_game_loss_gsAck"] = 421] = "State_game_loss_gsAck";
      Button_Log[Button_Log["State_game_loss_gsReq_success"] = 422] = "State_game_loss_gsReq_success";
      Button_Log[Button_Log["State_game_loss_gsReq_duplicate"] = 423] = "State_game_loss_gsReq_duplicate";
      Button_Log[Button_Log["State_game_loss_gsReq_invalid"] = 424] = "State_game_loss_gsReq_invalid";
      Button_Log[Button_Log["State_game_loss_gsReq_full"] = 425] = "State_game_loss_gsReq_full";
      Button_Log[Button_Log["State_game_loss_gsReq_maintain"] = 426] = "State_game_loss_gsReq_maintain";
      Button_Log[Button_Log["State_game_loss_gsReq_fail"] = 427] = "State_game_loss_gsReq_fail";
      Button_Log[Button_Log["State_game_loss_try_catch"] = 428] = "State_game_loss_try_catch";
      Button_Log[Button_Log["State_game_loss_loading"] = 431] = "State_game_loss_loading";
      Button_Log[Button_Log["State_game_loss_mainScene"] = 441] = "State_game_loss_mainScene";
      Button_Log[Button_Log["State_game_loss_beforeunload"] = 451] = "State_game_loss_beforeunload";
      Button_Log[Button_Log["State_game_loss_breakLine"] = 461] = "State_game_loss_breakLine";
      Button_Log[Button_Log["WebSocket_connect_try"] = 471] = "WebSocket_connect_try";
      Button_Log[Button_Log["WebSocket_connect_success"] = 472] = "WebSocket_connect_success";
      Button_Log[Button_Log["WebSocket_connect_close"] = 473] = "WebSocket_connect_close";
      Button_Log[Button_Log["WebSocket_connect_error"] = 474] = "WebSocket_connect_error";
      Button_Log[Button_Log["WebSocket_reConnect_try"] = 475] = "WebSocket_reConnect_try";
      Button_Log[Button_Log["WebSocket_reConnect_success"] = 476] = "WebSocket_reConnect_success";
      Button_Log[Button_Log["WebSocket_reConnect_close"] = 477] = "WebSocket_reConnect_close";
      Button_Log[Button_Log["WebSocket_reConnect_error"] = 478] = "WebSocket_reConnect_error";
      Button_Log[Button_Log["State_game_loss_gapAck_readyToRety"] = 511] = "State_game_loss_gapAck_readyToRety";
      Button_Log[Button_Log["State_game_loss_gapAck_retry"] = 512] = "State_game_loss_gapAck_retry";
      Button_Log[Button_Log["State_game_loss_gsAck_re"] = 521] = "State_game_loss_gsAck_re";
      Button_Log[Button_Log["State_game_loss_gsReq_resuccess"] = 522] = "State_game_loss_gsReq_resuccess";
      Button_Log[Button_Log["State_game_loss_gsReq_reduplicate"] = 523] = "State_game_loss_gsReq_reduplicate";
      Button_Log[Button_Log["State_game_loss_gsReq_reinvalid"] = 524] = "State_game_loss_gsReq_reinvalid";
      Button_Log[Button_Log["State_game_loss_gsReq_refull"] = 525] = "State_game_loss_gsReq_refull";
      Button_Log[Button_Log["State_game_loss_gsReq_remaintain"] = 526] = "State_game_loss_gsReq_remaintain";
      Button_Log[Button_Log["State_game_loss_gsReq_refail"] = 527] = "State_game_loss_gsReq_refail";
      Button_Log[Button_Log["State_game_domain_fail"] = 531] = "State_game_domain_fail";
      Button_Log[Button_Log["Button_game_skinShow"] = 550] = "Button_game_skinShow";
      Button_Log[Button_Log["Button_game_skinHide"] = 551] = "Button_game_skinHide";
      Button_Log[Button_Log["Button_game_skinEvent"] = 552] = "Button_game_skinEvent";
      Button_Log[Button_Log["Button_game_skinSwitch"] = 553] = "Button_game_skinSwitch";
      Button_Log[Button_Log["Button_game_skinSmenu"] = 554] = "Button_game_skinSmenu";
      Button_Log[Button_Log["Button_game_fullPower"] = 555] = "Button_game_fullPower";
      Button_Log[Button_Log["Button_game_skinFire"] = 556] = "Button_game_skinFire";
      Button_Log[Button_Log["Button_game_skinSwitchManual"] = 557] = "Button_game_skinSwitchManual";
      Button_Log[Button_Log["Button_game_crystalOpen"] = 561] = "Button_game_crystalOpen";
      Button_Log[Button_Log["Button_game_crystalClose"] = 562] = "Button_game_crystalClose";
      Button_Log[Button_Log["Button_game_crystalHistory1"] = 563] = "Button_game_crystalHistory1";
      Button_Log[Button_Log["Button_game_crystalHistory2"] = 564] = "Button_game_crystalHistory2";
      Button_Log[Button_Log["Button_game_crystalHistory3"] = 565] = "Button_game_crystalHistory3";
      Button_Log[Button_Log["Button_game_crystalHelp"] = 566] = "Button_game_crystalHelp";
      Button_Log[Button_Log["Button_game_crystalAns1"] = 567] = "Button_game_crystalAns1";
      Button_Log[Button_Log["Button_game_crystalFake1"] = 568] = "Button_game_crystalFake1";
      Button_Log[Button_Log["Button_game_crystalAns2"] = 569] = "Button_game_crystalAns2";
      Button_Log[Button_Log["Button_game_crystalFake2"] = 570] = "Button_game_crystalFake2";
      Button_Log[Button_Log["Button_game_crystalAns3"] = 571] = "Button_game_crystalAns3";
      Button_Log[Button_Log["Button_game_crystalFake3"] = 572] = "Button_game_crystalFake3";
      Button_Log[Button_Log["Button_game_doubleDice"] = 573] = "Button_game_doubleDice";
      Button_Log[Button_Log["Button_game_doublePressLeave"] = 574] = "Button_game_doublePressLeave";
      Button_Log[Button_Log["Button_game_doublePressBig"] = 575] = "Button_game_doublePressBig";
      Button_Log[Button_Log["Button_game_doublePressSmall"] = 576] = "Button_game_doublePressSmall";
      Button_Log[Button_Log["Button_game_doubleAutoLeave"] = 577] = "Button_game_doubleAutoLeave";
      Button_Log[Button_Log["Button_game_doubleLeaveByCrystal"] = 578] = "Button_game_doubleLeaveByCrystal";
      Button_Log[Button_Log["Button_game_crystalHistory4"] = 579] = "Button_game_crystalHistory4";
      Button_Log[Button_Log["Button_game_bonus"] = 581] = "Button_game_bonus";
      Button_Log[Button_Log["State_Game_Turret_Move"] = 591] = "State_Game_Turret_Move";
      Button_Log[Button_Log["State_Game_Turret_touchShoot"] = 592] = "State_Game_Turret_touchShoot";
      Button_Log[Button_Log["State_Game_Novice1"] = 601] = "State_Game_Novice1";
      Button_Log[Button_Log["State_Game_Novice2"] = 602] = "State_Game_Novice2";
      Button_Log[Button_Log["State_Game_Novice3"] = 603] = "State_Game_Novice3";
      Button_Log[Button_Log["State_Game_Novice4"] = 604] = "State_Game_Novice4";
      Button_Log[Button_Log["State_Game_Novice5"] = 605] = "State_Game_Novice5";
      Button_Log[Button_Log["State_Game_Novice6"] = 606] = "State_Game_Novice6";
      Button_Log[Button_Log["State_Game_Novice7"] = 607] = "State_Game_Novice7";
      Button_Log[Button_Log["State_Game_Novice8"] = 608] = "State_Game_Novice8";
      Button_Log[Button_Log["State_Game_Novice9"] = 609] = "State_Game_Novice9";
      Button_Log[Button_Log["State_Game_Novice10"] = 610] = "State_Game_Novice10";
      Button_Log[Button_Log["State_Game_Novice11"] = 611] = "State_Game_Novice11";
      Button_Log[Button_Log["State_Game_Novice12"] = 612] = "State_Game_Novice12";
      Button_Log[Button_Log["State_Game_Novice13"] = 613] = "State_Game_Novice13";
      Button_Log[Button_Log["State_Game_Novice14"] = 614] = "State_Game_Novice14";
      Button_Log[Button_Log["State_Game_Novice15"] = 615] = "State_Game_Novice15";
      Button_Log[Button_Log["State_Game_Novice16"] = 616] = "State_Game_Novice16";
      Button_Log[Button_Log["State_Game_Novice17"] = 617] = "State_Game_Novice17";
      Button_Log[Button_Log["State_Game_Novice18"] = 618] = "State_Game_Novice18";
      Button_Log[Button_Log["State_Game_Novice19"] = 619] = "State_Game_Novice19";
      Button_Log[Button_Log["State_Game_Novice20"] = 620] = "State_Game_Novice20";
      Button_Log[Button_Log["State_Game_Novice21"] = 621] = "State_Game_Novice21";
      Button_Log[Button_Log["State_Game_Novice22"] = 622] = "State_Game_Novice22";
      Button_Log[Button_Log["State_Game_Novice23"] = 623] = "State_Game_Novice23";
      Button_Log[Button_Log["State_Game_Novice24"] = 624] = "State_Game_Novice24";
      Button_Log[Button_Log["State_Game_Novice25"] = 625] = "State_Game_Novice25";
      Button_Log[Button_Log["State_Game_Novice26"] = 626] = "State_Game_Novice26";
      Button_Log[Button_Log["State_Game_Novice27"] = 627] = "State_Game_Novice27";
      Button_Log[Button_Log["State_Game_Novice28"] = 628] = "State_Game_Novice28";
      Button_Log[Button_Log["Button_game_fire_totalRound"] = 701] = "Button_game_fire_totalRound";
      Button_Log[Button_Log["Button_game_fire_totalRound_50"] = 702] = "Button_game_fire_totalRound_50";
      Button_Log[Button_Log["Button_game_fire_totalRound_100"] = 703] = "Button_game_fire_totalRound_100";
      Button_Log[Button_Log["Button_game_fire_totalRound_200"] = 704] = "Button_game_fire_totalRound_200";
      Button_Log[Button_Log["Button_game_fire_totalRound_500"] = 705] = "Button_game_fire_totalRound_500";
      Button_Log[Button_Log["Button_game_fire_totalRound_999"] = 706] = "Button_game_fire_totalRound_999";
      Button_Log[Button_Log["Button_game_fire_singleWinOver"] = 707] = "Button_game_fire_singleWinOver";
      Button_Log[Button_Log["Button_game_fire_lessCoinStop"] = 708] = "Button_game_fire_lessCoinStop";
      Button_Log[Button_Log["Button_game_fire_overCoinStop"] = 709] = "Button_game_fire_overCoinStop";
      Button_Log[Button_Log["Button_game_fire_FeaturesStop1"] = 710] = "Button_game_fire_FeaturesStop1";
      Button_Log[Button_Log["Button_game_fire_FeaturesStop2"] = 711] = "Button_game_fire_FeaturesStop2";
      Button_Log[Button_Log["Button_game_fire_FeaturesStop3"] = 712] = "Button_game_fire_FeaturesStop3";
      Button_Log[Button_Log["Button_game_winMore_show"] = 721] = "Button_game_winMore_show";
      Button_Log[Button_Log["Button_game_winMore_hide"] = 722] = "Button_game_winMore_hide";
      Button_Log[Button_Log["Button_game_winMore_Page1"] = 723] = "Button_game_winMore_Page1";
      Button_Log[Button_Log["Button_game_winMore_Page2"] = 724] = "Button_game_winMore_Page2";
      Button_Log[Button_Log["Button_game_winMore_Page3"] = 725] = "Button_game_winMore_Page3";
      Button_Log[Button_Log["Button_game_winMore_love"] = 726] = "Button_game_winMore_love";
      Button_Log[Button_Log["Button_game_winMore_Test"] = 727] = "Button_game_winMore_Test";
      Button_Log[Button_Log["Button_game_mission_show"] = 731] = "Button_game_mission_show";
      Button_Log[Button_Log["Button_game_mission_hide"] = 732] = "Button_game_mission_hide";
      Button_Log[Button_Log["Button_game_mission_tip"] = 733] = "Button_game_mission_tip";
      Button_Log[Button_Log["Button_game_mission_itemTip"] = 734] = "Button_game_mission_itemTip";
      Button_Log[Button_Log["Button_game_mission_Page1"] = 735] = "Button_game_mission_Page1";
      Button_Log[Button_Log["Button_game_mission_Page2"] = 736] = "Button_game_mission_Page2";
      Button_Log[Button_Log["Button_game_mission_Page3"] = 737] = "Button_game_mission_Page3";
      Button_Log[Button_Log["Button_game_Features_show"] = 741] = "Button_game_Features_show";
      Button_Log[Button_Log["Button_game_Features_hide"] = 742] = "Button_game_Features_hide";
      Button_Log[Button_Log["Button_game_Features_game1"] = 743] = "Button_game_Features_game1";
      Button_Log[Button_Log["Button_game_Features_game2"] = 744] = "Button_game_Features_game2";
      Button_Log[Button_Log["Button_game_TouchLength"] = 751] = "Button_game_TouchLength";
      Button_Log[Button_Log["Button_game_tool_effectAsk"] = 761] = "Button_game_tool_effectAsk";
      Button_Log[Button_Log["Button_game_tool_effectConfirm"] = 762] = "Button_game_tool_effectConfirm";
      Button_Log[Button_Log["Button_game_tool_effectCancal"] = 763] = "Button_game_tool_effectCancal";
      Button_Log[Button_Log["Button_game_Odds_Rank"] = 771] = "Button_game_Odds_Rank";
      Button_Log[Button_Log["Button_game_Redeem_open"] = 781] = "Button_game_Redeem_open";
      Button_Log[Button_Log["Button_game_Redeem_close"] = 782] = "Button_game_Redeem_close";
      Button_Log[Button_Log["Button_game_Redeem_page1"] = 783] = "Button_game_Redeem_page1";
      Button_Log[Button_Log["Button_game_Redeem_page2"] = 784] = "Button_game_Redeem_page2";
      Button_Log[Button_Log["Button_game_Redeem_page3"] = 785] = "Button_game_Redeem_page3";
      Button_Log[Button_Log["Button_game_Redeem_page4"] = 786] = "Button_game_Redeem_page4";
      Button_Log[Button_Log["Button_game_Redeem_page5"] = 787] = "Button_game_Redeem_page5";
      Button_Log[Button_Log["Button_game_Redeem_btn_add"] = 788] = "Button_game_Redeem_btn_add";
      Button_Log[Button_Log["Button_game_Redeem_btn_sub"] = 789] = "Button_game_Redeem_btn_sub";
      Button_Log[Button_Log["Button_game_Redeem_btn"] = 790] = "Button_game_Redeem_btn";
      Button_Log[Button_Log["Button_game_Redeem_InfoShow"] = 791] = "Button_game_Redeem_InfoShow";
      Button_Log[Button_Log["Button_game_Redeem_InfoClose"] = 792] = "Button_game_Redeem_InfoClose";
      Button_Log[Button_Log["Buttom_game_clear"] = 801] = "Buttom_game_clear";
      Button_Log[Button_Log["Buttom_game_undo"] = 802] = "Buttom_game_undo";
      Button_Log[Button_Log["Buttom_game_double"] = 803] = "Buttom_game_double";
      Button_Log[Button_Log["Buttom_game_again"] = 804] = "Buttom_game_again";
      Button_Log[Button_Log["Buttom_game_follow"] = 805] = "Buttom_game_follow";
      Button_Log[Button_Log["Buttom_game_descHelp"] = 806] = "Buttom_game_descHelp";
      Button_Log[Button_Log["Buttom_game_spinAck"] = 807] = "Buttom_game_spinAck";
      Button_Log[Button_Log["Buttom_game_firstSpin"] = 808] = "Buttom_game_firstSpin";
      Button_Log[Button_Log["Buttom_game_themeTeach"] = 809] = "Buttom_game_themeTeach";
      Button_Log[Button_Log["Buttom_game_roomReq"] = 810] = "Buttom_game_roomReq";
      Button_Log[Button_Log["Buttom_game_firstPlay"] = 821] = "Buttom_game_firstPlay";
      Button_Log[Button_Log["Buttom_game_changeCardReq"] = 822] = "Buttom_game_changeCardReq";
      Button_Log[Button_Log["Buttom_game_Turbo"] = 823] = "Buttom_game_Turbo";
      Button_Log[Button_Log["Buttom_game_CanBuyBall"] = 824] = "Buttom_game_CanBuyBall";
      Button_Log[Button_Log["Buttom_game_gameStart"] = 825] = "Buttom_game_gameStart";
      Button_Log[Button_Log["Buttom_game_gameEnd"] = 826] = "Buttom_game_gameEnd";
      Button_Log[Button_Log["Buttom_game_dealAck"] = 827] = "Buttom_game_dealAck";
      Button_Log[Button_Log["Buttom_game_ballStop"] = 828] = "Buttom_game_ballStop";
      Button_Log[Button_Log["Buttom_game_buyBall"] = 829] = "Buttom_game_buyBall";
      Button_Log[Button_Log["State_game_Coin_Unsync"] = 830] = "State_game_Coin_Unsync";
      Button_Log[Button_Log["State_game_nextAck"] = 831] = "State_game_nextAck";
      Button_Log[Button_Log["FPS_game_30"] = 900] = "FPS_game_30";
      Button_Log[Button_Log["FPS_game_60"] = 901] = "FPS_game_60";
      Button_Log[Button_Log["FPS_game_120"] = 902] = "FPS_game_120";
      Button_Log[Button_Log["FPS_game_200"] = 903] = "FPS_game_200";
      Button_Log[Button_Log["FPS_game_400"] = 904] = "FPS_game_400";
      Button_Log[Button_Log["ShootCnt_game_5"] = 910] = "ShootCnt_game_5";
      Button_Log[Button_Log["ShootCnt_game_20"] = 911] = "ShootCnt_game_20";
      Button_Log[Button_Log["ShootCnt_game_50"] = 912] = "ShootCnt_game_50";
      Button_Log[Button_Log["ShootCnt_game_100"] = 913] = "ShootCnt_game_100";
      Button_Log[Button_Log["Error_CrazyCancle"] = 1001] = "Error_CrazyCancle";
      Button_Log[Button_Log["Error_HasShootNoHit"] = 1002] = "Error_HasShootNoHit";
      Button_Log[Button_Log["Error_HasShootNoHit2"] = 1003] = "Error_HasShootNoHit2";
    })(Button_Log = exports.Button_Log || (exports.Button_Log = {}));
    cc._RF.pop();
  }, {
    "./MT3SETB-platform": "MT3SETB-platform"
  } ],
  "MT3SETB-ttfExt": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "f93fc+gy4lMpIAqnaYRUUTP", "MT3SETB-ttfExt");
    "use strict";
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    const MT3SETB_LabelGradient_1 = __importDefault(require("./MT3SETB-LabelGradient"));
    const MT3SETB_LabelExtraOutline_1 = __importDefault(require("./MT3SETB-LabelExtraOutline"));
    const MT3SETB_LabelUtils_1 = require("./MT3SETB-LabelUtils");
    const CCAssembler = cc["Assembler"];
    const dynamicAtlasManager = cc.dynamicAtlasManager;
    const Label = cc.Label;
    const LabelOutline = cc.LabelOutline;
    const LabelShadow = cc.LabelShadow;
    const Overflow = Label.Overflow;
    const _invisibleAlpha = (1 / 255).toFixed(3);
    const MAX_SIZE = 2048;
    const WHITE = cc.color(255, 255, 255, 255);
    const Alignment = [ "left", "center", "right" ];
    class ttfExtAssembler extends CCAssembler {
      constructor() {
        super();
        this.vertsPerChar = 4;
        this.indicesPerChar = 6;
        this.floatsPerVert = 5;
        this.verticesCount = this.vertsPerChar;
        this.indicesCount = this.indicesPerChar;
        this.uvOffset = 2;
        this.colorOffset = 4;
        this.colorExtraOffset = 5;
        this.textureIdxOffset = 6;
        this._renderData = null;
        this._local = [];
        this._context = null;
        this._canvas = null;
        this._texture = null;
        this._fontDesc = "";
        this._string = "";
        this._fontSize = 0;
        this._drawFontSize = 0;
        this._splitedStrings = [];
        this._canvasSize = cc.Size.ZERO;
        this._lineHeight = 0;
        this._hAlign = 0;
        this._vAlign = 0;
        this._color = null;
        this._fontFamily = "";
        this._overflow = Overflow.NONE;
        this._isWrapText = false;
        this._premultiply = false;
        this._outlineComp = null;
        this._outlineColor = cc.Color.WHITE;
        this._shadowComp = null;
        this._shadowColor = cc.Color.BLACK;
        this._outlineExtraComp = null;
        this._outlineExtraColor = cc.Color.WHITE;
        this._gradientComp = null;
        this._canvasPadding = cc.rect();
        this._contentSizeExtend = cc.Size.ZERO;
        this._nodeContentSize = cc.Size.ZERO;
        this._enableBold = false;
        this._enableItalic = false;
        this._enableUnderline = false;
        this._underlineThickness = 0;
        this._drawUnderlinePos = cc.Vec2.ZERO;
        this._drawUnderlineWidth = 0;
        this._renderData = new cc["RenderData"]();
        this._renderData.init(this);
        this.initData();
        this.initLocal();
      }
      get verticesFloats() {
        return this.verticesCount * this.floatsPerVert;
      }
      initData() {
        let data = this._renderData;
        data.createQuadData(0, this.verticesFloats, this.indicesCount);
      }
      initLocal() {
        this._local = [];
        this._local.length = 4;
      }
      updateColor(comp, color) {
        let uintVerts = this._renderData.uintVDatas[0];
        if (!uintVerts) return;
        color = null != color ? color : comp.node.color._val;
        let floatsPerVert = this.floatsPerVert;
        let colorOffset = this.colorOffset;
        for (let i = colorOffset, l = uintVerts.length; i < l; i += floatsPerVert) uintVerts[i] = color;
      }
      getBuffer(renderer) {
        return cc.renderer["_handle"]._meshBuffer;
      }
      updateWorldVerts(comp) {
        let local = this._local;
        let verts = this._renderData.vDatas[0];
        let matrix = comp.node._worldMatrix;
        let matrixm = matrix.m, a = matrixm[0], b = matrixm[1], c = matrixm[4], d = matrixm[5], tx = matrixm[12], ty = matrixm[13];
        let vl = local[0], vr = local[2], vb = local[1], vt = local[3];
        let floatsPerVert = this.floatsPerVert;
        let vertexOffset = 0;
        let justTranslate = 1 === a && 0 === b && 0 === c && 1 === d;
        if (justTranslate) {
          verts[vertexOffset] = vl + tx;
          verts[vertexOffset + 1] = vb + ty;
          vertexOffset += floatsPerVert;
          verts[vertexOffset] = vr + tx;
          verts[vertexOffset + 1] = vb + ty;
          vertexOffset += floatsPerVert;
          verts[vertexOffset] = vl + tx;
          verts[vertexOffset + 1] = vt + ty;
          vertexOffset += floatsPerVert;
          verts[vertexOffset] = vr + tx;
          verts[vertexOffset + 1] = vt + ty;
        } else {
          let al = a * vl, ar = a * vr, bl = b * vl, br = b * vr, cb = c * vb, ct = c * vt, db = d * vb, dt = d * vt;
          verts[vertexOffset] = al + cb + tx;
          verts[vertexOffset + 1] = bl + db + ty;
          vertexOffset += floatsPerVert;
          verts[vertexOffset] = ar + cb + tx;
          verts[vertexOffset + 1] = br + db + ty;
          vertexOffset += floatsPerVert;
          verts[vertexOffset] = al + ct + tx;
          verts[vertexOffset + 1] = bl + dt + ty;
          vertexOffset += floatsPerVert;
          verts[vertexOffset] = ar + ct + tx;
          verts[vertexOffset + 1] = br + dt + ty;
        }
      }
      fillBuffers(comp, renderer) {
        renderer.worldMatDirty && this.updateWorldVerts(comp);
        let renderData = this._renderData;
        let vData = renderData.vDatas[0];
        let iData = renderData.iDatas[0];
        let buffer = this.getBuffer(renderer);
        let offsetInfo = buffer.request(this.verticesCount, this.indicesCount);
        let vertexOffset = offsetInfo.byteOffset >> 2, vbuf = buffer._vData;
        vData.length + vertexOffset > vbuf.length ? vbuf.set(vData.subarray(0, vbuf.length - vertexOffset), vertexOffset) : vbuf.set(vData, vertexOffset);
        let ibuf = buffer._iData, indiceOffset = offsetInfo.indiceOffset, vertexId = offsetInfo.vertexOffset;
        for (let i = 0, l = iData.length; i < l; i++) ibuf[indiceOffset++] = vertexId + iData[i];
      }
      packToDynamicAtlas(comp, frame) {
        false;
        if (!frame._original && dynamicAtlasManager && frame._texture.packable && frame._texture.loaded) {
          let packedFrame = dynamicAtlasManager.insertSpriteFrame(frame);
          packedFrame && frame._setDynamicAtlasFrame(packedFrame);
        }
        let material = comp._materials[0];
        if (!material) return;
        if (material.getProperty("texture") !== frame._texture._texture) {
          comp._vertsDirty = true;
          comp._updateMaterial();
        }
      }
      _getAssemblerData() {
        this._sharedLabelData = cc.Label["_canvasPool"].get();
        this._sharedLabelData.canvas.width = this._sharedLabelData.canvas.height = 1;
        return this._sharedLabelData;
      }
      _resetAssemblerData(assemblerData) {
        assemblerData && cc.Label["_canvasPool"].put(assemblerData);
      }
      updateRenderData(comp) {
        super.updateRenderData(comp);
        if (!comp._vertsDirty) return;
        this._updateProperties(comp);
        this._calculateLabelFont();
        this._updateLabelDimensions();
        this._updateTexture(comp);
        this._calDynamicAtlas(comp);
        comp._actualFontSize = this._fontSize;
        comp.node.setContentSize(this._nodeContentSize);
        this.updateVerts(comp);
        comp._vertsDirty = false;
        this._context = null;
        this._canvas = null;
        this._texture = null;
      }
      updateUVs(comp) {
        let verts = this._renderData.vDatas[0];
        let uv = comp._frame.uv;
        let uvOffset = this.uvOffset;
        let floatsPerVert = this.floatsPerVert;
        for (let i = 0; i < 4; i++) {
          let srcOffset = 2 * i;
          let dstOffset = floatsPerVert * i + uvOffset;
          verts[dstOffset] = uv[srcOffset];
          verts[dstOffset + 1] = uv[srcOffset + 1];
        }
      }
      _updateColor(comp) {
        if (!comp) return;
        WHITE["_fastSetA"](comp.node._color.a);
        let color = WHITE["_val"];
        this.updateColor(comp, color);
      }
      updateVerts(comp) {
        let node = comp.node, canvasWidth = comp._ttfTexture.width, canvasHeight = comp._ttfTexture.height, appx = node.anchorX * node.width, appy = node.anchorY * node.height;
        let shadow = LabelShadow && comp.getComponent(LabelShadow);
        if (shadow && shadow._enabled) {
          let offsetX = (canvasWidth - node.width) / 2;
          let offsetY = (canvasHeight - node.height) / 2;
          let shadowOffset = shadow.offset;
          -shadowOffset.x > offsetX ? appx += canvasWidth - node.width : offsetX > shadowOffset.x && (appx += offsetX - shadowOffset.x);
          -shadowOffset.y > offsetY ? appy += canvasHeight - node.height : offsetY > shadowOffset.y && (appy += offsetY - shadowOffset.y);
        }
        let local = this._local;
        local[0] = -appx;
        local[1] = -appy;
        local[2] = canvasWidth - appx;
        local[3] = canvasHeight - appy;
        this.updateUVs(comp);
        this.updateWorldVerts(comp);
      }
      _updatePaddingRect() {
        let top = 0, bottom = 0, left = 0, right = 0;
        let outlineWidth = 0;
        this._contentSizeExtend.width = this._contentSizeExtend.height = 0;
        if (this._outlineComp) {
          outlineWidth = 2 * this._outlineComp.width;
          top = bottom = left = right = outlineWidth;
          this._contentSizeExtend.width = this._contentSizeExtend.height = 2 * outlineWidth;
        }
        if (this._outlineExtraComp) {
          outlineWidth += 2 * this._outlineExtraComp.width;
          top = bottom = left = right = outlineWidth;
          this._contentSizeExtend.width = this._contentSizeExtend.height = 2 * outlineWidth;
        }
        if (this._shadowComp) {
          let shadowWidth = this._shadowComp.blur + outlineWidth;
          left = Math.max(left, -this._shadowComp._offset.x + shadowWidth);
          right = Math.max(right, this._shadowComp._offset.x + shadowWidth);
          top = Math.max(top, this._shadowComp._offset.y + shadowWidth);
          bottom = Math.max(bottom, -this._shadowComp._offset.y + shadowWidth);
        }
        if (this._enableItalic) {
          let offset = this._drawFontSize * Math.tan(.20943951);
          right += offset;
          this._contentSizeExtend.width += offset;
        }
        this._canvasPadding.x = left;
        this._canvasPadding.y = top;
        this._canvasPadding.width = left + right;
        this._canvasPadding.height = top + bottom;
      }
      _updateProperties(comp) {
        let assemblerData = comp._assemblerData;
        this._context = assemblerData.context;
        this._canvas = assemblerData.canvas;
        this._texture = comp._frame._original ? comp._frame._original._texture : comp._frame._texture;
        this._string = comp.string.toString();
        this._fontSize = comp._fontSize;
        this._drawFontSize = this._fontSize;
        this._underlineThickness = comp.underlineHeight || this._drawFontSize / 8;
        this._overflow = comp.overflow;
        this._canvasSize.width = comp.node.width;
        this._canvasSize.height = comp.node.height;
        this._nodeContentSize = comp.node.getContentSize();
        this._lineHeight = comp._lineHeight;
        this._hAlign = comp.horizontalAlign;
        this._vAlign = comp.verticalAlign;
        this._color = comp.node.color;
        this._enableBold = comp.enableBold;
        this._enableItalic = comp.enableItalic;
        this._enableUnderline = comp.enableUnderline;
        this._fontFamily = MT3SETB_LabelUtils_1.getFontFamily(comp);
        this._premultiply = comp.srcBlendFactor === cc.macro.BlendFactor.ONE;
        this._context["_setPremultiply"] && this._context._setPremultiply(this._premultiply);
        this._overflow === Overflow.NONE ? this._isWrapText = false : this._overflow === Overflow.RESIZE_HEIGHT ? this._isWrapText = true : this._isWrapText = comp.enableWrapText;
        this._outlineComp = LabelOutline && comp.getComponent(LabelOutline);
        this._outlineComp = this._outlineComp && this._outlineComp.enabled && this._outlineComp.width > 0 ? this._outlineComp : null;
        this._outlineComp && this._outlineColor.set(this._outlineComp.color);
        this._shadowComp = LabelShadow && comp.getComponent(LabelShadow);
        this._shadowComp = this._shadowComp && this._shadowComp.enabled ? this._shadowComp : null;
        if (this._shadowComp) {
          this._shadowColor.set(this._shadowComp.color);
          this._shadowColor.a = this._shadowColor.a * comp.node.color.a / 255;
        }
        this._outlineExtraComp = MT3SETB_LabelExtraOutline_1.default && comp.getComponent(MT3SETB_LabelExtraOutline_1.default);
        this._outlineExtraComp = this._outlineExtraComp && this._outlineExtraComp.enabled && this._outlineExtraComp.width > 0 ? this._outlineExtraComp : null;
        this._outlineExtraComp && this._outlineExtraColor.set(this._outlineExtraComp.color);
        this._gradientComp = MT3SETB_LabelGradient_1.default && comp.getComponent(MT3SETB_LabelGradient_1.default);
        this._gradientComp = this._gradientComp && this._gradientComp.enabled ? this._gradientComp : null;
        this._updatePaddingRect();
      }
      _calculateFillTextStartPosition() {
        let labelX = 0;
        this._hAlign === cc.macro.TextAlignment.RIGHT ? labelX = this._canvasSize.width - this._canvasPadding.width : this._hAlign === cc.macro.TextAlignment.CENTER && (labelX = (this._canvasSize.width - this._canvasPadding.width) / 2);
        let blank = 0;
        let lineHeight = this._getLineHeight();
        let drawStartY = lineHeight * (this._splitedStrings.length - 1);
        let firstLinelabelY = this._fontSize * (1 - cc["textUtils"].BASELINE_RATIO / 2);
        if (this._vAlign !== cc.macro["VerticalTextAlignment"].TOP) {
          blank = drawStartY + this._canvasPadding.height + this._fontSize - this._canvasSize.height;
          if (this._vAlign === cc.macro["VerticalTextAlignment"].BOTTOM) {
            blank += cc["textUtils"].BASELINE_RATIO / 2 * this._fontSize;
            firstLinelabelY -= blank;
            blank *= 2;
          } else firstLinelabelY -= blank / 2;
        }
        firstLinelabelY += cc["textUtils"].BASELINE_OFFSET * this._fontSize;
        return {
          x: labelX + this._canvasPadding.x,
          y: firstLinelabelY + this._canvasPadding.y,
          pad: this._canvasPadding.y - blank / 2
        };
      }
      _setupOutline() {
        this._context.strokeStyle = `rgba(${this._outlineColor.r}, ${this._outlineColor.g}, ${this._outlineColor.b}, ${this._outlineColor.a / 255})`;
        this._context.lineWidth = 2 * this._outlineComp.width;
      }
      _setupShadow() {
        this._context.shadowColor = `rgba(${this._shadowColor.r}, ${this._shadowColor.g}, ${this._shadowColor.b}, ${this._shadowColor.a / 255})`;
        this._context.shadowBlur = this._shadowComp.blur;
        this._context.shadowOffsetX = this._shadowComp.offset.x;
        this._context.shadowOffsetY = -this._shadowComp.offset.y;
      }
      _drawTextEffect(startPosition, lineHeight) {
        if (!this._shadowComp && !this._outlineComp && !this._enableUnderline) return;
        let isMultiple = this._splitedStrings.length > 0 && this._shadowComp;
        let measureText = this._measureText(this._context, this._fontDesc);
        let drawTextPosX = 0, drawTextPosY = 0;
        this._shadowComp && this._setupShadow();
        this._outlineComp && this._setupOutline();
        for (let i = 0; i < this._splitedStrings.length; ++i) {
          drawTextPosX = startPosition.x;
          drawTextPosY = startPosition.y + i * lineHeight;
          if (isMultiple) {
            this._outlineComp && this._context.strokeText(this._splitedStrings[i], drawTextPosX, drawTextPosY);
            this._context.fillText(this._splitedStrings[i], drawTextPosX, drawTextPosY);
          }
          if (this._enableUnderline) {
            this._drawUnderlineWidth = measureText(this._splitedStrings[i]);
            this._hAlign === cc.macro.TextAlignment.RIGHT ? this._drawUnderlinePos.x = startPosition.x - this._drawUnderlineWidth : this._hAlign === cc.macro.TextAlignment.CENTER ? this._drawUnderlinePos.x = startPosition.x - this._drawUnderlineWidth / 2 : this._drawUnderlinePos.x = startPosition.x;
            this._drawUnderlinePos.y = drawTextPosY + this._drawFontSize / 8;
            this._context.fillRect(this._drawUnderlinePos.x, this._drawUnderlinePos.y, this._drawUnderlineWidth, this._underlineThickness);
          }
        }
        isMultiple && (this._context.shadowColor = "transparent");
      }
      _updateTexture(comp) {
        this._context.clearRect(0, 0, this._canvas.width, this._canvas.height);
        this._context.lineJoin = "round";
        let startPosition = this._calculateFillTextStartPosition();
        let lineHeight = this._getLineHeight();
        let drawTextPosX = startPosition.x, drawTextPosY = 0;
        if (this._gradientComp && this._gradientComp.color.colorKeys.length > 0) {
          let divider = this._splitedStrings.length;
          let yStart = startPosition.pad;
          let gradientHeight = divider * lineHeight + yStart;
          let gradient = this._context.createLinearGradient(0, yStart, 0, gradientHeight);
          for (let i = 0; i < divider; ++i) for (let ck of this._gradientComp.color.colorKeys) gradient.addColorStop((ck.time + i) / divider, ck.color);
          this._context.fillStyle = gradient;
        } else if (this._premultiply) this._context.fillStyle = `rgba(${this._color.r}, ${this._color.g}, ${this._color.b}, ${this._color.a / 255})`; else {
          let _fillColor = this._outlineComp ? this._outlineColor : this._color;
          this._context.fillStyle = `rgba(${_fillColor.r}, ${_fillColor.g}, ${_fillColor.b}, ${_invisibleAlpha})`;
          this._context.fillRect(0, 0, this._canvas.width, this._canvas.height);
          this._context.fillStyle = `rgba(${this._color.r}, ${this._color.g}, ${this._color.b}, 1)`;
        }
        if (this._outlineExtraComp) {
          this._context.beginPath();
          let w = this._outlineExtraComp.width + (this._outlineComp ? this._outlineComp.width : 0);
          for (let i = 0; i < this._splitedStrings.length; ++i) {
            drawTextPosY = startPosition.y + i * lineHeight;
            this._context.strokeStyle = this._outlineExtraColor;
            this._context.lineWidth = 2 * w;
            this._context.strokeText(this._splitedStrings[i], drawTextPosX, drawTextPosY);
          }
          this._context.closePath();
        }
        this._drawTextEffect(startPosition, lineHeight);
        for (let i = 0; i < this._splitedStrings.length; ++i) {
          drawTextPosY = startPosition.y + i * lineHeight;
          this._outlineComp && this._context.strokeText(this._splitedStrings[i], drawTextPosX, drawTextPosY);
          this._context.fillText(this._splitedStrings[i], drawTextPosX, drawTextPosY);
        }
        this._shadowComp && (this._context.shadowColor = "transparent");
        this._texture.handleLoadedTexture();
      }
      _calDynamicAtlas(comp) {
        if (comp.cacheMode !== Label.CacheMode.BITMAP) return;
        let frame = comp._frame;
        MT3SETB_LabelUtils_1.deleteFromDynamicAtlas(comp, frame);
        frame._original || frame.setRect(cc.rect(0, 0, this._canvas.width, this._canvas.height));
        this.packToDynamicAtlas(comp, frame);
      }
      _updateLabelDimensions() {
        let maxTextureSize = cc.renderer["device"].caps ? cc.renderer["device"].caps.maxTextureSize : MAX_SIZE;
        (this._canvasSize.width > maxTextureSize || this._canvasSize.height > maxTextureSize) && cc.warn("The maximum texture size supported by the device is " + maxTextureSize);
        this._canvasSize.width = Math.min(this._canvasSize.width, maxTextureSize);
        this._canvasSize.height = Math.min(this._canvasSize.height, maxTextureSize);
        let recreate = false;
        if (this._canvas.width !== this._canvasSize.width) {
          this._canvas.width = this._canvasSize.width;
          recreate = true;
        }
        if (this._canvas.height !== this._canvasSize.height) {
          this._canvas.height = this._canvasSize.height;
          recreate = true;
        }
        recreate && (this._context.font = this._fontDesc);
        this._context.textAlign = Alignment[this._hAlign];
      }
      _getFontDesc() {
        let fontDesc = this._fontSize.toString() + "px ";
        fontDesc += this._fontFamily;
        this._enableBold && (fontDesc = "bold " + fontDesc);
        this._enableItalic && (fontDesc = "italic " + fontDesc);
        return fontDesc;
      }
      _getLineHeight() {
        let nodeSpacingY = this._lineHeight;
        nodeSpacingY = 0 === nodeSpacingY ? this._fontSize : nodeSpacingY * this._fontSize / this._drawFontSize;
        return 0 | nodeSpacingY;
      }
      _calculateParagraphLength(paragraphedStrings, ctx) {
        let paragraphLength = [];
        for (let i = 0; i < paragraphedStrings.length; ++i) {
          let width = cc["textUtils"].safeMeasureText(ctx, paragraphedStrings[i], this._fontDesc);
          paragraphLength.push(width);
        }
        return paragraphLength;
      }
      _measureText(ctx, fontDesc) {
        return function(string) {
          return cc["textUtils"].safeMeasureText(ctx, string, fontDesc);
        };
      }
      _calculateShrinkFont(paragraphedStrings) {
        let paragraphLength = this._calculateParagraphLength(paragraphedStrings, this._context);
        let i = 0;
        let totalHeight = 0;
        let maxLength = 0;
        if (this._isWrapText) {
          let canvasWidthNoMargin = this._nodeContentSize.width;
          let canvasHeightNoMargin = this._nodeContentSize.height;
          if (canvasWidthNoMargin < 0 || canvasHeightNoMargin < 0) return;
          totalHeight = canvasHeightNoMargin + 1;
          let actualFontSize = this._fontSize + 1;
          let textFragment = "";
          let left = 0, right = 0 | actualFontSize, mid = 0;
          while (left < right) {
            mid = left + right + 1 >> 1;
            if (mid <= 0) {
              cc["logID"](4003);
              break;
            }
            this._fontSize = mid;
            this._fontDesc = this._getFontDesc();
            this._context.font = this._fontDesc;
            let lineHeight = this._getLineHeight();
            totalHeight = 0;
            for (i = 0; i < paragraphedStrings.length; ++i) {
              let allWidth = cc["textUtils"].safeMeasureText(this._context, paragraphedStrings[i], this._fontDesc);
              textFragment = cc["textUtils"].fragmentText(paragraphedStrings[i], allWidth, canvasWidthNoMargin, this._measureText(this._context, this._fontDesc));
              totalHeight += textFragment.length * lineHeight;
            }
            totalHeight > canvasHeightNoMargin ? right = mid - 1 : left = mid;
          }
          if (0 === left) cc["logID"](4003); else {
            this._fontSize = left;
            this._fontDesc = this._getFontDesc();
            this._context.font = this._fontDesc;
          }
        } else {
          totalHeight = paragraphedStrings.length * this._getLineHeight();
          for (i = 0; i < paragraphedStrings.length; ++i) maxLength < paragraphLength[i] && (maxLength = paragraphLength[i]);
          let scaleX = (this._canvasSize.width - this._canvasPadding.width) / maxLength;
          let scaleY = this._canvasSize.height / totalHeight;
          this._fontSize = this._drawFontSize * Math.min(1, scaleX, scaleY) | 0;
          this._fontDesc = this._getFontDesc();
          this._context.font = this._fontDesc;
        }
      }
      _calculateWrapText(paragraphedStrings) {
        if (!this._isWrapText) return;
        this._splitedStrings = [];
        let canvasWidthNoMargin = this._nodeContentSize.width;
        for (let i = 0; i < paragraphedStrings.length; ++i) {
          let allWidth = cc["textUtils"].safeMeasureText(this._context, paragraphedStrings[i], this._fontDesc);
          let textFragment = cc["textUtils"].fragmentText(paragraphedStrings[i], allWidth, canvasWidthNoMargin, this._measureText(this._context, this._fontDesc));
          this._splitedStrings = this._splitedStrings.concat(textFragment);
        }
        for (let i = 0; i < this._splitedStrings.length; ++i) this._splitedStrings[i] = this._splitedStrings[i].trim();
      }
      _calculateLabelFont() {
        let paragraphedStrings = this._string.split("\n");
        this._splitedStrings = paragraphedStrings;
        this._fontDesc = this._getFontDesc();
        this._context.font = this._fontDesc;
        switch (this._overflow) {
         case Overflow.NONE:
          {
            let canvasSizeX = 0;
            let canvasSizeY = 0;
            for (let i = 0; i < paragraphedStrings.length; ++i) {
              let paraLength = cc["textUtils"].safeMeasureText(this._context, paragraphedStrings[i], this._fontDesc);
              canvasSizeX = canvasSizeX > paraLength ? canvasSizeX : paraLength;
            }
            canvasSizeY = (this._splitedStrings.length + cc["textUtils"].BASELINE_RATIO) * this._getLineHeight();
            let rawWidth = parseFloat(canvasSizeX.toFixed(2));
            let rawHeight = parseFloat(canvasSizeY.toFixed(2));
            this._canvasSize.width = rawWidth + this._canvasPadding.width;
            this._canvasSize.height = rawHeight + this._canvasPadding.height;
            this._nodeContentSize.width = rawWidth + this._contentSizeExtend.width;
            this._nodeContentSize.height = rawHeight + this._contentSizeExtend.height;
            break;
          }

         case Overflow.SHRINK:
          this._calculateShrinkFont(paragraphedStrings);
          this._calculateWrapText(paragraphedStrings);
          break;

         case Overflow.CLAMP:
          this._calculateWrapText(paragraphedStrings);
          break;

         case Overflow.RESIZE_HEIGHT:
          {
            this._calculateWrapText(paragraphedStrings);
            let rawHeight = (this._splitedStrings.length + cc["textUtils"].BASELINE_RATIO) * this._getLineHeight();
            this._canvasSize.height = rawHeight + this._canvasPadding.height;
            this._nodeContentSize.height = rawHeight + this._contentSizeExtend.height;
            break;
          }
        }
      }
    }
    exports.default = ttfExtAssembler;
    cc._RF.pop();
  }, {
    "./MT3SETB-LabelExtraOutline": "MT3SETB-LabelExtraOutline",
    "./MT3SETB-LabelGradient": "MT3SETB-LabelGradient",
    "./MT3SETB-LabelUtils": "MT3SETB-LabelUtils"
  } ],
  "MT3SETB-ui": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "5242cfeiD5MZLd3InRnxkNF", "MT3SETB-ui");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.CloseUIByOrder = exports.ShowUIByOrder = exports.UIType = void 0;
    var UIType;
    (function(UIType) {
      UIType[UIType["Default"] = 0] = "Default";
      UIType[UIType["Novice"] = 1] = "Novice";
      UIType[UIType["JpList"] = 2] = "JpList";
      UIType[UIType["RankBanner"] = 3] = "RankBanner";
      UIType[UIType["ExchangeBanner"] = 4] = "ExchangeBanner";
      UIType[UIType["ActiveBanner"] = 9] = "ActiveBanner";
      UIType[UIType["Welcome"] = 10] = "Welcome";
    })(UIType = exports.UIType || (exports.UIType = {}));
    var n = [], i = null;
    const ShowUIByOrder = function(e, t) {
      if (i) n.some(function(t) {
        return t.type == e;
      }) || i.type == e || n.push({
        callback: t,
        type: e
      }); else {
        i = {
          callback: t,
          type: e
        };
        t();
      }
    };
    exports.ShowUIByOrder = ShowUIByOrder;
    const CloseUIByOrder = function(e, t) {
      t();
      if (i && i.type == e) {
        i = null;
        if (!(n.length <= 0)) {
          n.sort(function(e, t) {
            return e.type - t.type;
          });
          (i = n.splice(n.length - 1, 1)[0]).callback();
        }
      } else for (var o = 0; o < n.length; o++) if (n[o].type == e) {
        n.splice(o, 1);
        break;
      }
    };
    exports.CloseUIByOrder = CloseUIByOrder;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-utils2": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "c2272c95jtOGYADqC2Ju82a", "MT3SETB-utils2");
    "use strict";
    var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
      function adopt(value) {
        return value instanceof P ? value : new P(function(resolve) {
          resolve(value);
        });
      }
      return new (P || (P = Promise))(function(resolve, reject) {
        function fulfilled(value) {
          try {
            step(generator.next(value));
          } catch (e) {
            reject(e);
          }
        }
        function rejected(value) {
          try {
            step(generator["throw"](value));
          } catch (e) {
            reject(e);
          }
        }
        function step(result) {
          result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
        }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
      });
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.arrayGet = exports.randText = exports.randString = exports.randDiffent = exports.randFloat = exports.rand = exports.shuffle = exports.unserialize = exports.serialize = exports.value = exports.values = exports.has = exports.sleep = exports.range = exports.objs = exports.map = exports.each = exports.dateString = exports.newDate = exports.now = exports.dict = exports.j = exports.copy = exports.zip = exports.search = exports.logger = exports.setLogger = exports.getStack = exports.setLogMode = exports.configureLog = exports.merge = exports.parseEscape = exports.keys = exports.getMethodNames = exports.getMethodName = exports.class2Object = exports.staticClass2Object = exports.isClassInstance = exports.getClassName = exports.isClass = exports.isPureType = exports.arrayDel = exports.arrayUniquePush = exports.property = exports.isFunction = exports.isVoid = exports.isArray = exports.isDate = exports.isObject = exports.size = void 0;
    exports.swap = exports.equals = exports.sortPaths = exports.sprintf = exports.checkPassword = exports.checkEmail = exports.waiting = exports.parsePath = exports.incNum = exports.isDecimal = exports.isNaN = exports.bigNumberChineseString = exports.bigNumberUnitString = exports.bigNumberKMGString = exports.numberFitLength = exports.bigNumberString = exports.parseNumber = exports.limit = void 0;
    var Utils = function(obj) {
      if (obj instanceof Utils) return obj;
      if (!(this instanceof Utils)) return new Utils(obj);
      this._wrapped = obj;
    };
    function size(obj) {
      if (!obj) return 0;
      var s = 0;
      for (var f in obj) obj.hasOwnProperty(f) && s++;
      return s;
    }
    exports.size = size;
    Utils.size = size;
    function isObject(obj) {
      var type = typeof obj;
      return "function" === type || "object" === type && !!obj;
    }
    exports.isObject = isObject;
    Utils.isObject = isObject;
    function isDate(obj) {
      return obj && "[object Date]" == toString.call(obj);
    }
    exports.isDate = isDate;
    Utils.isDate = isDate;
    function isArray(obj) {
      if (Array.isArray) return Array.isArray(obj);
      return "[object Array]" === Object.prototype.toString.call(obj);
    }
    exports.isArray = isArray;
    Utils.isArray = isArray;
    function isVoid(obj) {
      return null === obj || void 0 === obj;
    }
    exports.isVoid = isVoid;
    function isFunction(obj) {
      return "function" == typeof obj || false;
    }
    exports.isFunction = isFunction;
    function property(key) {
      return function(obj) {
        return obj[key];
      };
    }
    exports.property = property;
    Utils.property = property;
    function matches(attrs) {
      var pairs = pairs(attrs), length = pairs.length;
      return function(obj) {
        if (null == obj) return !length;
        obj = new Object(obj);
        for (var i = 0; i < length; i++) {
          var pair = pairs[i], key = pair[0];
          if (pair[1] !== obj[key] || !(key in obj)) return false;
        }
        return true;
      };
    }
    Utils.matches = matches;
    function arrayUniquePush(array, value) {
      if (array) {
        for (var i = 0, len = array.length; i < len; i++) if (array[i] === value) return false;
        array.push(value);
      }
      return true;
    }
    exports.arrayUniquePush = arrayUniquePush;
    Utils.arrayUniquePush = arrayUniquePush;
    function arrayDel(array, item, count = 1) {
      let deleteCount = 0;
      for (let i = 0; i < array.length; i++) if (array[i] === item) {
        array.splice(i, 1);
        i--;
        deleteCount++;
        if (count > 0 && deleteCount >= count) return deleteCount;
      }
      return deleteCount;
    }
    exports.arrayDel = arrayDel;
    Utils.arrayDel = arrayDel;
    function isPureType(obj) {
      let classType = Object.prototype.toString.call(obj);
      return "[object Object]" !== classType && "[object Function]" !== classType || obj.__proto__ && null == obj.__proto__.__proto__;
    }
    exports.isPureType = isPureType;
    Utils.isPureType = isPureType;
    function isClass(obj, Class) {
      var type = typeof obj;
      Class = Class || obj;
      return "function" === type && "function" == typeof obj.__proto__ && obj.prototype && obj.prototype.constructor && (obj.prototype.constructor == Class || obj.prototype.constructor.name == Class || isClass(obj.__proto__, Class));
    }
    exports.isClass = isClass;
    Utils.isClass = isClass;
    function getClassName(obj) {
      if (obj && obj.constructor && obj.constructor.toString()) {
        if (obj.constructor.name) return obj.constructor.name;
        let str = obj.constructor.toString();
        let arr;
        arr = "[" == str.charAt(0) ? str.match(/\w+\s\u2217(\w+)\w+\s\u2217(\w+)/) : str.match(/function\s*(\w+)/);
        if (arr && 2 == arr.length) return arr[1];
      }
      return "";
    }
    exports.getClassName = getClassName;
    Utils.getClassName = getClassName;
    function isClassInstance(obj, Class) {
      var type = typeof obj;
      let proto = Object.getPrototypeOf(obj);
      return "object" === type && proto && isClass(proto.constructor, Class);
    }
    exports.isClassInstance = isClassInstance;
    Utils.isClassInstance = isClassInstance;
    function staticClass2Object(staticClass, exceptClass) {
      let ret = {};
      staticClass.prototype && staticClass !== exceptClass && staticClass !== Object && (ret = staticClass2Object(staticClass.prototype, exceptClass));
      for (let k of Object.getOwnPropertyNames(staticClass)) "constructor" !== k && "prototype" !== k && (ret[k] = staticClass[k]);
      for (let k in staticClass) ret[k] = staticClass[k];
      return ret;
    }
    exports.staticClass2Object = staticClass2Object;
    Utils.staticClass2Object = staticClass2Object;
    function class2Object(classObj, exceptClass, _isRecursion = false) {
      let ret = {};
      let o = classObj;
      let proto = Object.getPrototypeOf(o);
      if (o && o !== exceptClass && o !== Object && proto && null != Object.getPrototypeOf(proto)) {
        "function" == typeof proto && "" == proto.name || (ret = class2Object(proto, exceptClass, true));
        for (let k of Object.getOwnPropertyNames(o.prototype)) "constructor" !== k && "prototype" !== k && (ret[k] = o.prototype[k]);
        if (!_isRecursion) {
          let obj = new classObj();
          for (let k in obj) ret[k] = obj[k];
        }
      }
      return ret;
    }
    exports.class2Object = class2Object;
    Utils.class2Object = class2Object;
    function getMethodName(classObj, method) {
      if (classObj && classObj.prototype) for (let k in classObj.prototype) if (method === classObj.prototype[k]) return k;
      return "unknow_method";
    }
    exports.getMethodName = getMethodName;
    Utils.getMethodName = getMethodName;
    function getMethodNames(obj, regExp, onlyPublic = true) {
      let ret = [];
      let o = obj;
      let proto = Object.getPrototypeOf(o);
      while (proto && ("function" != typeof proto || "" != proto.name) && null != Object.getPrototypeOf(proto)) {
        for (let k of Object.getOwnPropertyNames(proto)) try {
          onlyPublic && "_" == k[0] || "constructor" == k || regExp && !regExp.test(k) || !isFunction(obj[k]) || arrayUniquePush(ret, k);
        } catch (_a) {}
        o = proto;
        proto = Object.getPrototypeOf(o);
      }
      for (let k of Object.getOwnPropertyNames(obj)) try {
        onlyPublic && "_" == k[0] || "constructor" == k || regExp && !regExp.test(k) || !isFunction(obj[k]) || arrayUniquePush(ret, k);
      } catch (_b) {}
      for (let k in obj) try {
        onlyPublic && "_" == k[0] || "constructor" == k || regExp && !regExp.test(k) || !isFunction(obj[k]) || arrayUniquePush(ret, k);
      } catch (_c) {}
      return ret;
    }
    exports.getMethodNames = getMethodNames;
    Utils.getMethodNames = getMethodNames;
    function keys(obj) {
      if (!isObject(obj)) return [];
      if (Object.keys) return Object.keys(obj);
      var _keys = [];
      for (var key in obj) Object.prototype.hasOwnProperty.call(obj, key) && _keys.push(key);
      return _keys;
    }
    exports.keys = keys;
    Utils.keys = keys;
    function parseEscape(str, decorate = "$") {
      let code2Symbol = ")!@#$%^&*(";
      let rstr = "";
      let len = str.length;
      for (let i = 0; i < len; i++) {
        let c = str.charAt(i);
        if (i > 0 && c === decorate) {
          let cc = str.charAt(i + 1);
          if (i + 3 < len && "x" === cc) {
            let code = parseInt(str.slice(i + 2, i + 4), 16);
            rstr += String.fromCharCode(code);
            i += 3;
          } else if (i + 1 < len && cc >= "0" && cc <= "9") {
            let code = Number(cc);
            if (isNaN(code)) rstr += c; else {
              rstr += code2Symbol[code];
              i += 1;
            }
          } else rstr += c;
        } else rstr += c;
      }
      return rstr;
    }
    exports.parseEscape = parseEscape;
    Utils.parseEscape = parseEscape;
    var LOG_MODE = 1;
    var mylog;
    var stackKey;
    var stackPos;
    var _logConfig;
    var _beginTick = now();
    var _lastTick = _beginTick;
    let isChromeDebug = true;
    mylog = console.log;
    stackKey = "/script/";
    stackPos = (isChromeDebug, 3);
    _logConfig = _logConfig || {
      logers: {}
    };
    function merge(a, b, isCanChangeProperty = false) {
      if (void 0 === b || null === b) return a;
      if (null == a) {
        a = copy(b);
        return a;
      }
      let typeA = typeof a, typeB = typeof b;
      let isObjectA = "object" == typeA || "function" == typeA;
      let isObjectB = "object" == typeB || "function" == typeB;
      if (isObjectA && isObjectB) {
        for (var k in b) if (b.hasOwnProperty(k)) if (a.hasOwnProperty(k)) {
          let objTypeA = toString.call(a[k]);
          let objTypeB = toString.call(b[k]);
          a[k] = objTypeA == objTypeB ? "[object Object]" === objTypeA ? merge(a[k], b[k], true) : copy(b[k]) : merge(a[k], b[k], isCanChangeProperty);
        } else isCanChangeProperty && (a[k] = copy(b[k]));
      } else typeA !== typeB ? isCanChangeProperty ? a = copy(b) : "string" == typeA && "number" == typeB ? a = "" + b : "string" == typeB ? "number" == typeA ? a = Number(b) : "object" == typeA && ("{" == b[0] && "}" == b[b.length - 1] || "[" == b[0] && "]" == b[b.length - 1]) && (a = unserialize(b)) : "string" == typeA && "object" == typeB && (a = serialize(b)) : a = copy(b);
      return a;
    }
    exports.merge = merge;
    Utils.merge = merge;
    function configureLog(jsonObj) {
      _logConfig = merge(_logConfig, jsonObj);
    }
    exports.configureLog = configureLog;
    Utils.configureLog = configureLog;
    function setLogMode(logMode) {
      LOG_MODE = logMode;
    }
    exports.setLogMode = setLogMode;
    Utils.setLogMode = setLogMode;
    function getStack(isFullPath) {
      var err = new Error();
      var stacks = (err.stack || "").split("\n");
      if (isFullPath) return stacks;
      var fileLines = [];
      for (var i = 0; i < stacks.length; i++) {
        var a = stacks[i].split(stackKey);
        a && a.length > 1 ? fileLines[i] = a[1] : fileLines[i] = stacks[i];
      }
      return fileLines;
    }
    exports.getStack = getStack;
    Utils.getStack = getStack;
    let __logger = {
      name: "",
      showDate: false,
      showStack: false,
      showPass: true,
      callerLevel: 0,
      clusterID: ""
    };
    function setLogger(logger) {
      if ("string" === typeof logger) __logger.name = logger; else for (let k in logger) void 0 !== logger[k] && (__logger[k] = logger[k]);
    }
    exports.setLogger = setLogger;
    function logger(level = "", logger) {
      logger || (logger = __logger);
      let callerLevel = logger.callerLevel || 0;
      if (callerLevel >= 0) {
        let funcs = [];
        let fileNameAndLine = "";
        var stacks = getStack();
        if (stacks.length > stackPos + callerLevel) {
          var ret = stacks[stackPos + callerLevel];
          for (let n = 0; n < 1; n++) {
            let s = stacks[stackPos + callerLevel + n];
            if (s) {
              let i = s.indexOf("at ");
              if (i >= 0) {
                let j = s.indexOf(" (", i + 3);
                if (j > 0) {
                  let f = s.slice(i + 3, j);
                  if (0 === f.indexOf("Function.")) f = f.slice(9); else if (0 === f.indexOf("new ")) f = f.slice(4); else if (/^(process.|Module.|Object.|Timeout.)/.test(f)) continue;
                  funcs.unshift(f);
                }
              }
            }
          }
          let i = ret.lastIndexOf("\\");
          if (i > 0) {
            let j = ret.lastIndexOf(":");
            fileNameAndLine = ret.slice(i + 1, j);
          }
        }
        let arr = logger.showDate ? [ dateString(void 0, "MS") ] : [];
        logger.clusterID && arr.push(`[${logger.clusterID}]`);
        logger.name && arr.push(`${logger.name}`);
        if (logger.showPass) {
          var passTick = now() - _lastTick;
          _lastTick = now();
          logger.showPass && arr.push(`${passTick} `);
        }
        level && "INFO" !== level && arr.push(`${level}`);
        logger.showStack && funcs.length && arr.push(`${funcs.join("-")}`);
        logger.showStack ? fileNameAndLine && arr.push(`${fileNameAndLine}`) : fileNameAndLine && arr.push(`${fileNameAndLine.split(".")[0]}`);
        let str = `[${arr.join(" ")}${logger.showStack ? "\n" : ""}]`;
        return str ? `${str}      ` : "";
      }
      return "";
    }
    exports.logger = logger;
    Utils.logger = logger;
    function search(obj, value, values_or_SelectFunc, count) {
      count = count || 0;
      let cnt = count >= 0 ? count : -count;
      let ret = [];
      if (isArray(obj)) {
        let idx, step;
        if (count >= 0) {
          idx = 0;
          step = 1;
        } else {
          idx = obj.length - 1;
          step = 1;
        }
        for (var i = 0; i < obj.length; i++) {
          if (obj[idx] === value || "function" == typeof values_or_SelectFunc && values_or_SelectFunc(obj[idx]) || has(values_or_SelectFunc, obj[idx])) {
            ret.push(idx);
            if (0 != count) {
              cnt--;
              if (cnt <= 0) break;
            }
          }
          idx += step;
        }
      } else for (let k in obj) if (obj[k] === value || "function" == typeof values_or_SelectFunc && values_or_SelectFunc(obj[k]) || has(values_or_SelectFunc, obj[k])) {
        ret.push(k);
        if (0 != count) {
          cnt--;
          if (cnt <= 0) break;
        }
      }
      return 0 == ret.length ? null : ret;
    }
    exports.search = search;
    Utils.search = search;
    function zip(...arrays) {
      var ret = [];
      for (var a of arrays) for (let b of values(a)) search(ret, b) || ret.push(b);
      return ret;
    }
    exports.zip = zip;
    Utils.zip = zip;
    function copy(origin, eliminate, _circleObjects) {
      if (!origin || "object" !== typeof origin) return origin;
      if (origin instanceof cc.Node) return origin;
      _circleObjects = _circleObjects || [];
      _circleObjects.push(origin);
      let obj = Array.isArray(origin) ? [] : {};
      for (let f in origin) if (origin.hasOwnProperty(f) && (!has(eliminate, f) || isFunction(eliminate) && !eliminate(f, origin[f]))) switch (typeof origin[f]) {
       case "object":
        -1 == _circleObjects.indexOf(origin[f]) && (obj[f] = copy(origin[f], eliminate, _circleObjects));
        break;

       case "string":
        obj[f] = origin[f].slice(0);
        break;

       default:
        obj[f] = origin[f];
      }
      return obj;
    }
    exports.copy = copy;
    Utils.copy = copy;
    var _classToString = function(obj) {
      let className = getClassName(obj);
      if (className && "Object" !== className && "Array" !== className) return "cc_Node" === className ? `<cc.Node: name:${obj._name} pos:${obj._position}>` : `<class ${className}>`;
      return null;
    };
    function j(obj, showAllProperty, tabStr, tab, circleObjs) {
      circleObjs ? circleObjs.push(obj) : circleObjs = [ obj ];
      if (void 0 === obj) return "undefined";
      if (null === obj) return "null";
      let typeObj = typeof obj;
      if ("object" !== typeObj && !("function" == typeObj && size(obj) > 0)) return "" + obj;
      tabStr = tabStr || "   ";
      tab = tab || 0;
      var sTab = "";
      for (var i = 0; i <= tab - 1; i++) sTab += tabStr;
      var str = "";
      var idx = 0;
      var hasSubObject = false;
      var isArray = Array.isArray(obj);
      var s;
      if (isArray) {
        s = obj.length;
        if (s > 30) str += "[...(" + s + ")]"; else {
          var prevStr = "";
          var sameCount = 0;
          var i = 0;
          for (var f in obj) {
            var _str = "";
            var objString = toString.call(obj[f]);
            idx > 0 && (_str += sTab + tabStr);
            parseInt(f) !== i && (_str += f + ": ");
            if (void 0 === obj[f]) _str += "undefined"; else if (null === obj[f]) _str += "null"; else if ("function" == typeof obj[f]) _str += "function"; else if ("[object Date]" == objString) _str += objString + " " + dateString(obj[f]); else if (Array.isArray(obj[f]) || isObject(obj[f]) || "[object Object]" == objString || "[object Object]," == objString || "[Object]" == objString) if (-1 !== circleObjs.indexOf(obj[f])) _str += obj[f] + "(circle)"; else if (obj[f]["_className"]) _str += "[object " + obj[f]["_className"] + "]"; else if (has(obj[f], "$id")) _str += "{class : " + obj[f].$id + "}"; else {
              let ccn = _classToString(obj[f]);
              if (ccn) _str += ccn; else if ("[object Object]" == objString || "[object Array]" == objString || "[object Function]" == objString) {
                hasSubObject = true;
                _str += j(obj[f], showAllProperty, tabStr, tab + 1, circleObjs);
              } else _str += objString;
            } else "string" == typeof obj[f] ? _str += "'" + obj[f] + "'" : _str += obj[f];
            str += _str;
            idx++;
            s > idx && s > 1 && (str += ",\n");
            i++;
          }
        }
      } else {
        if ("[object Date]" == toString.call(obj)) return dateString(obj);
        s = 0;
        for (var f in obj) (showAllProperty || obj.hasOwnProperty(f)) && s++;
        for (var f in obj) if (showAllProperty || obj.hasOwnProperty(f)) {
          var objString = toString.call(obj[f]);
          idx > 0 && (str += sTab + tabStr);
          obj.hasOwnProperty(f) || (str += "prototype.");
          if (void 0 === obj[f]) str += f + ": undefined"; else if ("__" === f.substr(0, 2)) str += f + ": " + obj[f]; else if (null === obj[f]) str += f + ": null"; else if ("function" == typeof obj[f]) str += f + ": function"; else if ("[object Date]" == objString) str += objString + " " + dateString(obj[f]); else if (Array.isArray(obj[f]) || isObject(obj[f]) || "[object Object]" == objString || "[object Object]," == objString || "[Object]" == objString) if (-1 !== circleObjs.indexOf(obj[f])) str += f + ": " + obj[f] + "(circle)"; else if (obj[f]["_className"]) str += f + ": [object " + obj[f]["_className"] + "]"; else if (has(obj[f], "$id")) str += f + ": {class : " + obj[f].$id + "}"; else {
            let ccn = _classToString(obj[f]);
            if (ccn) str += f + ": " + ccn; else if ("[object Object]" == objString || "[object Array]" == objString || "[object Function]" == objString) {
              hasSubObject = true;
              str += f + ": " + j(obj[f], showAllProperty, tabStr, tab + 1, circleObjs);
            } else str += f + ": " + objString;
          } else "string" == typeof obj[f] ? str += f + ": '" + obj[f] + "'" : str += f + ": " + obj[f];
          idx++;
          s > idx && s > 1 && (str += ",\n");
        }
      }
      var objName = toString.call(obj);
      var l = ("[object Object]" != objName && "[object Array]" != objName ? objName + "  " : "") + (isArray ? "[" : "{");
      var r = isArray ? "]" : "}";
      if (-1 === str.indexOf("\n")) return l + str + r;
      var ret = l + "\n" + sTab + (tab >= 0 ? tabStr : "") + str + "\n" + sTab + r;
      return !hasSubObject && ret.length < 100 ? ret.replace(/\n/g, "").replace(new RegExp(tabStr, "gm"), "").replace(",", ", ") : ret;
    }
    exports.j = j;
    Utils.j = j;
    function dict(_keys, value) {
      if (!_keys) return {};
      var ret = {};
      if (!Array.isArray(_keys)) {
        ret[_keys] = value;
        return ret;
      }
      for (let k = 0; k < _keys.length; k++) {
        let v = _keys[k];
        void 0 === value ? ret[v] = void 0 : Array.isArray(value) ? k < value.length ? ret[v] = value[k] : ret[v] = void 0 : ret[v] = "object" === typeof value ? value[v] : value;
      }
      return ret;
    }
    exports.dict = dict;
    Utils.dict = dict;
    function now() {
      return Date.now();
    }
    exports.now = now;
    var createCallback = function(func, context, argCount) {
      if (void 0 === context) return func;
      switch (null == argCount ? 3 : argCount) {
       case 1:
        return function(value) {
          return func.call(context, value);
        };

       case 2:
        return function(value, other) {
          return func.call(context, value, other);
        };

       case 3:
        return function(value, index, collection) {
          return func.call(context, value, index, collection);
        };

       case 4:
        return function(accumulator, value, index, collection) {
          return func.call(context, accumulator, value, index, collection);
        };
      }
      return function() {
        return func.apply(context, arguments);
      };
    };
    function newDate(...date) {
      let ret = new Date(...date);
      return ret.getTime() ? ret : new Date();
    }
    exports.newDate = newDate;
    Utils.newDate = newDate;
    function dateString(date, mode = "S") {
      date = void 0 == date ? new Date() : isDate(date) ? date : newDate(date);
      let m = date.getMonth() + 1;
      let d = date.getDate();
      if ("YM" === mode) return `${date.getFullYear()}-${m < 10 ? "0" + m : m}`;
      if ("YMD" === mode) return `${date.getFullYear()}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d}`;
      {
        let hh = date.getHours();
        let mm = date.getMinutes();
        let ss = date.getSeconds();
        let r = `${date.getFullYear()}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d} ${hh < 10 ? "0" + hh : hh}:${mm < 10 ? "0" + mm : mm}:${ss < 10 ? "0" + ss : ss}`;
        return "MS" === mode ? `${r}:${date.getMilliseconds()}` : r;
      }
    }
    exports.dateString = dateString;
    Utils.dateString = dateString;
    function iteratee(value, context, argCount) {
      if (null == value) return Utils.identity;
      if (isFunction(value)) return createCallback(value, context, argCount);
      if (isObject(value)) return matches(value);
      return property(value);
    }
    Utils.iteratee = iteratee;
    var iterateeFunc = iteratee;
    function each(obj, iteratee, context) {
      if (null == obj) return obj;
      iteratee = createCallback(iteratee, context);
      var i, length = obj.length;
      if (length === +length) for (i = 0; i < length; i++) iteratee(obj[i], i, obj); else {
        var _keys = keys(obj);
        for (i = 0, length = _keys.length; i < length; i++) iteratee(obj[_keys[i]], _keys[i], obj);
      }
      return obj;
    }
    exports.each = each;
    function map(obj, iteratee, context) {
      if (null == obj) return [];
      iteratee = iterateeFunc(iteratee, context);
      var _keys = Array.isArray(obj) ? null : keys(obj), length = (_keys || obj).length, results = Array(length), currentKey;
      for (var index = 0; index < length; index++) {
        currentKey = _keys ? _keys[index] : index;
        results[index] = iteratee(obj[currentKey], currentKey, obj);
      }
      return results;
    }
    exports.map = map;
    function objs(obj, iteratee, context) {
      if (null == obj) return {};
      iteratee = iterateeFunc(iteratee, context);
      var _keys = Array.isArray(obj) ? null : keys(obj), length = (_keys || obj).length, results = {}, currentKey;
      for (var index = 0; index < length; index++) {
        currentKey = _keys ? _keys[index] : index;
        let [k, v] = iteratee(obj[currentKey], currentKey, obj) || [ "", "" ];
        k && (results[k] = v);
      }
      return results;
    }
    exports.objs = objs;
    Utils.objs = objs;
    function range(start, stop, step) {
      if (arguments.length <= 1) {
        stop = start || 0;
        start = 0;
      }
      if (start == stop) return [];
      step = step || (start > stop ? -1 : 1);
      var length = Math.max(Math.ceil((stop - start) / step), 0);
      var range = Array(length);
      for (var idx = 0; idx < length; idx++, start += step) range[idx] = start;
      return range;
    }
    exports.range = range;
    Utils.range = range;
    function sleep(timeMS) {
      return __awaiter(this, void 0, void 0, function*() {
        let p = new Promise((resolve, reject) => {
          setTimeout(() => {
            resolve();
          }, timeMS);
        });
        return yield p;
      });
    }
    exports.sleep = sleep;
    Utils.sleep = sleep;
    function has(obj, key) {
      if (obj === key) return true;
      if (!obj) return false;
      if (Array.isArray(obj)) {
        for (let v of obj) if (has(key, v)) return true;
        return false;
      }
      if (Array.isArray(key)) {
        for (let v of key) if (has(obj, v)) return true;
        return false;
      }
      return "object" == typeof obj && Object.prototype.hasOwnProperty.call(obj, key);
    }
    exports.has = has;
    function values(obj) {
      if (!obj) return [];
      var ret = [];
      for (var f in obj) obj.hasOwnProperty(f) && ret.push(obj[f]);
      return ret;
    }
    exports.values = values;
    Utils.values = values;
    function value(v, d) {
      return void 0 === v ? d : v;
    }
    exports.value = value;
    Utils.value = value;
    function serialize(value, replacer, format) {
      if (!format || "number" == typeof format) return JSON.stringify(value, replacer, format);
      {
        let typeofFormat = typeof format;
        if ("function" == typeofFormat) return format(value);
      }
    }
    exports.serialize = serialize;
    Utils.serialize = serialize;
    function unserialize(text, reviver, format) {
      if (!text || "" == text || "string" != typeof text || "<xml>" == text.slice(0, 5)) return text;
      if (format) {
        let typeofFormat = typeof format;
        if ("function" == typeofFormat) return format(text, reviver);
      } else try {
        return JSON.parse(text, reviver);
      } catch (e) {
        return text;
      }
    }
    exports.unserialize = unserialize;
    Utils.unserialize = unserialize;
    function shuffle(obj, n) {
      var set = obj && obj.length === +obj.length ? obj : values(obj);
      var length = set.length;
      n = n || length;
      n > length && (n = length);
      var shuffled = new Array(n);
      for (var index = 0, r; index < n; index++) {
        r = rand(0, index + 1);
        r !== index && (shuffled[index] = shuffled[r]);
        shuffled[r] = set[index];
      }
      return shuffled;
    }
    exports.shuffle = shuffle;
    Utils.shuffle = shuffle;
    function rand(n, m) {
      if ("object" === typeof n) {
        let nn;
        nn = Array.isArray(n) ? n : values(n);
        var len = nn.length;
        if (null == m) return nn[0 | Math.random() * len];
        var ret = shuffle(nn);
        return ret.slice(0, m);
      }
      if (isVoid(n)) return 0 | 100 * Math.random();
      m = m || 0;
      return Math.floor(n + Math.random() * (m - n));
    }
    exports.rand = rand;
    Utils.rand = rand;
    function randFloat(n, m) {
      if (n instanceof Array) {
        var len = n.length;
        if (null == m) return n[0 | Math.random() * len];
        var ret = shuffle(n);
        return ret.slice(0, m);
      }
      if (isVoid(n)) return Math.random();
      m = m || 0;
      return n + Math.random() * (m - n);
    }
    exports.randFloat = randFloat;
    Utils.randFloat = randFloat;
    function randDiffent(arrFrom, arrDiffent) {
      let idx = rand(arrFrom.length);
      for (let i = 0; i < arrFrom.length; i++) {
        let item = arrFrom[(i + idx) % arrFrom.length];
        if (arrDiffent.indexOf(item) < 0) return item;
      }
      return null;
    }
    exports.randDiffent = randDiffent;
    Utils.randDiffent = randDiffent;
    function randString(len = 1, opt = {
      uppercase: true,
      lowercase: true,
      number: true,
      symbol: true
    }) {
      let str = "";
      opt.uppercase && (str += "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
      opt.lowercase && (str += "bcdefghijklmnopqrstuvwxyz");
      opt.number && (str += "0123456789");
      opt.symbol && (str += "~!@#$%^&*()_+{}|?<>.,;:[]-=");
      len = len || 6;
      let s = "";
      for (let i = 0; i < len; i++) s += str[rand(str.length)];
      return s;
    }
    exports.randString = randString;
    Utils.randString = randString;
    function randText(len = 1, type) {
      if (len <= 0) return "";
      if (type) {
        if ("cn" === type) {
          let i = 0;
          let _str = "";
          let _base = 2e4;
          let _range = 1e3;
          for (let i = 0; i < len; i++) if (len > 3 && i === len - 1) _str += "\u3002"; else {
            let c = rand(_range + i > 2 ? 100 : 0);
            if (c >= _range) _str += "\uff0c"; else {
              let _lower = parseInt("" + c);
              _str += String.fromCharCode(_base + _lower);
            }
          }
          return _str;
        }
        if ("en" === type) {
          let _str = "";
          for (let i = 0; i < len; i++) {
            let c = rand(97, i > 3 ? 130 : 123);
            _str += c >= 123 ? " " : String.fromCharCode(c);
          }
          return _str;
        }
        return "" + (len > 1 ? rand(Math.pow(10, len - 1), Math.pow(10, len)) : rand(10));
      }
      return randText(len, rand([ "cn", "en", "number" ]));
    }
    exports.randText = randText;
    Utils.randText = randText;
    function arrayGet(array, idx) {
      if (array) return void 0 === idx ? array[0 | Math.random() * array.length] : idx < 0 ? array[limit(array.length + idx, 0, array.length - 1)] : array[limit(idx, 0, array.length - 1)];
    }
    exports.arrayGet = arrayGet;
    Utils.arrayGet = arrayGet;
    function limit(n, min, max) {
      let typeN = typeof n;
      if ("object" == typeN) {
        var ret = {};
        if (Array.isArray(min)) {
          if (Array.isArray(n)) {
            let r = [];
            for (let v of n) -1 != min.indexOf(v) && r.push(v);
            return r;
          }
          for (let v of min) n.hasOwnProperty(v) && (ret[v] = n[v]);
          return ret;
        }
        if ("object" == typeof min) {
          for (let k in n) if (n.hasOwnProperty(k) && min.hasOwnProperty(k)) {
            let v = n[k], typeN = typeof v, typeM = typeof min[k];
            typeN == typeM || "string" == typeM && "number" == typeN ? ret[k] = copy(v) : "number" == typeN && isDate(min[k]) ? ret[k] = newDate(v) : "string" == typeN ? "number" == typeM ? ret[k] = parseNumber(v) : "object" == typeM ? "{" == v[0] && "}" == v[v.length - 1] || "[" == v[0] && "]" == v[v.length - 1] ? ret[k] = unserialize(v) : isDate(min[k]) && (ret[k] = newDate(v)) : "boolean" == typeM && (ret[k] = "" != v && "0" != v && "false" != v) : "string" == typeM && "object" == typeN && (ret[k] = serialize(v));
          }
          return ret;
        }
        return n;
      }
      {
        let typeM = typeof min;
        if ("number" !== typeN) {
          if (typeN === typeM) return n;
          if (isDate(min)) return newDate(n);
          n = 0;
        }
        if ("number" === typeM) {
          n = parseNumber(n);
          if (isNaN(n)) return min;
          void 0 === max && (max = Number.MAX_VALUE);
          if (n < min) return min;
          if (n > max) return max;
          return n;
        }
        return isArray(min) && min.length >= 2 ? limit(n, min[0], min[1]) : isDate(min) ? newDate(n) : n;
      }
    }
    exports.limit = limit;
    Utils.limit = limit;
    function parseNumber(str) {
      let n = Number(str);
      if (isNaN(n)) {
        console.error(`----parseNumber isNaN  ${str}`);
        return 0;
      }
      return n;
    }
    exports.parseNumber = parseNumber;
    Utils.parseNumber = parseNumber;
    function bigNumberString(s, isDecimal) {
      if (Number(s) < 0) return "-" + bigNumberString(-s, isDecimal);
      if (/[^0-9\.]/.test(s.toString())) return "0";
      if (null == s || "" == s) return "0";
      s = s.toString().replace(/^(\d*)$/, "$1.");
      s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");
      s = s.replace(".", ",");
      var re = /(\d)(\d{3},)/;
      while (re.test(s)) s = s.replace(re, "$1,$2");
      s = s.replace(/,(\d\d)$/, ".$1");
      if (!isDecimal) {
        var a = s.split(".");
        s = a[0];
      }
      return s;
    }
    exports.bigNumberString = bigNumberString;
    Utils.bigNumberString = bigNumberString;
    function numberFitLength(num, fitLength = 0, isDecimal = false) {
      const rx = /\.0+$|(\.[0-9]*[1-9])0+$/;
      let len;
      if (isDecimal) {
        len = num.toFixed(0).length;
        len = len < fitLength ? fitLength - len : 0;
      } else len = 0;
      num = Math.floor(num * Math.pow(10, len)) / Math.pow(10, len);
      return num.toFixed(len).replace(rx, "$1");
    }
    exports.numberFitLength = numberFitLength;
    Utils.numberFitLength = numberFitLength;
    function _bigNumberUnitString(num, si, fitLength = 0, isFixDot = false, isDecimal = false) {
      const rx = /\.0+$|(\.[0-9]*[1-9])0+$/;
      let i;
      for (i = si.length - 1; i > 0; i--) if (num >= si[i].value) break;
      let v = num / si[i].value;
      let len;
      if (0 !== i || isDecimal) if (isFixDot) {
        len = fitLength;
        v = Math.floor(v * Math.pow(10, len)) / Math.pow(10, len);
      } else {
        let fl = v < 0 ? fitLength + 1 : fitLength;
        len = v.toFixed(0).length;
        len = len < fl ? fl - len : 0;
      } else len = 0;
      return v.toFixed(len).replace(rx, "$1") + si[i].symbol;
    }
    function bigNumberKMGString(num, fitLength = 0, isFixDot = false, isDecimal = false) {
      const si = [ {
        value: 1,
        symbol: ""
      }, {
        value: 1e3,
        symbol: "K"
      }, {
        value: 1e6,
        symbol: "M"
      }, {
        value: 1e9,
        symbol: "B"
      }, {
        value: 1e12,
        symbol: "T"
      }, {
        value: 1e15,
        symbol: "P"
      }, {
        value: 1e18,
        symbol: "E"
      } ];
      return _bigNumberUnitString(num, si, fitLength, isFixDot, isDecimal);
    }
    exports.bigNumberKMGString = bigNumberKMGString;
    Utils.bigNumberKMGString = bigNumberKMGString;
    function bigNumberUnitString(num, fitLength = 0, isFixDot = false, isDecimal = false) {
      const si = [ {
        value: 1,
        symbol: ""
      }, {
        value: 1e4,
        symbol: "\u4e07"
      }, {
        value: 1e8,
        symbol: "\u4ebf"
      }, {
        value: 1e12,
        symbol: "\u4e07\u4ebf"
      }, {
        value: 1e16,
        symbol: "\u4e07\u4e07\u4ebf"
      } ];
      return _bigNumberUnitString(num, si, fitLength, isFixDot, isDecimal);
    }
    exports.bigNumberUnitString = bigNumberUnitString;
    Utils.bigNumberUnitString = bigNumberUnitString;
    function bigNumberChineseString(num) {
      if (!/^\d*(\.\d*)?$/.test(num)) {
        cc.error("Number is wrong!");
        return "Number is wrong!";
      }
      var AA = new Array("\u96f6", "\u58f9", "\u8d30", "\u53c1", "\u8086", "\u4f0d", "\u9646", "\u67d2", "\u634c", "\u7396");
      var BB = new Array("", "\u62fe", "\u4f70", "\u4edf", "\u842c", "\u5104", "\u70b9", "");
      var a = ("" + num).replace(/(^0*)/g, "").split("."), k = 0, re = "";
      for (var i = a[0].length - 1; i >= 0; i--) {
        switch (k) {
         case 0:
          re = BB[7] + re;
          break;

         case 4:
          new RegExp("0{4}\\d{" + (a[0].length - i - 1) + "}$").test(a[0]) || (re = BB[4] + re);
          break;

         case 8:
          re = BB[5] + re;
          BB[7] = BB[5];
          k = 0;
        }
        k % 4 == 2 && "0" != a[0].charAt(i + 2) && "0" == a[0].charAt(i + 1) && (re = AA[0] + re);
        "0" != a[0].charAt(i) && (re = AA[a[0].charAt(i)] + BB[k % 4] + re);
        k++;
      }
      if (a.length > 1) {
        re += BB[6];
        for (var i = 0; i < a[1].length; i++) re += AA[a[1].charAt(i)];
      }
      return re;
    }
    exports.bigNumberChineseString = bigNumberChineseString;
    Utils.bigNumberChineseString = bigNumberChineseString;
    function isNaN(obj) {
      return "number" == typeof obj && obj !== +obj;
    }
    exports.isNaN = isNaN;
    Utils.isNaN = isNaN;
    function isDecimal(num) {
      return num % 1 !== 0;
    }
    exports.isDecimal = isDecimal;
    Utils.isNaN = isNaN;
    function incNum(from, to, maxStep, stepMS, stepCallback, controller = {
      shouldStop: false
    }) {
      return __awaiter(this, void 0, void 0, function*() {
        let inc = to - from;
        let incStep = inc / maxStep;
        let i = 1;
        stepCallback(i === maxStep ? to : from + incStep * i);
        let stop;
        let over = () => {
          clearInterval(timer);
          i = maxStep;
          stop && stop();
          try {
            stepCallback(to);
          } catch (error) {}
        };
        let timer = setInterval(() => {
          if (controller.shouldStop) {
            over();
            return;
          }
          i++;
          stepCallback(i === maxStep ? to : from + incStep * i);
        }, stepMS);
        yield new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function*() {
          stop = resolve;
          yield sleep(maxStep * stepMS);
          resolve(true);
        }));
        over();
      });
    }
    exports.incNum = incNum;
    Utils.incNum = incNum;
    function parsePath(path) {
      let p = path.split(/\/|\\|\//g);
      let file = p[p.length - 1];
      let i = file.lastIndexOf(".");
      i < 0 && (i = file.length);
      return {
        isUrl: "http" === p[0].slice(0, 4),
        paths: p,
        name: file.slice(0, i),
        ext: file.slice(i + 1)
      };
    }
    exports.parsePath = parsePath;
    Utils.parsePath = parsePath;
    function waiting(condition, target, timeoutMS = 0, step = 0) {
      return __awaiter(this, void 0, void 0, function*() {
        if (isFinite(condition)) return yield sleep(condition);
        if (!isObject(condition)) return;
        let isFunc = isFunction(condition);
        timeoutMS = timeoutMS || 6e6;
        step = step || 100;
        return yield new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function*() {
          for (let t = 0; t < timeoutMS; t += step) {
            if (isFunc) {
              if (condition.call(target)) return resolve(true);
            } else if (condition["ready"] || condition["ok"]) return resolve(true);
            yield sleep(step);
          }
          resolve(false);
        }));
      });
    }
    exports.waiting = waiting;
    Utils.waiting = waiting;
    function checkEmail(email) {
      var re = /^[A-Za-z\d]+([-_\.][A-Za-z\d]+)*@([A-Za-z\d]+[-\.])+[A-Za-z\d]{2,4}(,[A-Za-z\d]+([-_\.][A-Za-z\d]+)*@([A-Za-z\d]+[-\.])+[A-Za-z\d]{2,4})*$/;
      return re.test(email);
    }
    exports.checkEmail = checkEmail;
    Utils.checkEmail = checkEmail;
    function checkPassword(pwd) {
      let reg = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{6,20}$/;
      return reg.test(pwd);
    }
    exports.checkPassword = checkPassword;
    Utils.checkPassword = checkPassword;
    function sprintf(format, ...args) {
      function str_repeat(i, m) {
        for (var o = []; m > 0; o[--m] = i) ;
        return o.join("");
      }
      var i = 0, a, f = arguments[i++], o = [], m, p, c, x, s = "";
      while (f) {
        if (m = /^[^\x25]+/.exec(f)) o.push(m[0]); else if (m = /^\x25{2}/.exec(f)) o.push("%"); else {
          if (!(m = /^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(f))) {
            console.error("---sprintf err Huh ?! ", format, args);
            console.error("Huh ?!");
            return format;
          }
          {
            if (null == (a = arguments[m[1] || i++]) || void 0 == a) {
              console.error("---sprintf err Too few arguments. ", format, args);
              return format;
            }
            let ta = typeof a;
            if (/[^s]/.test(m[7]) && "number" != ta) {
              if ("string" !== ta || isNaN(Number(a))) {
                console.error("---sprintf err Too few arguments. ", format, args);
                console.error("Expecting number but found " + typeof a);
                return format;
              }
              a = Number(a);
            }
            switch (m[7]) {
             case "b":
              a = a.toString(2);
              break;

             case "c":
              a = String.fromCharCode(a);
              break;

             case "d":
              a = parseInt(a);
              break;

             case "e":
              a = m[6] ? a.toExponential(m[6]) : a.toExponential();
              break;

             case "f":
              a = m[6] ? parseFloat(a).toFixed(m[6]) : parseFloat(a);
              break;

             case "o":
              a = a.toString(8);
              break;

             case "s":
              a = (a = String(a)) && m[6] ? a.substring(0, m[6]) : a;
              break;

             case "u":
              a = Math.abs(a);
              break;

             case "x":
              a = a.toString(16);
              break;

             case "X":
              a = a.toString(16).toUpperCase();
            }
            a = /[def]/.test(m[7]) && m[2] && a >= 0 ? "+" + a : a;
            c = m[3] ? "0" == m[3] ? "0" : m[3].charAt(1) : " ";
            x = m[5] - String(a).length - s.length;
            p = m[5] ? str_repeat(c, x) : "";
            o.push(s + (m[4] ? a + p : p + a));
          }
        }
        f = f.substring(m[0].length);
      }
      return o.join("");
    }
    exports.sprintf = sprintf;
    Utils.sprintf = sprintf;
    function sortPaths(paths) {
      paths.sort((a, b) => {
        for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) {
          a = a.slice(i);
          b = b.slice(i);
          break;
        }
        let d = parseInt(a) - parseInt(b);
        return d > 0 ? 1 : d < 0 ? -1 : a === b ? 0 : a > b ? 1 : -1;
      });
      return paths;
    }
    exports.sortPaths = sortPaths;
    Utils.sortPaths = sortPaths;
    function equals(a, b, epsilon = 1e-5) {
      return Math.abs(a - b) < epsilon;
    }
    exports.equals = equals;
    Utils.equals = equals;
    function swap(array, indexA, indexB) {
      const temp = array[indexA];
      array[indexA] = array[indexB];
      array[indexB] = temp;
    }
    exports.swap = swap;
    Utils.swap = swap;
    cc._RF.pop();
  }, {} ],
  "MT3SETB-vip_event": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "e0733t8NStMB4i8NtfpA6EO", "MT3SETB-vip_event");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.vip_event = void 0;
    const MT3SETB_vip_1 = require("../api/MT3SETB-vip");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let vip_event = class vip_event extends cc.Component {
      constructor() {
        super();
        this.onSignEvent = null;
        this.onUpdateEvent = null;
      }
      onEnable() {
        MT3SETB_vip_1.SetVipHandler(this.onSignEvent, this.onUpdateEvent);
      }
      onDisable() {
        MT3SETB_vip_1.RemoveVipHandler(this.onSignEvent, this.onUpdateEvent);
      }
    };
    __decorate([ property(cc.Component.EventHandler) ], vip_event.prototype, "onSignEvent", void 0);
    __decorate([ property(cc.Component.EventHandler) ], vip_event.prototype, "onUpdateEvent", void 0);
    vip_event = __decorate([ ccclass ], vip_event);
    exports.vip_event = vip_event;
    cc._RF.pop();
  }, {
    "../api/MT3SETB-vip": "MT3SETB-vip"
  } ],
  "MT3SETB-vip": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "ad544Kd3fBEpbyLa97pzhsp", "MT3SETB-vip");
    "use strict";
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.SetVipSignReward = exports.GetVipSignReward = exports.RemoveVipHandler = exports.SetVipHandler = exports.GetVipData = exports.UpdateVip = exports.clearVIPInterval = exports.SetVip = exports.HasVipData = exports.Treasure = void 0;
    const MT3SETB_event_1 = require("./MT3SETB-event");
    const MT3SETB_glue_1 = __importDefault(require("./MT3SETB-glue"));
    const MT3SETB_mtf_pb_wrapper_1 = require("./MT3SETB-mtf_pb_wrapper");
    const MT3SETB_websocket_1 = require("./MT3SETB-websocket");
    class VipData {
      constructor() {
        this.treasure = [];
      }
    }
    class Treasure {}
    exports.Treasure = Treasure;
    var updateTime, u, vipData = null;
    const HasVipData = function() {
      return null != vipData;
    };
    exports.HasVipData = HasVipData;
    const SetVip = function(data) {
      if (null != data) {
        (vipData = new VipData()).exp = data.exp;
        vipData.isMax = data.isMax;
        vipData.level = data.level;
        if (0 != data.treasure.info.length) {
          updateTime = 1e3 * data.treasure.next.toNumber();
          data.treasure.info.forEach(function(treasureInfo) {
            var treasure = new Treasure();
            treasure.exp = data.treasure.exp;
            treasure.index = treasureInfo.index;
            treasure.level = treasureInfo.minVip;
            treasure.vip = data.level;
            treasure.maxExp = treasureInfo.exp;
            treasureInfo.isOpen ? treasure.state = 4 : treasure.vip < treasure.level ? treasure.state = 1 : treasure.vip >= treasure.level && treasure.exp >= treasure.maxExp ? treasure.state = 3 : treasure.state = 2;
            vipData.treasure.push(treasure);
          });
          u = setInterval(function() {
            null != vipData && MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_VIP_EXP_REQ, null);
          }, 3e4);
        }
      }
    };
    exports.SetVip = SetVip;
    const clearVIPInterval = function() {
      clearInterval(u);
    };
    exports.clearVIPInterval = clearVIPInterval;
    const UpdateVip = function(data) {
      if (null != vipData) {
        vipData.exp = data.exp;
        vipData.isMax = data.isMax;
        vipData.level = data.level;
        vipData.treasure.forEach(function(treasureInfo) {
          treasureInfo.exp = data.treasure;
          treasureInfo.vip = data.level;
          4 == treasureInfo.state ? treasureInfo.state = 4 : treasureInfo.vip < treasureInfo.level ? treasureInfo.state = 1 : treasureInfo.vip >= treasureInfo.level && treasureInfo.exp >= treasureInfo.maxExp ? treasureInfo.state = 3 : treasureInfo.state = 2;
        });
        updateEventHandler.emit([]);
        MT3SETB_glue_1.default.uiCtrl_checkToolRedPoint && MT3SETB_glue_1.default.uiCtrl_checkToolRedPoint();
      }
    };
    exports.UpdateVip = UpdateVip;
    const GetVipData = function() {
      if (new Date().getTime() > updateTime) {
        updateTime += 6048e5;
        vipData.treasure.forEach(function(e) {
          e.exp = 0;
          e.state = 1;
        });
        updateEventHandler.emit([]);
      }
      return vipData;
    };
    exports.GetVipData = GetVipData;
    var signEventHandler = new MT3SETB_event_1.EventHandler(), updateEventHandler = new MT3SETB_event_1.EventHandler();
    const SetVipHandler = function(signEvent, updateEvent) {
      signEventHandler.add(signEvent);
      updateEventHandler.add(updateEvent);
    };
    exports.SetVipHandler = SetVipHandler;
    const RemoveVipHandler = function(signEvent, updateEvent) {
      signEventHandler.remove(signEvent);
      updateEventHandler.remove(updateEvent);
    };
    exports.RemoveVipHandler = RemoveVipHandler;
    const GetVipSignReward = function(data) {
      var signReq = new MT3SETB_mtf_pb_wrapper_1.mtf.VipSignReq();
      signReq.index = data;
      var o = MT3SETB_mtf_pb_wrapper_1.mtf.VipSignReq.encode(signReq);
      MT3SETB_websocket_1.GetSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_VIP_SIGN_REQ, o);
    };
    exports.GetVipSignReward = GetVipSignReward;
    const SetVipSignReward = function(e) {
      if (null != vipData) {
        vipData.treasure.forEach(function(t) {
          t.index == e.index && (t.state = 4);
        });
        signEventHandler.emit([ e ]);
      }
    };
    exports.SetVipSignReward = SetVipSignReward;
    cc._RF.pop();
  }, {
    "./MT3SETB-event": "MT3SETB-event",
    "./MT3SETB-glue": "MT3SETB-glue",
    "./MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-websocket": "MT3SETB-websocket"
  } ],
  "MT3SETB-webObject": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "090eeBKX7VIv4X0x2C2u8qz", "MT3SETB-webObject");
    "use strict";
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.webObjLabelRegisterGetData = exports.webObjGetHostname = exports.webObjSwipeScreenInit = exports.webObjSwipeScreenFullscreen = exports.webObjSwipeScreenIsFullscreen = exports.webObjSwipeScreenHasFullscreen = exports.webObjSwipeScreenAddGameViewMask = exports.webObjSwipeScreenHideMask = exports.webObjSwipeScreenShowMask = exports.webObjSwipeScreenSetCloseContent = exports.webObjSwipeScreenCreateHtmlTag = exports.webObjSetCursor = exports.webObjSetLogoPage = exports.webObjGetGameOrientation = exports.webObjSetOnvisibilitychange = exports.webObjGameCtrlOnLoad = void 0;
    const MT3SETB_Comm_1 = require("../../MT3SETB-Comm");
    const webObjGameCtrlOnLoad = function(gameCtrl) {
      true;
      return;
    };
    exports.webObjGameCtrlOnLoad = webObjGameCtrlOnLoad;
    const webObjSetOnvisibilitychange = function(value) {
      true;
      return;
    };
    exports.webObjSetOnvisibilitychange = webObjSetOnvisibilitychange;
    const webObjGetGameOrientation = function() {
      true;
      return true;
    };
    exports.webObjGetGameOrientation = webObjGetGameOrientation;
    const webObjSetLogoPage = function(value) {
      true;
      return;
      var e;
    };
    exports.webObjSetLogoPage = webObjSetLogoPage;
    const webObjSetCursor = function(value) {
      true;
      return;
    };
    exports.webObjSetCursor = webObjSetCursor;
    const webObjSwipeScreenCreateHtmlTag = function(swipeScreen) {
      true;
      return;
      var e;
      var t;
      var o;
      var n;
      var i;
      var a;
      var r;
      var s;
      var c;
      var l, u;
      var d;
    };
    exports.webObjSwipeScreenCreateHtmlTag = webObjSwipeScreenCreateHtmlTag;
    const webObjSwipeScreenSetCloseContent = function(swipeScreen, msg, lang) {
      true;
      return;
      var t;
      var o, n;
    };
    exports.webObjSwipeScreenSetCloseContent = webObjSwipeScreenSetCloseContent;
    const webObjSwipeScreenShowMask = function(swipeScreen) {
      true;
      return;
      var e, t, o, n;
      var i;
      var a;
    };
    exports.webObjSwipeScreenShowMask = webObjSwipeScreenShowMask;
    const webObjSwipeScreenHideMask = function(swipeScreen) {
      true;
      return;
    };
    exports.webObjSwipeScreenHideMask = webObjSwipeScreenHideMask;
    const webObjSwipeScreenAddGameViewMask = function(swipeScreen) {
      true;
      return;
      var t;
    };
    exports.webObjSwipeScreenAddGameViewMask = webObjSwipeScreenAddGameViewMask;
    const webObjSwipeScreenHasFullscreen = function() {
      true;
      return false;
    };
    exports.webObjSwipeScreenHasFullscreen = webObjSwipeScreenHasFullscreen;
    const webObjSwipeScreenIsFullscreen = function() {
      true;
      return false;
    };
    exports.webObjSwipeScreenIsFullscreen = webObjSwipeScreenIsFullscreen;
    const webObjSwipeScreenFullscreen = function(swipeScreen) {
      true;
      return;
      var e, t;
    };
    exports.webObjSwipeScreenFullscreen = webObjSwipeScreenFullscreen;
    const webObjSwipeScreenInit = function(swipeScreen) {
      true;
      return;
      var o;
      var n, i;
      var a;
    };
    exports.webObjSwipeScreenInit = webObjSwipeScreenInit;
    const webObjGetHostname = function() {
      true;
      return "";
      var t;
    };
    exports.webObjGetHostname = webObjGetHostname;
    const webObjLabelRegisterGetData = function() {
      true;
      return null;
    };
    exports.webObjLabelRegisterGetData = webObjLabelRegisterGetData;
    cc._RF.pop();
  }, {
    "../../MT3SETB-Comm": "MT3SETB-Comm"
  } ],
  "MT3SETB-websocket": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "2cc984Geg9OoKEsVf9e1Nn0", "MT3SETB-websocket");
    "use strict";
    var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
      function adopt(value) {
        return value instanceof P ? value : new P(function(resolve) {
          resolve(value);
        });
      }
      return new (P || (P = Promise))(function(resolve, reject) {
        function fulfilled(value) {
          try {
            step(generator.next(value));
          } catch (e) {
            reject(e);
          }
        }
        function rejected(value) {
          try {
            step(generator["throw"](value));
          } catch (e) {
            reject(e);
          }
        }
        function step(result) {
          result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
        }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
      });
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.GetSocket = exports.CreateSocket = exports.Socket = void 0;
    const MT3SETB_card_1 = require("./MT3SETB-card");
    const MT3SETB_debris_1 = require("./MT3SETB-debris");
    const MT3SETB_device_1 = require("./MT3SETB-device");
    const MT3SETB_event_1 = require("./MT3SETB-event");
    const MT3SETB_favorite_1 = require("./MT3SETB-favorite");
    const MT3SETB_item_1 = require("./MT3SETB-item");
    const MT3SETB_mail_1 = require("./MT3SETB-mail");
    const MT3SETB_mission_1 = require("./MT3SETB-mission");
    const MT3SETB_platform_1 = require("./MT3SETB-platform");
    const MT3SETB_profile_1 = require("./MT3SETB-profile");
    const MT3SETB_promotion_1 = require("./MT3SETB-promotion");
    const MT3SETB_reward_1 = require("./MT3SETB-reward");
    const MT3SETB_timeline_1 = require("./MT3SETB-timeline");
    const MT3SETB_track_1 = require("./MT3SETB-track");
    const MT3SETB_vip_1 = require("./MT3SETB-vip");
    const MT3SETB_reconnecting_websocket_1 = __importDefault(require("./MT3SETB-reconnecting-websocket"));
    const MT3SETB_mtf_pb_wrapper_1 = require("./MT3SETB-mtf_pb_wrapper");
    var n, w = {
      debug: false,
      minReconnectionDelay: 500,
      reconnectionDelayGrowFactor: 3,
      maxReconnectionDelay: 3e3
    }, _socket = null;
    function _getSocket() {
      return _socket;
    }
    function _getLoginData() {
      var e = new MT3SETB_mtf_pb_wrapper_1.mtf.LoginData();
      e.os = cc.sys.os;
      e.language = MT3SETB_platform_1.GetLang();
      e.browser = new MT3SETB_mtf_pb_wrapper_1.mtf.LoginData.Browser();
      e.browser.width = screen.width;
      e.browser.height = screen.height;
      e.browser.ratio = window.devicePixelRatio;
      e.browser.type = "string" == typeof cc.sys.browserType ? cc.sys.browserType : "NULL";
      e.browser.version = "string" == typeof cc.sys.browserVersion ? cc.sys.browserVersion : "NULL";
      e.version = cc.sys.osVersion;
      e.model = MT3SETB_device_1.GetDeviceModel();
      return e;
    }
    function B() {
      var e = MT3SETB_platform_1.GetConfig();
      if (e) {
        e.agent && _getSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_CONFIG_INFO, null);
        e.favorite && _getSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_FAVORITE_INFO, null);
        e.vip && _getSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_VIP_INFO, null);
        e.promotion && _getSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_PROMOTION_INFO, null);
        e.item && MT3SETB_item_1.GetItemInfo();
        e.mission && MT3SETB_mission_1.GetMissionInfo();
        e.debris && MT3SETB_debris_1.GetDebrisActivity();
        if (e.mail) {
          var t = new MT3SETB_mtf_pb_wrapper_1.mtf.MissionRequest();
          t.lang = MT3SETB_platform_1.GetLang();
          var o = MT3SETB_mtf_pb_wrapper_1.mtf.MissionRequest.encode(t);
          _getSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_MAIL_INFO, o);
        }
        e.card && _getSocket().send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_CARD_INFO, null);
      }
    }
    class Socket {
      constructor() {
        this.isLogin = false;
        this.pid = null;
        this.last = 0;
        this.onmessage = null;
        this.isLogin = false;
      }
      reconnect() {
        this.connector && this.connector.reconnect();
      }
      close() {
        this.connector && this.connector.close();
        this.pid && clearInterval(this.pid);
      }
      send(type, data) {
        if (this.connector) {
          const command = new MT3SETB_mtf_pb_wrapper_1.mtf.Command();
          command.type = type;
          command.data = data;
          const encodedMessage = MT3SETB_mtf_pb_wrapper_1.mtf.Command.encode(command);
          this.connector.send(encodedMessage);
        }
      }
      oncommand(type, data) {
        let decodedData;
        switch (type) {
         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_LOGIN_ACK:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.LoginDataAck.decode(data);
          if (decodedData.result === MT3SETB_mtf_pb_wrapper_1.mtf.LoginResult.LR_SUCCESS) {
            this.isLogin = true;
            MT3SETB_profile_1.SetProfile(decodedData);
            MT3SETB_reward_1.SetReward(decodedData.reward);
            MT3SETB_vip_1.SetVip(decodedData.vip);
            MT3SETB_promotion_1.SetPromotion(decodedData.promotion);
            MT3SETB_card_1.SetCard(decodedData.card);
            var loginData = _getLoginData(), encodedLoginData = MT3SETB_mtf_pb_wrapper_1.mtf.LoginData.encode(loginData);
            this.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_LOGIN_REQ, encodedLoginData);
            B();
          }
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_TIMELINE_NOTIFY:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.TimelineEvent.decode(data);
          MT3SETB_timeline_1.AddNotifyEvent(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_TIMELINE_SYNC:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.SceneInfo.decode(data);
          MT3SETB_timeline_1.NotifySceneInfo(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_HEART_CHECK_ACK:
          this.latency = new Date().getTime() - this.last;
          MT3SETB_event_1.EventBus.post("pong");
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_VIP_SIGN_ACK:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.VipSignAck.decode(data);
          MT3SETB_vip_1.SetVipSignReward(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_TRANSFER:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.TransferAck.decode(data);
          MT3SETB_promotion_1.TransferAck(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_LEVEL_REWARD_ACK:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.LevelRewardAck.decode(data);
          MT3SETB_reward_1.OnLevelRewardAck(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_KILL_REWARD_ACK:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.LevelRewardAck.decode(data);
          MT3SETB_reward_1.OnChestRewardAck(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_VIP_EXP_NOTIFY:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.VipExp.decode(data);
          MT3SETB_vip_1.UpdateVip(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_WEEK_REWARD_ACK:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.LevelRewardAck.decode(data);
          MT3SETB_reward_1.OnWeekRewardAck(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_CARD_NOTIFY:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.Card.Data.decode(data);
          MT3SETB_card_1.AddCard(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_TIMELINE_NOTIFY2:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.TimelineNotify2.decode(data);
          MT3SETB_timeline_1.UpdateTimeLine(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_CREATE_FISH_NOTIFY:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.CreateFishAckData.decode(data);
          MT3SETB_timeline_1.AddSingleFish(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_FISH_TRANSITION_NOTIFY:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.NotifySceneTransition.decode(data);
          MT3SETB_timeline_1.NotifyFishGroup(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_FISH_SYNC_NOTIFY:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.CreateFishAckData.decode(data);
          MT3SETB_timeline_1.AddSingleFish(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_FAVORITE_INFO:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.Favorite.decode(data);
          MT3SETB_favorite_1.SetFavorite(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_VIP_INFO:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.Vip.decode(data);
          MT3SETB_vip_1.SetVip(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_PROMOTION_INFO:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.Promotion.decode(data);
          MT3SETB_promotion_1.SetPromotion(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_ITEM_INFO:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.Item.decode(data);
          MT3SETB_item_1.SetItem(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_MISSION_INFO:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.Mission.decode(data);
          MT3SETB_mission_1.SetMission(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_ITEM_USE_ACK:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.ItemUseAck.decode(data);
          MT3SETB_item_1.UpdateItem(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_MISSION_UPDATE:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.MissionUpdate.decode(data);
          MT3SETB_mission_1.UpdateMission(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_MAIL_INFO:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.MailData.decode(data);
          MT3SETB_mail_1.SetMail(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_CARD_INFO:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.Card.decode(data);
          MT3SETB_card_1.SetCard(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_CARD_USE_ACK:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.CardUseAck.decode(data);
          MT3SETB_card_1.UpdateCard(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_MAINTAIN:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.MaintainData.decode(data);
          MT3SETB_event_1.EventBus.post("maintain_broadcast", decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_CONFIG_INFO:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.AgentConfig.decode(data);
          MT3SETB_profile_1.SetAgent(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_CHIP_NOTIFY:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.Card.ChipData.Chip.decode(data);
          MT3SETB_card_1.AddChip(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_CARD_REDEEM:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.RedeemAck.decode(data);
          MT3SETB_card_1.UpdateChip(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_DEBRIS_ACTIVITY:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.DebrisActivity.decode(data);
          MT3SETB_debris_1.SetDebrisActivity(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_DEBRIS_INFO:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.DebrisInfoAck.decode(data);
          MT3SETB_debris_1.SetDebrisData(decodedData);
          MT3SETB_event_1.EventBus.post("DEBRIS_GETINFO");
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_DEBRIS_GET:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.DebrisGet.decode(data);
          MT3SETB_debris_1.DebrisNotify(decodedData);
          break;

         case MT3SETB_mtf_pb_wrapper_1.mtf.ServerToUser.S2U_DEBRIS_EXCHANGE:
          decodedData = MT3SETB_mtf_pb_wrapper_1.mtf.DebrisExchangeAck.decode(data);
          MT3SETB_debris_1.UpdateDebrisData();
          MT3SETB_item_1.GetItemInfo();
          MT3SETB_event_1.EventBus.post("DEBRIS_EXCHANGE", decodedData);
        }
        this.onmessage && this.onmessage(type, data);
      }
      ping() {
        this.last = new Date().getTime();
        this.send(MT3SETB_mtf_pb_wrapper_1.mtf.UserToServer.U2S_HEART_CHECK_REQ, null);
      }
    }
    exports.Socket = Socket;
    const CreateSocket = function(e) {
      n = e;
      _socket = new Socket();
      _socket.connector = new MT3SETB_reconnecting_websocket_1.default(() => __awaiter(this, void 0, void 0, function*() {
        let e = 0;
        _socket.connector && _socket.isLogin && (e = 0 === _socket.connector.retryCount ? 1 : _socket.connector.retryCount);
        MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME);
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.State_game_loss_gsAck, _socket.isLogin ? "1" : "0");
        _socket.isLogin ? MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.WebSocket_reConnect_try) : MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.WebSocket_connect_try);
        return MT3SETB_platform_1.GetGamePath() + "/" + n + "?r=" + e;
      }), [], w);
      _socket.connector.onopen = function() {
        _socket.isLogin ? MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.WebSocket_reConnect_success) : MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.WebSocket_connect_success);
        _socket.onopen && _socket.onopen();
      };
      _socket.connector.onerror = function() {
        MT3SETB_track_1.SendEvent(MT3SETB_track_1.Login_Event.LOGIN_GAME, 1);
        _socket.isLogin ? MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.WebSocket_reConnect_error) : MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.WebSocket_connect_error);
        _socket.onerror && _socket.onerror();
      };
      _socket.connector.onclose = function() {
        _socket.isLogin ? MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.WebSocket_reConnect_close) : MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.WebSocket_connect_close);
        _socket.onclose && _socket.onclose();
      };
      _socket.connector.onmessage = function(e) {
        if (cc.sys.isBrowser) {
          var t = new FileReader();
          t.onload = function() {
            var e = new Uint8Array(this.result), t = MT3SETB_mtf_pb_wrapper_1.mtf.Command.decode(e);
            _socket.oncommand(t.type, t.data);
          };
          t.readAsArrayBuffer(e.data);
        } else {
          var o = new Uint8Array(e.data), n = MT3SETB_mtf_pb_wrapper_1.mtf.Command.decode(o);
          _socket.oncommand(n.type, n.data);
        }
      };
      _socket.pid = setInterval(() => {
        _socket.ping();
      }, 2e3);
      return _socket;
    };
    exports.CreateSocket = CreateSocket;
    exports.GetSocket = _getSocket;
    cc._RF.pop();
  }, {
    "./MT3SETB-card": "MT3SETB-card",
    "./MT3SETB-debris": "MT3SETB-debris",
    "./MT3SETB-device": "MT3SETB-device",
    "./MT3SETB-event": "MT3SETB-event",
    "./MT3SETB-favorite": "MT3SETB-favorite",
    "./MT3SETB-item": "MT3SETB-item",
    "./MT3SETB-mail": "MT3SETB-mail",
    "./MT3SETB-mission": "MT3SETB-mission",
    "./MT3SETB-mtf_pb_wrapper": "MT3SETB-mtf_pb_wrapper",
    "./MT3SETB-platform": "MT3SETB-platform",
    "./MT3SETB-profile": "MT3SETB-profile",
    "./MT3SETB-promotion": "MT3SETB-promotion",
    "./MT3SETB-reconnecting-websocket": "MT3SETB-reconnecting-websocket",
    "./MT3SETB-reward": "MT3SETB-reward",
    "./MT3SETB-timeline": "MT3SETB-timeline",
    "./MT3SETB-track": "MT3SETB-track",
    "./MT3SETB-vip": "MT3SETB-vip"
  } ],
  "MT3SETB-weekly_page": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "87575mflxNCf5zXkE1LFOon", "MT3SETB-weekly_page");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.weekly_page = void 0;
    const MT3SETB_glue_1 = __importDefault(require("../../../../script/common/api/MT3SETB-glue"));
    const MT3SETB_language_1 = require("../../../../script/common/api/MT3SETB-language");
    const MT3SETB_track_1 = require("../../../../script/common/api/MT3SETB-track");
    const MT3SETB_win_more_menu_1 = require("./MT3SETB-win_more_menu");
    const MT3SETB_reward_1 = require("../../../../script/common/api/MT3SETB-reward");
    const MT3SETB_utils2_1 = require("../../../../script/framework/framework/MT3SETB-utils2");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let weekly_page = class weekly_page extends cc.Component {
      constructor() {
        super();
        this.day = null;
        this.hour = null;
        this.min = null;
        this.sec = null;
        this.betNum = null;
        this.eventMoney = null;
        this.nextEventBetNum = null;
        this.eventTimeTitle = null;
        this.eventTimeDuration = null;
        this.eventGetButton = null;
        this.winMoreMenu = null;
        this.nextDeadLine = 0;
      }
      onLoad() {
        this.winMoreMenu = MT3SETB_glue_1.default.lookup(this.node, MT3SETB_win_more_menu_1.win_more_menu);
        this.schedule(this.updateWLRUIData.bind(this), 1, cc.macro.REPEAT_FOREVER);
      }
      onEnable() {
        this.updateWLRUIData();
      }
      updateWLRUIData() {
        if (false !== MT3SETB_reward_1.HasWeekRewadData()) {
          var e = MT3SETB_reward_1.GetWeekRewadData();
          this.nextDeadLine = e.next;
          var t = Math.max(0, this.nextDeadLine - Date.now());
          this.day.string = Math.floor(t / 864e5).toString();
          this.hour.string = Math.floor(t % 864e5 / 36e5).toString();
          this.min.string = Math.floor(t % 36e5 / 6e4).toString();
          this.sec.string = Math.floor(t % 6e4 / 1e3).toString();
          var o = e.reward[0] ? e.reward[0].exp : e.exp, s = e.reward[0] ? MT3SETB_glue_1.default.getThousandsNum(e.reward[0].reward) : "*", c = e.reward[1] ? e.reward[1].exp : 0;
          this.betNum.string = MT3SETB_glue_1.default.getThousandsNum(e.exp) + "/" + MT3SETB_glue_1.default.getThousandsNum(o);
          this.eventMoney.string = s;
          this.nextEventBetNum.string = MT3SETB_utils2_1.sprintf(MT3SETB_language_1.GetLanguage(4018), c > 0 ? MT3SETB_glue_1.default.getThousandsNum(c) : "*");
          var l = new Date(this.nextDeadLine - 6048e5), u = new Date(this.nextDeadLine), d = l.getFullYear().toString() + "/" + (l.getMonth() + 1).toString() + "/" + l.getDate().toString() + " " + ("0" + l.getHours()).substr(-2) + ":" + ("0" + l.getMinutes()).substr(-2) + " ~ " + (u.getMonth() + 1).toString() + "/" + u.getDate().toString() + " " + ("0" + l.getHours()).substr(-2) + ":" + ("0" + l.getMinutes()).substr(-2);
          this.eventTimeTitle.string = MT3SETB_language_1.GetLanguage(4019);
          this.eventTimeDuration.string = d;
          var p = !!e.reward[0] && e.exp >= o;
          this.eventGetButton.node.color = p ? cc.color(255, 255, 255, 255) : cc.color(87, 87, 87, 255);
          this.eventGetButton.interactable = p;
          var h = this.eventGetButton.node.getComponent(cc.Animation);
          if (p) {
            var f = h.getAnimationState(h.getClips()[0].name);
            f && false === f.isPlaying && h.play();
          } else {
            h.stop();
            this.eventGetButton.node.scale = 1;
          }
          this.winMoreMenu.showRedDot("Weekly", p);
        }
      }
      sendWLRGetReward() {
        MT3SETB_track_1.SendButton(MT3SETB_track_1.Button_Log.Button_game_GetRewater, "WeekLevelReward");
        0 !== Math.max(0, this.nextDeadLine - Date.now()) ? MT3SETB_reward_1.GetWeekReward() : MT3SETB_glue_1.default.msgOK(MT3SETB_language_1.GetLanguage(4021));
      }
      onLevelRewardAck(e) {
        var t = MT3SETB_glue_1.default.gameCtrl_getPlayerSeat();
        MT3SETB_glue_1.default.bankSys_addServerCoin(t, e.reward);
        MT3SETB_glue_1.default.bankSys_addClientCoin(t, e.reward);
        MT3SETB_glue_1.default.gameCtrl_updateTurretCoin(t);
        MT3SETB_glue_1.default.uiCtrl_checkToolRedPoint();
        if (true === this.enabled) {
          this.winMoreMenu.showGetRewardAnim(e.reward);
          this.updateWLRUIData();
        }
      }
    };
    __decorate([ property(cc.Label) ], weekly_page.prototype, "day", void 0);
    __decorate([ property(cc.Label) ], weekly_page.prototype, "hour", void 0);
    __decorate([ property(cc.Label) ], weekly_page.prototype, "min", void 0);
    __decorate([ property(cc.Label) ], weekly_page.prototype, "sec", void 0);
    __decorate([ property(cc.Label) ], weekly_page.prototype, "betNum", void 0);
    __decorate([ property(cc.Label) ], weekly_page.prototype, "eventMoney", void 0);
    __decorate([ property(cc.Label) ], weekly_page.prototype, "nextEventBetNum", void 0);
    __decorate([ property(cc.Label) ], weekly_page.prototype, "eventTimeTitle", void 0);
    __decorate([ property(cc.Label) ], weekly_page.prototype, "eventTimeDuration", void 0);
    __decorate([ property(cc.Button) ], weekly_page.prototype, "eventGetButton", void 0);
    weekly_page = __decorate([ ccclass ], weekly_page);
    exports.weekly_page = weekly_page;
    cc._RF.pop();
  }, {
    "../../../../script/common/api/MT3SETB-glue": "MT3SETB-glue",
    "../../../../script/common/api/MT3SETB-language": "MT3SETB-language",
    "../../../../script/common/api/MT3SETB-reward": "MT3SETB-reward",
    "../../../../script/common/api/MT3SETB-track": "MT3SETB-track",
    "../../../../script/framework/framework/MT3SETB-utils2": "MT3SETB-utils2",
    "./MT3SETB-win_more_menu": "MT3SETB-win_more_menu"
  } ],
  "MT3SETB-win_more_menu": [ function(require, module, exports) {
    "use strict";
    cc._RF.push(module, "d38c1R9u4tCha+/8WHfd6Sx", "MT3SETB-win_more_menu");
    "use strict";
    var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
      var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
      if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
      return c > 3 && r && Object.defineProperty(target, key, r), r;
    };
    var __importDefault = this && this.__importDefault || function(mod) {
      return mod && mod.__esModule ? mod : {
        default: mod
      };
    };
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.win_more_menu = void 0;
    const MT3SETB_glue_1 = __importDefault(require("../../../../script/common/api/MT3SETB-glue"));
    const MT3SETB_platform_1 = require("../../../../script/common/api/MT3SETB-platform");
    const MT3SETB_promotion_1 = require("../../../../script/common/api/MT3SETB-promotion");
    const MT3SETB_reward_1 = require("../../../../script/common/api/MT3SETB-reward");
    const MT3SETB_vip_1 = require("../../../../script/common/api/MT3SETB-vip");
    const {ccclass: ccclass, property: property} = cc._decorator;
    let win_more_menu = class win_more_menu extends cc.Component {
      constructor() {
        super();
        this.classRewardNode = null;
        this.freeChestNode = null;
        this.weeklyNode = null;
        this.recommendNode = null;
        this.freeGiftNode = null;
        this.bookmark_labels = null;
        this.bookmark_buttons = null;
        this.bookmark_redDots = null;
        this.getRewardPrefab = null;
        this.currentPageNode = null;
        this.currentBookmarkIndex = -1;
        this.isDisable0Bet = false;
      }
      init() {
        this.isDisable0Bet = MT3SETB_platform_1.isDisable0Bet();
        this.switchPage(null, "ClassReward");
      }
      switchPage(e, t) {
        null !== e;
        this.currentPageNode && (this.currentPageNode.active = false);
        this.bookmark_buttons.children[this.currentBookmarkIndex] && (this.bookmark_buttons.children[this.currentBookmarkIndex].children[0].active = false);
        switch (t) {
         case "ClassReward":
          this.currentPageNode = this.classRewardNode;
          this.currentPageNode.active = true;
          this.bookmark_buttons.children[0].children[0].active = true;
          this.currentBookmarkIndex = 0;
          break;

         case "FreeChest":
          this.currentPageNode = this.freeChestNode;
          this.currentPageNode.active = true;
          this.bookmark_buttons.children[1].children[0].active = true;
          this.currentBookmarkIndex = 1;
          break;

         case "Weekly":
          this.currentPageNode = this.weeklyNode;
          this.currentPageNode.active = true;
          this.bookmark_buttons.children[2].children[0].active = true;
          this.currentBookmarkIndex = 2;
          break;

         case "Recommend":
          this.currentPageNode = this.recommendNode;
          this.currentPageNode.active = true;
          this.bookmark_buttons.children[3].children[0].active = true;
          this.currentBookmarkIndex = 3;
          break;

         case "FreeGift":
          this.currentPageNode = this.freeGiftNode;
          this.currentPageNode.active = true;
          this.bookmark_buttons.children[4].children[0].active = true;
          this.currentBookmarkIndex = 4;
        }
      }
      showRedDot(e, t) {
        switch (e) {
         case "ClassReward":
          this.bookmark_redDots.children[0].children[0].active = t;
          break;

         case "FreeChest":
          this.bookmark_redDots.children[1].children[0].active = t;
          break;

         case "Weekly":
          this.bookmark_redDots.children[2].children[0].active = t;
          break;

         case "Recommend":
          this.bookmark_redDots.children[3].children[0].active = t;
          break;

         case "FreeGift":
          this.bookmark_redDots.children[4].children[0].active = t;
        }
      }
      checkBookmarkState() {
        var e = MT3SETB_promotion_1.HasPromotionData(), t = MT3SETB_vip_1.HasVipData();
        if (true === t) {
          var o = MT3SETB_vip_1.GetVipData().treasure;
          o && 0 !== o.length || (t = false);
        }
        for (var n = 0; n < 3; n++) {
          this.bookmark_labels.children[n].active = !this.isDisable0Bet;
          this.bookmark_buttons.children[n].active = !this.isDisable0Bet;
          this.bookmark_redDots.children[n].active = !this.isDisable0Bet;
        }
        this.isDisable0Bet && this.currentBookmarkIndex <= 2 && this.switchPage(null, "FreeGift");
        false === e && 3 === this.currentBookmarkIndex && this.switchPage(null, "ClassReward");
        this.bookmark_labels.children[3].active = e;
        this.bookmark_buttons.children[3].active = e;
        this.bookmark_redDots.children[3].active = e;
        false === t && 4 === this.currentBookmarkIndex && this.switchPage(null, "ClassReward");
        this.bookmark_labels.children[4].active = t;
        this.bookmark_buttons.children[4].active = t;
        this.bookmark_redDots.children[4].active = t;
      }
      checkRedDotState() {
        var e = 0;
        if (!this.isDisable0Bet) {
          if (true === MT3SETB_reward_1.HasLevelRewadData()) {
            var t = MT3SETB_reward_1.GetLevelRewadData().reward.some(function(e) {
              return 1 === e.state;
            });
            this.showRedDot("ClassReward", t);
            e += true === t ? 1 : 0;
          }
          true === MT3SETB_reward_1.HasChestRewadData() && (t = MT3SETB_reward_1.GetChestMaxLevel() >= 0, 
          this.showRedDot("FreeChest", t), e += true === t ? 1 : 0);
          if (true === MT3SETB_reward_1.HasWeekRewadData()) {
            var o = MT3SETB_reward_1.GetWeekRewadData();
            t = !!o.reward[0] && o.exp >= o.reward[0].exp;
            this.showRedDot("Weekly", t);
            e += true === t ? 1 : 0;
          }
        }
        true === MT3SETB_vip_1.HasVipData() && (t = MT3SETB_vip_1.GetVipData().treasure.some(function(e) {
          return 3 === e.state;
        }), this.showRedDot("FreeGift", t), e += true === t ? 1 : 0);
        return e > 0;
      }
      openMenu() {
        if (this.node.parent) {
          this.node.parent.active = true;
          this.checkBookmarkState();
          this.checkRedDotState();
        }
      }
      closeMenu() {
        this.node.parent && (this.node.parent.active = false);
      }
      isOpen() {
        return this.node.parent.active;
      }
      showGetRewardAnim(e) {
        var t = cc.instantiate(this.getRewardPrefab);
        t.setParent(this.node);
        t.getChildByName("Root").getChildByName("GetReward").getChildByName("MoneyNum").getComponent(cc.Label).string = MT3SETB_glue_1.default.getThousandsNum(e);
        t.getChildByName("Root").getComponent(cc.Animation).play();
        this.scheduleOnce(function() {
          if (t) {
            var e = t.getChildByName("Root").getChildByName("GetReward");
            e.getComponent(cc.Animation).play();
            e.getComponent(cc.Animation).once("finished", function() {
              e.getComponent(cc.Animation).play("GetReward_Loop");
            });
          }
        }, .25);
        var o = false;
        this.scheduleOnce(function() {
          o = true;
        }, .6);
        this.scheduleOnce(function() {
          t && (t.destroy(), t = null);
        }, 5);
        t.getChildByName("Root").getChildByName("Black").on("click", function() {
          t && o && (t.destroy(), t = null);
        });
      }
    };
    __decorate([ property(cc.Node) ], win_more_menu.prototype, "classRewardNode", void 0);
    __decorate([ property(cc.Node) ], win_more_menu.prototype, "freeChestNode", void 0);
    __decorate([ property(cc.Node) ], win_more_menu.prototype, "weeklyNode", void 0);
    __decorate([ property(cc.Node) ], win_more_menu.prototype, "recommendNode", void 0);
    __decorate([ property(cc.Node) ], win_more_menu.prototype, "freeGiftNode", void 0);
    __decorate([ property(cc.Node) ], win_more_menu.prototype, "bookmark_labels", void 0);
    __decorate([ property(cc.Node) ], win_more_menu.prototype, "bookmark_buttons", void 0);
    __decorate([ property(cc.Node) ], win_more_menu.prototype, "bookmark_redDots", void 0);
    __decorate([ property(cc.Prefab) ], win_more_menu.prototype, "getRewardPrefab", void 0);
    win_more_menu = __decorate([ ccclass ], win_more_menu);
    exports.win_more_menu = win_more_menu;
    cc._RF.pop();
  }, {
    "../../../../script/common/api/MT3SETB-glue": "MT3SETB-glue",
    "../../../../script/common/api/MT3SETB-platform": "MT3SETB-platform",
    "../../../../script/common/api/MT3SETB-promotion": "MT3SETB-promotion",
    "../../../../script/common/api/MT3SETB-reward": "MT3SETB-reward",
    "../../../../script/common/api/MT3SETB-vip": "MT3SETB-vip"
  } ]
}, {}, [ "MT3SETB-SoccerGame", "MT3SETB-DepositBtn", "MT3SETB-BonusCardMgr", "MT3SETB-CatchRewardShow", "MT3SETB-FreeBulletMgr", "MT3SETB-WaterGameBullet", "MT3SETB-WaterGameUI", "MT3SETB-Exchange", "MT3SETB-ExchangeChip", "MT3SETB-ExchangeItem", "MT3SETB-ExchangeReward", "MT3SETB-free_gift_node", "MT3SETB-free_gift_page", "MT3SETB-freechest_get", "MT3SETB-freechest_page", "MT3SETB-promotion_node", "MT3SETB-promotion_page", "MT3SETB-reward_level_node", "MT3SETB-reward_level_page", "MT3SETB-weekly_page", "MT3SETB-win_more_menu", "MT3SETB-App", "MT3SETB-Comm", "MT3SETB-Cursor", "MT3SETB-SwipeScreen", "MT3SETB-WaveFx", "MT3SETB-_main", "MT3SETB-lobbyLauncher", "MT3SETB-scroll_view_culling", "MT3SETB-IframeCommandManager", "MT3SETB-axiosLite", "MT3SETB-card", "MT3SETB-debris", "MT3SETB-device", "MT3SETB-event", "MT3SETB-favorite", "MT3SETB-glue", "MT3SETB-item", "MT3SETB-language", "MT3SETB-mail", "MT3SETB-mission", "MT3SETB-mtfPath_pb", "MT3SETB-mtfPath_pb_wrapper", "MT3SETB-mtf_pb", "MT3SETB-mtf_pb_wrapper", "MT3SETB-numeral", "MT3SETB-platform", "MT3SETB-profile", "MT3SETB-promotion", "MT3SETB-reconnecting-websocket", "MT3SETB-reward", "MT3SETB-script", "MT3SETB-script_v1", "MT3SETB-script_v2", "MT3SETB-tableSelect_pb", "MT3SETB-tableSelect_pb_wrapper", "MT3SETB-timeline", "MT3SETB-track", "MT3SETB-ui", "MT3SETB-vip", "MT3SETB-webObject", "MT3SETB-websocket", "MT3SETB-SwitchImage", "MT3SETB-pageview_node", "MT3SETB-DebugSpawn", "MT3SETB-DebugUI", "MT3SETB-EffekseerComponent", "MT3SETB-EffekseerCore", "MT3SETB-EffekseerPlayOnLoad", "MT3SETB-card_event", "MT3SETB-item_event", "MT3SETB-mail_event", "MT3SETB-mission_event", "MT3SETB-reward_chest_event", "MT3SETB-reward_level_evnet", "MT3SETB-reward_week_event", "MT3SETB-vip_event", "MT3SETB-i18n_font", "MT3SETB-i18n_label", "MT3SETB-i18n_language", "MT3SETB-game_logo", "MT3SETB-script_load", "MT3SETB-scriptv2_load", "MT3SETB-ActionData", "MT3SETB-BackgroundData", "MT3SETB-BulletData", "MT3SETB-CoinData", "MT3SETB-CommonData", "MT3SETB-EffectData", "MT3SETB-FishData", "MT3SETB-OtherData", "MT3SETB-RewardData", "MT3SETB-TurretData", "MT3SETB-random", "MT3SETB-utils2", "MT3SETB-FishCount", "MT3SETB-FishEater", "MT3SETB-FishLockOnHandler", "MT3SETB-FishLockOnHandler_MTCC", "MT3SETB-FishLockOnHandler_MTDF", "MT3SETB-FishLockOnHandler_MTDN", "MT3SETB-FishLockOnHandler_MTGF", "MT3SETB-FishLockOnHandler_MTGTF", "MT3SETB-FishLockOnHandler_MTLKF", "MT3SETB-FishLockOnHandler_MTTC", "MT3SETB-FishRoom", "MT3SETB-GoldPillar", "MT3SETB-JoystickCtrl", "MT3SETB-LsBullet", "MT3SETB-LsEffectMgr", "MT3SETB-LsFishMgr", "MT3SETB-LsLotteryMgr", "MT3SETB-LsRewardCircle", "MT3SETB-Menu", "MT3SETB-ResizeToFit", "MT3SETB-VipDisplayCtrl", "MT3SETB-AwakenGiantCrocodileAttack", "MT3SETB-AwakenNightBeastEffect", "MT3SETB-AwakenedKingCrabBombEffect", "MT3SETB-AwakenedKingOctopusBombEffect", "MT3SETB-Backpack", "MT3SETB-BackpackButton", "MT3SETB-BackpackInfo", "MT3SETB-BackpackItem", "MT3SETB-BackpackItemAll", "MT3SETB-BackpackMsg", "MT3SETB-BankSystem", "MT3SETB-BaseEffect", "MT3SETB-BetRecord", "MT3SETB-BisonComing", "MT3SETB-BombCrabEffect", "MT3SETB-BossComing", "MT3SETB-BossDebutt", "MT3SETB-BossWarning", "MT3SETB-Broadcast", "MT3SETB-Bullet", "MT3SETB-BulletMgr", "MT3SETB-ChangeCoinSprite", "MT3SETB-CommonTransfer", "MT3SETB-ConnectionToast", "MT3SETB-CreateFishUI", "MT3SETB-Crocodile", "MT3SETB-CurrencyHintJp", "MT3SETB-CycloneEffect", "MT3SETB-DamageTint", "MT3SETB-DataMgr", "MT3SETB-DinghyBombEffect", "MT3SETB-Dragon", "MT3SETB-DrillBullet", "MT3SETB-DrillGun", "MT3SETB-DrillGunDrop", "MT3SETB-DrillGunShootUi", "MT3SETB-EffectMgr", "MT3SETB-FireDragonTurtle", "MT3SETB-Fish", "MT3SETB-FishAnimation", "MT3SETB-FishComing", "MT3SETB-FishInfo", "MT3SETB-FishInfoItem", "MT3SETB-FishInfoItemGeneral", "MT3SETB-FishInfoItemGolden", "MT3SETB-FishInfoItemSpecial", "MT3SETB-FishMenu", "MT3SETB-FishMgr", "MT3SETB-FishRewardShow", "MT3SETB-FishScreenAura", "MT3SETB-FishScrollReward", "MT3SETB-FishSpecialIntroShow", "MT3SETB-FishSpecialShow", "MT3SETB-FishSpecialShowFlameStorm", "MT3SETB-FlameStormFishGun", "MT3SETB-FlameStormGun", "MT3SETB-FlameStormInfoUi", "MT3SETB-GameCtrl", "MT3SETB-GameMgr", "MT3SETB-GameTable", "MT3SETB-GoldenToad", "MT3SETB-HaiWangLaiXi", "MT3SETB-IdleToast", "MT3SETB-InGamePanelLS", "MT3SETB-ItemBombShow", "MT3SETB-JPListUI", "MT3SETB-JueXing", "MT3SETB-KingOctopusBackground", "MT3SETB-KingOctopusFish", "MT3SETB-LangFishImg", "MT3SETB-LangImg", "MT3SETB-LangImgForCommon", "MT3SETB-LangImgForLobby", "MT3SETB-LangImgToggleForLobby", "MT3SETB-LangPos", "MT3SETB-LangTxt", "MT3SETB-LanternFestivalEffect", "MT3SETB-LightningSharkEffect", "MT3SETB-LoadEnd", "MT3SETB-LogoHide", "MT3SETB-LotteryMgr", "MT3SETB-LuckyBagMoveMgr", "MT3SETB-Mask", "MT3SETB-MermaidEffect", "MT3SETB-MsgBox", "MT3SETB-PageItem", "MT3SETB-PageViewButton", "MT3SETB-Phaser", "MT3SETB-Phoenix", "MT3SETB-PhoenixBombEffect", "MT3SETB-PhoenixRewardCircle", "MT3SETB-PickupBigAward", "MT3SETB-PickupRewardShow", "MT3SETB-PickupRouletteCnter", "MT3SETB-PickupRouletteCtrl", "MT3SETB-PumpkinEffect", "MT3SETB-Rankboard", "MT3SETB-RankboardItem", "MT3SETB-Redenvelope", "MT3SETB-RetainMgr", "MT3SETB-RewardCircle", "MT3SETB-Roulette", "MT3SETB-ScrollingToast", "MT3SETB-Setting", "MT3SETB-ShootMgr", "MT3SETB-SkinChange", "MT3SETB-SkinItem", "MT3SETB-SkinMgr", "MT3SETB-Sound", "MT3SETB-SoundConst", "MT3SETB-SoundList", "MT3SETB-SwitchMenu", "MT3SETB-ThunderDragonEffect", "MT3SETB-Toast", "MT3SETB-Turret", "MT3SETB-TweenManager", "MT3SETB-UICtrl", "MT3SETB-UncleCatBoard", "MT3SETB-UncleCatShell", "MT3SETB-VersionDifference", "MT3SETB-WaterGameMgr", "MT3SETB-WheelDragonReward", "MT3SETB-WinMoreUILoader", "MT3SETB-WinMoreVip", "MT3SETB-EgretFishPathUtil", "MT3SETB-IMoveModule", "MT3SETB-LinearMoveModule", "MT3SETB-SplineFishPathUtil", "MT3SETB-SplineMoveModule", "MT3SETB-SplineUtil", "MT3SETB-StackableMoveModule", "MT3SETB-BubbleFxPool", "MT3SETB-google-protobuf", "MT3SETB-Shadow", "MT3SETB-ShadowAccountant", "MT3SETB-ShadowBody", "MT3SETB-ShadowCaster", "MT3SETB-ShadowCore", "MT3SETB-ShadowMgr", "MT3SETB-SpriteShadow", "MT3SETB-Device", "MT3SETB-Game", "MT3SETB-LangList", "MT3SETB-WebPage", "MT3SETB-i18n", "MT3SETB-AutoMatic", "MT3SETB-AutoMaticTouch", "MT3SETB-Automata", "MT3SETB-FitContent", "MT3SETB-LabelExt", "MT3SETB-LabelExtraOutline", "MT3SETB-LabelGradient", "MT3SETB-LabelRegister", "MT3SETB-LabelUtils", "MT3SETB-ttfExt" ]);